svamp-cli 0.2.63 → 0.2.65

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.
@@ -148,7 +148,7 @@ async function sessionBroadcast(action, args) {
148
148
  console.log(`Broadcast sent: ${action}`);
149
149
  }
150
150
  async function connectToMachineService() {
151
- const { connectAndGetMachine } = await import('./commands-CEazgqvj.mjs');
151
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
152
152
  return connectAndGetMachine();
153
153
  }
154
154
  async function inboxSend(targetSessionId, opts) {
@@ -165,7 +165,7 @@ async function inboxSend(targetSessionId, opts) {
165
165
  }
166
166
  const { server, machine } = await connectToMachineService();
167
167
  try {
168
- const { resolveSessionId } = await import('./commands-CEazgqvj.mjs');
168
+ const { resolveSessionId } = await import('./commands-CgirOjun.mjs');
169
169
  const sessions = await machine.listSessions();
170
170
  const match = resolveSessionId(sessions, targetSessionId);
171
171
  const fullTargetId = match.sessionId;
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-DypcS01S.mjs';
1
+ import { s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-EPzdDXeY.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -44,7 +44,7 @@ async function main() {
44
44
  console.error(`svamp daemon restart: ${err.message || err}`);
45
45
  process.exit(1);
46
46
  }
47
- const { restartDaemon } = await import('./run-DypcS01S.mjs').then(function (n) { return n.u; });
47
+ const { restartDaemon } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.u; });
48
48
  await restartDaemon();
49
49
  process.exit(0);
50
50
  }
@@ -280,7 +280,7 @@ async function main() {
280
280
  console.error("svamp service: Service commands are not available in sandboxed sessions.");
281
281
  process.exit(1);
282
282
  }
283
- const { handleServiceCommand } = await import('./commands-CY-HbTVN.mjs');
283
+ const { handleServiceCommand } = await import('./commands-CY0X_cdt.mjs');
284
284
  await handleServiceCommand();
285
285
  } else if (subcommand === "serve") {
286
286
  const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
@@ -288,7 +288,7 @@ async function main() {
288
288
  console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
289
289
  process.exit(1);
290
290
  }
291
- const { handleServeCommand } = await import('./serveCommands-CtAX-CMI.mjs');
291
+ const { handleServeCommand } = await import('./serveCommands-sRps4L_A.mjs');
292
292
  await handleServeCommand();
293
293
  process.exit(0);
294
294
  } else if (subcommand === "process" || subcommand === "proc") {
@@ -297,7 +297,7 @@ async function main() {
297
297
  console.error("svamp process: Process commands are not available in sandboxed sessions.");
298
298
  process.exit(1);
299
299
  }
300
- const { processCommand } = await import('./commands-BFeHwsR-.mjs');
300
+ const { processCommand } = await import('./commands-CjKzQm8Q.mjs');
301
301
  let machineId;
302
302
  const processArgs = args.slice(1);
303
303
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -315,7 +315,7 @@ async function main() {
315
315
  } else if (!subcommand || subcommand === "start") {
316
316
  await handleInteractiveCommand();
317
317
  } else if (subcommand === "--version" || subcommand === "-v") {
318
- const pkg = await import('./package-QQovcM_B.mjs').catch(() => ({ default: { version: "unknown" } }));
318
+ const pkg = await import('./package-DHBXuNi1.mjs').catch(() => ({ default: { version: "unknown" } }));
319
319
  console.log(`svamp version: ${pkg.default.version}`);
320
320
  } else {
321
321
  console.error(`Unknown command: ${subcommand}`);
@@ -324,7 +324,7 @@ async function main() {
324
324
  }
325
325
  }
326
326
  async function handleInteractiveCommand() {
327
- const { runInteractive } = await import('./run-DB2WIjmZ.mjs');
327
+ const { runInteractive } = await import('./run-cSiQAr8c.mjs');
328
328
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
329
329
  let directory = process.cwd();
330
330
  let resumeSessionId;
@@ -369,7 +369,7 @@ async function handleAgentCommand() {
369
369
  return;
370
370
  }
371
371
  if (agentArgs[0] === "list") {
372
- const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-DypcS01S.mjs').then(function (n) { return n.p; });
372
+ const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.p; });
373
373
  console.log("Known agents:");
374
374
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
375
375
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -381,7 +381,7 @@ async function handleAgentCommand() {
381
381
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
382
382
  return;
383
383
  }
384
- const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-DypcS01S.mjs').then(function (n) { return n.p; });
384
+ const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.p; });
385
385
  let cwd = process.cwd();
386
386
  const filteredArgs = [];
387
387
  for (let i = 0; i < agentArgs.length; i++) {
@@ -405,12 +405,12 @@ async function handleAgentCommand() {
405
405
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
406
406
  let backend;
407
407
  if (KNOWN_MCP_AGENTS[config.agentName]) {
408
- const { CodexMcpBackend } = await import('./run-DypcS01S.mjs').then(function (n) { return n.q; });
408
+ const { CodexMcpBackend } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.q; });
409
409
  backend = new CodexMcpBackend({ cwd, log: logFn });
410
410
  } else {
411
- const { AcpBackend } = await import('./run-DypcS01S.mjs').then(function (n) { return n.o; });
412
- const { GeminiTransport } = await import('./run-DypcS01S.mjs').then(function (n) { return n.G; });
413
- const { DefaultTransport } = await import('./run-DypcS01S.mjs').then(function (n) { return n.D; });
411
+ const { AcpBackend } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.o; });
412
+ const { GeminiTransport } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.G; });
413
+ const { DefaultTransport } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.D; });
414
414
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
415
415
  backend = new AcpBackend({
416
416
  agentName: config.agentName,
@@ -537,7 +537,7 @@ async function handleSessionCommand() {
537
537
  process.exit(1);
538
538
  }
539
539
  }
540
- const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-CEazgqvj.mjs');
540
+ const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-CgirOjun.mjs');
541
541
  const parseFlagStr = (flag, shortFlag) => {
542
542
  for (let i = 1; i < sessionArgs.length; i++) {
543
543
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -597,7 +597,7 @@ async function handleSessionCommand() {
597
597
  allowDomain.push(sessionArgs[++i]);
598
598
  }
599
599
  }
600
- const { parseShareArg } = await import('./commands-CEazgqvj.mjs');
600
+ const { parseShareArg } = await import('./commands-CgirOjun.mjs');
601
601
  const shareEntries = share.map((s) => parseShareArg(s));
602
602
  await sessionSpawn(agent, dir, targetMachineId, {
603
603
  message,
@@ -683,7 +683,7 @@ async function handleSessionCommand() {
683
683
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
684
684
  process.exit(1);
685
685
  }
686
- const { sessionApprove } = await import('./commands-CEazgqvj.mjs');
686
+ const { sessionApprove } = await import('./commands-CgirOjun.mjs');
687
687
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
688
688
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
689
689
  json: hasFlag("--json")
@@ -693,7 +693,7 @@ async function handleSessionCommand() {
693
693
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
694
694
  process.exit(1);
695
695
  }
696
- const { sessionDeny } = await import('./commands-CEazgqvj.mjs');
696
+ const { sessionDeny } = await import('./commands-CgirOjun.mjs');
697
697
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
698
698
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
699
699
  json: hasFlag("--json")
@@ -729,7 +729,7 @@ async function handleSessionCommand() {
729
729
  console.error("Usage: svamp session set-title <title>");
730
730
  process.exit(1);
731
731
  }
732
- const { sessionSetTitle } = await import('./agentCommands-BH6CIqc7.mjs');
732
+ const { sessionSetTitle } = await import('./agentCommands-CcvaE6am.mjs');
733
733
  await sessionSetTitle(title);
734
734
  } else if (sessionSubcommand === "set-link") {
735
735
  const url = sessionArgs[1];
@@ -738,7 +738,7 @@ async function handleSessionCommand() {
738
738
  process.exit(1);
739
739
  }
740
740
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
741
- const { sessionSetLink } = await import('./agentCommands-BH6CIqc7.mjs');
741
+ const { sessionSetLink } = await import('./agentCommands-CcvaE6am.mjs');
742
742
  await sessionSetLink(url, label);
743
743
  } else if (sessionSubcommand === "notify") {
744
744
  const message = sessionArgs[1];
@@ -747,7 +747,7 @@ async function handleSessionCommand() {
747
747
  process.exit(1);
748
748
  }
749
749
  const level = parseFlagStr("--level") || "info";
750
- const { sessionNotify } = await import('./agentCommands-BH6CIqc7.mjs');
750
+ const { sessionNotify } = await import('./agentCommands-CcvaE6am.mjs');
751
751
  await sessionNotify(message, level);
752
752
  } else if (sessionSubcommand === "broadcast") {
753
753
  const action = sessionArgs[1];
@@ -755,7 +755,7 @@ async function handleSessionCommand() {
755
755
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
756
756
  process.exit(1);
757
757
  }
758
- const { sessionBroadcast } = await import('./agentCommands-BH6CIqc7.mjs');
758
+ const { sessionBroadcast } = await import('./agentCommands-CcvaE6am.mjs');
759
759
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
760
760
  } else if (sessionSubcommand === "inbox") {
761
761
  const inboxSubcmd = sessionArgs[1];
@@ -766,7 +766,7 @@ async function handleSessionCommand() {
766
766
  process.exit(1);
767
767
  }
768
768
  if (agentSessionId) {
769
- const { inboxSend } = await import('./agentCommands-BH6CIqc7.mjs');
769
+ const { inboxSend } = await import('./agentCommands-CcvaE6am.mjs');
770
770
  await inboxSend(sessionArgs[2], {
771
771
  body: sessionArgs[3],
772
772
  subject: parseFlagStr("--subject"),
@@ -781,7 +781,7 @@ async function handleSessionCommand() {
781
781
  }
782
782
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
783
783
  if (agentSessionId && !sessionArgs[2]) {
784
- const { inboxList } = await import('./agentCommands-BH6CIqc7.mjs');
784
+ const { inboxList } = await import('./agentCommands-CcvaE6am.mjs');
785
785
  await inboxList({
786
786
  unread: hasFlag("--unread"),
787
787
  limit: parseFlagInt("--limit"),
@@ -803,7 +803,7 @@ async function handleSessionCommand() {
803
803
  process.exit(1);
804
804
  }
805
805
  if (agentSessionId && !sessionArgs[3]) {
806
- const { inboxList } = await import('./agentCommands-BH6CIqc7.mjs');
806
+ const { inboxList } = await import('./agentCommands-CcvaE6am.mjs');
807
807
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
808
808
  } else if (sessionArgs[3]) {
809
809
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -813,7 +813,7 @@ async function handleSessionCommand() {
813
813
  }
814
814
  } else if (inboxSubcmd === "reply") {
815
815
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
816
- const { inboxReply } = await import('./agentCommands-BH6CIqc7.mjs');
816
+ const { inboxReply } = await import('./agentCommands-CcvaE6am.mjs');
817
817
  await inboxReply(sessionArgs[2], sessionArgs[3]);
818
818
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
819
819
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -849,7 +849,7 @@ async function handleMachineCommand() {
849
849
  return;
850
850
  }
851
851
  if (machineSubcommand === "share") {
852
- const { machineShare } = await import('./commands-CEazgqvj.mjs');
852
+ const { machineShare } = await import('./commands-CgirOjun.mjs');
853
853
  let machineId;
854
854
  const shareArgs = [];
855
855
  for (let i = 1; i < machineArgs.length; i++) {
@@ -879,7 +879,7 @@ async function handleMachineCommand() {
879
879
  }
880
880
  await machineShare(machineId, { add, remove, list, configPath, showConfig });
881
881
  } else if (machineSubcommand === "exec") {
882
- const { machineExec } = await import('./commands-CEazgqvj.mjs');
882
+ const { machineExec } = await import('./commands-CgirOjun.mjs');
883
883
  let machineId;
884
884
  let cwd;
885
885
  const cmdParts = [];
@@ -899,7 +899,7 @@ async function handleMachineCommand() {
899
899
  }
900
900
  await machineExec(machineId, command, cwd);
901
901
  } else if (machineSubcommand === "info") {
902
- const { machineInfo } = await import('./commands-CEazgqvj.mjs');
902
+ const { machineInfo } = await import('./commands-CgirOjun.mjs');
903
903
  let machineId;
904
904
  for (let i = 1; i < machineArgs.length; i++) {
905
905
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -919,10 +919,10 @@ async function handleMachineCommand() {
919
919
  level = machineArgs[++i];
920
920
  }
921
921
  }
922
- const { machineNotify } = await import('./agentCommands-BH6CIqc7.mjs');
922
+ const { machineNotify } = await import('./agentCommands-CcvaE6am.mjs');
923
923
  await machineNotify(message, level);
924
924
  } else if (machineSubcommand === "ls") {
925
- const { machineLs } = await import('./commands-CEazgqvj.mjs');
925
+ const { machineLs } = await import('./commands-CgirOjun.mjs');
926
926
  let machineId;
927
927
  let showHidden = false;
928
928
  let path;
@@ -1389,7 +1389,7 @@ async function applyClaudeAuthFlags(argv) {
1389
1389
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1390
1390
  );
1391
1391
  }
1392
- const mod = await import('./run-DypcS01S.mjs').then(function (n) { return n.t; });
1392
+ const mod = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
1393
1393
  if (hasHypha) {
1394
1394
  mod.setClaudeAuthHyphaProxy();
1395
1395
  console.log("Claude auth configured: hypha-proxy (uses HYPHA_TOKEN live at each spawn).");
@@ -1427,7 +1427,7 @@ async function applyDaemonShareFlag(argv) {
1427
1427
  }
1428
1428
  }
1429
1429
  if (collected.length === 0) return;
1430
- const { updateEnvFile } = await import('./run-DypcS01S.mjs').then(function (n) { return n.t; });
1430
+ const { updateEnvFile } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
1431
1431
  const seen = /* @__PURE__ */ new Set();
1432
1432
  const deduped = collected.filter((e) => {
1433
1433
  const k = e.toLowerCase();
@@ -1440,7 +1440,7 @@ async function applyDaemonShareFlag(argv) {
1440
1440
  }
1441
1441
  async function handleDaemonAuthCommand(argv) {
1442
1442
  const sub = (argv[0] || "status").toLowerCase();
1443
- const mod = await import('./run-DypcS01S.mjs').then(function (n) { return n.t; });
1443
+ const mod = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
1444
1444
  if (sub === "--help" || sub === "-h" || sub === "help") {
1445
1445
  console.log(`
1446
1446
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
68
68
  });
69
69
  return;
70
70
  }
71
- const { connectAndGetMachine } = await import('./commands-CEazgqvj.mjs');
71
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
72
72
  const { server, machine } = await connectAndGetMachine();
73
73
  try {
74
74
  const status = await machine.tunnelStart({
@@ -132,7 +132,7 @@ async function serviceServe(args) {
132
132
  }
133
133
  async function serviceList(_args) {
134
134
  try {
135
- const { connectAndGetMachine } = await import('./commands-CEazgqvj.mjs');
135
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
136
136
  const { server, machine } = await connectAndGetMachine();
137
137
  try {
138
138
  const tunnels = await machine.tunnelList({});
@@ -161,7 +161,7 @@ async function serviceDelete(args) {
161
161
  process.exit(1);
162
162
  }
163
163
  try {
164
- const { connectAndGetMachine } = await import('./commands-CEazgqvj.mjs');
164
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
165
165
  const { server, machine } = await connectAndGetMachine();
166
166
  try {
167
167
  await machine.tunnelStop({ name });
@@ -2,7 +2,7 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { execSync } from 'node:child_process';
3
3
  import { resolve, join } from 'node:path';
4
4
  import os from 'node:os';
5
- import { n as normalizeAllowedUser, l as loadSecurityContextConfig, e as resolveSecurityContext, f as buildSecurityContextFromFlags, m as mergeSecurityContexts, c as connectToHypha, i as buildSessionShareUrl, j as buildMachineShareUrl } from './run-DypcS01S.mjs';
5
+ import { n as normalizeAllowedUser, l as loadSecurityContextConfig, e as resolveSecurityContext, f as buildSecurityContextFromFlags, m as mergeSecurityContexts, c as connectToHypha, i as buildSessionShareUrl, j as buildMachineShareUrl } from './run-EPzdDXeY.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-CEazgqvj.mjs';
3
+ import { connectAndGetMachine } from './commands-CgirOjun.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-DypcS01S.mjs';
8
+ import './run-EPzdDXeY.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { c as connectToHypha, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, a as registerSessionService, s as startDaemon, b as stopDaemon } from './run-DypcS01S.mjs';
1
+ export { c as connectToHypha, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, a as registerSessionService, s as startDaemon, b as stopDaemon } from './run-EPzdDXeY.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -0,0 +1,63 @@
1
+ var name = "svamp-cli";
2
+ var version = "0.2.65";
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 && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && tsc --noEmit && pkgroll",
21
+ typecheck: "tsc --noEmit",
22
+ test: "npx tsx test/test-context-window.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-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-ralph-loop.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-output-formatters.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-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.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-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-ralph-loop-integration.mjs && npx tsx test/test-ralph-loop-modes.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 && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.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-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only",
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
+ };
29
+ var dependencies = {
30
+ "@agentclientprotocol/sdk": "^0.14.1",
31
+ "@modelcontextprotocol/sdk": "^1.25.3",
32
+ "hypha-rpc": "0.21.40",
33
+ "node-pty": "1.2.0-beta.11",
34
+ ws: "^8.18.0",
35
+ yaml: "^2.8.2",
36
+ zod: "^3.24.4"
37
+ };
38
+ var devDependencies = {
39
+ "@types/node": ">=20",
40
+ "@types/ws": "^8.5.14",
41
+ pkgroll: "^2.14.2",
42
+ tsx: "^4.20.6",
43
+ typescript: "5.9.3"
44
+ };
45
+ var packageManager = "yarn@1.22.22";
46
+ var _package = {
47
+ name: name,
48
+ version: version,
49
+ description: description,
50
+ author: author,
51
+ license: license,
52
+ type: type,
53
+ bin: bin,
54
+ files: files,
55
+ main: main,
56
+ exports: exports$1,
57
+ scripts: scripts,
58
+ dependencies: dependencies,
59
+ devDependencies: devDependencies,
60
+ packageManager: packageManager
61
+ };
62
+
63
+ export { author, bin, _package as default, dependencies, description, devDependencies, exports$1 as exports, files, license, main, name, packageManager, scripts, type, version };
@@ -6405,6 +6405,71 @@ You may be running in parallel with other agents \u2014 possibly sharing the sam
6405
6405
  `;
6406
6406
  }
6407
6407
 
6408
+ const STANDARD_WINDOWS = [2e5, 1e6];
6409
+ function readWindow(entry) {
6410
+ if (!entry) return 0;
6411
+ const cw = entry.contextWindow ?? entry.context_window;
6412
+ return typeof cw === "number" && cw > 0 && Number.isFinite(cw) ? cw : 0;
6413
+ }
6414
+ function computeObservedContext(usage) {
6415
+ if (!usage) return 0;
6416
+ return (usage.input_tokens || 0) + (usage.cache_creation_input_tokens || 0) + (usage.cache_read_input_tokens || 0);
6417
+ }
6418
+ function inferWindowFromModelName(model) {
6419
+ if (!model) return 0;
6420
+ if (/\[1m\]/i.test(model)) return 1e6;
6421
+ if (/opus-?4-?[7-9]/i.test(model)) return 1e6;
6422
+ if (/opus-?[5-9]/i.test(model)) return 1e6;
6423
+ if (/sonnet-?4-?[5-9]/i.test(model)) return 1e6;
6424
+ if (/sonnet-?[5-9]/i.test(model)) return 1e6;
6425
+ if (/opus|sonnet/i.test(model)) return 2e5;
6426
+ if (/haiku/i.test(model)) return 2e5;
6427
+ return 0;
6428
+ }
6429
+ function matchedMainModel(modelUsage, mainModel) {
6430
+ if (!modelUsage || !mainModel) return { window: 0, matched: false };
6431
+ const variants = [
6432
+ mainModel,
6433
+ `${mainModel}[1m]`,
6434
+ mainModel.replace(/\[1m\]$/i, "")
6435
+ ];
6436
+ for (const k of variants) {
6437
+ const cw = readWindow(modelUsage[k]);
6438
+ if (cw > 0) return { window: cw, matched: true };
6439
+ }
6440
+ return { window: 0, matched: false };
6441
+ }
6442
+ function maxAcrossModelUsage(modelUsage) {
6443
+ if (!modelUsage) return 0;
6444
+ let best = 0;
6445
+ for (const v of Object.values(modelUsage)) {
6446
+ const cw = readWindow(v);
6447
+ if (cw > best) best = cw;
6448
+ }
6449
+ return best;
6450
+ }
6451
+ function selfHealForObserved(candidate, observed) {
6452
+ if (observed <= candidate) return candidate;
6453
+ const next = STANDARD_WINDOWS.find((w) => w >= observed);
6454
+ if (next) return Math.max(candidate, next);
6455
+ return Math.max(candidate, Math.ceil(observed * 1.25));
6456
+ }
6457
+ function resolveContextWindow(opts) {
6458
+ const { modelUsage, usage, mainModel, currentWindow } = opts;
6459
+ const observed = computeObservedContext(usage);
6460
+ const main = matchedMainModel(modelUsage, mainModel);
6461
+ let candidate = main.window;
6462
+ const definitiveMatch = main.matched;
6463
+ if (!candidate) candidate = maxAcrossModelUsage(modelUsage);
6464
+ if (!candidate) candidate = inferWindowFromModelName(mainModel);
6465
+ candidate = selfHealForObserved(candidate, observed);
6466
+ const current = typeof currentWindow === "number" && currentWindow > 0 ? currentWindow : 0;
6467
+ if (current > 0 && candidate > 0 && candidate < current && !definitiveMatch) {
6468
+ candidate = current;
6469
+ }
6470
+ return candidate;
6471
+ }
6472
+
6408
6473
  const SVAMP_HOME$1 = process.env.SVAMP_HOME || join$1(os.homedir(), ".svamp");
6409
6474
  function generateHookSettings(portOrOptions = {}) {
6410
6475
  const opts = typeof portOrOptions === "number" ? { sessionStartPort: portOrOptions } : portOrOptions;
@@ -7690,7 +7755,7 @@ async function startDaemon(options) {
7690
7755
  const list = loadExposedTunnels().filter((t) => t.name !== name);
7691
7756
  saveExposedTunnels(list);
7692
7757
  }
7693
- const { ServeManager } = await import('./serveManager-G9PiLNKm.mjs');
7758
+ const { ServeManager } = await import('./serveManager-pDviHaH8.mjs');
7694
7759
  const serveManager = new ServeManager(SVAMP_HOME, (msg) => logger.log(`[SERVE] ${msg}`), hyphaServerUrl);
7695
7760
  ensureAutoInstalledSkills(logger).catch(() => {
7696
7761
  });
@@ -7894,6 +7959,7 @@ async function startDaemon(options) {
7894
7959
  let lastSpawnMeta = persisted?.spawnMeta || {};
7895
7960
  let sessionWasProcessing = !!options2.wasProcessing;
7896
7961
  let lastAssistantText = "";
7962
+ let lastMainModel;
7897
7963
  let consecutiveRalphErrors = 0;
7898
7964
  const MAX_RALPH_ERRORS = 3;
7899
7965
  let spawnHasReceivedInit = false;
@@ -8221,6 +8287,12 @@ async function startDaemon(options) {
8221
8287
  "event"
8222
8288
  );
8223
8289
  }
8290
+ if (msg.type === "assistant") {
8291
+ const assistantModel = msg.message?.model;
8292
+ if (typeof assistantModel === "string" && assistantModel.length > 0) {
8293
+ lastMainModel = assistantModel;
8294
+ }
8295
+ }
8224
8296
  const assistantContent = msg.type === "assistant" ? msg.message?.content ?? msg.content : void 0;
8225
8297
  if (Array.isArray(assistantContent)) {
8226
8298
  for (const block of assistantContent) {
@@ -8324,15 +8396,15 @@ async function startDaemon(options) {
8324
8396
  }
8325
8397
  signalProcessing(false);
8326
8398
  sessionWasProcessing = false;
8327
- if (msg.modelUsage && typeof msg.modelUsage === "object") {
8328
- const modelKeys = Object.keys(msg.modelUsage);
8329
- if (modelKeys.length > 0) {
8330
- const firstModel = msg.modelUsage[modelKeys[0]];
8331
- if (firstModel?.contextWindow && firstModel.contextWindow !== sessionMetadata.contextWindow) {
8332
- sessionMetadata = { ...sessionMetadata, contextWindow: firstModel.contextWindow };
8333
- sessionService.updateMetadata(sessionMetadata);
8334
- }
8335
- }
8399
+ const resolvedWindow = resolveContextWindow({
8400
+ modelUsage: msg.modelUsage,
8401
+ usage: msg.usage,
8402
+ mainModel: lastMainModel,
8403
+ currentWindow: sessionMetadata.contextWindow
8404
+ });
8405
+ if (resolvedWindow > 0 && resolvedWindow !== sessionMetadata.contextWindow) {
8406
+ sessionMetadata = { ...sessionMetadata, contextWindow: resolvedWindow };
8407
+ sessionService.updateMetadata(sessionMetadata);
8336
8408
  }
8337
8409
  if (claudeResumeId && !trackedSession.stopped) {
8338
8410
  saveSession({
@@ -8557,6 +8629,9 @@ The automated loop has finished. Review the progress above and let me know if yo
8557
8629
  if (msg.slash_commands && Array.isArray(msg.slash_commands)) {
8558
8630
  sessionMetadata = { ...sessionMetadata, slashCommands: msg.slash_commands };
8559
8631
  }
8632
+ if (typeof msg.model === "string" && msg.model.length > 0) {
8633
+ lastMainModel = msg.model;
8634
+ }
8560
8635
  if (msg.session_id) {
8561
8636
  const isResumeFailure = !spawnHasReceivedInit && claudeResumeId && msg.session_id !== claudeResumeId;
8562
8637
  const isConversationClear = spawnHasReceivedInit && claudeResumeId && msg.session_id !== claudeResumeId;
@@ -10113,7 +10188,7 @@ The automated loop has finished. Review the progress above and let me know if yo
10113
10188
  getSessionPid: (sessionId) => {
10114
10189
  for (const [, session] of pidToTrackedSession) {
10115
10190
  if (session.svampSessionId === sessionId && !session.stopped) {
10116
- return session.childProcess?.pid;
10191
+ return session.pid;
10117
10192
  }
10118
10193
  }
10119
10194
  return void 0;
@@ -2,7 +2,7 @@ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(im
2
2
  import os from 'node:os';
3
3
  import { resolve, join } from 'node:path';
4
4
  import { existsSync, readFileSync, watch } from 'node:fs';
5
- import { c as connectToHypha, a as registerSessionService, k as generateHookSettings } from './run-DypcS01S.mjs';
5
+ import { c as connectToHypha, a as registerSessionService, k as generateHookSettings } from './run-EPzdDXeY.mjs';
6
6
  import { createServer } from 'node:http';
7
7
  import { spawn } from 'node:child_process';
8
8
  import { createInterface } from 'node:readline';
@@ -54,7 +54,7 @@ async function handleServeCommand() {
54
54
  }
55
55
  }
56
56
  async function serveAdd(args, machineId) {
57
- const { connectAndGetMachine } = await import('./commands-CEazgqvj.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.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-CEazgqvj.mjs');
96
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.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-CEazgqvj.mjs');
185
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.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-CEazgqvj.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.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-CEazgqvj.mjs');
238
+ const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
239
239
  const { machine, server } = await connectAndGetMachine(machineId);
240
240
  try {
241
241
  const info = await machine.serveInfo();
@@ -4,7 +4,7 @@ import * as fs from 'fs';
4
4
  import * as http from 'http';
5
5
  import * as net from 'net';
6
6
  import * as path from 'path';
7
- import { S as ServeAuth, h as hasCookieToken } from './run-DypcS01S.mjs';
7
+ import { S as ServeAuth, h as hasCookieToken } from './run-EPzdDXeY.mjs';
8
8
  import 'os';
9
9
  import 'fs/promises';
10
10
  import 'url';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svamp-cli",
3
- "version": "0.2.63",
3
+ "version": "0.2.65",
4
4
  "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
5
  "author": "Amun AI AB",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -20,7 +20,7 @@
20
20
  "scripts": {
21
21
  "build": "rm -rf dist bin/skills && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && tsc --noEmit && pkgroll",
22
22
  "typecheck": "tsc --noEmit",
23
- "test": "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-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-ralph-loop.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-output-formatters.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-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.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-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-ralph-loop-integration.mjs && npx tsx test/test-ralph-loop-modes.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 && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.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-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only",
23
+ "test": "npx tsx test/test-context-window.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-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-ralph-loop.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-output-formatters.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-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.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-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-ralph-loop-integration.mjs && npx tsx test/test-ralph-loop-modes.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 && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.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-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only",
24
24
  "test:hypha": "node --no-warnings test/test-hypha-service.mjs",
25
25
  "dev": "tsx src/cli.ts",
26
26
  "dev:daemon": "tsx src/cli.ts daemon start-sync",
@@ -1,63 +0,0 @@
1
- var name = "svamp-cli";
2
- var version = "0.2.63";
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 && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && tsc --noEmit && pkgroll",
21
- typecheck: "tsc --noEmit",
22
- test: "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-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-ralph-loop.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-output-formatters.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-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.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-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-ralph-loop-integration.mjs && npx tsx test/test-ralph-loop-modes.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 && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.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-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only",
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
- };
29
- var dependencies = {
30
- "@agentclientprotocol/sdk": "^0.14.1",
31
- "@modelcontextprotocol/sdk": "^1.25.3",
32
- "hypha-rpc": "0.21.40",
33
- "node-pty": "1.2.0-beta.11",
34
- ws: "^8.18.0",
35
- yaml: "^2.8.2",
36
- zod: "^3.24.4"
37
- };
38
- var devDependencies = {
39
- "@types/node": ">=20",
40
- "@types/ws": "^8.5.14",
41
- pkgroll: "^2.14.2",
42
- tsx: "^4.20.6",
43
- typescript: "5.9.3"
44
- };
45
- var packageManager = "yarn@1.22.22";
46
- var _package = {
47
- name: name,
48
- version: version,
49
- description: description,
50
- author: author,
51
- license: license,
52
- type: type,
53
- bin: bin,
54
- files: files,
55
- main: main,
56
- exports: exports$1,
57
- scripts: scripts,
58
- dependencies: dependencies,
59
- devDependencies: devDependencies,
60
- packageManager: packageManager
61
- };
62
-
63
- export { author, bin, _package as default, dependencies, description, devDependencies, exports$1 as exports, files, license, main, name, packageManager, scripts, type, version };