svamp-cli 0.2.346 → 0.2.358
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-C_KvvYFp.mjs} +5 -5
- package/dist/{claudeAuth-iAerdaMr.mjs → claudeAuth-DMDvPNhO.mjs} +55 -6
- package/dist/cli.mjs +164 -86
- package/dist/{commands-D69mnkYu.mjs → commands-B19lVZjm.mjs} +10 -3
- package/dist/{commands-BB1Kcyt-.mjs → commands-Bmoy6Rlw.mjs} +34 -4
- package/dist/{commands-CiRCwjkJ.mjs → commands-CFBKkfX8.mjs} +9 -9
- package/dist/{commands-D1pZq3d4.mjs → commands-CcdoQIkb.mjs} +126 -25
- package/dist/{commands-BOpoVBOM.mjs → commands-DH_YQrAP.mjs} +5 -21
- package/dist/{commands-H4PsTGn8.mjs → commands-DRxANaS5.mjs} +65 -19
- package/dist/{commands-C2aODeVc.mjs → commands-nkvTnUJj.mjs} +29 -13
- package/dist/{detectIsolation-CzoDCEnh.mjs → detectIsolation-CrV8IFDv.mjs} +36 -16
- package/dist/{fleet-DM_Q7w69.mjs → fleet-Ca-UjJNL.mjs} +40 -15
- package/dist/friendlyName-B-OEwt0t.mjs +341 -0
- package/dist/{headlessCli-C8HzQvis.mjs → headlessCli-BpTXz6FD.mjs} +24 -16
- package/dist/{hookSettings-DYMTUgVA.mjs → hookSettings-CvvUhwCK.mjs} +294 -55
- package/dist/{friendlyName-1UZcyDhu.mjs → inboxGuard-CDqmIypF.mjs} +32 -347
- package/dist/index.mjs +10 -9
- package/dist/{loopVerify-B47sSjxe.mjs → loopVerify-CxAKJB5a.mjs} +1 -1
- package/dist/{notifyCommands-D-IKIxiq.mjs → notifyCommands-CCUE18Q-.mjs} +1 -1
- package/dist/package-DTTWvJbp.mjs +64 -0
- package/dist/{rpc-Cf0grcru.mjs → rpc-CAlAHQAy.mjs} +8 -3
- package/dist/{rpc-BB6RF4-F.mjs → rpc-CacreLQ8.mjs} +13 -9
- package/dist/{run-ChdsgaSD.mjs → run-Bc81iurl.mjs} +27 -8
- package/dist/{run-DkjwF-zA.mjs → run-DKOND4dO.mjs} +222 -73
- package/dist/{scheduler-BY30ZrB9.mjs → scheduler-IyLWBF8T.mjs} +28 -10
- package/dist/{serveAuth-DbVLRCRR.mjs → serveAuth-4M0vwMyj.mjs} +53 -11
- package/dist/{serveCommands-CUHUiYnZ.mjs → serveCommands-B-Ym_QXc.mjs} +8 -8
- package/dist/{store-Bn0ByYev.mjs → store-D8dok6_d.mjs} +62 -14
- package/package.json +3 -3
- 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-DKOND4dO.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-CvvUhwCK.mjs';
|
|
13
13
|
import 'node:crypto';
|
|
14
14
|
import './types-57J3Re0n.mjs';
|
|
15
15
|
import './securityContext-Cm5UTCuD.mjs';
|
|
@@ -21,19 +21,20 @@ 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-DMDvPNhO.mjs';
|
|
29
29
|
import './fileLock-BMPwCrB6.mjs';
|
|
30
30
|
import './codexProvider-BtxYc5Rj.mjs';
|
|
31
|
-
import './
|
|
31
|
+
import './inboxGuard-CDqmIypF.mjs';
|
|
32
32
|
import 'node:events';
|
|
33
33
|
import './cron-hHGdb5kU.mjs';
|
|
34
|
+
import './friendlyName-B-OEwt0t.mjs';
|
|
34
35
|
import './hyphaClient-ybivOjZo.mjs';
|
|
35
36
|
import './sharingNotificationSync-qGIQ-3yf.mjs';
|
|
36
|
-
import './acpBackend-
|
|
37
|
+
import './acpBackend-UaBD4zL3.mjs';
|
|
37
38
|
import '@agentclientprotocol/sdk';
|
|
38
39
|
import './DefaultTransport-vfp78fug.mjs';
|
|
39
40
|
import './wrapCommand-CdNawSaa.mjs';
|
|
@@ -46,12 +47,12 @@ import './GeminiTransport-3OkhtFRO.mjs';
|
|
|
46
47
|
import './KimiTransport-D8n009Tr.mjs';
|
|
47
48
|
import './kimiProvider-DbxODebR.mjs';
|
|
48
49
|
import './kimiSetup-NGsoYB5h.mjs';
|
|
49
|
-
import './detectIsolation-
|
|
50
|
+
import './detectIsolation-CrV8IFDv.mjs';
|
|
50
51
|
import 'node:fs/promises';
|
|
51
52
|
import './pinnedNono-5ZHb6328.mjs';
|
|
52
53
|
import './bootStatus-DqtNgJch.mjs';
|
|
53
|
-
import './loopVerify-
|
|
54
|
-
import './store-
|
|
54
|
+
import './loopVerify-CxAKJB5a.mjs';
|
|
55
|
+
import './store-D8dok6_d.mjs';
|
|
55
56
|
import './api-BHjyC0Ph.mjs';
|
|
56
57
|
import './store-fi0f-ff1.mjs';
|
|
57
58
|
import 'yaml';
|
|
@@ -89,7 +90,7 @@ async function main() {
|
|
|
89
90
|
}
|
|
90
91
|
const whenIdle = args.includes("--when-idle");
|
|
91
92
|
const force = args.includes("--force");
|
|
92
|
-
const mod = await import('./run-
|
|
93
|
+
const mod = await import('./run-DKOND4dO.mjs').then(function (n) { return n.i; });
|
|
93
94
|
if (whenIdle && !force) {
|
|
94
95
|
if (mod.isDaemonAlive()) {
|
|
95
96
|
mod.writePendingRestart({ reason: "svamp daemon restart --when-idle" });
|
|
@@ -255,7 +256,7 @@ async function main() {
|
|
|
255
256
|
releaseSupervisorLock,
|
|
256
257
|
findOrphanedSyncPids,
|
|
257
258
|
killOrphanedSyncs
|
|
258
|
-
} = await import('./run-
|
|
259
|
+
} = await import('./run-DKOND4dO.mjs').then(function (n) { return n.h; });
|
|
259
260
|
const supervisorPidFile = pathJoin(svampHome, "supervisor.pid");
|
|
260
261
|
const lock = acquireSupervisorLockWithRetry(supervisorPidFile, process.pid);
|
|
261
262
|
if (!lock.acquired) {
|
|
@@ -421,7 +422,7 @@ async function main() {
|
|
|
421
422
|
await flushStdout();
|
|
422
423
|
process.exit(0);
|
|
423
424
|
} else if (daemonSubcommand === "install-nono") {
|
|
424
|
-
const { installNono } = await import('./detectIsolation-
|
|
425
|
+
const { installNono } = await import('./detectIsolation-CrV8IFDv.mjs');
|
|
425
426
|
const okNono = await installNono();
|
|
426
427
|
if (!okNono) {
|
|
427
428
|
console.error("Failed to install nono. See the log above for the reason.");
|
|
@@ -473,7 +474,7 @@ async function main() {
|
|
|
473
474
|
await flushStdout();
|
|
474
475
|
process.exit(1);
|
|
475
476
|
}
|
|
476
|
-
const { handleServiceCommand } = await import('./commands-
|
|
477
|
+
const { handleServiceCommand } = await import('./commands-CFBKkfX8.mjs');
|
|
477
478
|
await handleServiceCommand();
|
|
478
479
|
} else if (subcommand === "serve") {
|
|
479
480
|
const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-Cdzsj5TC.mjs');
|
|
@@ -482,7 +483,7 @@ async function main() {
|
|
|
482
483
|
await flushStdout();
|
|
483
484
|
process.exit(1);
|
|
484
485
|
}
|
|
485
|
-
const { handleServeCommand } = await import('./serveCommands-
|
|
486
|
+
const { handleServeCommand } = await import('./serveCommands-B-Ym_QXc.mjs');
|
|
486
487
|
await handleServeCommand();
|
|
487
488
|
await flushStdout();
|
|
488
489
|
process.exit(0);
|
|
@@ -493,7 +494,7 @@ async function main() {
|
|
|
493
494
|
await flushStdout();
|
|
494
495
|
process.exit(1);
|
|
495
496
|
}
|
|
496
|
-
const { processCommand } = await import('./commands-
|
|
497
|
+
const { processCommand } = await import('./commands-DH_YQrAP.mjs');
|
|
497
498
|
let machineId;
|
|
498
499
|
const processArgs = args.slice(1);
|
|
499
500
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -508,16 +509,16 @@ async function main() {
|
|
|
508
509
|
await flushStdout();
|
|
509
510
|
process.exit(0);
|
|
510
511
|
} else if (subcommand === "outpost") {
|
|
511
|
-
const { outpostCommand } = await import('./commands-
|
|
512
|
+
const { outpostCommand } = await import('./commands-Bmoy6Rlw.mjs');
|
|
512
513
|
await outpostCommand(args.slice(1));
|
|
513
514
|
await flushStdout();
|
|
514
515
|
process.exit(0);
|
|
515
516
|
} else if (subcommand === "issue" || subcommand === "issues") {
|
|
516
|
-
const { issueCommand } = await import('./commands-
|
|
517
|
+
const { issueCommand } = await import('./commands-DRxANaS5.mjs');
|
|
517
518
|
await issueCommand(args.slice(1));
|
|
518
519
|
await flushAndExit(0);
|
|
519
520
|
} else if (subcommand === "workflow" || subcommand === "workflows") {
|
|
520
|
-
const { workflowCommand } = await import('./commands-
|
|
521
|
+
const { workflowCommand } = await import('./commands-B19lVZjm.mjs');
|
|
521
522
|
await workflowCommand(args.slice(1));
|
|
522
523
|
await flushAndExit(0);
|
|
523
524
|
} else if (subcommand === "wise-agent" || subcommand === "wise") {
|
|
@@ -525,12 +526,12 @@ async function main() {
|
|
|
525
526
|
await flushStdout();
|
|
526
527
|
process.exit(0);
|
|
527
528
|
} else if (subcommand === "feature" || subcommand === "crew") {
|
|
528
|
-
const { crewCommand } = await import('./commands-
|
|
529
|
+
const { crewCommand } = await import('./commands-nkvTnUJj.mjs');
|
|
529
530
|
await crewCommand(args.slice(1));
|
|
530
531
|
await flushStdout();
|
|
531
532
|
process.exit(0);
|
|
532
533
|
} else if (subcommand === "notify") {
|
|
533
|
-
const { notifyUser } = await import('./notifyCommands-
|
|
534
|
+
const { notifyUser } = await import('./notifyCommands-CCUE18Q-.mjs');
|
|
534
535
|
const rest = args.slice(1);
|
|
535
536
|
let email;
|
|
536
537
|
const o = {};
|
|
@@ -570,7 +571,7 @@ async function main() {
|
|
|
570
571
|
await flushStdout();
|
|
571
572
|
process.exit(0);
|
|
572
573
|
} else if (subcommand === "events") {
|
|
573
|
-
const { listEvents, ackEvent } = await import('./notifyCommands-
|
|
574
|
+
const { listEvents, ackEvent } = await import('./notifyCommands-CCUE18Q-.mjs');
|
|
574
575
|
const sub = args[1];
|
|
575
576
|
const rest = args.slice(2);
|
|
576
577
|
let email;
|
|
@@ -592,7 +593,7 @@ async function main() {
|
|
|
592
593
|
} else if (!subcommand || subcommand === "start") {
|
|
593
594
|
await handleInteractiveCommand();
|
|
594
595
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
595
|
-
const pkg = await import('./package-
|
|
596
|
+
const pkg = await import('./package-DTTWvJbp.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
596
597
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
597
598
|
} else {
|
|
598
599
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -602,7 +603,7 @@ async function main() {
|
|
|
602
603
|
}
|
|
603
604
|
}
|
|
604
605
|
async function handleInteractiveCommand() {
|
|
605
|
-
const { runInteractive } = await import('./run-
|
|
606
|
+
const { runInteractive } = await import('./run-Bc81iurl.mjs');
|
|
606
607
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
607
608
|
let directory = process.cwd();
|
|
608
609
|
let resumeSessionId;
|
|
@@ -657,15 +658,19 @@ async function handleAgentCommand() {
|
|
|
657
658
|
}
|
|
658
659
|
console.log('\nUse "svamp agent <name>" to start an interactive session.');
|
|
659
660
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
661
|
+
console.log("Tool calls are prompted on a terminal; add --auto-approve (-y) to allow them unattended.");
|
|
660
662
|
return;
|
|
661
663
|
}
|
|
662
664
|
const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./acpAgentConfig-CObOPlA8.mjs');
|
|
663
665
|
let cwd = process.cwd();
|
|
666
|
+
let autoApprove = false;
|
|
664
667
|
const filteredArgs = [];
|
|
665
668
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
666
669
|
if ((agentArgs[i] === "-d" || agentArgs[i] === "--directory") && i + 1 < agentArgs.length) {
|
|
667
670
|
cwd = agentArgs[i + 1];
|
|
668
671
|
i++;
|
|
672
|
+
} else if (agentArgs[i] === "--auto-approve" || agentArgs[i] === "--yes" || agentArgs[i] === "-y") {
|
|
673
|
+
autoApprove = true;
|
|
669
674
|
} else {
|
|
670
675
|
filteredArgs.push(agentArgs[i]);
|
|
671
676
|
}
|
|
@@ -682,12 +687,54 @@ async function handleAgentCommand() {
|
|
|
682
687
|
if (process.env.DEBUG) console.error("[debug]", ...logArgs);
|
|
683
688
|
};
|
|
684
689
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
690
|
+
let replRl = null;
|
|
691
|
+
const stdinIsTty = Boolean(process.stdin.isTTY);
|
|
692
|
+
let approveAllForSession = autoApprove;
|
|
693
|
+
const permissionHandler = {
|
|
694
|
+
async handleToolCall(_toolCallId, toolName, input) {
|
|
695
|
+
if (approveAllForSession) {
|
|
696
|
+
return { decision: "approved" };
|
|
697
|
+
}
|
|
698
|
+
if (!stdinIsTty || !replRl) {
|
|
699
|
+
console.error(
|
|
700
|
+
`
|
|
701
|
+
[permission] DENIED ${toolName}: no terminal to ask on. Re-run with --auto-approve to allow tool calls unattended, or use \`svamp session spawn ${config.agentName}\` for a managed session.`
|
|
702
|
+
);
|
|
703
|
+
return { decision: "denied" };
|
|
704
|
+
}
|
|
705
|
+
const preview = (() => {
|
|
706
|
+
try {
|
|
707
|
+
const j = JSON.stringify(input);
|
|
708
|
+
return j && j.length > 200 ? j.slice(0, 200) + "\u2026" : j || "";
|
|
709
|
+
} catch {
|
|
710
|
+
return "";
|
|
711
|
+
}
|
|
712
|
+
})();
|
|
713
|
+
const answer = await new Promise((resolve) => {
|
|
714
|
+
replRl.question(
|
|
715
|
+
`
|
|
716
|
+
[permission] ${toolName} ${preview}
|
|
717
|
+
allow? [y]es / [n]o / [a]ll for this session: `,
|
|
718
|
+
(a) => resolve(String(a || "").trim().toLowerCase())
|
|
719
|
+
);
|
|
720
|
+
});
|
|
721
|
+
if (answer === "a" || answer === "all") {
|
|
722
|
+
approveAllForSession = true;
|
|
723
|
+
return { decision: "approved_for_session" };
|
|
724
|
+
}
|
|
725
|
+
if (answer === "y" || answer === "yes") return { decision: "approved" };
|
|
726
|
+
return { decision: "denied" };
|
|
727
|
+
}
|
|
728
|
+
};
|
|
729
|
+
console.log(
|
|
730
|
+
autoApprove ? "Tool calls: AUTO-APPROVED (--auto-approve)." : stdinIsTty ? "Tool calls: you will be asked to approve each one (y / n / a)." : "Tool calls: DENIED \u2014 stdin is not a terminal. Re-run with --auto-approve to allow them."
|
|
731
|
+
);
|
|
685
732
|
let backend;
|
|
686
733
|
if (KNOWN_CODEX_AGENTS[config.agentName]) {
|
|
687
734
|
const { CodexAppServerBackend } = await import('./codexAppServerBackend-VGsYtbqg.mjs').then(function (n) { return n.a; });
|
|
688
735
|
backend = new CodexAppServerBackend({ cwd, log: logFn });
|
|
689
736
|
} else {
|
|
690
|
-
const { AcpBackend } = await import('./acpBackend-
|
|
737
|
+
const { AcpBackend } = await import('./acpBackend-UaBD4zL3.mjs');
|
|
691
738
|
const { GeminiTransport } = await import('./GeminiTransport-3OkhtFRO.mjs');
|
|
692
739
|
const { KimiTransport } = await import('./KimiTransport-D8n009Tr.mjs');
|
|
693
740
|
const { DefaultTransport } = await import('./DefaultTransport-vfp78fug.mjs');
|
|
@@ -706,7 +753,9 @@ async function handleAgentCommand() {
|
|
|
706
753
|
args: config.args,
|
|
707
754
|
transportHandler,
|
|
708
755
|
env: acpEnv,
|
|
709
|
-
log: logFn
|
|
756
|
+
log: logFn,
|
|
757
|
+
permissionHandler
|
|
758
|
+
// #1715 — without one, AcpBackend cancels every tool call (#1630)
|
|
710
759
|
});
|
|
711
760
|
}
|
|
712
761
|
let currentText = "";
|
|
@@ -772,6 +821,7 @@ Agent stopped: ${msg.detail || ""}`);
|
|
|
772
821
|
output: process.stdout,
|
|
773
822
|
terminal: false
|
|
774
823
|
});
|
|
824
|
+
replRl = rl;
|
|
775
825
|
rl.on("line", async (line) => {
|
|
776
826
|
const trimmed = line.trim();
|
|
777
827
|
if (!trimmed) return;
|
|
@@ -829,7 +879,7 @@ async function handleSessionCommand() {
|
|
|
829
879
|
process.exit(1);
|
|
830
880
|
}
|
|
831
881
|
}
|
|
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-
|
|
882
|
+
const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionLoopExtend, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, replyPositionals, sendPositionals, sessionInboxClear } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
833
883
|
const parseFlagStr = (flag, shortFlag) => {
|
|
834
884
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
835
885
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -845,6 +895,16 @@ async function handleSessionCommand() {
|
|
|
845
895
|
return isNaN(n) ? void 0 : n;
|
|
846
896
|
};
|
|
847
897
|
const hasFlag = (flag) => sessionArgs.includes(flag);
|
|
898
|
+
const { parseUrgencyValue } = await import('./inboxGuard-CDqmIypF.mjs');
|
|
899
|
+
const urgencyFlag = async () => {
|
|
900
|
+
const parsed = parseUrgencyValue(parseFlagStr("--urgency"), { present: hasFlag("--urgency") });
|
|
901
|
+
if (!parsed.ok) {
|
|
902
|
+
console.error(parsed.message);
|
|
903
|
+
await flushStdout();
|
|
904
|
+
process.exit(1);
|
|
905
|
+
}
|
|
906
|
+
return parsed.value;
|
|
907
|
+
};
|
|
848
908
|
if (sessionSubcommand === "machines" || sessionSubcommand === "machine") {
|
|
849
909
|
await sessionMachines();
|
|
850
910
|
} else if (sessionSubcommand === "list" || sessionSubcommand === "ls") {
|
|
@@ -902,7 +962,7 @@ async function handleSessionCommand() {
|
|
|
902
962
|
const warning = describeUnenforceable("nono", { filesystem: { denyRead } });
|
|
903
963
|
if (warning) console.warn(`Warning: ${warning}`);
|
|
904
964
|
}
|
|
905
|
-
const { parseShareArg } = await import('./commands-
|
|
965
|
+
const { parseShareArg } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
906
966
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
907
967
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
908
968
|
message,
|
|
@@ -971,7 +1031,8 @@ async function handleSessionCommand() {
|
|
|
971
1031
|
}
|
|
972
1032
|
await sessionAttach(sessionArgs[1], targetMachineId);
|
|
973
1033
|
} else if (sessionSubcommand === "send") {
|
|
974
|
-
|
|
1034
|
+
const sendPos = sendPositionals(sessionArgs.slice(1));
|
|
1035
|
+
if (!sendPos[0] || !sendPos[1]) {
|
|
975
1036
|
console.error('Usage: svamp session send <session-id> <message> [--model <id>] [--plain] [--subject "..."] [--when-idle] [--urgency urgent|normal] [--wait] [--response] [--btw] [--require-approval] [--as-issue [--issue-title "..."]] [--timeout N] [--json]');
|
|
976
1037
|
console.error(" --when-idle Deferred delivery: park the message and let the recipient handle it on its next idle turn (default is urgent \u2014 wakes immediately).");
|
|
977
1038
|
console.error(" --model <id> Switch the session model (e.g. claude-opus-4-7, claude-sonnet-4-6) before delivering the message \u2014 forces a respawn.");
|
|
@@ -979,7 +1040,7 @@ async function handleSessionCommand() {
|
|
|
979
1040
|
await flushStdout();
|
|
980
1041
|
process.exit(1);
|
|
981
1042
|
}
|
|
982
|
-
await sessionSend(
|
|
1043
|
+
await sessionSend(sendPos[0], sendPos[1], targetMachineId, {
|
|
983
1044
|
wait: hasFlag("--wait"),
|
|
984
1045
|
response: hasFlag("--response"),
|
|
985
1046
|
btw: hasFlag("--btw"),
|
|
@@ -988,7 +1049,7 @@ async function handleSessionCommand() {
|
|
|
988
1049
|
json: hasFlag("--json"),
|
|
989
1050
|
subject: parseFlagStr("--subject"),
|
|
990
1051
|
whenIdle: hasFlag("--when-idle"),
|
|
991
|
-
urgency:
|
|
1052
|
+
urgency: await urgencyFlag(),
|
|
992
1053
|
model: parseFlagStr("--model"),
|
|
993
1054
|
plain: hasFlag("--plain"),
|
|
994
1055
|
asIssue: hasFlag("--as-issue"),
|
|
@@ -1001,7 +1062,7 @@ async function handleSessionCommand() {
|
|
|
1001
1062
|
await flushStdout();
|
|
1002
1063
|
process.exit(1);
|
|
1003
1064
|
}
|
|
1004
|
-
const { sessionEditMessage } = await import('./commands-
|
|
1065
|
+
const { sessionEditMessage } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1005
1066
|
await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
1006
1067
|
} else if (sessionSubcommand === "refine") {
|
|
1007
1068
|
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
@@ -1010,7 +1071,7 @@ async function handleSessionCommand() {
|
|
|
1010
1071
|
await flushStdout();
|
|
1011
1072
|
process.exit(1);
|
|
1012
1073
|
}
|
|
1013
|
-
const { sessionRefineLastReply } = await import('./commands-
|
|
1074
|
+
const { sessionRefineLastReply } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1014
1075
|
await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
|
|
1015
1076
|
} else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
|
|
1016
1077
|
if (!sessionArgs[1]) {
|
|
@@ -1019,7 +1080,7 @@ async function handleSessionCommand() {
|
|
|
1019
1080
|
await flushStdout();
|
|
1020
1081
|
process.exit(1);
|
|
1021
1082
|
}
|
|
1022
|
-
const { sessionUndoEdit } = await import('./commands-
|
|
1083
|
+
const { sessionUndoEdit } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1023
1084
|
await sessionUndoEdit(sessionArgs[1], targetMachineId);
|
|
1024
1085
|
} else if (sessionSubcommand === "query") {
|
|
1025
1086
|
const dir = sessionArgs[1];
|
|
@@ -1030,7 +1091,7 @@ async function handleSessionCommand() {
|
|
|
1030
1091
|
await flushStdout();
|
|
1031
1092
|
process.exit(1);
|
|
1032
1093
|
}
|
|
1033
|
-
const { sessionQuery } = await import('./commands-
|
|
1094
|
+
const { sessionQuery } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1034
1095
|
await sessionQuery(dir, prompt, targetMachineId, {
|
|
1035
1096
|
timeout: parseFlagInt("--timeout"),
|
|
1036
1097
|
json: hasFlag("--json"),
|
|
@@ -1066,7 +1127,7 @@ async function handleSessionCommand() {
|
|
|
1066
1127
|
await flushStdout();
|
|
1067
1128
|
process.exit(1);
|
|
1068
1129
|
}
|
|
1069
|
-
const { sessionApprove } = await import('./commands-
|
|
1130
|
+
const { sessionApprove } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1070
1131
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
1071
1132
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
1072
1133
|
json: hasFlag("--json")
|
|
@@ -1077,7 +1138,7 @@ async function handleSessionCommand() {
|
|
|
1077
1138
|
await flushStdout();
|
|
1078
1139
|
process.exit(1);
|
|
1079
1140
|
}
|
|
1080
|
-
const { sessionDeny } = await import('./commands-
|
|
1141
|
+
const { sessionDeny } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1081
1142
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
1082
1143
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
1083
1144
|
json: hasFlag("--json")
|
|
@@ -1086,10 +1147,14 @@ async function handleSessionCommand() {
|
|
|
1086
1147
|
const id = sessionArgs[1];
|
|
1087
1148
|
const maybeTask = sessionArgs[2] && !sessionArgs[2].startsWith("-") ? sessionArgs[2] : void 0;
|
|
1088
1149
|
const until = parseFlagStr("--until") ?? parseFlagStr("--criteria");
|
|
1089
|
-
|
|
1150
|
+
const limitOnlyFlags = ["--max", "--max-iterations", "--max-rounds", "--max-tokens-per-hour", "--max-runtime", "--max-runtime-sec"];
|
|
1151
|
+
const hasLimit = limitOnlyFlags.some((f) => parseFlagInt(f) !== void 0);
|
|
1152
|
+
if (!id || !maybeTask && !until && !hasLimit) {
|
|
1090
1153
|
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
1154
|
console.error(" With a task: kicks the agent off and gates it until done.");
|
|
1092
1155
|
console.error(" With only --until: hot-plugs the gate onto the running session (no kickoff).");
|
|
1156
|
+
console.error(" With only a limit (--max / --max-tokens-per-hour / --max-runtime-sec):");
|
|
1157
|
+
console.error(" updates the cap on an existing loop, and RESUMES it if a ceiling had stopped it.");
|
|
1093
1158
|
await flushStdout();
|
|
1094
1159
|
process.exit(1);
|
|
1095
1160
|
}
|
|
@@ -1130,7 +1195,7 @@ async function handleSessionCommand() {
|
|
|
1130
1195
|
await flushStdout();
|
|
1131
1196
|
process.exit(1);
|
|
1132
1197
|
}
|
|
1133
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
1198
|
+
const { sessionSetTitle } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1134
1199
|
await sessionSetTitle(title);
|
|
1135
1200
|
} else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
|
|
1136
1201
|
const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
@@ -1139,7 +1204,7 @@ async function handleSessionCommand() {
|
|
|
1139
1204
|
await flushStdout();
|
|
1140
1205
|
process.exit(1);
|
|
1141
1206
|
}
|
|
1142
|
-
const { sessionSetProjectDescription } = await import('./agentCommands-
|
|
1207
|
+
const { sessionSetProjectDescription } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1143
1208
|
await sessionSetProjectDescription(desc);
|
|
1144
1209
|
} else if (sessionSubcommand === "set-link") {
|
|
1145
1210
|
const url = sessionArgs[1];
|
|
@@ -1149,11 +1214,11 @@ async function handleSessionCommand() {
|
|
|
1149
1214
|
process.exit(1);
|
|
1150
1215
|
}
|
|
1151
1216
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
1152
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
1217
|
+
const { sessionSetLink } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1153
1218
|
await sessionSetLink(url, label);
|
|
1154
1219
|
} else if (sessionSubcommand === "link") {
|
|
1155
1220
|
const op = sessionArgs[1];
|
|
1156
|
-
const lm = await import('./agentCommands-
|
|
1221
|
+
const lm = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1157
1222
|
if (op === "add") {
|
|
1158
1223
|
const url = sessionArgs[2];
|
|
1159
1224
|
if (!url || url.startsWith("--")) {
|
|
@@ -1190,7 +1255,7 @@ async function handleSessionCommand() {
|
|
|
1190
1255
|
process.exit(1);
|
|
1191
1256
|
}
|
|
1192
1257
|
const level = parseFlagStr("--level") || "info";
|
|
1193
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
1258
|
+
const { sessionNotify } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1194
1259
|
await sessionNotify(message, level);
|
|
1195
1260
|
} else if (sessionSubcommand === "broadcast") {
|
|
1196
1261
|
const action = sessionArgs[1];
|
|
@@ -1199,7 +1264,7 @@ async function handleSessionCommand() {
|
|
|
1199
1264
|
await flushStdout();
|
|
1200
1265
|
process.exit(1);
|
|
1201
1266
|
}
|
|
1202
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
1267
|
+
const { sessionBroadcast } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1203
1268
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
1204
1269
|
} else if (sessionSubcommand === "inbox") {
|
|
1205
1270
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -1211,24 +1276,24 @@ async function handleSessionCommand() {
|
|
|
1211
1276
|
process.exit(1);
|
|
1212
1277
|
}
|
|
1213
1278
|
if (agentSessionId) {
|
|
1214
|
-
const { inboxSend } = await import('./agentCommands-
|
|
1279
|
+
const { inboxSend } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1215
1280
|
await inboxSend(sessionArgs[2], {
|
|
1216
1281
|
body: sessionArgs[3],
|
|
1217
1282
|
subject: parseFlagStr("--subject"),
|
|
1218
|
-
urgency:
|
|
1283
|
+
urgency: await urgencyFlag(),
|
|
1219
1284
|
whenIdle: hasFlag("--when-idle")
|
|
1220
1285
|
});
|
|
1221
1286
|
} else {
|
|
1222
1287
|
await sessionInboxSend(sessionArgs[2], sessionArgs[3], targetMachineId, {
|
|
1223
1288
|
subject: parseFlagStr("--subject"),
|
|
1224
|
-
urgency:
|
|
1289
|
+
urgency: await urgencyFlag(),
|
|
1225
1290
|
whenIdle: hasFlag("--when-idle"),
|
|
1226
1291
|
json: hasFlag("--json")
|
|
1227
1292
|
});
|
|
1228
1293
|
}
|
|
1229
1294
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
1230
1295
|
if (agentSessionId && !sessionArgs[2]) {
|
|
1231
|
-
const { inboxList } = await import('./agentCommands-
|
|
1296
|
+
const { inboxList } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1232
1297
|
await inboxList({
|
|
1233
1298
|
unread: hasFlag("--unread"),
|
|
1234
1299
|
limit: parseFlagInt("--limit"),
|
|
@@ -1252,7 +1317,7 @@ async function handleSessionCommand() {
|
|
|
1252
1317
|
process.exit(1);
|
|
1253
1318
|
}
|
|
1254
1319
|
if (agentSessionId && !sessionArgs[3]) {
|
|
1255
|
-
const { inboxList } = await import('./agentCommands-
|
|
1320
|
+
const { inboxList } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1256
1321
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
1257
1322
|
} else if (sessionArgs[3]) {
|
|
1258
1323
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -1262,13 +1327,15 @@ async function handleSessionCommand() {
|
|
|
1262
1327
|
process.exit(1);
|
|
1263
1328
|
}
|
|
1264
1329
|
} else if (inboxSubcmd === "reply") {
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
await
|
|
1330
|
+
const pos = replyPositionals(sessionArgs.slice(2));
|
|
1331
|
+
const replyOpts = { urgency: await urgencyFlag(), whenIdle: hasFlag("--when-idle") };
|
|
1332
|
+
if (agentSessionId && pos[0] && pos[1] && !pos[2]) {
|
|
1333
|
+
const { inboxReply } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1334
|
+
await inboxReply(pos[0], pos[1], replyOpts);
|
|
1335
|
+
} else if (pos[0] && pos[1] && pos[2]) {
|
|
1336
|
+
await sessionInboxReply(pos[0], pos[1], pos[2], targetMachineId, replyOpts);
|
|
1270
1337
|
} else {
|
|
1271
|
-
console.error('Usage: svamp session inbox reply <session-id> <message-id> "<body>"');
|
|
1338
|
+
console.error('Usage: svamp session inbox reply <session-id> <message-id> "<body>" [--urgency urgent|normal] [--when-idle]');
|
|
1272
1339
|
await flushStdout();
|
|
1273
1340
|
process.exit(1);
|
|
1274
1341
|
}
|
|
@@ -1306,7 +1373,7 @@ async function handleMachineCommand() {
|
|
|
1306
1373
|
return;
|
|
1307
1374
|
}
|
|
1308
1375
|
if (machineSubcommand === "share") {
|
|
1309
|
-
const { machineShare } = await import('./commands-
|
|
1376
|
+
const { machineShare } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1310
1377
|
let machineId;
|
|
1311
1378
|
const shareArgs = [];
|
|
1312
1379
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -1358,14 +1425,14 @@ async function handleMachineCommand() {
|
|
|
1358
1425
|
process.exit(1);
|
|
1359
1426
|
}
|
|
1360
1427
|
if (all) {
|
|
1361
|
-
const { fleetExec } = await import('./fleet-
|
|
1428
|
+
const { fleetExec } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1362
1429
|
await fleetExec(command, { cwd });
|
|
1363
1430
|
} else {
|
|
1364
|
-
const { machineExec } = await import('./commands-
|
|
1431
|
+
const { machineExec } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1365
1432
|
await machineExec(machineId, command, cwd);
|
|
1366
1433
|
}
|
|
1367
1434
|
} else if (machineSubcommand === "info") {
|
|
1368
|
-
const { machineInfo } = await import('./commands-
|
|
1435
|
+
const { machineInfo } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1369
1436
|
let machineId;
|
|
1370
1437
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
1371
1438
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -1397,10 +1464,10 @@ async function handleMachineCommand() {
|
|
|
1397
1464
|
await flushStdout();
|
|
1398
1465
|
process.exit(1);
|
|
1399
1466
|
}
|
|
1400
|
-
const { machineNotify } = await import('./agentCommands-
|
|
1467
|
+
const { machineNotify } = await import('./agentCommands-C_KvvYFp.mjs');
|
|
1401
1468
|
await machineNotify(message, level);
|
|
1402
1469
|
} else if (machineSubcommand === "ls") {
|
|
1403
|
-
const { machineLs } = await import('./commands-
|
|
1470
|
+
const { machineLs } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
1404
1471
|
let machineId;
|
|
1405
1472
|
let showHidden = false;
|
|
1406
1473
|
let path;
|
|
@@ -1486,29 +1553,29 @@ Examples:
|
|
|
1486
1553
|
};
|
|
1487
1554
|
const hasFlag = (name) => fleetArgs.includes(`--${name}`);
|
|
1488
1555
|
if (sub === "status") {
|
|
1489
|
-
const { fleetStatus } = await import('./fleet-
|
|
1556
|
+
const { fleetStatus } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1490
1557
|
await fleetStatus();
|
|
1491
1558
|
} else if (sub === "upgrade-claude") {
|
|
1492
|
-
const { fleetUpgradeClaude } = await import('./fleet-
|
|
1559
|
+
const { fleetUpgradeClaude } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1493
1560
|
await fleetUpgradeClaude({ version: flag("version", "-v") });
|
|
1494
1561
|
} else if (sub === "upgrade-codex") {
|
|
1495
|
-
const { fleetUpgradeCodex } = await import('./fleet-
|
|
1562
|
+
const { fleetUpgradeCodex } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1496
1563
|
await fleetUpgradeCodex({ version: flag("version", "-v") });
|
|
1497
1564
|
} else if (sub === "upgrade-kimi") {
|
|
1498
|
-
const { fleetUpgradeKimi } = await import('./fleet-
|
|
1565
|
+
const { fleetUpgradeKimi } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1499
1566
|
await fleetUpgradeKimi({ version: flag("version", "-v") });
|
|
1500
1567
|
} else if (sub === "upgrade-nono") {
|
|
1501
|
-
const { fleetUpgradeNono } = await import('./fleet-
|
|
1568
|
+
const { fleetUpgradeNono } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1502
1569
|
await fleetUpgradeNono({ version: flag("version", "-v") });
|
|
1503
1570
|
} else if (sub === "upgrade-svamp") {
|
|
1504
|
-
const { fleetUpgradeSvamp } = await import('./fleet-
|
|
1571
|
+
const { fleetUpgradeSvamp } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1505
1572
|
await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
|
|
1506
1573
|
} else if (sub === "daemon-restart") {
|
|
1507
|
-
const { fleetDaemonRestart } = await import('./fleet-
|
|
1574
|
+
const { fleetDaemonRestart } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1508
1575
|
await fleetDaemonRestart({ graceful: !hasFlag("cleanup"), force: hasFlag("force") });
|
|
1509
1576
|
} else if (sub === "push-skill") {
|
|
1510
1577
|
const name = fleetArgs[1];
|
|
1511
|
-
const { fleetPushSkill } = await import('./fleet-
|
|
1578
|
+
const { fleetPushSkill } = await import('./fleet-Ca-UjJNL.mjs');
|
|
1512
1579
|
await fleetPushSkill(name);
|
|
1513
1580
|
} else {
|
|
1514
1581
|
console.error(`Unknown fleet subcommand: ${sub}`);
|
|
@@ -2003,7 +2070,7 @@ Commands:
|
|
|
2003
2070
|
svamp workflow --help Automation workflows (schedule / event / idle triggers)
|
|
2004
2071
|
svamp process --help Process supervisor (apply, list, start, stop, logs)
|
|
2005
2072
|
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)
|
|
2073
|
+
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
2074
|
svamp skills --help Skills marketplace (find, install, publish)
|
|
2008
2075
|
svamp service --help Service exposure (HTTP services from sandboxes)
|
|
2009
2076
|
svamp outpost --help Connect a remote machine (FDE outpost): up, exec, list, install
|
|
@@ -2048,6 +2115,11 @@ Usage:
|
|
|
2048
2115
|
svamp daemon auth set <URL> <KEY> Use a custom Anthropic gateway (base URL must not end in /v1)
|
|
2049
2116
|
svamp daemon codex-auth --help Configure how Codex authenticates (status/set/use-openai/use-chatgpt/clear)
|
|
2050
2117
|
svamp daemon kimi-auth --help Configure how Kimi Code authenticates (status/use-moonshot/use-coding/set/clear)
|
|
2118
|
+
svamp daemon install-nono Install/reconcile THIS machine onto the pinned, checksum-verified
|
|
2119
|
+
nono \u2014 the sandbox boundary. installNono() otherwise runs only
|
|
2120
|
+
when the binary is ABSENT, so an existing machine never picks up
|
|
2121
|
+
a new pin. Roll deliberately; 'svamp fleet upgrade-nono' fans
|
|
2122
|
+
this out (no -v \u2014 it always installs the pin, #1376).
|
|
2051
2123
|
|
|
2052
2124
|
Claude auth flags (take effect on next start/restart):
|
|
2053
2125
|
svamp daemon start --use-hypha-proxy <URL> (or --hypha-proxy-url URL)
|
|
@@ -2073,7 +2145,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
2073
2145
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
2074
2146
|
);
|
|
2075
2147
|
}
|
|
2076
|
-
const mod = await import('./claudeAuth-
|
|
2148
|
+
const mod = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2077
2149
|
if (hasHypha) {
|
|
2078
2150
|
let url;
|
|
2079
2151
|
const hyphaIdx = argv.indexOf("--use-hypha-proxy");
|
|
@@ -2127,7 +2199,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
2127
2199
|
}
|
|
2128
2200
|
}
|
|
2129
2201
|
if (collected.length === 0) return;
|
|
2130
|
-
const { updateEnvFile } = await import('./claudeAuth-
|
|
2202
|
+
const { updateEnvFile } = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2131
2203
|
const seen = /* @__PURE__ */ new Set();
|
|
2132
2204
|
const deduped = collected.filter((e) => {
|
|
2133
2205
|
const k = e.toLowerCase();
|
|
@@ -2160,7 +2232,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2160
2232
|
}
|
|
2161
2233
|
});
|
|
2162
2234
|
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-
|
|
2235
|
+
const { wiseAskCli } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
2164
2236
|
await wiseAskCli(machineId, message, sessionId, { json });
|
|
2165
2237
|
return;
|
|
2166
2238
|
}
|
|
@@ -2172,7 +2244,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2172
2244
|
}
|
|
2173
2245
|
return void 0;
|
|
2174
2246
|
};
|
|
2175
|
-
const { runWiseVoiceCli } = await import('./headlessCli-
|
|
2247
|
+
const { runWiseVoiceCli } = await import('./headlessCli-BpTXz6FD.mjs');
|
|
2176
2248
|
await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
|
|
2177
2249
|
return;
|
|
2178
2250
|
}
|
|
@@ -2190,7 +2262,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2190
2262
|
const mode = valueOf(["--mode"]);
|
|
2191
2263
|
const mission = valueOf(["--mission"]);
|
|
2192
2264
|
const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
|
|
2193
|
-
const { wiseJoinMeetingCli } = await import('./commands-
|
|
2265
|
+
const { wiseJoinMeetingCli } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
2194
2266
|
await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
|
|
2195
2267
|
return;
|
|
2196
2268
|
}
|
|
@@ -2202,7 +2274,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2202
2274
|
}
|
|
2203
2275
|
return void 0;
|
|
2204
2276
|
};
|
|
2205
|
-
const { wiseLeaveMeetingCli } = await import('./commands-
|
|
2277
|
+
const { wiseLeaveMeetingCli } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
2206
2278
|
await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
|
|
2207
2279
|
return;
|
|
2208
2280
|
}
|
|
@@ -2226,7 +2298,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2226
2298
|
}
|
|
2227
2299
|
});
|
|
2228
2300
|
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-
|
|
2301
|
+
const { wiseAnnounceCli } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
2230
2302
|
await wiseAnnounceCli(machineId, text, sessionId, { json });
|
|
2231
2303
|
return;
|
|
2232
2304
|
}
|
|
@@ -2238,7 +2310,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
2238
2310
|
}
|
|
2239
2311
|
return void 0;
|
|
2240
2312
|
};
|
|
2241
|
-
const { wiseMeetingsCli } = await import('./commands-
|
|
2313
|
+
const { wiseMeetingsCli } = await import('./commands-CcdoQIkb.mjs').then(function (n) { return n.d; });
|
|
2242
2314
|
await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
|
|
2243
2315
|
return;
|
|
2244
2316
|
}
|
|
@@ -2299,7 +2371,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
2299
2371
|
return;
|
|
2300
2372
|
}
|
|
2301
2373
|
if (action) {
|
|
2302
|
-
const { updateEnvFile } = await import('./claudeAuth-
|
|
2374
|
+
const { updateEnvFile } = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2303
2375
|
const updates = mod.buildWiseAgentEnvUpdates(action);
|
|
2304
2376
|
updateEnvFile(updates);
|
|
2305
2377
|
for (const [k, v] of Object.entries(updates)) {
|
|
@@ -2313,7 +2385,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
2313
2385
|
}
|
|
2314
2386
|
async function handleDaemonAuthCommand(argv) {
|
|
2315
2387
|
const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
|
|
2316
|
-
const mod = await import('./claudeAuth-
|
|
2388
|
+
const mod = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2317
2389
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
2318
2390
|
console.log(`
|
|
2319
2391
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -2390,7 +2462,7 @@ one step: --use-hypha-proxy / --use-claude-login / --anthropic-base-url URL --an
|
|
|
2390
2462
|
}
|
|
2391
2463
|
async function handleDaemonCodexAuthCommand(argv) {
|
|
2392
2464
|
const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
|
|
2393
|
-
const { updateEnvFile } = await import('./claudeAuth-
|
|
2465
|
+
const { updateEnvFile } = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2394
2466
|
const { resolveCodexProvider } = await import('./codexProvider-BtxYc5Rj.mjs');
|
|
2395
2467
|
const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
|
|
2396
2468
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
@@ -2479,7 +2551,7 @@ The generic LLM_API_BASE / LLM_API_KEY / LLM_MODEL env vars are also honored if
|
|
|
2479
2551
|
}
|
|
2480
2552
|
async function handleDaemonKimiAuthCommand(argv) {
|
|
2481
2553
|
const sub = wantsHelp(argv) ? "--help" : (argv[0] || "status").toLowerCase();
|
|
2482
|
-
const { updateEnvFile } = await import('./claudeAuth-
|
|
2554
|
+
const { updateEnvFile } = await import('./claudeAuth-DMDvPNhO.mjs');
|
|
2483
2555
|
const { resolveKimiProvider, buildKimiCatalogAddArgs, DEFAULT_KIMI_PROVIDER } = await import('./kimiProvider-DbxODebR.mjs');
|
|
2484
2556
|
const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
|
|
2485
2557
|
const PRESETS = {
|
|
@@ -2646,9 +2718,13 @@ COMMANDS:
|
|
|
2646
2718
|
the message lands in the peer's inbox and is processed on
|
|
2647
2719
|
their next idle turn (no interrupt). Loop safeguard: a send
|
|
2648
2720
|
issued from a turn that was itself triggered by an inbox
|
|
2649
|
-
message
|
|
2650
|
-
|
|
2651
|
-
|
|
2721
|
+
message DEFAULTS to non-urgent (no recursive wake cascades)
|
|
2722
|
+
and says so on stderr; pass --urgency urgent to override.
|
|
2723
|
+
This safeguard covers "send" and "inbox send" only \u2014
|
|
2724
|
+
"inbox reply" deliberately defaults urgent (it wakes a party
|
|
2725
|
+
that is waiting) and is bounded by the hop cap instead.
|
|
2726
|
+
The daemon's per-sender rate limit + circuit breaker
|
|
2727
|
+
further bound any storm.
|
|
2652
2728
|
--when-idle defer: handle on the recipient's
|
|
2653
2729
|
next idle turn (opposite of the
|
|
2654
2730
|
urgent default)
|
|
@@ -2710,7 +2786,9 @@ COMMANDS:
|
|
|
2710
2786
|
inbox send <id> "<body>" [opts] Send a message to session inbox
|
|
2711
2787
|
inbox list <id> [--unread] [--json] List inbox messages
|
|
2712
2788
|
inbox read <id> <msg-id> Read and mark a message
|
|
2713
|
-
inbox reply <id> <msg-id> "<body>" Reply to sender's session
|
|
2789
|
+
inbox reply <id> <msg-id> "<body>" Reply to sender's session (urgent by default \u2014
|
|
2790
|
+
[--urgency urgent|normal] it wakes a party that is waiting; --when-idle or
|
|
2791
|
+
[--when-idle] --urgency normal defers to their next idle turn)
|
|
2714
2792
|
inbox clear <id> [--all] Clear read (or all) messages
|
|
2715
2793
|
|
|
2716
2794
|
SPAWN OPTIONS:
|
|
@@ -2762,7 +2840,7 @@ ISOLATION & SHARING OPTIONS (for spawn):
|
|
|
2762
2840
|
MESSAGES OPTIONS:
|
|
2763
2841
|
--last N Show last N messages only
|
|
2764
2842
|
--after N Start after sequence number N (for pagination)
|
|
2765
|
-
--limit N Max messages to fetch (default:
|
|
2843
|
+
--limit N Max messages to fetch (default: 50, capped at 500 by the daemon)
|
|
2766
2844
|
--json Output as JSON array of {id, seq, role, text, createdAt}
|
|
2767
2845
|
--raw With --json: include full raw objects (tool_use, tool_result, thinking)
|
|
2768
2846
|
|