svamp-cli 0.2.252 → 0.2.253
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/dist/{agentCommands-BfK_xRcZ.mjs → agentCommands-DYoNzX4K.mjs} +5 -5
- package/dist/{auth-dxadQh0v.mjs → auth-D0nW0Gyj.mjs} +1 -1
- package/dist/cli.mjs +61 -61
- package/dist/{commands-eDMV8Q8q.mjs → commands-B9wShol7.mjs} +1 -1
- package/dist/{commands-Blddcoeh.mjs → commands-C3YGnWyy.mjs} +1 -1
- package/dist/{commands-CuSO_rgw.mjs → commands-CfDWN8Ej.mjs} +2 -2
- package/dist/{commands-Cg3yUhp1.mjs → commands-CvWkQB_c.mjs} +1 -1
- package/dist/{commands-BAtj5B4a.mjs → commands-EhQiKpwu.mjs} +6 -6
- package/dist/{commands-BkroIJOC.mjs → commands-YPQSZ4Qx.mjs} +1 -1
- package/dist/{commands-B9eaRA8O.mjs → commands-_Tr8pO3_.mjs} +2 -2
- package/dist/{fleet-CNmpoV_Q.mjs → fleet-Ndfbo8Ni.mjs} +2 -2
- package/dist/{frpc-DoUUUoZn.mjs → frpc-CLQB-GM1.mjs} +1 -1
- package/dist/{headlessCli-DGTHnPjT.mjs → headlessCli-CbCWVR81.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{package-C2CWKEW-.mjs → package-BTW_-LFn.mjs} +1 -1
- package/dist/{pinnedClaudeCode-ivV7xAp3.mjs → pinnedClaudeCode-DuLXaoGP.mjs} +1 -1
- package/dist/{rpc-_rwZwiHD.mjs → rpc-0HSLhpCb.mjs} +1 -1
- package/dist/{rpc-665-sPRQ.mjs → rpc-BB-AxQa_.mjs} +1 -1
- package/dist/{run-BPNXOI3F.mjs → run-BtWV7xhR.mjs} +1 -1
- package/dist/{run-BNxaekWa.mjs → run-hYUl-Fln.mjs} +96 -44
- package/dist/{scheduler-DjMTCoWS.mjs → scheduler-DaFydJPf.mjs} +1 -1
- package/dist/{serveCommands-Bc6fchAf.mjs → serveCommands-BgtRllaY.mjs} +5 -5
- package/dist/{serveManager-DAuIjPuV.mjs → serveManager-BK5OjhXU.mjs} +2 -2
- package/dist/{sideband-D6vgqNiq.mjs → sideband-C0qzprWp.mjs} +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync, renameSync } from '
|
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { requireNotSandboxed } from './sandboxDetect-DNTcbgWD.mjs';
|
|
5
|
-
import { k as shortId } from './run-
|
|
5
|
+
import { k as shortId } from './run-hYUl-Fln.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -97,7 +97,7 @@ async function sessionSetTitle(title) {
|
|
|
97
97
|
}
|
|
98
98
|
async function sessionSetProjectDescription(description) {
|
|
99
99
|
const dir = process.cwd();
|
|
100
|
-
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-
|
|
100
|
+
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.al; });
|
|
101
101
|
const desc = sanitizeDescription(description, 240);
|
|
102
102
|
if (!desc) {
|
|
103
103
|
console.error("Project description is empty.");
|
|
@@ -344,7 +344,7 @@ async function sessionBroadcast(action, args) {
|
|
|
344
344
|
console.log(`Broadcast sent: ${action}`);
|
|
345
345
|
}
|
|
346
346
|
async function connectToMachineService() {
|
|
347
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
347
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
348
348
|
return connectAndGetMachine();
|
|
349
349
|
}
|
|
350
350
|
function buildInboxMessage(args) {
|
|
@@ -422,7 +422,7 @@ async function inboxSend(targetSessionId, opts) {
|
|
|
422
422
|
console.error("Message body is required.");
|
|
423
423
|
process.exit(1);
|
|
424
424
|
}
|
|
425
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
425
|
+
const { connectAndResolveSession } = await import('./commands-YPQSZ4Qx.mjs');
|
|
426
426
|
let server;
|
|
427
427
|
try {
|
|
428
428
|
const { targetId, messageId } = await inboxSendCore(
|
|
@@ -476,7 +476,7 @@ async function inboxReply(messageId, body) {
|
|
|
476
476
|
console.error("SVAMP_SESSION_ID not set. This command must be run inside a Svamp session.");
|
|
477
477
|
process.exit(1);
|
|
478
478
|
}
|
|
479
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
479
|
+
const { connectAndResolveSession } = await import('./commands-YPQSZ4Qx.mjs');
|
|
480
480
|
const { server: localServer, machine: localMachine } = await connectToMachineService();
|
|
481
481
|
let localDisconnected = false;
|
|
482
482
|
const disconnectLocal = async () => {
|
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-
|
|
1
|
+
import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
@@ -35,7 +35,7 @@ const subcommand = args[0];
|
|
|
35
35
|
let daemonSubcommand = args[1];
|
|
36
36
|
async function main() {
|
|
37
37
|
try {
|
|
38
|
-
const { getLoadedConfig } = await import('./run-
|
|
38
|
+
const { getLoadedConfig } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ar; });
|
|
39
39
|
getLoadedConfig();
|
|
40
40
|
} catch {
|
|
41
41
|
}
|
|
@@ -54,7 +54,7 @@ async function main() {
|
|
|
54
54
|
}
|
|
55
55
|
const whenIdle = args.includes("--when-idle");
|
|
56
56
|
const force = args.includes("--force");
|
|
57
|
-
const mod = await import('./run-
|
|
57
|
+
const mod = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.at; });
|
|
58
58
|
if (whenIdle && !force) {
|
|
59
59
|
if (mod.isDaemonAlive()) {
|
|
60
60
|
mod.writePendingRestart({ reason: "svamp daemon restart --when-idle" });
|
|
@@ -355,7 +355,7 @@ async function main() {
|
|
|
355
355
|
console.error("svamp service: Service commands are not available in sandboxed sessions.");
|
|
356
356
|
process.exit(1);
|
|
357
357
|
}
|
|
358
|
-
const { handleServiceCommand } = await import('./commands-
|
|
358
|
+
const { handleServiceCommand } = await import('./commands-EhQiKpwu.mjs');
|
|
359
359
|
await handleServiceCommand();
|
|
360
360
|
} else if (subcommand === "serve") {
|
|
361
361
|
const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
|
|
@@ -363,7 +363,7 @@ async function main() {
|
|
|
363
363
|
console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
|
|
364
364
|
process.exit(1);
|
|
365
365
|
}
|
|
366
|
-
const { handleServeCommand } = await import('./serveCommands-
|
|
366
|
+
const { handleServeCommand } = await import('./serveCommands-BgtRllaY.mjs');
|
|
367
367
|
await handleServeCommand();
|
|
368
368
|
process.exit(0);
|
|
369
369
|
} else if (subcommand === "process" || subcommand === "proc") {
|
|
@@ -372,7 +372,7 @@ async function main() {
|
|
|
372
372
|
console.error("svamp process: Process commands are not available in sandboxed sessions.");
|
|
373
373
|
process.exit(1);
|
|
374
374
|
}
|
|
375
|
-
const { processCommand } = await import('./commands-
|
|
375
|
+
const { processCommand } = await import('./commands-_Tr8pO3_.mjs');
|
|
376
376
|
let machineId;
|
|
377
377
|
const processArgs = args.slice(1);
|
|
378
378
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -386,18 +386,18 @@ async function main() {
|
|
|
386
386
|
}), machineId);
|
|
387
387
|
process.exit(0);
|
|
388
388
|
} else if (subcommand === "issue" || subcommand === "issues") {
|
|
389
|
-
const { issueCommand } = await import('./commands-
|
|
389
|
+
const { issueCommand } = await import('./commands-C3YGnWyy.mjs');
|
|
390
390
|
await issueCommand(args.slice(1));
|
|
391
391
|
process.exit(0);
|
|
392
392
|
} else if (subcommand === "workflow" || subcommand === "workflows") {
|
|
393
|
-
const { workflowCommand } = await import('./commands-
|
|
393
|
+
const { workflowCommand } = await import('./commands-B9wShol7.mjs');
|
|
394
394
|
await workflowCommand(args.slice(1));
|
|
395
395
|
process.exit(0);
|
|
396
396
|
} else if (subcommand === "wise-agent" || subcommand === "wise") {
|
|
397
397
|
await handleWiseAgentCommand(args.slice(1));
|
|
398
398
|
process.exit(0);
|
|
399
399
|
} else if (subcommand === "feature" || subcommand === "crew") {
|
|
400
|
-
const { crewCommand } = await import('./commands-
|
|
400
|
+
const { crewCommand } = await import('./commands-CfDWN8Ej.mjs');
|
|
401
401
|
await crewCommand(args.slice(1));
|
|
402
402
|
process.exit(0);
|
|
403
403
|
} else if (subcommand === "--help" || subcommand === "-h") {
|
|
@@ -405,7 +405,7 @@ async function main() {
|
|
|
405
405
|
} else if (!subcommand || subcommand === "start") {
|
|
406
406
|
await handleInteractiveCommand();
|
|
407
407
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
408
|
-
const pkg = await import('./package-
|
|
408
|
+
const pkg = await import('./package-BTW_-LFn.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
409
409
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
410
410
|
} else {
|
|
411
411
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -414,7 +414,7 @@ async function main() {
|
|
|
414
414
|
}
|
|
415
415
|
}
|
|
416
416
|
async function handleInteractiveCommand() {
|
|
417
|
-
const { runInteractive } = await import('./run-
|
|
417
|
+
const { runInteractive } = await import('./run-BtWV7xhR.mjs');
|
|
418
418
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
419
419
|
let directory = process.cwd();
|
|
420
420
|
let resumeSessionId;
|
|
@@ -459,7 +459,7 @@ async function handleAgentCommand() {
|
|
|
459
459
|
return;
|
|
460
460
|
}
|
|
461
461
|
if (agentArgs[0] === "list") {
|
|
462
|
-
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-
|
|
462
|
+
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ao; });
|
|
463
463
|
console.log("Known agents:");
|
|
464
464
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
465
465
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -471,7 +471,7 @@ async function handleAgentCommand() {
|
|
|
471
471
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
472
472
|
return;
|
|
473
473
|
}
|
|
474
|
-
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-
|
|
474
|
+
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ao; });
|
|
475
475
|
let cwd = process.cwd();
|
|
476
476
|
const filteredArgs = [];
|
|
477
477
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -495,12 +495,12 @@ async function handleAgentCommand() {
|
|
|
495
495
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
496
496
|
let backend;
|
|
497
497
|
if (KNOWN_MCP_AGENTS[config.agentName]) {
|
|
498
|
-
const { CodexMcpBackend } = await import('./run-
|
|
498
|
+
const { CodexMcpBackend } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ap; });
|
|
499
499
|
backend = new CodexMcpBackend({ cwd, log: logFn });
|
|
500
500
|
} else {
|
|
501
|
-
const { AcpBackend } = await import('./run-
|
|
502
|
-
const { GeminiTransport } = await import('./run-
|
|
503
|
-
const { DefaultTransport } = await import('./run-
|
|
501
|
+
const { AcpBackend } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.an; });
|
|
502
|
+
const { GeminiTransport } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.aq; });
|
|
503
|
+
const { DefaultTransport } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.am; });
|
|
504
504
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
505
505
|
backend = new AcpBackend({
|
|
506
506
|
agentName: config.agentName,
|
|
@@ -627,7 +627,7 @@ async function handleSessionCommand() {
|
|
|
627
627
|
process.exit(1);
|
|
628
628
|
}
|
|
629
629
|
}
|
|
630
|
-
const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-
|
|
630
|
+
const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-YPQSZ4Qx.mjs');
|
|
631
631
|
const parseFlagStr = (flag, shortFlag) => {
|
|
632
632
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
633
633
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -695,7 +695,7 @@ async function handleSessionCommand() {
|
|
|
695
695
|
allowDomain.push(sessionArgs[++i]);
|
|
696
696
|
}
|
|
697
697
|
}
|
|
698
|
-
const { parseShareArg } = await import('./commands-
|
|
698
|
+
const { parseShareArg } = await import('./commands-YPQSZ4Qx.mjs');
|
|
699
699
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
700
700
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
701
701
|
message,
|
|
@@ -785,7 +785,7 @@ async function handleSessionCommand() {
|
|
|
785
785
|
console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
|
|
786
786
|
process.exit(1);
|
|
787
787
|
}
|
|
788
|
-
const { sessionEditMessage } = await import('./commands-
|
|
788
|
+
const { sessionEditMessage } = await import('./commands-YPQSZ4Qx.mjs');
|
|
789
789
|
await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
790
790
|
} else if (sessionSubcommand === "refine") {
|
|
791
791
|
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
@@ -793,7 +793,7 @@ async function handleSessionCommand() {
|
|
|
793
793
|
console.error(" Asks the agent to revise its latest reply in place (no extra round).");
|
|
794
794
|
process.exit(1);
|
|
795
795
|
}
|
|
796
|
-
const { sessionRefineLastReply } = await import('./commands-
|
|
796
|
+
const { sessionRefineLastReply } = await import('./commands-YPQSZ4Qx.mjs');
|
|
797
797
|
await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
|
|
798
798
|
} else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
|
|
799
799
|
if (!sessionArgs[1]) {
|
|
@@ -801,7 +801,7 @@ async function handleSessionCommand() {
|
|
|
801
801
|
console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
|
|
802
802
|
process.exit(1);
|
|
803
803
|
}
|
|
804
|
-
const { sessionUndoEdit } = await import('./commands-
|
|
804
|
+
const { sessionUndoEdit } = await import('./commands-YPQSZ4Qx.mjs');
|
|
805
805
|
await sessionUndoEdit(sessionArgs[1], targetMachineId);
|
|
806
806
|
} else if (sessionSubcommand === "query") {
|
|
807
807
|
const dir = sessionArgs[1];
|
|
@@ -811,7 +811,7 @@ async function handleSessionCommand() {
|
|
|
811
811
|
console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
|
|
812
812
|
process.exit(1);
|
|
813
813
|
}
|
|
814
|
-
const { sessionQuery } = await import('./commands-
|
|
814
|
+
const { sessionQuery } = await import('./commands-YPQSZ4Qx.mjs');
|
|
815
815
|
await sessionQuery(dir, prompt, targetMachineId, {
|
|
816
816
|
timeout: parseFlagInt("--timeout"),
|
|
817
817
|
json: hasFlag("--json"),
|
|
@@ -844,7 +844,7 @@ async function handleSessionCommand() {
|
|
|
844
844
|
console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
|
|
845
845
|
process.exit(1);
|
|
846
846
|
}
|
|
847
|
-
const { sessionApprove } = await import('./commands-
|
|
847
|
+
const { sessionApprove } = await import('./commands-YPQSZ4Qx.mjs');
|
|
848
848
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
849
849
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
850
850
|
json: hasFlag("--json")
|
|
@@ -854,7 +854,7 @@ async function handleSessionCommand() {
|
|
|
854
854
|
console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
|
|
855
855
|
process.exit(1);
|
|
856
856
|
}
|
|
857
|
-
const { sessionDeny } = await import('./commands-
|
|
857
|
+
const { sessionDeny } = await import('./commands-YPQSZ4Qx.mjs');
|
|
858
858
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
859
859
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
860
860
|
json: hasFlag("--json")
|
|
@@ -899,7 +899,7 @@ async function handleSessionCommand() {
|
|
|
899
899
|
console.error("Usage: svamp session set-title <title>");
|
|
900
900
|
process.exit(1);
|
|
901
901
|
}
|
|
902
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
902
|
+
const { sessionSetTitle } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
903
903
|
await sessionSetTitle(title);
|
|
904
904
|
} else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
|
|
905
905
|
const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
@@ -907,7 +907,7 @@ async function handleSessionCommand() {
|
|
|
907
907
|
console.error("Usage: svamp session set-project-description <text>");
|
|
908
908
|
process.exit(1);
|
|
909
909
|
}
|
|
910
|
-
const { sessionSetProjectDescription } = await import('./agentCommands-
|
|
910
|
+
const { sessionSetProjectDescription } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
911
911
|
await sessionSetProjectDescription(desc);
|
|
912
912
|
} else if (sessionSubcommand === "set-link") {
|
|
913
913
|
const url = sessionArgs[1];
|
|
@@ -916,11 +916,11 @@ async function handleSessionCommand() {
|
|
|
916
916
|
process.exit(1);
|
|
917
917
|
}
|
|
918
918
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
919
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
919
|
+
const { sessionSetLink } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
920
920
|
await sessionSetLink(url, label);
|
|
921
921
|
} else if (sessionSubcommand === "link") {
|
|
922
922
|
const op = sessionArgs[1];
|
|
923
|
-
const lm = await import('./agentCommands-
|
|
923
|
+
const lm = await import('./agentCommands-DYoNzX4K.mjs');
|
|
924
924
|
if (op === "add") {
|
|
925
925
|
const url = sessionArgs[2];
|
|
926
926
|
if (!url || url.startsWith("--")) {
|
|
@@ -955,7 +955,7 @@ async function handleSessionCommand() {
|
|
|
955
955
|
process.exit(1);
|
|
956
956
|
}
|
|
957
957
|
const level = parseFlagStr("--level") || "info";
|
|
958
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
958
|
+
const { sessionNotify } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
959
959
|
await sessionNotify(message, level);
|
|
960
960
|
} else if (sessionSubcommand === "broadcast") {
|
|
961
961
|
const action = sessionArgs[1];
|
|
@@ -963,7 +963,7 @@ async function handleSessionCommand() {
|
|
|
963
963
|
console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
|
|
964
964
|
process.exit(1);
|
|
965
965
|
}
|
|
966
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
966
|
+
const { sessionBroadcast } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
967
967
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
968
968
|
} else if (sessionSubcommand === "inbox") {
|
|
969
969
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -974,7 +974,7 @@ async function handleSessionCommand() {
|
|
|
974
974
|
process.exit(1);
|
|
975
975
|
}
|
|
976
976
|
if (agentSessionId) {
|
|
977
|
-
const { inboxSend } = await import('./agentCommands-
|
|
977
|
+
const { inboxSend } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
978
978
|
await inboxSend(sessionArgs[2], {
|
|
979
979
|
body: sessionArgs[3],
|
|
980
980
|
subject: parseFlagStr("--subject"),
|
|
@@ -989,7 +989,7 @@ async function handleSessionCommand() {
|
|
|
989
989
|
}
|
|
990
990
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
991
991
|
if (agentSessionId && !sessionArgs[2]) {
|
|
992
|
-
const { inboxList } = await import('./agentCommands-
|
|
992
|
+
const { inboxList } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
993
993
|
await inboxList({
|
|
994
994
|
unread: hasFlag("--unread"),
|
|
995
995
|
limit: parseFlagInt("--limit"),
|
|
@@ -1011,7 +1011,7 @@ async function handleSessionCommand() {
|
|
|
1011
1011
|
process.exit(1);
|
|
1012
1012
|
}
|
|
1013
1013
|
if (agentSessionId && !sessionArgs[3]) {
|
|
1014
|
-
const { inboxList } = await import('./agentCommands-
|
|
1014
|
+
const { inboxList } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
1015
1015
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
1016
1016
|
} else if (sessionArgs[3]) {
|
|
1017
1017
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -1021,7 +1021,7 @@ async function handleSessionCommand() {
|
|
|
1021
1021
|
}
|
|
1022
1022
|
} else if (inboxSubcmd === "reply") {
|
|
1023
1023
|
if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
|
|
1024
|
-
const { inboxReply } = await import('./agentCommands-
|
|
1024
|
+
const { inboxReply } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
1025
1025
|
await inboxReply(sessionArgs[2], sessionArgs[3]);
|
|
1026
1026
|
} else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
|
|
1027
1027
|
await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
|
|
@@ -1059,7 +1059,7 @@ async function handleMachineCommand() {
|
|
|
1059
1059
|
return;
|
|
1060
1060
|
}
|
|
1061
1061
|
if (machineSubcommand === "share") {
|
|
1062
|
-
const { machineShare } = await import('./commands-
|
|
1062
|
+
const { machineShare } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1063
1063
|
let machineId;
|
|
1064
1064
|
const shareArgs = [];
|
|
1065
1065
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -1110,14 +1110,14 @@ async function handleMachineCommand() {
|
|
|
1110
1110
|
process.exit(1);
|
|
1111
1111
|
}
|
|
1112
1112
|
if (all) {
|
|
1113
|
-
const { fleetExec } = await import('./fleet-
|
|
1113
|
+
const { fleetExec } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1114
1114
|
await fleetExec(command, { cwd });
|
|
1115
1115
|
} else {
|
|
1116
|
-
const { machineExec } = await import('./commands-
|
|
1116
|
+
const { machineExec } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1117
1117
|
await machineExec(machineId, command, cwd);
|
|
1118
1118
|
}
|
|
1119
1119
|
} else if (machineSubcommand === "info") {
|
|
1120
|
-
const { machineInfo } = await import('./commands-
|
|
1120
|
+
const { machineInfo } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1121
1121
|
let machineId;
|
|
1122
1122
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
1123
1123
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -1137,10 +1137,10 @@ async function handleMachineCommand() {
|
|
|
1137
1137
|
level = machineArgs[++i];
|
|
1138
1138
|
}
|
|
1139
1139
|
}
|
|
1140
|
-
const { machineNotify } = await import('./agentCommands-
|
|
1140
|
+
const { machineNotify } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
1141
1141
|
await machineNotify(message, level);
|
|
1142
1142
|
} else if (machineSubcommand === "ls") {
|
|
1143
|
-
const { machineLs } = await import('./commands-
|
|
1143
|
+
const { machineLs } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1144
1144
|
let machineId;
|
|
1145
1145
|
let showHidden = false;
|
|
1146
1146
|
let path;
|
|
@@ -1199,20 +1199,20 @@ Examples:
|
|
|
1199
1199
|
};
|
|
1200
1200
|
const hasFlag = (name) => fleetArgs.includes(`--${name}`);
|
|
1201
1201
|
if (sub === "status") {
|
|
1202
|
-
const { fleetStatus } = await import('./fleet-
|
|
1202
|
+
const { fleetStatus } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1203
1203
|
await fleetStatus();
|
|
1204
1204
|
} else if (sub === "upgrade-claude") {
|
|
1205
|
-
const { fleetUpgradeClaude } = await import('./fleet-
|
|
1205
|
+
const { fleetUpgradeClaude } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1206
1206
|
await fleetUpgradeClaude({ version: flag("version", "-v") });
|
|
1207
1207
|
} else if (sub === "upgrade-svamp") {
|
|
1208
|
-
const { fleetUpgradeSvamp } = await import('./fleet-
|
|
1208
|
+
const { fleetUpgradeSvamp } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1209
1209
|
await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
|
|
1210
1210
|
} else if (sub === "daemon-restart") {
|
|
1211
|
-
const { fleetDaemonRestart } = await import('./fleet-
|
|
1211
|
+
const { fleetDaemonRestart } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1212
1212
|
await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
|
|
1213
1213
|
} else if (sub === "push-skill") {
|
|
1214
1214
|
const name = fleetArgs[1];
|
|
1215
|
-
const { fleetPushSkill } = await import('./fleet-
|
|
1215
|
+
const { fleetPushSkill } = await import('./fleet-Ndfbo8Ni.mjs');
|
|
1216
1216
|
await fleetPushSkill(name);
|
|
1217
1217
|
} else {
|
|
1218
1218
|
console.error(`Unknown fleet subcommand: ${sub}`);
|
|
@@ -1228,7 +1228,7 @@ async function handleSkillsCommand() {
|
|
|
1228
1228
|
await printSkillsHelp();
|
|
1229
1229
|
return;
|
|
1230
1230
|
}
|
|
1231
|
-
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-
|
|
1231
|
+
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-CvWkQB_c.mjs');
|
|
1232
1232
|
if (skillsSubcommand === "find" || skillsSubcommand === "search") {
|
|
1233
1233
|
const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
1234
1234
|
if (!query) {
|
|
@@ -1275,7 +1275,7 @@ async function loginToHypha() {
|
|
|
1275
1275
|
process.exit(1);
|
|
1276
1276
|
}
|
|
1277
1277
|
const anchor = anchorArg.replace(/\/+$/, "");
|
|
1278
|
-
const { loadInstanceConfig } = await import('./run-
|
|
1278
|
+
const { loadInstanceConfig } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ar; });
|
|
1279
1279
|
let cfg = null;
|
|
1280
1280
|
try {
|
|
1281
1281
|
cfg = await loadInstanceConfig({ anchor, force: true });
|
|
@@ -1386,7 +1386,7 @@ async function logoutFromHypha() {
|
|
|
1386
1386
|
} catch {
|
|
1387
1387
|
}
|
|
1388
1388
|
try {
|
|
1389
|
-
const { clearInstanceConfigCache } = await import('./run-
|
|
1389
|
+
const { clearInstanceConfigCache } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ar; });
|
|
1390
1390
|
clearInstanceConfigCache();
|
|
1391
1391
|
} catch {
|
|
1392
1392
|
}
|
|
@@ -1725,7 +1725,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
1725
1725
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
1726
1726
|
);
|
|
1727
1727
|
}
|
|
1728
|
-
const mod = await import('./run-
|
|
1728
|
+
const mod = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ak; });
|
|
1729
1729
|
if (hasHypha) {
|
|
1730
1730
|
let url;
|
|
1731
1731
|
const hyphaIdx = argv.indexOf("--use-hypha-proxy");
|
|
@@ -1779,7 +1779,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1779
1779
|
}
|
|
1780
1780
|
}
|
|
1781
1781
|
if (collected.length === 0) return;
|
|
1782
|
-
const { updateEnvFile } = await import('./run-
|
|
1782
|
+
const { updateEnvFile } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ak; });
|
|
1783
1783
|
const seen = /* @__PURE__ */ new Set();
|
|
1784
1784
|
const deduped = collected.filter((e) => {
|
|
1785
1785
|
const k = e.toLowerCase();
|
|
@@ -1812,7 +1812,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1812
1812
|
}
|
|
1813
1813
|
});
|
|
1814
1814
|
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(" ");
|
|
1815
|
-
const { wiseAskCli } = await import('./commands-
|
|
1815
|
+
const { wiseAskCli } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1816
1816
|
await wiseAskCli(machineId, message, sessionId, { json });
|
|
1817
1817
|
return;
|
|
1818
1818
|
}
|
|
@@ -1824,7 +1824,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
return void 0;
|
|
1826
1826
|
};
|
|
1827
|
-
const { runWiseVoiceCli } = await import('./headlessCli-
|
|
1827
|
+
const { runWiseVoiceCli } = await import('./headlessCli-CbCWVR81.mjs');
|
|
1828
1828
|
await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
|
|
1829
1829
|
return;
|
|
1830
1830
|
}
|
|
@@ -1842,7 +1842,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1842
1842
|
const mode = valueOf(["--mode"]);
|
|
1843
1843
|
const mission = valueOf(["--mission"]);
|
|
1844
1844
|
const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
|
|
1845
|
-
const { wiseJoinMeetingCli } = await import('./commands-
|
|
1845
|
+
const { wiseJoinMeetingCli } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1846
1846
|
await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
|
|
1847
1847
|
return;
|
|
1848
1848
|
}
|
|
@@ -1854,7 +1854,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1854
1854
|
}
|
|
1855
1855
|
return void 0;
|
|
1856
1856
|
};
|
|
1857
|
-
const { wiseLeaveMeetingCli } = await import('./commands-
|
|
1857
|
+
const { wiseLeaveMeetingCli } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1858
1858
|
await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
|
|
1859
1859
|
return;
|
|
1860
1860
|
}
|
|
@@ -1878,7 +1878,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1878
1878
|
}
|
|
1879
1879
|
});
|
|
1880
1880
|
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(" ");
|
|
1881
|
-
const { wiseAnnounceCli } = await import('./commands-
|
|
1881
|
+
const { wiseAnnounceCli } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1882
1882
|
await wiseAnnounceCli(machineId, text, sessionId, { json });
|
|
1883
1883
|
return;
|
|
1884
1884
|
}
|
|
@@ -1890,7 +1890,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1890
1890
|
}
|
|
1891
1891
|
return void 0;
|
|
1892
1892
|
};
|
|
1893
|
-
const { wiseMeetingsCli } = await import('./commands-
|
|
1893
|
+
const { wiseMeetingsCli } = await import('./commands-YPQSZ4Qx.mjs');
|
|
1894
1894
|
await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
|
|
1895
1895
|
return;
|
|
1896
1896
|
}
|
|
@@ -1940,7 +1940,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1940
1940
|
return;
|
|
1941
1941
|
}
|
|
1942
1942
|
const authArgs = rest.slice(1);
|
|
1943
|
-
const mod = await import('./auth-
|
|
1943
|
+
const mod = await import('./auth-D0nW0Gyj.mjs');
|
|
1944
1944
|
let action;
|
|
1945
1945
|
try {
|
|
1946
1946
|
action = mod.parseWiseAgentAuthArgs(authArgs);
|
|
@@ -1950,7 +1950,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1950
1950
|
return;
|
|
1951
1951
|
}
|
|
1952
1952
|
if (action) {
|
|
1953
|
-
const { updateEnvFile } = await import('./run-
|
|
1953
|
+
const { updateEnvFile } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ak; });
|
|
1954
1954
|
const updates = mod.buildWiseAgentEnvUpdates(action);
|
|
1955
1955
|
updateEnvFile(updates);
|
|
1956
1956
|
for (const [k, v] of Object.entries(updates)) {
|
|
@@ -1964,7 +1964,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1964
1964
|
}
|
|
1965
1965
|
async function handleDaemonAuthCommand(argv) {
|
|
1966
1966
|
const sub = (argv[0] || "status").toLowerCase();
|
|
1967
|
-
const mod = await import('./run-
|
|
1967
|
+
const mod = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.ak; });
|
|
1968
1968
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
1969
1969
|
console.log(`
|
|
1970
1970
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -2283,7 +2283,7 @@ Examples:
|
|
|
2283
2283
|
async function printSkillsHelp() {
|
|
2284
2284
|
let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
|
|
2285
2285
|
try {
|
|
2286
|
-
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-
|
|
2286
|
+
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-hYUl-Fln.mjs').then(function (n) { return n.as; });
|
|
2287
2287
|
browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
|
|
2288
2288
|
} catch {
|
|
2289
2289
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { n as resolveProjectRoot, M as workflowSteps, D as setWorkflowEnabled, I as isWorkflowEnabled, E as removeWorkflow, B as getWorkflow, H as listWorkflows, F as saveWorkflow, G as rawWorkflow } from './run-
|
|
2
|
+
import { n as resolveProjectRoot, M as workflowSteps, D as setWorkflowEnabled, I as isWorkflowEnabled, E as removeWorkflow, B as getWorkflow, H as listWorkflows, F as saveWorkflow, G as rawWorkflow } from './run-hYUl-Fln.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
5
5
|
import 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { n as resolveProjectRoot, x as searchIssues, w as listIssues, p as resumeIssue, q as pauseIssue, t as addComment, u as updateIssue, o as getIssue, y as isVisibleTo, L as summarize, v as addIssue } from './run-
|
|
4
|
+
import { n as resolveProjectRoot, x as searchIssues, w as listIssues, p as resumeIssue, q as pauseIssue, t as addComment, u as updateIssue, o as getIssue, y as isVisibleTo, L as summarize, v as addIssue } from './run-hYUl-Fln.mjs';
|
|
5
5
|
import 'os';
|
|
6
6
|
import 'fs/promises';
|
|
7
7
|
import 'fs';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-
|
|
3
|
+
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-YPQSZ4Qx.mjs';
|
|
4
4
|
import { execSync } from 'node:child_process';
|
|
5
|
-
import { u as updateIssue, t as addComment, v as addIssue, k as shortId } from './run-
|
|
5
|
+
import { u as updateIssue, t as addComment, v as addIssue, k as shortId } from './run-hYUl-Fln.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import fs__default from 'fs';
|
|
3
3
|
import { resolve, join, relative } from 'path';
|
|
4
|
-
import { T as parseFrontmatter, U as getSkillsServer, V as getSkillsWorkspaceName, W as getSkillsCollectionName, X as fetchWithTimeout, Y as searchSkills, Z as SKILLS_DIR, _ as getSkillInfo, $ as downloadSkillFile, a0 as listSkillFiles } from './run-
|
|
4
|
+
import { T as parseFrontmatter, U as getSkillsServer, V as getSkillsWorkspaceName, W as getSkillsCollectionName, X as fetchWithTimeout, Y as searchSkills, Z as SKILLS_DIR, _ as getSkillInfo, $ as downloadSkillFile, a0 as listSkillFiles } from './run-hYUl-Fln.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -58,7 +58,7 @@ async function serviceExpose(args) {
|
|
|
58
58
|
process.exit(1);
|
|
59
59
|
}
|
|
60
60
|
if (foreground) {
|
|
61
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
61
|
+
const { runFrpcTunnel } = await import('./frpc-CLQB-GM1.mjs');
|
|
62
62
|
await runFrpcTunnel(name, ports, void 0, {
|
|
63
63
|
group,
|
|
64
64
|
groupKey,
|
|
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
|
|
|
68
68
|
});
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
71
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
72
72
|
const { server, machine } = await connectAndGetMachine();
|
|
73
73
|
try {
|
|
74
74
|
const status = await machine.tunnelStart({
|
|
@@ -90,7 +90,7 @@ async function serviceExpose(args) {
|
|
|
90
90
|
console.log(` port ${port}: ${url}`);
|
|
91
91
|
}
|
|
92
92
|
if (process.env.SVAMP_SESSION_ID) {
|
|
93
|
-
const { autoAddSessionLink } = await import('./agentCommands-
|
|
93
|
+
const { autoAddSessionLink } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
94
94
|
let added = 0;
|
|
95
95
|
for (const [port, url] of urlEntries) {
|
|
96
96
|
const label = urlEntries.length > 1 ? `${name}:${port}` : name;
|
|
@@ -136,7 +136,7 @@ async function serviceServe(args) {
|
|
|
136
136
|
};
|
|
137
137
|
process.on("SIGINT", cleanup);
|
|
138
138
|
process.on("SIGTERM", cleanup);
|
|
139
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
139
|
+
const { runFrpcTunnel } = await import('./frpc-CLQB-GM1.mjs');
|
|
140
140
|
await runFrpcTunnel(name, [caddyPort]);
|
|
141
141
|
} catch (err) {
|
|
142
142
|
console.error(`Error serving directory: ${err.message}`);
|
|
@@ -145,7 +145,7 @@ async function serviceServe(args) {
|
|
|
145
145
|
}
|
|
146
146
|
async function serviceList(_args) {
|
|
147
147
|
try {
|
|
148
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
148
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
149
149
|
const { server, machine } = await connectAndGetMachine();
|
|
150
150
|
try {
|
|
151
151
|
const tunnels = await machine.tunnelList({});
|
|
@@ -185,7 +185,7 @@ async function serviceDelete(args) {
|
|
|
185
185
|
process.exit(1);
|
|
186
186
|
}
|
|
187
187
|
try {
|
|
188
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
188
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
189
189
|
const { server, machine } = await connectAndGetMachine();
|
|
190
190
|
try {
|
|
191
191
|
await machine.tunnelStop({ name });
|
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
3
|
import { basename, resolve, join, isAbsolute } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
-
import { a2 as formatHandle, a3 as normalizeAllowedUser, a4 as loadSecurityContextConfig, a5 as resolveSecurityContext, a6 as buildSecurityContextFromFlags, a7 as mergeSecurityContexts, c as connectToHypha, a8 as buildSessionShareUrl, a9 as computeOutboundHop, k as shortId, aa as registerAwaitingReply, ab as buildMachineShareUrl, ac as parseHandle, ad as handleMatchesMetadata } from './run-
|
|
5
|
+
import { a2 as formatHandle, a3 as normalizeAllowedUser, a4 as loadSecurityContextConfig, a5 as resolveSecurityContext, a6 as buildSecurityContextFromFlags, a7 as mergeSecurityContexts, c as connectToHypha, a8 as buildSessionShareUrl, a9 as computeOutboundHop, k as shortId, aa as registerAwaitingReply, ab as buildMachineShareUrl, ac as parseHandle, ad as handleMatchesMetadata } from './run-hYUl-Fln.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync } from 'fs';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
|
-
import { connectAndGetMachine } from './commands-
|
|
3
|
+
import { connectAndGetMachine } from './commands-YPQSZ4Qx.mjs';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'node:child_process';
|
|
6
6
|
import 'node:path';
|
|
7
7
|
import 'node:os';
|
|
8
|
-
import './run-
|
|
8
|
+
import './run-hYUl-Fln.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
-
import { c as connectToHypha } from './run-
|
|
5
|
-
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-
|
|
4
|
+
import { c as connectToHypha } from './run-hYUl-Fln.mjs';
|
|
5
|
+
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-DuLXaoGP.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -4,7 +4,7 @@ import { mkdirSync, writeFileSync, unlinkSync, existsSync, chmodSync, readFileSy
|
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir, platform, arch } from 'os';
|
|
6
6
|
import { randomUUID, createHash } from 'crypto';
|
|
7
|
-
import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-
|
|
7
|
+
import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-hYUl-Fln.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a1 as resolveModel, ae as describeMisconfiguration, af as buildMachineDeps } from './run-
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { a1 as resolveModel, ae as describeMisconfiguration, af as buildMachineDeps } from './run-hYUl-Fln.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-C0qzprWp.mjs';
|
|
3
3
|
import { WebSocket } from 'ws';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import 'os';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-
|
|
1
|
+
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn, exec as exec$1 } from 'node:child_process';
|
|
2
2
|
import { promisify } from 'node:util';
|
|
3
3
|
|
|
4
|
-
const PINNED_CLAUDE_CODE_VERSION = "2.1.
|
|
4
|
+
const PINNED_CLAUDE_CODE_VERSION = "2.1.206";
|
|
5
5
|
const exec = promisify(exec$1);
|
|
6
6
|
let _reconcile = null;
|
|
7
7
|
function beginClaudeVersionReconcile(log) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as resolveProjectRoot, u as updateIssue, o as getIssue, p as resumeIssue, q as pauseIssue, t as addComment, v as addIssue, w as listIssues, x as searchIssues, y as isVisibleTo } from './run-
|
|
1
|
+
import { n as resolveProjectRoot, u as updateIssue, o as getIssue, p as resumeIssue, q as pauseIssue, t as addComment, v as addIssue, w as listIssues, x as searchIssues, y as isVisibleTo } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as resolveProjectRoot, z as getRun, A as listRuns, B as getWorkflow, C as runWorkflow, D as setWorkflowEnabled, E as removeWorkflow, F as saveWorkflow, G as rawWorkflow, H as listWorkflows } from './run-
|
|
1
|
+
import { n as resolveProjectRoot, z as getRun, A as listRuns, B as getWorkflow, C as runWorkflow, D as setWorkflowEnabled, E as removeWorkflow, F as saveWorkflow, G as rawWorkflow, H as listWorkflows } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ag as applyClaudeProxyEnv, ah as composeSessionId, ai as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, aj as generateHookSettings } from './run-
|
|
1
|
+
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ag as applyClaudeProxyEnv, ah as composeSessionId, ai as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, aj as generateHookSettings } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import { resolve, join } from 'node:path';
|
|
4
4
|
import { existsSync, readFileSync, watch } from 'node:fs';
|
|
@@ -2985,7 +2985,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
|
|
|
2985
2985
|
const tunnels = handlers.tunnels;
|
|
2986
2986
|
if (!tunnels) throw new Error("Tunnel management not available");
|
|
2987
2987
|
if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
|
|
2988
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
2988
|
+
const { FrpcTunnel } = await import('./frpc-CLQB-GM1.mjs');
|
|
2989
2989
|
const tunnel = new FrpcTunnel({
|
|
2990
2990
|
name: params.name,
|
|
2991
2991
|
ports: params.ports,
|
|
@@ -3452,7 +3452,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
3452
3452
|
}
|
|
3453
3453
|
const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
|
|
3454
3454
|
const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
|
|
3455
|
-
const { toolsForRole } = await import('./sideband-
|
|
3455
|
+
const { toolsForRole } = await import('./sideband-C0qzprWp.mjs');
|
|
3456
3456
|
const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
|
|
3457
3457
|
return fmt(r2);
|
|
3458
3458
|
}
|
|
@@ -3551,7 +3551,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
3551
3551
|
if (r.error || !r.sender) return { error: r.error || "unauthorized" };
|
|
3552
3552
|
const callId = "call_" + Math.random().toString(16).slice(2, 12);
|
|
3553
3553
|
const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
|
|
3554
|
-
const { queryCore } = await import('./commands-
|
|
3554
|
+
const { queryCore } = await import('./commands-YPQSZ4Qx.mjs');
|
|
3555
3555
|
const timeout = c.reply?.timeout_sec || 120;
|
|
3556
3556
|
let result;
|
|
3557
3557
|
try {
|
|
@@ -3813,14 +3813,19 @@ function registerAwaitingReply(sessionId, threadId, now = Date.now()) {
|
|
|
3813
3813
|
}
|
|
3814
3814
|
writeAwaiting(sessionId, map);
|
|
3815
3815
|
}
|
|
3816
|
-
function
|
|
3816
|
+
function peekAwaitingReply(sessionId, threadId, now = Date.now()) {
|
|
3817
3817
|
if (!sessionId || !threadId) return false;
|
|
3818
3818
|
const map = readAwaiting(sessionId);
|
|
3819
3819
|
const at = map[threadId];
|
|
3820
3820
|
if (typeof at !== "number") return false;
|
|
3821
|
+
return now - at <= AWAIT_TTL_MS;
|
|
3822
|
+
}
|
|
3823
|
+
function consumeAwaitingReply(sessionId, threadId) {
|
|
3824
|
+
if (!sessionId || !threadId) return;
|
|
3825
|
+
const map = readAwaiting(sessionId);
|
|
3826
|
+
if (!(threadId in map)) return;
|
|
3821
3827
|
delete map[threadId];
|
|
3822
3828
|
writeAwaiting(sessionId, map);
|
|
3823
|
-
return now - at <= AWAIT_TTL_MS;
|
|
3824
3829
|
}
|
|
3825
3830
|
function computeOutboundHop(sessionId) {
|
|
3826
3831
|
if (!sessionId) return { hopCount: 0, fromInboxTurn: false };
|
|
@@ -4177,6 +4182,26 @@ function isStructuredMessage(msg) {
|
|
|
4177
4182
|
function escapeXml(s) {
|
|
4178
4183
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
4179
4184
|
}
|
|
4185
|
+
function sanitizeInboundInboxMessage(message, opts) {
|
|
4186
|
+
if (opts.trusted) return message;
|
|
4187
|
+
const email = opts.callerEmail;
|
|
4188
|
+
return {
|
|
4189
|
+
...message,
|
|
4190
|
+
// Attribute to the SERVER-KNOWN identity, never the caller's self-asserted `from`.
|
|
4191
|
+
// An authenticated collaborator is an honest verified human (`user:<email>` → may
|
|
4192
|
+
// wake, attributed to THEM not the owner); an anonymous caller cannot claim human.
|
|
4193
|
+
from: email ? `user:${email}` : "agent:anonymous",
|
|
4194
|
+
verified: !!email,
|
|
4195
|
+
// Strip self-asserted channel provenance + async-reply routing a direct caller
|
|
4196
|
+
// has no business setting (legit channel ingress goes via the trusted channel path).
|
|
4197
|
+
channel: void 0,
|
|
4198
|
+
channelId: void 0,
|
|
4199
|
+
correlationId: void 0,
|
|
4200
|
+
// Escape the body so a nested </svamp-message> can't break out and forge a second
|
|
4201
|
+
// attributed envelope in the agent's transcript.
|
|
4202
|
+
body: xmlEscape(String(message.body ?? "").slice(0, 16 * 1024))
|
|
4203
|
+
};
|
|
4204
|
+
}
|
|
4180
4205
|
function formatInboxMessageXml(msg) {
|
|
4181
4206
|
if (!isStructuredMessage(msg)) return msg.body;
|
|
4182
4207
|
const attrs = [`message-id="${escapeXml(msg.messageId)}"`];
|
|
@@ -5305,12 +5330,14 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
|
|
|
5305
5330
|
// ── Inbox ──
|
|
5306
5331
|
sendInboxMessage: async (message, context) => {
|
|
5307
5332
|
authorizeRequest(context, metadata.sharing, "interact");
|
|
5308
|
-
|
|
5333
|
+
const trusted = getEffectiveRole(context, metadata.sharing) === "admin";
|
|
5334
|
+
const msg = sanitizeInboundInboxMessage(message, { trusted, callerEmail: context?.user?.email });
|
|
5335
|
+
inbox.push(msg);
|
|
5309
5336
|
while (inbox.length > INBOX_MAX) inbox.shift();
|
|
5310
5337
|
syncInboxToMetadata();
|
|
5311
|
-
callbacks.onInboxMessage?.(
|
|
5312
|
-
notifyListeners({ type: "inbox-update", sessionId, message });
|
|
5313
|
-
return { success: true, messageId:
|
|
5338
|
+
callbacks.onInboxMessage?.(msg);
|
|
5339
|
+
notifyListeners({ type: "inbox-update", sessionId, message: msg });
|
|
5340
|
+
return { success: true, messageId: msg.messageId };
|
|
5314
5341
|
},
|
|
5315
5342
|
getInbox: async (opts, context) => {
|
|
5316
5343
|
authorizeRequest(context, metadata.sharing, "view");
|
|
@@ -6279,12 +6306,10 @@ async function registerDebugService(server, machineId, deps) {
|
|
|
6279
6306
|
// require_context: true → Hypha injects the caller context as the last arg of every
|
|
6280
6307
|
// method, which the authorize() gate below enforces. 'unlisted' only hides discovery.
|
|
6281
6308
|
config: { visibility: "unlisted", require_context: true },
|
|
6282
|
-
healthCheck: async () =>
|
|
6283
|
-
|
|
6284
|
-
machineId,
|
|
6285
|
-
|
|
6286
|
-
timestamp: Date.now()
|
|
6287
|
-
}),
|
|
6309
|
+
healthCheck: async (context) => {
|
|
6310
|
+
authorize(context, "view");
|
|
6311
|
+
return { ok: true, machineId, uptime: process.uptime(), timestamp: Date.now() };
|
|
6312
|
+
},
|
|
6288
6313
|
getSessionStates: async (context) => {
|
|
6289
6314
|
authorize(context, "view");
|
|
6290
6315
|
const sessions = deps.getTrackedSessions();
|
|
@@ -10127,6 +10152,18 @@ var api = /*#__PURE__*/Object.freeze({
|
|
|
10127
10152
|
searchSkills: searchSkills
|
|
10128
10153
|
});
|
|
10129
10154
|
|
|
10155
|
+
function signalProcessTree(child, signal) {
|
|
10156
|
+
const pid = child.pid;
|
|
10157
|
+
if (pid === void 0) return;
|
|
10158
|
+
try {
|
|
10159
|
+
process.kill(-pid, signal);
|
|
10160
|
+
} catch {
|
|
10161
|
+
try {
|
|
10162
|
+
child.kill(signal);
|
|
10163
|
+
} catch {
|
|
10164
|
+
}
|
|
10165
|
+
}
|
|
10166
|
+
}
|
|
10130
10167
|
const DEFAULT_PROBE_INTERVAL_S = 10;
|
|
10131
10168
|
const DEFAULT_PROBE_TIMEOUT_S = 5;
|
|
10132
10169
|
const DEFAULT_PROBE_FAILURE_THRESHOLD = 3;
|
|
@@ -10458,7 +10495,13 @@ class ProcessSupervisor {
|
|
|
10458
10495
|
const child = spawn$1(spec.command, spec.args, {
|
|
10459
10496
|
cwd: spec.workdir,
|
|
10460
10497
|
env,
|
|
10461
|
-
stdio: ["ignore", "pipe", "pipe"]
|
|
10498
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
10499
|
+
// #0316: run each supervised process in its OWN process group (setsid) so a
|
|
10500
|
+
// shell-wrapping spec (`bash -c …`, `npm start`) can be torn down with the whole
|
|
10501
|
+
// tree — otherwise stop/restart/TTL only kills the direct PID and leaks
|
|
10502
|
+
// grandchildren. Kills below signal the group (negative PID). POSIX only; on
|
|
10503
|
+
// Windows `detached` just decouples the console and the group-kill falls back.
|
|
10504
|
+
detached: process.platform !== "win32"
|
|
10462
10505
|
});
|
|
10463
10506
|
entry.child = child;
|
|
10464
10507
|
state.status = "running";
|
|
@@ -10620,10 +10663,7 @@ class ProcessSupervisor {
|
|
|
10620
10663
|
console.warn(`[SUPERVISOR] Probe failed for '${entry.spec.name}' \u2014 killing to trigger restart`);
|
|
10621
10664
|
entry.state.consecutiveProbeFailures = 0;
|
|
10622
10665
|
if (entry.child) {
|
|
10623
|
-
|
|
10624
|
-
entry.child.kill("SIGTERM");
|
|
10625
|
-
} catch {
|
|
10626
|
-
}
|
|
10666
|
+
signalProcessTree(entry.child, "SIGTERM");
|
|
10627
10667
|
}
|
|
10628
10668
|
}
|
|
10629
10669
|
// ── TTL ───────────────────────────────────────────────────────────────────
|
|
@@ -10668,15 +10708,9 @@ class ProcessSupervisor {
|
|
|
10668
10708
|
};
|
|
10669
10709
|
child.once("exit", done);
|
|
10670
10710
|
child.once("close", done);
|
|
10671
|
-
|
|
10672
|
-
child.kill("SIGTERM");
|
|
10673
|
-
} catch {
|
|
10674
|
-
}
|
|
10711
|
+
signalProcessTree(child, "SIGTERM");
|
|
10675
10712
|
forceKillTimer = setTimeout(() => {
|
|
10676
|
-
|
|
10677
|
-
child.kill("SIGKILL");
|
|
10678
|
-
} catch {
|
|
10679
|
-
}
|
|
10713
|
+
signalProcessTree(child, "SIGKILL");
|
|
10680
10714
|
hardDeadlineTimer = setTimeout(() => {
|
|
10681
10715
|
if (!resolved) {
|
|
10682
10716
|
resolved = true;
|
|
@@ -11379,6 +11413,9 @@ function fireIdleWorkflows(root, sessionId, deps = {}) {
|
|
|
11379
11413
|
}
|
|
11380
11414
|
|
|
11381
11415
|
const UNBOUNDED_LOOP_ITERATIONS = 1e6;
|
|
11416
|
+
function loopCancelledDuringVerify(current) {
|
|
11417
|
+
return !!current && (current.phase === "cancelled" || current.active === false);
|
|
11418
|
+
}
|
|
11382
11419
|
function backlogOraclePending(projectRoot, sessionId) {
|
|
11383
11420
|
const inScope = (i) => !sessionId || isVisibleTo(i, sessionId);
|
|
11384
11421
|
return listIssues(projectRoot).filter(inScope).filter((i) => i.status === "ready" || i.status === "in_progress").map((i) => ({ id: i.id }));
|
|
@@ -11506,7 +11543,7 @@ function computeSoftTurnCap(hardMax, cadence) {
|
|
|
11506
11543
|
return Math.ceil(hardMax / chunks);
|
|
11507
11544
|
}
|
|
11508
11545
|
const DEFAULT_LOOP_STUCK_CHECKPOINTS = 3;
|
|
11509
|
-
const DEFAULT_LOOP_MAX_AUTORESUMES =
|
|
11546
|
+
const DEFAULT_LOOP_MAX_AUTORESUMES = Number.POSITIVE_INFINITY;
|
|
11510
11547
|
const PROGRESS_HISTORY_CAP = 12;
|
|
11511
11548
|
function resolveStuckLimit(envValue) {
|
|
11512
11549
|
const n = Number(envValue);
|
|
@@ -11551,7 +11588,8 @@ function decideLoopContinuation(input) {
|
|
|
11551
11588
|
return { action: "continue", kind: "progress", consumeAutoResume: false, reason: `still making progress (${stuckCheckpoints}/${stuckLimit} stuck checkpoints)` };
|
|
11552
11589
|
}
|
|
11553
11590
|
if (autoResumes < maxAutoResumes) {
|
|
11554
|
-
|
|
11591
|
+
const label = Number.isFinite(maxAutoResumes) ? `auto-resume ${autoResumes + 1}/${maxAutoResumes}` : `auto-resume ${autoResumes + 1} (unbounded \u2014 bounded only by the cost/iteration ceiling)`;
|
|
11592
|
+
return { action: "continue", kind: "autoresume", consumeAutoResume: true, reason: `no progress across ${stuckCheckpoints} checkpoints \u2014 ${label}` };
|
|
11555
11593
|
}
|
|
11556
11594
|
const tail = `no progress across ${stuckCheckpoints} checkpoints; ${maxAutoResumes} auto-resume(s) exhausted`;
|
|
11557
11595
|
return { action: "stop", kind: "stuck", reason: input.stuckReason ? `${input.stuckReason} \u2014 ${tail}` : tail };
|
|
@@ -12523,9 +12561,17 @@ function classifyOptsForMessage(sessionId, message, ownerEmail) {
|
|
|
12523
12561
|
const fromVal = message.from || "";
|
|
12524
12562
|
const senderEmail = message.verified && fromVal.includes("@") ? fromVal.replace(/^user:/, "").toLowerCase() : void 0;
|
|
12525
12563
|
const self = !!(ownerEmail && senderEmail && senderEmail === String(ownerEmail).toLowerCase());
|
|
12526
|
-
const openThreadReply =
|
|
12564
|
+
const openThreadReply = peekAwaitingReply(sessionId, message.threadId);
|
|
12527
12565
|
return { self, openThreadReply };
|
|
12528
12566
|
}
|
|
12567
|
+
function classifyInboundForSession(sessionId, message, ownerEmail) {
|
|
12568
|
+
const opts = classifyOptsForMessage(sessionId, message, ownerEmail);
|
|
12569
|
+
const decision = classifyInbound(message, Date.now(), opts);
|
|
12570
|
+
if (opts.openThreadReply && decision.action === "wake") {
|
|
12571
|
+
consumeAwaitingReply(sessionId, message.threadId);
|
|
12572
|
+
}
|
|
12573
|
+
return decision;
|
|
12574
|
+
}
|
|
12529
12575
|
function writeGoalLoopState(directory, sessionId, state) {
|
|
12530
12576
|
try {
|
|
12531
12577
|
const dir = getLoopDir(directory, sessionId);
|
|
@@ -13403,7 +13449,7 @@ async function startDaemon(options) {
|
|
|
13403
13449
|
try {
|
|
13404
13450
|
const dir = loadSessionIndex()[sessionId]?.directory;
|
|
13405
13451
|
if (!dir) return;
|
|
13406
|
-
const { reconcileServiceLinks } = await import('./agentCommands-
|
|
13452
|
+
const { reconcileServiceLinks } = await import('./agentCommands-DYoNzX4K.mjs');
|
|
13407
13453
|
const configPath = getSvampConfigPath(dir, sessionId);
|
|
13408
13454
|
const config = readSvampConfig(configPath);
|
|
13409
13455
|
const entries = Array.from(urls.entries());
|
|
@@ -13421,7 +13467,7 @@ async function startDaemon(options) {
|
|
|
13421
13467
|
}
|
|
13422
13468
|
}
|
|
13423
13469
|
async function createExposedTunnel(spec) {
|
|
13424
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
13470
|
+
const { FrpcTunnel } = await import('./frpc-CLQB-GM1.mjs');
|
|
13425
13471
|
const tunnel = new FrpcTunnel({
|
|
13426
13472
|
name: spec.name,
|
|
13427
13473
|
ports: spec.ports,
|
|
@@ -13441,14 +13487,14 @@ async function startDaemon(options) {
|
|
|
13441
13487
|
return tunnel;
|
|
13442
13488
|
}
|
|
13443
13489
|
const tunnelRecreateState = /* @__PURE__ */ new Map();
|
|
13444
|
-
const { ServeManager } = await import('./serveManager-
|
|
13490
|
+
const { ServeManager } = await import('./serveManager-BK5OjhXU.mjs');
|
|
13445
13491
|
const serveManager = new ServeManager(SVAMP_HOME, (msg) => logger.log(`[SERVE] ${msg}`), hyphaServerUrl);
|
|
13446
13492
|
ensureAutoInstalledSkills(logger).catch(() => {
|
|
13447
13493
|
});
|
|
13448
13494
|
ensureAutoInstalledCommands(logger);
|
|
13449
13495
|
(async () => {
|
|
13450
13496
|
try {
|
|
13451
|
-
const { beginClaudeVersionReconcile } = await import('./pinnedClaudeCode-
|
|
13497
|
+
const { beginClaudeVersionReconcile } = await import('./pinnedClaudeCode-DuLXaoGP.mjs');
|
|
13452
13498
|
beginClaudeVersionReconcile((msg) => logger.log(msg));
|
|
13453
13499
|
} catch (e) {
|
|
13454
13500
|
logger.log(`[claude-version] check failed: ${e?.message || e}`);
|
|
@@ -14119,6 +14165,10 @@ ${parts.join("\n")}`);
|
|
|
14119
14165
|
log: (m) => logger.log(`[Session ${sessionId}] ${m}`)
|
|
14120
14166
|
}
|
|
14121
14167
|
);
|
|
14168
|
+
if (loopCancelledDuringVerify(readLoopState(directory, sessionId))) {
|
|
14169
|
+
logger.log(`[Session ${sessionId}] loop was cancelled during verification \u2014 not re-kicking (#0308)`);
|
|
14170
|
+
return;
|
|
14171
|
+
}
|
|
14122
14172
|
const ledger = ls.ledger;
|
|
14123
14173
|
const budget = ls.budget;
|
|
14124
14174
|
const progress_history = ls.progress_history;
|
|
@@ -14167,7 +14217,9 @@ ${parts.join("\n")}`);
|
|
|
14167
14217
|
max_iterations: ls.max_iterations,
|
|
14168
14218
|
budget,
|
|
14169
14219
|
started_at: startedAt,
|
|
14170
|
-
|
|
14220
|
+
// #0319: a PROGRESSING loop resets its hold counter so the evaluator-guided re-kick
|
|
14221
|
+
// mechanism re-engages fresh (it's making headway, not stuck); an auto-resume keeps it.
|
|
14222
|
+
holds: decision.kind === "progress" ? 0 : holds,
|
|
14171
14223
|
ledger,
|
|
14172
14224
|
progress_history,
|
|
14173
14225
|
auto_resumes: nextAuto
|
|
@@ -15433,7 +15485,7 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
15433
15485
|
},
|
|
15434
15486
|
onInboxMessage: (message) => {
|
|
15435
15487
|
if (trackedSession?.stopped) return;
|
|
15436
|
-
const decision =
|
|
15488
|
+
const decision = classifyInboundForSession(sessionId, message, sessionMetadata?.sharing?.owner);
|
|
15437
15489
|
logger.log(`[Session ${sessionId}] Inbox message (urgency: ${message.urgency || "normal"}, hop: ${message.hopCount ?? 0}, from: ${message.from || "unknown"}) \u2192 ${decision.action} (${decision.reason})`);
|
|
15438
15490
|
if (decision.breakerTripped) {
|
|
15439
15491
|
logger.error(`[Session ${sessionId}] Inbox circuit breaker TRIPPED \u2014 cross-agent wake rate too high; auto-waking paused.`);
|
|
@@ -15529,11 +15581,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
15529
15581
|
});
|
|
15530
15582
|
},
|
|
15531
15583
|
onIssue: async (params) => {
|
|
15532
|
-
const { issueRpc } = await import('./rpc-
|
|
15584
|
+
const { issueRpc } = await import('./rpc-0HSLhpCb.mjs');
|
|
15533
15585
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
15534
15586
|
},
|
|
15535
15587
|
onWorkflow: async (params) => {
|
|
15536
|
-
const { workflowRpc } = await import('./rpc-
|
|
15588
|
+
const { workflowRpc } = await import('./rpc-BB-AxQa_.mjs');
|
|
15537
15589
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
15538
15590
|
},
|
|
15539
15591
|
onRipgrep: async (args, cwd) => {
|
|
@@ -15942,7 +15994,7 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
15942
15994
|
},
|
|
15943
15995
|
onInboxMessage: (message) => {
|
|
15944
15996
|
if (acpStopped) return;
|
|
15945
|
-
const decision =
|
|
15997
|
+
const decision = classifyInboundForSession(sessionId, message, sessionMetadata?.sharing?.owner);
|
|
15946
15998
|
logger.log(`[${agentName} Session ${sessionId}] Inbox message (urgency: ${message.urgency || "normal"}, hop: ${message.hopCount ?? 0}, from: ${message.from || "unknown"}) \u2192 ${decision.action} (${decision.reason})`);
|
|
15947
15999
|
if (decision.breakerTripped) {
|
|
15948
16000
|
logger.error(`[${agentName} Session ${sessionId}] Inbox circuit breaker TRIPPED \u2014 auto-waking paused.`);
|
|
@@ -16069,11 +16121,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16069
16121
|
});
|
|
16070
16122
|
},
|
|
16071
16123
|
onIssue: async (params) => {
|
|
16072
|
-
const { issueRpc } = await import('./rpc-
|
|
16124
|
+
const { issueRpc } = await import('./rpc-0HSLhpCb.mjs');
|
|
16073
16125
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
16074
16126
|
},
|
|
16075
16127
|
onWorkflow: async (params) => {
|
|
16076
|
-
const { workflowRpc } = await import('./rpc-
|
|
16128
|
+
const { workflowRpc } = await import('./rpc-BB-AxQa_.mjs');
|
|
16077
16129
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
16078
16130
|
},
|
|
16079
16131
|
onRipgrep: async (args, cwd) => {
|
|
@@ -16835,7 +16887,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
16835
16887
|
}
|
|
16836
16888
|
if (persistedSessions.length > 0) {
|
|
16837
16889
|
try {
|
|
16838
|
-
const { awaitClaudeVersionReady } = await import('./pinnedClaudeCode-
|
|
16890
|
+
const { awaitClaudeVersionReady } = await import('./pinnedClaudeCode-DuLXaoGP.mjs');
|
|
16839
16891
|
await awaitClaudeVersionReady();
|
|
16840
16892
|
} catch {
|
|
16841
16893
|
}
|
|
@@ -17032,7 +17084,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
17032
17084
|
const PING_TIMEOUT_MS = 15e3;
|
|
17033
17085
|
const POST_RECONNECT_GRACE_MS = 2e4;
|
|
17034
17086
|
const RECONNECT_JITTER_MS = 2500;
|
|
17035
|
-
const { WorkflowScheduler } = await import('./scheduler-
|
|
17087
|
+
const { WorkflowScheduler } = await import('./scheduler-DaFydJPf.mjs');
|
|
17036
17088
|
const workflowScheduler = new WorkflowScheduler({
|
|
17037
17089
|
projectRoots: () => {
|
|
17038
17090
|
const dirs = /* @__PURE__ */ new Set();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as resolveProjectRoot, H as listWorkflows, I as isWorkflowEnabled, J as workflowCrons, C as runWorkflow, K as cronMatches } from './run-
|
|
1
|
+
import { n as resolveProjectRoot, H as listWorkflows, I as isWorkflowEnabled, J as workflowCrons, C as runWorkflow, K as cronMatches } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -54,7 +54,7 @@ async function handleServeCommand() {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
async function serveAdd(args, machineId) {
|
|
57
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
57
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
58
58
|
const pos = positionalArgs(args);
|
|
59
59
|
const name = pos[0];
|
|
60
60
|
if (!name) {
|
|
@@ -93,7 +93,7 @@ async function serveAdd(args, machineId) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
async function serveApply(args, machineId) {
|
|
96
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
96
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
97
97
|
const fs = await import('fs');
|
|
98
98
|
const yaml = await import('yaml');
|
|
99
99
|
const file = positionalArgs(args)[0];
|
|
@@ -182,7 +182,7 @@ async function serveApply(args, machineId) {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
async function serveRemove(args, machineId) {
|
|
185
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
185
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
186
186
|
const pos = positionalArgs(args);
|
|
187
187
|
const name = pos[0];
|
|
188
188
|
if (!name) {
|
|
@@ -202,7 +202,7 @@ async function serveRemove(args, machineId) {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
async function serveList(args, machineId) {
|
|
205
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
205
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
206
206
|
const all = hasFlag(args, "--all", "-a");
|
|
207
207
|
const json = hasFlag(args, "--json");
|
|
208
208
|
const sessionId = getFlag(args, "--session");
|
|
@@ -235,7 +235,7 @@ async function serveList(args, machineId) {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
async function serveInfo(machineId) {
|
|
238
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
238
|
+
const { connectAndGetMachine } = await import('./commands-YPQSZ4Qx.mjs');
|
|
239
239
|
const { machine, server } = await connectAndGetMachine(machineId);
|
|
240
240
|
try {
|
|
241
241
|
const info = await machine.serveInfo();
|
|
@@ -4,7 +4,7 @@ import * as fs from 'fs';
|
|
|
4
4
|
import * as http from 'http';
|
|
5
5
|
import * as net from 'net';
|
|
6
6
|
import * as path from 'path';
|
|
7
|
-
import { l as getHyphaServerUrl, S as ServeAuth, m as hasCookieToken } from './run-
|
|
7
|
+
import { l as getHyphaServerUrl, S as ServeAuth, m as hasCookieToken } from './run-hYUl-Fln.mjs';
|
|
8
8
|
import 'os';
|
|
9
9
|
import 'fs/promises';
|
|
10
10
|
import 'url';
|
|
@@ -751,7 +751,7 @@ class ServeManager {
|
|
|
751
751
|
const mount = this.mounts.get(mountName);
|
|
752
752
|
const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, buildLinkSubdomain(subdomainSafe, mount.linkToken)]]) : void 0;
|
|
753
753
|
try {
|
|
754
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
754
|
+
const { FrpcTunnel } = await import('./frpc-CLQB-GM1.mjs');
|
|
755
755
|
let tunnel;
|
|
756
756
|
tunnel = new FrpcTunnel({
|
|
757
757
|
name: tunnelName,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as READ_ONLY_TOOLS, N as loadMachineContext, O as buildMachineInstructions, P as machineToolsForRole, Q as buildMachineTools } from './run-
|
|
1
|
+
import { R as READ_ONLY_TOOLS, N as loadMachineContext, O as buildMachineInstructions, P as machineToolsForRole, Q as buildMachineTools } from './run-hYUl-Fln.mjs';
|
|
2
2
|
import 'node:child_process';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|