@nexrall/code-core 1.4.70 → 1.4.72

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 (125) hide show
  1. package/dist/agent/agentRegistry.d.ts.map +1 -1
  2. package/dist/agent/agentRegistry.js +28 -10
  3. package/dist/agent/agentTypes.d.ts.map +1 -1
  4. package/dist/agent/agentTypes.js +159 -48
  5. package/dist/agent/askOnce.d.ts.map +1 -1
  6. package/dist/agent/askOnce.js +14 -5
  7. package/dist/agent/backgroundAgents.d.ts.map +1 -1
  8. package/dist/agent/backgroundAgents.js +22 -8
  9. package/dist/agent/claimEvidence.d.ts.map +1 -1
  10. package/dist/agent/claimEvidence.js +2 -1
  11. package/dist/agent/compaction.d.ts.map +1 -1
  12. package/dist/agent/compaction.js +31 -10
  13. package/dist/agent/crossProcessLock.d.ts.map +1 -1
  14. package/dist/agent/crossProcessLock.js +15 -7
  15. package/dist/agent/editCompleteness.d.ts.map +1 -1
  16. package/dist/agent/fileLocks.d.ts.map +1 -1
  17. package/dist/agent/fileLocks.js +14 -5
  18. package/dist/agent/flaky.d.ts.map +1 -1
  19. package/dist/agent/hooks.d.ts.map +1 -1
  20. package/dist/agent/hooks.js +284 -74
  21. package/dist/agent/iterationPolicy.d.ts.map +1 -1
  22. package/dist/agent/iterationPolicy.js +28 -25
  23. package/dist/agent/lifecycleHost.d.ts.map +1 -1
  24. package/dist/agent/lifecycleHost.js +36 -12
  25. package/dist/agent/loop.d.ts +22 -4
  26. package/dist/agent/loop.d.ts.map +1 -1
  27. package/dist/agent/loop.js +223 -51
  28. package/dist/agent/memory.d.ts.map +1 -1
  29. package/dist/agent/memory.js +13 -7
  30. package/dist/agent/modelCatalogue.d.ts.map +1 -1
  31. package/dist/agent/modelCatalogue.js +4 -1
  32. package/dist/agent/nestedInstructions.d.ts +122 -0
  33. package/dist/agent/nestedInstructions.d.ts.map +1 -0
  34. package/dist/agent/nestedInstructions.js +696 -0
  35. package/dist/agent/peerRegistry.d.ts.map +1 -1
  36. package/dist/agent/peerRegistry.js +44 -6
  37. package/dist/agent/peerTransport.d.ts.map +1 -1
  38. package/dist/agent/peerTransport.js +18 -6
  39. package/dist/agent/planMode.d.ts.map +1 -1
  40. package/dist/agent/planMode.js +194 -41
  41. package/dist/agent/readDedupe.d.ts.map +1 -1
  42. package/dist/agent/readDedupe.js +3 -1
  43. package/dist/agent/securityLint.d.ts.map +1 -1
  44. package/dist/agent/sharedTasks.d.ts.map +1 -1
  45. package/dist/agent/sharedTasks.js +20 -5
  46. package/dist/agent/skills.d.ts +79 -0
  47. package/dist/agent/skills.d.ts.map +1 -1
  48. package/dist/agent/skills.js +403 -14
  49. package/dist/agent/subAgentBudget.d.ts.map +1 -1
  50. package/dist/agent/subTask.d.ts.map +1 -1
  51. package/dist/agent/subTask.js +87 -37
  52. package/dist/agent/subTaskSupport.d.ts.map +1 -1
  53. package/dist/agent/subTaskSupport.js +43 -14
  54. package/dist/agent/testIntegrity.d.ts.map +1 -1
  55. package/dist/agent/testIntegrity.js +5 -3
  56. package/dist/agent/toolDescriptions.d.ts.map +1 -1
  57. package/dist/agent/toolPrefetch.d.ts.map +1 -1
  58. package/dist/agent/toolPrefetch.js +15 -11
  59. package/dist/agent/trust.d.ts.map +1 -1
  60. package/dist/agent/trust.js +6 -2
  61. package/dist/agent/worktree.d.ts.map +1 -1
  62. package/dist/agent/worktree.js +70 -16
  63. package/dist/agent/worktreeEnforcement.d.ts.map +1 -1
  64. package/dist/agent/worktreeEnforcement.js +9 -4
  65. package/dist/api/client.d.ts.map +1 -1
  66. package/dist/api/client.js +67 -32
  67. package/dist/auth/index.d.ts.map +1 -1
  68. package/dist/auth/index.js +3 -1
  69. package/dist/checkpoint/manager.d.ts.map +1 -1
  70. package/dist/checkpoint/manager.js +23 -8
  71. package/dist/commands/loader.d.ts.map +1 -1
  72. package/dist/commands/loader.js +6 -1
  73. package/dist/index.d.ts +2 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +2 -0
  76. package/dist/mcp/client.d.ts +34 -0
  77. package/dist/mcp/client.d.ts.map +1 -1
  78. package/dist/mcp/client.js +89 -24
  79. package/dist/mcp/httpClient.d.ts +24 -1
  80. package/dist/mcp/httpClient.d.ts.map +1 -1
  81. package/dist/mcp/httpClient.js +80 -14
  82. package/dist/mcp/instructions.d.ts +11 -0
  83. package/dist/mcp/instructions.d.ts.map +1 -0
  84. package/dist/mcp/instructions.js +42 -0
  85. package/dist/mcp/manager.d.ts +24 -0
  86. package/dist/mcp/manager.d.ts.map +1 -1
  87. package/dist/mcp/manager.js +117 -24
  88. package/dist/mcp/server.d.ts.map +1 -1
  89. package/dist/mcp/server.js +48 -14
  90. package/dist/mcp/sseClient.d.ts +9 -1
  91. package/dist/mcp/sseClient.d.ts.map +1 -1
  92. package/dist/mcp/sseClient.js +43 -10
  93. package/dist/mcp/stats.d.ts.map +1 -1
  94. package/dist/permissions/bashClassify.d.ts.map +1 -1
  95. package/dist/permissions/bashClassify.js +25 -3
  96. package/dist/permissions/destructive.d.ts.map +1 -1
  97. package/dist/permissions/destructive.js +7 -2
  98. package/dist/permissions/destructiveTokens.d.ts.map +1 -1
  99. package/dist/permissions/destructiveTokens.js +104 -24
  100. package/dist/permissions/modePolicy.d.ts.map +1 -1
  101. package/dist/permissions/modePolicy.js +40 -17
  102. package/dist/permissions/rules.d.ts.map +1 -1
  103. package/dist/permissions/rules.js +7 -5
  104. package/dist/plugins/data.d.ts.map +1 -1
  105. package/dist/plugins/data.js +6 -2
  106. package/dist/plugins/index.d.ts.map +1 -1
  107. package/dist/plugins/index.js +18 -7
  108. package/dist/plugins/installer.d.ts.map +1 -1
  109. package/dist/plugins/installer.js +17 -10
  110. package/dist/plugins/sources.d.ts.map +1 -1
  111. package/dist/plugins/sources.js +9 -3
  112. package/dist/tools/executor.d.ts.map +1 -1
  113. package/dist/tools/executor.js +470 -173
  114. package/dist/tools/sandbox.d.ts.map +1 -1
  115. package/dist/tools/sandbox.js +5 -1
  116. package/dist/tools/symbols.d.ts.map +1 -1
  117. package/dist/tools/symbols.js +30 -8
  118. package/dist/tools/tsLangService.d.ts.map +1 -1
  119. package/dist/tools/tsLangService.js +12 -4
  120. package/dist/types.d.ts +17 -0
  121. package/dist/types.d.ts.map +1 -1
  122. package/dist/util/frontmatter.d.ts.map +1 -1
  123. package/dist/util/miniYaml.d.ts.map +1 -1
  124. package/dist/util/miniYaml.js +4 -2
  125. package/package.json +1 -1
@@ -98,18 +98,31 @@ const WORKTREE_ROOT_DIRNAME = '.nexrall/worktrees';
98
98
  // reproducible artifacts. A project can still get everything copied verbatim
99
99
  // by using its OWN hook instead of the built-in copy fallback.
100
100
  const COPY_SKIP_DIRS = new Set([
101
- '.git', 'node_modules', 'dist', 'build', '.next', '__pycache__',
102
- '.venv', 'venv', '.nexrall', '.svn', '.hg',
101
+ '.git',
102
+ 'node_modules',
103
+ 'dist',
104
+ 'build',
105
+ '.next',
106
+ '__pycache__',
107
+ '.venv',
108
+ 'venv',
109
+ '.nexrall',
110
+ '.svn',
111
+ '.hg',
103
112
  ]);
104
113
  function isGitRepo(dir) {
105
114
  try {
106
115
  const r = (0, child_process_1.spawnSync)('git', ['rev-parse', '--show-toplevel'], {
107
- cwd: dir, encoding: 'utf-8', timeout: 5000,
116
+ cwd: dir,
117
+ encoding: 'utf-8',
118
+ timeout: 5000,
108
119
  });
109
120
  if (r.status === 0 && r.stdout)
110
121
  return { ok: true, root: r.stdout.trim() };
111
122
  }
112
- catch { /* git not installed or not a repo */ }
123
+ catch {
124
+ /* git not installed or not a repo */
125
+ }
113
126
  return { ok: false };
114
127
  }
115
128
  /** Generate a readable random name, same shape Claude Code uses ("bright-running-fox"). */
@@ -177,7 +190,9 @@ function copyRecursive(src, dest) {
177
190
  try {
178
191
  fs.symlinkSync(fs.readlinkSync(s), d);
179
192
  }
180
- catch { /* best-effort */ }
193
+ catch {
194
+ /* best-effort */
195
+ }
181
196
  }
182
197
  else if (entry.isDirectory()) {
183
198
  copyRecursive(s, d);
@@ -222,7 +237,11 @@ function createWorktree(workDir, requestedName) {
222
237
  if (git.ok && git.root) {
223
238
  fs.mkdirSync(root, { recursive: true });
224
239
  const branch = `worktree-${name}`;
225
- const r = (0, child_process_1.spawnSync)('git', ['worktree', 'add', '-b', branch, worktreePath], { cwd: git.root, encoding: 'utf-8', timeout: 30000 });
240
+ const r = (0, child_process_1.spawnSync)('git', ['worktree', 'add', '-b', branch, worktreePath], {
241
+ cwd: git.root,
242
+ encoding: 'utf-8',
243
+ timeout: 30000,
244
+ });
226
245
  if (r.status !== 0) {
227
246
  return { ok: false, error: `git worktree add failed: ${(r.stderr ?? r.stdout ?? '').trim() || 'unknown error'}` };
228
247
  }
@@ -246,7 +265,9 @@ function worktreeHasWork(state) {
246
265
  if (state.backend === 'git') {
247
266
  try {
248
267
  const status = (0, child_process_1.spawnSync)('git', ['status', '--porcelain'], {
249
- cwd: state.worktreePath, encoding: 'utf-8', timeout: 10000,
268
+ cwd: state.worktreePath,
269
+ encoding: 'utf-8',
270
+ timeout: 10000,
250
271
  });
251
272
  // Filter our own bookkeeping file out of the porcelain output before
252
273
  // deciding — see writeMetadata's comment on why this is filtered here
@@ -258,7 +279,11 @@ function worktreeHasWork(state) {
258
279
  if (meaningfulLines.length > 0)
259
280
  return true;
260
281
  // Also check for unpushed commits on the worktree's own branch.
261
- const unpushed = (0, child_process_1.spawnSync)('git', ['log', '@{u}..HEAD', '--oneline'], { cwd: state.worktreePath, encoding: 'utf-8', timeout: 10000 });
282
+ const unpushed = (0, child_process_1.spawnSync)('git', ['log', '@{u}..HEAD', '--oneline'], {
283
+ cwd: state.worktreePath,
284
+ encoding: 'utf-8',
285
+ timeout: 10000,
286
+ });
262
287
  if (unpushed.status === 0 && unpushed.stdout && unpushed.stdout.trim().length > 0)
263
288
  return true;
264
289
  return false;
@@ -283,7 +308,11 @@ function removeWorktree(state, opts = {}) {
283
308
  if (!opts.force && worktreeHasWork(state)) {
284
309
  return { ok: false, hadWork: true };
285
310
  }
286
- const hookEnv = { NEXRALL_WORKTREE_NAME: state.name, NEXRALL_WORKTREE_PATH: state.worktreePath, NEXRALL_MAIN_CHECKOUT: state.mainCheckout };
311
+ const hookEnv = {
312
+ NEXRALL_WORKTREE_NAME: state.name,
313
+ NEXRALL_WORKTREE_PATH: state.worktreePath,
314
+ NEXRALL_MAIN_CHECKOUT: state.mainCheckout,
315
+ };
287
316
  if (state.backend === 'hook') {
288
317
  const hook = runWorktreeHook(state.mainCheckout, 'exit', hookEnv);
289
318
  if (hook.ran && !hook.ok)
@@ -304,10 +333,19 @@ function removeWorktree(state, opts = {}) {
304
333
  try {
305
334
  fs.unlinkSync(metadataPath(state.worktreePath));
306
335
  }
307
- catch { /* fine if already gone */ }
308
- const r = (0, child_process_1.spawnSync)('git', ['worktree', 'remove', state.worktreePath, ...(opts.force ? ['--force'] : [])], { cwd: state.mainCheckout, encoding: 'utf-8', timeout: 30000 });
336
+ catch {
337
+ /* fine if already gone */
338
+ }
339
+ const r = (0, child_process_1.spawnSync)('git', ['worktree', 'remove', state.worktreePath, ...(opts.force ? ['--force'] : [])], {
340
+ cwd: state.mainCheckout,
341
+ encoding: 'utf-8',
342
+ timeout: 30000,
343
+ });
309
344
  if (r.status !== 0) {
310
- return { ok: false, error: `git worktree remove failed: ${(r.stderr ?? r.stdout ?? '').trim() || 'unknown error'}` };
345
+ return {
346
+ ok: false,
347
+ error: `git worktree remove failed: ${(r.stderr ?? r.stdout ?? '').trim() || 'unknown error'}`,
348
+ };
311
349
  }
312
350
  // Also drop the branch — an unnamed worktree's branch is disposable once
313
351
  // its worktree is gone (mirrors Claude Code's automatic cleanup for
@@ -338,7 +376,11 @@ function removeWorktree(state, opts = {}) {
338
376
  function enterWorktree(state) {
339
377
  if (state.backend !== 'hook')
340
378
  return { ok: true };
341
- const hookEnv = { NEXRALL_WORKTREE_NAME: state.name, NEXRALL_WORKTREE_PATH: state.worktreePath, NEXRALL_MAIN_CHECKOUT: state.mainCheckout };
379
+ const hookEnv = {
380
+ NEXRALL_WORKTREE_NAME: state.name,
381
+ NEXRALL_WORKTREE_PATH: state.worktreePath,
382
+ NEXRALL_MAIN_CHECKOUT: state.mainCheckout,
383
+ };
342
384
  const hook = runWorktreeHook(state.mainCheckout, 'enter', hookEnv);
343
385
  if (hook.ran && !hook.ok)
344
386
  return { ok: false, error: `worktree-enter hook failed: ${hook.output ?? 'unknown error'}` };
@@ -374,7 +416,9 @@ function realOrLexical(p) {
374
416
  try {
375
417
  return fs.realpathSync(p);
376
418
  }
377
- catch { /* fall through — p (or a piece of it) doesn't exist yet */ }
419
+ catch {
420
+ /* fall through — p (or a piece of it) doesn't exist yet */
421
+ }
378
422
  let dir = path.dirname(p);
379
423
  const tail = [path.basename(p)];
380
424
  for (;;) {
@@ -449,7 +493,9 @@ function writeMetadata(state) {
449
493
  // filename out of `git status --porcelain`'s output directly — no shared
450
494
  // state touched, no risk to the main checkout.
451
495
  }
452
- catch { /* best-effort */ }
496
+ catch {
497
+ /* best-effort */
498
+ }
453
499
  }
454
500
  function readMetadata(worktreePath) {
455
501
  try {
@@ -498,5 +544,13 @@ function listWorktrees(workDir) {
498
544
  function findWorktreeByName(workDir, name) {
499
545
  return listWorktrees(workDir).find((w) => w.name === name) ?? null;
500
546
  }
501
- exports._worktreeInternal = { isGitRepo, safeName, copyRecursive, findWorktreeHook, COPY_SKIP_DIRS, WORKTREE_ROOT_DIRNAME, metadataPath };
547
+ exports._worktreeInternal = {
548
+ isGitRepo,
549
+ safeName,
550
+ copyRecursive,
551
+ findWorktreeHook,
552
+ COPY_SKIP_DIRS,
553
+ WORKTREE_ROOT_DIRNAME,
554
+ metadataPath,
555
+ };
502
556
  //# sourceMappingURL=worktree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktreeEnforcement.d.ts","sourceRoot":"","sources":["../../src/agent/worktreeEnforcement.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,uBAAuB,GAAG,2BAA2B,GAAG,+BAA+B,GAAG,yBAAyB,CAAC;IAC5H,OAAO,EAAE,MAAM,CAAC;CACjB;AAwBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,eAAe,GAAG,IAAI,CAuBxB;AA2BD,iBAAS,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAIlF;AAED,iBAAS,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,IAAI,CAyC/F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAcjE;AAED,eAAO,MAAM,4BAA4B;;;CAAyD,CAAC"}
1
+ {"version":3,"file":"worktreeEnforcement.d.ts","sourceRoot":"","sources":["../../src/agent/worktreeEnforcement.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,MAAM,EACF,uBAAuB,GACvB,2BAA2B,GAC3B,+BAA+B,GAC/B,yBAAyB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,eAAe,GAAG,IAAI,CAuBxB;AA2BD,iBAAS,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAIlF;AAED,iBAAS,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,IAAI,CAyC/F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAcjE;AAED,eAAO,MAAM,4BAA4B;;;CAAyD,CAAC"}
@@ -69,16 +69,21 @@ exports.worktreeInstructions = worktreeInstructions;
69
69
  const path = __importStar(require("path"));
70
70
  const worktree_1 = require("./worktree");
71
71
  const EDIT_TOOLS = new Set([
72
- 'write_file', 'write_docx', 'write_xlsx', 'write_pptx',
73
- 'edit_file', 'multi_edit', 'delete_file', 'notebook_edit',
72
+ 'write_file',
73
+ 'write_docx',
74
+ 'write_xlsx',
75
+ 'write_pptx',
76
+ 'edit_file',
77
+ 'multi_edit',
78
+ 'delete_file',
79
+ 'notebook_edit',
74
80
  ]);
75
81
  // move_file/copy_file carry two paths (source/destination — see loop.ts's
76
82
  // lockPathsFor, which handles the identical shape for the same reason).
77
83
  const DUAL_PATH_TOOLS = new Set(['move_file', 'copy_file']);
78
84
  function pathsFromInput(tool, input) {
79
85
  if (DUAL_PATH_TOOLS.has(tool)) {
80
- return [input.source, input.destination, input.dest]
81
- .filter((p) => typeof p === 'string' && p.length > 0);
86
+ return [input.source, input.destination, input.dest].filter((p) => typeof p === 'string' && p.length > 0);
82
87
  }
83
88
  if (typeof input.path === 'string' && input.path)
84
89
  return [input.path];
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -405,7 +405,7 @@ function sleep(ms) {
405
405
  * the nested product (36) exists to bound pathological cases, not to be reached. */
406
406
  const MAX_TOTAL_ATTEMPTS = (MAX_RETRIES + 1) * (MAX_RETRIES + 1);
407
407
  async function streamChat(messages, options, onEvent) {
408
- const { model, env, editorContext, nexrallMd, mode, effort, clientType, abortSignal, extraTools, agents, skills, allowRestartAfterRender, canWriteSharedMemory, hasOwnAgentStore, canSpawnSubAgents, canBrowseWeb, toolAllowlist } = options;
408
+ const { model, env, editorContext, nexrallMd, mode, effort, clientType, abortSignal, extraTools, agents, skills, allowRestartAfterRender, canWriteSharedMemory, hasOwnAgentStore, canSpawnSubAgents, canBrowseWeb, toolAllowlist, } = options;
409
409
  // IDEMPOTENCY KEY for this logical turn, generated ONCE and reused by every retry
410
410
  // below (that reuse is the entire point — a fresh id per attempt would be useless).
411
411
  //
@@ -495,10 +495,30 @@ async function streamChat(messages, options, onEvent) {
495
495
  const getChatBody = () => {
496
496
  if (chatBody && chatBody.turnId === turnId)
497
497
  return chatBody;
498
- const json = JSON.stringify({ messages, model, env, editorContext, nexrallMd, mode, effort, clientType, extraTools, agents, skills, turnId, canWriteSharedMemory, hasOwnAgentStore, canSpawnSubAgents, canBrowseWeb, toolAllowlist, ...billingOverrideFields() });
499
- chatBody = gzipRequestsEnabled() && json.length >= GZIP_MIN_BYTES
500
- ? { data: (0, zlib_1.gzipSync)(json, { level: 5 }), gzip: true, turnId }
501
- : { data: json, gzip: false, turnId };
498
+ const json = JSON.stringify({
499
+ messages,
500
+ model,
501
+ env,
502
+ editorContext,
503
+ nexrallMd,
504
+ mode,
505
+ effort,
506
+ clientType,
507
+ extraTools,
508
+ agents,
509
+ skills,
510
+ turnId,
511
+ canWriteSharedMemory,
512
+ hasOwnAgentStore,
513
+ canSpawnSubAgents,
514
+ canBrowseWeb,
515
+ toolAllowlist,
516
+ ...billingOverrideFields(),
517
+ });
518
+ chatBody =
519
+ gzipRequestsEnabled() && json.length >= GZIP_MIN_BYTES
520
+ ? { data: (0, zlib_1.gzipSync)(json, { level: 5 }), gzip: true, turnId }
521
+ : { data: json, gzip: false, turnId };
502
522
  return chatBody;
503
523
  };
504
524
  const buildFetchArgs = () => {
@@ -566,7 +586,7 @@ async function streamChat(messages, options, onEvent) {
566
586
  // precisely backwards. Measuring only time spent RECONNECTING keeps the guarantee
567
587
  // meaningful: "at most 5 minutes of retrying before we tell you it's broken".
568
588
  let retryDeadline = 0;
569
- const retryBudgetLeft = () => retryDeadline === 0 ? MAX_TOTAL_RETRY_MS : retryDeadline - Date.now();
589
+ const retryBudgetLeft = () => (retryDeadline === 0 ? MAX_TOTAL_RETRY_MS : retryDeadline - Date.now());
570
590
  // Require a MEANINGFUL remainder, not just "> 0". With a bare positive check, 1 ms of
571
591
  // budget was enough to launch a whole fresh attempt — which can then sit in
572
592
  // FIRST_EVENT_TIMEOUT_MS (300 s) of prompt-processing wait, blowing past the very
@@ -770,13 +790,15 @@ async function streamChat(messages, options, onEvent) {
770
790
  // node-fetch body is single-use — calling .text() again yields '' and the
771
791
  // upstream-forbidden shape would never be recognised, turning a retryable
772
792
  // blip into an instant terminal failure.
773
- const bodyText = errorBodyOverride ?? await response.text().catch(() => '');
793
+ const bodyText = errorBodyOverride ?? (await response.text().catch(() => ''));
774
794
  let isUpstreamForbidden = false;
775
795
  try {
776
796
  const parsed = JSON.parse(bodyText);
777
797
  isUpstreamForbidden = parsed?.error?.type === 'forbidden';
778
798
  }
779
- catch { /* not JSON — not this shape, fall through as terminal below */ }
799
+ catch {
800
+ /* not JSON — not this shape, fall through as terminal below */
801
+ }
780
802
  if (isUpstreamForbidden) {
781
803
  if (attempt < FORBIDDEN_RETRY_LIMIT && canRetry()) {
782
804
  reportRetry('Upstream rejected the request — retrying');
@@ -822,7 +844,7 @@ async function streamChat(messages, options, onEvent) {
822
844
  if (resuming && response.status >= 400 && response.status < 500) {
823
845
  // May already have been read by the token-expiry check above (401/403);
824
846
  // node-fetch bodies are single-use, so reuse it rather than reading ''.
825
- const body = errorBodyOverride ?? await response.text().catch(() => '');
847
+ const body = errorBodyOverride ?? (await response.text().catch(() => ''));
826
848
  if (response.status === 410 || response.status === 404 || bodySaysNotResumable(body)) {
827
849
  const canRestart = await prepareRestart('Connection lost too long to resume');
828
850
  if (!canRestart) {
@@ -862,7 +884,9 @@ async function streamChat(messages, options, onEvent) {
862
884
  try {
863
885
  inFlight = JSON.parse(body)?.turnInFlight === true;
864
886
  }
865
- catch { /* treat as terminal */ }
887
+ catch {
888
+ /* treat as terminal */
889
+ }
866
890
  // A wait is NOT a failed attempt, so it must not consume the network-error
867
891
  // budget: a real coding turn runs for minutes, and spending `MAX_RETRIES` on
868
892
  // fixed short sleeps burned the whole allowance in ~10 s and hard-failed while
@@ -919,7 +943,7 @@ async function streamChat(messages, options, onEvent) {
919
943
  if (!response)
920
944
  throw lastErr ?? new Error('Request failed after max retries');
921
945
  if (!response.ok) {
922
- const errText = errorBodyOverride ?? await response.text();
946
+ const errText = errorBodyOverride ?? (await response.text());
923
947
  let errMsg = `API error ${response.status}`;
924
948
  let balance;
925
949
  // code/remaining/teamId are the team-billing fields (migration 139). The
@@ -1340,7 +1364,9 @@ async function streamChat(messages, options, onEvent) {
1340
1364
  usage: {
1341
1365
  input_tokens: evt.input_tokens,
1342
1366
  output_tokens: evt.output_tokens,
1343
- cache_creation_input_tokens: typeof evt.cache_creation_input_tokens === 'number' ? evt.cache_creation_input_tokens : undefined,
1367
+ cache_creation_input_tokens: typeof evt.cache_creation_input_tokens === 'number'
1368
+ ? evt.cache_creation_input_tokens
1369
+ : undefined,
1344
1370
  cache_read_input_tokens: typeof evt.cache_read_input_tokens === 'number' ? evt.cache_read_input_tokens : undefined,
1345
1371
  },
1346
1372
  });
@@ -1447,8 +1473,11 @@ async function streamChat(messages, options, onEvent) {
1447
1473
  break;
1448
1474
  }
1449
1475
  case 'error': {
1450
- const message = typeof evt.message === 'string' ? evt.message :
1451
- typeof evt.error === 'string' ? evt.error : 'Unknown SSE error';
1476
+ const message = typeof evt.message === 'string'
1477
+ ? evt.message
1478
+ : typeof evt.error === 'string'
1479
+ ? evt.error
1480
+ : 'Unknown SSE error';
1452
1481
  // The GET /chat/resume tail loop sends this when the turn's Redis frame
1453
1482
  // buffer developed a gap (trimmed window, a swallowed flush error, or the
1454
1483
  // owning pod died) or the turn is simply gone — see routes/code.js. Unlike
@@ -1495,7 +1524,8 @@ async function streamChat(messages, options, onEvent) {
1495
1524
  stream.destroy?.();
1496
1525
  reject(Object.assign(tagTransient(new Error(message)), { forceRestart: true }));
1497
1526
  }
1498
- else if ((serverSaysRetryable || isRetryableStreamMsg(message)) && (!emittedToCaller || allowRestartAfterRender)) {
1527
+ else if ((serverSaysRetryable || isRetryableStreamMsg(message)) &&
1528
+ (!emittedToCaller || allowRestartAfterRender)) {
1499
1529
  clearInterval(heartbeatWatchdog);
1500
1530
  stream.destroy?.();
1501
1531
  reject(tagTransient(new Error(message)));
@@ -1634,7 +1664,10 @@ async function streamChat(messages, options, onEvent) {
1634
1664
  if (e.forceRestart) {
1635
1665
  const canRestart = await prepareRestart(err.message || 'Could not resume — restarting this turn');
1636
1666
  if (!canRestart) {
1637
- throw new Error('Connection lost and this turn could no longer be resumed. Send your message again.');
1667
+ // Object.assign keeps the original failure attached — the two-arg
1668
+ // `new Error(msg, { cause })` form needs ES2022 lib types and this
1669
+ // package compiles against ES2020. Diagnostics depend on this cause.
1670
+ throw Object.assign(new Error('Connection lost and this turn could no longer be resumed. Send your message again.'), { cause: err });
1638
1671
  }
1639
1672
  reportRetry('Could not resume — restarting this turn');
1640
1673
  await sleepWithinBudget(backoffMs(sAttempt));
@@ -1753,7 +1786,7 @@ async function describeAttachment(kind, data, mediaType, name) {
1753
1786
  // expired token during `/image` should not surface as a confusing raw 401.
1754
1787
  if (response.status === 401 || response.status === 403) {
1755
1788
  const body = await response.text().catch(() => '');
1756
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
1789
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1757
1790
  response = await fetchOnce();
1758
1791
  }
1759
1792
  else {
@@ -1767,7 +1800,9 @@ async function describeAttachment(kind, data, mediaType, name) {
1767
1800
  if (body?.error)
1768
1801
  message = body.error;
1769
1802
  }
1770
- catch { /* non-JSON error body — keep the generic message */ }
1803
+ catch {
1804
+ /* non-JSON error body — keep the generic message */
1805
+ }
1771
1806
  throw new Error(message);
1772
1807
  }
1773
1808
  const json = (await response.json());
@@ -1786,7 +1821,7 @@ async function getBalance() {
1786
1821
  // path quietly recovers is just confusing.
1787
1822
  if (response.status === 401 || response.status === 403) {
1788
1823
  const body = await response.text().catch(() => '');
1789
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
1824
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1790
1825
  response = await fetchOnce();
1791
1826
  }
1792
1827
  else {
@@ -1836,7 +1871,9 @@ async function setBillingTarget(teamId) {
1836
1871
  if (parsed.error)
1837
1872
  message = parsed.error;
1838
1873
  }
1839
- catch { /* non-JSON body — keep the status message */ }
1874
+ catch {
1875
+ /* non-JSON body — keep the status message */
1876
+ }
1840
1877
  throw new Error(message);
1841
1878
  }
1842
1879
  }
@@ -1855,7 +1892,7 @@ async function getOrgs() {
1855
1892
  // frequently the first call the panel makes.
1856
1893
  if (response.status === 401 || response.status === 403) {
1857
1894
  const body = await response.text().catch(() => '');
1858
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
1895
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1859
1896
  response = await fetchOnce();
1860
1897
  }
1861
1898
  else {
@@ -1877,7 +1914,7 @@ async function getCodeModels() {
1877
1914
  let response = await fetchOnce();
1878
1915
  if (response.status === 401 || response.status === 403) {
1879
1916
  const body = await response.text().catch(() => '');
1880
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
1917
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1881
1918
  response = await fetchOnce();
1882
1919
  }
1883
1920
  else {
@@ -1904,7 +1941,7 @@ async function getUsageDaily(days = 30) {
1904
1941
  let response = await fetchOnce();
1905
1942
  if (response.status === 401 || response.status === 403) {
1906
1943
  const body = await response.text().catch(() => '');
1907
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
1944
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1908
1945
  response = await fetchOnce();
1909
1946
  }
1910
1947
  else {
@@ -1983,7 +2020,7 @@ async function getUserProfile() {
1983
2020
  let response = await fetchOnce();
1984
2021
  if (response.status === 401 || response.status === 403) {
1985
2022
  const body = await response.text().catch(() => '');
1986
- if (isExpiredTokenResponse(response.status, body) && await refreshAccessToken()) {
2023
+ if (isExpiredTokenResponse(response.status, body) && (await refreshAccessToken())) {
1987
2024
  response = await fetchOnce();
1988
2025
  }
1989
2026
  else {
@@ -2070,7 +2107,9 @@ function apiErrorMessage(status, text) {
2070
2107
  if (typeof j.error === 'string' && j.error)
2071
2108
  return j.error;
2072
2109
  }
2073
- catch { /* not JSON — fall through to the raw text */ }
2110
+ catch {
2111
+ /* not JSON — fall through to the raw text */
2112
+ }
2074
2113
  return `API error ${status}${text ? `: ${text}` : ''}`;
2075
2114
  }
2076
2115
  async function scheduleRequest(method, path, body) {
@@ -2084,7 +2123,7 @@ async function scheduleRequest(method, path, body) {
2084
2123
  // first call of a session is the common case, not an error to surface.
2085
2124
  if (response.status === 401 || response.status === 403) {
2086
2125
  const text = await response.text().catch(() => '');
2087
- if (isExpiredTokenResponse(response.status, text) && await refreshAccessToken()) {
2126
+ if (isExpiredTokenResponse(response.status, text) && (await refreshAccessToken())) {
2088
2127
  response = await fetchOnce();
2089
2128
  }
2090
2129
  else {
@@ -2098,9 +2137,7 @@ async function scheduleRequest(method, path, body) {
2098
2137
  }
2099
2138
  async function listCloudSchedules() {
2100
2139
  const json = (await scheduleRequest('GET', '/schedules'));
2101
- return Array.isArray(json?.schedules)
2102
- ? json.schedules.map((r) => scheduleRow(r))
2103
- : [];
2140
+ return Array.isArray(json?.schedules) ? json.schedules.map((r) => scheduleRow(r)) : [];
2104
2141
  }
2105
2142
  async function createCloudSchedule(input) {
2106
2143
  const task = String(input.task ?? '').trim();
@@ -2157,8 +2194,6 @@ async function runCloudScheduleNow(id) {
2157
2194
  }
2158
2195
  async function getCloudScheduleRuns(id) {
2159
2196
  const json = (await scheduleRequest('GET', `/schedules/${scheduleId(id)}/runs`));
2160
- return Array.isArray(json?.runs)
2161
- ? json.runs.map((r) => scheduleRunRow(r))
2162
- : [];
2197
+ return Array.isArray(json?.runs) ? json.runs.map((r) => scheduleRunRow(r)) : [];
2163
2198
  }
2164
2199
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiB3C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGjD;AAED,wBAAgB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAwB5C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAM/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAsBvE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAiBlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiB3C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGjD;AAED,wBAAgB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAwB5C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAM/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBvE;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAiBlE"}
@@ -140,7 +140,9 @@ function updateTokens(token, refreshToken) {
140
140
  existing = parsed;
141
141
  }
142
142
  }
143
- catch { /* corrupt or unreadable — start clean rather than refuse to save */ }
143
+ catch {
144
+ /* corrupt or unreadable — start clean rather than refuse to save */
145
+ }
144
146
  ensureConfigDir();
145
147
  const next = {
146
148
  ...existing,
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/checkpoint/manager.ts"],"names":[],"mappings":"AA+CA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAQD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMlE;AA4BD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6BD,qBAAa,iBAAiB;IAWhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;OAIG;gBAC0B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAa5D,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAcpD;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8BxE;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxC,OAAO,CAAC,iBAAiB;IAiBzB,0FAA0F;IAC1F,UAAU,IAAI,IAAI;IAWlB,IAAI,IAAI,iBAAiB,EAAE;IAY3B,cAAc,IAAI,OAAO;IAIzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA0BnD,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;CAkCrB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/checkpoint/manager.ts"],"names":[],"mappings":"AA+CA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AASD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASlE;AA4BD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6BD,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;OAIG;gBAEgB,OAAO,EAAE,MAAM,EAChC,KAAK,CAAC,EAAE,MAAM;IAchB,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAcpD;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8BxE;;;;;;;OAOG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxC,OAAO,CAAC,iBAAiB;IAiBzB,0FAA0F;IAC1F,UAAU,IAAI,IAAI;IAWlB,IAAI,IAAI,iBAAiB,EAAE;IAY3B,cAAc,IAAI,OAAO;IAIzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA0BnD,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;CAsCrB"}
@@ -92,7 +92,10 @@ function isPotentiallyMutatingBash(command) {
92
92
  if (!cmd)
93
93
  return false;
94
94
  // Multi-line or chained commands: assume mutating unless every segment is read-only.
95
- const segments = cmd.split(/\n|&&|\|\||;/).map((s) => s.trim()).filter(Boolean);
95
+ const segments = cmd
96
+ .split(/\n|&&|\|\||;/)
97
+ .map((s) => s.trim())
98
+ .filter(Boolean);
96
99
  return segments.some((seg) => !READONLY_BASH.test(seg));
97
100
  }
98
101
  function str(v) {
@@ -180,7 +183,7 @@ class CheckpointManager {
180
183
  const abs = this.resolve(rel);
181
184
  if (this.current.snapshots.has(abs))
182
185
  continue;
183
- let existed = false;
186
+ let existed;
184
187
  let content = null;
185
188
  try {
186
189
  const st = fs.statSync(abs);
@@ -303,7 +306,9 @@ class CheckpointManager {
303
306
  try {
304
307
  fs.rmdirSync(snap.absPath);
305
308
  }
306
- catch { /* non-empty dir — leave it */ }
309
+ catch {
310
+ /* non-empty dir — leave it */
311
+ }
307
312
  }
308
313
  }
309
314
  }
@@ -343,7 +348,9 @@ class CheckpointManager {
343
348
  fs.writeFileSync(tmp, JSON.stringify(persisted));
344
349
  fs.renameSync(tmp, this.turnFile(turn.id));
345
350
  }
346
- catch { /* best-effort */ }
351
+ catch {
352
+ /* best-effort */
353
+ }
347
354
  }
348
355
  persistIndex() {
349
356
  try {
@@ -358,13 +365,17 @@ class CheckpointManager {
358
365
  fs.writeFileSync(tmp, JSON.stringify(index));
359
366
  fs.renameSync(tmp, path.join(this.storeDir, 'index.json'));
360
367
  }
361
- catch { /* best-effort */ }
368
+ catch {
369
+ /* best-effort */
370
+ }
362
371
  }
363
372
  deleteTurnFile(id) {
364
373
  try {
365
374
  fs.unlinkSync(this.turnFile(id));
366
375
  }
367
- catch { /* already gone */ }
376
+ catch {
377
+ /* already gone */
378
+ }
368
379
  }
369
380
  prune() {
370
381
  while (this.turns.length > MAX_PERSISTED_TURNS) {
@@ -401,14 +412,18 @@ class CheckpointManager {
401
412
  snapshots,
402
413
  });
403
414
  }
404
- catch { /* skip corrupt turn file */ }
415
+ catch {
416
+ /* skip corrupt turn file */
417
+ }
405
418
  }
406
419
  // Guard against a stale index: nextId must exceed every loaded id.
407
420
  const maxId = this.turns.reduce((m, t) => Math.max(m, t.id), 0);
408
421
  if (this.nextId <= maxId)
409
422
  this.nextId = maxId + 1;
410
423
  }
411
- catch { /* no persisted state — fresh start */ }
424
+ catch {
425
+ /* no persisted state — fresh start */
426
+ }
412
427
  }
413
428
  }
414
429
  exports.CheckpointManager = CheckpointManager;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrD;AAsED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CASjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAuCnF;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3F"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrD;AAsED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CASjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4CnF;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3F"}
@@ -144,7 +144,12 @@ function expandBody(body, argString, workDir) {
144
144
  // !`shell command` → captured stdout
145
145
  out = out.replace(/!`([^`]+)`/g, (_m, c) => {
146
146
  try {
147
- const stdout = (0, child_process_1.execSync)(c, { cwd: workDir, encoding: 'utf-8', timeout: 15000, stdio: ['ignore', 'pipe', 'pipe'] });
147
+ const stdout = (0, child_process_1.execSync)(c, {
148
+ cwd: workDir,
149
+ encoding: 'utf-8',
150
+ timeout: 15000,
151
+ stdio: ['ignore', 'pipe', 'pipe'],
152
+ });
148
153
  return stdout.trim();
149
154
  }
150
155
  catch (err) {
package/dist/index.d.ts CHANGED
@@ -15,8 +15,10 @@ export * from './agent/claimEvidence';
15
15
  export * from './agent/audit';
16
16
  export * from './agent/memory';
17
17
  export * from './agent/skills';
18
+ export * from './agent/nestedInstructions';
18
19
  export * from './mcp/client';
19
20
  export * from './mcp/httpClient';
21
+ export * from './mcp/instructions';
20
22
  export * from './mcp/manager';
21
23
  export * from './mcp/server';
22
24
  export * from './mcp/stats';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}