svamp-cli 0.2.346 → 0.2.356

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 (30) hide show
  1. package/bin/skills/artifact/SKILL.md +19 -5
  2. package/bin/skills/crew/SKILL.md +42 -11
  3. package/dist/{acpBackend-BZ1MJhQV.mjs → acpBackend-UaBD4zL3.mjs} +3 -0
  4. package/dist/{agentCommands-B2Nl7Fof.mjs → agentCommands-D91RcjqQ.mjs} +4 -4
  5. package/dist/{claudeAuth-iAerdaMr.mjs → claudeAuth-C0wc1GTM.mjs} +45 -1
  6. package/dist/cli.mjs +78 -69
  7. package/dist/{commands-D1pZq3d4.mjs → commands-B-yczgz_.mjs} +14 -10
  8. package/dist/{commands-BOpoVBOM.mjs → commands-BMeDrpSv.mjs} +3 -3
  9. package/dist/{commands-H4PsTGn8.mjs → commands-BbmypSgx.mjs} +5 -2
  10. package/dist/{commands-C2aODeVc.mjs → commands-BkdbelFo.mjs} +26 -11
  11. package/dist/{commands-BB1Kcyt-.mjs → commands-C13-yE2R.mjs} +32 -3
  12. package/dist/{commands-D69mnkYu.mjs → commands-CoOc4qiw.mjs} +2 -2
  13. package/dist/{commands-CiRCwjkJ.mjs → commands-sPvRcG3J.mjs} +9 -9
  14. package/dist/{detectIsolation-CzoDCEnh.mjs → detectIsolation-CrV8IFDv.mjs} +36 -16
  15. package/dist/{fleet-DM_Q7w69.mjs → fleet-Ca-UjJNL.mjs} +40 -15
  16. package/dist/{hookSettings-DYMTUgVA.mjs → hookSettings-FFc1pi8j.mjs} +174 -27
  17. package/dist/index.mjs +8 -8
  18. package/dist/{loopVerify-B47sSjxe.mjs → loopVerify-DALtTk2V.mjs} +1 -1
  19. package/dist/{notifyCommands-D-IKIxiq.mjs → notifyCommands-CCUE18Q-.mjs} +1 -1
  20. package/dist/package-BrsiNutS.mjs +64 -0
  21. package/dist/{rpc-BB6RF4-F.mjs → rpc-CBkSkzsI.mjs} +8 -8
  22. package/dist/{rpc-Cf0grcru.mjs → rpc-ccY7xvlo.mjs} +6 -3
  23. package/dist/{run-ChdsgaSD.mjs → run-DCq3aEiF.mjs} +3 -3
  24. package/dist/{run-DkjwF-zA.mjs → run-DDmeV9K3.mjs} +190 -59
  25. package/dist/{scheduler-BY30ZrB9.mjs → scheduler-BkVJ27Ki.mjs} +8 -8
  26. package/dist/{serveAuth-DbVLRCRR.mjs → serveAuth-4M0vwMyj.mjs} +53 -11
  27. package/dist/{serveCommands-CUHUiYnZ.mjs → serveCommands-CLhkccJM.mjs} +8 -8
  28. package/dist/{store-Bn0ByYev.mjs → store-B4E6NzG6.mjs} +10 -1
  29. package/package.json +2 -2
  30. package/dist/package-DtuINqf5.mjs +0 -64
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as clearStopMarker, b as stopMarkerExists, s as startDaemon, a as stopDaemon, d as daemonStatus } from './run-DkjwF-zA.mjs';
1
+ import { c as clearStopMarker, b as stopMarkerExists, s as startDaemon, a as stopDaemon, d as daemonStatus } from './run-DDmeV9K3.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
  import { f as flushStdout, a as flushAndExit } from './flushExit-C-i6SGjj.mjs';
4
4
  import { w as wantsHelp } from './wantsHelp-6bMOeNUz.mjs';
@@ -9,7 +9,7 @@ import 'path';
9
9
  import 'url';
10
10
  import 'child_process';
11
11
  import 'crypto';
12
- import './hookSettings-DYMTUgVA.mjs';
12
+ import './hookSettings-FFc1pi8j.mjs';
13
13
  import 'node:crypto';
14
14
  import './types-57J3Re0n.mjs';
15
15
  import './securityContext-Cm5UTCuD.mjs';
@@ -21,11 +21,11 @@ import 'util';
21
21
  import 'http';
22
22
  import 'net';
23
23
  import './instance-CeHz5C8v.mjs';
24
- import './serveAuth-DbVLRCRR.mjs';
24
+ import './serveAuth-4M0vwMyj.mjs';
25
25
  import 'node:os';
26
26
  import 'node:path';
27
27
  import './envFlag-COOuJ3AH.mjs';
28
- import './claudeAuth-iAerdaMr.mjs';
28
+ import './claudeAuth-C0wc1GTM.mjs';
29
29
  import './fileLock-BMPwCrB6.mjs';
30
30
  import './codexProvider-BtxYc5Rj.mjs';
31
31
  import './friendlyName-1UZcyDhu.mjs';
@@ -33,7 +33,7 @@ import 'node:events';
33
33
  import './cron-hHGdb5kU.mjs';
34
34
  import './hyphaClient-ybivOjZo.mjs';
35
35
  import './sharingNotificationSync-qGIQ-3yf.mjs';
36
- import './acpBackend-BZ1MJhQV.mjs';
36
+ import './acpBackend-UaBD4zL3.mjs';
37
37
  import '@agentclientprotocol/sdk';
38
38
  import './DefaultTransport-vfp78fug.mjs';
39
39
  import './wrapCommand-CdNawSaa.mjs';
@@ -46,12 +46,12 @@ import './GeminiTransport-3OkhtFRO.mjs';
46
46
  import './KimiTransport-D8n009Tr.mjs';
47
47
  import './kimiProvider-DbxODebR.mjs';
48
48
  import './kimiSetup-NGsoYB5h.mjs';
49
- import './detectIsolation-CzoDCEnh.mjs';
49
+ import './detectIsolation-CrV8IFDv.mjs';
50
50
  import 'node:fs/promises';
51
51
  import './pinnedNono-5ZHb6328.mjs';
52
52
  import './bootStatus-DqtNgJch.mjs';
53
- import './loopVerify-B47sSjxe.mjs';
54
- import './store-Bn0ByYev.mjs';
53
+ import './loopVerify-DALtTk2V.mjs';
54
+ import './store-B4E6NzG6.mjs';
55
55
  import './api-BHjyC0Ph.mjs';
56
56
  import './store-fi0f-ff1.mjs';
57
57
  import 'yaml';
@@ -89,7 +89,7 @@ async function main() {
89
89
  }
90
90
  const whenIdle = args.includes("--when-idle");
91
91
  const force = args.includes("--force");
92
- const mod = await import('./run-DkjwF-zA.mjs').then(function (n) { return n.h; });
92
+ const mod = await import('./run-DDmeV9K3.mjs').then(function (n) { return n.h; });
93
93
  if (whenIdle && !force) {
94
94
  if (mod.isDaemonAlive()) {
95
95
  mod.writePendingRestart({ reason: "svamp daemon restart --when-idle" });
@@ -255,7 +255,7 @@ async function main() {
255
255
  releaseSupervisorLock,
256
256
  findOrphanedSyncPids,
257
257
  killOrphanedSyncs
258
- } = await import('./run-DkjwF-zA.mjs').then(function (n) { return n.f; });
258
+ } = await import('./run-DDmeV9K3.mjs').then(function (n) { return n.f; });
259
259
  const supervisorPidFile = pathJoin(svampHome, "supervisor.pid");
260
260
  const lock = acquireSupervisorLockWithRetry(supervisorPidFile, process.pid);
261
261
  if (!lock.acquired) {
@@ -421,7 +421,7 @@ async function main() {
421
421
  await flushStdout();
422
422
  process.exit(0);
423
423
  } else if (daemonSubcommand === "install-nono") {
424
- const { installNono } = await import('./detectIsolation-CzoDCEnh.mjs');
424
+ const { installNono } = await import('./detectIsolation-CrV8IFDv.mjs');
425
425
  const okNono = await installNono();
426
426
  if (!okNono) {
427
427
  console.error("Failed to install nono. See the log above for the reason.");
@@ -473,7 +473,7 @@ async function main() {
473
473
  await flushStdout();
474
474
  process.exit(1);
475
475
  }
476
- const { handleServiceCommand } = await import('./commands-CiRCwjkJ.mjs');
476
+ const { handleServiceCommand } = await import('./commands-sPvRcG3J.mjs');
477
477
  await handleServiceCommand();
478
478
  } else if (subcommand === "serve") {
479
479
  const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-Cdzsj5TC.mjs');
@@ -482,7 +482,7 @@ async function main() {
482
482
  await flushStdout();
483
483
  process.exit(1);
484
484
  }
485
- const { handleServeCommand } = await import('./serveCommands-CUHUiYnZ.mjs');
485
+ const { handleServeCommand } = await import('./serveCommands-CLhkccJM.mjs');
486
486
  await handleServeCommand();
487
487
  await flushStdout();
488
488
  process.exit(0);
@@ -493,7 +493,7 @@ async function main() {
493
493
  await flushStdout();
494
494
  process.exit(1);
495
495
  }
496
- const { processCommand } = await import('./commands-BOpoVBOM.mjs');
496
+ const { processCommand } = await import('./commands-BMeDrpSv.mjs');
497
497
  let machineId;
498
498
  const processArgs = args.slice(1);
499
499
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -508,16 +508,16 @@ async function main() {
508
508
  await flushStdout();
509
509
  process.exit(0);
510
510
  } else if (subcommand === "outpost") {
511
- const { outpostCommand } = await import('./commands-BB1Kcyt-.mjs');
511
+ const { outpostCommand } = await import('./commands-C13-yE2R.mjs');
512
512
  await outpostCommand(args.slice(1));
513
513
  await flushStdout();
514
514
  process.exit(0);
515
515
  } else if (subcommand === "issue" || subcommand === "issues") {
516
- const { issueCommand } = await import('./commands-H4PsTGn8.mjs');
516
+ const { issueCommand } = await import('./commands-BbmypSgx.mjs');
517
517
  await issueCommand(args.slice(1));
518
518
  await flushAndExit(0);
519
519
  } else if (subcommand === "workflow" || subcommand === "workflows") {
520
- const { workflowCommand } = await import('./commands-D69mnkYu.mjs');
520
+ const { workflowCommand } = await import('./commands-CoOc4qiw.mjs');
521
521
  await workflowCommand(args.slice(1));
522
522
  await flushAndExit(0);
523
523
  } else if (subcommand === "wise-agent" || subcommand === "wise") {
@@ -525,12 +525,12 @@ async function main() {
525
525
  await flushStdout();
526
526
  process.exit(0);
527
527
  } else if (subcommand === "feature" || subcommand === "crew") {
528
- const { crewCommand } = await import('./commands-C2aODeVc.mjs');
528
+ const { crewCommand } = await import('./commands-BkdbelFo.mjs');
529
529
  await crewCommand(args.slice(1));
530
530
  await flushStdout();
531
531
  process.exit(0);
532
532
  } else if (subcommand === "notify") {
533
- const { notifyUser } = await import('./notifyCommands-D-IKIxiq.mjs');
533
+ const { notifyUser } = await import('./notifyCommands-CCUE18Q-.mjs');
534
534
  const rest = args.slice(1);
535
535
  let email;
536
536
  const o = {};
@@ -570,7 +570,7 @@ async function main() {
570
570
  await flushStdout();
571
571
  process.exit(0);
572
572
  } else if (subcommand === "events") {
573
- const { listEvents, ackEvent } = await import('./notifyCommands-D-IKIxiq.mjs');
573
+ const { listEvents, ackEvent } = await import('./notifyCommands-CCUE18Q-.mjs');
574
574
  const sub = args[1];
575
575
  const rest = args.slice(2);
576
576
  let email;
@@ -592,7 +592,7 @@ async function main() {
592
592
  } else if (!subcommand || subcommand === "start") {
593
593
  await handleInteractiveCommand();
594
594
  } else if (subcommand === "--version" || subcommand === "-v") {
595
- const pkg = await import('./package-DtuINqf5.mjs').catch(() => ({ default: { version: "unknown" } }));
595
+ const pkg = await import('./package-BrsiNutS.mjs').catch(() => ({ default: { version: "unknown" } }));
596
596
  console.log(`svamp version: ${pkg.default.version}`);
597
597
  } else {
598
598
  console.error(`Unknown command: ${subcommand}`);
@@ -602,7 +602,7 @@ async function main() {
602
602
  }
603
603
  }
604
604
  async function handleInteractiveCommand() {
605
- const { runInteractive } = await import('./run-ChdsgaSD.mjs');
605
+ const { runInteractive } = await import('./run-DCq3aEiF.mjs');
606
606
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
607
607
  let directory = process.cwd();
608
608
  let resumeSessionId;
@@ -687,7 +687,7 @@ async function handleAgentCommand() {
687
687
  const { CodexAppServerBackend } = await import('./codexAppServerBackend-VGsYtbqg.mjs').then(function (n) { return n.a; });
688
688
  backend = new CodexAppServerBackend({ cwd, log: logFn });
689
689
  } else {
690
- const { AcpBackend } = await import('./acpBackend-BZ1MJhQV.mjs');
690
+ const { AcpBackend } = await import('./acpBackend-UaBD4zL3.mjs');
691
691
  const { GeminiTransport } = await import('./GeminiTransport-3OkhtFRO.mjs');
692
692
  const { KimiTransport } = await import('./KimiTransport-D8n009Tr.mjs');
693
693
  const { DefaultTransport } = await import('./DefaultTransport-vfp78fug.mjs');
@@ -829,7 +829,7 @@ async function handleSessionCommand() {
829
829
  process.exit(1);
830
830
  }
831
831
  }
832
- const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionLoopExtend, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-D1pZq3d4.mjs');
832
+ const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionLoopExtend, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-B-yczgz_.mjs');
833
833
  const parseFlagStr = (flag, shortFlag) => {
834
834
  for (let i = 1; i < sessionArgs.length; i++) {
835
835
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -902,7 +902,7 @@ async function handleSessionCommand() {
902
902
  const warning = describeUnenforceable("nono", { filesystem: { denyRead } });
903
903
  if (warning) console.warn(`Warning: ${warning}`);
904
904
  }
905
- const { parseShareArg } = await import('./commands-D1pZq3d4.mjs');
905
+ const { parseShareArg } = await import('./commands-B-yczgz_.mjs');
906
906
  const shareEntries = share.map((s) => parseShareArg(s));
907
907
  await sessionSpawn(agent, dir, targetMachineId, {
908
908
  message,
@@ -1001,7 +1001,7 @@ async function handleSessionCommand() {
1001
1001
  await flushStdout();
1002
1002
  process.exit(1);
1003
1003
  }
1004
- const { sessionEditMessage } = await import('./commands-D1pZq3d4.mjs');
1004
+ const { sessionEditMessage } = await import('./commands-B-yczgz_.mjs');
1005
1005
  await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
1006
1006
  } else if (sessionSubcommand === "refine") {
1007
1007
  if (!sessionArgs[1] || !sessionArgs[2]) {
@@ -1010,7 +1010,7 @@ async function handleSessionCommand() {
1010
1010
  await flushStdout();
1011
1011
  process.exit(1);
1012
1012
  }
1013
- const { sessionRefineLastReply } = await import('./commands-D1pZq3d4.mjs');
1013
+ const { sessionRefineLastReply } = await import('./commands-B-yczgz_.mjs');
1014
1014
  await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
1015
1015
  } else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
1016
1016
  if (!sessionArgs[1]) {
@@ -1019,7 +1019,7 @@ async function handleSessionCommand() {
1019
1019
  await flushStdout();
1020
1020
  process.exit(1);
1021
1021
  }
1022
- const { sessionUndoEdit } = await import('./commands-D1pZq3d4.mjs');
1022
+ const { sessionUndoEdit } = await import('./commands-B-yczgz_.mjs');
1023
1023
  await sessionUndoEdit(sessionArgs[1], targetMachineId);
1024
1024
  } else if (sessionSubcommand === "query") {
1025
1025
  const dir = sessionArgs[1];
@@ -1030,7 +1030,7 @@ async function handleSessionCommand() {
1030
1030
  await flushStdout();
1031
1031
  process.exit(1);
1032
1032
  }
1033
- const { sessionQuery } = await import('./commands-D1pZq3d4.mjs');
1033
+ const { sessionQuery } = await import('./commands-B-yczgz_.mjs');
1034
1034
  await sessionQuery(dir, prompt, targetMachineId, {
1035
1035
  timeout: parseFlagInt("--timeout"),
1036
1036
  json: hasFlag("--json"),
@@ -1066,7 +1066,7 @@ async function handleSessionCommand() {
1066
1066
  await flushStdout();
1067
1067
  process.exit(1);
1068
1068
  }
1069
- const { sessionApprove } = await import('./commands-D1pZq3d4.mjs');
1069
+ const { sessionApprove } = await import('./commands-B-yczgz_.mjs');
1070
1070
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
1071
1071
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
1072
1072
  json: hasFlag("--json")
@@ -1077,7 +1077,7 @@ async function handleSessionCommand() {
1077
1077
  await flushStdout();
1078
1078
  process.exit(1);
1079
1079
  }
1080
- const { sessionDeny } = await import('./commands-D1pZq3d4.mjs');
1080
+ const { sessionDeny } = await import('./commands-B-yczgz_.mjs');
1081
1081
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
1082
1082
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
1083
1083
  json: hasFlag("--json")
@@ -1086,10 +1086,14 @@ async function handleSessionCommand() {
1086
1086
  const id = sessionArgs[1];
1087
1087
  const maybeTask = sessionArgs[2] && !sessionArgs[2].startsWith("-") ? sessionArgs[2] : void 0;
1088
1088
  const until = parseFlagStr("--until") ?? parseFlagStr("--criteria");
1089
- if (!id || !maybeTask && !until) {
1089
+ const limitOnlyFlags = ["--max", "--max-iterations", "--max-rounds", "--max-tokens-per-hour", "--max-runtime", "--max-runtime-sec"];
1090
+ const hasLimit = limitOnlyFlags.some((f) => parseFlagInt(f) !== void 0);
1091
+ if (!id || !maybeTask && !until && !hasLimit) {
1090
1092
  console.error('Usage: svamp session loop <session-id> ["<task>"] --until "<criteria>" [--oracle "cmd"] [--max N] [--max-tokens-per-hour N] [--max-runtime-sec N]');
1091
1093
  console.error(" With a task: kicks the agent off and gates it until done.");
1092
1094
  console.error(" With only --until: hot-plugs the gate onto the running session (no kickoff).");
1095
+ console.error(" With only a limit (--max / --max-tokens-per-hour / --max-runtime-sec):");
1096
+ console.error(" updates the cap on an existing loop, and RESUMES it if a ceiling had stopped it.");
1093
1097
  await flushStdout();
1094
1098
  process.exit(1);
1095
1099
  }
@@ -1130,7 +1134,7 @@ async function handleSessionCommand() {
1130
1134
  await flushStdout();
1131
1135
  process.exit(1);
1132
1136
  }
1133
- const { sessionSetTitle } = await import('./agentCommands-B2Nl7Fof.mjs');
1137
+ const { sessionSetTitle } = await import('./agentCommands-D91RcjqQ.mjs');
1134
1138
  await sessionSetTitle(title);
1135
1139
  } else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
1136
1140
  const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
@@ -1139,7 +1143,7 @@ async function handleSessionCommand() {
1139
1143
  await flushStdout();
1140
1144
  process.exit(1);
1141
1145
  }
1142
- const { sessionSetProjectDescription } = await import('./agentCommands-B2Nl7Fof.mjs');
1146
+ const { sessionSetProjectDescription } = await import('./agentCommands-D91RcjqQ.mjs');
1143
1147
  await sessionSetProjectDescription(desc);
1144
1148
  } else if (sessionSubcommand === "set-link") {
1145
1149
  const url = sessionArgs[1];
@@ -1149,11 +1153,11 @@ async function handleSessionCommand() {
1149
1153
  process.exit(1);
1150
1154
  }
1151
1155
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
1152
- const { sessionSetLink } = await import('./agentCommands-B2Nl7Fof.mjs');
1156
+ const { sessionSetLink } = await import('./agentCommands-D91RcjqQ.mjs');
1153
1157
  await sessionSetLink(url, label);
1154
1158
  } else if (sessionSubcommand === "link") {
1155
1159
  const op = sessionArgs[1];
1156
- const lm = await import('./agentCommands-B2Nl7Fof.mjs');
1160
+ const lm = await import('./agentCommands-D91RcjqQ.mjs');
1157
1161
  if (op === "add") {
1158
1162
  const url = sessionArgs[2];
1159
1163
  if (!url || url.startsWith("--")) {
@@ -1190,7 +1194,7 @@ async function handleSessionCommand() {
1190
1194
  process.exit(1);
1191
1195
  }
1192
1196
  const level = parseFlagStr("--level") || "info";
1193
- const { sessionNotify } = await import('./agentCommands-B2Nl7Fof.mjs');
1197
+ const { sessionNotify } = await import('./agentCommands-D91RcjqQ.mjs');
1194
1198
  await sessionNotify(message, level);
1195
1199
  } else if (sessionSubcommand === "broadcast") {
1196
1200
  const action = sessionArgs[1];
@@ -1199,7 +1203,7 @@ async function handleSessionCommand() {
1199
1203
  await flushStdout();
1200
1204
  process.exit(1);
1201
1205
  }
1202
- const { sessionBroadcast } = await import('./agentCommands-B2Nl7Fof.mjs');
1206
+ const { sessionBroadcast } = await import('./agentCommands-D91RcjqQ.mjs');
1203
1207
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
1204
1208
  } else if (sessionSubcommand === "inbox") {
1205
1209
  const inboxSubcmd = sessionArgs[1];
@@ -1211,7 +1215,7 @@ async function handleSessionCommand() {
1211
1215
  process.exit(1);
1212
1216
  }
1213
1217
  if (agentSessionId) {
1214
- const { inboxSend } = await import('./agentCommands-B2Nl7Fof.mjs');
1218
+ const { inboxSend } = await import('./agentCommands-D91RcjqQ.mjs');
1215
1219
  await inboxSend(sessionArgs[2], {
1216
1220
  body: sessionArgs[3],
1217
1221
  subject: parseFlagStr("--subject"),
@@ -1228,7 +1232,7 @@ async function handleSessionCommand() {
1228
1232
  }
1229
1233
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
1230
1234
  if (agentSessionId && !sessionArgs[2]) {
1231
- const { inboxList } = await import('./agentCommands-B2Nl7Fof.mjs');
1235
+ const { inboxList } = await import('./agentCommands-D91RcjqQ.mjs');
1232
1236
  await inboxList({
1233
1237
  unread: hasFlag("--unread"),
1234
1238
  limit: parseFlagInt("--limit"),
@@ -1252,7 +1256,7 @@ async function handleSessionCommand() {
1252
1256
  process.exit(1);
1253
1257
  }
1254
1258
  if (agentSessionId && !sessionArgs[3]) {
1255
- const { inboxList } = await import('./agentCommands-B2Nl7Fof.mjs');
1259
+ const { inboxList } = await import('./agentCommands-D91RcjqQ.mjs');
1256
1260
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
1257
1261
  } else if (sessionArgs[3]) {
1258
1262
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -1263,7 +1267,7 @@ async function handleSessionCommand() {
1263
1267
  }
1264
1268
  } else if (inboxSubcmd === "reply") {
1265
1269
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
1266
- const { inboxReply } = await import('./agentCommands-B2Nl7Fof.mjs');
1270
+ const { inboxReply } = await import('./agentCommands-D91RcjqQ.mjs');
1267
1271
  await inboxReply(sessionArgs[2], sessionArgs[3]);
1268
1272
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
1269
1273
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -1306,7 +1310,7 @@ async function handleMachineCommand() {
1306
1310
  return;
1307
1311
  }
1308
1312
  if (machineSubcommand === "share") {
1309
- const { machineShare } = await import('./commands-D1pZq3d4.mjs');
1313
+ const { machineShare } = await import('./commands-B-yczgz_.mjs');
1310
1314
  let machineId;
1311
1315
  const shareArgs = [];
1312
1316
  for (let i = 1; i < machineArgs.length; i++) {
@@ -1358,14 +1362,14 @@ async function handleMachineCommand() {
1358
1362
  process.exit(1);
1359
1363
  }
1360
1364
  if (all) {
1361
- const { fleetExec } = await import('./fleet-DM_Q7w69.mjs');
1365
+ const { fleetExec } = await import('./fleet-Ca-UjJNL.mjs');
1362
1366
  await fleetExec(command, { cwd });
1363
1367
  } else {
1364
- const { machineExec } = await import('./commands-D1pZq3d4.mjs');
1368
+ const { machineExec } = await import('./commands-B-yczgz_.mjs');
1365
1369
  await machineExec(machineId, command, cwd);
1366
1370
  }
1367
1371
  } else if (machineSubcommand === "info") {
1368
- const { machineInfo } = await import('./commands-D1pZq3d4.mjs');
1372
+ const { machineInfo } = await import('./commands-B-yczgz_.mjs');
1369
1373
  let machineId;
1370
1374
  for (let i = 1; i < machineArgs.length; i++) {
1371
1375
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1397,10 +1401,10 @@ async function handleMachineCommand() {
1397
1401
  await flushStdout();
1398
1402
  process.exit(1);
1399
1403
  }
1400
- const { machineNotify } = await import('./agentCommands-B2Nl7Fof.mjs');
1404
+ const { machineNotify } = await import('./agentCommands-D91RcjqQ.mjs');
1401
1405
  await machineNotify(message, level);
1402
1406
  } else if (machineSubcommand === "ls") {
1403
- const { machineLs } = await import('./commands-D1pZq3d4.mjs');
1407
+ const { machineLs } = await import('./commands-B-yczgz_.mjs');
1404
1408
  let machineId;
1405
1409
  let showHidden = false;
1406
1410
  let path;
@@ -1486,29 +1490,29 @@ Examples:
1486
1490
  };
1487
1491
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1488
1492
  if (sub === "status") {
1489
- const { fleetStatus } = await import('./fleet-DM_Q7w69.mjs');
1493
+ const { fleetStatus } = await import('./fleet-Ca-UjJNL.mjs');
1490
1494
  await fleetStatus();
1491
1495
  } else if (sub === "upgrade-claude") {
1492
- const { fleetUpgradeClaude } = await import('./fleet-DM_Q7w69.mjs');
1496
+ const { fleetUpgradeClaude } = await import('./fleet-Ca-UjJNL.mjs');
1493
1497
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1494
1498
  } else if (sub === "upgrade-codex") {
1495
- const { fleetUpgradeCodex } = await import('./fleet-DM_Q7w69.mjs');
1499
+ const { fleetUpgradeCodex } = await import('./fleet-Ca-UjJNL.mjs');
1496
1500
  await fleetUpgradeCodex({ version: flag("version", "-v") });
1497
1501
  } else if (sub === "upgrade-kimi") {
1498
- const { fleetUpgradeKimi } = await import('./fleet-DM_Q7w69.mjs');
1502
+ const { fleetUpgradeKimi } = await import('./fleet-Ca-UjJNL.mjs');
1499
1503
  await fleetUpgradeKimi({ version: flag("version", "-v") });
1500
1504
  } else if (sub === "upgrade-nono") {
1501
- const { fleetUpgradeNono } = await import('./fleet-DM_Q7w69.mjs');
1505
+ const { fleetUpgradeNono } = await import('./fleet-Ca-UjJNL.mjs');
1502
1506
  await fleetUpgradeNono({ version: flag("version", "-v") });
1503
1507
  } else if (sub === "upgrade-svamp") {
1504
- const { fleetUpgradeSvamp } = await import('./fleet-DM_Q7w69.mjs');
1508
+ const { fleetUpgradeSvamp } = await import('./fleet-Ca-UjJNL.mjs');
1505
1509
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
1506
1510
  } else if (sub === "daemon-restart") {
1507
- const { fleetDaemonRestart } = await import('./fleet-DM_Q7w69.mjs');
1511
+ const { fleetDaemonRestart } = await import('./fleet-Ca-UjJNL.mjs');
1508
1512
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup"), force: hasFlag("force") });
1509
1513
  } else if (sub === "push-skill") {
1510
1514
  const name = fleetArgs[1];
1511
- const { fleetPushSkill } = await import('./fleet-DM_Q7w69.mjs');
1515
+ const { fleetPushSkill } = await import('./fleet-Ca-UjJNL.mjs');
1512
1516
  await fleetPushSkill(name);
1513
1517
  } else {
1514
1518
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -2003,7 +2007,7 @@ Commands:
2003
2007
  svamp workflow --help Automation workflows (schedule / event / idle triggers)
2004
2008
  svamp process --help Process supervisor (apply, list, start, stop, logs)
2005
2009
  svamp machine --help Machine sharing & security contexts
2006
- svamp fleet --help Fan-out commands across all your machines (status, upgrade-claude, upgrade-codex, upgrade-kimi, upgrade-svamp, daemon-restart, push-skill)
2010
+ svamp fleet --help Fan-out commands across all your machines (status, upgrade-claude, upgrade-codex, upgrade-kimi, upgrade-nono, upgrade-svamp, daemon-restart, push-skill)
2007
2011
  svamp skills --help Skills marketplace (find, install, publish)
2008
2012
  svamp service --help Service exposure (HTTP services from sandboxes)
2009
2013
  svamp outpost --help Connect a remote machine (FDE outpost): up, exec, list, install
@@ -2048,6 +2052,11 @@ Usage:
2048
2052
  svamp daemon auth set <URL> <KEY> Use a custom Anthropic gateway (base URL must not end in /v1)
2049
2053
  svamp daemon codex-auth --help Configure how Codex authenticates (status/set/use-openai/use-chatgpt/clear)
2050
2054
  svamp daemon kimi-auth --help Configure how Kimi Code authenticates (status/use-moonshot/use-coding/set/clear)
2055
+ svamp daemon install-nono Install/reconcile THIS machine onto the pinned, checksum-verified
2056
+ nono \u2014 the sandbox boundary. installNono() otherwise runs only
2057
+ when the binary is ABSENT, so an existing machine never picks up
2058
+ a new pin. Roll deliberately; 'svamp fleet upgrade-nono' fans
2059
+ this out (no -v \u2014 it always installs the pin, #1376).
2051
2060
 
2052
2061
  Claude auth flags (take effect on next start/restart):
2053
2062
  svamp daemon start --use-hypha-proxy <URL> (or --hypha-proxy-url URL)
@@ -2073,7 +2082,7 @@ async function applyClaudeAuthFlags(argv) {
2073
2082
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
2074
2083
  );
2075
2084
  }
2076
- const mod = await import('./claudeAuth-iAerdaMr.mjs');
2085
+ const mod = await import('./claudeAuth-C0wc1GTM.mjs');
2077
2086
  if (hasHypha) {
2078
2087
  let url;
2079
2088
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -2127,7 +2136,7 @@ async function applyDaemonShareFlag(argv) {
2127
2136
  }
2128
2137
  }
2129
2138
  if (collected.length === 0) return;
2130
- const { updateEnvFile } = await import('./claudeAuth-iAerdaMr.mjs');
2139
+ const { updateEnvFile } = await import('./claudeAuth-C0wc1GTM.mjs');
2131
2140
  const seen = /* @__PURE__ */ new Set();
2132
2141
  const deduped = collected.filter((e) => {
2133
2142
  const k = e.toLowerCase();
@@ -2160,7 +2169,7 @@ async function handleWiseAgentCommand(rest) {
2160
2169
  }
2161
2170
  });
2162
2171
  const message = rest.slice(1).map((a, idx) => ({ a, idx: idx + 1 })).filter(({ a, idx }) => !a.startsWith("-") && !consumed.has(String(idx))).map(({ a }) => a).join(" ");
2163
- const { wiseAskCli } = await import('./commands-D1pZq3d4.mjs');
2172
+ const { wiseAskCli } = await import('./commands-B-yczgz_.mjs');
2164
2173
  await wiseAskCli(machineId, message, sessionId, { json });
2165
2174
  return;
2166
2175
  }
@@ -2190,7 +2199,7 @@ async function handleWiseAgentCommand(rest) {
2190
2199
  const mode = valueOf(["--mode"]);
2191
2200
  const mission = valueOf(["--mission"]);
2192
2201
  const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
2193
- const { wiseJoinMeetingCli } = await import('./commands-D1pZq3d4.mjs');
2202
+ const { wiseJoinMeetingCli } = await import('./commands-B-yczgz_.mjs');
2194
2203
  await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
2195
2204
  return;
2196
2205
  }
@@ -2202,7 +2211,7 @@ async function handleWiseAgentCommand(rest) {
2202
2211
  }
2203
2212
  return void 0;
2204
2213
  };
2205
- const { wiseLeaveMeetingCli } = await import('./commands-D1pZq3d4.mjs');
2214
+ const { wiseLeaveMeetingCli } = await import('./commands-B-yczgz_.mjs');
2206
2215
  await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
2207
2216
  return;
2208
2217
  }
@@ -2226,7 +2235,7 @@ async function handleWiseAgentCommand(rest) {
2226
2235
  }
2227
2236
  });
2228
2237
  const text = rest.slice(1).map((a, idx) => ({ a, idx: idx + 1 })).filter(({ a, idx }) => !a.startsWith("-") && !consumed.has(String(idx))).map(({ a }) => a).join(" ");
2229
- const { wiseAnnounceCli } = await import('./commands-D1pZq3d4.mjs');
2238
+ const { wiseAnnounceCli } = await import('./commands-B-yczgz_.mjs');
2230
2239
  await wiseAnnounceCli(machineId, text, sessionId, { json });
2231
2240
  return;
2232
2241
  }
@@ -2238,7 +2247,7 @@ async function handleWiseAgentCommand(rest) {
2238
2247
  }
2239
2248
  return void 0;
2240
2249
  };
2241
- const { wiseMeetingsCli } = await import('./commands-D1pZq3d4.mjs');
2250
+ const { wiseMeetingsCli } = await import('./commands-B-yczgz_.mjs');
2242
2251
  await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
2243
2252
  return;
2244
2253
  }
@@ -2299,7 +2308,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2299
2308
  return;
2300
2309
  }
2301
2310
  if (action) {
2302
- const { updateEnvFile } = await import('./claudeAuth-iAerdaMr.mjs');
2311
+ const { updateEnvFile } = await import('./claudeAuth-C0wc1GTM.mjs');
2303
2312
  const updates = mod.buildWiseAgentEnvUpdates(action);
2304
2313
  updateEnvFile(updates);
2305
2314
  for (const [k, v] of Object.entries(updates)) {
@@ -2313,7 +2322,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2313
2322
  }
2314
2323
  async function handleDaemonAuthCommand(argv) {
2315
2324
  const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
2316
- const mod = await import('./claudeAuth-iAerdaMr.mjs');
2325
+ const mod = await import('./claudeAuth-C0wc1GTM.mjs');
2317
2326
  if (sub === "--help" || sub === "-h" || sub === "help") {
2318
2327
  console.log(`
2319
2328
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2390,7 +2399,7 @@ one step: --use-hypha-proxy / --use-claude-login / --anthropic-base-url URL --an
2390
2399
  }
2391
2400
  async function handleDaemonCodexAuthCommand(argv) {
2392
2401
  const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
2393
- const { updateEnvFile } = await import('./claudeAuth-iAerdaMr.mjs');
2402
+ const { updateEnvFile } = await import('./claudeAuth-C0wc1GTM.mjs');
2394
2403
  const { resolveCodexProvider } = await import('./codexProvider-BtxYc5Rj.mjs');
2395
2404
  const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
2396
2405
  if (sub === "--help" || sub === "-h" || sub === "help") {
@@ -2479,7 +2488,7 @@ The generic LLM_API_BASE / LLM_API_KEY / LLM_MODEL env vars are also honored if
2479
2488
  }
2480
2489
  async function handleDaemonKimiAuthCommand(argv) {
2481
2490
  const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
2482
- const { updateEnvFile } = await import('./claudeAuth-iAerdaMr.mjs');
2491
+ const { updateEnvFile } = await import('./claudeAuth-C0wc1GTM.mjs');
2483
2492
  const { resolveKimiProvider, buildKimiCatalogAddArgs, DEFAULT_KIMI_PROVIDER } = await import('./kimiProvider-DbxODebR.mjs');
2484
2493
  const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
2485
2494
  const PRESETS = {
@@ -2762,7 +2771,7 @@ ISOLATION & SHARING OPTIONS (for spawn):
2762
2771
  MESSAGES OPTIONS:
2763
2772
  --last N Show last N messages only
2764
2773
  --after N Start after sequence number N (for pagination)
2765
- --limit N Max messages to fetch (default: 1000)
2774
+ --limit N Max messages to fetch (default: 50, capped at 500 by the daemon)
2766
2775
  --json Output as JSON array of {id, seq, role, text, createdAt}
2767
2776
  --raw With --json: include full raw objects (tool_use, tool_result, thinking)
2768
2777
 
@@ -6,14 +6,14 @@ import { c as connectToHypha } from './hyphaClient-ybivOjZo.mjs';
6
6
  import { f as formatHandle, c as computeOutboundHop, s as shortId, r as registerAwaitingReply, p as parseHandle, h as handleMatchesMetadata } from './friendlyName-1UZcyDhu.mjs';
7
7
  import { n as normalizeAllowedUser } from './types-57J3Re0n.mjs';
8
8
  import { loadSecurityContextConfig, resolveSecurityContext, buildSecurityContextFromFlags, mergeSecurityContexts } from './securityContext-Cm5UTCuD.mjs';
9
- import { b as buildSessionShareUrl, U as UNBOUNDED_LOOP_ITERATIONS, a as buildMachineShareUrl } from './loopVerify-B47sSjxe.mjs';
9
+ import { b as buildSessionShareUrl, U as UNBOUNDED_LOOP_ITERATIONS, a as buildMachineShareUrl } from './loopVerify-DALtTk2V.mjs';
10
10
  import { f as flushStdout } from './flushExit-C-i6SGjj.mjs';
11
11
  import 'node:crypto';
12
12
  import './instance-CeHz5C8v.mjs';
13
13
  import 'fs';
14
14
  import 'path';
15
15
  import 'os';
16
- import './store-Bn0ByYev.mjs';
16
+ import './store-B4E6NzG6.mjs';
17
17
  import './fileLock-BMPwCrB6.mjs';
18
18
 
19
19
  function formatTime(ts) {
@@ -1835,6 +1835,7 @@ async function sendCore(machine, fullId, message, opts) {
1835
1835
  } catch {
1836
1836
  }
1837
1837
  await new Promise((r) => setTimeout(r, 2e3));
1838
+ const modelPreSeq = wantResponse ? await snapshotLatestSeq(machine, fullId) : 0;
1838
1839
  const meta = { model: opts.model, sentFrom: "svamp-cli" };
1839
1840
  const contentStr = JSON.stringify({ role: "user", content: { type: "text", text: message }, meta });
1840
1841
  const sendRes = await machine.sessionRPC(fullId, "sendMessage", {
@@ -1860,7 +1861,7 @@ async function sendCore(machine, fullId, message, opts) {
1860
1861
  }
1861
1862
  let mResponse;
1862
1863
  if (wantResponse) {
1863
- mResponse = await collectAssistantResponse(machine, fullId, 0);
1864
+ mResponse = await collectAssistantResponse(machine, fullId, modelPreSeq);
1864
1865
  }
1865
1866
  return {
1866
1867
  sessionId: fullId,
@@ -2680,16 +2681,19 @@ async function sessionLoopStatus(sessionIdPartial, machineId) {
2680
2681
  return;
2681
2682
  }
2682
2683
  const config = await readJsonFile(`${base}/loop.config.json`);
2683
- const verdict = await readJsonFile(`${base}/evaluator-verdict.json`);
2684
2684
  console.log(`Loop on session ${fullId.slice(0, 8)}:`);
2685
- const maxN = config?.max_iterations;
2685
+ const maxRaw = state.max_iterations ?? config?.max_iterations;
2686
+ const maxN = typeof maxRaw === "number" && maxRaw > 0 && maxRaw < 1e6 ? maxRaw : null;
2687
+ const turns = state.ledger?.turns ?? state.iteration ?? 0;
2686
2688
  console.log(` Phase: ${state.phase || (state.active === false ? "inactive" : "running")}`);
2687
- console.log(` Iteration: ${state.iteration ?? 0}${maxN ? ` / ${maxN}` : ""}`);
2688
- if (config?.oracle?.command) console.log(` Oracle: ${config.oracle.command}`);
2689
+ console.log(` Iteration: ${turns}${maxN ? ` / ${maxN}` : " (no iteration cap)"}`);
2690
+ const oracleCmd = state.oracle?.command ?? state.oracle ?? config?.oracle?.command;
2691
+ if (typeof oracleCmd === "string" && oracleCmd) console.log(` Oracle: ${oracleCmd}`);
2689
2692
  if (state.last_oracle) console.log(` Last oracle: ${String(state.last_oracle).split("\n")[0]}`);
2690
- if (config && config.evaluator?.enabled !== false) {
2691
- console.log(` Evaluator: ${verdict ? `${verdict.verdict}${verdict.reason ? ` \u2014 ${verdict.reason}` : ""}` : "on (no verdict yet)"}`);
2692
- }
2693
+ const verdict = state.last_verdict ?? state.verdict;
2694
+ console.log(` Evaluator: ${verdict ? `${verdict.verdict ?? verdict}${verdict.reason ? ` \u2014 ${verdict.reason}` : ""}` : "on (no verdict yet)"}`);
2695
+ if (Number.isFinite(state.auto_resumes) && state.auto_resumes > 0) console.log(` Auto-resumes: ${state.auto_resumes}`);
2696
+ if (Number.isFinite(state.holds) && state.holds > 0) console.log(` Holds: ${state.holds}`);
2693
2697
  if (state.gave_up_reason) console.log(` Gave up: ${state.gave_up_reason}`);
2694
2698
  if (Array.isArray(state.extensions) && state.extensions.length) {
2695
2699
  const totalTurns = state.extensions.reduce((s, e) => s + (Number.isFinite(e?.grantedTurns) && e.grantedTurns > 0 ? Math.floor(e.grantedTurns) : 0), 0);
@@ -1,6 +1,6 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-D1pZq3d4.mjs';
3
+ import { connectAndGetMachine } from './commands-B-yczgz_.mjs';
4
4
  import { w as wantsHelp } from './wantsHelp-6bMOeNUz.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:child_process';
@@ -11,10 +11,10 @@ import './friendlyName-1UZcyDhu.mjs';
11
11
  import 'node:crypto';
12
12
  import './types-57J3Re0n.mjs';
13
13
  import './securityContext-Cm5UTCuD.mjs';
14
- import './loopVerify-B47sSjxe.mjs';
14
+ import './loopVerify-DALtTk2V.mjs';
15
15
  import './instance-CeHz5C8v.mjs';
16
16
  import 'os';
17
- import './store-Bn0ByYev.mjs';
17
+ import './store-B4E6NzG6.mjs';
18
18
  import './fileLock-BMPwCrB6.mjs';
19
19
  import './flushExit-C-i6SGjj.mjs';
20
20
 
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { a as flushAndExit } from './flushExit-C-i6SGjj.mjs';
4
- import { r as resolveProjectRoot, s as searchIssues, l as listIssues, i as isPendingIssue, d as resumeIssue, e as pauseIssue, f as addComment, u as updateIssue, p as parseScopeArg, I as ISSUE_SCOPES, a as parseStatusArg, b as ISSUE_STATUSES, g as getIssue, k as checkVerifyCommand, j as isVisibleTo, m as summarize, h as addIssue } from './store-Bn0ByYev.mjs';
4
+ import { r as resolveProjectRoot, s as searchIssues, l as listIssues, j as isPendingIssue, e as resumeIssue, f as pauseIssue, h as addComment, a as applyTriageStatus, u as updateIssue, p as parseScopeArg, I as ISSUE_SCOPES, b as parseStatusArg, d as ISSUE_STATUSES, g as getIssue, m as checkVerifyCommand, k as isVisibleTo, n as summarize, i as addIssue } from './store-B4E6NzG6.mjs';
5
5
  import 'node:crypto';
6
6
  import 'node:child_process';
7
7
  import './fileLock-BMPwCrB6.mjs';
@@ -334,7 +334,10 @@ ${res.output || ""}
334
334
  const tv = buildVerify(rest);
335
335
  if (tv) patch.verify = tv;
336
336
  if (flag(rest, "--body")) patch.body = flag(rest, "--body");
337
- patch.status = "ready";
337
+ applyTriageStatus(root, id, patch, (m) => {
338
+ console.error(m);
339
+ process.exit(1);
340
+ });
338
341
  const updated = updateIssue(root, id, patch);
339
342
  if (!updated) {
340
343
  console.error(`Issue not found: ${id}`);