@seawork/server 1.0.15 → 1.0.16

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 (35) hide show
  1. package/dist/server/server/agent/providers/claude-agent.d.ts +16 -0
  2. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  3. package/dist/server/server/agent/providers/claude-agent.js +36 -23
  4. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  5. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
  6. package/dist/server/server/agent/providers/seawork-models.js +47 -9
  7. package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
  8. package/dist/server/server/daemon-config-store.d.ts +1 -0
  9. package/dist/server/server/daemon-config-store.d.ts.map +1 -1
  10. package/dist/server/server/daemon-config-store.js.map +1 -1
  11. package/dist/server/server/dictation/dictation-stream-manager.d.ts +9 -0
  12. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  13. package/dist/server/server/dictation/dictation-stream-manager.js +21 -1
  14. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  15. package/dist/server/server/persisted-config.d.ts +145 -39
  16. package/dist/server/server/persisted-config.d.ts.map +1 -1
  17. package/dist/server/server/persisted-config.js +113 -13
  18. package/dist/server/server/persisted-config.js.map +1 -1
  19. package/dist/server/server/session.js +1 -1
  20. package/dist/server/server/session.js.map +1 -1
  21. package/dist/server/server/speech/providers/openai/config.d.ts +6 -0
  22. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -1
  23. package/dist/server/server/speech/providers/openai/config.js +92 -22
  24. package/dist/server/server/speech/providers/openai/config.js.map +1 -1
  25. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
  26. package/dist/server/server/speech/providers/openai/runtime.js +43 -12
  27. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
  28. package/dist/server/server/speech/providers/openai/stt.d.ts +1 -0
  29. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -1
  30. package/dist/server/server/speech/providers/openai/stt.js +2 -1
  31. package/dist/server/server/speech/providers/openai/stt.js.map +1 -1
  32. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  33. package/dist/server/server/workspace-registry-model.js +21 -48
  34. package/dist/server/server/workspace-registry-model.js.map +1 -1
  35. package/package.json +3 -3
@@ -20,6 +20,22 @@ type ClaudeAgentClientOptions = {
20
20
  queryFactory?: typeof query;
21
21
  };
22
22
  export declare function resolveClaudeCliExecutable(): string | null;
23
+ /**
24
+ * Resolves Claude CLI auth mode from the merged spawn env.
25
+ * - API-key mode (ANTHROPIC_API_KEY present): set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
26
+ * to skip the OAuth client_data ping/metrics/autoupdater hits, and strip conflicting
27
+ * Bedrock/Vertex/OAuth vars so the CLI routes to the API-key code path (avoids
28
+ * 403 invalid_api_key from picking a non-API-key path that ignores our key).
29
+ * Note: do NOT use CLAUDE_CODE_SIMPLE=1 — despite the name it is a kill-switch that
30
+ * also drops Skill/Glob/Grep/Write/Task tools, replaces the system prompt with a
31
+ * 4-line stub, and disables CLAUDE.md/agents/attachments.
32
+ * - Local-auth mode (no API key): leave env untouched so the CLI can use the user's
33
+ * `claude login` OAuth credentials from keychain or ~/.claude/credentials.
34
+ */
35
+ export declare function resolveClaudeAuthSpawnEnv(mergedEnv: Record<string, string | undefined>): {
36
+ spawnEnv: Record<string, string | undefined>;
37
+ hasApiKey: boolean;
38
+ };
23
39
  export declare function extractUserMessageText(content: unknown): string | null;
24
40
  export declare function readEventIdentifiers(message: SDKMessage): EventIdentifiers;
25
41
  export declare class ClaudeAgentClient implements AgentClient {
@@ -1 +1 @@
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;AA2B9F,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;AAmYD,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;AA2qFD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,GACzE,iBAAiB,EAAE,CAkFrB"}
1
+ {"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
@@ -111,6 +111,38 @@ function resolveClaudeSpawnCommand(spawnOptions, runtimeSettings) {
111
111
  args: [...commandConfig.argv.slice(1), ...spawnOptions.args],
112
112
  };
113
113
  }
114
+ /**
115
+ * Resolves Claude CLI auth mode from the merged spawn env.
116
+ * - API-key mode (ANTHROPIC_API_KEY present): set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
117
+ * to skip the OAuth client_data ping/metrics/autoupdater hits, and strip conflicting
118
+ * Bedrock/Vertex/OAuth vars so the CLI routes to the API-key code path (avoids
119
+ * 403 invalid_api_key from picking a non-API-key path that ignores our key).
120
+ * Note: do NOT use CLAUDE_CODE_SIMPLE=1 — despite the name it is a kill-switch that
121
+ * also drops Skill/Glob/Grep/Write/Task tools, replaces the system prompt with a
122
+ * 4-line stub, and disables CLAUDE.md/agents/attachments.
123
+ * - Local-auth mode (no API key): leave env untouched so the CLI can use the user's
124
+ * `claude login` OAuth credentials from keychain or ~/.claude/credentials.
125
+ */
126
+ export function resolveClaudeAuthSpawnEnv(mergedEnv) {
127
+ const apiKey = mergedEnv.ANTHROPIC_API_KEY;
128
+ const hasApiKey = typeof apiKey === "string" && apiKey.length > 0;
129
+ if (!hasApiKey) {
130
+ return { spawnEnv: { ...mergedEnv }, hasApiKey };
131
+ }
132
+ return {
133
+ spawnEnv: {
134
+ ...mergedEnv,
135
+ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
136
+ ANTHROPIC_AUTH_TOKEN: undefined,
137
+ ANTHROPIC_MODEL: undefined,
138
+ ANTHROPIC_SMALL_FAST_MODEL: undefined,
139
+ CLAUDE_CODE_USE_BEDROCK: undefined,
140
+ CLAUDE_CODE_USE_VERTEX: undefined,
141
+ AWS_BEARER_TOKEN_BEDROCK: undefined,
142
+ },
143
+ hasApiKey,
144
+ };
145
+ }
114
146
  function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv, logger) {
115
147
  return {
116
148
  ...options,
@@ -121,30 +153,10 @@ function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv
121
153
  // unavailable, fall back to the Electron Helper binary (which has
122
154
  // LSUIElement=true in its Info.plist, so it won't create Dock icons).
123
155
  let command;
124
- const spawnEnv = {
156
+ const { spawnEnv, hasApiKey } = resolveClaudeAuthSpawnEnv({
125
157
  ...applyProviderEnv(spawnOptions.env, runtimeSettings),
126
158
  ...(launchEnv ?? {}),
127
- // Skip non-essential network traffic (OAuth client_data ping, metrics,
128
- // autoupdater check) so the spawned claude CLI authenticates purely
129
- // via ANTHROPIC_API_KEY env var without trying api.anthropic.com.
130
- //
131
- // Do NOT use CLAUDE_CODE_SIMPLE=1 for this — despite the name, it is a
132
- // total kill-switch that also: drops Skill/Glob/Grep/Write/Task/...
133
- // from the model's tool list, replaces the full system prompt with a
134
- // 4-line stub, skips CLAUDE.md, and disables agents/attachments. That
135
- // is why skills could not auto-invoke under any custom ANTHROPIC_BASE_URL.
136
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
137
- // Strip conflicting Anthropic/Bedrock/Vertex auth vars inherited from
138
- // the user's shell. If these are set, claude CLI picks one of the
139
- // non-API-key code paths (Bedrock/Vertex/OAuth) and ignores our
140
- // ANTHROPIC_API_KEY, causing 403 invalid_api_key errors.
141
- ANTHROPIC_AUTH_TOKEN: undefined,
142
- ANTHROPIC_MODEL: undefined,
143
- ANTHROPIC_SMALL_FAST_MODEL: undefined,
144
- CLAUDE_CODE_USE_BEDROCK: undefined,
145
- CLAUDE_CODE_USE_VERTEX: undefined,
146
- AWS_BEARER_TOKEN_BEDROCK: undefined,
147
- };
159
+ });
148
160
  if (!isDefaultRuntime) {
149
161
  command = resolved.command;
150
162
  }
@@ -177,7 +189,8 @@ function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings, launchEnv
177
189
  args: resolved.args,
178
190
  cwd: spawnOptions.cwd,
179
191
  isElectron: process.versions["electron"] != null,
180
- hasAnthropicKey: !!spawnEnv.ANTHROPIC_API_KEY,
192
+ authMode: hasApiKey ? "api-key" : "local-oauth",
193
+ hasAnthropicKey: hasApiKey,
181
194
  anthropicKeyPrefix: spawnEnv.ANTHROPIC_API_KEY?.slice(0, 10) ?? null,
182
195
  anthropicBaseUrl: spawnEnv.ANTHROPIC_BASE_URL ?? null,
183
196
  launchEnvKeys: Object.keys(launchEnv ?? {}),