svamp-cli 0.2.290 → 0.2.292

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.
Files changed (28) hide show
  1. package/dist/{adminCommands-BVvpkVsG.mjs → adminCommands-DZDRGNg5.mjs} +1 -1
  2. package/dist/{agentCommands-fY4keaFA.mjs → agentCommands-C8fAJdhs.mjs} +5 -5
  3. package/dist/{auth-SR7v-8nf.mjs → auth-BcmQVP7H.mjs} +1 -1
  4. package/dist/{cli-Re14H3q0.mjs → cli-DqZdmrNJ.mjs} +69 -69
  5. package/dist/cli.mjs +2 -2
  6. package/dist/{commands-Dc9t_OeY.mjs → commands-B3Acrzyp.mjs} +1 -1
  7. package/dist/{commands-CIyv2Qt-.mjs → commands-BKN7en3Q.mjs} +82 -47
  8. package/dist/{commands-BC-T6wDo.mjs → commands-BV6eWyZm.mjs} +2 -2
  9. package/dist/{commands-Bv5EcsN_.mjs → commands-BvOBPesf.mjs} +1 -1
  10. package/dist/{commands-Dwf-ntY-.mjs → commands-CHMIhR_z.mjs} +2 -2
  11. package/dist/{commands-Dd-6WXYJ.mjs → commands-CnQoA3D_.mjs} +7 -7
  12. package/dist/{commands-zagci6-n.mjs → commands-DDYqDSA9.mjs} +1 -1
  13. package/dist/{commands-CBsV6z9K.mjs → commands-b2t_sFjj.mjs} +2 -2
  14. package/dist/{fleet-DlRlerEG.mjs → fleet-BEjbxK8s.mjs} +1 -1
  15. package/dist/{frpc-B8zTErxt.mjs → frpc-F3PT4R-9.mjs} +1 -1
  16. package/dist/{headlessCli-D22LyDyO.mjs → headlessCli-Bkx9H3P2.mjs} +2 -2
  17. package/dist/index.mjs +1 -1
  18. package/dist/{notifyCommands-5PueOg8Q.mjs → notifyCommands-D2pL7Uve.mjs} +1 -1
  19. package/dist/package-8OT2tFxF.mjs +64 -0
  20. package/dist/{rpc-D3Hg4y67.mjs → rpc-DZaN--oa.mjs} +1 -1
  21. package/dist/{rpc-olai-LcU.mjs → rpc-DpWUJeq7.mjs} +1 -1
  22. package/dist/{run-BNiSOlBf.mjs → run-BXpQa5EA.mjs} +102 -16
  23. package/dist/{run-B6V1wuT6.mjs → run-MIZ1GTno.mjs} +1 -1
  24. package/dist/{scheduler--MbVadb0.mjs → scheduler-iPV9ceRR.mjs} +1 -1
  25. package/dist/{serveCommands-BONMg_af.mjs → serveCommands-Bzzb-Cg2.mjs} +5 -5
  26. package/dist/{sideband-Dnuy9-IL.mjs → sideband-mqmkDL0V.mjs} +1 -1
  27. package/package.json +46 -46
  28. package/dist/package-CpmmajAP.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-B8zTErxt.mjs');
2976
+ const { FrpcTunnel } = await import('./frpc-F3PT4R-9.mjs');
2977
2977
  let tunnel;
2978
2978
  tunnel = new FrpcTunnel({
2979
2979
  name: tunnelName,
@@ -5869,7 +5869,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
5869
5869
  const tunnels = handlers.tunnels;
5870
5870
  if (!tunnels) throw new Error("Tunnel management not available");
5871
5871
  if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
5872
- const { FrpcTunnel } = await import('./frpc-B8zTErxt.mjs');
5872
+ const { FrpcTunnel } = await import('./frpc-F3PT4R-9.mjs');
5873
5873
  const tunnel = new FrpcTunnel({
5874
5874
  name: params.name,
5875
5875
  ports: params.ports,
@@ -6345,7 +6345,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6345
6345
  }
6346
6346
  const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
6347
6347
  const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
6348
- const { toolsForRole } = await import('./sideband-Dnuy9-IL.mjs');
6348
+ const { toolsForRole } = await import('./sideband-mqmkDL0V.mjs');
6349
6349
  const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
6350
6350
  return fmt(r2);
6351
6351
  }
@@ -6450,7 +6450,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6450
6450
  return { ok: false, call_id: callId, status: "busy", error: "channel is busy (too many concurrent requests) \u2014 retry shortly" };
6451
6451
  }
6452
6452
  const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
6453
- const { queryCore } = await import('./commands-Dc9t_OeY.mjs');
6453
+ const { queryCore } = await import('./commands-B3Acrzyp.mjs');
6454
6454
  const timeout = c.reply?.timeout_sec || 120;
6455
6455
  let result;
6456
6456
  try {
@@ -6522,7 +6522,7 @@ ${d?.error || "not found"}`;
6522
6522
  if ("error" in res) return { error: res.error };
6523
6523
  if (res.tier === "stateless") return dispatchStateless(res.c, res.dir, kwargs, context);
6524
6524
  if ("stopped" in res) return { error: `session ${res.sessionId.slice(0, 8)} is stopped \u2014 resume it to reach this channel` };
6525
- return res.rpc.channelSend({ channel: kwargs.channel, message: kwargs.message, from: kwargs.from, key: kwargs.key, session: kwargs.session, reply_to: kwargs.reply_to }, context);
6525
+ return res.rpc.channelSend({ channel: kwargs.channel, message: kwargs.message, from: kwargs.from, key: kwargs.key, session: kwargs.session, reply_to: kwargs.reply_to, no_reply: kwargs.no_reply }, context);
6526
6526
  },
6527
6527
  // Async reply retrieval for queue-mode channels — long-poll the channel outbox
6528
6528
  // for replies addressed to the caller. Routed to the session the message landed
@@ -6901,6 +6901,65 @@ function isRetryableRateLimit(text, apiErrorStatus) {
6901
6901
  return networkTransient;
6902
6902
  }
6903
6903
 
6904
+ const DEFAULT_DOWNLOAD_BASE = "https://github.com/amun-ai/hypha-cloud/releases/latest/download";
6905
+ function shq(v) {
6906
+ return `'${String(v).replace(/'/g, `'\\''`)}'`;
6907
+ }
6908
+ function psq(v) {
6909
+ return `'${String(v).replace(/'/g, `''`)}'`;
6910
+ }
6911
+ function buildOutpostInstall(params) {
6912
+ const base = params.serverBase.replace(/\/$/, "");
6913
+ const dl = (params.downloadBase || DEFAULT_DOWNLOAD_BASE).replace(/\/$/, "");
6914
+ const session = params.session || params.channel;
6915
+ const unix = `curl -fsSL ${shq(`${dl}/install.sh`)} | SVAMP_OUTPOST_SERVER=${shq(base)} SVAMP_OUTPOST_CHANNEL=${shq(params.channel)} SVAMP_OUTPOST_TOKEN=${shq(params.token)} SVAMP_OUTPOST_SESSION=${shq(session)} SVAMP_OUTPOST_DL=${shq(dl)} sh`;
6916
+ const windows = `$env:SVAMP_OUTPOST_SERVER=${psq(base)}; $env:SVAMP_OUTPOST_CHANNEL=${psq(params.channel)}; $env:SVAMP_OUTPOST_TOKEN=${psq(params.token)}; $env:SVAMP_OUTPOST_SESSION=${psq(session)}; $env:SVAMP_OUTPOST_DL=${psq(dl)}; irm ${psq(`${dl}/install.ps1`)} | iex`;
6917
+ const direct = `svamp-outpost --server ${shq(base)} --channel ${shq(params.channel)} --token ${shq(params.token)} --session ${shq(session)}`;
6918
+ return { unix, windows, direct };
6919
+ }
6920
+
6921
+ const DEFAULT_OUTPOST_DOWNLOAD_BASE = "https://static-outpost-bin-08c08c38.svc.hypha.aicell.io";
6922
+ const OUTPOST_BINARIES = [
6923
+ { label: "macOS (Apple Silicon)", file: "svamp-outpost-darwin-arm64" },
6924
+ { label: "macOS (Intel)", file: "svamp-outpost-darwin-amd64" },
6925
+ { label: "Linux (x86-64)", file: "svamp-outpost-linux-amd64" },
6926
+ { label: "Linux (arm64)", file: "svamp-outpost-linux-arm64" },
6927
+ { label: "Windows (x86-64)", file: "svamp-outpost-windows-amd64.exe" }
6928
+ ];
6929
+ function setupOutpostChannel(params) {
6930
+ const serverUrl = params.serverUrl || "https://hypha.aicell.io";
6931
+ const downloadBase = (params.downloadBase || DEFAULT_OUTPOST_DOWNLOAD_BASE).replace(/\/$/, "");
6932
+ const serverBase = gatewayBase(params.channelsServiceId, serverUrl);
6933
+ const channelId = `outpost-${params.session}`;
6934
+ const store = new ChannelStore(params.projectDir);
6935
+ const existing = store.get(channelId);
6936
+ let token = existing?.identity?.callers?.find((c) => c.name === "outpost")?.key;
6937
+ if (!token) token = genKey();
6938
+ const channel = {
6939
+ id: channelId,
6940
+ name: `Remote outpost \u2014 ${params.session}`,
6941
+ description: "FDE remote machine: a svamp-outpost binary connects here and the agent runs commands on it.",
6942
+ enabled: true,
6943
+ bind: { session: params.session },
6944
+ identity: { mode: "per-key", callers: [{ name: "outpost", kind: "agent", key: token }] },
6945
+ action: { kind: "message" },
6946
+ reply: { mode: "queue" },
6947
+ skill: { name: "remote-outpost", description: "Run commands on the connected remote machine." }
6948
+ };
6949
+ store.save(channel);
6950
+ const install = buildOutpostInstall({ serverBase, channel: channelId, token, session: params.session, downloadBase });
6951
+ const connectedCount = (store.get(channelId)?.last_calls || []).filter((c) => c.sender === "outpost").length;
6952
+ return {
6953
+ channelId,
6954
+ token,
6955
+ serverBase,
6956
+ downloadBase,
6957
+ install,
6958
+ binaries: OUTPOST_BINARIES.map((b) => ({ label: b.label, url: `${downloadBase}/${b.file}` })),
6959
+ connectedCount
6960
+ };
6961
+ }
6962
+
6904
6963
  const PARTICIPANTS_CHANNEL_ID = "sys-participants";
6905
6964
  function channelPublicView(c) {
6906
6965
  const u = c.upload;
@@ -7599,6 +7658,10 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
7599
7658
  authorizeRequest(context, metadata.sharing, "view");
7600
7659
  return { channels: channelStore.list().filter((c) => !c.system) };
7601
7660
  },
7661
+ // FDE outpost (#0589/#0593): idempotently ensure this session's outpost channel + return the
7662
+ // install one-liners and per-OS download links for the "Connect a remote machine" UI. Admin-gated
7663
+ // because the returned command carries a channel-scoped COMMAND-EXECUTION token — only the machine
7664
+ // admin/owner should onboard a remotely-controllable machine. Mirrors the CLI `svamp outpost up`.
7602
7665
  saveChannel: async (channel, context) => {
7603
7666
  authorizeRequest(context, metadata.sharing, "admin");
7604
7667
  try {
@@ -7636,6 +7699,28 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
7636
7699
  syncChannelsToMetadata();
7637
7700
  return { success: !!caller, caller };
7638
7701
  },
7702
+ // FDE outpost (#0589): provision (idempotently) this session's outpost channel and return the
7703
+ // install one-liners + direct binary download links + a best-effort connected count. The app's
7704
+ // "Connect a remote machine" panel calls this; it reuses the SAME setupOutpostChannel core as
7705
+ // `svamp outpost up`, so the channel shape + install command never drift. Admin-gated: the
7706
+ // returned token is a capability to run commands on whatever machine connects.
7707
+ outpostConnectInfo: async (params, context) => {
7708
+ authorizeRequest(context, metadata.sharing, "admin");
7709
+ if (!channelsServiceId) return { error: "the channels service is not available on this machine" };
7710
+ try {
7711
+ const info = setupOutpostChannel({
7712
+ session: sessionId,
7713
+ projectDir: metadata.path || process.cwd(),
7714
+ channelsServiceId,
7715
+ serverUrl: channelsBaseUrl,
7716
+ downloadBase: params?.downloadBase || process.env.SVAMP_OUTPOST_DL
7717
+ });
7718
+ syncChannelsToMetadata();
7719
+ return { ok: true, ...info };
7720
+ } catch (e) {
7721
+ return { error: e?.message || String(e) };
7722
+ }
7723
+ },
7639
7724
  getChannelSkill: async (id, context) => {
7640
7725
  authorizeRequest(context, metadata.sharing, "view");
7641
7726
  const c = channelStore.get(id);
@@ -7796,7 +7881,8 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
7796
7881
  }
7797
7882
  if (c.action?.kind === "loop") return { error: "loop channels are served by the channel server, not channelSend" };
7798
7883
  const queue = c.reply?.mode === "queue";
7799
- const replySession = queue ? params.reply_to?.session : void 0;
7884
+ const wantReply = queue && !params.no_reply;
7885
+ const replySession = wantReply ? params.reply_to?.session : void 0;
7800
7886
  const inboxMsg = {
7801
7887
  messageId: callId,
7802
7888
  body: xmlEscape(String(params.message ?? "").slice(0, 16 * 1024)),
@@ -7807,12 +7893,12 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
7807
7893
  channel: c.name,
7808
7894
  subject: c.name,
7809
7895
  ...replySession ? { fromSession: replySession, threadId: callId } : {},
7810
- ...queue ? { channelId: c.id, correlationId: callId } : {}
7896
+ ...wantReply ? { channelId: c.id, correlationId: callId } : {}
7811
7897
  };
7812
7898
  await rpcHandlers.sendInboxMessage(inboxMsg, ownerCtx);
7813
7899
  channelStore.recordCall(c.id, { sender: r.sender.name, verified: r.sender.verified, callId, outcome: "delivered" });
7814
7900
  syncChannelsToMetadata();
7815
- return { ok: true, call_id: callId, status: queue ? "queued" : "accepted", ...queue ? { correlationId: callId } : {} };
7901
+ return { ok: true, call_id: callId, status: wantReply ? "queued" : "accepted", ...wantReply ? { correlationId: callId } : {} };
7816
7902
  } catch (e) {
7817
7903
  channelStore.recordCall(c.id, { sender: r.sender.name, verified: r.sender.verified, callId, outcome: "error" });
7818
7904
  return { ok: false, call_id: callId, status: "error", error: e?.message || String(e) };
@@ -16273,7 +16359,7 @@ async function startDaemon(options) {
16273
16359
  try {
16274
16360
  const dir = loadSessionIndex()[sessionId]?.directory;
16275
16361
  if (!dir) return;
16276
- const { reconcileServiceLinks } = await import('./agentCommands-fY4keaFA.mjs');
16362
+ const { reconcileServiceLinks } = await import('./agentCommands-C8fAJdhs.mjs');
16277
16363
  const configPath = getSvampConfigPath(dir, sessionId);
16278
16364
  const config = readSvampConfig(configPath);
16279
16365
  const entries = Array.from(urls.entries());
@@ -16291,7 +16377,7 @@ async function startDaemon(options) {
16291
16377
  }
16292
16378
  }
16293
16379
  async function createExposedTunnel(spec) {
16294
- const { FrpcTunnel } = await import('./frpc-B8zTErxt.mjs');
16380
+ const { FrpcTunnel } = await import('./frpc-F3PT4R-9.mjs');
16295
16381
  const tunnel = new FrpcTunnel({
16296
16382
  name: spec.name,
16297
16383
  ports: spec.ports,
@@ -18507,11 +18593,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
18507
18593
  });
18508
18594
  },
18509
18595
  onIssue: async (params) => {
18510
- const { issueRpc } = await import('./rpc-olai-LcU.mjs');
18596
+ const { issueRpc } = await import('./rpc-DpWUJeq7.mjs');
18511
18597
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
18512
18598
  },
18513
18599
  onWorkflow: async (params) => {
18514
- const { workflowRpc } = await import('./rpc-D3Hg4y67.mjs');
18600
+ const { workflowRpc } = await import('./rpc-DZaN--oa.mjs');
18515
18601
  return workflowRpc(params?.cwd || directory, params || {});
18516
18602
  },
18517
18603
  onRipgrep: async (args, cwd) => {
@@ -19124,11 +19210,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
19124
19210
  });
19125
19211
  },
19126
19212
  onIssue: async (params) => {
19127
- const { issueRpc } = await import('./rpc-olai-LcU.mjs');
19213
+ const { issueRpc } = await import('./rpc-DpWUJeq7.mjs');
19128
19214
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
19129
19215
  },
19130
19216
  onWorkflow: async (params) => {
19131
- const { workflowRpc } = await import('./rpc-D3Hg4y67.mjs');
19217
+ const { workflowRpc } = await import('./rpc-DZaN--oa.mjs');
19132
19218
  return workflowRpc(params?.cwd || directory, params || {});
19133
19219
  },
19134
19220
  onRipgrep: async (args, cwd) => {
@@ -20248,7 +20334,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
20248
20334
  const PING_TIMEOUT_MS = 15e3;
20249
20335
  const POST_RECONNECT_GRACE_MS = 2e4;
20250
20336
  const RECONNECT_JITTER_MS = 2500;
20251
- const { WorkflowScheduler } = await import('./scheduler--MbVadb0.mjs');
20337
+ const { WorkflowScheduler } = await import('./scheduler-iPV9ceRR.mjs');
20252
20338
  const workflowScheduler = new WorkflowScheduler({
20253
20339
  projectRoots: () => {
20254
20340
  const dirs = /* @__PURE__ */ new Set();
@@ -20871,4 +20957,4 @@ var run = /*#__PURE__*/Object.freeze({
20871
20957
  writeStopMarker: writeStopMarker
20872
20958
  });
20873
20959
 
20874
- export { listSkillFiles 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, computeCollectionConfigUpdate as K, SYSTEM_COLLECTION_CONFIG as L, loadMachineContext as M, buildMachineInstructions as N, machineToolsForRole as O, buildMachineTools as P, parseFrontmatter as Q, READ_ONLY_TOOLS as R, SharingNotificationSync as S, getSkillsServer as T, getSkillsWorkspaceName as U, getSkillsCollectionName as V, fetchWithTimeout as W, searchSkills as X, SKILLS_DIR as Y, getSkillInfo as Z, downloadSkillFile as _, createSessionStore as a, resolveModel as a0, clearStopMarker as a1, stopMarkerExists as a2, ChannelStore as a3, gatewayBase as a4, genKey as a5, formatHandle as a6, normalizeAllowedUser as a7, loadSecurityContextConfig as a8, resolveSecurityContext as a9, run as aA, buildSecurityContextFromFlags as aa, mergeSecurityContexts as ab, buildSessionShareUrl as ac, computeOutboundHop as ad, registerAwaitingReply as ae, buildMachineShareUrl as af, parseHandle as ag, handleMatchesMetadata as ah, describeMisconfiguration as ai, buildMachineDeps as aj, applyClaudeProxyEnv as ak, composeSessionId as al, generateFriendlyName as am, generateHookSettings as an, staticFileServer as ao, instanceConfig as ap, claudeAuth as aq, codexProvider as ar, outbox as as, projectInfo as at, DefaultTransport$1 as au, acpBackend as av, acpAgentConfig as aw, codexAppServerBackend as ax, GeminiTransport$1 as ay, api as az, 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 };
20960
+ export { searchSkills as $, removeWorkflow as A, saveWorkflow as B, rawWorkflow as C, listWorkflows as D, isWorkflowEnabled as E, workflowCrons as F, cronMatches as G, buildOutpostInstall as H, ChannelStore as I, DEFAULT_OUTPOST_DOWNLOAD_BASE as J, setupOutpostChannel as K, summarize as L, workflowSteps as M, parseJwtEmail as N, computeCollectionConfigUpdate as O, SYSTEM_COLLECTION_CONFIG as P, loadMachineContext as Q, READ_ONLY_TOOLS as R, SharingNotificationSync as S, buildMachineInstructions as T, machineToolsForRole as U, buildMachineTools as V, parseFrontmatter as W, getSkillsServer as X, getSkillsWorkspaceName as Y, getSkillsCollectionName as Z, fetchWithTimeout as _, createSessionStore as a, SKILLS_DIR as a0, getSkillInfo as a1, downloadSkillFile as a2, listSkillFiles as a3, resolveModel as a4, clearStopMarker as a5, stopMarkerExists as a6, formatHandle as a7, normalizeAllowedUser as a8, loadSecurityContextConfig as a9, api as aA, run as aB, resolveSecurityContext as aa, buildSecurityContextFromFlags as ab, mergeSecurityContexts as ac, buildSessionShareUrl as ad, computeOutboundHop as ae, registerAwaitingReply as af, buildMachineShareUrl as ag, parseHandle as ah, handleMatchesMetadata as ai, describeMisconfiguration as aj, buildMachineDeps as ak, applyClaudeProxyEnv as al, composeSessionId as am, generateFriendlyName as an, generateHookSettings as ao, staticFileServer as ap, instanceConfig as aq, claudeAuth as ar, codexProvider as as, outbox as at, projectInfo as au, DefaultTransport$1 as av, acpBackend as aw, acpAgentConfig as ax, codexAppServerBackend as ay, GeminiTransport$1 as az, 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 { ak as applyClaudeProxyEnv, al as composeSessionId, am as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, an as generateHookSettings } from './run-BNiSOlBf.mjs';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { al as applyClaudeProxyEnv, am as composeSessionId, an as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ao as generateHookSettings } from './run-BXpQa5EA.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-BNiSOlBf.mjs';
1
+ import { j as resolveProjectRoot, D as listWorkflows, E as isWorkflowEnabled, F as workflowCrons, y as runWorkflow, G as cronMatches } from './run-BXpQa5EA.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-Dc9t_OeY.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-B3Acrzyp.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-Dc9t_OeY.mjs');
96
+ const { connectAndGetMachine } = await import('./commands-B3Acrzyp.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-Dc9t_OeY.mjs');
185
+ const { connectAndGetMachine } = await import('./commands-B3Acrzyp.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-Dc9t_OeY.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-B3Acrzyp.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-Dc9t_OeY.mjs');
238
+ const { connectAndGetMachine } = await import('./commands-B3Acrzyp.mjs');
239
239
  const { machine, server } = await connectAndGetMachine(machineId);
240
240
  try {
241
241
  const info = await machine.serveInfo();
@@ -1,4 +1,4 @@
1
- import { R as READ_ONLY_TOOLS, M as loadMachineContext, N as buildMachineInstructions, O as machineToolsForRole, P as buildMachineTools } from './run-BNiSOlBf.mjs';
1
+ import { R as READ_ONLY_TOOLS, Q as loadMachineContext, T as buildMachineInstructions, U as machineToolsForRole, V as buildMachineTools } from './run-BXpQa5EA.mjs';
2
2
  import 'node:child_process';
3
3
  import 'os';
4
4
  import 'fs/promises';
package/package.json CHANGED
@@ -1,48 +1,48 @@
1
1
  {
2
- "name": "svamp-cli",
3
- "version": "0.2.290",
4
- "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
- "author": "Amun AI AB",
6
- "license": "SEE LICENSE IN LICENSE",
7
- "type": "module",
8
- "bin": {
9
- "svamp": "./bin/svamp.mjs"
10
- },
11
- "files": [
12
- "dist",
13
- "bin"
14
- ],
15
- "main": "./dist/index.mjs",
16
- "exports": {
17
- ".": "./dist/index.mjs",
18
- "./cli": "./dist/cli.mjs"
19
- },
20
- "scripts": {
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
- "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-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-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-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-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-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",
24
- "test:hypha": "node --no-warnings test/test-hypha-service.mjs",
25
- "dev": "tsx src/cli.ts",
26
- "dev:daemon": "tsx src/cli.ts daemon start-sync",
27
- "test:e2e": "node --no-warnings test/e2e-session-tests.mjs",
28
- "test:frpc": "npx tsx test/test-frpc-e2e.mjs",
29
- "prepublishOnly": "yarn build"
30
- },
31
- "dependencies": {
32
- "@agentclientprotocol/sdk": "^0.14.1",
33
- "@modelcontextprotocol/sdk": "^1.25.3",
34
- "hypha-rpc": "0.21.42",
35
- "node-pty": "1.2.0-beta.11",
36
- "ws": "^8.18.0",
37
- "yaml": "^2.8.2",
38
- "zod": "^3.24.4"
39
- },
40
- "devDependencies": {
41
- "@types/node": ">=20",
42
- "@types/ws": "^8.5.14",
43
- "pkgroll": "^2.14.2",
44
- "tsx": "^4.20.6",
45
- "typescript": "5.9.3"
46
- },
47
- "packageManager": "yarn@1.22.22"
2
+ "name": "svamp-cli",
3
+ "version": "0.2.292",
4
+ "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
+ "author": "Amun AI AB",
6
+ "license": "SEE LICENSE IN LICENSE",
7
+ "type": "module",
8
+ "bin": {
9
+ "svamp": "./bin/svamp.mjs"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "bin"
14
+ ],
15
+ "main": "./dist/index.mjs",
16
+ "exports": {
17
+ ".": "./dist/index.mjs",
18
+ "./cli": "./dist/cli.mjs"
19
+ },
20
+ "scripts": {
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
+ "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-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-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-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-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-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",
24
+ "test:hypha": "node --no-warnings test/test-hypha-service.mjs",
25
+ "dev": "tsx src/cli.ts",
26
+ "dev:daemon": "tsx src/cli.ts daemon start-sync",
27
+ "test:e2e": "node --no-warnings test/e2e-session-tests.mjs",
28
+ "test:frpc": "npx tsx test/test-frpc-e2e.mjs",
29
+ "prepublishOnly": "yarn build"
30
+ },
31
+ "dependencies": {
32
+ "@agentclientprotocol/sdk": "^0.14.1",
33
+ "@modelcontextprotocol/sdk": "^1.25.3",
34
+ "hypha-rpc": "0.21.42",
35
+ "node-pty": "1.2.0-beta.11",
36
+ "ws": "^8.18.0",
37
+ "yaml": "^2.8.2",
38
+ "zod": "^3.24.4"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": ">=20",
42
+ "@types/ws": "^8.5.14",
43
+ "pkgroll": "^2.14.2",
44
+ "tsx": "^4.20.6",
45
+ "typescript": "5.9.3"
46
+ },
47
+ "packageManager": "yarn@1.22.22"
48
48
  }
@@ -1,64 +0,0 @@
1
- var name = "svamp-cli";
2
- var version = "0.2.290";
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-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-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-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-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-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",
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 };