svamp-cli 0.2.275 → 0.2.276

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 (26) hide show
  1. package/dist/{agentCommands-DGT-1wjo.mjs → agentCommands-DYduijxc.mjs} +5 -5
  2. package/dist/{auth-CT55Rse4.mjs → auth-DF4dUys9.mjs} +1 -1
  3. package/dist/{cli-DYTmO9JL.mjs → cli-BrZuHfQa.mjs} +65 -65
  4. package/dist/cli.mjs +2 -2
  5. package/dist/{commands-C0rRjhMD.mjs → commands-7WZLaYv2.mjs} +2 -2
  6. package/dist/{commands-BV_9mFkz.mjs → commands-BjkRYbLw.mjs} +2 -2
  7. package/dist/{commands-CXHZapLH.mjs → commands-Cxn4Cmts.mjs} +1 -1
  8. package/dist/{commands-D7fIWAgz.mjs → commands-DINv6746.mjs} +1 -1
  9. package/dist/{commands-CVPcbtWV.mjs → commands-DLlgY23R.mjs} +1 -1
  10. package/dist/{commands-BvmFXAmu.mjs → commands-DvD1mdMU.mjs} +2 -2
  11. package/dist/{commands-C8Zc5axO.mjs → commands-clA49kHW.mjs} +7 -7
  12. package/dist/{fleet-BCel6ZVc.mjs → fleet-xyz1ik_N.mjs} +2 -2
  13. package/dist/{frpc-D3faR6iR.mjs → frpc-BkGcc69x.mjs} +7 -5
  14. package/dist/{headlessCli-DVBFm7og.mjs → headlessCli-Je1q_pDw.mjs} +2 -2
  15. package/dist/index.mjs +1 -1
  16. package/dist/package-D3rksT8O.mjs +64 -0
  17. package/dist/{pinnedClaudeCode-CgEtGkX2.mjs → pinnedClaudeCode-D8Tbz32G.mjs} +1 -1
  18. package/dist/{rpc-xlV-4-BG.mjs → rpc-CBa5WaBD.mjs} +1 -1
  19. package/dist/{rpc-BQ8zLSUc.mjs → rpc-HiJYPcOU.mjs} +1 -1
  20. package/dist/{run-DMPVho7i.mjs → run-BRHMebDp.mjs} +4 -3
  21. package/dist/{run-C3Fcbk-H.mjs → run-DjThStDG.mjs} +192 -46
  22. package/dist/{scheduler-DaFZY2ob.mjs → scheduler-D1JpZ5m8.mjs} +1 -1
  23. package/dist/{serveCommands-B9Yhx1fl.mjs → serveCommands-D-3LtTUy.mjs} +5 -5
  24. package/dist/{sideband-CYqmMG_m.mjs → sideband-DdcXgJHf.mjs} +1 -1
  25. package/package.json +2 -2
  26. package/dist/package-DIuZ7Wfp.mjs +0 -64
@@ -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-D3faR6iR.mjs');
63
+ const { runFrpcTunnel } = await import('./frpc-BkGcc69x.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-D7fIWAgz.mjs');
73
+ const { connectAndGetMachine } = await import('./commands-DINv6746.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-DGT-1wjo.mjs');
95
+ const { autoAddSessionLink } = await import('./agentCommands-DYduijxc.mjs');
96
96
  let added = 0;
97
97
  for (const [port, url] of urlEntries) {
98
98
  const label = urlEntries.length > 1 ? `${name}:${port}` : name;
@@ -129,7 +129,7 @@ async function serviceServe(args) {
129
129
  console.log(`Serving ${resolvedDir}`);
130
130
  const servePort = 18080;
131
131
  const http = await import('http');
132
- const { serveStaticMount } = await import('./run-C3Fcbk-H.mjs').then(function (n) { return n.ah; });
132
+ const { serveStaticMount } = await import('./run-DjThStDG.mjs').then(function (n) { return n.ah; });
133
133
  const server = http.createServer((req, res) => {
134
134
  const u = new URL(req.url || "/", "http://127.0.0.1");
135
135
  let rel = u.pathname;
@@ -140,7 +140,7 @@ async function serviceServe(args) {
140
140
  server.once("error", reject);
141
141
  server.listen(servePort, "127.0.0.1", () => resolve());
142
142
  });
143
- const { runFrpcTunnel } = await import('./frpc-D3faR6iR.mjs');
143
+ const { runFrpcTunnel } = await import('./frpc-BkGcc69x.mjs');
144
144
  void server;
145
145
  await runFrpcTunnel(name, [servePort]);
146
146
  } catch (err) {
@@ -150,7 +150,7 @@ async function serviceServe(args) {
150
150
  }
151
151
  async function serviceList(_args) {
152
152
  try {
153
- const { connectAndGetMachine } = await import('./commands-D7fIWAgz.mjs');
153
+ const { connectAndGetMachine } = await import('./commands-DINv6746.mjs');
154
154
  const { server, machine } = await connectAndGetMachine();
155
155
  try {
156
156
  const tunnels = await machine.tunnelList({});
@@ -190,7 +190,7 @@ async function serviceDelete(args) {
190
190
  process.exit(1);
191
191
  }
192
192
  try {
193
- const { connectAndGetMachine } = await import('./commands-D7fIWAgz.mjs');
193
+ const { connectAndGetMachine } = await import('./commands-DINv6746.mjs');
194
194
  const { server, machine } = await connectAndGetMachine();
195
195
  try {
196
196
  await machine.tunnelStop({ name });
@@ -1,8 +1,8 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import os from 'node:os';
4
- import { c as connectToHypha } from './run-C3Fcbk-H.mjs';
5
- import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-CgEtGkX2.mjs';
4
+ import { c as connectToHypha } from './run-DjThStDG.mjs';
5
+ import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-D8Tbz32G.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -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-C3Fcbk-H.mjs';
7
+ import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-DjThStDG.mjs';
8
8
  import 'fs/promises';
9
9
  import 'url';
10
10
  import 'node:crypto';
@@ -306,10 +306,11 @@ class FrpcTunnel {
306
306
  }
307
307
  const machineFingerprint = getMachineFingerprint();
308
308
  const machineHash = createHash("sha256").update(machineFingerprint).digest("hex").slice(0, 6);
309
+ const multiPort = options.ports.length > 1;
309
310
  this.proxies = options.ports.map((port) => {
310
- const standaloneHash = createHash("sha256").update(`${options.name}|${machineFingerprint}`).digest("hex").slice(0, 8);
311
+ const standaloneHash = createHash("sha256").update(multiPort ? `${options.name}|${port}|${machineFingerprint}` : `${options.name}|${machineFingerprint}`).digest("hex").slice(0, 8);
311
312
  const subdomain = options.subdomains?.get(port) || (options.group ? `${options.group}-${createHash("sha256").update(options.group).digest("hex").slice(0, 8)}` : `${options.name}-${standaloneHash}`);
312
- const proxyName = options.group ? `${options.name}-${port}-${machineHash}` : `${options.name}-${port}-${machineHash}`;
313
+ const proxyName = `${options.name}-${port}-${machineHash}`;
313
314
  return {
314
315
  name: proxyName,
315
316
  type: "http",
@@ -393,11 +394,12 @@ class FrpcTunnel {
393
394
  }
394
395
  }
395
396
  }
396
- if (text.includes("[E]") || text.includes("error")) {
397
+ const errorLine = text.split("\n").find((line) => line.includes("[E]"));
398
+ if (errorLine) {
397
399
  this._consecutiveErrors++;
398
400
  this._lastErrorAt = Date.now();
399
401
  if (this._firstErrorAt === 0) this._firstErrorAt = Date.now();
400
- this.options.onError?.(new Error(text));
402
+ this.options.onError?.(new Error(errorLine));
401
403
  }
402
404
  };
403
405
  child.stdout?.on("data", onOutput);
@@ -1,5 +1,5 @@
1
- import { Y as resolveModel, ab as describeMisconfiguration, ac as buildMachineDeps } from './run-C3Fcbk-H.mjs';
2
- import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CYqmMG_m.mjs';
1
+ import { Y as resolveModel, ab as describeMisconfiguration, ac as buildMachineDeps } from './run-DjThStDG.mjs';
2
+ import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-DdcXgJHf.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-C3Fcbk-H.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-DjThStDG.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -0,0 +1,64 @@
1
+ var name = "svamp-cli";
2
+ var version = "0.2.276";
3
+ var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
4
+ var author = "Amun AI AB";
5
+ var license = "SEE LICENSE IN LICENSE";
6
+ var type = "module";
7
+ var bin = {
8
+ svamp: "./bin/svamp.mjs"
9
+ };
10
+ var files = [
11
+ "dist",
12
+ "bin"
13
+ ];
14
+ var main = "./dist/index.mjs";
15
+ var exports$1 = {
16
+ ".": "./dist/index.mjs",
17
+ "./cli": "./dist/cli.mjs"
18
+ };
19
+ var scripts = {
20
+ build: "rm -rf dist bin/skills bin/commands && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && cp -r ../../skills/crew bin/skills/crew && cp -r ../../commands bin/commands && tsc --noEmit && pkgroll",
21
+ typecheck: "tsc --noEmit",
22
+ test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-backend-accounts.mjs && npx tsx test/test-backend-oauth.mjs && npx tsx test/test-btw-proxy-env.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-inbox-reconcile.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-isolation-disable.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-session-access-fallback.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-app-server.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-compact-detect.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox-store.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-issue-pause.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-cron.mjs && npx tsx test/test-workflow-runs.mjs && npx tsx test/test-workflow-idle.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-ws-upgrade.mjs && npx tsx test/test-serve-auth.mjs && npx tsx test/test-static-file-server.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-hotreload-seam.mjs && npx tsx test/test-hot-reload.mjs && npx tsx test/test-hot-reload-live.mjs && npx tsx test/test-session-core.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-outbox-reload.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-channel-upload.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs && npx tsx test/test-crew-standalone.mjs && npx tsx test/test-session-links.mjs && npx tsx test/test-issue-loop-pause-guard.mjs && npx tsx test/test-artifact-guard.mjs && npx tsx test/test-graceful-restart.mjs && npx tsx test/test-flush-exit.mjs",
23
+ "test:hypha": "node --no-warnings test/test-hypha-service.mjs",
24
+ dev: "tsx src/cli.ts",
25
+ "dev:daemon": "tsx src/cli.ts daemon start-sync",
26
+ "test:e2e": "node --no-warnings test/e2e-session-tests.mjs",
27
+ "test:frpc": "npx tsx test/test-frpc-e2e.mjs",
28
+ prepublishOnly: "yarn build"
29
+ };
30
+ var dependencies = {
31
+ "@agentclientprotocol/sdk": "^0.14.1",
32
+ "@modelcontextprotocol/sdk": "^1.25.3",
33
+ "hypha-rpc": "0.21.42",
34
+ "node-pty": "1.2.0-beta.11",
35
+ ws: "^8.18.0",
36
+ yaml: "^2.8.2",
37
+ zod: "^3.24.4"
38
+ };
39
+ var devDependencies = {
40
+ "@types/node": ">=20",
41
+ "@types/ws": "^8.5.14",
42
+ pkgroll: "^2.14.2",
43
+ tsx: "^4.20.6",
44
+ typescript: "5.9.3"
45
+ };
46
+ var packageManager = "yarn@1.22.22";
47
+ var _package = {
48
+ name: name,
49
+ version: version,
50
+ description: description,
51
+ author: author,
52
+ license: license,
53
+ type: type,
54
+ bin: bin,
55
+ files: files,
56
+ main: main,
57
+ exports: exports$1,
58
+ scripts: scripts,
59
+ dependencies: dependencies,
60
+ devDependencies: devDependencies,
61
+ packageManager: packageManager
62
+ };
63
+
64
+ export { author, bin, _package as default, dependencies, description, devDependencies, exports$1 as exports, files, license, main, name, packageManager, scripts, type, version };
@@ -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.214";
4
+ const PINNED_CLAUDE_CODE_VERSION = "2.1.216";
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 saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-C3Fcbk-H.mjs';
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 saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-DjThStDG.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-C3Fcbk-H.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 searchIssues, t as isVisibleTo } from './run-DjThStDG.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ad as applyClaudeProxyEnv, ae as composeSessionId, af as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ag as generateHookSettings } from './run-C3Fcbk-H.mjs';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ad as applyClaudeProxyEnv, ae as composeSessionId, af as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ag as generateHookSettings } from './run-DjThStDG.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';
@@ -746,8 +746,9 @@ async function runInteractive(options) {
746
746
  },
747
747
  onRipgrep: async (rgArgs, execCwd) => {
748
748
  try {
749
- const { execSync } = await import('child_process');
750
- return execSync(`rg ${rgArgs}`, {
749
+ const { execFileSync } = await import('child_process');
750
+ const argv = Array.isArray(rgArgs) ? rgArgs : String(rgArgs).split(/\s+/).filter(Boolean);
751
+ return execFileSync("rg", argv, {
751
752
  cwd: execCwd || cwd,
752
753
  encoding: "utf-8",
753
754
  timeout: 15e3,