@amodalai/runtime 0.3.48 → 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 -40
  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,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ToolPermission } from './context.js';
7
+ /**
8
+ * Result of reading a package's permission declaration. Carries the
9
+ * package name alongside the permissions so `PermissionError` can name
10
+ * the offending package without a separate lookup.
11
+ */
12
+ export interface PackagePermissions {
13
+ packageName: string;
14
+ permissions: ToolPermission[];
15
+ }
16
+ /**
17
+ * Load the permission declaration for an installed package.
18
+ *
19
+ * Reads `${pkgDir}/package.json` and returns the `amodal.permissions`
20
+ * array (filtered to known permission tiers). Missing or malformed
21
+ * fields collapse to an empty permissions array so the package gets
22
+ * default-deny behavior — the runtime never crashes because someone
23
+ * forgot to declare permissions, it just refuses the privileged calls.
24
+ *
25
+ * Unknown permission strings are silently dropped (logged once at load
26
+ * time by the caller) rather than throwing — adding a new permission
27
+ * tier to the SDK shouldn't require simultaneous updates to every
28
+ * pinned package version.
29
+ */
30
+ export declare function loadPackagePermissions(pkgDir: string): Promise<PackagePermissions>;
31
+ /**
32
+ * Symbolic constant for tools authored inside the user's own agent
33
+ * repo. These tools are trusted with the full SDK surface — sandboxing
34
+ * the user against their own code is not a useful threat model.
35
+ */
36
+ export declare const LOCAL_REPO_PACKAGE: PackagePermissions;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Read `package.json#amodal.permissions` for an agent package and
8
+ * normalize it into a `ToolPermission[]` ready for runtime gating.
9
+ *
10
+ * Default-deny: a package that does not declare any permissions gets an
11
+ * empty array, and any tool inside it that reaches for a privileged
12
+ * `ctx.*` capability throws `PermissionError` at the boundary.
13
+ *
14
+ * Tools authored inside the user's own agent repo (i.e. not under any
15
+ * package) bypass the loader and run with full local-trust permissions
16
+ * — the user wrote the handler, sandboxing them against their own repo
17
+ * is not the threat model.
18
+ */
19
+ import { readFile } from 'node:fs/promises';
20
+ import * as path from 'node:path';
21
+ const VALID_PERMISSIONS = new Set([
22
+ 'fs.read',
23
+ 'fs.write',
24
+ 'db.read',
25
+ 'db.write',
26
+ 'net.fetch',
27
+ ]);
28
+ function isToolPermission(value) {
29
+ return VALID_PERMISSIONS.has(value);
30
+ }
31
+ /**
32
+ * Load the permission declaration for an installed package.
33
+ *
34
+ * Reads `${pkgDir}/package.json` and returns the `amodal.permissions`
35
+ * array (filtered to known permission tiers). Missing or malformed
36
+ * fields collapse to an empty permissions array so the package gets
37
+ * default-deny behavior — the runtime never crashes because someone
38
+ * forgot to declare permissions, it just refuses the privileged calls.
39
+ *
40
+ * Unknown permission strings are silently dropped (logged once at load
41
+ * time by the caller) rather than throwing — adding a new permission
42
+ * tier to the SDK shouldn't require simultaneous updates to every
43
+ * pinned package version.
44
+ */
45
+ export async function loadPackagePermissions(pkgDir) {
46
+ const pkgJsonPath = path.join(pkgDir, 'package.json');
47
+ let raw;
48
+ try {
49
+ raw = await readFile(pkgJsonPath, 'utf-8');
50
+ }
51
+ catch {
52
+ return { packageName: path.basename(pkgDir), permissions: [] };
53
+ }
54
+ let parsed;
55
+ try {
56
+ parsed = JSON.parse(raw);
57
+ }
58
+ catch {
59
+ return { packageName: path.basename(pkgDir), permissions: [] };
60
+ }
61
+ if (typeof parsed !== 'object' || parsed === null) {
62
+ return { packageName: path.basename(pkgDir), permissions: [] };
63
+ }
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- parsing external JSON
65
+ const pkg = parsed;
66
+ const nameRaw = pkg['name'];
67
+ const packageName = typeof nameRaw === 'string' ? nameRaw : path.basename(pkgDir);
68
+ const amodalRaw = pkg['amodal'];
69
+ if (typeof amodalRaw !== 'object' || amodalRaw === null) {
70
+ return { packageName, permissions: [] };
71
+ }
72
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- parsing external JSON
73
+ const amodal = amodalRaw;
74
+ const declaredRaw = amodal['permissions'];
75
+ if (!Array.isArray(declaredRaw)) {
76
+ return { packageName, permissions: [] };
77
+ }
78
+ const permissions = [];
79
+ for (const entry of declaredRaw) {
80
+ if (typeof entry !== 'string')
81
+ continue;
82
+ const candidate = isToolPermission(entry) ? entry : undefined;
83
+ if (candidate)
84
+ permissions.push(candidate);
85
+ }
86
+ return { packageName, permissions };
87
+ }
88
+ /**
89
+ * Symbolic constant for tools authored inside the user's own agent
90
+ * repo. These tools are trusted with the full SDK surface — sandboxing
91
+ * the user against their own code is not a useful threat model.
92
+ */
93
+ export const LOCAL_REPO_PACKAGE = {
94
+ packageName: '<local-repo>',
95
+ permissions: ['fs.read', 'fs.write', 'db.read', 'db.write', 'net.fetch'],
96
+ };
97
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/tools/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAYD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAc;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAC/D,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,EAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAC/D,CAAC;IAED,gGAAgG;IAChG,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IACxC,CAAC;IACD,gGAAgG;IAChG,MAAM,MAAM,GAAG,SAAoC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IACxC,CAAC;IAED,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;CACzE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
7
+ import { tmpdir } from 'node:os';
8
+ import * as path from 'node:path';
9
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
10
+ import { loadPackagePermissions } from './permissions.js';
11
+ describe('loadPackagePermissions', () => {
12
+ let pkgDir;
13
+ beforeEach(async () => {
14
+ pkgDir = await mkdtemp(path.join(tmpdir(), 'pkg-perms-'));
15
+ });
16
+ afterEach(async () => {
17
+ await rm(pkgDir, { recursive: true, force: true });
18
+ });
19
+ async function writePkg(content) {
20
+ await writeFile(path.join(pkgDir, 'package.json'), JSON.stringify(content), 'utf-8');
21
+ }
22
+ it('returns an empty permission list when package.json is missing', async () => {
23
+ const result = await loadPackagePermissions(pkgDir);
24
+ expect(result.permissions).toEqual([]);
25
+ });
26
+ it('returns an empty permission list when amodal block is missing', async () => {
27
+ await writePkg({ name: '@amodalai/test' });
28
+ const result = await loadPackagePermissions(pkgDir);
29
+ expect(result).toEqual({ packageName: '@amodalai/test', permissions: [] });
30
+ });
31
+ it('parses declared permissions', async () => {
32
+ await writePkg({
33
+ name: '@amodalai/agent-admin',
34
+ amodal: { permissions: ['fs.read', 'fs.write', 'db.read', 'db.write'] },
35
+ });
36
+ const result = await loadPackagePermissions(pkgDir);
37
+ expect(result).toEqual({
38
+ packageName: '@amodalai/agent-admin',
39
+ permissions: ['fs.read', 'fs.write', 'db.read', 'db.write'],
40
+ });
41
+ });
42
+ it('drops unknown permission strings', async () => {
43
+ await writePkg({
44
+ name: '@amodalai/sketchy',
45
+ amodal: { permissions: ['fs.read', 'secrets.write', 'unknown'] },
46
+ });
47
+ const result = await loadPackagePermissions(pkgDir);
48
+ expect(result.permissions).toEqual(['fs.read']);
49
+ });
50
+ it('falls back to dirname when name is missing', async () => {
51
+ await writePkg({ amodal: { permissions: ['net.fetch'] } });
52
+ const result = await loadPackagePermissions(pkgDir);
53
+ expect(result.packageName).toBe(path.basename(pkgDir));
54
+ expect(result.permissions).toEqual(['net.fetch']);
55
+ });
56
+ it('returns empty on malformed JSON', async () => {
57
+ await writeFile(path.join(pkgDir, 'package.json'), 'not json', 'utf-8');
58
+ const result = await loadPackagePermissions(pkgDir);
59
+ expect(result.permissions).toEqual([]);
60
+ });
61
+ });
62
+ //# sourceMappingURL=permissions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.test.js","sourceRoot":"","sources":["../../../src/tools/permissions.test.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,8 @@ export function createRequestTool(options) {
87
87
  parameters: RequestParamsSchema,
88
88
  readOnly: false,
89
89
  metadata: { category: 'connection' },
90
+ runningLabel: 'Calling {{connection}}',
91
+ completedLabel: 'Called {{connection}}',
90
92
  async execute(params, ctx) {
91
93
  const { connection, method, endpoint, data, headers: extraHeaders, intent } = params;
92
94
  // Resolve connection config
@@ -1 +1 @@
1
- {"version":3,"file":"request-tool.js","sourceRoot":"","sources":["../../../src/tools/request-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAI7C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;CACrD,CAAC,CAAC;AAqBH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAS,mBAAmB,CAAC,QAAgB,EAAE,gBAAyC;IACtF,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAe,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,UAAkC;IACtE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,gBAAyC,EACzC,aAAkD,EAClD,YAAqC;IAErC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,yCAAyC;IACzC,IAAI,aAAa,EAAE,eAAe,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,eAAe;IACf,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAyBD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,EAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,cAAc,EAAC,GAAG,OAAO,CAAC;IAEtH,OAAO;QACL,WAAW,EAAE,mNAAmN;QAChO,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC;QAElC,KAAK,CAAC,OAAO,CAAC,MAAqB,EAAE,GAAgB;YACnD,MAAM,EAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAC,GAAG,MAAM,CAAC;YAEnF,4BAA4B;YAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,eAAe,CAAC,eAAe,UAAU,aAAa,EAAE;oBAChE,UAAU;oBACV,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,IAAI,eAAe,CAAC,eAAe,UAAU,8BAA8B,EAAE;oBACjF,UAAU;oBACV,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,sBAAsB;YACtB,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;YAE3D,mBAAmB;YACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC;gBACzC,UAAU;gBACV,YAAY;gBACZ,MAAM;gBACN,MAAM;gBACN,yGAAyG;gBACzG,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAA+B,CAAC,CAAC,CAAC,SAAS;gBAC/F,QAAQ;gBACR,cAAc,EAAE,cAAc,EAAE,EAAE,IAAI,KAAK;aAC5C,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC;YACpC,CAAC;YAED,qBAAqB;YACrB,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,oBAAoB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAChF,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;oBAC5B,QAAQ;oBACR,UAAU;oBACV,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,WAAW,EAAE,gEAAgE;iBAC9E,CAAC;YACJ,CAAC;YAED,YAAY;YACZ,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC7D,sFAAsF;YACtF,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,aAAa,GAAG,gBAAgB,CAAC;YACrC,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAI,GAAG,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;YAE1C,sBAAsB;YACtB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;gBAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAClE,CAAC;gBACD,GAAG,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;YACvC,CAAC;YAED,gBAAgB;YAChB,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;YAE9E,+CAA+C;YAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC3D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACvE,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;oBACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;4BACvB,MAAM,IAAI,eAAe,CACvB,mCAAmC,UAAU,mDAAmD,UAAU,GAAG,EAC7G,EAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAC,CAC9C,CAAC;wBACJ,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,QAAQ,SAAS,CAAC,EAAE,EAAE,CAAC;wBACrB,KAAK,QAAQ;4BACX,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;4BACzC,MAAM;wBACR,KAAK,OAAO,CAAC,CAAC,CAAC;4BACb,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;4BAChD,GAAG,IAAI,GAAG,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzF,MAAM;wBACR,CAAC;wBACD,KAAK,MAAM;4BACT,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;4BACrE,MAAM;wBACR,KAAK,MAAM;4BACT,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gCAC9C,MAAM,IAAI,eAAe,CACvB,2EAA2E,UAAU,GAAG,EACxF,EAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAC,CAC9C,CAAC;4BACJ,CAAC;4BACD,4GAA4G;4BAC3G,IAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;4BAC3D,MAAM;wBACR,OAAO,CAAC,CAAC,CAAC;4BACR,MAAM,WAAW,GAAU,SAAS,CAAC,EAAE,CAAC;4BACxC,MAAM,IAAI,eAAe,CAAC,6BAA6B,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAC,CAAC,CAAC;wBAC/H,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,YAAY,GAAgB;gBAChC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;aAC9D,CAAC;YAEF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAClF,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzC,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;YAC1F,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE3C,IAAI,YAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,YAAY,CAAC;YAC9B,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC/E,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;gBAChF,OAAO;oBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,GAAG,CAAC,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,eAAe,EAAE,WAAW,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,YAAY;aACnB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"request-tool.js","sourceRoot":"","sources":["../../../src/tools/request-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Factory that assembles a permission-gated `ToolContext` for a custom
8
+ * tool handler. Subsequent phases (validation probes, setup_state,
9
+ * proposal card, etc.) call this to bridge the runtime's session state
10
+ * to the SDK shape handlers consume.
11
+ *
12
+ * Permission enforcement happens here at the `ctx.*` boundary —
13
+ * `ctx.fs.writeRepoFile` checks `fs.write`, `ctx.db.execute` checks
14
+ * `db.write`, etc. The check throws `PermissionError` synchronously
15
+ * before invoking the underlying backend, so the offending package
16
+ * cannot side-effect anything just by being called.
17
+ */
18
+ import { type EmitEvent, type ToolContext, type ToolDbHandle } from './context.js';
19
+ import type { FsBackend } from './fs/index.js';
20
+ import type { PackagePermissions } from './permissions.js';
21
+ export interface CreateSdkToolContextOptions {
22
+ agentId: string;
23
+ scopeId: string;
24
+ scopeContext?: Record<string, string>;
25
+ sessionId: string;
26
+ signal: AbortSignal;
27
+ toolName: string;
28
+ packagePermissions: PackagePermissions;
29
+ fs: FsBackend;
30
+ db: ToolDbHandle;
31
+ fetch: typeof globalThis.fetch;
32
+ emit: (event: EmitEvent) => void;
33
+ }
34
+ /**
35
+ * Build the SDK `ToolContext` a handler receives.
36
+ *
37
+ * The returned `ctx.fs`, `ctx.db`, and `ctx.fetch` are wrappers that
38
+ * enforce permissions before delegating to the underlying backend.
39
+ * `ctx.emit`, `ctx.log`, and the identity fields are unconditional —
40
+ * every handler can produce log lines and inline blocks regardless of
41
+ * declared permissions.
42
+ */
43
+ export declare function createSdkToolContext(opts: CreateSdkToolContextOptions): ToolContext;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Factory that assembles a permission-gated `ToolContext` for a custom
8
+ * tool handler. Subsequent phases (validation probes, setup_state,
9
+ * proposal card, etc.) call this to bridge the runtime's session state
10
+ * to the SDK shape handlers consume.
11
+ *
12
+ * Permission enforcement happens here at the `ctx.*` boundary —
13
+ * `ctx.fs.writeRepoFile` checks `fs.write`, `ctx.db.execute` checks
14
+ * `db.write`, etc. The check throws `PermissionError` synchronously
15
+ * before invoking the underlying backend, so the offending package
16
+ * cannot side-effect anything just by being called.
17
+ */
18
+ import { PermissionError, } from './context.js';
19
+ /**
20
+ * Build the SDK `ToolContext` a handler receives.
21
+ *
22
+ * The returned `ctx.fs`, `ctx.db`, and `ctx.fetch` are wrappers that
23
+ * enforce permissions before delegating to the underlying backend.
24
+ * `ctx.emit`, `ctx.log`, and the identity fields are unconditional —
25
+ * every handler can produce log lines and inline blocks regardless of
26
+ * declared permissions.
27
+ */
28
+ export function createSdkToolContext(opts) {
29
+ const declared = new Set(opts.packagePermissions.permissions);
30
+ function checkPermission(permission) {
31
+ if (declared.has(permission))
32
+ return;
33
+ throw new PermissionError(opts.toolName, permission, opts.packagePermissions.packageName);
34
+ }
35
+ const gatedFs = {
36
+ async readRepoFile(repoPath) {
37
+ checkPermission('fs.read');
38
+ return opts.fs.readRepoFile(repoPath);
39
+ },
40
+ async writeRepoFile(repoPath, content) {
41
+ checkPermission('fs.write');
42
+ return opts.fs.writeRepoFile(repoPath, content);
43
+ },
44
+ async readManyRepoFiles(repoPaths) {
45
+ checkPermission('fs.read');
46
+ return opts.fs.readManyRepoFiles(repoPaths);
47
+ },
48
+ async listRepoFiles(repoPath) {
49
+ checkPermission('fs.read');
50
+ return opts.fs.listRepoFiles(repoPath);
51
+ },
52
+ async deleteRepoFile(repoPath) {
53
+ checkPermission('fs.write');
54
+ return opts.fs.deleteRepoFile(repoPath);
55
+ },
56
+ };
57
+ const gatedDb = {
58
+ async execute(query) {
59
+ // Require both tiers — `execute` accepts arbitrary SQL and we
60
+ // can't reliably distinguish read from write without parsing.
61
+ // Phase B can split into `query()` / `mutate()` if SDK consumers
62
+ // need finer grain.
63
+ checkPermission('db.read');
64
+ checkPermission('db.write');
65
+ return opts.db.execute(query);
66
+ },
67
+ };
68
+ const gatedFetch = async (input, init) => {
69
+ checkPermission('net.fetch');
70
+ const merged = init ? { ...init } : {};
71
+ // Inject the tool's abort signal when the caller didn't pass one,
72
+ // so outbound requests cancel with the tool invocation.
73
+ if (!merged.signal)
74
+ merged.signal = opts.signal;
75
+ return opts.fetch(input, merged);
76
+ };
77
+ const ctx = {
78
+ agentId: opts.agentId,
79
+ scopeId: opts.scopeId,
80
+ sessionId: opts.sessionId,
81
+ signal: opts.signal,
82
+ emit: opts.emit,
83
+ log(message) {
84
+ opts.emit({ type: 'text', text: message });
85
+ },
86
+ fs: gatedFs,
87
+ db: gatedDb,
88
+ fetch: gatedFetch,
89
+ };
90
+ if (opts.scopeContext)
91
+ ctx.scopeContext = opts.scopeContext;
92
+ return ctx;
93
+ }
94
+ //# sourceMappingURL=sdk-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-context.js","sourceRoot":"","sources":["../../../src/tools/sdk-context.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,134 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { describe, expect, it, vi } from 'vitest';
7
+ import { PermissionError } from './context.js';
8
+ import { createSdkToolContext } from './sdk-context.js';
9
+ function makeFsBackend() {
10
+ return {
11
+ readRepoFile: vi.fn().mockResolvedValue('content'),
12
+ writeRepoFile: vi.fn().mockResolvedValue(undefined),
13
+ readManyRepoFiles: vi.fn().mockResolvedValue([]),
14
+ listRepoFiles: vi.fn().mockResolvedValue({ directories: [], files: [] }),
15
+ deleteRepoFile: vi.fn().mockResolvedValue(undefined),
16
+ };
17
+ }
18
+ function makeDb() {
19
+ return { execute: vi.fn().mockResolvedValue([]) };
20
+ }
21
+ function buildCtx(opts) {
22
+ const fs = makeFsBackend();
23
+ const db = makeDb();
24
+ const fetch = vi.fn().mockResolvedValue(new Response(null));
25
+ const emit = vi.fn();
26
+ const ctx = createSdkToolContext({
27
+ agentId: 'agent_1',
28
+ scopeId: '',
29
+ sessionId: 'sess_1',
30
+ signal: new AbortController().signal,
31
+ toolName: 'test_tool',
32
+ packagePermissions: { packageName: '@amodalai/agent-admin', permissions: opts.permissions },
33
+ fs,
34
+ db,
35
+ fetch: fetch,
36
+ emit,
37
+ });
38
+ return { ctx, emit, fs, db, fetch };
39
+ }
40
+ describe('createSdkToolContext', () => {
41
+ describe('identity fields', () => {
42
+ it('exposes agentId / scopeId / sessionId verbatim', () => {
43
+ const { ctx } = buildCtx({ permissions: [] });
44
+ expect(ctx.agentId).toBe('agent_1');
45
+ expect(ctx.scopeId).toBe('');
46
+ expect(ctx.sessionId).toBe('sess_1');
47
+ });
48
+ });
49
+ describe('emit + log', () => {
50
+ it('forwards emit calls', () => {
51
+ const { ctx, emit } = buildCtx({ permissions: [] });
52
+ const event = { type: 'text', text: 'hi' };
53
+ ctx.emit(event);
54
+ expect(emit).toHaveBeenCalledWith(event);
55
+ });
56
+ it('log() emits a text event', () => {
57
+ const { ctx, emit } = buildCtx({ permissions: [] });
58
+ ctx.log('hello');
59
+ expect(emit).toHaveBeenCalledWith({ type: 'text', text: 'hello' });
60
+ });
61
+ it('emit and log work without any permissions declared', () => {
62
+ const { ctx } = buildCtx({ permissions: [] });
63
+ expect(() => ctx.log('no perms needed')).not.toThrow();
64
+ });
65
+ });
66
+ describe('fs gating', () => {
67
+ it('readRepoFile throws PermissionError without fs.read', async () => {
68
+ const { ctx } = buildCtx({ permissions: [] });
69
+ await expect(ctx.fs.readRepoFile('a.txt')).rejects.toBeInstanceOf(PermissionError);
70
+ });
71
+ it('readRepoFile passes with fs.read', async () => {
72
+ const { ctx, fs } = buildCtx({ permissions: ['fs.read'] });
73
+ const content = await ctx.fs.readRepoFile('a.txt');
74
+ expect(content).toBe('content');
75
+ expect(fs.readRepoFile).toHaveBeenCalledWith('a.txt');
76
+ });
77
+ it('writeRepoFile throws without fs.write even if fs.read is granted', async () => {
78
+ const { ctx } = buildCtx({ permissions: ['fs.read'] });
79
+ await expect(ctx.fs.writeRepoFile('a.txt', 'x')).rejects.toBeInstanceOf(PermissionError);
80
+ });
81
+ it('listRepoFiles requires fs.read', async () => {
82
+ const { ctx } = buildCtx({ permissions: [] });
83
+ await expect(ctx.fs.listRepoFiles('.')).rejects.toBeInstanceOf(PermissionError);
84
+ });
85
+ it('deleteRepoFile requires fs.write', async () => {
86
+ const { ctx } = buildCtx({ permissions: ['fs.read'] });
87
+ await expect(ctx.fs.deleteRepoFile('a.txt')).rejects.toBeInstanceOf(PermissionError);
88
+ });
89
+ it('PermissionError names the tool, package, and missing permission', async () => {
90
+ const { ctx } = buildCtx({ permissions: [] });
91
+ await expect(ctx.fs.readRepoFile('a.txt')).rejects.toMatchObject({
92
+ toolName: 'test_tool',
93
+ packageName: '@amodalai/agent-admin',
94
+ permission: 'fs.read',
95
+ });
96
+ });
97
+ });
98
+ describe('db gating', () => {
99
+ it('execute throws without db.write', async () => {
100
+ const { ctx } = buildCtx({ permissions: ['db.read'] });
101
+ await expect(ctx.db.execute({ sql: 'SELECT 1' })).rejects.toBeInstanceOf(PermissionError);
102
+ });
103
+ it('execute passes with db.read + db.write', async () => {
104
+ const { ctx, db } = buildCtx({ permissions: ['db.read', 'db.write'] });
105
+ await ctx.db.execute({ sql: 'SELECT 1' });
106
+ expect(db.execute).toHaveBeenCalled();
107
+ });
108
+ });
109
+ describe('fetch gating', () => {
110
+ it('throws without net.fetch', async () => {
111
+ const { ctx } = buildCtx({ permissions: [] });
112
+ await expect(ctx.fetch('https://example.com')).rejects.toBeInstanceOf(PermissionError);
113
+ });
114
+ it('forwards through underlying fetch when granted', async () => {
115
+ const { ctx, fetch } = buildCtx({ permissions: ['net.fetch'] });
116
+ await ctx.fetch('https://example.com');
117
+ expect(fetch).toHaveBeenCalled();
118
+ });
119
+ it('injects ctx.signal when caller did not pass one', async () => {
120
+ const { ctx, fetch } = buildCtx({ permissions: ['net.fetch'] });
121
+ await ctx.fetch('https://example.com');
122
+ const init = fetch.mock.calls[0][1];
123
+ expect(init.signal).toBe(ctx.signal);
124
+ });
125
+ it('respects an explicit signal when caller passes one', async () => {
126
+ const { ctx, fetch } = buildCtx({ permissions: ['net.fetch'] });
127
+ const explicit = new AbortController().signal;
128
+ await ctx.fetch('https://example.com', { signal: explicit });
129
+ const init = fetch.mock.calls[0][1];
130
+ expect(init.signal).toBe(explicit);
131
+ });
132
+ });
133
+ });
134
+ //# sourceMappingURL=sdk-context.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-context.test.js","sourceRoot":"","sources":["../../../src/tools/sdk-context.test.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,8 @@ export function createStoreWriteTool(store, backend, appId) {
120
120
  parameters: entitySchema,
121
121
  readOnly: false,
122
122
  metadata: { category: 'store' },
123
+ runningLabel: `Saving to ${store.name}`,
124
+ completedLabel: `Saved to ${store.name}`,
123
125
  async execute(params, ctx) {
124
126
  const key = resolveKey(store.entity.key, params);
125
127
  const result = await backend.put(appId, ctx.scopeId, store.name, key, params, {});
@@ -142,6 +144,8 @@ export function createStoreBatchTool(store, backend, appId) {
142
144
  }),
143
145
  readOnly: false,
144
146
  metadata: { category: 'store' },
147
+ runningLabel: `Saving to ${store.name}`,
148
+ completedLabel: `Saved to ${store.name}`,
145
149
  async execute(params, ctx) {
146
150
  let stored = 0;
147
151
  let failed = 0;
@@ -189,6 +193,8 @@ export function createStoreQueryTool(stores, backend, appId) {
189
193
  }),
190
194
  readOnly: true,
191
195
  metadata: { category: 'store' },
196
+ runningLabel: 'Looking up {{store}}',
197
+ completedLabel: 'Looked up {{store}}',
192
198
  async execute(params, ctx) {
193
199
  if (params.key) {
194
200
  const doc = await backend.get(appId, ctx.scopeId, params.store, params.key);
@@ -1 +1 @@
1
- {"version":3,"file":"store-tools.js","sourceRoot":"","sources":["../../../src/tools/store-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-tools.js","sourceRoot":"","sources":["../../../src/tools/store-tools.ts"],"names":[],"mappings":"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"}