@seawork/server 1.0.21 → 1.0.22-rc.2

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 (62) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +22 -0
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/scripts/supervisor-native-classifier.js +60 -0
  4. package/dist/scripts/supervisor-native-classifier.js.map +1 -0
  5. package/dist/server/client/daemon-client.d.ts +7 -1
  6. package/dist/server/client/daemon-client.d.ts.map +1 -1
  7. package/dist/server/client/daemon-client.js +13 -0
  8. package/dist/server/client/daemon-client.js.map +1 -1
  9. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  10. package/dist/server/server/agent/agent-manager.js +14 -0
  11. package/dist/server/server/agent/agent-manager.js.map +1 -1
  12. package/dist/server/server/agent/install-state.d.ts +248 -0
  13. package/dist/server/server/agent/install-state.d.ts.map +1 -0
  14. package/dist/server/server/agent/install-state.js +126 -0
  15. package/dist/server/server/agent/install-state.js.map +1 -0
  16. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  17. package/dist/server/server/agent/providers/claude-agent.js +8 -8
  18. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  19. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  20. package/dist/server/server/agent/providers/codex-app-server-agent.js +96 -29
  21. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  22. package/dist/server/server/agent/providers/codex-binary-resolver.d.ts +23 -0
  23. package/dist/server/server/agent/providers/codex-binary-resolver.d.ts.map +1 -0
  24. package/dist/server/server/agent/providers/codex-binary-resolver.js +175 -0
  25. package/dist/server/server/agent/providers/codex-binary-resolver.js.map +1 -0
  26. package/dist/server/server/agent/providers/codex-health-probe.d.ts +16 -0
  27. package/dist/server/server/agent/providers/codex-health-probe.d.ts.map +1 -0
  28. package/dist/server/server/agent/providers/codex-health-probe.js +161 -0
  29. package/dist/server/server/agent/providers/codex-health-probe.js.map +1 -0
  30. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +5 -1
  31. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
  32. package/dist/server/server/agent/providers/diagnostic-utils.js +105 -8
  33. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
  34. package/dist/server/server/exports.d.ts +4 -1
  35. package/dist/server/server/exports.d.ts.map +1 -1
  36. package/dist/server/server/exports.js +7 -1
  37. package/dist/server/server/exports.js.map +1 -1
  38. package/dist/server/server/file-explorer/service.d.ts +8 -0
  39. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  40. package/dist/server/server/file-explorer/service.js +43 -0
  41. package/dist/server/server/file-explorer/service.js.map +1 -1
  42. package/dist/server/server/latency-tracker.d.ts +9 -0
  43. package/dist/server/server/latency-tracker.d.ts.map +1 -1
  44. package/dist/server/server/latency-tracker.js +111 -0
  45. package/dist/server/server/latency-tracker.js.map +1 -1
  46. package/dist/server/server/session.d.ts +1 -0
  47. package/dist/server/server/session.d.ts.map +1 -1
  48. package/dist/server/server/session.js +53 -2
  49. package/dist/server/server/session.js.map +1 -1
  50. package/dist/server/shared/messages.d.ts +964 -0
  51. package/dist/server/shared/messages.d.ts.map +1 -1
  52. package/dist/server/shared/messages.js +34 -0
  53. package/dist/server/shared/messages.js.map +1 -1
  54. package/dist/server/utils/electron-helper.d.ts +16 -0
  55. package/dist/server/utils/electron-helper.d.ts.map +1 -1
  56. package/dist/server/utils/electron-helper.js +34 -0
  57. package/dist/server/utils/electron-helper.js.map +1 -1
  58. package/dist/server/utils/executable.d.ts +3 -1
  59. package/dist/server/utils/executable.d.ts.map +1 -1
  60. package/dist/server/utils/executable.js +112 -2
  61. package/dist/server/utils/executable.js.map +1 -1
  62. package/package.json +3 -3
@@ -0,0 +1,126 @@
1
+ // Machine-local install state for agents installed by Seawork (e.g. codex via
2
+ // `bun install -g`). This is a *cache* of "we successfully installed agent X
3
+ // at path Y" — it is NOT user configuration. We keep it out of config.json
4
+ // so it stays out of JSON schemas, docs, and shareable/git-able files.
5
+ //
6
+ // File: $SEAWORK_HOME/install-config.json (shared with desktop's npmRegistry/
7
+ // bunMirror entries; the `agents` field is the install-state portion).
8
+ //
9
+ // Read on demand by:
10
+ // - daemon: codex binary resolver (prefer Seawork-installed copy over PATH)
11
+ // - daemon: `isAvailable` / `getDiagnostic` so UI matches actual spawn
12
+ // - desktop: install check (don't show "installed" if state is stale)
13
+ // - doctor (Rust): same resolver semantics
14
+ //
15
+ // Written by:
16
+ // - desktop: installAgent("codex") after `bun install -g` succeeds and the
17
+ // resolved binary passes the health probe.
18
+ // - daemon: when health probe fails — bumps failureCount and lastError but
19
+ // does NOT delete the entry (single failures may be transient: AV scan,
20
+ // network drive offline, sync mid-flight).
21
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
22
+ import path from "node:path";
23
+ import { z } from "zod";
24
+ import { resolveSeaworkHome } from "../seawork-home.js";
25
+ import { AgentProviderSchema } from "./provider-manifest.js";
26
+ const FILENAME = "install-config.json";
27
+ const AgentInstallEntrySchema = z
28
+ .object({
29
+ // Absolute path to the agent binary as installed by Seawork.
30
+ binary: z.string().min(1),
31
+ // ISO timestamp of last successful install (or last successful re-probe).
32
+ installedAt: z.string().optional(),
33
+ // Reported `--version` string at install time, for diagnostics.
34
+ version: z.string().optional(),
35
+ // How we installed it ("bun-global" today; future: "vendored", etc.).
36
+ source: z.string().optional(),
37
+ // Last health-probe result. Absence means "never probed since install".
38
+ lastHealth: z
39
+ .object({
40
+ ok: z.boolean(),
41
+ at: z.string(),
42
+ reason: z.string().optional(),
43
+ failureCount: z.number().int().nonnegative().optional(),
44
+ })
45
+ .optional(),
46
+ })
47
+ .strict();
48
+ const AgentInstallStateSchema = z.record(AgentProviderSchema, AgentInstallEntrySchema);
49
+ // Existing fields written by desktop's install-config.ts. Kept loose so we
50
+ // don't fight the desktop schema — we only own `agents`.
51
+ const InstallConfigFileSchema = z
52
+ .object({
53
+ bunMirror: z.string().optional(),
54
+ npmRegistry: z.string().optional(),
55
+ chosenAt: z.string().optional(),
56
+ agents: AgentInstallStateSchema.optional(),
57
+ })
58
+ .passthrough();
59
+ function configPath(env = process.env) {
60
+ return path.join(resolveSeaworkHome(env), FILENAME);
61
+ }
62
+ export function readInstallConfigFile(env) {
63
+ const p = configPath(env);
64
+ if (!existsSync(p))
65
+ return {};
66
+ try {
67
+ const raw = readFileSync(p, "utf8");
68
+ const parsed = JSON.parse(raw);
69
+ const result = InstallConfigFileSchema.safeParse(parsed);
70
+ if (!result.success)
71
+ return {};
72
+ return result.data;
73
+ }
74
+ catch {
75
+ return {};
76
+ }
77
+ }
78
+ export function readAgentInstallEntry(provider, env) {
79
+ const file = readInstallConfigFile(env);
80
+ return file.agents?.[provider] ?? null;
81
+ }
82
+ // Atomic-ish write: read current file, merge `agents[provider]`, write back.
83
+ // Concurrent writers (e.g. two installAgent calls in flight) may clobber each
84
+ // other's `agents` updates — acceptable because install operations are
85
+ // user-driven and serialized in practice.
86
+ export function writeAgentInstallEntry(provider, entry, env) {
87
+ const current = readInstallConfigFile(env);
88
+ const next = {
89
+ ...current,
90
+ agents: { ...(current.agents ?? {}), [provider]: entry },
91
+ };
92
+ const p = configPath(env);
93
+ mkdirSync(path.dirname(p), { recursive: true });
94
+ writeFileSync(p, JSON.stringify(next, null, 2), "utf8");
95
+ }
96
+ // Mark an existing entry unhealthy without deleting it. Increments failureCount.
97
+ // No-op if there is no entry for `provider`.
98
+ export function recordAgentInstallHealth(provider, health, env) {
99
+ const current = readInstallConfigFile(env);
100
+ const entry = current.agents?.[provider];
101
+ if (!entry)
102
+ return;
103
+ const prevFailures = entry.lastHealth?.failureCount ?? 0;
104
+ const next = {
105
+ ...entry,
106
+ lastHealth: {
107
+ ok: health.ok,
108
+ at: new Date().toISOString(),
109
+ reason: health.reason,
110
+ failureCount: health.ok ? 0 : prevFailures + 1,
111
+ },
112
+ };
113
+ writeAgentInstallEntry(provider, next, env);
114
+ }
115
+ export function clearAgentInstallEntry(provider, env) {
116
+ const current = readInstallConfigFile(env);
117
+ if (!current.agents?.[provider])
118
+ return;
119
+ const nextAgents = { ...current.agents };
120
+ delete nextAgents[provider];
121
+ const next = { ...current, agents: nextAgents };
122
+ const p = configPath(env);
123
+ mkdirSync(path.dirname(p), { recursive: true });
124
+ writeFileSync(p, JSON.stringify(next, null, 2), "utf8");
125
+ }
126
+ //# sourceMappingURL=install-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-state.js","sourceRoot":"","sources":["../../../../src/server/agent/install-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,eAAe,EAQpB,KAAK,EACL,KAAK,UAAU,EAOhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAGlB,oBAAoB,EAMpB,sBAAsB,EAKtB,YAAY,EACZ,kBAAkB,EAGlB,iBAAiB,EAEjB,iBAAiB,EACjB,0BAA0B,EAE1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AA4B9F,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAkEF,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAItE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;KAAE,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;CAC7B,CAAC;AAuBF,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAoB1D;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG;IACxF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAC5C;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAqYF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAyCtE;AAigBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CA8B1E;AAID,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAY;IACvC,QAAQ,CAAC,YAAY,uBAAuB;IAE5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,OAAO,EAAE,wBAAwB;IAOvC,aAAa,CACjB,MAAM,EAAE,kBAAkB,EAC1B,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,YAAY,CAAC;IAWlB,aAAa,CACjB,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACvC,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,YAAY,CAAC;IAkBlB,UAAU,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIzE,mBAAmB,CACvB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAuBhC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ/B,aAAa,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAmCtD,OAAO,CAAC,YAAY;CAMrB;AAgtFD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,GACzE,iBAAiB,EAAE,CAkFrB;AA2GD,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,GACV,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CA6E1C"}
@@ -1373,7 +1373,12 @@ class ClaudeAgentSession {
1373
1373
  this.input.push(sdkMessage);
1374
1374
  }
1375
1375
  catch (error) {
1376
- this.finishForegroundTurn(this.buildTurnFailedEvent(error instanceof Error ? error.message : "Claude stream failed"));
1376
+ this.flushPendingToolCalls();
1377
+ this.activeForegroundTurnId = null;
1378
+ this.lastForegroundPromptText = null;
1379
+ this.cancelCurrentTurn = null;
1380
+ this.syncTurnState("foreground turn terminal");
1381
+ throw error;
1377
1382
  }
1378
1383
  return { turnId };
1379
1384
  }
@@ -1769,9 +1774,6 @@ class ClaudeAgentSession {
1769
1774
  this.input = null;
1770
1775
  this.queryPumpPromise = null;
1771
1776
  this.queryRestartNeeded = false;
1772
- // Reset session identity for explicit restarts so the new query starts
1773
- // a fresh session rather than resuming the previous one.
1774
- this.claudeSessionId = null;
1775
1777
  oldInput?.end();
1776
1778
  oldQuery.close?.();
1777
1779
  try {
@@ -1781,10 +1783,8 @@ class ClaudeAgentSession {
1781
1783
  /* ignore */
1782
1784
  }
1783
1785
  }
1784
- // When the pump died unexpectedly (query became null, e.g. after a session
1785
- // ID overwrite error), preserve claudeSessionId so buildOptions() passes
1786
- // resume: sessionId and the new query auto-resumes the previous session.
1787
- // For explicit restarts above, claudeSessionId was already cleared.
1786
+ // Preserve claudeSessionId across transport restarts so buildOptions()
1787
+ // can resume the same Claude conversation after mode/thinking changes.
1788
1788
  this.persistence = null;
1789
1789
  const input = createAsyncMessageInput();
1790
1790
  const options = await this.buildOptions();