@amodalai/runtime 0.3.49 → 0.3.50

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.
Files changed (161) hide show
  1. package/dist/src/agent/completion-tools.integration.test.d.ts +6 -0
  2. package/dist/src/agent/completion-tools.integration.test.js +263 -0
  3. package/dist/src/agent/completion-tools.integration.test.js.map +1 -0
  4. package/dist/src/agent/load-template-plan.integration.test.d.ts +6 -0
  5. package/dist/src/agent/load-template-plan.integration.test.js +152 -0
  6. package/dist/src/agent/load-template-plan.integration.test.js.map +1 -0
  7. package/dist/src/agent/local-server.js +64 -9
  8. package/dist/src/agent/local-server.js.map +1 -1
  9. package/dist/src/agent/loop-types.d.ts +12 -2
  10. package/dist/src/agent/loop.test.js +5 -2
  11. package/dist/src/agent/loop.test.js.map +1 -1
  12. package/dist/src/agent/propose-plan.integration.test.d.ts +6 -0
  13. package/dist/src/agent/propose-plan.integration.test.js +186 -0
  14. package/dist/src/agent/propose-plan.integration.test.js.map +1 -0
  15. package/dist/src/agent/routes/package-updates.d.ts +42 -0
  16. package/dist/src/agent/routes/package-updates.js +207 -0
  17. package/dist/src/agent/routes/package-updates.js.map +1 -0
  18. package/dist/src/agent/routes/package-updates.test.d.ts +6 -0
  19. package/dist/src/agent/routes/package-updates.test.js +25 -0
  20. package/dist/src/agent/routes/package-updates.test.js.map +1 -0
  21. package/dist/src/agent/setup-state.integration.test.d.ts +6 -0
  22. package/dist/src/agent/setup-state.integration.test.js +182 -0
  23. package/dist/src/agent/setup-state.integration.test.js.map +1 -0
  24. package/dist/src/agent/snapshot-server.js +1 -0
  25. package/dist/src/agent/snapshot-server.js.map +1 -1
  26. package/dist/src/agent/states/executing.d.ts +6 -0
  27. package/dist/src/agent/states/executing.js +63 -27
  28. package/dist/src/agent/states/executing.js.map +1 -1
  29. package/dist/src/agent/states/streaming.js +18 -2
  30. package/dist/src/agent/states/streaming.js.map +1 -1
  31. package/dist/src/agent/tool-executor-local.js +11 -2
  32. package/dist/src/agent/tool-executor-local.js.map +1 -1
  33. package/dist/src/agent/validate-connection.integration.test.d.ts +6 -0
  34. package/dist/src/agent/validate-connection.integration.test.js +160 -0
  35. package/dist/src/agent/validate-connection.integration.test.js.map +1 -0
  36. package/dist/src/api/create-agent.js +1 -0
  37. package/dist/src/api/create-agent.js.map +1 -1
  38. package/dist/src/index.d.ts +2 -0
  39. package/dist/src/index.js +9 -0
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/intent/executor.d.ts +48 -0
  42. package/dist/src/intent/executor.js +420 -0
  43. package/dist/src/intent/executor.js.map +1 -0
  44. package/dist/src/intent/executor.test.d.ts +6 -0
  45. package/dist/src/intent/executor.test.js +543 -0
  46. package/dist/src/intent/executor.test.js.map +1 -0
  47. package/dist/src/intent/index.d.ts +10 -0
  48. package/dist/src/intent/index.js +9 -0
  49. package/dist/src/intent/index.js.map +1 -0
  50. package/dist/src/intent/loader.d.ts +16 -0
  51. package/dist/src/intent/loader.js +112 -0
  52. package/dist/src/intent/loader.js.map +1 -0
  53. package/dist/src/intent/loader.test.d.ts +6 -0
  54. package/dist/src/intent/loader.test.js +86 -0
  55. package/dist/src/intent/loader.test.js.map +1 -0
  56. package/dist/src/intent/matcher.d.ts +26 -0
  57. package/dist/src/intent/matcher.js +29 -0
  58. package/dist/src/intent/matcher.js.map +1 -0
  59. package/dist/src/intent/matcher.test.d.ts +6 -0
  60. package/dist/src/intent/matcher.test.js +53 -0
  61. package/dist/src/intent/matcher.test.js.map +1 -0
  62. package/dist/src/intent/onboarding.e2e.test.d.ts +6 -0
  63. package/dist/src/intent/onboarding.e2e.test.js +394 -0
  64. package/dist/src/intent/onboarding.e2e.test.js.map +1 -0
  65. package/dist/src/routes/ai-stream.js +96 -3
  66. package/dist/src/routes/ai-stream.js.map +1 -1
  67. package/dist/src/routes/session-resolver.js +16 -0
  68. package/dist/src/routes/session-resolver.js.map +1 -1
  69. package/dist/src/session/credential-scrubber.d.ts +35 -0
  70. package/dist/src/session/credential-scrubber.js +150 -0
  71. package/dist/src/session/credential-scrubber.js.map +1 -0
  72. package/dist/src/session/credential-scrubber.test.d.ts +6 -0
  73. package/dist/src/session/credential-scrubber.test.js +192 -0
  74. package/dist/src/session/credential-scrubber.test.js.map +1 -0
  75. package/dist/src/session/manager.intent.test.d.ts +6 -0
  76. package/dist/src/session/manager.intent.test.js +197 -0
  77. package/dist/src/session/manager.intent.test.js.map +1 -0
  78. package/dist/src/session/manager.js +114 -0
  79. package/dist/src/session/manager.js.map +1 -1
  80. package/dist/src/session/session-builder.d.ts +16 -1
  81. package/dist/src/session/session-builder.js +209 -41
  82. package/dist/src/session/session-builder.js.map +1 -1
  83. package/dist/src/session/store.js +48 -2
  84. package/dist/src/session/store.js.map +1 -1
  85. package/dist/src/session/tool-context-factory.js +12 -0
  86. package/dist/src/session/tool-context-factory.js.map +1 -1
  87. package/dist/src/session/types.d.ts +12 -1
  88. package/dist/src/setup/commit-setup.d.ts +94 -0
  89. package/dist/src/setup/commit-setup.js +154 -0
  90. package/dist/src/setup/commit-setup.js.map +1 -0
  91. package/dist/src/setup/commit-setup.test.d.ts +6 -0
  92. package/dist/src/setup/commit-setup.test.js +310 -0
  93. package/dist/src/setup/commit-setup.test.js.map +1 -0
  94. package/dist/src/tools/README.md +270 -0
  95. package/dist/src/tools/admin-tools.d.ts +27 -0
  96. package/dist/src/tools/admin-tools.js +734 -0
  97. package/dist/src/tools/admin-tools.js.map +1 -0
  98. package/dist/src/tools/agent-package-discovery.test.d.ts +6 -0
  99. package/dist/src/tools/agent-package-discovery.test.js +90 -0
  100. package/dist/src/tools/agent-package-discovery.test.js.map +1 -0
  101. package/dist/src/tools/builtin/ask-choice.d.ts +8 -0
  102. package/dist/src/tools/builtin/ask-choice.js +54 -0
  103. package/dist/src/tools/builtin/ask-choice.js.map +1 -0
  104. package/dist/src/tools/context.d.ts +154 -0
  105. package/dist/src/tools/context.js +30 -0
  106. package/dist/src/tools/context.js.map +1 -0
  107. package/dist/src/tools/custom-tool-adapter.d.ts +33 -2
  108. package/dist/src/tools/custom-tool-adapter.js +38 -1
  109. package/dist/src/tools/custom-tool-adapter.js.map +1 -1
  110. package/dist/src/tools/custom-tool-adapter.test.js +48 -0
  111. package/dist/src/tools/custom-tool-adapter.test.js.map +1 -1
  112. package/dist/src/tools/fetch-url-tool.js +2 -0
  113. package/dist/src/tools/fetch-url-tool.js.map +1 -1
  114. package/dist/src/tools/file-tools.js +16 -0
  115. package/dist/src/tools/file-tools.js.map +1 -1
  116. package/dist/src/tools/fs/local.test.d.ts +6 -0
  117. package/dist/src/tools/fs/local.test.js +126 -0
  118. package/dist/src/tools/fs/local.test.js.map +1 -0
  119. package/dist/src/tools/index.d.ts +35 -0
  120. package/dist/src/tools/index.js +11 -0
  121. package/dist/src/tools/index.js.map +1 -0
  122. package/dist/src/tools/mcp-tool-adapter.js +2 -0
  123. package/dist/src/tools/mcp-tool-adapter.js.map +1 -1
  124. package/dist/src/tools/memory-tool.js +23 -1
  125. package/dist/src/tools/memory-tool.js.map +1 -1
  126. package/dist/src/tools/permissions.d.ts +36 -0
  127. package/dist/src/tools/permissions.js +97 -0
  128. package/dist/src/tools/permissions.js.map +1 -0
  129. package/dist/src/tools/permissions.test.d.ts +6 -0
  130. package/dist/src/tools/permissions.test.js +62 -0
  131. package/dist/src/tools/permissions.test.js.map +1 -0
  132. package/dist/src/tools/request-tool.js +2 -0
  133. package/dist/src/tools/request-tool.js.map +1 -1
  134. package/dist/src/tools/sdk-context.d.ts +43 -0
  135. package/dist/src/tools/sdk-context.js +94 -0
  136. package/dist/src/tools/sdk-context.js.map +1 -0
  137. package/dist/src/tools/sdk-context.test.d.ts +6 -0
  138. package/dist/src/tools/sdk-context.test.js +134 -0
  139. package/dist/src/tools/sdk-context.test.js.map +1 -0
  140. package/dist/src/tools/store-tools.js +6 -0
  141. package/dist/src/tools/store-tools.js.map +1 -1
  142. package/dist/src/tools/types.d.ts +53 -14
  143. package/dist/src/tools/web-search-tool.js +2 -0
  144. package/dist/src/tools/web-search-tool.js.map +1 -1
  145. package/dist/src/types.d.ts +164 -28
  146. package/dist/src/types.js +9 -3
  147. package/dist/src/types.js.map +1 -1
  148. package/dist/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +16 -4
  150. package/dist/src/tools/agent-config-tool.d.ts +0 -7
  151. package/dist/src/tools/agent-config-tool.js +0 -78
  152. package/dist/src/tools/agent-config-tool.js.map +0 -1
  153. package/dist/src/tools/collect-secret-tool.d.ts +0 -7
  154. package/dist/src/tools/collect-secret-tool.js +0 -47
  155. package/dist/src/tools/collect-secret-tool.js.map +0 -1
  156. package/dist/src/tools/fs/http.d.ts +0 -37
  157. package/dist/src/tools/fs/http.js +0 -88
  158. package/dist/src/tools/fs/http.js.map +0 -1
  159. package/dist/src/tools/http-file-tools.d.ts +0 -13
  160. package/dist/src/tools/http-file-tools.js +0 -146
  161. package/dist/src/tools/http-file-tools.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-tools.js","sourceRoot":"","sources":["../../../src/tools/admin-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export {};
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Integration test for Phase 0.3 — confirms the existing tool-loader
8
+ * (`@amodalai/core/repo/tool-loader.ts`) walks an agent package's
9
+ * `tools/<name>/{tool.json, handler.ts}` layout and that the new
10
+ * permission loader (`@amodalai/runtime/tools/permissions.ts`) reads
11
+ * the same package's `package.json#amodal.permissions` declaration.
12
+ *
13
+ * The build plan calls for "auto-discovery from `<agentPackage>/tools/*\/`"
14
+ * — same path the runtime already uses for user-authored custom tools.
15
+ * This test pins that contract so future refactors can't silently drop
16
+ * agent-package support.
17
+ */
18
+ import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
19
+ import { tmpdir } from 'node:os';
20
+ import * as path from 'node:path';
21
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
22
+ import { loadTools } from '@amodalai/core';
23
+ import { loadPackagePermissions } from './permissions.js';
24
+ describe('agent-package tool auto-discovery (Phase 0.3 contract)', () => {
25
+ let pkgDir;
26
+ beforeEach(async () => {
27
+ pkgDir = await mkdtemp(path.join(tmpdir(), 'agent-pkg-'));
28
+ });
29
+ afterEach(async () => {
30
+ await rm(pkgDir, { recursive: true, force: true });
31
+ });
32
+ it('discovers tools under <pkgDir>/tools/<name>/ and reads declared permissions from package.json#amodal.permissions', async () => {
33
+ // Lay out an agent package the way agent-admin / connection-* / template-* do.
34
+ await writeFile(path.join(pkgDir, 'package.json'), JSON.stringify({
35
+ name: '@amodalai/agent-admin',
36
+ amodal: {
37
+ permissions: ['fs.read', 'fs.write', 'db.read', 'db.write'],
38
+ },
39
+ }), 'utf-8');
40
+ const toolDir = path.join(pkgDir, 'tools', 'show_preview');
41
+ await mkdir(toolDir, { recursive: true });
42
+ await writeFile(path.join(toolDir, 'tool.json'), JSON.stringify({
43
+ description: 'Show an agent card preview inline in chat.',
44
+ parameters: {
45
+ type: 'object',
46
+ properties: { title: { type: 'string' } },
47
+ required: ['title'],
48
+ },
49
+ }), 'utf-8');
50
+ await writeFile(path.join(toolDir, 'handler.ts'),
51
+ // No imports — just the bare shape that the runtime's tool executor
52
+ // dynamically loads. Phase 0 doesn't compile/execute it; the
53
+ // discovery test only cares that the loader sees the file.
54
+ 'export default async () => ({ ok: true });\n', 'utf-8');
55
+ const [tools, permissions] = await Promise.all([
56
+ loadTools(pkgDir),
57
+ loadPackagePermissions(pkgDir),
58
+ ]);
59
+ expect(tools).toHaveLength(1);
60
+ expect(tools[0]).toMatchObject({
61
+ name: 'show_preview',
62
+ description: 'Show an agent card preview inline in chat.',
63
+ handlerPath: path.join(toolDir, 'handler.ts'),
64
+ });
65
+ expect(permissions).toEqual({
66
+ packageName: '@amodalai/agent-admin',
67
+ permissions: ['fs.read', 'fs.write', 'db.read', 'db.write'],
68
+ });
69
+ });
70
+ it('returns empty permissions when an agent package omits the amodal.permissions block (default-deny)', async () => {
71
+ await writeFile(path.join(pkgDir, 'package.json'), JSON.stringify({ name: '@amodalai/some-template' }), 'utf-8');
72
+ // Tool dir present but no permissions declared.
73
+ const toolDir = path.join(pkgDir, 'tools', 'noop');
74
+ await mkdir(toolDir, { recursive: true });
75
+ await writeFile(path.join(toolDir, 'tool.json'), JSON.stringify({ description: 'Does nothing.' }), 'utf-8');
76
+ await writeFile(path.join(toolDir, 'handler.ts'), 'export default async () => ({});\n', 'utf-8');
77
+ const [tools, permissions] = await Promise.all([
78
+ loadTools(pkgDir),
79
+ loadPackagePermissions(pkgDir),
80
+ ]);
81
+ expect(tools).toHaveLength(1);
82
+ expect(permissions.permissions).toEqual([]);
83
+ });
84
+ it('returns empty arrays for a directory without tools/', async () => {
85
+ await writeFile(path.join(pkgDir, 'package.json'), JSON.stringify({ name: '@amodalai/empty' }), 'utf-8');
86
+ const tools = await loadTools(pkgDir);
87
+ expect(tools).toEqual([]);
88
+ });
89
+ });
90
+ //# sourceMappingURL=agent-package-discovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-package-discovery.test.js","sourceRoot":"","sources":["../../../src/tools/agent-package-discovery.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ToolDefinition } from '../types.js';
7
+ export declare const ASK_CHOICE_TOOL_NAME = "ask_choice";
8
+ export declare function createAskChoiceTool(): ToolDefinition;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * `ask_choice` — runtime built-in tool that emits a single- or
8
+ * multi-select question rendered inline in chat as a row of buttons.
9
+ *
10
+ * Promoted from `registerAdminTools` to a runtime built-in (Phase 0.6)
11
+ * so every agent gets it automatically without needing to declare a
12
+ * custom tool. Templates and custom agents can use the same primitive
13
+ * to ask the user a structured question with concrete options — no
14
+ * need to reinvent button-based prompts per agent package.
15
+ *
16
+ * The tool emits the existing `ask_choice` SSE event so the chat
17
+ * widget's existing renderer keeps working unchanged.
18
+ */
19
+ import { z } from 'zod';
20
+ import { SSEEventType } from '../../types.js';
21
+ export const ASK_CHOICE_TOOL_NAME = 'ask_choice';
22
+ export function createAskChoiceTool() {
23
+ return {
24
+ description: "Ask the user a single- or multi-select question with predefined options. Renders inline as buttons; the user's choice arrives as their next message.",
25
+ parameters: z.object({
26
+ question: z.string().describe('Short question shown above the buttons'),
27
+ options: z
28
+ .array(z.object({ label: z.string(), value: z.string() }))
29
+ .min(2)
30
+ .describe('Choice options. `label` is shown on the button; `value` is what the user "says".'),
31
+ multi: z
32
+ .boolean()
33
+ .default(false)
34
+ .describe('When true, the user can pick more than one option before submitting'),
35
+ }),
36
+ readOnly: true,
37
+ metadata: { category: 'system' },
38
+ runningLabel: 'Asking',
39
+ completedLabel: 'Asked',
40
+ async execute(params, ctx) {
41
+ const askId = `choice_${ctx.sessionId}_${Date.now().toString(36)}`;
42
+ ctx.emit?.({
43
+ type: SSEEventType.AskChoice,
44
+ ask_id: askId,
45
+ question: params.question,
46
+ options: params.options,
47
+ multi: params.multi,
48
+ timestamp: new Date().toISOString(),
49
+ });
50
+ return { ok: true, ask_id: askId };
51
+ },
52
+ };
53
+ }
54
+ //# sourceMappingURL=ask-choice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-choice.js","sourceRoot":"","sources":["../../../../src/tools/builtin/ask-choice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,WAAW,EACT,sJAAsJ;QACxJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACvE,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;iBACvD,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,kFAAkF,CACnF;YACH,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,qEAAqE,CAAC;SACnF,CAAC;QACF,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC;QAC9B,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,OAAO;QAEvB,KAAK,CAAC,OAAO,CACX,MAA0F,EAC1F,GAAgB;YAEhB,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,EAAE,YAAY,CAAC,SAAS;gBAC5B,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Custom-tool SDK — `ToolContext` and supporting types.
8
+ *
9
+ * This is the public surface custom tool handlers in agent packages
10
+ * (`agent-admin`, `connection-*`, `template-*`) program against. It sits
11
+ * alongside (and is structurally a superset of) the legacy
12
+ * `CustomToolContext` from `@amodalai/types`: existing v0 tools keep
13
+ * working through that interface, while new tools opt into the richer
14
+ * shape here.
15
+ *
16
+ * Authoring contract:
17
+ * - Tools live at `<agentPackage>/tools/<name>/{tool.json, handler.ts}`.
18
+ * - The runtime auto-discovers them on agent load (Phase 0.3).
19
+ * - The package's `package.json#amodal.permissions` declares which
20
+ * `ctx.*` capabilities the handlers may use; the runtime throws
21
+ * `PermissionError` at the boundary if a handler reaches for a
22
+ * capability the package didn't declare (Phase 0.4 + 0.5).
23
+ *
24
+ * Deliberate omission: there is no `ctx.saveSecret`. Credentials enter
25
+ * the system through the Configure modal (`POST /api/secrets/:name`)
26
+ * or the OAuth callback — never through tool args, never through chat
27
+ * history, never through the LLM's reasoning. Phase 0 closes that
28
+ * surface; future phases must keep it closed.
29
+ */
30
+ import type { Block } from '@amodalai/types';
31
+ import type { FsBackend } from './fs/index.js';
32
+ /**
33
+ * Permissions a tool's package can declare in
34
+ * `package.json#amodal.permissions` to opt into capability tiers.
35
+ *
36
+ * Default-deny: a handler that reaches for `ctx.fs.writeRepoFile` from a
37
+ * package that didn't declare `fs.write` throws `PermissionError`.
38
+ *
39
+ * Note the absence of a `secrets.*` tier — secrets are not reachable
40
+ * through any tool. That is the core security invariant of the SDK.
41
+ */
42
+ export type ToolPermission = 'fs.read' | 'fs.write' | 'db.read' | 'db.write' | 'net.fetch';
43
+ /**
44
+ * Structured event a tool emits to the chat surface. The widget routes
45
+ * each variant to the right rendering path:
46
+ * - `text` is appended as agent prose alongside the LLM's stream.
47
+ * - `block` is dispatched into the message list and rendered by the
48
+ * widget's built-in renderers (or by Studio's `inlineBlockRenderers`
49
+ * for Studio-owned types like `connection_panel`).
50
+ * - `error` surfaces an inline error notice and is logged server-side.
51
+ */
52
+ export type EmitEvent = {
53
+ type: 'text';
54
+ text: string;
55
+ } | {
56
+ type: 'block';
57
+ block: Block;
58
+ } | {
59
+ type: 'error';
60
+ message: string;
61
+ };
62
+ /**
63
+ * Minimal Drizzle-shaped query interface exposed via `ctx.db`. Kept
64
+ * intentionally narrow — handlers should use the per-domain query
65
+ * modules in `@amodalai/db/queries/<domain>.ts` (Midday pattern), which
66
+ * accept a `db` first arg and return typed results.
67
+ *
68
+ * `ctx.db` is scoped to the agent's session: the runtime injects the
69
+ * connection bound to the current agent + scope.
70
+ */
71
+ export interface ToolDbHandle {
72
+ /**
73
+ * Execute a parameterized query and return raw rows. Prefer the
74
+ * per-domain query modules over raw SQL; this is here for cases where
75
+ * a tool genuinely needs to compose its own statement.
76
+ */
77
+ execute<T = unknown>(query: {
78
+ sql: string;
79
+ params?: unknown[];
80
+ }): Promise<T[]>;
81
+ }
82
+ /**
83
+ * The context object passed as the second argument to every custom-tool
84
+ * handler. The first argument is the validated `params` object; the
85
+ * runtime parses `tool.json#parameters` and rejects malformed calls
86
+ * before reaching `execute`.
87
+ *
88
+ * **What the runtime guarantees:**
89
+ * - `signal` is aborted on cancellation, timeout, or session end.
90
+ * - `agentId` and `scopeId` reflect the live session, not stale state.
91
+ * - `fs`, `db`, and `fetch` throw `PermissionError` when the package
92
+ * didn't declare the matching capability.
93
+ * - `emit` may be called any number of times per invocation — events
94
+ * are streamed in the order they're emitted.
95
+ */
96
+ export interface ToolContext {
97
+ /** The agent this tool is running on behalf of. */
98
+ agentId: string;
99
+ /** Per-user session isolation key. Empty string = agent-level (no scope). */
100
+ scopeId: string;
101
+ /** Scope context key-value pairs associated with this scope, if any. */
102
+ scopeContext?: Record<string, string>;
103
+ /** Session id for log correlation. */
104
+ sessionId: string;
105
+ /**
106
+ * Emit a structured event. The chat surface routes the event to the
107
+ * right renderer (text into the agent prose stream, blocks into the
108
+ * inline-block list, errors into the error notice line).
109
+ *
110
+ * Tools that don't produce inline UI never call `emit`.
111
+ */
112
+ emit(event: EmitEvent): void;
113
+ /** Append a single text fragment — sugar for `emit({type:'text', text})`. */
114
+ log(message: string): void;
115
+ /**
116
+ * Repo-relative file access. Requires `fs.read` / `fs.write` in
117
+ * `package.json#amodal.permissions`. Sandboxed to the agent's repo
118
+ * root — paths that escape the sandbox throw `FsSandboxError`.
119
+ */
120
+ fs: FsBackend;
121
+ /**
122
+ * Drizzle handle scoped to the agent's session. Requires `db.read` /
123
+ * `db.write` in `package.json#amodal.permissions`.
124
+ */
125
+ db: ToolDbHandle;
126
+ /**
127
+ * HTTP fetch. Requires `net.fetch` in `package.json#amodal.permissions`.
128
+ * The signature mirrors `globalThis.fetch`. The runtime injects
129
+ * `ctx.signal` automatically when the caller doesn't pass one, so
130
+ * outbound requests are cancelled with the tool invocation.
131
+ */
132
+ fetch(input: string | URL, init?: RequestInit): Promise<Response>;
133
+ /**
134
+ * Aborted on tool timeout, session cancellation, or runtime shutdown.
135
+ * Tools that perform their own awaits (sleep, polling) should listen
136
+ * to this rather than spinning past it.
137
+ */
138
+ signal: AbortSignal;
139
+ }
140
+ /**
141
+ * Thrown when a tool reaches for a capability its package didn't
142
+ * declare in `package.json#amodal.permissions`. The message names both
143
+ * the offending tool and the missing permission so the author can fix
144
+ * the manifest in one place.
145
+ */
146
+ export declare class PermissionError extends Error {
147
+ /** Tool that triggered the check. */
148
+ readonly toolName: string;
149
+ /** Permission that was missing. */
150
+ readonly permission: ToolPermission;
151
+ /** npm package name that owns the tool. */
152
+ readonly packageName: string;
153
+ constructor(toolName: string, permission: ToolPermission, packageName: string);
154
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Thrown when a tool reaches for a capability its package didn't
8
+ * declare in `package.json#amodal.permissions`. The message names both
9
+ * the offending tool and the missing permission so the author can fix
10
+ * the manifest in one place.
11
+ */
12
+ export class PermissionError extends Error {
13
+ /** Tool that triggered the check. */
14
+ toolName;
15
+ /** Permission that was missing. */
16
+ permission;
17
+ /** npm package name that owns the tool. */
18
+ packageName;
19
+ constructor(toolName, permission, packageName) {
20
+ super(`Tool "${toolName}" tried to use capability "${permission}" but ` +
21
+ `package "${packageName}" did not declare it in ` +
22
+ `package.json#amodal.permissions. Add "${permission}" to the ` +
23
+ `permissions array to grant access.`);
24
+ this.name = 'PermissionError';
25
+ this.toolName = toolName;
26
+ this.permission = permission;
27
+ this.packageName = packageName;
28
+ }
29
+ }
30
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/tools/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmKH;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,qCAAqC;IAC5B,QAAQ,CAAS;IAC1B,mCAAmC;IAC1B,UAAU,CAAiB;IACpC,2CAA2C;IAClC,WAAW,CAAS;IAE7B,YACE,QAAgB,EAChB,UAA0B,EAC1B,WAAmB;QAEnB,KAAK,CACH,SAAS,QAAQ,8BAA8B,UAAU,QAAQ;YAC/D,YAAY,WAAW,0BAA0B;YACjD,yCAAyC,UAAU,WAAW;YAC9D,oCAAoC,CACvC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2026 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import type { LoadedTool, CustomToolExecutor } from '@amodalai/types';
6
+ import type { CustomToolCompletionOps, CustomToolExecutor, CustomToolPlanOps, CustomToolSetupStateOps, FsBackend, LoadedTool } from '@amodalai/types';
7
7
  import type { ToolDefinition } from './types.js';
8
8
  export interface CustomToolSessionContext {
9
9
  config: {
@@ -30,7 +30,38 @@ export interface CustomToolSessionContext {
30
30
  exitCode: number;
31
31
  }>;
32
32
  };
33
- fs?: import('@amodalai/types').FsBackend;
33
+ /**
34
+ * Sandboxed fs backend the runtime exposes to handlers via `ctx.fs`.
35
+ * Phase A's `validate_connection` is the first heavy consumer (reads
36
+ * `node_modules/<pkg>/validate.ts` for connection probes); future
37
+ * tools follow the same pattern. Undefined when no `repoRoot` is
38
+ * resolvable for the session.
39
+ */
40
+ fs?: FsBackend;
41
+ /** Repo root the fs backend is sandboxed against, for path computations. */
42
+ repoRoot?: string;
43
+ /** Stable id of the agent the tool is running on behalf of. */
44
+ agentId?: string;
45
+ /**
46
+ * Factory that produces a `CustomToolSetupStateOps` bound to the
47
+ * active scope (Phase B). The session ctx caller passes a function
48
+ * rather than the ops directly because `scopeId` is per-runtime-call,
49
+ * not per-session — the adapter calls this with the live runtime
50
+ * scope when building each handler ctx.
51
+ */
52
+ setupStateFactory?: (scopeId: string) => CustomToolSetupStateOps;
53
+ /**
54
+ * Plan composer ops (Phase C). The session ctx provides this when
55
+ * a `repoPath` is available; the handler calls `ctx.plan.compose`
56
+ * with the template package name and gets back a typed SetupPlan.
57
+ */
58
+ plan?: CustomToolPlanOps;
59
+ /**
60
+ * Setup-completion ops factory (Phase E). The session ctx caller
61
+ * passes a function rather than the ops directly because `scopeId`
62
+ * varies per runtime call. Same shape as `setupStateFactory`.
63
+ */
64
+ completionFactory?: (scopeId: string) => CustomToolCompletionOps;
34
65
  }
35
66
  /**
36
67
  * Create a ToolDefinition from a LoadedTool.
@@ -132,8 +132,42 @@ function buildCustomToolContext(tool, sessionCtx, runtimeCtx) {
132
132
  log(message) {
133
133
  runtimeCtx.log(message);
134
134
  },
135
+ emit(event) {
136
+ // Structural pass-through — the @amodalai/types CustomToolInlineEvent
137
+ // union and the runtime-internal ToolInlineEvent are structurally
138
+ // identical (same SSE event shapes) but live in two packages that
139
+ // each declare their own SSEEventType enum. Cast through unknown
140
+ // at the boundary; the legacy custom-tool surface keeps emitting
141
+ // exactly the same SSE wire shape it always did.
142
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- cross-package SSE type alignment
143
+ runtimeCtx.emit?.(event);
144
+ },
145
+ setLabel(labelOpts) {
146
+ runtimeCtx.setLabel?.(labelOpts);
147
+ },
135
148
  signal: combinedSignal,
136
- fs: sessionCtx.fs,
149
+ // Phase A: optional SDK fields populated when the runtime knows them.
150
+ // Handlers that don't reach for these (i.e. legacy custom tools) keep
151
+ // working unchanged because every field below is optional.
152
+ ...(sessionCtx.fs ? { fs: sessionCtx.fs } : {}),
153
+ ...(sessionCtx.agentId ? { agentId: sessionCtx.agentId } : {}),
154
+ // Phase B: setupState ops factory closes over the live scopeId so
155
+ // the handler doesn't need to plumb identity through every call.
156
+ ...(sessionCtx.setupStateFactory
157
+ ? { setupState: sessionCtx.setupStateFactory(runtimeCtx.scopeId) }
158
+ : {}),
159
+ // Phase C: plan composer ops. Bound to the agent's repoPath at
160
+ // session-build time; identity is repo-scoped, not scope-scoped,
161
+ // so the same ops object works for every handler in the session.
162
+ ...(sessionCtx.plan ? { plan: sessionCtx.plan } : {}),
163
+ // Phase E: completion ops factory. Like setupStateFactory, the
164
+ // factory closes over (agentId, db, fs) and binds the live
165
+ // scopeId per call so concurrent scopes don't collide.
166
+ ...(sessionCtx.completionFactory
167
+ ? { completion: sessionCtx.completionFactory(runtimeCtx.scopeId) }
168
+ : {}),
169
+ scopeId: runtimeCtx.scopeId,
170
+ sessionId: runtimeCtx.sessionId,
137
171
  };
138
172
  }
139
173
  // ---------------------------------------------------------------------------
@@ -157,6 +191,9 @@ export function createCustomToolDefinition(tool, executor, sessionCtx) {
157
191
  metadata: {
158
192
  category: 'custom',
159
193
  },
194
+ ...(tool.runningLabel ? { runningLabel: tool.runningLabel } : {}),
195
+ ...(tool.completedLabel ? { completedLabel: tool.completedLabel } : {}),
196
+ ...(tool.internal ? { internal: true } : {}),
160
197
  async execute(params, ctx) {
161
198
  const customCtx = buildCustomToolContext(tool, sessionCtx, ctx);
162
199
  const validatedParams = typeof params === 'object' && params !== null
@@ -1 +1 @@
1
- {"version":3,"file":"custom-tool-adapter.js","sourceRoot":"","sources":["../../../src/tools/custom-tool-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-tool-adapter.js","sourceRoot":"","sources":["../../../src/tools/custom-tool-adapter.ts"],"names":[],"mappings":"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"}
@@ -239,5 +239,53 @@ describe('createCustomToolDefinition', () => {
239
239
  expect(envResult).toBeUndefined();
240
240
  });
241
241
  });
242
+ describe('SDK fields (Phase A)', () => {
243
+ it('populates ctx.fs / ctx.agentId / ctx.scopeId / ctx.sessionId from session ctx + runtime ctx', async () => {
244
+ let captured;
245
+ const executor = {
246
+ execute: vi.fn().mockImplementation(async (_tool, _params, ctx) => {
247
+ captured = ctx;
248
+ return { ok: true };
249
+ }),
250
+ };
251
+ const fakeFs = {
252
+ readRepoFile: vi.fn().mockResolvedValue('content'),
253
+ writeRepoFile: vi.fn(),
254
+ readManyRepoFiles: vi.fn(),
255
+ listRepoFiles: vi.fn(),
256
+ deleteRepoFile: vi.fn(),
257
+ };
258
+ const def = createCustomToolDefinition(makeTool(), executor, makeSessionCtx({ fs: fakeFs, agentId: 'agent_1', repoRoot: '/tmp/repo' }));
259
+ await def.execute({}, makeToolContext({ scopeId: 'scope_a', sessionId: 'sess_42' }));
260
+ expect(captured?.fs).toBe(fakeFs);
261
+ expect(captured?.agentId).toBe('agent_1');
262
+ expect(captured?.scopeId).toBe('scope_a');
263
+ expect(captured?.sessionId).toBe('sess_42');
264
+ });
265
+ it('omits ctx.fs when no fs backend is on the session ctx', async () => {
266
+ let captured;
267
+ const executor = {
268
+ execute: vi.fn().mockImplementation(async (_tool, _params, ctx) => {
269
+ captured = ctx;
270
+ return { ok: true };
271
+ }),
272
+ };
273
+ const def = createCustomToolDefinition(makeTool(), executor, makeSessionCtx());
274
+ await def.execute({}, makeToolContext());
275
+ expect(captured?.fs).toBeUndefined();
276
+ });
277
+ it('forwards ctx.emit through to the runtime ctx', async () => {
278
+ const runtimeEmit = vi.fn();
279
+ const executor = {
280
+ execute: vi.fn().mockImplementation(async (_tool, _params, ctx) => {
281
+ ctx.emit?.({ type: 'show_preview' });
282
+ return { ok: true };
283
+ }),
284
+ };
285
+ const def = createCustomToolDefinition(makeTool(), executor, makeSessionCtx());
286
+ await def.execute({}, makeToolContext({ emit: runtimeEmit }));
287
+ expect(runtimeEmit).toHaveBeenCalledWith(expect.objectContaining({ type: 'show_preview' }));
288
+ });
289
+ });
242
290
  });
243
291
  //# sourceMappingURL=custom-tool-adapter.test.js.map