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.
- package/bin/skills/artifact/SKILL.md +19 -5
- package/bin/skills/crew/SKILL.md +42 -11
- package/dist/{acpBackend-BZ1MJhQV.mjs → acpBackend-UaBD4zL3.mjs} +3 -0
- package/dist/{agentCommands-B2Nl7Fof.mjs → agentCommands-D91RcjqQ.mjs} +4 -4
- package/dist/{claudeAuth-iAerdaMr.mjs → claudeAuth-C0wc1GTM.mjs} +45 -1
- package/dist/cli.mjs +78 -69
- package/dist/{commands-D1pZq3d4.mjs → commands-B-yczgz_.mjs} +14 -10
- package/dist/{commands-BOpoVBOM.mjs → commands-BMeDrpSv.mjs} +3 -3
- package/dist/{commands-H4PsTGn8.mjs → commands-BbmypSgx.mjs} +5 -2
- package/dist/{commands-C2aODeVc.mjs → commands-BkdbelFo.mjs} +26 -11
- package/dist/{commands-BB1Kcyt-.mjs → commands-C13-yE2R.mjs} +32 -3
- package/dist/{commands-D69mnkYu.mjs → commands-CoOc4qiw.mjs} +2 -2
- package/dist/{commands-CiRCwjkJ.mjs → commands-sPvRcG3J.mjs} +9 -9
- package/dist/{detectIsolation-CzoDCEnh.mjs → detectIsolation-CrV8IFDv.mjs} +36 -16
- package/dist/{fleet-DM_Q7w69.mjs → fleet-Ca-UjJNL.mjs} +40 -15
- package/dist/{hookSettings-DYMTUgVA.mjs → hookSettings-FFc1pi8j.mjs} +174 -27
- package/dist/index.mjs +8 -8
- package/dist/{loopVerify-B47sSjxe.mjs → loopVerify-DALtTk2V.mjs} +1 -1
- package/dist/{notifyCommands-D-IKIxiq.mjs → notifyCommands-CCUE18Q-.mjs} +1 -1
- package/dist/package-BrsiNutS.mjs +64 -0
- package/dist/{rpc-BB6RF4-F.mjs → rpc-CBkSkzsI.mjs} +8 -8
- package/dist/{rpc-Cf0grcru.mjs → rpc-ccY7xvlo.mjs} +6 -3
- package/dist/{run-ChdsgaSD.mjs → run-DCq3aEiF.mjs} +3 -3
- package/dist/{run-DkjwF-zA.mjs → run-DDmeV9K3.mjs} +190 -59
- package/dist/{scheduler-BY30ZrB9.mjs → scheduler-BkVJ27Ki.mjs} +8 -8
- package/dist/{serveAuth-DbVLRCRR.mjs → serveAuth-4M0vwMyj.mjs} +53 -11
- package/dist/{serveCommands-CUHUiYnZ.mjs → serveCommands-CLhkccJM.mjs} +8 -8
- package/dist/{store-Bn0ByYev.mjs → store-B4E6NzG6.mjs} +10 -1
- package/package.json +2 -2
- 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-
|
|
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-
|
|
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-
|
|
24
|
+
import './serveAuth-4M0vwMyj.mjs';
|
|
25
25
|
import 'node:os';
|
|
26
26
|
import 'node:path';
|
|
27
27
|
import './envFlag-COOuJ3AH.mjs';
|
|
28
|
-
import './claudeAuth-
|
|
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-
|
|
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-
|
|
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-
|
|
54
|
-
import './store-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
1365
|
+
const { fleetExec } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1362
1366
|
await fleetExec(command, { cwd });
|
|
1363
1367
|
} else {
|
|
1364
|
-
const { machineExec } = await import('./commands-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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:
|
|
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-
|
|
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-
|
|
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,
|
|
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
|
|
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: ${
|
|
2688
|
-
|
|
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
|
-
|
|
2691
|
-
|
|
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-
|
|
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-
|
|
14
|
+
import './loopVerify-DALtTk2V.mjs';
|
|
15
15
|
import './instance-CeHz5C8v.mjs';
|
|
16
16
|
import 'os';
|
|
17
|
-
import './store-
|
|
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,
|
|
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
|
|
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}`);
|