stitchkit 0.114.2 → 0.116.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 (115) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/agent-runtime/coding-tool-files.d.ts.map +1 -1
  3. package/dist/agent-runtime/coding-tool-listing.d.ts.map +1 -1
  4. package/dist/agent-runtime/coding-tool-paths.d.ts.map +1 -1
  5. package/dist/agent-runtime/coding-tool-refusals.d.ts +6 -0
  6. package/dist/agent-runtime/coding-tool-refusals.d.ts.map +1 -1
  7. package/dist/agent-runtime/coding-tool-search-patch.d.ts.map +1 -1
  8. package/dist/agent-runtime/contained-scan.d.ts +1 -1
  9. package/dist/agent-runtime/contained-scan.d.ts.map +1 -1
  10. package/dist/agent-runtime/sandbox-broker.d.ts.map +1 -1
  11. package/dist/agent-runtime/sandbox-bubblewrap-storage.d.ts.map +1 -1
  12. package/dist/application/directory-inbox-files.d.ts.map +1 -1
  13. package/dist/application/file-state-store.d.ts.map +1 -1
  14. package/dist/entrypoints/agent-runtime/coding-tools.js +6 -4
  15. package/dist/entrypoints/agent-runtime/harness.js +2 -1
  16. package/dist/entrypoints/agent-runtime/sandbox.js +13 -8
  17. package/dist/entrypoints/agent-runtime/sqlite/bun.js +8 -6
  18. package/dist/entrypoints/agent-runtime/sqlite/node.js +8 -6
  19. package/dist/entrypoints/agent-runtime/testing.js +8 -6
  20. package/dist/entrypoints/agent-runtime.js +8 -6
  21. package/dist/entrypoints/application/diagnostic-journal.js +2 -2
  22. package/dist/entrypoints/application/directory-inbox.js +10 -7
  23. package/dist/entrypoints/cli/publish.js +11 -8
  24. package/dist/entrypoints/cli.js +6 -3
  25. package/dist/entrypoints/files.js +10 -7
  26. package/dist/entrypoints/process/owner-loss.js +1 -1
  27. package/dist/entrypoints/process.js +3 -3
  28. package/dist/entrypoints/react/keyboard/testing.js +1 -1
  29. package/dist/entrypoints/react/keyboard.js +11 -11
  30. package/dist/entrypoints/server.js +4 -4
  31. package/dist/entrypoints/telegram/grammy.js +2 -2
  32. package/dist/entrypoints/telegram.d.ts +1 -1
  33. package/dist/entrypoints/telegram.d.ts.map +1 -1
  34. package/dist/entrypoints/telegram.js +30 -14
  35. package/dist/entrypoints/tools.js +5 -2
  36. package/dist/files/chunk-spool.d.ts.map +1 -1
  37. package/dist/{index-2f9r0jgr.js → index-364k2zwa.js} +4 -4
  38. package/dist/{index-dc9ere5p.js → index-4g6qmgdx.js} +1 -1
  39. package/dist/index-6f49krb5.js +107 -0
  40. package/dist/{index-912sza5h.js → index-90p34rts.js} +1 -1
  41. package/dist/{index-07dcf2yn.js → index-ac6vvm30.js} +5 -2
  42. package/dist/{index-zrtrjkbf.js → index-arjmb6de.js} +183 -172
  43. package/dist/{index-7r4knwf8.js → index-dr3t5n1v.js} +14 -4
  44. package/dist/{index-84bf5spd.js → index-f6m4c545.js} +5 -2
  45. package/dist/{index-qj1sy4ep.js → index-fa435yq2.js} +1 -1
  46. package/dist/{index-hy802jnr.js → index-fdk4r4r6.js} +6 -3
  47. package/dist/index-jj9228tt.js +6 -0
  48. package/dist/{index-a3462dqf.js → index-jq2ky8fw.js} +1 -1
  49. package/dist/{index-s47ac8zt.js → index-n5sv4z0w.js} +142 -156
  50. package/dist/{index-bh2ht9y5.js → index-n8z3rvzw.js} +4 -1
  51. package/dist/index-q968hy6y.js +100 -0
  52. package/dist/{index-j4zh647a.js → index-tt30h7mr.js} +4 -1
  53. package/dist/{index-tnxsq7cw.js → index-w7jq3fz9.js} +113 -38
  54. package/dist/{index-p02zgk8x.js → index-y4rxnvgp.js} +6 -0
  55. package/dist/{index-5v5a9k2n.js → index-z3d6smer.js} +1 -1
  56. package/dist/{index-6b3pcq5z.js → index-zqkz4af9.js} +1 -1
  57. package/dist/internal/atomic-file.d.ts.map +1 -1
  58. package/dist/internal/atomic-staging.d.ts.map +1 -1
  59. package/dist/internal/contained-directory.d.ts +20 -0
  60. package/dist/internal/contained-directory.d.ts.map +1 -0
  61. package/dist/{agent-runtime → internal}/contained-files.d.ts +24 -13
  62. package/dist/internal/contained-files.d.ts.map +1 -0
  63. package/dist/internal/contained-handle.d.ts +30 -0
  64. package/dist/internal/contained-handle.d.ts.map +1 -0
  65. package/dist/internal/contained-write.d.ts +12 -0
  66. package/dist/internal/contained-write.d.ts.map +1 -0
  67. package/dist/internal/darwin-binding.d.ts +1 -1
  68. package/dist/internal/darwin-binding.d.ts.map +1 -1
  69. package/dist/internal/errno.d.ts +3 -0
  70. package/dist/internal/errno.d.ts.map +1 -0
  71. package/dist/internal/process-instance.d.ts.map +1 -1
  72. package/dist/internal/write-download.d.ts +5 -14
  73. package/dist/internal/write-download.d.ts.map +1 -1
  74. package/dist/process/group-diagnostics.d.ts +1 -0
  75. package/dist/process/group-diagnostics.d.ts.map +1 -1
  76. package/dist/process/group-settlement.d.ts +2 -0
  77. package/dist/process/group-settlement.d.ts.map +1 -1
  78. package/dist/process/group.d.ts.map +1 -1
  79. package/dist/process/owner-loss-control.d.ts.map +1 -1
  80. package/dist/react/keyboard/hooks.d.ts +2 -2
  81. package/dist/react/keyboard/hooks.d.ts.map +1 -1
  82. package/dist/react/keyboard/layers.d.ts +2 -0
  83. package/dist/react/keyboard/layers.d.ts.map +1 -1
  84. package/dist/telegram/broadcast-state.d.ts.map +1 -1
  85. package/dist/telegram/budget-transformer.d.ts +5 -2
  86. package/dist/telegram/budget-transformer.d.ts.map +1 -1
  87. package/dist/telegram/outbound-budget.d.ts +26 -11
  88. package/dist/telegram/outbound-budget.d.ts.map +1 -1
  89. package/dist/tools/cli/download.d.ts.map +1 -1
  90. package/dist/tools/cli/publication-storage.d.ts.map +1 -1
  91. package/dist/tools/cli/publication.d.ts.map +1 -1
  92. package/dist/tools/cli/view.d.ts +7 -1
  93. package/dist/tools/cli/view.d.ts.map +1 -1
  94. package/llms/agent-runtime.txt +16 -6
  95. package/llms/cli.txt +37 -3
  96. package/llms/process.txt +2 -2
  97. package/llms/react-keyboard.txt +18 -2
  98. package/llms/stitchkit.txt +3 -3
  99. package/llms/telegram.txt +10 -3
  100. package/llms/{upgrading-0.104.0-0.114.0.txt → upgrading-0.105.0-0.116.0.txt} +85 -124
  101. package/llms/{upgrading-0.44.0-0.61.0.txt → upgrading-0.44.0-0.62.0.txt} +120 -3
  102. package/llms/{upgrading-0.62.0-0.78.0.txt → upgrading-0.63.0-0.83.0.txt} +181 -120
  103. package/llms/{upgrading-0.79.0-0.103.13.txt → upgrading-0.84.0-0.104.0.txt} +124 -181
  104. package/llms/upgrading.txt +4 -4
  105. package/llms-full.txt +168 -19
  106. package/llms.txt +9 -9
  107. package/native/darwin-arm64.node +0 -0
  108. package/native/darwin-x64.node +0 -0
  109. package/native-assets.json +4 -4
  110. package/package.json +1 -1
  111. package/dist/agent-runtime/contained-darwin.d.ts +0 -21
  112. package/dist/agent-runtime/contained-darwin.d.ts.map +0 -1
  113. package/dist/agent-runtime/contained-files.d.ts.map +0 -1
  114. package/dist/agent-runtime/contained-write.d.ts +0 -9
  115. package/dist/agent-runtime/contained-write.d.ts.map +0 -1
@@ -5,7 +5,7 @@ import {
5
5
  nextZoneIndex2,
6
6
  resolveZoneIndex,
7
7
  createNavZone2
8
- } from "../../index-p02zgk8x.js";
8
+ } from "../../index-y4rxnvgp.js";
9
9
 
10
10
  // src/react/keyboard/hooks.ts
11
11
  import {
@@ -39,15 +39,13 @@ function layerState(options) {
39
39
  function useKeyLayer(options) {
40
40
  const handle = useRef(null);
41
41
  const initial = useRef(options);
42
- useEffect(() => {
43
- const added = stackOf(window).add(layerState(initial.current));
44
- handle.current = added;
45
- return () => {
46
- added.remove();
47
- handle.current = null;
48
- };
42
+ useCommittedEffect(() => {
43
+ const layer = handle.current ?? stackOf(window).add(layerState(initial.current));
44
+ handle.current = layer;
45
+ layer.restore();
46
+ return () => layer.remove();
49
47
  }, []);
50
- useEffect(() => {
48
+ useCommittedEffect(() => {
51
49
  handle.current?.update(layerState(options));
52
50
  });
53
51
  }
@@ -105,12 +103,14 @@ function useNavZone(options) {
105
103
  return {
106
104
  zoneProps: {
107
105
  ref: zoneRef,
108
- "aria-orientation": options.orientation ?? "vertical",
109
106
  [ZONE_ATTRIBUTE]: "",
110
107
  onKeyDown: (event) => {
111
108
  zone.keyDown(event.nativeEvent, element.current);
112
109
  },
113
- ...role !== "none" && { role },
110
+ ...role !== "none" && {
111
+ role,
112
+ "aria-orientation": options.orientation ?? "vertical"
113
+ },
114
114
  ...label !== undefined && { "aria-label": label }
115
115
  },
116
116
  itemProps: (id) => {
@@ -1,6 +1,6 @@
1
1
  import"../index-2kbysk9s.js";
2
- import"../index-bh2ht9y5.js";
3
- import"../index-5v5a9k2n.js";
2
+ import"../index-n8z3rvzw.js";
3
+ import"../index-z3d6smer.js";
4
4
  import {
5
5
  errorCode2,
6
6
  normalizeError2
@@ -52,11 +52,11 @@ import {
52
52
  } from "../index-p0rf7sq9.js";
53
53
  import {
54
54
  createFileStateStore2
55
- } from "../index-hy802jnr.js";
55
+ } from "../index-fdk4r4r6.js";
56
56
  import {
57
57
  bindRealtimeServer2
58
58
  } from "../index-2bqf0a74.js";
59
- import"../index-6b3pcq5z.js";
59
+ import"../index-zqkz4af9.js";
60
60
  import {
61
61
  withDeadline
62
62
  } from "../index-9tqbxv5p.js";
@@ -26,7 +26,7 @@ function platformSignal(signal) {
26
26
  release: () => signal.removeEventListener("abort", abort)
27
27
  };
28
28
  }
29
- function telegramBudgetTransformer(budget) {
29
+ function telegramBudgetTransformer(budget, options) {
30
30
  return async (previous, method, payload, signal) => {
31
31
  const gate = platformSignal(signal);
32
32
  let handedOn = false;
@@ -34,7 +34,7 @@ function telegramBudgetTransformer(budget) {
34
34
  return await budget.run(method, payload, gate.signal, () => {
35
35
  handedOn = true;
36
36
  return previous(method, payload, signal);
37
- });
37
+ }, options);
38
38
  } catch (error) {
39
39
  if (!handedOn && gate.signal?.aborted && error === gate.signal.reason) {
40
40
  throw new TelegramNotDispatchedError2("request", "the Telegram request was cancelled before it was sent", { cause: error });
@@ -6,7 +6,7 @@ export { createTelegramLocalFiles, TelegramLocalFileError, type TelegramLocalFil
6
6
  export { TelegramNotDispatchedError, type TelegramNotDispatchedStage, } from '../telegram/not-dispatched.js';
7
7
  export { createTelegramOperatorChannel, type TelegramChatId, type TelegramOperatorChannel, type TelegramOperatorChannelConfig, type TelegramOperatorDrop, type TelegramOperatorMessage, type TelegramOperatorSenderConfig, telegramOperatorSender, } from '../telegram/operator-channel.js';
8
8
  export { createTelegramOperatorDedupe, type TelegramOperatorDedupe, type TelegramOperatorDedupeVerdict, } from '../telegram/operator-dedupe.js';
9
- export { type TelegramOutboundBudget, type TelegramOutboundBudgetConfig, type TelegramOutboundBudgetStats, telegramOutboundBudget, } from '../telegram/outbound-budget.js';
9
+ export { type TelegramOutboundBudget, type TelegramOutboundBudgetConfig, type TelegramOutboundBudgetStats, type TelegramOutboundCallOptions, type TelegramOutboundLane, telegramOutboundBudget, } from '../telegram/outbound-budget.js';
10
10
  export { classifyTelegramSendFailure, TELEGRAM_SEND_FAILURE_REASONS, type TelegramSendFailure, type TelegramSendFailureReason, } from '../telegram/send-failure.js';
11
11
  export { createTelegramBotTransport, type TelegramBotTransportOpen, type TelegramBotTransportOptions, type TelegramBotTransportResolve, type TelegramBotTransportSocket, type TelegramFetch, } from '../telegram/transport.js';
12
12
  export { createTelegramUpdateIntake, type TelegramUpdateAttemptContext, type TelegramUpdateAttemptIntakeConfig, type TelegramUpdateEnvelope, type TelegramUpdateExhaustion, type TelegramUpdateExhaustionFailure, type TelegramUpdateFailure, type TelegramUpdateIntake, type TelegramUpdateIntakeConfig, type TelegramUpdateIntakeOptions, TelegramUpdateOwnershipLostError, type TelegramUpdateStoreStep, } from '../telegram/update-intake.js';
@@ -1 +1 @@
1
- {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/entrypoints/telegram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/entrypoints/telegram.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import {
2
2
  backoffDelay
3
3
  } from "../index-g6a3na27.js";
4
4
  import"../index-2kbysk9s.js";
5
- import"../index-bh2ht9y5.js";
5
+ import"../index-n8z3rvzw.js";
6
6
  import {
7
7
  attemptExclusiveLock
8
- } from "../index-5v5a9k2n.js";
8
+ } from "../index-z3d6smer.js";
9
9
  import {
10
10
  TELEGRAM_SEND_FAILURE_REASONS2,
11
11
  classifyTelegramSendFailure2
@@ -23,7 +23,10 @@ import {
23
23
  } from "../index-sznqf8fx.js";
24
24
  import {
25
25
  writeFileAtomic2
26
- } from "../index-07dcf2yn.js";
26
+ } from "../index-ac6vvm30.js";
27
+ import {
28
+ errnoOf
29
+ } from "../index-jj9228tt.js";
27
30
  import {
28
31
  raceAbort
29
32
  } from "../index-b0kddvzw.js";
@@ -263,7 +266,7 @@ function assertBroadcastName(name) {
263
266
  throw new TypeError("Telegram broadcast name must be 1–128 of [A-Za-z0-9._-] and start with a letter or digit");
264
267
  }
265
268
  }
266
- var absent = (error) => error instanceof Error && ("code" in error) && error.code === "ENOENT";
269
+ var absent = (error) => errnoOf(error) === "ENOENT";
267
270
  function broadcastFiles(directory, name) {
268
271
  return {
269
272
  recipients: join(directory, `${name}.recipients.json`),
@@ -292,7 +295,7 @@ async function prepareJournal(files, lock) {
292
295
  try {
293
296
  await writeFileAtomic2(files.journal, "", { replace: false, durability: "directory" });
294
297
  } catch (error) {
295
- if (!(error instanceof Error && ("code" in error) && error.code === "EEXIST"))
298
+ if (errnoOf(error) !== "EEXIST")
296
299
  throw error;
297
300
  }
298
301
  }
@@ -980,12 +983,14 @@ function createBudget(rate, fallback, now, sleepFor) {
980
983
  wake = undefined;
981
984
  current?.abort();
982
985
  };
986
+ const nextWaiter = () => queue.find((waiter) => waiter.lane === "interactive") ?? queue[0];
983
987
  const remove = (waiter) => {
984
988
  const index = queue.indexOf(waiter);
985
989
  if (index === -1)
986
990
  return;
991
+ const next = nextWaiter() === waiter;
987
992
  queue.splice(index, 1);
988
- if (index === 0)
993
+ if (next)
989
994
  wakeWaiting();
990
995
  };
991
996
  const drain = async () => {
@@ -994,7 +999,7 @@ function createBudget(rate, fallback, now, sleepFor) {
994
999
  draining = true;
995
1000
  try {
996
1001
  while (queue.length > 0) {
997
- const head = queue[0];
1002
+ const head = nextWaiter();
998
1003
  if (head === undefined)
999
1004
  break;
1000
1005
  if (head.signal?.aborted) {
@@ -1023,7 +1028,7 @@ function createBudget(rate, fallback, now, sleepFor) {
1023
1028
  }
1024
1029
  continue;
1025
1030
  }
1026
- queue.shift();
1031
+ queue.splice(queue.indexOf(head), 1);
1027
1032
  if (head.onAbort)
1028
1033
  head.signal?.removeEventListener("abort", head.onAbort);
1029
1034
  nextGrantAt = at + head.cost * interval;
@@ -1037,14 +1042,20 @@ function createBudget(rate, fallback, now, sleepFor) {
1037
1042
  drain();
1038
1043
  }
1039
1044
  };
1040
- const acquire = (cost, signal) => {
1045
+ const acquire = (cost, signal, options) => {
1041
1046
  if (!Number.isSafeInteger(cost) || cost < 1) {
1042
1047
  return Promise.reject(new RangeError("cost must be an integer of at least one message"));
1043
1048
  }
1044
1049
  if (signal?.aborted)
1045
1050
  return Promise.reject(signal.reason);
1046
1051
  return new Promise((resolve, reject) => {
1047
- const waiter = { cost, resolve, reject, ...signal && { signal } };
1052
+ const waiter = {
1053
+ cost,
1054
+ lane: options?.lane ?? "interactive",
1055
+ resolve,
1056
+ reject,
1057
+ ...signal && { signal }
1058
+ };
1048
1059
  if (signal) {
1049
1060
  const onAbort = () => {
1050
1061
  remove(waiter);
@@ -1081,23 +1092,27 @@ function createBudget(rate, fallback, now, sleepFor) {
1081
1092
  await wait(Math.min(remaining, MAX_TIMER_MS), signal);
1082
1093
  }
1083
1094
  };
1084
- const run = async (method, payload, signal, send) => {
1095
+ const run = async (method, payload, signal, send, options) => {
1085
1096
  if (signal?.aborted)
1086
1097
  throw signal.reason;
1087
1098
  const cost = sendCost(method, payload);
1088
1099
  if (cost > 0)
1089
- await acquire(cost, signal);
1100
+ await acquire(cost, signal, options);
1090
1101
  if (signal?.aborted)
1091
1102
  throw signal.reason;
1103
+ const pauseOnRefusal = (refusal) => {
1104
+ if (cost > 0)
1105
+ pauseAfter(refusal);
1106
+ };
1092
1107
  let result;
1093
1108
  try {
1094
1109
  result = await send();
1095
1110
  } catch (error) {
1096
- pauseAfter(error);
1111
+ pauseOnRefusal(error);
1097
1112
  throw error;
1098
1113
  }
1099
1114
  if (isRecord(result) && result.ok === false)
1100
- pauseAfter(result);
1115
+ pauseOnRefusal(result);
1101
1116
  return result;
1102
1117
  };
1103
1118
  const budget = {
@@ -1110,6 +1125,7 @@ function createBudget(rate, fallback, now, sleepFor) {
1110
1125
  granted,
1111
1126
  messages,
1112
1127
  queued: queue.length,
1128
+ queuedBulk: queue.filter((waiter) => waiter.lane === "bulk").length,
1113
1129
  messagesPerSecond: rate,
1114
1130
  pausedForMs: Math.max(0, pausedUntil - now())
1115
1131
  })
@@ -74,7 +74,8 @@ import {
74
74
  WaitTimeoutError,
75
75
  runWaitOperation,
76
76
  createCli2
77
- } from "../index-tnxsq7cw.js";
77
+ } from "../index-w7jq3fz9.js";
78
+ import"../index-2kbysk9s.js";
78
79
  import {
79
80
  ManagedFilePathSchema2,
80
81
  ManagedFileRefSchema2
@@ -93,6 +94,8 @@ import {
93
94
  import {
94
95
  createToolInvoker2
95
96
  } from "../index-vwhrnp67.js";
97
+ import"../index-q968hy6y.js";
98
+ import"../index-arjmb6de.js";
96
99
  import {
97
100
  collectToolSurface
98
101
  } from "../index-86nbfysb.js";
@@ -105,7 +108,7 @@ import {
105
108
  } from "../index-ega3yz4c.js";
106
109
  import {
107
110
  ManagedFileError2
108
- } from "../index-2f9r0jgr.js";
111
+ } from "../index-364k2zwa.js";
109
112
  import {
110
113
  fetchGuarded,
111
114
  fetchPinnedDocument,
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-spool.d.ts","sourceRoot":"","sources":["../../src/files/chunk-spool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAgBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAKnC,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,mBAAmB,GACnB,mBAAmB,CAAC;AAYxB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,mBAAmB,CAE/E;AAED,yCAAyC;AACzC,eAAO,MAAM,uBAAuB,EAAE,SAAS,mBAAmB,EAEjE,CAAC;AAUF,MAAM,WAAW,gBAAgB,CAAC,KAAK;IACrC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,wBAAwB;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAAC,KAAK,CAAE,SAAQ,aAAa;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,uCAAuC;IACvC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU,CAAC,KAAK;IAC/B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IACpE,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC1D,4FAA4F;IAC5F,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,2EAA2E;IAC3E,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAkED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CA4J1F"}
1
+ {"version":3,"file":"chunk-spool.d.ts","sourceRoot":"","sources":["../../src/files/chunk-spool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAgBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAMnC,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,mBAAmB,GACnB,mBAAmB,CAAC;AAYxB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,mBAAmB,CAE/E;AAED,yCAAyC;AACzC,eAAO,MAAM,uBAAuB,EAAE,SAAS,mBAAmB,EAEjE,CAAC;AAUF,MAAM,WAAW,gBAAgB,CAAC,KAAK;IACrC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,wBAAwB;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAAC,KAAK,CAAE,SAAQ,aAAa;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,uCAAuC;IACvC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU,CAAC,KAAK;IAC/B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IACpE,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC1D,4FAA4F;IAC5F,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,2EAA2E;IAC3E,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAkED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CA4J1F"}
@@ -2,17 +2,17 @@ import {
2
2
  ManagedFilePathSchema2,
3
3
  ManagedFileRefSchema2
4
4
  } from "./index-xqhede6x.js";
5
+ import {
6
+ isWithinDir2
7
+ } from "./index-5cc6r990.js";
5
8
  import {
6
9
  BoundedFileReadError,
7
10
  readBoundedFile
8
11
  } from "./index-m616f0yz.js";
9
- import {
10
- isWithinDir2
11
- } from "./index-5cc6r990.js";
12
12
  import {
13
13
  writeAllBytes,
14
14
  writeAtomicFileStaged
15
- } from "./index-07dcf2yn.js";
15
+ } from "./index-ac6vvm30.js";
16
16
  import {
17
17
  AtomicFilePublicationError2
18
18
  } from "./index-b56nnscm.js";
@@ -17,7 +17,7 @@ import {
17
17
  replaceMessage,
18
18
  ArchiveSpillSchema,
19
19
  createAgentRuntimeStore2
20
- } from "./index-a3462dqf.js";
20
+ } from "./index-jq2ky8fw.js";
21
21
 
22
22
  // src/agent-runtime/store-memory.ts
23
23
  import { z as z2 } from "zod";
@@ -0,0 +1,107 @@
1
+ import {
2
+ openDirectoryAt,
3
+ openPinnedDirectory,
4
+ openFileAt,
5
+ listAt,
6
+ readContainedUtf8Handle
7
+ } from "./index-arjmb6de.js";
8
+
9
+ // src/agent-runtime/contained-scan.ts
10
+ import path from "node:path";
11
+ async function walkContainedFiles(input) {
12
+ const scan = await scanContainedFiles({ ...input, symlinks: "refuse" });
13
+ if (scan.truncated)
14
+ throw new Error("Contained file traversal exceeded its bounds");
15
+ return scan.files;
16
+ }
17
+ async function scanContainedFiles(input) {
18
+ const files = [];
19
+ let truncated = false;
20
+ let skippedDirectories = 0;
21
+ let skippedSymlinks = 0;
22
+ const denied = [];
23
+ let deniedTruncated = false;
24
+ const root = await openPinnedDirectory(input.root);
25
+ const visit = async (directory, relativeDirectory, depth) => {
26
+ if (truncated)
27
+ return;
28
+ if (depth > input.maxDepth) {
29
+ truncated = true;
30
+ return;
31
+ }
32
+ const entries = [...await listAt(directory)];
33
+ entries.sort((left, right) => left.name.localeCompare(right.name));
34
+ for (const entry of entries) {
35
+ const relative = relativeDirectory ? path.join(relativeDirectory, entry.name) : entry.name;
36
+ const kind = entry.isDirectory() ? "directory" : entry.isSymbolicLink() ? "symlink" : entry.isFile() ? "file" : "other";
37
+ if (kind === "file" && input.includeFile && !input.includeFile(relative))
38
+ continue;
39
+ if (input.authorizePath && !await input.authorizePath(relative, kind)) {
40
+ if (denied.length < input.maxFiles)
41
+ denied.push({ relative, kind });
42
+ else
43
+ deniedTruncated = true;
44
+ continue;
45
+ }
46
+ if (entry.isSymbolicLink()) {
47
+ if (input.symlinks === "refuse") {
48
+ throw new Error(`Contained file traversal refuses symlink: ${relative}`);
49
+ }
50
+ skippedSymlinks += 1;
51
+ continue;
52
+ }
53
+ if (entry.isDirectory()) {
54
+ if (input.excludeDirectory?.(relative)) {
55
+ skippedDirectories += 1;
56
+ continue;
57
+ }
58
+ let child;
59
+ try {
60
+ child = await openDirectoryAt(directory, entry.name);
61
+ } catch (error) {
62
+ if (input.symlinks === "skip") {
63
+ skippedSymlinks += 1;
64
+ continue;
65
+ }
66
+ throw error;
67
+ }
68
+ try {
69
+ await visit(child, relative, depth + 1);
70
+ } finally {
71
+ await child.close();
72
+ }
73
+ continue;
74
+ }
75
+ if (!entry.isFile())
76
+ continue;
77
+ if (files.length >= input.maxFiles) {
78
+ truncated = true;
79
+ return;
80
+ }
81
+ let content;
82
+ if (input.readMaxBytes !== undefined) {
83
+ try {
84
+ const handle = await openFileAt(directory, entry.name);
85
+ try {
86
+ content = await readContainedUtf8Handle(handle, input.readMaxBytes);
87
+ } finally {
88
+ await handle.close();
89
+ }
90
+ } catch (error) {
91
+ if (input.skipUnreadable)
92
+ continue;
93
+ throw error;
94
+ }
95
+ }
96
+ files.push({ absolute: relative, relative, ...content && { content } });
97
+ }
98
+ };
99
+ try {
100
+ await visit(root, "", 0);
101
+ } finally {
102
+ await root.close();
103
+ }
104
+ return { files, truncated, skippedDirectories, skippedSymlinks, denied, deniedTruncated };
105
+ }
106
+
107
+ export { walkContainedFiles, scanContainedFiles };
@@ -8,7 +8,7 @@ import {
8
8
  } from "./index-mgb7r8b8.js";
9
9
  import {
10
10
  writeFileAtomicSync2
11
- } from "./index-07dcf2yn.js";
11
+ } from "./index-ac6vvm30.js";
12
12
  import {
13
13
  raceAbort
14
14
  } from "./index-b0kddvzw.js";
@@ -6,7 +6,10 @@ import {
6
6
  } from "./index-b56nnscm.js";
7
7
  import {
8
8
  stagingPath
9
- } from "./index-j4zh647a.js";
9
+ } from "./index-tt30h7mr.js";
10
+ import {
11
+ errnoOf
12
+ } from "./index-jj9228tt.js";
10
13
 
11
14
  // src/internal/atomic-file.ts
12
15
  import { closeSync, fchmodSync, fsyncSync, openSync, unlinkSync, writeSync } from "node:fs";
@@ -27,7 +30,7 @@ async function writeFileAtomic2(target, data, options = {}) {
27
30
  return writeAtomicFileData(target, data, options);
28
31
  }
29
32
  function isMissing(error) {
30
- return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
33
+ return errnoOf(error) === "ENOENT";
31
34
  }
32
35
  async function writeAtomicFileStaged(target, stage, options, io = { open, unlink, publish: publishAtomicFile }) {
33
36
  const mode = options.mode ?? DEFAULT_MODE;