svamp-cli 0.2.284 → 0.2.289
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/{adminCommands-DPZaByla.mjs → adminCommands-C7-LgldE.mjs} +22 -3
- package/dist/{agentCommands-B23M4vER.mjs → agentCommands-B7HQJo3X.mjs} +5 -5
- package/dist/{auth-DPZSnISj.mjs → auth-BB_4_6P7.mjs} +1 -1
- package/dist/{cli-D8tJd71c.mjs → cli-BH5LIMPI.mjs} +72 -69
- package/dist/cli.mjs +2 -2
- package/dist/{commands-Cp8G-iuw.mjs → commands-BNxsrqSl.mjs} +2 -2
- package/dist/{commands-BABblJRp.mjs → commands-BaVcBOKA.mjs} +1 -1
- package/dist/{commands-DqsoW-S0.mjs → commands-Bb-RzoKB.mjs} +1 -1
- package/dist/{commands-DDf0W30g.mjs → commands-BsiQdwUs.mjs} +2 -2
- package/dist/{commands-BHO7rzSh.mjs → commands-CZSPOqtd.mjs} +1 -1
- package/dist/{commands-CDFhSKgn.mjs → commands-Cf9KT-Ob.mjs} +2 -2
- package/dist/{commands-BqaOHWym.mjs → commands-DFSD7jBH.mjs} +8 -8
- package/dist/{fleet-BxhHefua.mjs → fleet-2c-iNucb.mjs} +1 -1
- package/dist/{frpc-BsR6aGNJ.mjs → frpc-CuvdlU0g.mjs} +1 -1
- package/dist/{headlessCli-B-aMhdKx.mjs → headlessCli-CftEZbxm.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{notifyCommands-CfnthGpX.mjs → notifyCommands-1q8COUDd.mjs} +1 -1
- package/dist/{package-Br4fCS7J.mjs → package-DrTlgNWY.mjs} +1 -1
- package/dist/{rpc-BjrKqEib.mjs → rpc-C9U0Ho27.mjs} +1 -1
- package/dist/{rpc-B5BRaVsS.mjs → rpc-DMpJef5v.mjs} +1 -1
- package/dist/{run-CRTzyKbn.mjs → run-BNeZiySO.mjs} +61 -19
- package/dist/{run-DWJenrBe.mjs → run-CCENV09o.mjs} +1 -1
- package/dist/{scheduler-QYMtbUDe.mjs → scheduler-CAUwniWA.mjs} +1 -1
- package/dist/{serveCommands-Cj3MLbZb.mjs → serveCommands-XJVDS4zB.mjs} +5 -5
- package/dist/{sideband-CKmZxwY6.mjs → sideband-DB4Uipz9.mjs} +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as connectToHypha, K as computeCollectionConfigUpdate, L as SYSTEM_COLLECTION_CONFIG } from './run-
|
|
1
|
+
import { c as connectToHypha, K as computeCollectionConfigUpdate, L as SYSTEM_COLLECTION_CONFIG } from './run-BNeZiySO.mjs';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
@@ -157,14 +157,33 @@ async function createSystemCollections() {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
+
async function listAllChildren(am, parentId) {
|
|
161
|
+
const PAGE = 100;
|
|
162
|
+
const all = [];
|
|
163
|
+
const seen = /* @__PURE__ */ new Set();
|
|
164
|
+
for (let offset = 0; ; offset += PAGE) {
|
|
165
|
+
const page = await am.list({ parent_id: parentId, offset, limit: PAGE, _rkwargs: true });
|
|
166
|
+
if (!Array.isArray(page) || page.length === 0) break;
|
|
167
|
+
let fresh = 0;
|
|
168
|
+
for (const c of page) {
|
|
169
|
+
const k = String(c?.id ?? c?.manifest?.id ?? c?.alias ?? `${offset}:${fresh}`);
|
|
170
|
+
if (seen.has(k)) continue;
|
|
171
|
+
seen.add(k);
|
|
172
|
+
all.push(c);
|
|
173
|
+
fresh++;
|
|
174
|
+
}
|
|
175
|
+
if (page.length < PAGE || fresh === 0) break;
|
|
176
|
+
}
|
|
177
|
+
return all;
|
|
178
|
+
}
|
|
160
179
|
async function migrateChildren(am, fromId, toId) {
|
|
161
|
-
const children = await am
|
|
180
|
+
const children = await listAllChildren(am, fromId);
|
|
162
181
|
if (!Array.isArray(children) || children.length === 0) {
|
|
163
182
|
return { total: 0, copied: 0, alreadyPresent: 0, failed: 0, errors: [] };
|
|
164
183
|
}
|
|
165
184
|
let existing = [];
|
|
166
185
|
try {
|
|
167
|
-
existing = await am
|
|
186
|
+
existing = await listAllChildren(am, toId);
|
|
168
187
|
} catch {
|
|
169
188
|
}
|
|
170
189
|
const keyOf = (c) => String(c?.manifest?.id ?? c?.alias ?? "");
|
|
@@ -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 { i as shortId } from './run-
|
|
5
|
+
import { i as shortId } from './run-BNeZiySO.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -96,7 +96,7 @@ async function sessionSetTitle(title) {
|
|
|
96
96
|
}
|
|
97
97
|
async function sessionSetProjectDescription(description) {
|
|
98
98
|
const dir = process.cwd();
|
|
99
|
-
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-
|
|
99
|
+
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.ap; });
|
|
100
100
|
const desc = sanitizeDescription(description, 240);
|
|
101
101
|
if (!desc) {
|
|
102
102
|
console.error("Project description is empty.");
|
|
@@ -343,7 +343,7 @@ async function sessionBroadcast(action, args) {
|
|
|
343
343
|
console.log(`Broadcast sent: ${action}`);
|
|
344
344
|
}
|
|
345
345
|
async function connectToMachineService() {
|
|
346
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
346
|
+
const { connectAndGetMachine } = await import('./commands-BaVcBOKA.mjs');
|
|
347
347
|
return connectAndGetMachine();
|
|
348
348
|
}
|
|
349
349
|
function buildInboxMessage(args) {
|
|
@@ -421,7 +421,7 @@ async function inboxSend(targetSessionId, opts) {
|
|
|
421
421
|
console.error("Message body is required.");
|
|
422
422
|
process.exit(1);
|
|
423
423
|
}
|
|
424
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
424
|
+
const { connectAndResolveSession } = await import('./commands-BaVcBOKA.mjs');
|
|
425
425
|
let server;
|
|
426
426
|
try {
|
|
427
427
|
const { targetId, messageId } = await inboxSendCore(
|
|
@@ -475,7 +475,7 @@ async function inboxReply(messageId, body) {
|
|
|
475
475
|
console.error("SVAMP_SESSION_ID not set. This command must be run inside a Svamp session.");
|
|
476
476
|
process.exit(1);
|
|
477
477
|
}
|
|
478
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
478
|
+
const { connectAndResolveSession } = await import('./commands-BaVcBOKA.mjs');
|
|
479
479
|
const { server: localServer, machine: localMachine } = await connectToMachineService();
|
|
480
480
|
let localDisconnected = false;
|
|
481
481
|
const disconnectLocal = async () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as clearStopMarker, a2 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-
|
|
1
|
+
import { a1 as clearStopMarker, a2 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-BNeZiySO.mjs';
|
|
2
2
|
import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
|
|
3
3
|
|
|
4
4
|
function flushAndExit(code) {
|
|
@@ -33,7 +33,7 @@ const subcommand = args[0];
|
|
|
33
33
|
let daemonSubcommand = args[1];
|
|
34
34
|
async function main() {
|
|
35
35
|
try {
|
|
36
|
-
const { getLoadedConfig } = await import('./run-
|
|
36
|
+
const { getLoadedConfig } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.am; });
|
|
37
37
|
getLoadedConfig();
|
|
38
38
|
} catch {
|
|
39
39
|
}
|
|
@@ -52,7 +52,7 @@ async function main() {
|
|
|
52
52
|
}
|
|
53
53
|
const whenIdle = args.includes("--when-idle");
|
|
54
54
|
const force = args.includes("--force");
|
|
55
|
-
const mod = await import('./run-
|
|
55
|
+
const mod = await import('./run-BNeZiySO.mjs').then(function (n) { return n.aw; });
|
|
56
56
|
if (whenIdle && !force) {
|
|
57
57
|
if (mod.isDaemonAlive()) {
|
|
58
58
|
mod.writePendingRestart({ reason: "svamp daemon restart --when-idle" });
|
|
@@ -356,7 +356,7 @@ async function main() {
|
|
|
356
356
|
console.error("svamp service: Service commands are not available in sandboxed sessions.");
|
|
357
357
|
process.exit(1);
|
|
358
358
|
}
|
|
359
|
-
const { handleServiceCommand } = await import('./commands-
|
|
359
|
+
const { handleServiceCommand } = await import('./commands-DFSD7jBH.mjs');
|
|
360
360
|
await handleServiceCommand();
|
|
361
361
|
} else if (subcommand === "serve") {
|
|
362
362
|
const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
|
|
@@ -364,7 +364,7 @@ async function main() {
|
|
|
364
364
|
console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
|
|
365
365
|
process.exit(1);
|
|
366
366
|
}
|
|
367
|
-
const { handleServeCommand } = await import('./serveCommands-
|
|
367
|
+
const { handleServeCommand } = await import('./serveCommands-XJVDS4zB.mjs');
|
|
368
368
|
await handleServeCommand();
|
|
369
369
|
process.exit(0);
|
|
370
370
|
} else if (subcommand === "process" || subcommand === "proc") {
|
|
@@ -373,7 +373,7 @@ async function main() {
|
|
|
373
373
|
console.error("svamp process: Process commands are not available in sandboxed sessions.");
|
|
374
374
|
process.exit(1);
|
|
375
375
|
}
|
|
376
|
-
const { processCommand } = await import('./commands-
|
|
376
|
+
const { processCommand } = await import('./commands-BsiQdwUs.mjs');
|
|
377
377
|
let machineId;
|
|
378
378
|
const processArgs = args.slice(1);
|
|
379
379
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -387,22 +387,22 @@ async function main() {
|
|
|
387
387
|
}), machineId);
|
|
388
388
|
process.exit(0);
|
|
389
389
|
} else if (subcommand === "issue" || subcommand === "issues") {
|
|
390
|
-
const { issueCommand } = await import('./commands-
|
|
390
|
+
const { issueCommand } = await import('./commands-Cf9KT-Ob.mjs');
|
|
391
391
|
await issueCommand(args.slice(1));
|
|
392
392
|
await flushAndExit(0);
|
|
393
393
|
} else if (subcommand === "workflow" || subcommand === "workflows") {
|
|
394
|
-
const { workflowCommand } = await import('./commands-
|
|
394
|
+
const { workflowCommand } = await import('./commands-Bb-RzoKB.mjs');
|
|
395
395
|
await workflowCommand(args.slice(1));
|
|
396
396
|
await flushAndExit(0);
|
|
397
397
|
} else if (subcommand === "wise-agent" || subcommand === "wise") {
|
|
398
398
|
await handleWiseAgentCommand(args.slice(1));
|
|
399
399
|
process.exit(0);
|
|
400
400
|
} else if (subcommand === "feature" || subcommand === "crew") {
|
|
401
|
-
const { crewCommand } = await import('./commands-
|
|
401
|
+
const { crewCommand } = await import('./commands-BNxsrqSl.mjs');
|
|
402
402
|
await crewCommand(args.slice(1));
|
|
403
403
|
process.exit(0);
|
|
404
404
|
} else if (subcommand === "notify") {
|
|
405
|
-
const { notifyUser } = await import('./notifyCommands-
|
|
405
|
+
const { notifyUser } = await import('./notifyCommands-1q8COUDd.mjs');
|
|
406
406
|
const rest = args.slice(1);
|
|
407
407
|
let email;
|
|
408
408
|
const o = {};
|
|
@@ -419,7 +419,7 @@ async function main() {
|
|
|
419
419
|
} else if (subcommand === "admin") {
|
|
420
420
|
const adminSub = args[1];
|
|
421
421
|
if (adminSub === "set-collection-config") {
|
|
422
|
-
const { setCollectionConfig } = await import('./adminCommands-
|
|
422
|
+
const { setCollectionConfig } = await import('./adminCommands-C7-LgldE.mjs');
|
|
423
423
|
const rest = args.slice(2);
|
|
424
424
|
let alias;
|
|
425
425
|
let configJson;
|
|
@@ -429,10 +429,10 @@ async function main() {
|
|
|
429
429
|
}
|
|
430
430
|
await setCollectionConfig(alias, configJson);
|
|
431
431
|
} else if (adminSub === "create-system-collections") {
|
|
432
|
-
const { createSystemCollections } = await import('./adminCommands-
|
|
432
|
+
const { createSystemCollections } = await import('./adminCommands-C7-LgldE.mjs');
|
|
433
433
|
await createSystemCollections();
|
|
434
434
|
} else if (adminSub === "migrate-collection-children") {
|
|
435
|
-
const { migrateCollectionChildren } = await import('./adminCommands-
|
|
435
|
+
const { migrateCollectionChildren } = await import('./adminCommands-C7-LgldE.mjs');
|
|
436
436
|
const rest = args.slice(2).filter((a) => !a.startsWith("-"));
|
|
437
437
|
await migrateCollectionChildren(rest[0], rest[1]);
|
|
438
438
|
} else {
|
|
@@ -440,7 +440,7 @@ async function main() {
|
|
|
440
440
|
}
|
|
441
441
|
process.exit(0);
|
|
442
442
|
} else if (subcommand === "events") {
|
|
443
|
-
const { listEvents, ackEvent } = await import('./notifyCommands-
|
|
443
|
+
const { listEvents, ackEvent } = await import('./notifyCommands-1q8COUDd.mjs');
|
|
444
444
|
const sub = args[1];
|
|
445
445
|
const rest = args.slice(2);
|
|
446
446
|
let email;
|
|
@@ -461,7 +461,7 @@ async function main() {
|
|
|
461
461
|
} else if (!subcommand || subcommand === "start") {
|
|
462
462
|
await handleInteractiveCommand();
|
|
463
463
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
464
|
-
const pkg = await import('./package-
|
|
464
|
+
const pkg = await import('./package-DrTlgNWY.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
465
465
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
466
466
|
} else {
|
|
467
467
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -470,7 +470,7 @@ async function main() {
|
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
472
|
async function handleInteractiveCommand() {
|
|
473
|
-
const { runInteractive } = await import('./run-
|
|
473
|
+
const { runInteractive } = await import('./run-CCENV09o.mjs');
|
|
474
474
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
475
475
|
let directory = process.cwd();
|
|
476
476
|
let resumeSessionId;
|
|
@@ -515,7 +515,7 @@ async function handleAgentCommand() {
|
|
|
515
515
|
return;
|
|
516
516
|
}
|
|
517
517
|
if (agentArgs[0] === "list") {
|
|
518
|
-
const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-
|
|
518
|
+
const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.as; });
|
|
519
519
|
console.log("Known agents:");
|
|
520
520
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
521
521
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -527,7 +527,7 @@ async function handleAgentCommand() {
|
|
|
527
527
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
528
528
|
return;
|
|
529
529
|
}
|
|
530
|
-
const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-
|
|
530
|
+
const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.as; });
|
|
531
531
|
let cwd = process.cwd();
|
|
532
532
|
const filteredArgs = [];
|
|
533
533
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -551,12 +551,12 @@ async function handleAgentCommand() {
|
|
|
551
551
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
552
552
|
let backend;
|
|
553
553
|
if (KNOWN_CODEX_AGENTS[config.agentName]) {
|
|
554
|
-
const { CodexAppServerBackend } = await import('./run-
|
|
554
|
+
const { CodexAppServerBackend } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.at; });
|
|
555
555
|
backend = new CodexAppServerBackend({ cwd, log: logFn });
|
|
556
556
|
} else {
|
|
557
|
-
const { AcpBackend } = await import('./run-
|
|
558
|
-
const { GeminiTransport } = await import('./run-
|
|
559
|
-
const { DefaultTransport } = await import('./run-
|
|
557
|
+
const { AcpBackend } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.ar; });
|
|
558
|
+
const { GeminiTransport } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.au; });
|
|
559
|
+
const { DefaultTransport } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.aq; });
|
|
560
560
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
561
561
|
backend = new AcpBackend({
|
|
562
562
|
agentName: config.agentName,
|
|
@@ -683,7 +683,7 @@ async function handleSessionCommand() {
|
|
|
683
683
|
process.exit(1);
|
|
684
684
|
}
|
|
685
685
|
}
|
|
686
|
-
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-
|
|
686
|
+
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-BaVcBOKA.mjs');
|
|
687
687
|
const parseFlagStr = (flag, shortFlag) => {
|
|
688
688
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
689
689
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -751,7 +751,7 @@ async function handleSessionCommand() {
|
|
|
751
751
|
allowDomain.push(sessionArgs[++i]);
|
|
752
752
|
}
|
|
753
753
|
}
|
|
754
|
-
const { parseShareArg } = await import('./commands-
|
|
754
|
+
const { parseShareArg } = await import('./commands-BaVcBOKA.mjs');
|
|
755
755
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
756
756
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
757
757
|
message,
|
|
@@ -841,7 +841,7 @@ async function handleSessionCommand() {
|
|
|
841
841
|
console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
|
|
842
842
|
process.exit(1);
|
|
843
843
|
}
|
|
844
|
-
const { sessionEditMessage } = await import('./commands-
|
|
844
|
+
const { sessionEditMessage } = await import('./commands-BaVcBOKA.mjs');
|
|
845
845
|
await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
846
846
|
} else if (sessionSubcommand === "refine") {
|
|
847
847
|
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
@@ -849,7 +849,7 @@ async function handleSessionCommand() {
|
|
|
849
849
|
console.error(" Asks the agent to revise its latest reply in place (no extra round).");
|
|
850
850
|
process.exit(1);
|
|
851
851
|
}
|
|
852
|
-
const { sessionRefineLastReply } = await import('./commands-
|
|
852
|
+
const { sessionRefineLastReply } = await import('./commands-BaVcBOKA.mjs');
|
|
853
853
|
await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
|
|
854
854
|
} else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
|
|
855
855
|
if (!sessionArgs[1]) {
|
|
@@ -857,7 +857,7 @@ async function handleSessionCommand() {
|
|
|
857
857
|
console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
|
|
858
858
|
process.exit(1);
|
|
859
859
|
}
|
|
860
|
-
const { sessionUndoEdit } = await import('./commands-
|
|
860
|
+
const { sessionUndoEdit } = await import('./commands-BaVcBOKA.mjs');
|
|
861
861
|
await sessionUndoEdit(sessionArgs[1], targetMachineId);
|
|
862
862
|
} else if (sessionSubcommand === "query") {
|
|
863
863
|
const dir = sessionArgs[1];
|
|
@@ -867,7 +867,7 @@ async function handleSessionCommand() {
|
|
|
867
867
|
console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
|
|
868
868
|
process.exit(1);
|
|
869
869
|
}
|
|
870
|
-
const { sessionQuery } = await import('./commands-
|
|
870
|
+
const { sessionQuery } = await import('./commands-BaVcBOKA.mjs');
|
|
871
871
|
await sessionQuery(dir, prompt, targetMachineId, {
|
|
872
872
|
timeout: parseFlagInt("--timeout"),
|
|
873
873
|
json: hasFlag("--json"),
|
|
@@ -900,7 +900,7 @@ async function handleSessionCommand() {
|
|
|
900
900
|
console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
|
|
901
901
|
process.exit(1);
|
|
902
902
|
}
|
|
903
|
-
const { sessionApprove } = await import('./commands-
|
|
903
|
+
const { sessionApprove } = await import('./commands-BaVcBOKA.mjs');
|
|
904
904
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
905
905
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
906
906
|
json: hasFlag("--json")
|
|
@@ -910,7 +910,7 @@ async function handleSessionCommand() {
|
|
|
910
910
|
console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
|
|
911
911
|
process.exit(1);
|
|
912
912
|
}
|
|
913
|
-
const { sessionDeny } = await import('./commands-
|
|
913
|
+
const { sessionDeny } = await import('./commands-BaVcBOKA.mjs');
|
|
914
914
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
915
915
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
916
916
|
json: hasFlag("--json")
|
|
@@ -962,7 +962,7 @@ async function handleSessionCommand() {
|
|
|
962
962
|
console.error("Usage: svamp session set-title <title>");
|
|
963
963
|
process.exit(1);
|
|
964
964
|
}
|
|
965
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
965
|
+
const { sessionSetTitle } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
966
966
|
await sessionSetTitle(title);
|
|
967
967
|
} else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
|
|
968
968
|
const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
@@ -970,7 +970,7 @@ async function handleSessionCommand() {
|
|
|
970
970
|
console.error("Usage: svamp session set-project-description <text>");
|
|
971
971
|
process.exit(1);
|
|
972
972
|
}
|
|
973
|
-
const { sessionSetProjectDescription } = await import('./agentCommands-
|
|
973
|
+
const { sessionSetProjectDescription } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
974
974
|
await sessionSetProjectDescription(desc);
|
|
975
975
|
} else if (sessionSubcommand === "set-link") {
|
|
976
976
|
const url = sessionArgs[1];
|
|
@@ -979,11 +979,11 @@ async function handleSessionCommand() {
|
|
|
979
979
|
process.exit(1);
|
|
980
980
|
}
|
|
981
981
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
982
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
982
|
+
const { sessionSetLink } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
983
983
|
await sessionSetLink(url, label);
|
|
984
984
|
} else if (sessionSubcommand === "link") {
|
|
985
985
|
const op = sessionArgs[1];
|
|
986
|
-
const lm = await import('./agentCommands-
|
|
986
|
+
const lm = await import('./agentCommands-B7HQJo3X.mjs');
|
|
987
987
|
if (op === "add") {
|
|
988
988
|
const url = sessionArgs[2];
|
|
989
989
|
if (!url || url.startsWith("--")) {
|
|
@@ -1018,7 +1018,7 @@ async function handleSessionCommand() {
|
|
|
1018
1018
|
process.exit(1);
|
|
1019
1019
|
}
|
|
1020
1020
|
const level = parseFlagStr("--level") || "info";
|
|
1021
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
1021
|
+
const { sessionNotify } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1022
1022
|
await sessionNotify(message, level);
|
|
1023
1023
|
} else if (sessionSubcommand === "broadcast") {
|
|
1024
1024
|
const action = sessionArgs[1];
|
|
@@ -1026,7 +1026,7 @@ async function handleSessionCommand() {
|
|
|
1026
1026
|
console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
|
|
1027
1027
|
process.exit(1);
|
|
1028
1028
|
}
|
|
1029
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
1029
|
+
const { sessionBroadcast } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1030
1030
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
1031
1031
|
} else if (sessionSubcommand === "inbox") {
|
|
1032
1032
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -1037,7 +1037,7 @@ async function handleSessionCommand() {
|
|
|
1037
1037
|
process.exit(1);
|
|
1038
1038
|
}
|
|
1039
1039
|
if (agentSessionId) {
|
|
1040
|
-
const { inboxSend } = await import('./agentCommands-
|
|
1040
|
+
const { inboxSend } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1041
1041
|
await inboxSend(sessionArgs[2], {
|
|
1042
1042
|
body: sessionArgs[3],
|
|
1043
1043
|
subject: parseFlagStr("--subject"),
|
|
@@ -1052,7 +1052,7 @@ async function handleSessionCommand() {
|
|
|
1052
1052
|
}
|
|
1053
1053
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
1054
1054
|
if (agentSessionId && !sessionArgs[2]) {
|
|
1055
|
-
const { inboxList } = await import('./agentCommands-
|
|
1055
|
+
const { inboxList } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1056
1056
|
await inboxList({
|
|
1057
1057
|
unread: hasFlag("--unread"),
|
|
1058
1058
|
limit: parseFlagInt("--limit"),
|
|
@@ -1074,7 +1074,7 @@ async function handleSessionCommand() {
|
|
|
1074
1074
|
process.exit(1);
|
|
1075
1075
|
}
|
|
1076
1076
|
if (agentSessionId && !sessionArgs[3]) {
|
|
1077
|
-
const { inboxList } = await import('./agentCommands-
|
|
1077
|
+
const { inboxList } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1078
1078
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
1079
1079
|
} else if (sessionArgs[3]) {
|
|
1080
1080
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -1084,7 +1084,7 @@ async function handleSessionCommand() {
|
|
|
1084
1084
|
}
|
|
1085
1085
|
} else if (inboxSubcmd === "reply") {
|
|
1086
1086
|
if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
|
|
1087
|
-
const { inboxReply } = await import('./agentCommands-
|
|
1087
|
+
const { inboxReply } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1088
1088
|
await inboxReply(sessionArgs[2], sessionArgs[3]);
|
|
1089
1089
|
} else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
|
|
1090
1090
|
await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
|
|
@@ -1122,7 +1122,7 @@ async function handleMachineCommand() {
|
|
|
1122
1122
|
return;
|
|
1123
1123
|
}
|
|
1124
1124
|
if (machineSubcommand === "share") {
|
|
1125
|
-
const { machineShare } = await import('./commands-
|
|
1125
|
+
const { machineShare } = await import('./commands-BaVcBOKA.mjs');
|
|
1126
1126
|
let machineId;
|
|
1127
1127
|
const shareArgs = [];
|
|
1128
1128
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -1173,14 +1173,14 @@ async function handleMachineCommand() {
|
|
|
1173
1173
|
process.exit(1);
|
|
1174
1174
|
}
|
|
1175
1175
|
if (all) {
|
|
1176
|
-
const { fleetExec } = await import('./fleet-
|
|
1176
|
+
const { fleetExec } = await import('./fleet-2c-iNucb.mjs');
|
|
1177
1177
|
await fleetExec(command, { cwd });
|
|
1178
1178
|
} else {
|
|
1179
|
-
const { machineExec } = await import('./commands-
|
|
1179
|
+
const { machineExec } = await import('./commands-BaVcBOKA.mjs');
|
|
1180
1180
|
await machineExec(machineId, command, cwd);
|
|
1181
1181
|
}
|
|
1182
1182
|
} else if (machineSubcommand === "info") {
|
|
1183
|
-
const { machineInfo } = await import('./commands-
|
|
1183
|
+
const { machineInfo } = await import('./commands-BaVcBOKA.mjs');
|
|
1184
1184
|
let machineId;
|
|
1185
1185
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
1186
1186
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -1200,10 +1200,10 @@ async function handleMachineCommand() {
|
|
|
1200
1200
|
level = machineArgs[++i];
|
|
1201
1201
|
}
|
|
1202
1202
|
}
|
|
1203
|
-
const { machineNotify } = await import('./agentCommands-
|
|
1203
|
+
const { machineNotify } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
1204
1204
|
await machineNotify(message, level);
|
|
1205
1205
|
} else if (machineSubcommand === "ls") {
|
|
1206
|
-
const { machineLs } = await import('./commands-
|
|
1206
|
+
const { machineLs } = await import('./commands-BaVcBOKA.mjs');
|
|
1207
1207
|
let machineId;
|
|
1208
1208
|
let showHidden = false;
|
|
1209
1209
|
let path;
|
|
@@ -1262,20 +1262,20 @@ Examples:
|
|
|
1262
1262
|
};
|
|
1263
1263
|
const hasFlag = (name) => fleetArgs.includes(`--${name}`);
|
|
1264
1264
|
if (sub === "status") {
|
|
1265
|
-
const { fleetStatus } = await import('./fleet-
|
|
1265
|
+
const { fleetStatus } = await import('./fleet-2c-iNucb.mjs');
|
|
1266
1266
|
await fleetStatus();
|
|
1267
1267
|
} else if (sub === "upgrade-claude") {
|
|
1268
|
-
const { fleetUpgradeClaude } = await import('./fleet-
|
|
1268
|
+
const { fleetUpgradeClaude } = await import('./fleet-2c-iNucb.mjs');
|
|
1269
1269
|
await fleetUpgradeClaude({ version: flag("version", "-v") });
|
|
1270
1270
|
} else if (sub === "upgrade-svamp") {
|
|
1271
|
-
const { fleetUpgradeSvamp } = await import('./fleet-
|
|
1271
|
+
const { fleetUpgradeSvamp } = await import('./fleet-2c-iNucb.mjs');
|
|
1272
1272
|
await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
|
|
1273
1273
|
} else if (sub === "daemon-restart") {
|
|
1274
|
-
const { fleetDaemonRestart } = await import('./fleet-
|
|
1274
|
+
const { fleetDaemonRestart } = await import('./fleet-2c-iNucb.mjs');
|
|
1275
1275
|
await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
|
|
1276
1276
|
} else if (sub === "push-skill") {
|
|
1277
1277
|
const name = fleetArgs[1];
|
|
1278
|
-
const { fleetPushSkill } = await import('./fleet-
|
|
1278
|
+
const { fleetPushSkill } = await import('./fleet-2c-iNucb.mjs');
|
|
1279
1279
|
await fleetPushSkill(name);
|
|
1280
1280
|
} else {
|
|
1281
1281
|
console.error(`Unknown fleet subcommand: ${sub}`);
|
|
@@ -1291,7 +1291,7 @@ async function handleSkillsCommand() {
|
|
|
1291
1291
|
await printSkillsHelp();
|
|
1292
1292
|
return;
|
|
1293
1293
|
}
|
|
1294
|
-
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-
|
|
1294
|
+
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-CZSPOqtd.mjs');
|
|
1295
1295
|
if (skillsSubcommand === "find" || skillsSubcommand === "search") {
|
|
1296
1296
|
const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
1297
1297
|
if (!query) {
|
|
@@ -1338,7 +1338,7 @@ async function loginToHypha() {
|
|
|
1338
1338
|
process.exit(1);
|
|
1339
1339
|
}
|
|
1340
1340
|
const anchor = anchorArg.replace(/\/+$/, "");
|
|
1341
|
-
const { loadInstanceConfig } = await import('./run-
|
|
1341
|
+
const { loadInstanceConfig } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.am; });
|
|
1342
1342
|
let cfg = null;
|
|
1343
1343
|
try {
|
|
1344
1344
|
cfg = await loadInstanceConfig({ anchor, force: true });
|
|
@@ -1449,7 +1449,7 @@ async function logoutFromHypha() {
|
|
|
1449
1449
|
} catch {
|
|
1450
1450
|
}
|
|
1451
1451
|
try {
|
|
1452
|
-
const { clearInstanceConfigCache } = await import('./run-
|
|
1452
|
+
const { clearInstanceConfigCache } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.am; });
|
|
1453
1453
|
clearInstanceConfigCache();
|
|
1454
1454
|
} catch {
|
|
1455
1455
|
}
|
|
@@ -1725,9 +1725,12 @@ Commands:
|
|
|
1725
1725
|
|
|
1726
1726
|
Other:
|
|
1727
1727
|
svamp machine --help Machine sharing & security contexts
|
|
1728
|
-
svamp fleet --help Fan-out commands across all your machines (status, upgrade,
|
|
1728
|
+
svamp fleet --help Fan-out commands across all your machines (status, upgrade-claude, upgrade-svamp, daemon-restart, push-skill)
|
|
1729
1729
|
svamp skills --help Skills marketplace (find, install, publish)
|
|
1730
1730
|
svamp service --help Service exposure (HTTP services from sandboxes)
|
|
1731
|
+
svamp notify <email> \u2026 Send a cross-user notification (bell inbox); --title/--body/--action/--level
|
|
1732
|
+
svamp events list|ack Read / dismiss your notification bell inbox
|
|
1733
|
+
svamp admin \u2026 System-collection ops (create-system-collections, set-collection-config, migrate-collection-children)
|
|
1731
1734
|
svamp agent <name> Start local agent session (no daemon needed)
|
|
1732
1735
|
svamp --version Show version
|
|
1733
1736
|
|
|
@@ -1788,7 +1791,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
1788
1791
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
1789
1792
|
);
|
|
1790
1793
|
}
|
|
1791
|
-
const mod = await import('./run-
|
|
1794
|
+
const mod = await import('./run-BNeZiySO.mjs').then(function (n) { return n.an; });
|
|
1792
1795
|
if (hasHypha) {
|
|
1793
1796
|
let url;
|
|
1794
1797
|
const hyphaIdx = argv.indexOf("--use-hypha-proxy");
|
|
@@ -1842,7 +1845,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1842
1845
|
}
|
|
1843
1846
|
}
|
|
1844
1847
|
if (collected.length === 0) return;
|
|
1845
|
-
const { updateEnvFile } = await import('./run-
|
|
1848
|
+
const { updateEnvFile } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.an; });
|
|
1846
1849
|
const seen = /* @__PURE__ */ new Set();
|
|
1847
1850
|
const deduped = collected.filter((e) => {
|
|
1848
1851
|
const k = e.toLowerCase();
|
|
@@ -1875,7 +1878,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1875
1878
|
}
|
|
1876
1879
|
});
|
|
1877
1880
|
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(" ");
|
|
1878
|
-
const { wiseAskCli } = await import('./commands-
|
|
1881
|
+
const { wiseAskCli } = await import('./commands-BaVcBOKA.mjs');
|
|
1879
1882
|
await wiseAskCli(machineId, message, sessionId, { json });
|
|
1880
1883
|
return;
|
|
1881
1884
|
}
|
|
@@ -1887,7 +1890,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1887
1890
|
}
|
|
1888
1891
|
return void 0;
|
|
1889
1892
|
};
|
|
1890
|
-
const { runWiseVoiceCli } = await import('./headlessCli-
|
|
1893
|
+
const { runWiseVoiceCli } = await import('./headlessCli-CftEZbxm.mjs');
|
|
1891
1894
|
await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
|
|
1892
1895
|
return;
|
|
1893
1896
|
}
|
|
@@ -1905,7 +1908,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1905
1908
|
const mode = valueOf(["--mode"]);
|
|
1906
1909
|
const mission = valueOf(["--mission"]);
|
|
1907
1910
|
const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
|
|
1908
|
-
const { wiseJoinMeetingCli } = await import('./commands-
|
|
1911
|
+
const { wiseJoinMeetingCli } = await import('./commands-BaVcBOKA.mjs');
|
|
1909
1912
|
await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
|
|
1910
1913
|
return;
|
|
1911
1914
|
}
|
|
@@ -1917,7 +1920,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1917
1920
|
}
|
|
1918
1921
|
return void 0;
|
|
1919
1922
|
};
|
|
1920
|
-
const { wiseLeaveMeetingCli } = await import('./commands-
|
|
1923
|
+
const { wiseLeaveMeetingCli } = await import('./commands-BaVcBOKA.mjs');
|
|
1921
1924
|
await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
|
|
1922
1925
|
return;
|
|
1923
1926
|
}
|
|
@@ -1941,7 +1944,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1941
1944
|
}
|
|
1942
1945
|
});
|
|
1943
1946
|
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(" ");
|
|
1944
|
-
const { wiseAnnounceCli } = await import('./commands-
|
|
1947
|
+
const { wiseAnnounceCli } = await import('./commands-BaVcBOKA.mjs');
|
|
1945
1948
|
await wiseAnnounceCli(machineId, text, sessionId, { json });
|
|
1946
1949
|
return;
|
|
1947
1950
|
}
|
|
@@ -1953,7 +1956,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1953
1956
|
}
|
|
1954
1957
|
return void 0;
|
|
1955
1958
|
};
|
|
1956
|
-
const { wiseMeetingsCli } = await import('./commands-
|
|
1959
|
+
const { wiseMeetingsCli } = await import('./commands-BaVcBOKA.mjs');
|
|
1957
1960
|
await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
|
|
1958
1961
|
return;
|
|
1959
1962
|
}
|
|
@@ -2003,7 +2006,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
2003
2006
|
return;
|
|
2004
2007
|
}
|
|
2005
2008
|
const authArgs = rest.slice(1);
|
|
2006
|
-
const mod = await import('./auth-
|
|
2009
|
+
const mod = await import('./auth-BB_4_6P7.mjs');
|
|
2007
2010
|
let action;
|
|
2008
2011
|
try {
|
|
2009
2012
|
action = mod.parseWiseAgentAuthArgs(authArgs);
|
|
@@ -2013,7 +2016,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
2013
2016
|
return;
|
|
2014
2017
|
}
|
|
2015
2018
|
if (action) {
|
|
2016
|
-
const { updateEnvFile } = await import('./run-
|
|
2019
|
+
const { updateEnvFile } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.an; });
|
|
2017
2020
|
const updates = mod.buildWiseAgentEnvUpdates(action);
|
|
2018
2021
|
updateEnvFile(updates);
|
|
2019
2022
|
for (const [k, v] of Object.entries(updates)) {
|
|
@@ -2027,7 +2030,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
2027
2030
|
}
|
|
2028
2031
|
async function handleDaemonAuthCommand(argv) {
|
|
2029
2032
|
const sub = (argv[0] || "status").toLowerCase();
|
|
2030
|
-
const mod = await import('./run-
|
|
2033
|
+
const mod = await import('./run-BNeZiySO.mjs').then(function (n) { return n.an; });
|
|
2031
2034
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
2032
2035
|
console.log(`
|
|
2033
2036
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -2101,8 +2104,8 @@ one step: --use-hypha-proxy / --use-claude-login / --anthropic-base-url URL --an
|
|
|
2101
2104
|
}
|
|
2102
2105
|
async function handleDaemonCodexAuthCommand(argv) {
|
|
2103
2106
|
const sub = (argv[0] || "status").toLowerCase();
|
|
2104
|
-
const { updateEnvFile } = await import('./run-
|
|
2105
|
-
const { resolveCodexProvider } = await import('./run-
|
|
2107
|
+
const { updateEnvFile } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.an; });
|
|
2108
|
+
const { resolveCodexProvider } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.ao; });
|
|
2106
2109
|
const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
|
|
2107
2110
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
2108
2111
|
console.log(`
|
|
@@ -2434,7 +2437,7 @@ Examples:
|
|
|
2434
2437
|
async function printSkillsHelp() {
|
|
2435
2438
|
let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
|
|
2436
2439
|
try {
|
|
2437
|
-
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-
|
|
2440
|
+
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.av; });
|
|
2438
2441
|
browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
|
|
2439
2442
|
} catch {
|
|
2440
2443
|
}
|
package/dist/cli.mjs
CHANGED
|
@@ -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-BaVcBOKA.mjs';
|
|
4
4
|
import { execFileSync } from 'node:child_process';
|
|
5
|
-
import { u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-
|
|
5
|
+
import { u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-BNeZiySO.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import { execSync, execFileSync } from 'node:child_process';
|
|
3
3
|
import { basename, resolve, join, isAbsolute } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
-
import { a3 as formatHandle, a4 as normalizeAllowedUser, a5 as loadSecurityContextConfig, a6 as resolveSecurityContext, a7 as buildSecurityContextFromFlags, a8 as mergeSecurityContexts, c as connectToHypha, a9 as buildSessionShareUrl, aa as computeOutboundHop, i as shortId, ab as registerAwaitingReply, ac as buildMachineShareUrl, ad as parseHandle, ae as handleMatchesMetadata } from './run-
|
|
5
|
+
import { a3 as formatHandle, a4 as normalizeAllowedUser, a5 as loadSecurityContextConfig, a6 as resolveSecurityContext, a7 as buildSecurityContextFromFlags, a8 as mergeSecurityContexts, c as connectToHypha, a9 as buildSessionShareUrl, aa as computeOutboundHop, i as shortId, ab as registerAwaitingReply, ac as buildMachineShareUrl, ad as parseHandle, ae as handleMatchesMetadata } from './run-BNeZiySO.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { j as resolveProjectRoot, I as workflowSteps, z as setWorkflowEnabled, E as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, D as listWorkflows, B as saveWorkflow, C as rawWorkflow } from './run-
|
|
2
|
+
import { j as resolveProjectRoot, I as workflowSteps, z as setWorkflowEnabled, E as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, D as listWorkflows, B as saveWorkflow, C as rawWorkflow } from './run-BNeZiySO.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
5
5
|
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-BaVcBOKA.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-BNeZiySO.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -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 { Q as parseFrontmatter, T as getSkillsServer, U as getSkillsWorkspaceName, V as getSkillsCollectionName, W as fetchWithTimeout, X as searchSkills, Y as SKILLS_DIR, Z as getSkillInfo, _ as downloadSkillFile, $ as listSkillFiles } from './run-
|
|
4
|
+
import { Q as parseFrontmatter, T as getSkillsServer, U as getSkillsWorkspaceName, V as getSkillsCollectionName, W as fetchWithTimeout, X as searchSkills, Y as SKILLS_DIR, Z as getSkillInfo, _ as downloadSkillFile, $ as listSkillFiles } from './run-BNeZiySO.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -1,8 +1,8 @@
|
|
|
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 { f as flushAndExit } from './cli-
|
|
5
|
-
import { j as resolveProjectRoot, q as searchIssues, o as listIssues, l as resumeIssue, p as pauseIssue, m as addComment, u as updateIssue, k as getIssue, t as isVisibleTo, H as summarize, n as addIssue } from './run-
|
|
4
|
+
import { f as flushAndExit } from './cli-BH5LIMPI.mjs';
|
|
5
|
+
import { j as resolveProjectRoot, q as searchIssues, o as listIssues, l as resumeIssue, p as pauseIssue, m as addComment, u as updateIssue, k as getIssue, t as isVisibleTo, H as summarize, n as addIssue } from './run-BNeZiySO.mjs';
|
|
6
6
|
import './serviceManager-hlOVxkhW.mjs';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -60,7 +60,7 @@ async function serviceExpose(args) {
|
|
|
60
60
|
process.exit(1);
|
|
61
61
|
}
|
|
62
62
|
if (foreground) {
|
|
63
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
63
|
+
const { runFrpcTunnel } = await import('./frpc-CuvdlU0g.mjs');
|
|
64
64
|
await runFrpcTunnel(name, ports, void 0, {
|
|
65
65
|
group,
|
|
66
66
|
groupKey,
|
|
@@ -70,7 +70,7 @@ async function serviceExpose(args) {
|
|
|
70
70
|
});
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
73
|
+
const { connectAndGetMachine } = await import('./commands-BaVcBOKA.mjs');
|
|
74
74
|
const { server, machine } = await connectAndGetMachine();
|
|
75
75
|
try {
|
|
76
76
|
const status = await machine.tunnelStart({
|
|
@@ -92,7 +92,7 @@ async function serviceExpose(args) {
|
|
|
92
92
|
console.log(` port ${port}: ${url}`);
|
|
93
93
|
}
|
|
94
94
|
if (process.env.SVAMP_SESSION_ID) {
|
|
95
|
-
const { autoAddSessionLink } = await import('./agentCommands-
|
|
95
|
+
const { autoAddSessionLink } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
96
96
|
let added = 0;
|
|
97
97
|
for (const [port, url] of urlEntries) {
|
|
98
98
|
const label = urlEntries.length > 1 ? `${name}:${port}` : name;
|
|
@@ -129,7 +129,7 @@ async function serviceServe(args) {
|
|
|
129
129
|
console.log(`Serving ${resolvedDir}`);
|
|
130
130
|
const servePort = 18080;
|
|
131
131
|
const http = await import('http');
|
|
132
|
-
const { serveStaticMount } = await import('./run-
|
|
132
|
+
const { serveStaticMount } = await import('./run-BNeZiySO.mjs').then(function (n) { return n.al; });
|
|
133
133
|
const server = http.createServer((req, res) => {
|
|
134
134
|
const u = new URL(req.url || "/", "http://127.0.0.1");
|
|
135
135
|
let rel = u.pathname;
|
|
@@ -140,7 +140,7 @@ async function serviceServe(args) {
|
|
|
140
140
|
server.once("error", reject);
|
|
141
141
|
server.listen(servePort, "127.0.0.1", () => resolve());
|
|
142
142
|
});
|
|
143
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
143
|
+
const { runFrpcTunnel } = await import('./frpc-CuvdlU0g.mjs');
|
|
144
144
|
void server;
|
|
145
145
|
await runFrpcTunnel(name, [servePort]);
|
|
146
146
|
} catch (err) {
|
|
@@ -150,7 +150,7 @@ async function serviceServe(args) {
|
|
|
150
150
|
}
|
|
151
151
|
async function serviceList(_args) {
|
|
152
152
|
try {
|
|
153
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
153
|
+
const { connectAndGetMachine } = await import('./commands-BaVcBOKA.mjs');
|
|
154
154
|
const { server, machine } = await connectAndGetMachine();
|
|
155
155
|
try {
|
|
156
156
|
const tunnels = await machine.tunnelList({});
|
|
@@ -190,7 +190,7 @@ async function serviceDelete(args) {
|
|
|
190
190
|
process.exit(1);
|
|
191
191
|
}
|
|
192
192
|
try {
|
|
193
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
193
|
+
const { connectAndGetMachine } = await import('./commands-BaVcBOKA.mjs');
|
|
194
194
|
const { server, machine } = await connectAndGetMachine();
|
|
195
195
|
try {
|
|
196
196
|
await machine.tunnelStop({ name });
|
|
@@ -221,7 +221,7 @@ async function handleServiceCommand() {
|
|
|
221
221
|
return;
|
|
222
222
|
}
|
|
223
223
|
const commandArgs = serviceArgs.slice(1);
|
|
224
|
-
if (sub === "expose"
|
|
224
|
+
if (sub === "expose") {
|
|
225
225
|
await serviceExpose(commandArgs);
|
|
226
226
|
} else if (sub === "serve") {
|
|
227
227
|
await serviceServe(commandArgs);
|
|
@@ -1,7 +1,7 @@
|
|
|
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-
|
|
4
|
+
import { c as connectToHypha } from './run-BNeZiySO.mjs';
|
|
5
5
|
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-BaMR97BE.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
@@ -4,7 +4,7 @@ import { mkdirSync, chmodSync, writeFileSync, unlinkSync, existsSync, readFileSy
|
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir, platform, arch } from 'os';
|
|
6
6
|
import { randomUUID, createHash } from 'crypto';
|
|
7
|
-
import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-
|
|
7
|
+
import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-BNeZiySO.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a0 as resolveModel, af as describeMisconfiguration, ag as buildMachineDeps } from './run-
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { a0 as resolveModel, af as describeMisconfiguration, ag as buildMachineDeps } from './run-BNeZiySO.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-DB4Uipz9.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-BNeZiySO.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as connectToHypha, S as SharingNotificationSync, J as parseJwtEmail } from './run-
|
|
1
|
+
import { c as connectToHypha, S as SharingNotificationSync, J as parseJwtEmail } from './run-BNeZiySO.mjs';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { existsSync, readFileSync } from 'node:fs';
|
|
4
4
|
import { join } from 'node:path';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as resolveProjectRoot, v as getRun, w as listRuns, x as getWorkflow, y as runWorkflow, z as setWorkflowEnabled, A as removeWorkflow, B as saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-
|
|
1
|
+
import { j as resolveProjectRoot, v as getRun, w as listRuns, x as getWorkflow, y as runWorkflow, z as setWorkflowEnabled, A as removeWorkflow, B as saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-BNeZiySO.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as resolveProjectRoot, u as updateIssue, k as getIssue, l as resumeIssue, p as pauseIssue, m as addComment, n as addIssue, o as listIssues, q as searchIssues, t as isVisibleTo } from './run-
|
|
1
|
+
import { j as resolveProjectRoot, u as updateIssue, k as getIssue, l as resumeIssue, p as pauseIssue, m as addComment, n as addIssue, o as listIssues, q as searchIssues, t as isVisibleTo } from './run-BNeZiySO.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -2973,7 +2973,7 @@ Connection: close\r
|
|
|
2973
2973
|
const mount = this.mounts.get(mountName);
|
|
2974
2974
|
const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, buildLinkSubdomain(subdomainSafe, mount.linkToken)]]) : void 0;
|
|
2975
2975
|
try {
|
|
2976
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
2976
|
+
const { FrpcTunnel } = await import('./frpc-CuvdlU0g.mjs');
|
|
2977
2977
|
let tunnel;
|
|
2978
2978
|
tunnel = new FrpcTunnel({
|
|
2979
2979
|
name: tunnelName,
|
|
@@ -5816,7 +5816,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
|
|
|
5816
5816
|
const tunnels = handlers.tunnels;
|
|
5817
5817
|
if (!tunnels) throw new Error("Tunnel management not available");
|
|
5818
5818
|
if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
|
|
5819
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
5819
|
+
const { FrpcTunnel } = await import('./frpc-CuvdlU0g.mjs');
|
|
5820
5820
|
const tunnel = new FrpcTunnel({
|
|
5821
5821
|
name: params.name,
|
|
5822
5822
|
ports: params.ports,
|
|
@@ -6292,7 +6292,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
6292
6292
|
}
|
|
6293
6293
|
const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
|
|
6294
6294
|
const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
|
|
6295
|
-
const { toolsForRole } = await import('./sideband-
|
|
6295
|
+
const { toolsForRole } = await import('./sideband-DB4Uipz9.mjs');
|
|
6296
6296
|
const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
|
|
6297
6297
|
return fmt(r2);
|
|
6298
6298
|
}
|
|
@@ -6391,7 +6391,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
6391
6391
|
if (r.error || !r.sender) return { error: r.error || "unauthorized" };
|
|
6392
6392
|
const callId = "call_" + Math.random().toString(16).slice(2, 12);
|
|
6393
6393
|
const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
|
|
6394
|
-
const { queryCore } = await import('./commands-
|
|
6394
|
+
const { queryCore } = await import('./commands-BaVcBOKA.mjs');
|
|
6395
6395
|
const timeout = c.reply?.timeout_sec || 120;
|
|
6396
6396
|
let result;
|
|
6397
6397
|
try {
|
|
@@ -9624,22 +9624,63 @@ class SharingNotificationSync {
|
|
|
9624
9624
|
this.log(`[USER EVENT] Failed to publish ${event.type} for ${event.recipientEmail}: ${err.message}`);
|
|
9625
9625
|
}
|
|
9626
9626
|
}
|
|
9627
|
+
/**
|
|
9628
|
+
* List ALL children of a collection, paginating past hypha's default page cap (`limit=100`,
|
|
9629
|
+
* server hypha/artifact.py list_children). The svamp-user-events / svamp-shared-sessions
|
|
9630
|
+
* collections are GLOBAL across every deployment user, so a single unpaginated list() would
|
|
9631
|
+
* return only the newest ~100 rows across ALL recipients — silently hiding a given user's
|
|
9632
|
+
* events past that page. We page offset+=100 until a short/empty/duplicate page.
|
|
9633
|
+
*/
|
|
9634
|
+
async listAllChildren(parentId) {
|
|
9635
|
+
const PAGE = 100;
|
|
9636
|
+
const all = [];
|
|
9637
|
+
const seen = /* @__PURE__ */ new Set();
|
|
9638
|
+
for (let offset = 0; ; offset += PAGE) {
|
|
9639
|
+
const page = await this.artifactManager.list({ parent_id: parentId, offset, limit: PAGE, _rkwargs: true });
|
|
9640
|
+
if (!Array.isArray(page) || page.length === 0) break;
|
|
9641
|
+
let fresh = 0;
|
|
9642
|
+
for (const c of page) {
|
|
9643
|
+
const k = String(c?.id ?? c?.manifest?.id ?? c?.alias ?? `${offset}:${fresh}`);
|
|
9644
|
+
if (seen.has(k)) continue;
|
|
9645
|
+
seen.add(k);
|
|
9646
|
+
all.push(c);
|
|
9647
|
+
fresh++;
|
|
9648
|
+
}
|
|
9649
|
+
if (page.length < PAGE || fresh === 0) break;
|
|
9650
|
+
}
|
|
9651
|
+
return all;
|
|
9652
|
+
}
|
|
9627
9653
|
/**
|
|
9628
9654
|
* List user events addressed to `recipientEmail` (the bell inbox), newest first, excluding
|
|
9629
9655
|
* expired ones. Reuses the global svamp-user-events collection — cross-workspace by design.
|
|
9630
|
-
* Mirrors the webapp's fetchUserEvents so the CLI reads the same source of truth.
|
|
9656
|
+
* Mirrors the webapp's fetchUserEvents so the CLI reads the same source of truth. Paginated
|
|
9657
|
+
* so a recipient's events past the first 100 global rows are not silently dropped; expired
|
|
9658
|
+
* events the caller owns are best-effort pruned (a no-op until the collection's
|
|
9659
|
+
* recipient_can_delete is active — swallowed on PermissionError).
|
|
9631
9660
|
*/
|
|
9632
9661
|
async listUserEvents(recipientEmail) {
|
|
9633
9662
|
if (!this.initialized || !this.eventCollectionId) return [];
|
|
9634
9663
|
const normalized = recipientEmail.toLowerCase();
|
|
9635
9664
|
try {
|
|
9636
|
-
const children = await this.
|
|
9637
|
-
parent_id: this.eventCollectionId,
|
|
9638
|
-
_rkwargs: true
|
|
9639
|
-
});
|
|
9665
|
+
const children = await this.listAllChildren(this.eventCollectionId);
|
|
9640
9666
|
if (!Array.isArray(children)) return [];
|
|
9641
9667
|
const now = Date.now();
|
|
9642
|
-
|
|
9668
|
+
const live = [];
|
|
9669
|
+
const expiredOwnedIds = [];
|
|
9670
|
+
for (const c of children) {
|
|
9671
|
+
const m = c?.manifest;
|
|
9672
|
+
if (!m || typeof m.recipientEmail !== "string" || m.recipientEmail.toLowerCase() !== normalized) continue;
|
|
9673
|
+
if (m.expiresAt && m.expiresAt <= now) {
|
|
9674
|
+
if (c?.id) expiredOwnedIds.push(c.id);
|
|
9675
|
+
continue;
|
|
9676
|
+
}
|
|
9677
|
+
live.push(m);
|
|
9678
|
+
}
|
|
9679
|
+
for (const id of expiredOwnedIds) {
|
|
9680
|
+
this.artifactManager.delete({ artifact_id: id, _rkwargs: true }).catch(() => {
|
|
9681
|
+
});
|
|
9682
|
+
}
|
|
9683
|
+
return live.sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
|
|
9643
9684
|
} catch (err) {
|
|
9644
9685
|
this.log(`[USER EVENT] listUserEvents failed for ${recipientEmail}: ${err.message}`);
|
|
9645
9686
|
return [];
|
|
@@ -9654,7 +9695,7 @@ class SharingNotificationSync {
|
|
|
9654
9695
|
if (!this.initialized || !this.eventCollectionId) return false;
|
|
9655
9696
|
const normalized = recipientEmail.toLowerCase();
|
|
9656
9697
|
try {
|
|
9657
|
-
const children = await this.
|
|
9698
|
+
const children = await this.listAllChildren(this.eventCollectionId);
|
|
9658
9699
|
if (!Array.isArray(children)) return false;
|
|
9659
9700
|
const short = eventId.slice(0, 8);
|
|
9660
9701
|
const match = children.find((c) => {
|
|
@@ -9944,6 +9985,7 @@ function startToolCall(toolCallId, toolKind, update, ctx, source) {
|
|
|
9944
9985
|
ctx.activeToolCalls.delete(toolCallId);
|
|
9945
9986
|
ctx.toolCallStartTimes.delete(toolCallId);
|
|
9946
9987
|
ctx.toolCallTimeouts.delete(toolCallId);
|
|
9988
|
+
ctx.toolCallIdToNameMap.delete(toolCallId);
|
|
9947
9989
|
ctx.log(`Tool call TIMEOUT: ${toolCallId} (${toolKind}) after ${(timeoutMs / 1e3).toFixed(0)}s`);
|
|
9948
9990
|
if (ctx.activeToolCalls.size === 0) {
|
|
9949
9991
|
ctx.emitIdleStatus();
|
|
@@ -14409,7 +14451,7 @@ You are running inside a Svamp session (id: ${sessionId}${handle ? `, handle: ${
|
|
|
14409
14451
|
- \`svamp session link add "<url>" --label "<label>" [--icon "\u{1F517}"]\` \u2014 surface viewable artifacts (dashboards, reports, apps) as buttons in the composer "Launch Pad". Manage many: \`link list\` \xB7 \`link update <id> [--url|--label|--icon]\` \xB7 \`link remove <id>\`. Adding the same URL again UPDATES that entry (URL is the dedup key \u2014 no duplicates). Tunnel/exposed URLs from \`svamp service expose\` are added to the Launch Pad AUTOMATICALLY, so do NOT \`session link add\` a URL you just exposed. A session can have MANY links (the Launch Pad); \`session set-link "<url>" "<label>"\` also appends + dedupes by URL (alias of \`link add\`).
|
|
14410
14452
|
- \`svamp session notify "<msg>" [--level info|warning|error]\` \u2014 send a user notification
|
|
14411
14453
|
|
|
14412
|
-
**Artifacts (rich inline output):** Write HTML to a file (\`.svamp/<sessionId>/outputs/\` for disposable, \`./outputs/\` for persistent) and emit \`<artifact src="./outputs/viz.html" title="..." />\` \u2014 the Svamp client renders it inline as a sandboxed iframe with theme CSS vars, auto-resize, file inlining, and a header with Reload/Fullscreen/\u22EE menu. Modes: \`default\`, \`bare\` (controls on hover), \`immersive\` (no chrome), \`card\` (click-to-open preview with \`description\`+\`poster\`). Use \`<artifact src="https://..." height="540" />\` to embed a live server.
|
|
14454
|
+
**Artifacts (rich inline output):** Write HTML to a file (\`.svamp/<sessionId>/outputs/\` for disposable, \`./outputs/\` for persistent) and emit \`<artifact src="./outputs/viz.html" title="..." />\` \u2014 the Svamp client renders it inline as a sandboxed iframe with theme CSS vars, auto-resize, file inlining, and a header with Reload/Fullscreen/\u22EE menu. Modes: \`default\`, \`bare\` (controls on hover), \`immersive\` (no chrome), \`card\` (click-to-open preview with \`description\`+\`poster\`). Use \`<artifact src="https://..." height="540" />\` to embed a live server. To share it as a link, DEFAULT to a persistent, lazy mount \u2014 \`svamp serve apply <yaml>\` (a static dir, or a \`process:\` block with \`wake_on_request: true\` + \`idle_timeout_sec\` for a dynamic server): it survives daemon restarts, idles to near-zero memory, and wakes on the next visit (the serverless pattern users expect). Reserve ad-hoc \`svamp serve <name> <dir>\` / \`svamp service expose\` for genuinely throwaway demos ONLY \u2014 those vanish on restart, which confuses users who revisit. **Inline artifacts (\`<artifact>\u2026HTML\u2026</artifact>\` with a body) are for SMALL self-contained HTML only \u2014 anything large (images, datasets, big reports, base64) MUST be written to a file and referenced via \`<artifact src="./outputs/<file>" />\`, never pasted inline. An inline body over 512 KB is rejected (error card + stripped) because it bloats stored history.** See the \`artifact\` skill.
|
|
14413
14455
|
|
|
14414
14456
|
## Shared environment
|
|
14415
14457
|
|
|
@@ -16145,7 +16187,7 @@ async function startDaemon(options) {
|
|
|
16145
16187
|
try {
|
|
16146
16188
|
const dir = loadSessionIndex()[sessionId]?.directory;
|
|
16147
16189
|
if (!dir) return;
|
|
16148
|
-
const { reconcileServiceLinks } = await import('./agentCommands-
|
|
16190
|
+
const { reconcileServiceLinks } = await import('./agentCommands-B7HQJo3X.mjs');
|
|
16149
16191
|
const configPath = getSvampConfigPath(dir, sessionId);
|
|
16150
16192
|
const config = readSvampConfig(configPath);
|
|
16151
16193
|
const entries = Array.from(urls.entries());
|
|
@@ -16163,7 +16205,7 @@ async function startDaemon(options) {
|
|
|
16163
16205
|
}
|
|
16164
16206
|
}
|
|
16165
16207
|
async function createExposedTunnel(spec) {
|
|
16166
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
16208
|
+
const { FrpcTunnel } = await import('./frpc-CuvdlU0g.mjs');
|
|
16167
16209
|
const tunnel = new FrpcTunnel({
|
|
16168
16210
|
name: spec.name,
|
|
16169
16211
|
ports: spec.ports,
|
|
@@ -18379,11 +18421,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
18379
18421
|
});
|
|
18380
18422
|
},
|
|
18381
18423
|
onIssue: async (params) => {
|
|
18382
|
-
const { issueRpc } = await import('./rpc-
|
|
18424
|
+
const { issueRpc } = await import('./rpc-DMpJef5v.mjs');
|
|
18383
18425
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
18384
18426
|
},
|
|
18385
18427
|
onWorkflow: async (params) => {
|
|
18386
|
-
const { workflowRpc } = await import('./rpc-
|
|
18428
|
+
const { workflowRpc } = await import('./rpc-C9U0Ho27.mjs');
|
|
18387
18429
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
18388
18430
|
},
|
|
18389
18431
|
onRipgrep: async (args, cwd) => {
|
|
@@ -18995,11 +19037,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
18995
19037
|
});
|
|
18996
19038
|
},
|
|
18997
19039
|
onIssue: async (params) => {
|
|
18998
|
-
const { issueRpc } = await import('./rpc-
|
|
19040
|
+
const { issueRpc } = await import('./rpc-DMpJef5v.mjs');
|
|
18999
19041
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
19000
19042
|
},
|
|
19001
19043
|
onWorkflow: async (params) => {
|
|
19002
|
-
const { workflowRpc } = await import('./rpc-
|
|
19044
|
+
const { workflowRpc } = await import('./rpc-C9U0Ho27.mjs');
|
|
19003
19045
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
19004
19046
|
},
|
|
19005
19047
|
onRipgrep: async (args, cwd) => {
|
|
@@ -20114,7 +20156,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
20114
20156
|
const PING_TIMEOUT_MS = 15e3;
|
|
20115
20157
|
const POST_RECONNECT_GRACE_MS = 2e4;
|
|
20116
20158
|
const RECONNECT_JITTER_MS = 2500;
|
|
20117
|
-
const { WorkflowScheduler } = await import('./scheduler-
|
|
20159
|
+
const { WorkflowScheduler } = await import('./scheduler-CAUwniWA.mjs');
|
|
20118
20160
|
const workflowScheduler = new WorkflowScheduler({
|
|
20119
20161
|
projectRoots: () => {
|
|
20120
20162
|
const dirs = /* @__PURE__ */ new Set();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ah as applyClaudeProxyEnv, ai as composeSessionId, aj as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ak as generateHookSettings } from './run-
|
|
1
|
+
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ah as applyClaudeProxyEnv, ai as composeSessionId, aj as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ak as generateHookSettings } from './run-BNeZiySO.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';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as resolveProjectRoot, D as listWorkflows, E as isWorkflowEnabled, F as workflowCrons, y as runWorkflow, G as cronMatches } from './run-
|
|
1
|
+
import { j as resolveProjectRoot, D as listWorkflows, E as isWorkflowEnabled, F as workflowCrons, y as runWorkflow, G as cronMatches } from './run-BNeZiySO.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-BaVcBOKA.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-BaVcBOKA.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-BaVcBOKA.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-BaVcBOKA.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-BaVcBOKA.mjs');
|
|
239
239
|
const { machine, server } = await connectAndGetMachine(machineId);
|
|
240
240
|
try {
|
|
241
241
|
const info = await machine.serveInfo();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as READ_ONLY_TOOLS, M as loadMachineContext, N as buildMachineInstructions, O as machineToolsForRole, P as buildMachineTools } from './run-
|
|
1
|
+
import { R as READ_ONLY_TOOLS, M as loadMachineContext, N as buildMachineInstructions, O as machineToolsForRole, P as buildMachineTools } from './run-BNeZiySO.mjs';
|
|
2
2
|
import 'node:child_process';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|