svamp-cli 0.2.246 → 0.2.248
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-wOdV4Do1.mjs → agentCommands-B_ozIVKT.mjs} +28 -11
- package/dist/{auth-Bg0Z_bP-.mjs → auth-BLDmT7XN.mjs} +2 -1
- package/dist/cli.mjs +83 -68
- package/dist/{commands-BhLGBhBS.mjs → commands-C3TQOYUo.mjs} +2 -1
- package/dist/{commands-Z8Ki8iA9.mjs → commands-CL8YI8k5.mjs} +2 -1
- package/dist/{commands-Bi_LZXPe.mjs → commands-CRMQUQZG.mjs} +2 -1
- package/dist/{commands-CudvGpEz.mjs → commands-Cs2fNd-_.mjs} +7 -7
- package/dist/{commands-CniwP5Tm.mjs → commands-DS4i8ohA.mjs} +10 -6
- package/dist/{commands-CkduYG4a.mjs → commands-Djvi1cZ2.mjs} +3 -2
- package/dist/{commands-D9khoYtI.mjs → commands-DwhA-iV3.mjs} +3 -2
- package/dist/{fleet-DCMPBC7b.mjs → fleet-CJZOVjOY.mjs} +13 -4
- package/dist/{frpc-nvGz8fWs.mjs → frpc-CsjEXBuS.mjs} +2 -1
- package/dist/{headlessCli-d6XjdG6n.mjs → headlessCli-qBontdlf.mjs} +3 -2
- package/dist/index.mjs +2 -1
- package/dist/{package-CUTX-CB-.mjs → package-B7z6GsNX.mjs} +2 -2
- package/dist/{rpc-CDI7i151.mjs → rpc-BGFgegj5.mjs} +1 -3
- package/dist/{rpc-s_Hibfpl.mjs → rpc-C1DI7HfZ.mjs} +2 -1
- package/dist/{run-DRR6psuh.mjs → run-C61rsl7r.mjs} +2 -1
- package/dist/{run-BPZ_1RCI.mjs → run-CHIppB2r.mjs} +739 -35
- package/dist/{scheduler-E1Bw4HUY.mjs → scheduler-Csp21zzg.mjs} +1 -3
- package/dist/{serveCommands-Af_7qqzA.mjs → serveCommands-BYHk72ZO.mjs} +5 -5
- package/dist/{serveManager-DGRpRAFM.mjs → serveManager-Di3xrvG2.mjs} +3 -2
- package/dist/{sideband-C-0cCNeL.mjs → sideband-Cs-kNLye.mjs} +2 -1
- package/package.json +2 -2
- package/dist/runStore-DKC_bMSi.mjs +0 -239
- package/dist/store-BTs0H_y0.mjs +0 -148
|
@@ -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 {
|
|
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-CHIppB2r.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -20,6 +20,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
20
20
|
import 'zod';
|
|
21
21
|
import 'node:fs/promises';
|
|
22
22
|
import 'node:util';
|
|
23
|
+
import 'yaml';
|
|
23
24
|
|
|
24
25
|
function formatTime(ts) {
|
|
25
26
|
if (!ts) return "-";
|
|
@@ -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 {
|
|
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-CHIppB2r.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -20,6 +20,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
20
20
|
import 'zod';
|
|
21
21
|
import 'node:fs/promises';
|
|
22
22
|
import 'node:util';
|
|
23
|
+
import 'yaml';
|
|
23
24
|
|
|
24
25
|
const SVAMP_HOME = process.env.SVAMP_HOME || join(os.homedir(), ".svamp");
|
|
25
26
|
const ENV_FILE = join(SVAMP_HOME, ".env");
|
|
@@ -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 {
|
|
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-CHIppB2r.mjs';
|
|
5
5
|
import 'os';
|
|
6
6
|
import 'fs/promises';
|
|
7
7
|
import 'fs';
|
|
@@ -20,6 +20,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
20
20
|
import 'zod';
|
|
21
21
|
import 'node:fs/promises';
|
|
22
22
|
import 'node:util';
|
|
23
|
+
import 'yaml';
|
|
23
24
|
|
|
24
25
|
const STATUS_GLYPH = {
|
|
25
26
|
ready: "\u25C9",
|
|
@@ -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-CsjEXBuS.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-C3TQOYUo.mjs');
|
|
72
72
|
const { server, machine } = await connectAndGetMachine();
|
|
73
73
|
try {
|
|
74
74
|
const status = await machine.tunnelStart({
|
|
@@ -90,11 +90,11 @@ 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-B_ozIVKT.mjs');
|
|
94
94
|
let added = 0;
|
|
95
95
|
for (const [port, url] of urlEntries) {
|
|
96
96
|
const label = urlEntries.length > 1 ? `${name}:${port}` : name;
|
|
97
|
-
if (autoAddSessionLink(String(url), label)) added++;
|
|
97
|
+
if (autoAddSessionLink(String(url), label, void 0, { kind: "tunnel", name })) added++;
|
|
98
98
|
}
|
|
99
99
|
if (added) console.log(` \u21B3 added to this session's Launch Pad`);
|
|
100
100
|
}
|
|
@@ -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-CsjEXBuS.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-C3TQOYUo.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-C3TQOYUo.mjs');
|
|
189
189
|
const { server, machine } = await connectAndGetMachine();
|
|
190
190
|
try {
|
|
191
191
|
await machine.tunnelStop({ name });
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import { c as workflowSteps, s as setWorkflowEnabled, i as isWorkflowEnabled, r as removeWorkflow, g as getWorkflow, l as listWorkflows, a as saveWorkflow, b as rawWorkflow } from './store-BTs0H_y0.mjs';
|
|
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-CHIppB2r.mjs';
|
|
4
3
|
import 'os';
|
|
5
4
|
import 'fs/promises';
|
|
6
5
|
import 'fs';
|
|
@@ -49,6 +48,7 @@ function describeOn(on) {
|
|
|
49
48
|
if (on.workflow_dispatch) parts.push("workflow_dispatch");
|
|
50
49
|
if (on.channel) parts.push(`channel(${on.channel})`);
|
|
51
50
|
if (on.issue?.length) parts.push(`issue(${on.issue.join("/")})`);
|
|
51
|
+
if (on.idle) parts.push("idle");
|
|
52
52
|
return parts.length ? parts.join(" ") : "manual";
|
|
53
53
|
}
|
|
54
54
|
async function workflowCommand(args) {
|
|
@@ -61,7 +61,7 @@ async function workflowCommand(args) {
|
|
|
61
61
|
const name = positional(rest)[0];
|
|
62
62
|
const runs = allFlags(rest, "--run");
|
|
63
63
|
if (!name || !runs.length) {
|
|
64
|
-
console.error('usage: svamp workflow add <name> --run "<cmd>" [--run "<cmd2>"] [--on schedule|dispatch|channel|issue] [--cron "* * * * *"] [--channel <name>] [--issue ready,closed,labeled]');
|
|
64
|
+
console.error('usage: svamp workflow add <name> --run "<cmd>" [--run "<cmd2>"] [--on schedule|dispatch|channel|issue|idle] [--cron "* * * * *"] [--channel <name>] [--issue ready,closed,labeled]');
|
|
65
65
|
process.exit(1);
|
|
66
66
|
}
|
|
67
67
|
const onKinds = allFlags(rest, "--on");
|
|
@@ -71,6 +71,7 @@ async function workflowCommand(args) {
|
|
|
71
71
|
if (onKinds.includes("dispatch") || onKinds.includes("workflow_dispatch")) on.workflow_dispatch = true;
|
|
72
72
|
if (onKinds.includes("channel") || flag(rest, "--channel")) on.channel = flag(rest, "--channel") || "default";
|
|
73
73
|
if (onKinds.includes("issue") || flag(rest, "--issue")) on.issue = (flag(rest, "--issue") || "ready").split(",").map((s) => s.trim()).filter(Boolean);
|
|
74
|
+
if (onKinds.includes("idle")) on.idle = true;
|
|
74
75
|
const owner = flag(rest, "--session") || process.env.SVAMP_SESSION_ID || null;
|
|
75
76
|
const wf = { name, on: Object.keys(on).length ? on : void 0, jobs: { run: { steps: runs.map((r) => ({ run: r })) } }, session: owner };
|
|
76
77
|
saveWorkflow(root, wf);
|
|
@@ -158,7 +159,7 @@ async function workflowCommand(args) {
|
|
|
158
159
|
console.log([
|
|
159
160
|
"CREATE an automation WORKFLOW from a request (GitHub-Actions-style, .svamp/workflows/<name>.yaml):",
|
|
160
161
|
" svamp workflow add <kebab-name> \\",
|
|
161
|
-
' [--on schedule --cron "<expr>" | --on dispatch | --on channel <name> | --on issue <labels>] \\',
|
|
162
|
+
' [--on schedule --cron "<expr>" | --on dispatch | --on channel <name> | --on issue <labels> | --on idle] \\',
|
|
162
163
|
' --run "<shell/svamp command>" [--run "<cmd2>"]...',
|
|
163
164
|
" - A step is any shell or svamp command. To start a self-verifying loop on a schedule:",
|
|
164
165
|
` --run "svamp session loop <session-id> '<task>' --until '<done criteria>' [--max N]"`,
|
|
@@ -175,7 +176,7 @@ async function workflowCommand(args) {
|
|
|
175
176
|
console.log([
|
|
176
177
|
"svamp workflow \u2014 GitHub-Actions-style automation as .svamp/workflows/<name>.yaml",
|
|
177
178
|
"",
|
|
178
|
-
' add <name> --run "<cmd>" [--run "<cmd2>"] [--on schedule|dispatch|channel|issue]',
|
|
179
|
+
' add <name> --run "<cmd>" [--run "<cmd2>"] [--on schedule|dispatch|channel|issue|idle]',
|
|
179
180
|
' [--cron "0 9 * * 1-5"] [--channel <name>] [--issue ready,closed,labeled]',
|
|
180
181
|
" list | show <name> | remove <name>",
|
|
181
182
|
" enable <name> | disable <name> # toggle active/disabled (scheduler skips disabled)",
|
|
@@ -184,7 +185,10 @@ async function workflowCommand(args) {
|
|
|
184
185
|
"",
|
|
185
186
|
"Each step is a shell command \u2014 every verb is a `svamp` CLI call, e.g.",
|
|
186
187
|
' svamp workflow add nightly --on schedule --cron "0 2 * * *" \\',
|
|
187
|
-
' --run "svamp session send . \\"Run the nightly checks and fix failures\\""'
|
|
188
|
+
' --run "svamp session send . \\"Run the nightly checks and fix failures\\""',
|
|
189
|
+
" # --on idle fires when a session goes active\u2192idle (edge-detected, per-session cooldown),",
|
|
190
|
+
" # e.g. a keep-busy loop:",
|
|
191
|
+
` svamp workflow add keep-busy --on idle --run "svamp session send <id> 'continue'"`
|
|
188
192
|
].join("\n"));
|
|
189
193
|
break;
|
|
190
194
|
default:
|
|
@@ -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-C3TQOYUo.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-CHIppB2r.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -21,6 +21,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
21
21
|
import 'zod';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:util';
|
|
24
|
+
import 'yaml';
|
|
24
25
|
|
|
25
26
|
function getFlag(args, flag) {
|
|
26
27
|
const idx = args.indexOf(flag);
|
|
@@ -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-C3TQOYUo.mjs';
|
|
4
4
|
import { execSync } from 'node:child_process';
|
|
5
|
-
import { u as updateIssue,
|
|
5
|
+
import { u as updateIssue, t as addComment, v as addIssue, k as shortId } from './run-CHIppB2r.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -21,6 +21,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
21
21
|
import 'zod';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:util';
|
|
24
|
+
import 'yaml';
|
|
24
25
|
|
|
25
26
|
function git(cwd, args) {
|
|
26
27
|
return execSync(`git ${args}`, { cwd, stdio: "pipe", encoding: "utf-8" }).toString();
|
|
@@ -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-CHIppB2r.mjs';
|
|
5
5
|
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-ivV7xAp3.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
@@ -21,6 +21,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
21
21
|
import 'zod';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:util';
|
|
24
|
+
import 'yaml';
|
|
24
25
|
|
|
25
26
|
const SVAMP_HOME = process.env.SVAMP_HOME || join(os.homedir(), ".svamp");
|
|
26
27
|
const DAEMON_STATE_FILE = join(SVAMP_HOME, "daemon.state.json");
|
|
@@ -259,12 +260,14 @@ async function fleetUpgradeSvamp(opts) {
|
|
|
259
260
|
console.log("\u26A0 --exclude-self: could not determine this machine's ID (no local daemon state) \u2014 nothing excluded.");
|
|
260
261
|
}
|
|
261
262
|
const { targets, skipped } = partitionSelf(machines, selfId);
|
|
262
|
-
|
|
263
|
+
const restartCmd = opts?.force ? "svamp daemon restart" : "svamp daemon restart --when-idle";
|
|
264
|
+
const mode = opts?.force ? "force (immediate)" : "graceful (restart when idle)";
|
|
265
|
+
console.log(`Upgrading svamp-cli to ${version} on ${targets.length} machine(s)${selfId ? ` (excluding self: ${selfId})` : ""} \u2014 ${mode}...
|
|
263
266
|
`);
|
|
264
267
|
try {
|
|
265
268
|
printHeader(["MACHINE ID", "LABEL", "STATE", "DETAIL"], [20, 24, 6, 60]);
|
|
266
269
|
for (const m of skipped) printResultRow(m, "SKIP", 'self \u2014 restart separately with "svamp daemon restart"');
|
|
267
|
-
const cmd = `bash -lc 'npm install -g svamp-cli@${version} 2>&1 | tail -5 &&
|
|
270
|
+
const cmd = `bash -lc 'npm install -g svamp-cli@${version} 2>&1 | tail -5 && ${restartCmd} 2>&1 | tail -5'`;
|
|
268
271
|
const rows = await fanOut(targets, async (m) => await m.rpc.bash(cmd, void 0));
|
|
269
272
|
let failures = 0;
|
|
270
273
|
for (const r of rows) {
|
|
@@ -279,7 +282,13 @@ async function fleetUpgradeSvamp(opts) {
|
|
|
279
282
|
if (!ok) failures += 1;
|
|
280
283
|
}
|
|
281
284
|
console.log(`
|
|
282
|
-
${rows.length - failures}/${rows.length} machines
|
|
285
|
+
${rows.length - failures}/${rows.length} machines updated (new binary installed).`);
|
|
286
|
+
if (opts?.force) {
|
|
287
|
+
console.log("Daemons restarted immediately onto the new binary.");
|
|
288
|
+
} else {
|
|
289
|
+
console.log("Graceful mode: each daemon restarts itself once it has no actively-thinking session");
|
|
290
|
+
console.log("(new binary already installed; takes effect at that restart). Force now with --force.");
|
|
291
|
+
}
|
|
283
292
|
console.log("Note: daemons will auto-converge Claude Code to the pinned version on restart.");
|
|
284
293
|
if (failures > 0) process.exitCode = 1;
|
|
285
294
|
} finally {
|
|
@@ -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-CHIppB2r.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -21,6 +21,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
21
21
|
import 'zod';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:util';
|
|
24
|
+
import 'yaml';
|
|
24
25
|
|
|
25
26
|
function getMachineFingerprint() {
|
|
26
27
|
const idFile = join(homedir(), ".svamp", "machine-id");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { a1 as resolveModel, ae as describeMisconfiguration, af as buildMachineDeps } from './run-CHIppB2r.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-Cs-kNLye.mjs';
|
|
3
3
|
import { WebSocket } from 'ws';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import 'os';
|
|
@@ -22,6 +22,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
22
22
|
import 'zod';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:util';
|
|
25
|
+
import 'yaml';
|
|
25
26
|
|
|
26
27
|
const PCM_RATE = 24e3;
|
|
27
28
|
function buildHeadlessSessionUpdate(cfg) {
|
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-CHIppB2r.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -20,3 +20,4 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
20
20
|
import 'zod';
|
|
21
21
|
import 'node:fs/promises';
|
|
22
22
|
import 'node:util';
|
|
23
|
+
import 'yaml';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "svamp-cli";
|
|
2
|
-
var version = "0.2.
|
|
2
|
+
var version = "0.2.248";
|
|
3
3
|
var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
|
|
4
4
|
var author = "Amun AI AB";
|
|
5
5
|
var license = "SEE LICENSE IN LICENSE";
|
|
@@ -19,7 +19,7 @@ var exports$1 = {
|
|
|
19
19
|
var scripts = {
|
|
20
20
|
build: "rm -rf dist bin/skills bin/commands && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && cp -r ../../skills/crew bin/skills/crew && cp -r ../../commands bin/commands && tsc --noEmit && pkgroll",
|
|
21
21
|
typecheck: "tsc --noEmit",
|
|
22
|
-
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-btw-proxy-env.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox-store.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-issue-pause.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-cron.mjs && npx tsx test/test-workflow-runs.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-hotreload-seam.mjs && npx tsx test/test-hot-reload.mjs && npx tsx test/test-hot-reload-live.mjs && npx tsx test/test-session-core.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-channel-upload.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs && npx tsx test/test-crew-standalone.mjs && npx tsx test/test-session-links.mjs && npx tsx test/test-issue-loop-pause-guard.mjs && npx tsx test/test-artifact-guard.mjs",
|
|
22
|
+
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-btw-proxy-env.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox-store.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-issue-pause.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-cron.mjs && npx tsx test/test-workflow-runs.mjs && npx tsx test/test-workflow-idle.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-hotreload-seam.mjs && npx tsx test/test-hot-reload.mjs && npx tsx test/test-hot-reload-live.mjs && npx tsx test/test-session-core.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-channel-upload.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs && npx tsx test/test-crew-standalone.mjs && npx tsx test/test-session-links.mjs && npx tsx test/test-issue-loop-pause-guard.mjs && npx tsx test/test-artifact-guard.mjs && npx tsx test/test-graceful-restart.mjs",
|
|
23
23
|
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
24
24
|
dev: "tsx src/cli.ts",
|
|
25
25
|
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { g as getWorkflow, s as setWorkflowEnabled, r as removeWorkflow, a as saveWorkflow, b as rawWorkflow, l as listWorkflows } from './store-BTs0H_y0.mjs';
|
|
3
|
-
import { g as getRun, l as listRuns, r as runWorkflow } from './runStore-DKC_bMSi.mjs';
|
|
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-CHIppB2r.mjs';
|
|
4
2
|
import 'os';
|
|
5
3
|
import 'fs/promises';
|
|
6
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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-CHIppB2r.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -20,6 +20,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
20
20
|
import 'zod';
|
|
21
21
|
import 'node:fs/promises';
|
|
22
22
|
import 'node:util';
|
|
23
|
+
import 'yaml';
|
|
23
24
|
|
|
24
25
|
function followUpCount(body) {
|
|
25
26
|
if (!body) return 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import {
|
|
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-CHIppB2r.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';
|
|
@@ -22,6 +22,7 @@ import '@modelcontextprotocol/sdk/types.js';
|
|
|
22
22
|
import 'zod';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:util';
|
|
25
|
+
import 'yaml';
|
|
25
26
|
|
|
26
27
|
async function startHookServer(onSessionHook, log) {
|
|
27
28
|
return new Promise((resolve, reject) => {
|