@agent-native/core 0.54.1 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +4 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/connect.d.ts +3 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +7 -1
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/plan-local.d.ts +40 -0
- package/dist/cli/plan-local.d.ts.map +1 -1
- package/dist/cli/plan-local.js +495 -9
- package/dist/cli/plan-local.js.map +1 -1
- package/dist/cli/skills.d.ts +17 -2
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +135 -36
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentChatHome.d.ts +23 -0
- package/dist/client/AgentChatHome.d.ts.map +1 -0
- package/dist/client/AgentChatHome.js +13 -0
- package/dist/client/AgentChatHome.js.map +1 -0
- package/dist/client/AgentPanel.d.ts +29 -2
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +116 -68
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +140 -18
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts +7 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +13 -3
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts +1 -2
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-sidebar-state.d.ts +2 -0
- package/dist/client/agent-sidebar-state.d.ts.map +1 -1
- package/dist/client/agent-sidebar-state.js +15 -4
- package/dist/client/agent-sidebar-state.js.map +1 -1
- package/dist/client/chat/index.d.ts +5 -0
- package/dist/client/chat/index.d.ts.map +1 -1
- package/dist/client/chat/index.js +5 -0
- package/dist/client/chat/index.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +4 -6
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +1 -0
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +16 -0
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/tool-render-registry.d.ts +24 -0
- package/dist/client/chat/tool-render-registry.d.ts.map +1 -0
- package/dist/client/chat/tool-render-registry.js +37 -0
- package/dist/client/chat/tool-render-registry.js.map +1 -0
- package/dist/client/chat/widgets/DataChartRenderer.d.ts +5 -0
- package/dist/client/chat/widgets/DataChartRenderer.d.ts.map +1 -0
- package/dist/client/chat/widgets/DataChartRenderer.js +33 -0
- package/dist/client/chat/widgets/DataChartRenderer.js.map +1 -0
- package/dist/client/chat/widgets/DataChartWidget.d.ts +5 -0
- package/dist/client/chat/widgets/DataChartWidget.d.ts.map +1 -0
- package/dist/client/chat/widgets/DataChartWidget.js +15 -0
- package/dist/client/chat/widgets/DataChartWidget.js.map +1 -0
- package/dist/client/chat/widgets/DataInsightsWidget.d.ts +5 -0
- package/dist/client/chat/widgets/DataInsightsWidget.d.ts.map +1 -0
- package/dist/client/chat/widgets/DataInsightsWidget.js +18 -0
- package/dist/client/chat/widgets/DataInsightsWidget.js.map +1 -0
- package/dist/client/chat/widgets/DataTableWidget.d.ts +9 -0
- package/dist/client/chat/widgets/DataTableWidget.d.ts.map +1 -0
- package/dist/client/chat/widgets/DataTableWidget.js +95 -0
- package/dist/client/chat/widgets/DataTableWidget.js.map +1 -0
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts +2 -0
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -0
- package/dist/client/chat/widgets/builtin-tool-renderers.js +27 -0
- package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -0
- package/dist/client/chat/widgets/data-widget-types.d.ts +52 -0
- package/dist/client/chat/widgets/data-widget-types.d.ts.map +1 -0
- package/dist/client/chat/widgets/data-widget-types.js +93 -0
- package/dist/client/chat/widgets/data-widget-types.js.map +1 -0
- package/dist/client/chat-view-transition.d.ts +23 -0
- package/dist/client/chat-view-transition.d.ts.map +1 -0
- package/dist/client/chat-view-transition.js +50 -0
- package/dist/client/chat-view-transition.js.map +1 -0
- package/dist/client/composer/PromptComposer.d.ts +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +2 -2
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +2 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +2 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/index.d.ts +5 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/route-state.d.ts +6 -0
- package/dist/client/route-state.d.ts.map +1 -1
- package/dist/client/route-state.js +29 -1
- package/dist/client/route-state.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +19 -4
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/scripts/dev/index.d.ts +1 -0
- package/dist/scripts/dev/index.d.ts.map +1 -1
- package/dist/scripts/dev/index.js +129 -127
- package/dist/scripts/dev/index.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +8 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +29 -21
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/prompts/framework-core-compact.d.ts +4 -1
- package/dist/server/prompts/framework-core-compact.d.ts.map +1 -1
- package/dist/server/prompts/framework-core-compact.js +11 -4
- package/dist/server/prompts/framework-core-compact.js.map +1 -1
- package/dist/server/prompts/framework-core.d.ts +4 -1
- package/dist/server/prompts/framework-core.d.ts.map +1 -1
- package/dist/server/prompts/framework-core.js +15 -5
- package/dist/server/prompts/framework-core.js.map +1 -1
- package/dist/server/prompts/shared-rules.d.ts +4 -1
- package/dist/server/prompts/shared-rules.d.ts.map +1 -1
- package/dist/server/prompts/shared-rules.js +4 -1
- package/dist/server/prompts/shared-rules.js.map +1 -1
- package/dist/styles/agent-native.css +55 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +4 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/external-agents.md +14 -4
- package/docs/content/getting-started.md +1 -0
- package/docs/content/key-concepts.md +34 -15
- package/docs/content/mcp-apps.md +2 -0
- package/docs/content/mcp-protocol.md +2 -2
- package/docs/content/template-plan.md +16 -1
- package/docs/content/what-is-agent-native.md +10 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/dev/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Dev-mode script registry.\n *\n * Provides shared coding and database tools for the agent\n * when running in development mode. These tools should NEVER be\n * registered in production.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport type { ActionEntry } from \"../../agent/production-agent.js\";\nimport { createCodingToolRegistry } from \"../../coding-tools/index.js\";\nimport { tool as readFileTool, run as readFileRun } from \"./read-file.js\";\nimport { tool as writeFileTool, run as writeFileRun } from \"./write-file.js\";\nimport { tool as listFilesTool, run as listFilesRun } from \"./list-files.js\";\nimport {\n tool as searchFilesTool,\n run as searchFilesRun,\n} from \"./search-files.js\";\nimport { tool as shellTool, run as shellRun } from \"./shell.js\";\n\n/**\n * Wraps a core CLI script (that writes to console.log) as a ActionEntry\n * by capturing stdout.\n */\nfunction wrapCliScript(\n tool: ActionTool,\n cliDefault: (args: string[]) => Promise<void>,\n opts?: { readOnly?: boolean },\n): ActionEntry {\n return {\n tool,\n ...(opts?.readOnly ? { readOnly: true as const } : {}),\n run: async (args: Record<string, string>): Promise<string> => {\n const cliArgs: string[] = [];\n for (const [k, v] of Object.entries(args)) {\n const raw = v as unknown;\n const value =\n raw != null && typeof raw === \"object\"\n ? JSON.stringify(raw)\n : String(raw);\n cliArgs.push(`--${k}`, value);\n }\n\n // Capture console.log output\n const logs: string[] = [];\n const origLog = console.log;\n console.log = (...a: unknown[]) => {\n logs.push(a.map(String).join(\" \"));\n };\n\n try {\n await cliDefault(cliArgs);\n } catch (err: any) {\n logs.push(`Error: ${err?.message ?? String(err)}`);\n } finally {\n console.log = origLog;\n }\n\n return logs.join(\"\\n\") || \"(no output)\";\n },\n };\n}\n\n/**\n * Creates the dev-mode script registry with shared bash/read/edit/write\n * coding tools and database tools. Call this and merge with your app's registry\n * when NODE_ENV !== \"production\".\n */\nexport async function createDevScriptRegistry(\n options: { legacyAliases?: boolean } = {},\n): Promise<Record<string, ActionEntry>> {\n // Lazy-import DB scripts to avoid requiring libsql in non-DB apps\n let dbEntries: Record<string, ActionEntry> = {};\n try {\n // Dynamic imports — these are part of @agent-native/core\n const [dbSchema, dbQuery, dbExec, dbPatch, dbCheckScoping] =\n await Promise.all([\n import(\"../db/schema.js\"),\n import(\"../db/query.js\"),\n import(\"../db/exec.js\"),\n import(\"../db/patch.js\"),\n import(\"../db/check-scoping.js\"),\n ]);\n\n dbEntries = {\n \"db-schema\": wrapCliScript(\n {\n description:\n \"Show all database tables, columns, types, and foreign keys\",\n parameters: {\n type: \"object\",\n properties: {\n format: {\n type: \"string\",\n description: 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbSchema.default,\n { readOnly: true },\n ),\n \"db-query\": wrapCliScript(\n {\n description:\n \"Run a read-only SQL query (SELECT, WITH, EXPLAIN, PRAGMA) against the app database\",\n parameters: {\n type: \"object\",\n properties: {\n sql: {\n type: \"string\",\n description: \"The SQL SELECT query to execute\",\n },\n args: {\n type: \"string\",\n description:\n 'Optional JSON array of positional bind args for parameterized placeholders. Example: \\'[\"draft\",\"form-123\"]\\'',\n },\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"table\" (default: table)',\n enum: [\"json\", \"table\"],\n },\n },\n required: [\"sql\"],\n },\n },\n dbQuery.default,\n { readOnly: true },\n ),\n \"db-exec\": wrapCliScript(\n {\n description:\n \"Execute app-database write SQL (INSERT, UPDATE, DELETE, REPLACE). For multiple related writes, pass `statements` so they run sequentially in one transaction instead of issuing several db-exec calls. Schema changes (CREATE/ALTER/DROP) are blocked. Never use this to backfill missing data for a read/analysis request or to create/modify users, members, roles, permissions, admin flags, or ownership; use a dedicated app action or reviewed code.\",\n parameters: {\n type: \"object\",\n properties: {\n sql: {\n type: \"string\",\n description:\n \"Single INSERT / UPDATE / DELETE / REPLACE statement. Use parameterized placeholders (?) where possible.\",\n },\n args: {\n type: \"string\",\n description:\n 'Optional JSON array of positional bind args for `sql`. Example: \\'[\"published\",\"form-123\"]\\'',\n },\n statements: {\n type: \"string\",\n description:\n 'Optional JSON array of write statements to execute in one transaction. Prefer this over multiple db-exec calls. Example: \\'[{\"sql\":\"INSERT INTO notes (id,title) VALUES (?,?)\",\"args\":[\"n1\",\"One\"]},{\"sql\":\"UPDATE counters SET value = value + 1 WHERE key = ?\",\"args\":[\"notes\"]}]\\'',\n },\n format: {\n type: \"string\",\n description: 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbExec.default,\n ),\n \"db-patch\": wrapCliScript(\n {\n description:\n \"Surgical search-and-replace on a text column in a SQL table. Prefer over `db-exec UPDATE` for large text fields (documents, slides, dashboards, JSON blobs) where you only need to change a small slice — avoids re-sending the full column value. Targets exactly one row at a time (narrow --where by primary key). If a template-specific action exists for the table (e.g. `edit-document`, `update-slide`), use that instead — it will also push live updates to open collaborative editors.\",\n parameters: {\n type: \"object\",\n properties: {\n table: {\n type: \"string\",\n description: \"Target table name (plain identifier, no quoting)\",\n },\n column: {\n type: \"string\",\n description:\n \"Target text column name (plain identifier, no quoting)\",\n },\n where: {\n type: \"string\",\n description:\n \"SQL WHERE clause that matches exactly one row, e.g. \\\"id = 'abc123'\\\". Must not contain semicolons or DDL keywords.\",\n },\n find: {\n type: \"string\",\n description:\n \"Text to find (single-edit mode). Pair with --replace.\",\n },\n replace: {\n type: \"string\",\n description:\n 'Replacement text (single-edit mode). Defaults to \"\" (delete the match).',\n },\n edits: {\n type: \"string\",\n description:\n 'Batch mode: JSON array of {find, replace} objects. Example: \\'[{\"find\":\"Q3\",\"replace\":\"Q4\"},{\"find\":\"$1M\",\"replace\":\"$1.2M\"}]\\'',\n },\n all: {\n type: \"string\",\n description:\n 'Set to \"true\" to replace every occurrence of each find (default: first occurrence only).',\n enum: [\"true\", \"false\"],\n },\n format: {\n type: \"string\",\n description: 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n required: [\"table\", \"column\", \"where\"],\n },\n },\n dbPatch.default,\n ),\n \"db-check-scoping\": wrapCliScript(\n {\n description:\n \"Validate that all template tables have owner_email and org_id columns for data scoping\",\n parameters: {\n type: \"object\",\n properties: {\n \"require-org\": {\n type: \"string\",\n description:\n 'Set to \"true\" to also require org_id columns (for multi-org apps)',\n enum: [\"true\", \"false\"],\n },\n format: {\n type: \"string\",\n description: 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbCheckScoping.default,\n { readOnly: true },\n ),\n };\n } catch {\n // DB scripts not available (no libsql) — skip silently\n }\n\n const codingEntries = createCodingToolRegistry({\n cwd: process.cwd(),\n bashThrowsOnNonZero: true,\n });\n const legacyEntries: Record<string, ActionEntry> = options.legacyAliases\n ? {\n \"read-file\": { tool: readFileTool, run: readFileRun, readOnly: true },\n \"write-file\": { tool: writeFileTool, run: writeFileRun },\n \"list-files\": {\n tool: listFilesTool,\n run: listFilesRun,\n readOnly: true,\n },\n \"search-files\": {\n tool: searchFilesTool,\n run: searchFilesRun,\n readOnly: true,\n },\n shell: { tool: shellTool, run: shellRun },\n }\n : {};\n\n return {\n ...codingEntries,\n ...legacyEntries,\n ...dbEntries,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/dev/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Dev-mode script registry.\n *\n * Provides shared coding and database tools for the agent\n * when running in development mode. These tools should NEVER be\n * registered in production.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport type { ActionEntry } from \"../../agent/production-agent.js\";\nimport { createCodingToolRegistry } from \"../../coding-tools/index.js\";\nimport { tool as readFileTool, run as readFileRun } from \"./read-file.js\";\nimport { tool as writeFileTool, run as writeFileRun } from \"./write-file.js\";\nimport { tool as listFilesTool, run as listFilesRun } from \"./list-files.js\";\nimport {\n tool as searchFilesTool,\n run as searchFilesRun,\n} from \"./search-files.js\";\nimport { tool as shellTool, run as shellRun } from \"./shell.js\";\n\n/**\n * Wraps a core CLI script (that writes to console.log) as a ActionEntry\n * by capturing stdout.\n */\nfunction wrapCliScript(\n tool: ActionTool,\n cliDefault: (args: string[]) => Promise<void>,\n opts?: { readOnly?: boolean },\n): ActionEntry {\n return {\n tool,\n ...(opts?.readOnly ? { readOnly: true as const } : {}),\n run: async (args: Record<string, string>): Promise<string> => {\n const cliArgs: string[] = [];\n for (const [k, v] of Object.entries(args)) {\n const raw = v as unknown;\n const value =\n raw != null && typeof raw === \"object\"\n ? JSON.stringify(raw)\n : String(raw);\n cliArgs.push(`--${k}`, value);\n }\n\n // Capture console.log output\n const logs: string[] = [];\n const origLog = console.log;\n console.log = (...a: unknown[]) => {\n logs.push(a.map(String).join(\" \"));\n };\n\n try {\n await cliDefault(cliArgs);\n } catch (err: any) {\n logs.push(`Error: ${err?.message ?? String(err)}`);\n } finally {\n console.log = origLog;\n }\n\n return logs.join(\"\\n\") || \"(no output)\";\n },\n };\n}\n\n/**\n * Creates the dev-mode script registry with shared bash/read/edit/write\n * coding tools and database tools. Call this and merge with your app's registry\n * when NODE_ENV !== \"production\".\n */\nexport async function createDevScriptRegistry(\n options: { legacyAliases?: boolean; databaseTools?: boolean } = {},\n): Promise<Record<string, ActionEntry>> {\n // Lazy-import DB scripts to avoid requiring libsql in non-DB apps\n let dbEntries: Record<string, ActionEntry> = {};\n if (options.databaseTools !== false) {\n try {\n // Dynamic imports — these are part of @agent-native/core\n const [dbSchema, dbQuery, dbExec, dbPatch, dbCheckScoping] =\n await Promise.all([\n import(\"../db/schema.js\"),\n import(\"../db/query.js\"),\n import(\"../db/exec.js\"),\n import(\"../db/patch.js\"),\n import(\"../db/check-scoping.js\"),\n ]);\n\n dbEntries = {\n \"db-schema\": wrapCliScript(\n {\n description:\n \"Show all database tables, columns, types, and foreign keys\",\n parameters: {\n type: \"object\",\n properties: {\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbSchema.default,\n { readOnly: true },\n ),\n \"db-query\": wrapCliScript(\n {\n description:\n \"Run a read-only SQL query (SELECT, WITH, EXPLAIN, PRAGMA) against the app database\",\n parameters: {\n type: \"object\",\n properties: {\n sql: {\n type: \"string\",\n description: \"The SQL SELECT query to execute\",\n },\n args: {\n type: \"string\",\n description:\n 'Optional JSON array of positional bind args for parameterized placeholders. Example: \\'[\"draft\",\"form-123\"]\\'',\n },\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"table\" (default: table)',\n enum: [\"json\", \"table\"],\n },\n },\n required: [\"sql\"],\n },\n },\n dbQuery.default,\n { readOnly: true },\n ),\n \"db-exec\": wrapCliScript(\n {\n description:\n \"Execute app-database write SQL (INSERT, UPDATE, DELETE, REPLACE). For multiple related writes, pass `statements` so they run sequentially in one transaction instead of issuing several db-exec calls. Schema changes (CREATE/ALTER/DROP) are blocked. Never use this to backfill missing data for a read/analysis request or to create/modify users, members, roles, permissions, admin flags, or ownership; use a dedicated app action or reviewed code.\",\n parameters: {\n type: \"object\",\n properties: {\n sql: {\n type: \"string\",\n description:\n \"Single INSERT / UPDATE / DELETE / REPLACE statement. Use parameterized placeholders (?) where possible.\",\n },\n args: {\n type: \"string\",\n description:\n 'Optional JSON array of positional bind args for `sql`. Example: \\'[\"published\",\"form-123\"]\\'',\n },\n statements: {\n type: \"string\",\n description:\n 'Optional JSON array of write statements to execute in one transaction. Prefer this over multiple db-exec calls. Example: \\'[{\"sql\":\"INSERT INTO notes (id,title) VALUES (?,?)\",\"args\":[\"n1\",\"One\"]},{\"sql\":\"UPDATE counters SET value = value + 1 WHERE key = ?\",\"args\":[\"notes\"]}]\\'',\n },\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbExec.default,\n ),\n \"db-patch\": wrapCliScript(\n {\n description:\n \"Surgical search-and-replace on a text column in a SQL table. Prefer over `db-exec UPDATE` for large text fields (documents, slides, dashboards, JSON blobs) where you only need to change a small slice — avoids re-sending the full column value. Targets exactly one row at a time (narrow --where by primary key). If a template-specific action exists for the table (e.g. `edit-document`, `update-slide`), use that instead — it will also push live updates to open collaborative editors.\",\n parameters: {\n type: \"object\",\n properties: {\n table: {\n type: \"string\",\n description:\n \"Target table name (plain identifier, no quoting)\",\n },\n column: {\n type: \"string\",\n description:\n \"Target text column name (plain identifier, no quoting)\",\n },\n where: {\n type: \"string\",\n description:\n \"SQL WHERE clause that matches exactly one row, e.g. \\\"id = 'abc123'\\\". Must not contain semicolons or DDL keywords.\",\n },\n find: {\n type: \"string\",\n description:\n \"Text to find (single-edit mode). Pair with --replace.\",\n },\n replace: {\n type: \"string\",\n description:\n 'Replacement text (single-edit mode). Defaults to \"\" (delete the match).',\n },\n edits: {\n type: \"string\",\n description:\n 'Batch mode: JSON array of {find, replace} objects. Example: \\'[{\"find\":\"Q3\",\"replace\":\"Q4\"},{\"find\":\"$1M\",\"replace\":\"$1.2M\"}]\\'',\n },\n all: {\n type: \"string\",\n description:\n 'Set to \"true\" to replace every occurrence of each find (default: first occurrence only).',\n enum: [\"true\", \"false\"],\n },\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n required: [\"table\", \"column\", \"where\"],\n },\n },\n dbPatch.default,\n ),\n \"db-check-scoping\": wrapCliScript(\n {\n description:\n \"Validate that all template tables have owner_email and org_id columns for data scoping\",\n parameters: {\n type: \"object\",\n properties: {\n \"require-org\": {\n type: \"string\",\n description:\n 'Set to \"true\" to also require org_id columns (for multi-org apps)',\n enum: [\"true\", \"false\"],\n },\n format: {\n type: \"string\",\n description:\n 'Output format: \"json\" or \"text\" (default: text)',\n enum: [\"json\", \"text\"],\n },\n },\n },\n },\n dbCheckScoping.default,\n { readOnly: true },\n ),\n };\n } catch {\n // DB scripts not available (no libsql) — skip silently\n }\n }\n\n const codingEntries = createCodingToolRegistry({\n cwd: process.cwd(),\n bashThrowsOnNonZero: true,\n });\n const legacyEntries: Record<string, ActionEntry> = options.legacyAliases\n ? {\n \"read-file\": { tool: readFileTool, run: readFileRun, readOnly: true },\n \"write-file\": { tool: writeFileTool, run: writeFileRun },\n \"list-files\": {\n tool: listFilesTool,\n run: listFilesRun,\n readOnly: true,\n },\n \"search-files\": {\n tool: searchFilesTool,\n run: searchFilesRun,\n readOnly: true,\n },\n shell: { tool: shellTool, run: shellRun },\n }\n : {};\n\n return {\n ...codingEntries,\n ...legacyEntries,\n ...dbEntries,\n };\n}\n"]}
|
|
@@ -187,6 +187,14 @@ export interface AgentChatPluginOptions {
|
|
|
187
187
|
* Defaults to `false`.
|
|
188
188
|
*/
|
|
189
189
|
nativeActionsInDev?: boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Expose raw SQL/native database tools (`db-query`, `db-exec`, `db-patch`,
|
|
192
|
+
* `db-schema`) to the app agent. Defaults to true for backwards-compatible
|
|
193
|
+
* agent/UI parity. Set to false for chat-first apps that want agents to use
|
|
194
|
+
* typed actions only while still rendering rich data widgets from action
|
|
195
|
+
* results.
|
|
196
|
+
*/
|
|
197
|
+
databaseTools?: boolean;
|
|
190
198
|
/**
|
|
191
199
|
* Optional A2A-only deterministic response path. Runs after inbound A2A text
|
|
192
200
|
* and user context are resolved, but before an agent engine/model is loaded.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1804,12 +1804,12 @@ The \`db-*\` tools ONLY query the app's own SQL database. They do NOT reach exte
|
|
|
1804
1804
|
* request) with the template's promptExamples, producing the four assembled
|
|
1805
1805
|
* prompt strings used at request time.
|
|
1806
1806
|
*/
|
|
1807
|
-
function buildFrameworkPrompts(examples) {
|
|
1807
|
+
function buildFrameworkPrompts(examples, options) {
|
|
1808
1808
|
// Note: FIRST_SESSION_PERSONALIZATION is NOT appended here — it is injected
|
|
1809
1809
|
// at per-request prompt-assembly time only for new threads (no prior messages).
|
|
1810
1810
|
// This prevents the ~1.5KB block from appearing on every request forever.
|
|
1811
|
-
const FRAMEWORK_CORE = buildFrameworkCore(examples);
|
|
1812
|
-
const FRAMEWORK_CORE_COMPACT = buildFrameworkCoreCompact(examples);
|
|
1811
|
+
const FRAMEWORK_CORE = buildFrameworkCore(examples, options);
|
|
1812
|
+
const FRAMEWORK_CORE_COMPACT = buildFrameworkCoreCompact(examples, options);
|
|
1813
1813
|
const PROD_FRAMEWORK_PROMPT = `## Agent-Native Framework — Production Mode
|
|
1814
1814
|
|
|
1815
1815
|
You are an AI agent in an agent-native application, running in **production mode**.
|
|
@@ -2109,15 +2109,12 @@ export async function loadResourcesForPrompt(owner, compact = false, selfAppId)
|
|
|
2109
2109
|
* from the environment so scheduler/A2A/HTTP call sites all see whatever
|
|
2110
2110
|
* org was just resolved for this request.
|
|
2111
2111
|
*/
|
|
2112
|
-
async function buildSchemaBlock(owner,
|
|
2113
|
-
// db-* tools are always registered (see createDbScriptEntries), in both dev
|
|
2114
|
-
// and prod. The legacy boolean is kept for call-site compatibility but
|
|
2115
|
-
// ignored — always advertise the tools to the agent.
|
|
2112
|
+
async function buildSchemaBlock(owner, hasRawDbTools = true) {
|
|
2116
2113
|
try {
|
|
2117
2114
|
return await loadSchemaPromptBlock({
|
|
2118
2115
|
owner,
|
|
2119
2116
|
orgId: getRequestOrgId() ?? null,
|
|
2120
|
-
hasRawDbTools
|
|
2117
|
+
hasRawDbTools,
|
|
2121
2118
|
});
|
|
2122
2119
|
}
|
|
2123
2120
|
catch {
|
|
@@ -2395,7 +2392,9 @@ export function createAgentChatPlugin(options) {
|
|
|
2395
2392
|
// Build the four assembled system prompt strings. These are static for the
|
|
2396
2393
|
// lifetime of this plugin instance — examples come from options once at
|
|
2397
2394
|
// startup, not per-request.
|
|
2398
|
-
const { PROD_FRAMEWORK_PROMPT, DEV_FRAMEWORK_PROMPT, PROD_FRAMEWORK_PROMPT_COMPACT, DEV_FRAMEWORK_PROMPT_COMPACT, } = buildFrameworkPrompts(options?.promptExamples
|
|
2395
|
+
const { PROD_FRAMEWORK_PROMPT, DEV_FRAMEWORK_PROMPT, PROD_FRAMEWORK_PROMPT_COMPACT, DEV_FRAMEWORK_PROMPT_COMPACT, } = buildFrameworkPrompts(options?.promptExamples, {
|
|
2396
|
+
databaseTools: options?.databaseTools,
|
|
2397
|
+
});
|
|
2399
2398
|
// Initialize MCP client. Merges file/env config + auto-detected binaries
|
|
2400
2399
|
// + any remote servers users have added through the settings UI (persisted
|
|
2401
2400
|
// in the settings table, scanned across all scopes so we never drop
|
|
@@ -2485,7 +2484,10 @@ export function createAgentChatPlugin(options) {
|
|
|
2485
2484
|
// Resource, chat, docs, db, and cross-agent scripts are available in both prod and dev modes
|
|
2486
2485
|
const resourceScripts = await createResourceScriptEntries();
|
|
2487
2486
|
const docsScripts = await createDocsScriptEntries();
|
|
2488
|
-
const
|
|
2487
|
+
const databaseToolsEnabled = options?.databaseTools !== false;
|
|
2488
|
+
const dbScripts = databaseToolsEnabled
|
|
2489
|
+
? await createDbScriptEntries()
|
|
2490
|
+
: {};
|
|
2489
2491
|
const refreshScreenTool = createRefreshScreenEntry();
|
|
2490
2492
|
const frameworkContextTool = createFrameworkContextEntry();
|
|
2491
2493
|
const leanPrompt = options?.leanPrompt === true;
|
|
@@ -2512,7 +2514,9 @@ export function createAgentChatPlugin(options) {
|
|
|
2512
2514
|
if (canToggle) {
|
|
2513
2515
|
try {
|
|
2514
2516
|
const { createDevScriptRegistry } = await import("../scripts/dev/index.js");
|
|
2515
|
-
devScriptsForA2A = await createDevScriptRegistry(
|
|
2517
|
+
devScriptsForA2A = await createDevScriptRegistry({
|
|
2518
|
+
databaseTools: databaseToolsEnabled,
|
|
2519
|
+
});
|
|
2516
2520
|
}
|
|
2517
2521
|
catch { }
|
|
2518
2522
|
// Auto-discover template action files and register as bash-based tools.
|
|
@@ -3111,7 +3115,7 @@ export function createAgentChatPlugin(options) {
|
|
|
3111
3115
|
const resources = await loadResourcesForPrompt(owner, lazyContext, options?.appId);
|
|
3112
3116
|
const schemaBlock = lazyContext
|
|
3113
3117
|
? ""
|
|
3114
|
-
: await buildSchemaBlock(owner, devActive);
|
|
3118
|
+
: await buildSchemaBlock(owner, databaseToolsEnabled && devActive);
|
|
3115
3119
|
const extra = await resolveExtraContext(context.event, owner);
|
|
3116
3120
|
const runtimeContext = runtimeContextForEvent(context.event);
|
|
3117
3121
|
const systemPrompt = devActive
|
|
@@ -3349,7 +3353,7 @@ export function createAgentChatPlugin(options) {
|
|
|
3349
3353
|
const resources = await loadResourcesForPrompt(SHARED_OWNER, lazyContext, options?.appId);
|
|
3350
3354
|
const schemaBlock = lazyContext
|
|
3351
3355
|
? ""
|
|
3352
|
-
: await buildSchemaBlock(SHARED_OWNER,
|
|
3356
|
+
: await buildSchemaBlock(SHARED_OWNER, databaseToolsEnabled);
|
|
3353
3357
|
// Build the MCP handler's own prompt — always use the bash-based
|
|
3354
3358
|
// dev prompt in dev mode because mcpActions routes template actions
|
|
3355
3359
|
// through bash (`devScriptsForA2A`), regardless of `nativeActionsInDev`.
|
|
@@ -3772,7 +3776,9 @@ export function createAgentChatPlugin(options) {
|
|
|
3772
3776
|
// DB-admin UI + HTTP routes (which gate on the environment, not the
|
|
3773
3777
|
// Code-mode toggle), so the agent has the same DB-admin capability the UI
|
|
3774
3778
|
// does whenever it is available — true agent/UI parity, in App or Code mode.
|
|
3775
|
-
const dbAdminScripts = process.env.NODE_ENV === "development"
|
|
3779
|
+
const dbAdminScripts = databaseToolsEnabled && process.env.NODE_ENV === "development"
|
|
3780
|
+
? createDbAdminAgentTools()
|
|
3781
|
+
: {};
|
|
3776
3782
|
const prodActions = attachToolSearch({
|
|
3777
3783
|
...templateScripts,
|
|
3778
3784
|
...resourceScripts,
|
|
@@ -3953,11 +3959,11 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
3953
3959
|
modelOverlay);
|
|
3954
3960
|
}
|
|
3955
3961
|
const resources = await loadResourcesForPrompt(owner, lazyContext, options?.appId);
|
|
3956
|
-
// In lazy context mode, skip embedding the full schema
|
|
3957
|
-
//
|
|
3962
|
+
// In lazy context mode, skip embedding the full schema. When database
|
|
3963
|
+
// tools are enabled the agent can call `db-schema` on demand.
|
|
3958
3964
|
const schemaBlock = lazyContext
|
|
3959
3965
|
? ""
|
|
3960
|
-
: await buildSchemaBlock(owner,
|
|
3966
|
+
: await buildSchemaBlock(owner, databaseToolsEnabled);
|
|
3961
3967
|
return setSystemPromptOnContext(basePrompt +
|
|
3962
3968
|
personalizationBlock +
|
|
3963
3969
|
runtimeContext +
|
|
@@ -4116,7 +4122,9 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
4116
4122
|
...coreAttachmentTools,
|
|
4117
4123
|
...browserTools,
|
|
4118
4124
|
...mcpActionEntries,
|
|
4119
|
-
...(await createDevScriptRegistry(
|
|
4125
|
+
...(await createDevScriptRegistry({
|
|
4126
|
+
databaseTools: databaseToolsEnabled,
|
|
4127
|
+
})),
|
|
4120
4128
|
// Full-database admin tools (NODE_ENV=development gate — see
|
|
4121
4129
|
// dbAdminScripts; also in prodActions so App mode has them too).
|
|
4122
4130
|
...dbAdminScripts,
|
|
@@ -4147,7 +4155,7 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
4147
4155
|
return setSystemPromptOnContext(leanBasePrompt + runtimeContext + extra + modelOverlay);
|
|
4148
4156
|
}
|
|
4149
4157
|
const resources = await loadResourcesForPrompt(owner, lazyContext, options?.appId);
|
|
4150
|
-
const schemaBlock = lazyContext
|
|
4158
|
+
const schemaBlock = lazyContext || !databaseToolsEnabled
|
|
4151
4159
|
? ""
|
|
4152
4160
|
: await buildSchemaBlock(owner, true);
|
|
4153
4161
|
return setSystemPromptOnContext(devPrompt +
|
|
@@ -5684,7 +5692,7 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
5684
5692
|
const resources = await loadResourcesForPrompt(owner, lazyContext, options?.appId);
|
|
5685
5693
|
const schemaBlock = lazyContext
|
|
5686
5694
|
? ""
|
|
5687
|
-
: await buildSchemaBlock(owner,
|
|
5695
|
+
: await buildSchemaBlock(owner, databaseToolsEnabled);
|
|
5688
5696
|
return basePrompt + resources + schemaBlock;
|
|
5689
5697
|
},
|
|
5690
5698
|
apiKey: options?.apiKey ?? process.env.ANTHROPIC_API_KEY,
|
|
@@ -5775,7 +5783,7 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
5775
5783
|
const resources = await loadResourcesForPrompt(owner, lazyContext, options?.appId);
|
|
5776
5784
|
const schemaBlock = lazyContext
|
|
5777
5785
|
? ""
|
|
5778
|
-
: await buildSchemaBlock(owner,
|
|
5786
|
+
: await buildSchemaBlock(owner, databaseToolsEnabled);
|
|
5779
5787
|
return basePrompt + resources + schemaBlock;
|
|
5780
5788
|
},
|
|
5781
5789
|
apiKey: options?.apiKey ?? process.env.ANTHROPIC_API_KEY,
|