svamp-cli 0.2.276 → 0.2.277
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-DYduijxc.mjs → agentCommands-DN7hb_oL.mjs} +5 -5
- package/dist/{auth-DF4dUys9.mjs → auth-Ci70oWRc.mjs} +1 -1
- package/dist/{cli-BrZuHfQa.mjs → cli-Cgzvydbh.mjs} +95 -63
- package/dist/cli.mjs +2 -2
- package/dist/{commands-DINv6746.mjs → commands-BryGjm3r.mjs} +1 -1
- package/dist/{commands-DLlgY23R.mjs → commands-CT7m_PBV.mjs} +1 -1
- package/dist/{commands-clA49kHW.mjs → commands-CWVq7FHR.mjs} +7 -7
- package/dist/{commands-Cxn4Cmts.mjs → commands-Cc2BZW1I.mjs} +8 -7
- package/dist/{commands-7WZLaYv2.mjs → commands-CgQ3wXOd.mjs} +2 -2
- package/dist/{commands-DvD1mdMU.mjs → commands-Dx-uU1hc.mjs} +2 -2
- package/dist/{commands-BjkRYbLw.mjs → commands-KWZkSbXH.mjs} +2 -2
- package/dist/{fleet-xyz1ik_N.mjs → fleet-w3MI6ljI.mjs} +2 -2
- package/dist/{frpc-BkGcc69x.mjs → frpc-DnxvF_Mx.mjs} +1 -1
- package/dist/{headlessCli-Je1q_pDw.mjs → headlessCli-CqxD6lTs.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/notifyCommands-D8tYXxPA.mjs +128 -0
- package/dist/package-D5iaKvt5.mjs +64 -0
- package/dist/{pinnedClaudeCode-D8Tbz32G.mjs → pinnedClaudeCode-BaMR97BE.mjs} +1 -1
- package/dist/{rpc-CBa5WaBD.mjs → rpc-BKDKqllr.mjs} +1 -3
- package/dist/{rpc-HiJYPcOU.mjs → rpc-BvXiNu-z.mjs} +1 -1
- package/dist/{run-DjThStDG.mjs → run-CzXwL-ig.mjs} +98 -22
- package/dist/{run-BRHMebDp.mjs → run-pAWQPn46.mjs} +1 -1
- package/dist/{scheduler-D1JpZ5m8.mjs → scheduler-D-25wsin.mjs} +1 -1
- package/dist/{serveCommands-D-3LtTUy.mjs → serveCommands-DIckIiqD.mjs} +5 -5
- package/dist/{sideband-DdcXgJHf.mjs → sideband-Bk0GhfIX.mjs} +1 -1
- package/package.json +2 -2
- package/dist/package-D3rksT8O.mjs +0 -64
|
@@ -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-DnxvF_Mx.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-DnxvF_Mx.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-Bk0GhfIX.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-BryGjm3r.mjs');
|
|
6395
6395
|
const timeout = c.reply?.timeout_sec || 120;
|
|
6396
6396
|
let result;
|
|
6397
6397
|
try {
|
|
@@ -6824,11 +6824,10 @@ function computeRetryDelayMs(attempt, cfg = getRateLimitRetryConfig(), rng = Mat
|
|
|
6824
6824
|
}
|
|
6825
6825
|
function isRetryableRateLimit(text, apiErrorStatus) {
|
|
6826
6826
|
const t = (text || "").toLowerCase();
|
|
6827
|
-
const
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
t.includes("spending limit") || t.includes("credit") || t.includes("balance") || t.includes("billing") || t.includes("payment") || t.includes("subscription") || t.includes("1m-context") || t.includes("1m context") || t.includes("insufficient") || t.includes("usage limit") && !t.includes("not your usage limit");
|
|
6827
|
+
const strongHardLimit = t.includes("quota") || t.includes("spending limit") || t.includes("payment") || t.includes("subscription") || t.includes("1m-context") || t.includes("1m context") || t.includes("insufficient") || t.includes("usage limit") && !t.includes("not your usage limit");
|
|
6828
|
+
const serverFaultSignal = typeof apiErrorStatus === "number" && apiErrorStatus >= 500 && apiErrorStatus <= 599 || /\b(500|502|503|504|520|521|522|523|524|529)\b/.test(t);
|
|
6829
|
+
const weakBillingLimit = !serverFaultSignal && (t.includes("credit") || t.includes("balance") || t.includes("billing"));
|
|
6830
|
+
const hardLimit = strongHardLimit || weakBillingLimit;
|
|
6832
6831
|
if (hardLimit) return false;
|
|
6833
6832
|
const authIssue = apiErrorStatus === 401 || apiErrorStatus === 403 || t.includes("unauthorized") || t.includes("invalid api key") || t.includes("authentication") || t.includes("forbidden");
|
|
6834
6833
|
if (authIssue) return false;
|
|
@@ -9664,6 +9663,52 @@ class SharingNotificationSync {
|
|
|
9664
9663
|
this.log(`[USER EVENT] Failed to publish ${event.type} for ${event.recipientEmail}: ${err.message}`);
|
|
9665
9664
|
}
|
|
9666
9665
|
}
|
|
9666
|
+
/**
|
|
9667
|
+
* List user events addressed to `recipientEmail` (the bell inbox), newest first, excluding
|
|
9668
|
+
* expired ones. Reuses the global svamp-user-events collection — cross-workspace by design.
|
|
9669
|
+
* Mirrors the webapp's fetchUserEvents so the CLI reads the same source of truth.
|
|
9670
|
+
*/
|
|
9671
|
+
async listUserEvents(recipientEmail) {
|
|
9672
|
+
if (!this.initialized || !this.eventCollectionId) return [];
|
|
9673
|
+
const normalized = recipientEmail.toLowerCase();
|
|
9674
|
+
try {
|
|
9675
|
+
const children = await this.artifactManager.list({
|
|
9676
|
+
parent_id: this.eventCollectionId,
|
|
9677
|
+
_rkwargs: true
|
|
9678
|
+
});
|
|
9679
|
+
if (!Array.isArray(children)) return [];
|
|
9680
|
+
const now = Date.now();
|
|
9681
|
+
return children.map((c) => c?.manifest).filter((m) => !!m && typeof m.recipientEmail === "string" && m.recipientEmail.toLowerCase() === normalized && (!m.expiresAt || m.expiresAt > now)).sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
|
|
9682
|
+
} catch (err) {
|
|
9683
|
+
this.log(`[USER EVENT] listUserEvents failed for ${recipientEmail}: ${err.message}`);
|
|
9684
|
+
return [];
|
|
9685
|
+
}
|
|
9686
|
+
}
|
|
9687
|
+
/**
|
|
9688
|
+
* Acknowledge (dismiss) a user event by deleting its artifact. The alias is derived from the
|
|
9689
|
+
* event id + recipient email, so only the recipient's own event is removed. Returns true if a
|
|
9690
|
+
* matching event was deleted.
|
|
9691
|
+
*/
|
|
9692
|
+
async ackUserEvent(eventId, recipientEmail) {
|
|
9693
|
+
if (!this.initialized || !this.eventCollectionId) return false;
|
|
9694
|
+
const normalized = recipientEmail.toLowerCase();
|
|
9695
|
+
try {
|
|
9696
|
+
const children = await this.artifactManager.list({ parent_id: this.eventCollectionId, _rkwargs: true });
|
|
9697
|
+
if (!Array.isArray(children)) return false;
|
|
9698
|
+
const short = eventId.slice(0, 8);
|
|
9699
|
+
const match = children.find((c) => {
|
|
9700
|
+
const m = c?.manifest;
|
|
9701
|
+
return m && typeof m.id === "string" && (m.id === eventId || m.id.slice(0, 8) === short) && typeof m.recipientEmail === "string" && m.recipientEmail.toLowerCase() === normalized;
|
|
9702
|
+
});
|
|
9703
|
+
if (!match) return false;
|
|
9704
|
+
await this.artifactManager.delete({ artifact_id: match.id, _rkwargs: true });
|
|
9705
|
+
this.log(`[USER EVENT] Acked ${eventId.slice(0, 8)} for ${recipientEmail}`);
|
|
9706
|
+
return true;
|
|
9707
|
+
} catch (err) {
|
|
9708
|
+
this.log(`[USER EVENT] ackUserEvent failed for ${recipientEmail}: ${err.message}`);
|
|
9709
|
+
return false;
|
|
9710
|
+
}
|
|
9711
|
+
}
|
|
9667
9712
|
// ── Sharing config diff + sync ───────────────────────────────────
|
|
9668
9713
|
async syncSharing(sessionId, oldSharing, newSharing, context) {
|
|
9669
9714
|
if (!this.initialized) return;
|
|
@@ -11487,7 +11532,13 @@ class CodexAppServerBackend {
|
|
|
11487
11532
|
if (avail === false) throw new Error("Installed Codex is too old for app-server \u2014 upgrade to >= 0.100 (`npm i -g @openai/codex@latest`).");
|
|
11488
11533
|
await this.client.start();
|
|
11489
11534
|
if (this.opts.resumeThreadId) {
|
|
11490
|
-
|
|
11535
|
+
try {
|
|
11536
|
+
await this.client.resumeThread({ threadId: this.opts.resumeThreadId, model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
11537
|
+
} catch (err) {
|
|
11538
|
+
this.log(`[Codex] resumeThread(${this.opts.resumeThreadId}) failed (${err?.message ?? err}) \u2014 starting a fresh thread instead (context lost, session preserved)`);
|
|
11539
|
+
const r = await this.client.startThread({ model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
11540
|
+
this.model = this.model ?? r.model;
|
|
11541
|
+
}
|
|
11491
11542
|
} else {
|
|
11492
11543
|
const r = await this.client.startThread({ model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
11493
11544
|
this.model = this.model ?? r.model;
|
|
@@ -16133,7 +16184,7 @@ async function startDaemon(options) {
|
|
|
16133
16184
|
try {
|
|
16134
16185
|
const dir = loadSessionIndex()[sessionId]?.directory;
|
|
16135
16186
|
if (!dir) return;
|
|
16136
|
-
const { reconcileServiceLinks } = await import('./agentCommands-
|
|
16187
|
+
const { reconcileServiceLinks } = await import('./agentCommands-DN7hb_oL.mjs');
|
|
16137
16188
|
const configPath = getSvampConfigPath(dir, sessionId);
|
|
16138
16189
|
const config = readSvampConfig(configPath);
|
|
16139
16190
|
const entries = Array.from(urls.entries());
|
|
@@ -16151,7 +16202,7 @@ async function startDaemon(options) {
|
|
|
16151
16202
|
}
|
|
16152
16203
|
}
|
|
16153
16204
|
async function createExposedTunnel(spec) {
|
|
16154
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
16205
|
+
const { FrpcTunnel } = await import('./frpc-DnxvF_Mx.mjs');
|
|
16155
16206
|
const tunnel = new FrpcTunnel({
|
|
16156
16207
|
name: spec.name,
|
|
16157
16208
|
ports: spec.ports,
|
|
@@ -16179,7 +16230,7 @@ async function startDaemon(options) {
|
|
|
16179
16230
|
ensureAutoInstalledCommands(logger);
|
|
16180
16231
|
(async () => {
|
|
16181
16232
|
try {
|
|
16182
|
-
const { beginClaudeVersionReconcile } = await import('./pinnedClaudeCode-
|
|
16233
|
+
const { beginClaudeVersionReconcile } = await import('./pinnedClaudeCode-BaMR97BE.mjs');
|
|
16183
16234
|
beginClaudeVersionReconcile((msg) => logger.log(msg));
|
|
16184
16235
|
} catch (e) {
|
|
16185
16236
|
logger.log(`[claude-version] check failed: ${e?.message || e}`);
|
|
@@ -18367,11 +18418,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
18367
18418
|
});
|
|
18368
18419
|
},
|
|
18369
18420
|
onIssue: async (params) => {
|
|
18370
|
-
const { issueRpc } = await import('./rpc-
|
|
18421
|
+
const { issueRpc } = await import('./rpc-BvXiNu-z.mjs');
|
|
18371
18422
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
18372
18423
|
},
|
|
18373
18424
|
onWorkflow: async (params) => {
|
|
18374
|
-
const { workflowRpc } = await import('./rpc-
|
|
18425
|
+
const { workflowRpc } = await import('./rpc-BKDKqllr.mjs');
|
|
18375
18426
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
18376
18427
|
},
|
|
18377
18428
|
onRipgrep: async (args, cwd) => {
|
|
@@ -18983,11 +19034,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
18983
19034
|
});
|
|
18984
19035
|
},
|
|
18985
19036
|
onIssue: async (params) => {
|
|
18986
|
-
const { issueRpc } = await import('./rpc-
|
|
19037
|
+
const { issueRpc } = await import('./rpc-BvXiNu-z.mjs');
|
|
18987
19038
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
18988
19039
|
},
|
|
18989
19040
|
onWorkflow: async (params) => {
|
|
18990
|
-
const { workflowRpc } = await import('./rpc-
|
|
19041
|
+
const { workflowRpc } = await import('./rpc-BKDKqllr.mjs');
|
|
18991
19042
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
18992
19043
|
},
|
|
18993
19044
|
onRipgrep: async (args, cwd) => {
|
|
@@ -19489,7 +19540,11 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
19489
19540
|
"event"
|
|
19490
19541
|
);
|
|
19491
19542
|
sessionService.sendSessionEnd();
|
|
19492
|
-
|
|
19543
|
+
if (!acpPersisted) {
|
|
19544
|
+
deleteSession(sessionId);
|
|
19545
|
+
} else {
|
|
19546
|
+
logger.log(`[Agent Session ${sessionId}] start failed on restore \u2014 preserving persisted session for a later retry (not deleting)`);
|
|
19547
|
+
}
|
|
19493
19548
|
});
|
|
19494
19549
|
return {
|
|
19495
19550
|
type: "success",
|
|
@@ -19631,13 +19686,16 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
19631
19686
|
logger.log(`Restored machine metadata (sharing=${!!persistedMachineMeta.sharing}, securityContextConfig=${!!persistedMachineMeta.securityContextConfig}, injectPlatformGuidance=${persistedMachineMeta.injectPlatformGuidance})`);
|
|
19632
19687
|
}
|
|
19633
19688
|
let seededSharing = persistedMachineMeta?.sharing;
|
|
19689
|
+
let seedShareNotify = null;
|
|
19634
19690
|
const seedEmails = parseDaemonShareEmails(process.env[DAEMON_SHARE_EMAILS_ENV]);
|
|
19635
19691
|
if (seedEmails.length > 0) {
|
|
19636
19692
|
const ownerEmail = parseJwtEmail(process.env.HYPHA_TOKEN || "") || void 0;
|
|
19693
|
+
const preSeedSharing = seededSharing;
|
|
19637
19694
|
const result = applyDaemonShareSeed(seededSharing, seedEmails, ownerEmail);
|
|
19638
19695
|
seededSharing = result.sharing;
|
|
19639
19696
|
if (result.addedEmails.length > 0) {
|
|
19640
19697
|
logger.log(`Seeded machine sharing with ${result.addedEmails.length} user(s): ${result.addedEmails.join(", ")}`);
|
|
19698
|
+
if (seededSharing) seedShareNotify = { oldSharing: preSeedSharing, newSharing: seededSharing, added: result.addedEmails };
|
|
19641
19699
|
} else {
|
|
19642
19700
|
logger.log(`Daemon --share seed: no new users (all already in allowedUsers).`);
|
|
19643
19701
|
}
|
|
@@ -19674,7 +19732,25 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
19674
19732
|
startedAt: Date.now()
|
|
19675
19733
|
};
|
|
19676
19734
|
const sharingNotificationSync = new SharingNotificationSync(server, logger.log);
|
|
19677
|
-
|
|
19735
|
+
const seedNotifyWorkspace = server.config.workspace;
|
|
19736
|
+
const seedNotifyClientId = server.config.client_id;
|
|
19737
|
+
sharingNotificationSync.init().then(() => {
|
|
19738
|
+
if (seedShareNotify) {
|
|
19739
|
+
sharingNotificationSync.syncSharing(
|
|
19740
|
+
`machine-${machineId}`,
|
|
19741
|
+
seedShareNotify.oldSharing,
|
|
19742
|
+
seedShareNotify.newSharing,
|
|
19743
|
+
{
|
|
19744
|
+
machineId,
|
|
19745
|
+
machineServiceId: `${seedNotifyWorkspace}/${seedNotifyClientId}:default`,
|
|
19746
|
+
ownerWorkspace: seedNotifyWorkspace,
|
|
19747
|
+
ownerEmail: seedShareNotify.newSharing.owner || "",
|
|
19748
|
+
label: process.env.SVAMP_DISPLAY_NAME || machineId,
|
|
19749
|
+
shareType: "machine"
|
|
19750
|
+
}
|
|
19751
|
+
).catch((e) => logger.log(`[share-seed] notify failed: ${e?.message || e}`));
|
|
19752
|
+
}
|
|
19753
|
+
}).catch(() => {
|
|
19678
19754
|
});
|
|
19679
19755
|
const buildMachineHandlers = () => ({
|
|
19680
19756
|
spawnSession,
|
|
@@ -19880,7 +19956,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
19880
19956
|
}
|
|
19881
19957
|
if (persistedSessions.length > 0) {
|
|
19882
19958
|
try {
|
|
19883
|
-
const { awaitClaudeVersionReady } = await import('./pinnedClaudeCode-
|
|
19959
|
+
const { awaitClaudeVersionReady } = await import('./pinnedClaudeCode-BaMR97BE.mjs');
|
|
19884
19960
|
await awaitClaudeVersionReady();
|
|
19885
19961
|
} catch {
|
|
19886
19962
|
}
|
|
@@ -20077,7 +20153,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
20077
20153
|
const PING_TIMEOUT_MS = 15e3;
|
|
20078
20154
|
const POST_RECONNECT_GRACE_MS = 2e4;
|
|
20079
20155
|
const RECONNECT_JITTER_MS = 2500;
|
|
20080
|
-
const { WorkflowScheduler } = await import('./scheduler-
|
|
20156
|
+
const { WorkflowScheduler } = await import('./scheduler-D-25wsin.mjs');
|
|
20081
20157
|
const workflowScheduler = new WorkflowScheduler({
|
|
20082
20158
|
projectRoots: () => {
|
|
20083
20159
|
const dirs = /* @__PURE__ */ new Set();
|
|
@@ -20700,4 +20776,4 @@ var run = /*#__PURE__*/Object.freeze({
|
|
|
20700
20776
|
writeStopMarker: writeStopMarker
|
|
20701
20777
|
});
|
|
20702
20778
|
|
|
20703
|
-
export {
|
|
20779
|
+
export { clearStopMarker as $, removeWorkflow as A, saveWorkflow as B, rawWorkflow as C, listWorkflows as D, isWorkflowEnabled as E, workflowCrons as F, cronMatches as G, summarize as H, workflowSteps as I, parseJwtEmail as J, loadMachineContext as K, buildMachineInstructions as L, machineToolsForRole as M, buildMachineTools as N, parseFrontmatter as O, getSkillsServer as P, getSkillsWorkspaceName as Q, READ_ONLY_TOOLS as R, SharingNotificationSync as S, getSkillsCollectionName as T, fetchWithTimeout as U, searchSkills as V, SKILLS_DIR as W, getSkillInfo as X, downloadSkillFile as Y, listSkillFiles as Z, resolveModel as _, createSessionStore as a, stopMarkerExists as a0, formatHandle as a1, normalizeAllowedUser as a2, loadSecurityContextConfig as a3, resolveSecurityContext as a4, buildSecurityContextFromFlags as a5, mergeSecurityContexts as a6, buildSessionShareUrl as a7, computeOutboundHop as a8, registerAwaitingReply as a9, buildMachineShareUrl as aa, parseHandle as ab, handleMatchesMetadata as ac, describeMisconfiguration as ad, buildMachineDeps as ae, applyClaudeProxyEnv as af, composeSessionId as ag, generateFriendlyName as ah, generateHookSettings as ai, staticFileServer as aj, instanceConfig as ak, claudeAuth as al, codexProvider as am, projectInfo as an, DefaultTransport$1 as ao, acpBackend as ap, acpAgentConfig as aq, codexAppServerBackend as ar, GeminiTransport$1 as as, api as at, run as au, stopDaemon as b, connectToHypha as c, daemonStatus as d, getFrpsSubdomainHost as e, getFrpsServerPort as f, getHyphaServerUrl$1 as g, getFrpsServerAddr as h, shortId as i, resolveProjectRoot as j, getIssue as k, resumeIssue as l, addComment as m, addIssue as n, listIssues as o, pauseIssue as p, searchIssues as q, registerMachineService as r, startDaemon as s, isVisibleTo as t, updateIssue as u, getRun as v, listRuns as w, getWorkflow as x, runWorkflow as y, setWorkflowEnabled as z };
|
|
@@ -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 { af as applyClaudeProxyEnv, ag as composeSessionId, ah as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ai as generateHookSettings } from './run-CzXwL-ig.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-CzXwL-ig.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-BryGjm3r.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-BryGjm3r.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-BryGjm3r.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-BryGjm3r.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-BryGjm3r.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,
|
|
1
|
+
import { R as READ_ONLY_TOOLS, K as loadMachineContext, L as buildMachineInstructions, M as machineToolsForRole, N as buildMachineTools } from './run-CzXwL-ig.mjs';
|
|
2
2
|
import 'node:child_process';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svamp-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.277",
|
|
4
4
|
"description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
|
|
5
5
|
"author": "Amun AI AB",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"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",
|
|
22
22
|
"typecheck": "tsc --noEmit",
|
|
23
|
-
"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-backend-accounts.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-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-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-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-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-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-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 && npx tsx test/test-flush-exit.mjs",
|
|
23
|
+
"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-backend-accounts.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-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-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-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-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-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-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 && npx tsx test/test-flush-exit.mjs",
|
|
24
24
|
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
25
25
|
"dev": "tsx src/cli.ts",
|
|
26
26
|
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
var name = "svamp-cli";
|
|
2
|
-
var version = "0.2.276";
|
|
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-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-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-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-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-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-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-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-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 && npx tsx test/test-flush-exit.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 };
|