svamp-cli 0.2.305 → 0.2.307
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-DlD78CYk.mjs → adminCommands-DZ9MECkY.mjs} +1 -1
- package/dist/{agentCommands-B3FTfsg-.mjs → agentCommands-D68wBf-y.mjs} +5 -5
- package/dist/{auth-2-M7wMHL.mjs → auth-DDgr4YFE.mjs} +1 -1
- package/dist/{cli-CoQ_iSxW.mjs → cli-Bk6IPB9M.mjs} +76 -70
- package/dist/cli.mjs +2 -2
- package/dist/{commands-CfSAnB1T.mjs → commands-Bl9AtWkD.mjs} +2 -2
- package/dist/{commands-CjZKWU9a.mjs → commands-BlIR3KBq.mjs} +2 -2
- package/dist/{commands-HncLAND-.mjs → commands-CESl13XD.mjs} +2 -2
- package/dist/{commands--WPYI2sm.mjs → commands-CJVqMnNf.mjs} +1 -1
- package/dist/{commands-mm9jZg5L.mjs → commands-DJwSJOPD.mjs} +1 -1
- package/dist/{commands-CaeLSCaX.mjs → commands-Dh2S9Gf1.mjs} +1 -1
- package/dist/{commands-CG6AF59l.mjs → commands-DsfIIri_.mjs} +7 -7
- package/dist/{commands-BO-oHKFw.mjs → commands-rGFSTXKu.mjs} +2 -2
- package/dist/{fleet-GklB5DQn.mjs → fleet-okzhGLEY.mjs} +1 -1
- package/dist/{frpc-Dsada5ox.mjs → frpc-NDcBtpwa.mjs} +30 -6
- package/dist/{headlessCli-B2IWICNI.mjs → headlessCli-BkU5B5Jp.mjs} +2 -2
- package/dist/{httpServer-CSMZTpoh.mjs → httpServer-1XjB2h3K.mjs} +15 -2
- package/dist/index.mjs +1 -1
- package/dist/{notifyCommands-BzCPoBy8.mjs → notifyCommands-Oh0kvQgj.mjs} +1 -1
- package/dist/package-k1G6ygGP.mjs +64 -0
- package/dist/{rpc-DOVHyr_6.mjs → rpc-DSyBSuTF.mjs} +2 -1
- package/dist/{rpc--eK356Xz.mjs → rpc-K5xzddMF.mjs} +1 -1
- package/dist/{run-IqHyd8bA.mjs → run-09G0RL2B.mjs} +1 -1
- package/dist/{run-BtVKqoF4.mjs → run-DYVmYsvg.mjs} +861 -378
- package/dist/{scheduler-DAkzJVgr.mjs → scheduler-CtKlSyIq.mjs} +1 -1
- package/dist/{serveCommands-AEtGwfIU.mjs → serveCommands-BnOmV2Z3.mjs} +6 -6
- package/dist/{sideband-CSwHDjzp.mjs → sideband-CdJ0O6L6.mjs} +1 -1
- package/package.json +2 -2
- package/dist/package-DcJpavob.mjs +0 -64
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { connectAndResolveSession } from './commands
|
|
1
|
+
import { connectAndResolveSession } from './commands-CJVqMnNf.mjs';
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:child_process';
|
|
4
4
|
import 'node:path';
|
|
5
5
|
import 'node:os';
|
|
6
|
-
import './run-
|
|
6
|
+
import './run-DYVmYsvg.mjs';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'fs';
|
|
@@ -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,
|
|
4
|
+
import { f as flushAndExit } from './cli-Bk6IPB9M.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, I as summarize, n as addIssue } from './run-DYVmYsvg.mjs';
|
|
6
6
|
import './serviceManager-hlOVxkhW.mjs';
|
|
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 {
|
|
5
|
+
import { a4 as formatHandle, a5 as normalizeAllowedUser, a6 as loadSecurityContextConfig, a7 as resolveSecurityContext, a8 as buildSecurityContextFromFlags, a9 as mergeSecurityContexts, c as connectToHypha, aa as buildSessionShareUrl, ab as computeOutboundHop, i as shortId, ac as registerAwaitingReply, ad as buildMachineShareUrl, ae as parseHandle, af as handleMatchesMetadata } from './run-DYVmYsvg.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -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-DYVmYsvg.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { j as resolveProjectRoot,
|
|
2
|
+
import { j as resolveProjectRoot, J as workflowSteps, z as setWorkflowEnabled, F as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, E as listWorkflows, C as saveWorkflow, D as rawWorkflow } from './run-DYVmYsvg.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
5
5
|
import 'fs';
|
|
@@ -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-NDcBtpwa.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-CJVqMnNf.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-D68wBf-y.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-DYVmYsvg.mjs').then(function (n) { return n.am; });
|
|
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-NDcBtpwa.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-CJVqMnNf.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-CJVqMnNf.mjs');
|
|
194
194
|
const { server, machine } = await connectAndGetMachine();
|
|
195
195
|
try {
|
|
196
196
|
await machine.tunnelStop({ name });
|
|
@@ -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-CJVqMnNf.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-DYVmYsvg.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -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-DYVmYsvg.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-DYVmYsvg.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -282,6 +282,10 @@ class FrpcTunnel {
|
|
|
282
282
|
// #0583: pending reconnect timer (cancelled on destroy)
|
|
283
283
|
// End-to-end probe state (set when options.probeUrl is provided).
|
|
284
284
|
_probeTimer = null;
|
|
285
|
+
_burstTimer = null;
|
|
286
|
+
// #0622: probe burst timer (cancelled on stopProbeLoop/destroy)
|
|
287
|
+
_connectTimeoutTimer = null;
|
|
288
|
+
// #0622: connect() 30s fallback (unref'd + cleared)
|
|
285
289
|
_lastProbeOkAt = 0;
|
|
286
290
|
_lastProbeFailAt = 0;
|
|
287
291
|
_probeOk = false;
|
|
@@ -462,13 +466,19 @@ class FrpcTunnel {
|
|
|
462
466
|
} else if (this.options.adminStatus && this._adminPort) {
|
|
463
467
|
this.startAdminStatusLoop();
|
|
464
468
|
}
|
|
465
|
-
|
|
469
|
+
if (this._connectTimeoutTimer) {
|
|
470
|
+
clearTimeout(this._connectTimeoutTimer);
|
|
471
|
+
this._connectTimeoutTimer = null;
|
|
472
|
+
}
|
|
473
|
+
this._connectTimeoutTimer = setTimeout(() => {
|
|
474
|
+
this._connectTimeoutTimer = null;
|
|
466
475
|
if (!resolved) {
|
|
467
476
|
resolved = true;
|
|
468
477
|
this.log("frpc connection timeout \u2014 continuing (may still connect)");
|
|
469
478
|
resolve();
|
|
470
479
|
}
|
|
471
480
|
}, 3e4);
|
|
481
|
+
this._connectTimeoutTimer.unref?.();
|
|
472
482
|
});
|
|
473
483
|
}
|
|
474
484
|
/** Resolve the effective probe URL, honoring probeUrl > probePath. */
|
|
@@ -540,9 +550,13 @@ class FrpcTunnel {
|
|
|
540
550
|
};
|
|
541
551
|
const initialDelays = [500, 2e3, 5e3, 1e4];
|
|
542
552
|
let burstIdx = 0;
|
|
543
|
-
|
|
553
|
+
if (this._burstTimer) clearInterval(this._burstTimer);
|
|
554
|
+
this._burstTimer = setInterval(() => {
|
|
544
555
|
if (this._destroyed || firstOkFired || burstIdx >= initialDelays.length) {
|
|
545
|
-
|
|
556
|
+
if (this._burstTimer) {
|
|
557
|
+
clearInterval(this._burstTimer);
|
|
558
|
+
this._burstTimer = null;
|
|
559
|
+
}
|
|
546
560
|
return;
|
|
547
561
|
}
|
|
548
562
|
burstIdx++;
|
|
@@ -558,6 +572,10 @@ class FrpcTunnel {
|
|
|
558
572
|
clearInterval(this._probeTimer);
|
|
559
573
|
this._probeTimer = null;
|
|
560
574
|
}
|
|
575
|
+
if (this._burstTimer) {
|
|
576
|
+
clearInterval(this._burstTimer);
|
|
577
|
+
this._burstTimer = null;
|
|
578
|
+
}
|
|
561
579
|
}
|
|
562
580
|
/**
|
|
563
581
|
* Poll frpc's loopback admin API (`/api/status`) to track whether this
|
|
@@ -643,15 +661,21 @@ class FrpcTunnel {
|
|
|
643
661
|
clearTimeout(this._restartTimer);
|
|
644
662
|
this._restartTimer = null;
|
|
645
663
|
}
|
|
664
|
+
if (this._connectTimeoutTimer) {
|
|
665
|
+
clearTimeout(this._connectTimeoutTimer);
|
|
666
|
+
this._connectTimeoutTimer = null;
|
|
667
|
+
}
|
|
646
668
|
if (this.process) {
|
|
647
669
|
this.process.kill("SIGTERM");
|
|
648
670
|
const p = this.process;
|
|
649
|
-
setTimeout(() => {
|
|
671
|
+
const killTimer = setTimeout(() => {
|
|
650
672
|
try {
|
|
651
|
-
p.kill("SIGKILL");
|
|
673
|
+
if (p.exitCode === null && p.signalCode === null) p.kill("SIGKILL");
|
|
652
674
|
} catch {
|
|
653
675
|
}
|
|
654
676
|
}, 5e3);
|
|
677
|
+
killTimer.unref?.();
|
|
678
|
+
p.once("exit", () => clearTimeout(killTimer));
|
|
655
679
|
this.process = null;
|
|
656
680
|
}
|
|
657
681
|
try {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { a1 as resolveModel, ag as describeMisconfiguration, ah as buildMachineDeps } from './run-DYVmYsvg.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CdJ0O6L6.mjs';
|
|
3
3
|
import { WebSocket } from 'ws';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import 'os';
|
|
@@ -127,9 +127,22 @@ data: ${JSON.stringify({ error: out.error })}
|
|
|
127
127
|
`);
|
|
128
128
|
break;
|
|
129
129
|
}
|
|
130
|
-
for (const reply of out.replies || [])
|
|
130
|
+
for (const reply of out.replies || []) {
|
|
131
|
+
if (!res.write(`data: ${JSON.stringify(reply)}
|
|
131
132
|
|
|
132
|
-
`)
|
|
133
|
+
`) && !closed) {
|
|
134
|
+
await new Promise((resolve) => {
|
|
135
|
+
const done = () => {
|
|
136
|
+
res.off("drain", done);
|
|
137
|
+
res.off("close", done);
|
|
138
|
+
resolve();
|
|
139
|
+
};
|
|
140
|
+
res.once("drain", done);
|
|
141
|
+
res.once("close", done);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (closed) break;
|
|
145
|
+
}
|
|
133
146
|
cursor = out.cursor ?? cursor;
|
|
134
147
|
if (!(out.replies || []).length) {
|
|
135
148
|
res.write(": keepalive\n\n");
|
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-DYVmYsvg.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,
|
|
1
|
+
import { c as connectToHypha, S as SharingNotificationSync, K as parseJwtEmail } from './run-DYVmYsvg.mjs';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { existsSync, readFileSync } from 'node:fs';
|
|
4
4
|
import { join } from 'node:path';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var name = "svamp-cli";
|
|
2
|
+
var version = "0.2.307";
|
|
3
|
+
var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
|
|
4
|
+
var author = "Amun AI AB";
|
|
5
|
+
var license = "SEE LICENSE IN LICENSE";
|
|
6
|
+
var type = "module";
|
|
7
|
+
var bin = {
|
|
8
|
+
svamp: "./bin/svamp.mjs"
|
|
9
|
+
};
|
|
10
|
+
var files = [
|
|
11
|
+
"dist",
|
|
12
|
+
"bin"
|
|
13
|
+
];
|
|
14
|
+
var main = "./dist/index.mjs";
|
|
15
|
+
var exports$1 = {
|
|
16
|
+
".": "./dist/index.mjs",
|
|
17
|
+
"./cli": "./dist/cli.mjs"
|
|
18
|
+
};
|
|
19
|
+
var scripts = {
|
|
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
|
+
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-sharing-notify-resolve.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-backend-accounts.mjs && npx tsx test/test-codex-force-model.mjs && npx tsx test/test-backend-oauth.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-user-events.mjs && npx tsx test/test-migrate-children.mjs && npx tsx test/test-outpost-install.mjs && npx tsx test/test-outpost-setup.mjs && npx tsx test/test-outpost-pairing.mjs && npx tsx test/test-outpost-coordinator.mjs && npx tsx test/e2e-outpost-transport.mjs && npx tsx test/test-inbox-reconcile.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-isolation-disable.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-session-access-fallback.mjs && npx tsx test/test-session-rpc-role-map.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-app-server.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-listener-backoff.mjs && npx tsx test/test-session-identity-env.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-compact-detect.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-store-lock.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-restore-decision.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-runs-lock.mjs && npx tsx test/test-workflow-idle.mjs && npx tsx test/test-workflow-reconcile.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-ws-upgrade.mjs && npx tsx test/test-serve-auth.mjs && npx tsx test/test-static-file-server.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-outbox-reload.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-store-lock.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-stateless-dispatch-limiter.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-artifact-sync-pagination.mjs && npx tsx test/test-graceful-restart.mjs && npx tsx test/test-flush-exit.mjs && npx tsx test/test-codex-skills.mjs",
|
|
23
|
+
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
24
|
+
dev: "tsx src/cli.ts",
|
|
25
|
+
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
26
|
+
"test:e2e": "node --no-warnings test/e2e-session-tests.mjs",
|
|
27
|
+
"test:frpc": "npx tsx test/test-frpc-e2e.mjs",
|
|
28
|
+
prepublishOnly: "yarn build"
|
|
29
|
+
};
|
|
30
|
+
var dependencies = {
|
|
31
|
+
"@agentclientprotocol/sdk": "^0.14.1",
|
|
32
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
33
|
+
"hypha-rpc": "0.21.42",
|
|
34
|
+
"node-pty": "1.2.0-beta.11",
|
|
35
|
+
ws: "^8.18.0",
|
|
36
|
+
yaml: "^2.8.2",
|
|
37
|
+
zod: "^3.24.4"
|
|
38
|
+
};
|
|
39
|
+
var devDependencies = {
|
|
40
|
+
"@types/node": ">=20",
|
|
41
|
+
"@types/ws": "^8.5.14",
|
|
42
|
+
pkgroll: "^2.14.2",
|
|
43
|
+
tsx: "^4.20.6",
|
|
44
|
+
typescript: "5.9.3"
|
|
45
|
+
};
|
|
46
|
+
var packageManager = "yarn@1.22.22";
|
|
47
|
+
var _package = {
|
|
48
|
+
name: name,
|
|
49
|
+
version: version,
|
|
50
|
+
description: description,
|
|
51
|
+
author: author,
|
|
52
|
+
license: license,
|
|
53
|
+
type: type,
|
|
54
|
+
bin: bin,
|
|
55
|
+
files: files,
|
|
56
|
+
main: main,
|
|
57
|
+
exports: exports$1,
|
|
58
|
+
scripts: scripts,
|
|
59
|
+
dependencies: dependencies,
|
|
60
|
+
devDependencies: devDependencies,
|
|
61
|
+
packageManager: packageManager
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export { author, bin, _package as default, dependencies, description, devDependencies, exports$1 as exports, files, license, main, name, packageManager, scripts, type, version };
|
|
@@ -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
|
|
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 validateWorkflowName, C as saveWorkflow, D as rawWorkflow, E as listWorkflows } from './run-DYVmYsvg.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -38,6 +38,7 @@ async function workflowRpc(cwd, params) {
|
|
|
38
38
|
if (params.dispatch || params.workflow_dispatch) on.workflow_dispatch = true;
|
|
39
39
|
const runs = Array.isArray(params.runs) ? params.runs.map(String).filter(Boolean) : [];
|
|
40
40
|
if (!params.name || !runs.length) throw new Error("workflow add: name and at least one run step required");
|
|
41
|
+
validateWorkflowName(String(params.name));
|
|
41
42
|
const wf = {
|
|
42
43
|
name: String(params.name),
|
|
43
44
|
on: Object.keys(on).length ? on : void 0,
|
|
@@ -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-DYVmYsvg.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import {
|
|
1
|
+
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ai as applyClaudeProxyEnv, aj as composeSessionId, ak as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, al as generateHookSettings } from './run-DYVmYsvg.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';
|