- Add stocks table (server/db) with list/get/add/update/delete actions, scoped per user, backing both the chat agent and the /stocks UI via useActionQuery/useActionMutation - Add mobile-first /stocks page (shadcn table/cards, watchlist, search) and wire it into the sidebar, navigation state, and view-screen context - Install the platform's Claude Agent SDK harness (server/plugins, server/routes/api/claude-agent) so the app agent runs on the platform's own Claude subscription instead of the Builder.io gateway; fix the vendored turn.post.ts route to resolve the session and wrap it in runWithRequestContext, since custom /api/ routes aren't auto-wrapped in request context the way /_agent-native/actions/* are - Add shadcn table/badge/dialog/select components (Tabler icons, not lucide)
31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import { getOrgContext } from "@agent-native/core/org";
|
|
import {
|
|
createAgentChatPlugin,
|
|
loadActionsFromStaticRegistry,
|
|
} from "@agent-native/core/server";
|
|
|
|
import actionsRegistry from "../../.generated/actions-registry.js";
|
|
|
|
const INITIAL_TOOL_NAMES = [
|
|
"view-screen",
|
|
"navigate",
|
|
"hello",
|
|
"list-stocks",
|
|
"get-stock",
|
|
"add-stock",
|
|
"update-stock",
|
|
"delete-stock",
|
|
];
|
|
|
|
export default createAgentChatPlugin({
|
|
appId: "app",
|
|
actions: loadActionsFromStaticRegistry(actionsRegistry),
|
|
initialToolNames: INITIAL_TOOL_NAMES,
|
|
resolveOrgId: async (event) => (await getOrgContext(event)).orgId,
|
|
systemPrompt: `You are the Chat app agent for a minimal stock listing app.
|
|
|
|
The chat is the product surface, and actions are the contract shared by chat, UI, HTTP, MCP, A2A, and CLI. The app tracks a per-user list of stock tickers (symbol, company name, exchange, sector, price, change percent, market cap, watchlisted) at the /stocks page, backed by the list-stocks, get-stock, add-stock, update-stock, and delete-stock actions.
|
|
|
|
Use actions as the source of truth. Start by inspecting the current screen when context matters. When the user asks to extend this app, keep the change small and agent-native: add or update actions, expose useful UI, and keep application state/navigation visible to the agent.`,
|
|
});
|