svamp-cli 0.2.314 → 0.2.317

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 (30) hide show
  1. package/bin/commands/workflow.md +3 -2
  2. package/dist/{adminCommands-DCttALYO.mjs → adminCommands-fJVu-h9l.mjs} +1 -1
  3. package/dist/{agentCommands-BUsSOz5M.mjs → agentCommands-DdOSpUEW.mjs} +5 -5
  4. package/dist/{auth-D5yTcsy2.mjs → auth-B2XK13r-.mjs} +1 -1
  5. package/dist/{cli-ahWO_ULm.mjs → cli-DGVQaDbd.mjs} +115 -85
  6. package/dist/cli.mjs +2 -2
  7. package/dist/{commands-ZML4FIzg.mjs → commands-Bx2JkNft.mjs} +1 -1
  8. package/dist/{commands-CJmKY6Qo.mjs → commands-C4p4v9eO.mjs} +2 -2
  9. package/dist/{commands-bS4ErsEr.mjs → commands-CoBMjrtP.mjs} +2 -2
  10. package/dist/{commands-Ce7MP6Ut.mjs → commands-DEsDSuMW.mjs} +3 -3
  11. package/dist/{commands-Cl-TIip1.mjs → commands-DUdStLKb.mjs} +2 -2
  12. package/dist/{commands-CuinsdU0.mjs → commands-I9jHLkrI.mjs} +1 -1
  13. package/dist/{commands-BSHZGcCC.mjs → commands-ino-Gtcu.mjs} +8 -8
  14. package/dist/{commands-r4QVEq12.mjs → commands-wQYdc5EK.mjs} +1 -1
  15. package/dist/{fleet-CSwFR8B0.mjs → fleet-NRi2YMso.mjs} +6 -5
  16. package/dist/{frpc-CpuE7d3Y.mjs → frpc-CNZJM3qC.mjs} +1 -1
  17. package/dist/{headlessCli-Dg-awx4h.mjs → headlessCli-DpTQ00fL.mjs} +2 -2
  18. package/dist/index.mjs +1 -1
  19. package/dist/{notifyCommands-Dlm4RafU.mjs → notifyCommands-BFRuzxXP.mjs} +1 -1
  20. package/dist/package-DN_Oa_OT.mjs +64 -0
  21. package/dist/{pinnedClaudeCode-mM9Q6Q2G.mjs → pinnedClaudeCode-CnCpensV.mjs} +1 -1
  22. package/dist/{rpc-BN7kFhGk.mjs → rpc-CclCeDcu.mjs} +1 -1
  23. package/dist/{rpc-CLTPF1K6.mjs → rpc-Cx6KsBYC.mjs} +2 -2
  24. package/dist/{run-B6-6GYde.mjs → run-DKhnAl2f.mjs} +1 -1
  25. package/dist/{run-Y3YLx8x7.mjs → run-RA4Vr6lj.mjs} +595 -90
  26. package/dist/{scheduler-CWlkmpMz.mjs → scheduler-Wzzed1CU.mjs} +1 -1
  27. package/dist/{serveCommands-mnocpHcO.mjs → serveCommands-DQeSesYI.mjs} +5 -5
  28. package/dist/{sideband-c4lkIKWJ.mjs → sideband-gQ7oQEsx.mjs} +1 -1
  29. package/package.json +4 -4
  30. package/dist/package-DO2e6EnU.mjs +0 -64
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import './run-Y3YLx8x7.mjs';
1
+ import './run-RA4Vr6lj.mjs';
2
2
  import './serviceManager-hlOVxkhW.mjs';
3
- import './cli-ahWO_ULm.mjs';
3
+ import './cli-DGVQaDbd.mjs';
4
4
  import 'os';
5
5
  import 'fs/promises';
6
6
  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 { U as parseFrontmatter, V as getSkillsServer, W as getSkillsWorkspaceName, X as getSkillsCollectionName, Y as fetchWithTimeout, Z as searchSkills, _ as SKILLS_DIR, $ as getSkillInfo, a0 as downloadSkillFile, a1 as listSkillFiles } from './run-Y3YLx8x7.mjs';
4
+ import { V as parseFrontmatter, W as getSkillsServer, X as getSkillsWorkspaceName, Y as getSkillsCollectionName, Z as fetchWithTimeout, _ as searchSkills, $ as SKILLS_DIR, a0 as getSkillInfo, a1 as downloadSkillFile, a2 as listSkillFiles } from './run-RA4Vr6lj.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';
@@ -1,9 +1,9 @@
1
- import { connectAndResolveSession } from './commands-r4QVEq12.mjs';
1
+ import { connectAndResolveSession } from './commands-wQYdc5EK.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-Y3YLx8x7.mjs';
6
+ import './run-RA4Vr6lj.mjs';
7
7
  import 'os';
8
8
  import 'fs/promises';
9
9
  import 'fs';
@@ -1,8 +1,8 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { join, resolve } from 'node:path';
3
- import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-r4QVEq12.mjs';
3
+ import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-wQYdc5EK.mjs';
4
4
  import { execFileSync } from 'node:child_process';
5
- import { ai as withFileLock, u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-Y3YLx8x7.mjs';
5
+ import { aj as withFileLock, u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-RA4Vr6lj.mjs';
6
6
  import 'node:os';
7
7
  import 'os';
8
8
  import 'fs/promises';
@@ -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-ahWO_ULm.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, J as summarize, n as addIssue } from './run-Y3YLx8x7.mjs';
4
+ import { f as flushAndExit } from './cli-DGVQaDbd.mjs';
5
+ import { j as resolveProjectRoot, t as searchIssues, o as listIssues, q as isPendingIssue, l as resumeIssue, p as pauseIssue, m as addComment, u as updateIssue, k as getIssue, v as isVisibleTo, K as summarize, n as addIssue } from './run-RA4Vr6lj.mjs';
6
6
  import './serviceManager-hlOVxkhW.mjs';
7
7
  import 'os';
8
8
  import 'fs/promises';
@@ -367,7 +367,7 @@ the user explicitly reserved): re-run with \`--blocked "<the specific blocker>"\
367
367
  case "pending": {
368
368
  const mine = flag(rest, "--session") || (has(rest, "--mine") ? sessionId : null);
369
369
  const inScope = (i) => !mine || isVisibleTo(i, mine);
370
- const pending = listIssues(root).filter(inScope).filter((i) => i.status !== "archived" && i.status !== "paused");
370
+ const pending = listIssues(root).filter(inScope).filter(isPendingIssue);
371
371
  if (json) console.log(JSON.stringify(pending));
372
372
  else out(pending.length ? `${pending.length} pending: ${pending.map((i) => "#" + i.id).join(" ")}` : "No pending issues.");
373
373
  await flushAndExit(pending.length ? 1 : 0);
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-r4QVEq12.mjs';
3
+ import { connectAndGetMachine } from './commands-wQYdc5EK.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:child_process';
6
6
  import 'node:path';
7
7
  import 'node:os';
8
- import './run-Y3YLx8x7.mjs';
8
+ import './run-RA4Vr6lj.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
@@ -1,5 +1,5 @@
1
1
  import { spawnSync } from 'node:child_process';
2
- import { j as resolveProjectRoot, K 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-Y3YLx8x7.mjs';
2
+ import { j as resolveProjectRoot, L as workflowSteps, A as setWorkflowEnabled, G as isWorkflowEnabled, B as removeWorkflow, y as getWorkflow, F as listWorkflows, D as saveWorkflow, E as rawWorkflow } from './run-RA4Vr6lj.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-CpuE7d3Y.mjs');
63
+ const { runFrpcTunnel } = await import('./frpc-CNZJM3qC.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-r4QVEq12.mjs');
73
+ const { connectAndGetMachine } = await import('./commands-wQYdc5EK.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-BUsSOz5M.mjs');
95
+ const { autoAddSessionLink } = await import('./agentCommands-DdOSpUEW.mjs');
96
96
  let added = 0;
97
97
  for (const [port, url] of urlEntries) {
98
98
  const label = urlEntries.length > 1 ? `${name}:${port}` : name;
@@ -128,8 +128,8 @@ async function serviceServe(args) {
128
128
  const resolvedDir = path.resolve(directory);
129
129
  console.log(`Serving ${resolvedDir}`);
130
130
  const http = await import('http');
131
- const { serveStaticMount } = await import('./run-Y3YLx8x7.mjs').then(function (n) { return n.ap; });
132
- const { getFreePort } = await import('./frpc-CpuE7d3Y.mjs');
131
+ const { serveStaticMount } = await import('./run-RA4Vr6lj.mjs').then(function (n) { return n.aq; });
132
+ const { getFreePort } = await import('./frpc-CNZJM3qC.mjs');
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;
@@ -152,7 +152,7 @@ async function serviceServe(args) {
152
152
  resolve(18080);
153
153
  });
154
154
  });
155
- const { runFrpcTunnel } = await import('./frpc-CpuE7d3Y.mjs');
155
+ const { runFrpcTunnel } = await import('./frpc-CNZJM3qC.mjs');
156
156
  void server;
157
157
  await runFrpcTunnel(name, [servePort]);
158
158
  } catch (err) {
@@ -162,7 +162,7 @@ async function serviceServe(args) {
162
162
  }
163
163
  async function serviceList(_args) {
164
164
  try {
165
- const { connectAndGetMachine } = await import('./commands-r4QVEq12.mjs');
165
+ const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
166
166
  const { server, machine } = await connectAndGetMachine();
167
167
  try {
168
168
  const tunnels = await machine.tunnelList({});
@@ -202,7 +202,7 @@ async function serviceDelete(args) {
202
202
  process.exit(1);
203
203
  }
204
204
  try {
205
- const { connectAndGetMachine } = await import('./commands-r4QVEq12.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
206
206
  const { server, machine } = await connectAndGetMachine();
207
207
  try {
208
208
  await machine.tunnelStop({ name });
@@ -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 { a5 as formatHandle, a6 as normalizeAllowedUser, a7 as loadSecurityContextConfig, a8 as resolveSecurityContext, a9 as buildSecurityContextFromFlags, aa as mergeSecurityContexts, c as connectToHypha, ab as buildSessionShareUrl, ac as computeOutboundHop, i as shortId, ad as registerAwaitingReply, ae as buildMachineShareUrl, af as parseHandle, ag as handleMatchesMetadata } from './run-Y3YLx8x7.mjs';
5
+ import { a6 as formatHandle, a7 as normalizeAllowedUser, a8 as loadSecurityContextConfig, a9 as resolveSecurityContext, aa as buildSecurityContextFromFlags, ab as mergeSecurityContexts, c as connectToHypha, ac as buildSessionShareUrl, ad as computeOutboundHop, i as shortId, ae as registerAwaitingReply, af as buildMachineShareUrl, ag as parseHandle, ah as handleMatchesMetadata } from './run-RA4Vr6lj.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -1,8 +1,8 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import os from 'node:os';
4
- import { ah as PINNED_CODEX_VERSION, c as connectToHypha } from './run-Y3YLx8x7.mjs';
5
- import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-mM9Q6Q2G.mjs';
4
+ import { ai as PINNED_CODEX_VERSION, c as connectToHypha } from './run-RA4Vr6lj.mjs';
5
+ import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-CnCpensV.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -249,6 +249,7 @@ ${rows.length - failures}/${rows.length} machines on ${version}.`);
249
249
  await server.disconnect();
250
250
  }
251
251
  }
252
+ const NPM_PREFIX_RESOLVER = 'PFX="${SVAMP_NPM_PREFIX:-}"; if [ -z "$PFX" ] && command -v svamp >/dev/null 2>&1; then PFX=$(cd "$(dirname "$(command -v svamp)")/.." 2>/dev/null && pwd); fi; if [ -n "$PFX" ] && [ -d "$PFX/lib/node_modules" ]; then PREFIX_ARG="--prefix $PFX"; else PREFIX_ARG=""; fi';
252
253
  async function fleetUpgradeCodex(opts) {
253
254
  const version = opts?.version || PINNED_CODEX_VERSION;
254
255
  const { server, machines } = await discoverMachines();
@@ -264,7 +265,7 @@ async function fleetUpgradeCodex(opts) {
264
265
  `);
265
266
  try {
266
267
  printHeader(["MACHINE ID", "LABEL", "STATE", "DETAIL"], [20, 24, 6, 60]);
267
- const cmd = `bash -lc 'npm install -g @openai/codex@${version} 2>&1 | tail -5'`;
268
+ const cmd = `bash -lc '${NPM_PREFIX_RESOLVER}; npm install -g $PREFIX_ARG @openai/codex@${version} 2>&1 | tail -5'`;
268
269
  const rows = await fanOut(machines, async (m) => await m.rpc.bash(cmd, void 0));
269
270
  let failures = 0;
270
271
  for (const r of rows) {
@@ -300,7 +301,7 @@ async function fleetUpgradeKimi(opts) {
300
301
  `);
301
302
  try {
302
303
  printHeader(["MACHINE ID", "LABEL", "STATE", "DETAIL"], [20, 24, 6, 60]);
303
- const cmd = `bash -lc 'npm install -g ${KIMI_NPM_PACKAGE}@${version} 2>&1 | tail -5'`;
304
+ const cmd = `bash -lc '${NPM_PREFIX_RESOLVER}; npm install -g $PREFIX_ARG ${KIMI_NPM_PACKAGE}@${version} 2>&1 | tail -5'`;
304
305
  const rows = await fanOut(machines, async (m) => await m.rpc.bash(cmd, void 0));
305
306
  let failures = 0;
306
307
  for (const r of rows) {
@@ -341,7 +342,7 @@ async function fleetUpgradeSvamp(opts) {
341
342
  try {
342
343
  printHeader(["MACHINE ID", "LABEL", "STATE", "DETAIL"], [20, 24, 6, 60]);
343
344
  for (const m of skipped) printResultRow(m, "SKIP", 'self \u2014 restart separately with "svamp daemon restart"');
344
- const cmd = `bash -lc 'npm install -g svamp-cli@${version} 2>&1 | tail -5 && ${restartCmd} 2>&1 | tail -5'`;
345
+ const cmd = `bash -lc '${NPM_PREFIX_RESOLVER}; npm install -g $PREFIX_ARG svamp-cli@${version} 2>&1 | tail -5 && ${restartCmd} 2>&1 | tail -5'`;
345
346
  const rows = await fanOut(targets, async (m) => await m.rpc.bash(cmd, void 0));
346
347
  let failures = 0;
347
348
  for (const r of rows) {
@@ -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-Y3YLx8x7.mjs';
7
+ import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-RA4Vr6lj.mjs';
8
8
  import 'fs/promises';
9
9
  import 'url';
10
10
  import 'node:crypto';
@@ -1,5 +1,5 @@
1
- import { a2 as resolveModel, aj as describeMisconfiguration, ak as buildMachineDeps } from './run-Y3YLx8x7.mjs';
2
- import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-c4lkIKWJ.mjs';
1
+ import { a3 as resolveModel, ak as describeMisconfiguration, al as buildMachineDeps } from './run-RA4Vr6lj.mjs';
2
+ import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-gQ7oQEsx.mjs';
3
3
  import { WebSocket } from 'ws';
4
4
  import { execSync, spawn } from 'child_process';
5
5
  import 'os';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-Y3YLx8x7.mjs';
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-RA4Vr6lj.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, L as parseJwtEmail } from './run-Y3YLx8x7.mjs';
1
+ import { c as connectToHypha, S as SharingNotificationSync, M as parseJwtEmail } from './run-RA4Vr6lj.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.317";
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-stdin-delivery.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-machine-session-visibility.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-pinned-codex.mjs && npx tsx test/test-codex-request-timeout.mjs && npx tsx test/test-codex-app-server.mjs && npx tsx test/test-kimi-provider.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-session-files-gateway.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 && npx tsx test/test-nightly-0807-fixes.mjs && npx tsx test/test-log-prune.mjs && node test/test-message-count-cache.mjs && node test/test-serve-link-gate.mjs && node test/test-security-context-unenforceable.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 && npx tsx test/e2e-codex-midturn-steer.mjs && npx tsx test/e2e-serve-iframe-login.mjs && npx tsx test/test-archive-preserves-claude-file.mjs && npx tsx test/test-daemon-e2e.mjs && npx tsx test/test-hypha-service.mjs && npx tsx test/test-permission-e2e.mjs && npx tsx test/test-serve-e2e.mjs && npx tsx test/test-session-archive-resume.mjs && npx tsx test/test-session-rpc-e2e.mjs && npx tsx test/test-skills-integration.mjs && npx tsx test/test-wm-refresh.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,7 +1,7 @@
1
1
  import { spawn, exec as exec$1 } from 'node:child_process';
2
2
  import { promisify } from 'node:util';
3
3
 
4
- const PINNED_CLAUDE_CODE_VERSION = "2.1.223";
4
+ const PINNED_CLAUDE_CODE_VERSION = "2.1.225";
5
5
  const exec = promisify(exec$1);
6
6
  let _reconcile = null;
7
7
  function beginClaudeVersionReconcile(log) {
@@ -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 validateWorkflowName, C as saveWorkflow, D as rawWorkflow, E as listWorkflows } from './run-Y3YLx8x7.mjs';
1
+ import { j as resolveProjectRoot, w as getRun, x as listRuns, y as getWorkflow, z as runWorkflow, A as setWorkflowEnabled, B as removeWorkflow, C as validateWorkflowName, D as saveWorkflow, E as rawWorkflow, F as listWorkflows } from './run-RA4Vr6lj.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import { j as resolveProjectRoot, u as updateIssue, k as getIssue, l as resumeIssue, p as pauseIssue, m as addComment, n as addIssue, o as listIssues, q as searchIssues, t as isVisibleTo } from './run-Y3YLx8x7.mjs';
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 isPendingIssue, t as searchIssues, v as isVisibleTo } from './run-RA4Vr6lj.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -77,7 +77,7 @@ function issueRpc(cwd, params, deps = {}) {
77
77
  case "search":
78
78
  return ownerScoped(searchIssues(root, String(params.query || "")), params.session).map(compact);
79
79
  case "pending": {
80
- const items = ownerScoped(listIssues(root), params.session).filter((i) => i.status === "ready" || i.status === "in_progress");
80
+ const items = ownerScoped(listIssues(root), params.session).filter(isPendingIssue);
81
81
  return { pending: items.map((i) => i.id), count: items.length };
82
82
  }
83
83
  case "add": {
@@ -1,4 +1,4 @@
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-Y3YLx8x7.mjs';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { am as applyClaudeProxyEnv, an as composeSessionId, ao as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ap as generateHookSettings } from './run-RA4Vr6lj.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';