svamp-cli 0.2.317 → 0.2.319

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-fJVu-h9l.mjs → adminCommands-DBADX_Uo.mjs} +1 -1
  2. package/dist/{agentCommands-DdOSpUEW.mjs → agentCommands-BJeGwkeX.mjs} +6 -6
  3. package/dist/{auth-B2XK13r-.mjs → auth-0NUGwOc0.mjs} +1 -1
  4. package/dist/{cli-DGVQaDbd.mjs → cli-CWElpiIq.mjs} +76 -76
  5. package/dist/cli.mjs +2 -2
  6. package/dist/{commands-Bx2JkNft.mjs → commands-AdVHZXK6.mjs} +1 -1
  7. package/dist/{commands-wQYdc5EK.mjs → commands-BY1lmXaM.mjs} +1 -1
  8. package/dist/{commands-DEsDSuMW.mjs → commands-BsaTwKnd.mjs} +2 -2
  9. package/dist/{commands-CoBMjrtP.mjs → commands-C0lwV0U3.mjs} +2 -2
  10. package/dist/{commands-C4p4v9eO.mjs → commands-CJWgDDl5.mjs} +2 -2
  11. package/dist/{commands-DUdStLKb.mjs → commands-CLgdrTSU.mjs} +2 -2
  12. package/dist/{commands-ino-Gtcu.mjs → commands-DMSkWb0h.mjs} +8 -8
  13. package/dist/{commands-I9jHLkrI.mjs → commands-DubEbPAY.mjs} +1 -1
  14. package/dist/{fleet-NRi2YMso.mjs → fleet-OKnU0cYK.mjs} +2 -2
  15. package/dist/{headlessCli-DpTQ00fL.mjs → headlessCli-CCO0IFYl.mjs} +2 -2
  16. package/dist/index.mjs +1 -1
  17. package/dist/{notifyCommands-BFRuzxXP.mjs → notifyCommands-4GUy4Mcl.mjs} +1 -1
  18. package/dist/{package-DN_Oa_OT.mjs → package-BEEqsQhN.mjs} +3 -3
  19. package/dist/{pinnedClaudeCode-CnCpensV.mjs → pinnedClaudeCode-dbXgsGNK.mjs} +1 -1
  20. package/dist/{rpc-CclCeDcu.mjs → rpc-FGp88Yxp.mjs} +1 -1
  21. package/dist/{rpc-Cx6KsBYC.mjs → rpc-TXF-di9u.mjs} +1 -1
  22. package/dist/{run-RA4Vr6lj.mjs → run-09AkgeGM.mjs} +1134 -264
  23. package/dist/{run-DKhnAl2f.mjs → run-7TVWXnOM.mjs} +1 -1
  24. package/dist/{scheduler-Wzzed1CU.mjs → scheduler-b-ysyKIj.mjs} +1 -1
  25. package/dist/{serveCommands-DQeSesYI.mjs → serveCommands-D3W7w0G6.mjs} +29 -7
  26. package/dist/{sideband-gQ7oQEsx.mjs → sideband-C1db5sMF.mjs} +1 -1
  27. package/package.json +3 -3
  28. package/dist/frpc-CNZJM3qC.mjs +0 -775
@@ -1,4 +1,4 @@
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';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { aj as applyClaudeProxyEnv, ak as composeSessionId, al as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, am as generateHookSettings } from './run-09AkgeGM.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, F as listWorkflows, G as isWorkflowEnabled, H as workflowSchedules, I as inZone, z as runWorkflow, J as cronMatches } from './run-RA4Vr6lj.mjs';
1
+ import { f as resolveProjectRoot, C as listWorkflows, D as isWorkflowEnabled, E as workflowSchedules, F as inZone, w as runWorkflow, G as cronMatches } from './run-09AkgeGM.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-wQYdc5EK.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-BY1lmXaM.mjs');
58
58
  const pos = positionalArgs(args);
59
59
  const name = pos[0];
60
60
  if (!name) {
@@ -74,9 +74,10 @@ async function serveAdd(args, machineId) {
74
74
  access = accessFlag.split(",").map((e) => e.trim()).filter(Boolean);
75
75
  }
76
76
  }
77
+ const sessionId = process.env.SVAMP_SESSION_ID;
77
78
  const { machine, server } = await connectAndGetMachine(machineId);
78
79
  try {
79
- const result = await machine.serveAdd({ name, directory, access });
80
+ const result = await machine.serveAdd({ name, directory, sessionId, access });
80
81
  console.log(`Mount added: ${name} \u2192 ${directory}`);
81
82
  const accessLabel = access === "public" ? "public (no auth)" : access === "link" ? "link (capability URL \u2014 anyone with the URL can view)" : access === "owner" ? "owner only (Hypha login)" : `${access.join(", ")} (Hypha login)`;
82
83
  console.log(`Access: ${accessLabel}`);
@@ -84,6 +85,13 @@ async function serveAdd(args, machineId) {
84
85
  if (access === "link") {
85
86
  console.log(`(URL embeds a long capability token; keep it secret to keep the mount private.)`);
86
87
  }
88
+ if (sessionId && result?.url) {
89
+ try {
90
+ const { autoAddSessionLink } = await import('./agentCommands-BJeGwkeX.mjs');
91
+ autoAddSessionLink(String(result.url), name, void 0, { kind: "serve", name });
92
+ } catch {
93
+ }
94
+ }
87
95
  } catch (err) {
88
96
  console.error(`Error: ${err.message || err}`);
89
97
  process.exit(1);
@@ -93,7 +101,7 @@ async function serveAdd(args, machineId) {
93
101
  }
94
102
  }
95
103
  async function serveApply(args, machineId) {
96
- const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
104
+ const { connectAndGetMachine } = await import('./commands-BY1lmXaM.mjs');
97
105
  const fs = await import('fs');
98
106
  const yaml = await import('yaml');
99
107
  const file = positionalArgs(args)[0];
@@ -159,7 +167,7 @@ async function serveApply(args, machineId) {
159
167
  name: parsed.name,
160
168
  directory: parsed.directory ? path.resolve(parsed.directory) : void 0,
161
169
  process: proc,
162
- sessionId: parsed.sessionId ?? parsed.session_id,
170
+ sessionId: parsed.sessionId ?? parsed.session_id ?? process.env.SVAMP_SESSION_ID,
163
171
  access: parsed.access ?? "link",
164
172
  // default flipped from 'owner' to 'link' (capability URL)
165
173
  ownerEmail: parsed.ownerEmail ?? parsed.owner_email
@@ -173,6 +181,20 @@ async function serveApply(args, machineId) {
173
181
  if (proc?.wakeOnRequest) console.log("Wake-on-request: enabled (process starts on first incoming request)");
174
182
  if (proc?.idleTimeoutSec) console.log(`Idle timeout: ${proc.idleTimeoutSec}s`);
175
183
  console.log(`URL: ${result.url}`);
184
+ if (params.sessionId && result?.url) {
185
+ try {
186
+ const { autoAddSessionLink } = await import('./agentCommands-BJeGwkeX.mjs');
187
+ const prevSession = process.env.SVAMP_SESSION_ID;
188
+ process.env.SVAMP_SESSION_ID = String(params.sessionId);
189
+ try {
190
+ autoAddSessionLink(String(result.url), params.name, void 0, { kind: "serve", name: params.name });
191
+ } finally {
192
+ if (prevSession === void 0) delete process.env.SVAMP_SESSION_ID;
193
+ else process.env.SVAMP_SESSION_ID = prevSession;
194
+ }
195
+ } catch {
196
+ }
197
+ }
176
198
  } catch (err) {
177
199
  console.error(`Error: ${err.message || err}`);
178
200
  process.exit(1);
@@ -182,7 +204,7 @@ async function serveApply(args, machineId) {
182
204
  }
183
205
  }
184
206
  async function serveRemove(args, machineId) {
185
- const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
207
+ const { connectAndGetMachine } = await import('./commands-BY1lmXaM.mjs');
186
208
  const pos = positionalArgs(args);
187
209
  const name = pos[0];
188
210
  if (!name) {
@@ -202,7 +224,7 @@ async function serveRemove(args, machineId) {
202
224
  }
203
225
  }
204
226
  async function serveList(args, machineId) {
205
- const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
227
+ const { connectAndGetMachine } = await import('./commands-BY1lmXaM.mjs');
206
228
  const all = hasFlag(args, "--all", "-a");
207
229
  const json = hasFlag(args, "--json");
208
230
  const sessionId = getFlag(args, "--session");
@@ -236,7 +258,7 @@ async function serveList(args, machineId) {
236
258
  }
237
259
  }
238
260
  async function serveInfo(machineId) {
239
- const { connectAndGetMachine } = await import('./commands-wQYdc5EK.mjs');
261
+ const { connectAndGetMachine } = await import('./commands-BY1lmXaM.mjs');
240
262
  const { machine, server } = await connectAndGetMachine(machineId);
241
263
  try {
242
264
  const info = await machine.serveInfo();
@@ -1,4 +1,4 @@
1
- import { R as READ_ONLY_TOOLS, P as loadMachineContext, Q as buildMachineInstructions, T as machineToolsForRole, U as buildMachineTools } from './run-RA4Vr6lj.mjs';
1
+ import { R as READ_ONLY_TOOLS, M as loadMachineContext, N as buildMachineInstructions, O as machineToolsForRole, P as buildMachineTools } from './run-09AkgeGM.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.317",
3
+ "version": "0.2.319",
4
4
  "description": "Svamp CLI \u2014 AI workspace daemon on Hypha Cloud",
5
5
  "author": "Amun AI AB",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -20,11 +20,11 @@
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-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": "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 && npx tsx test/test-frpc-orphan-reap.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",
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",
27
- "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: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 && npx tsx test/e2e-session-files-gateway.mjs",
28
28
  "test:frpc": "npx tsx test/test-frpc-e2e.mjs",
29
29
  "prepublishOnly": "yarn build"
30
30
  },