stitchkit 0.88.0 → 0.89.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.
Files changed (164) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/agent-runtime/child-blocking.d.ts +17 -0
  3. package/dist/agent-runtime/child-blocking.d.ts.map +1 -0
  4. package/dist/agent-runtime/child-budget-policy.d.ts +23 -0
  5. package/dist/agent-runtime/child-budget-policy.d.ts.map +1 -0
  6. package/dist/agent-runtime/children-contract.d.ts +155 -0
  7. package/dist/agent-runtime/children-contract.d.ts.map +1 -0
  8. package/dist/agent-runtime/children.d.ts +4 -99
  9. package/dist/agent-runtime/children.d.ts.map +1 -1
  10. package/dist/agent-runtime/coding-shell-process.d.ts +33 -0
  11. package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -0
  12. package/dist/agent-runtime/coding-tool-contract.d.ts +18 -0
  13. package/dist/agent-runtime/coding-tool-contract.d.ts.map +1 -1
  14. package/dist/agent-runtime/coding-tool-files.d.ts.map +1 -1
  15. package/dist/agent-runtime/coding-tool-listing.d.ts.map +1 -1
  16. package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
  17. package/dist/agent-runtime/coding-tool-shell.d.ts.map +1 -1
  18. package/dist/agent-runtime/coding-tool-utf8.d.ts +28 -0
  19. package/dist/agent-runtime/coding-tool-utf8.d.ts.map +1 -0
  20. package/dist/agent-runtime/contained-files.d.ts +20 -0
  21. package/dist/agent-runtime/contained-files.d.ts.map +1 -1
  22. package/dist/agent-runtime/durability-contract.d.ts +176 -0
  23. package/dist/agent-runtime/durability-contract.d.ts.map +1 -0
  24. package/dist/agent-runtime/durability-json.d.ts +3 -0
  25. package/dist/agent-runtime/durability-json.d.ts.map +1 -0
  26. package/dist/agent-runtime/durability-ledger.d.ts +16 -0
  27. package/dist/agent-runtime/durability-ledger.d.ts.map +1 -0
  28. package/dist/agent-runtime/durability-scheduler.d.ts +29 -0
  29. package/dist/agent-runtime/durability-scheduler.d.ts.map +1 -0
  30. package/dist/agent-runtime/durability.d.ts +14 -0
  31. package/dist/agent-runtime/durability.d.ts.map +1 -0
  32. package/dist/agent-runtime/event-search.d.ts.map +1 -1
  33. package/dist/agent-runtime/harness-contract.d.ts +37 -0
  34. package/dist/agent-runtime/harness-contract.d.ts.map +1 -1
  35. package/dist/agent-runtime/harness.d.ts +8 -0
  36. package/dist/agent-runtime/harness.d.ts.map +1 -1
  37. package/dist/agent-runtime/prompt.d.ts +23 -0
  38. package/dist/agent-runtime/prompt.d.ts.map +1 -1
  39. package/dist/agent-runtime/run-execution.d.ts.map +1 -1
  40. package/dist/agent-runtime/runtime-internals.d.ts +4 -0
  41. package/dist/agent-runtime/runtime-internals.d.ts.map +1 -1
  42. package/dist/agent-runtime/runtime.d.ts +13 -0
  43. package/dist/agent-runtime/runtime.d.ts.map +1 -1
  44. package/dist/agent-runtime/sandbox-broker.d.ts +7 -0
  45. package/dist/agent-runtime/sandbox-broker.d.ts.map +1 -0
  46. package/dist/agent-runtime/sandbox-bubblewrap-args.d.ts +9 -0
  47. package/dist/agent-runtime/sandbox-bubblewrap-args.d.ts.map +1 -0
  48. package/dist/agent-runtime/sandbox-bubblewrap-storage.d.ts +22 -0
  49. package/dist/agent-runtime/sandbox-bubblewrap-storage.d.ts.map +1 -0
  50. package/dist/agent-runtime/sandbox-bubblewrap.d.ts +14 -0
  51. package/dist/agent-runtime/sandbox-bubblewrap.d.ts.map +1 -0
  52. package/dist/agent-runtime/sandbox-coding-adapter.d.ts +15 -0
  53. package/dist/agent-runtime/sandbox-coding-adapter.d.ts.map +1 -0
  54. package/dist/agent-runtime/sandbox-coding.d.ts +15 -0
  55. package/dist/agent-runtime/sandbox-coding.d.ts.map +1 -0
  56. package/dist/agent-runtime/sandbox-contract.d.ts +93 -0
  57. package/dist/agent-runtime/sandbox-contract.d.ts.map +1 -0
  58. package/dist/agent-runtime/sandbox-process-owner.d.ts +11 -0
  59. package/dist/agent-runtime/sandbox-process-owner.d.ts.map +1 -0
  60. package/dist/agent-runtime/sandbox-process.d.ts +8 -0
  61. package/dist/agent-runtime/sandbox-process.d.ts.map +1 -0
  62. package/dist/agent-runtime/sandbox-session.d.ts +5 -0
  63. package/dist/agent-runtime/sandbox-session.d.ts.map +1 -0
  64. package/dist/agent-runtime/sandbox.d.ts +19 -0
  65. package/dist/agent-runtime/sandbox.d.ts.map +1 -1
  66. package/dist/agent-runtime/sqlite-purge.d.ts.map +1 -1
  67. package/dist/agent-runtime/sqlite.d.ts.map +1 -1
  68. package/dist/agent-runtime/store-driver.d.ts +127 -0
  69. package/dist/agent-runtime/store-driver.d.ts.map +1 -1
  70. package/dist/agent-runtime/store-events.d.ts +104 -0
  71. package/dist/agent-runtime/store-events.d.ts.map +1 -1
  72. package/dist/agent-runtime/store-migrations/v2-to-v3.d.ts +14 -0
  73. package/dist/agent-runtime/store-migrations/v2-to-v3.d.ts.map +1 -0
  74. package/dist/agent-runtime/store.d.ts +115 -0
  75. package/dist/agent-runtime/store.d.ts.map +1 -1
  76. package/dist/agent-runtime-coding-tools.js +11 -1247
  77. package/dist/agent-runtime-harness.d.ts +1 -1
  78. package/dist/agent-runtime-harness.d.ts.map +1 -1
  79. package/dist/agent-runtime-harness.js +65 -15
  80. package/dist/agent-runtime-openrouter.d.ts +3 -12
  81. package/dist/agent-runtime-openrouter.d.ts.map +1 -1
  82. package/dist/agent-runtime-openrouter.js +10 -7
  83. package/dist/agent-runtime-sandbox.d.ts +5 -0
  84. package/dist/agent-runtime-sandbox.d.ts.map +1 -0
  85. package/dist/agent-runtime-sandbox.js +797 -0
  86. package/dist/agent-runtime-sqlite-bun.js +3 -3
  87. package/dist/agent-runtime-sqlite-node.js +3 -3
  88. package/dist/agent-runtime.d.ts +5 -4
  89. package/dist/agent-runtime.d.ts.map +1 -1
  90. package/dist/agent-runtime.js +259 -65
  91. package/dist/application.js +26 -26
  92. package/dist/cli.js +8 -8
  93. package/dist/{index-rcgsnrr6.js → index-31jw8fjq.js} +3 -3
  94. package/dist/{index-9hw9eq48.js → index-7601qfg1.js} +14 -14
  95. package/dist/{index-3xnq72rz.js → index-7rkhw9ec.js} +14 -1
  96. package/dist/{index-0vfdh685.js → index-8c3a7m4g.js} +1 -1
  97. package/dist/{index-t7gh5w3v.js → index-bn2cjajt.js} +27 -6
  98. package/dist/index-cp20z0n6.js +1351 -0
  99. package/dist/{index-qp3vshvc.js → index-fadnxwna.js} +87 -5
  100. package/dist/{index-v1qk37y9.js → index-hrbajay7.js} +106 -4
  101. package/dist/{index-p86mxmpp.js → index-hw2chdvy.js} +646 -43
  102. package/dist/{index-0ydchz76.js → index-mnm4qp0p.js} +5 -5
  103. package/dist/{index-1szetq6f.js → index-q3ve2d1k.js} +30 -8
  104. package/dist/{index-6krwcdcf.js → index-zwkgfq1s.js} +95 -85
  105. package/dist/{index-wn9cb82y.js → index-zyvby92n.js} +12 -9
  106. package/dist/index.js +13 -13
  107. package/dist/server/index.js +9 -9
  108. package/dist/testing/agent-store-conformance.d.ts.map +1 -1
  109. package/dist/testing.js +57 -23
  110. package/dist/tool-invoker.js +6 -6
  111. package/dist/tools/agent.d.ts +6 -0
  112. package/dist/tools/agent.d.ts.map +1 -1
  113. package/dist/tools/connections/define.d.ts +6 -0
  114. package/dist/tools/connections/define.d.ts.map +1 -0
  115. package/dist/tools/connections/errors.d.ts +50 -0
  116. package/dist/tools/connections/errors.d.ts.map +1 -0
  117. package/dist/tools/connections/http.d.ts +3 -0
  118. package/dist/tools/connections/http.d.ts.map +1 -0
  119. package/dist/tools/connections/index.d.ts +19 -0
  120. package/dist/tools/connections/index.d.ts.map +1 -0
  121. package/dist/tools/connections/index.js +1047 -0
  122. package/dist/tools/connections/instance.d.ts +3 -0
  123. package/dist/tools/connections/instance.d.ts.map +1 -0
  124. package/dist/tools/connections/json-rpc.d.ts +8 -0
  125. package/dist/tools/connections/json-rpc.d.ts.map +1 -0
  126. package/dist/tools/connections/limits.d.ts +36 -0
  127. package/dist/tools/connections/limits.d.ts.map +1 -0
  128. package/dist/tools/connections/mcp-client.d.ts +44 -0
  129. package/dist/tools/connections/mcp-client.d.ts.map +1 -0
  130. package/dist/tools/connections/mcp.d.ts +5 -0
  131. package/dist/tools/connections/mcp.d.ts.map +1 -0
  132. package/dist/tools/connections/mount.d.ts +12 -0
  133. package/dist/tools/connections/mount.d.ts.map +1 -0
  134. package/dist/tools/connections/openapi-document.d.ts +4 -0
  135. package/dist/tools/connections/openapi-document.d.ts.map +1 -0
  136. package/dist/tools/connections/openapi.d.ts +5 -0
  137. package/dist/tools/connections/openapi.d.ts.map +1 -0
  138. package/dist/tools/connections/runtime.d.ts +29 -0
  139. package/dist/tools/connections/runtime.d.ts.map +1 -0
  140. package/dist/tools/connections/schema-budget.d.ts +8 -0
  141. package/dist/tools/connections/schema-budget.d.ts.map +1 -0
  142. package/dist/tools/connections/sse-frames.d.ts +7 -0
  143. package/dist/tools/connections/sse-frames.d.ts.map +1 -0
  144. package/dist/tools/connections/sse-session.d.ts +26 -0
  145. package/dist/tools/connections/sse-session.d.ts.map +1 -0
  146. package/dist/tools/connections/ssrf.d.ts +15 -0
  147. package/dist/tools/connections/ssrf.d.ts.map +1 -0
  148. package/dist/tools/connections/types.d.ts +60 -0
  149. package/dist/tools/connections/types.d.ts.map +1 -0
  150. package/dist/tools/durability-context.d.ts +7 -0
  151. package/dist/tools/durability-context.d.ts.map +1 -0
  152. package/dist/tools/execute.d.ts +2 -0
  153. package/dist/tools/execute.d.ts.map +1 -1
  154. package/dist/tools/registry.d.ts +38 -0
  155. package/dist/tools/registry.d.ts.map +1 -0
  156. package/dist/tools/runtime-tool.d.ts +4 -0
  157. package/dist/tools/runtime-tool.d.ts.map +1 -1
  158. package/dist/tools.d.ts +1 -0
  159. package/dist/tools.d.ts.map +1 -1
  160. package/dist/tools.js +83 -26
  161. package/llms-full.txt +246 -7
  162. package/llms.txt +1 -0
  163. package/package.json +9 -1
  164. package/dist/{index-evcnmsc3.js → index-t7fkyxcr.js} +3 -3
package/dist/cli.js CHANGED
@@ -5,23 +5,23 @@ import {
5
5
  emitResult,
6
6
  parseCliArgs,
7
7
  pollUntilDone
8
- } from "./index-9hw9eq48.js";
8
+ } from "./index-7601qfg1.js";
9
9
  import"./index-sbdmyz75.js";
10
- import"./index-rcgsnrr6.js";
11
- import"./index-kc6h6hg0.js";
12
- import"./index-0vfdh685.js";
13
- import"./index-wn9cb82y.js";
10
+ import"./index-31jw8fjq.js";
11
+ import"./index-8c3a7m4g.js";
12
+ import"./index-zyvby92n.js";
14
13
  import"./index-vsbzgd7b.js";
15
14
  import"./index-f9mb610r.js";
16
- import"./index-r159gjwy.js";
17
- import"./index-cby4ar3v.js";
18
- import"./index-7zbps32p.js";
19
15
  import"./index-7evdsyez.js";
20
16
  import"./index-2bxcmqkb.js";
21
17
  import"./index-6k1937bx.js";
22
18
  import"./index-0w9abg87.js";
23
19
  import"./index-zcgf3gqf.js";
20
+ import"./index-7zbps32p.js";
24
21
  import"./index-kzfs85xp.js";
22
+ import"./index-kc6h6hg0.js";
23
+ import"./index-r159gjwy.js";
24
+ import"./index-cby4ar3v.js";
25
25
  import"./index-77fekveh.js";
26
26
  export {
27
27
  pollUntilDone,
@@ -1,9 +1,9 @@
1
+ import {
2
+ contractToolMountable
3
+ } from "./index-8c3a7m4g.js";
1
4
  import {
2
5
  runtimeToolMountable
3
6
  } from "./index-kc6h6hg0.js";
4
- import {
5
- contractToolMountable
6
- } from "./index-0vfdh685.js";
7
7
  import {
8
8
  projectToolSurface
9
9
  } from "./index-r159gjwy.js";
@@ -3,33 +3,33 @@ import {
3
3
  } from "./index-sbdmyz75.js";
4
4
  import {
5
5
  collectToolSurface
6
- } from "./index-rcgsnrr6.js";
6
+ } from "./index-31jw8fjq.js";
7
7
  import {
8
8
  createToolRunner,
9
9
  formatToolError
10
- } from "./index-0vfdh685.js";
10
+ } from "./index-8c3a7m4g.js";
11
11
  import {
12
12
  toolResultFromError
13
- } from "./index-wn9cb82y.js";
14
- import {
15
- assertUniqueToolName,
16
- buildToolPresentationSchema,
17
- objectShapeKeys
18
- } from "./index-r159gjwy.js";
19
- import {
20
- jsonSchemaFields
21
- } from "./index-cby4ar3v.js";
22
- import {
23
- coerceJsonArgs
24
- } from "./index-7zbps32p.js";
13
+ } from "./index-zyvby92n.js";
25
14
  import {
26
15
  formatZodError,
27
16
  validateDeclaredOutput
28
17
  } from "./index-7evdsyez.js";
18
+ import {
19
+ coerceJsonArgs
20
+ } from "./index-7zbps32p.js";
29
21
  import {
30
22
  isUnsafeKey,
31
23
  safeJsonParse
32
24
  } from "./index-kzfs85xp.js";
25
+ import {
26
+ assertUniqueToolName,
27
+ buildToolPresentationSchema,
28
+ objectShapeKeys
29
+ } from "./index-r159gjwy.js";
30
+ import {
31
+ jsonSchemaFields
32
+ } from "./index-cby4ar3v.js";
33
33
  import {
34
34
  isRecord
35
35
  } from "./index-77fekveh.js";
@@ -18,4 +18,17 @@ function isAgentToolError(value) {
18
18
  return typeof value === "object" && value !== null && AGENT_TOOL_ERROR_BRAND in value;
19
19
  }
20
20
 
21
- export { AgentToolError, isAgentToolError };
21
+ // src/tools/durability-context.ts
22
+ var contexts = new WeakMap;
23
+ function createToolDurabilityContext(factory) {
24
+ const context = {};
25
+ contexts.set(context, factory);
26
+ return context;
27
+ }
28
+ function resolveToolDurability(context, callId, signal) {
29
+ if (typeof context !== "object" || context === null)
30
+ return;
31
+ return contexts.get(context)?.(callId, signal);
32
+ }
33
+
34
+ export { AgentToolError, isAgentToolError, createToolDurabilityContext, resolveToolDurability };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  executeToolMethod
3
- } from "./index-wn9cb82y.js";
3
+ } from "./index-zyvby92n.js";
4
4
  import {
5
5
  assertToolExtensionCompatible,
6
6
  mergeSchemas,
@@ -21,6 +21,9 @@ import {
21
21
  import { createRequire } from "node:module";
22
22
  import path from "node:path";
23
23
  import { fileURLToPath } from "node:url";
24
+ function containedEntryKind(entry) {
25
+ return entry.isDirectory() ? "directory" : entry.isSymbolicLink() ? "symlink" : entry.isFile() ? "file" : "other";
26
+ }
24
27
  var FILE_TYPE_MASK = 61440;
25
28
  var FILE_TYPE_DIRECTORY = 16384;
26
29
  var FILE_TYPE_REGULAR = 32768;
@@ -174,14 +177,18 @@ async function listContainedDirectory(root, relative, maxEntries, authorizePath)
174
177
  const raw = [...await listAt(current)];
175
178
  raw.sort((left, right) => left.name.localeCompare(right.name));
176
179
  const admitted = [];
180
+ const denied = [];
177
181
  for (const entry of raw) {
178
182
  const entryPath = relative === "." ? entry.name : path.join(relative, entry.name);
179
- if (!authorizePath || await authorizePath(entryPath))
180
- admitted.push(entry);
183
+ if (authorizePath && !await authorizePath(entryPath)) {
184
+ denied.push({ name: entry.name, kind: containedEntryKind(entry) });
185
+ continue;
186
+ }
187
+ admitted.push(entry);
181
188
  }
182
189
  const entries = [];
183
190
  for (const entry of admitted.slice(0, maxEntries)) {
184
- const kind = entry.isDirectory() ? "directory" : entry.isSymbolicLink() ? "symlink" : entry.isFile() ? "file" : "other";
191
+ const kind = containedEntryKind(entry);
185
192
  if (kind !== "file") {
186
193
  entries.push({ name: entry.name, kind });
187
194
  continue;
@@ -198,7 +205,12 @@ async function listContainedDirectory(root, relative, maxEntries, authorizePath)
198
205
  return left.name.localeCompare(right.name);
199
206
  return left.kind === "directory" ? -1 : right.kind === "directory" ? 1 : 0;
200
207
  });
201
- return { entries, truncated: admitted.length > maxEntries };
208
+ return {
209
+ entries,
210
+ truncated: admitted.length > maxEntries,
211
+ denied: denied.slice(0, maxEntries),
212
+ deniedTruncated: denied.length > maxEntries
213
+ };
202
214
  } finally {
203
215
  await current.close();
204
216
  }
@@ -424,6 +436,8 @@ async function scanContainedFiles(input) {
424
436
  let truncated = false;
425
437
  let skippedDirectories = 0;
426
438
  let skippedSymlinks = 0;
439
+ const denied = [];
440
+ let deniedTruncated = false;
427
441
  const root = await openPinnedDirectory(input.root);
428
442
  const visit = async (directory, relativeDirectory, depth) => {
429
443
  if (truncated)
@@ -437,8 +451,15 @@ async function scanContainedFiles(input) {
437
451
  for (const entry of entries) {
438
452
  const relative = relativeDirectory ? path.join(relativeDirectory, entry.name) : entry.name;
439
453
  const kind = entry.isDirectory() ? "directory" : entry.isSymbolicLink() ? "symlink" : entry.isFile() ? "file" : "other";
440
- if (input.authorizePath && !await input.authorizePath(relative, kind))
454
+ if (kind === "file" && input.includeFile && !input.includeFile(relative))
455
+ continue;
456
+ if (input.authorizePath && !await input.authorizePath(relative, kind)) {
457
+ if (denied.length < input.maxFiles)
458
+ denied.push({ relative, kind });
459
+ else
460
+ deniedTruncated = true;
441
461
  continue;
462
+ }
442
463
  if (entry.isSymbolicLink()) {
443
464
  if (input.symlinks === "refuse") {
444
465
  throw new Error(`Contained file traversal refuses symlink: ${relative}`);
@@ -497,7 +518,7 @@ async function scanContainedFiles(input) {
497
518
  } finally {
498
519
  await root.close();
499
520
  }
500
- return { files, truncated, skippedDirectories, skippedSymlinks };
521
+ return { files, truncated, skippedDirectories, skippedSymlinks, denied, deniedTruncated };
501
522
  }
502
523
 
503
524
  export { listContainedDirectory, missingContainedDirectories, openContainedParent, openContainedFile, assertContainedFileCurrent, assertContainedParentCurrent, writeContainedFile, containedEntryMetadata, openContainedParentFile, readContainedUtf8Handle, walkContainedFiles, scanContainedFiles };