@seawork/server 1.0.2 → 1.0.7

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 (88) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +1 -1
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/server/server/agent/provider-manifest.js +5 -5
  4. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  5. package/dist/server/server/agent/providers/claude/claude-models.d.ts +1 -1
  6. package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
  7. package/dist/server/server/agent/providers/claude/claude-models.js +3 -41
  8. package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
  9. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  10. package/dist/server/server/agent/providers/claude-agent.js +10 -26
  11. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  12. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  13. package/dist/server/server/agent/providers/codex-app-server-agent.js +24 -71
  14. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  15. package/dist/server/server/agent/providers/seawork-models.d.ts +4 -0
  16. package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -0
  17. package/dist/server/server/agent/providers/seawork-models.js +119 -0
  18. package/dist/server/server/agent/providers/seawork-models.js.map +1 -0
  19. package/dist/server/server/bootstrap.d.ts.map +1 -1
  20. package/dist/server/server/bootstrap.js +35 -1
  21. package/dist/server/server/bootstrap.js.map +1 -1
  22. package/dist/server/server/config.d.ts.map +1 -1
  23. package/dist/server/server/config.js +6 -1
  24. package/dist/server/server/config.js.map +1 -1
  25. package/dist/server/server/index.js +7 -0
  26. package/dist/server/server/index.js.map +1 -1
  27. package/dist/server/server/pid-lock.d.ts.map +1 -1
  28. package/dist/server/server/pid-lock.js +35 -2
  29. package/dist/server/server/pid-lock.js.map +1 -1
  30. package/dist/server/server/sac/auth.d.ts +41 -0
  31. package/dist/server/server/sac/auth.d.ts.map +1 -0
  32. package/dist/server/server/sac/auth.js +103 -0
  33. package/dist/server/server/sac/auth.js.map +1 -0
  34. package/dist/server/server/sac/client.d.ts +15 -0
  35. package/dist/server/server/sac/client.d.ts.map +1 -0
  36. package/dist/server/server/sac/client.js +70 -0
  37. package/dist/server/server/sac/client.js.map +1 -0
  38. package/dist/server/server/sac/download.d.ts +10 -0
  39. package/dist/server/server/sac/download.d.ts.map +1 -0
  40. package/dist/server/server/sac/download.js +67 -0
  41. package/dist/server/server/sac/download.js.map +1 -0
  42. package/dist/server/server/sac/endpoints.d.ts +13 -0
  43. package/dist/server/server/sac/endpoints.d.ts.map +1 -0
  44. package/dist/server/server/sac/endpoints.js +16 -0
  45. package/dist/server/server/sac/endpoints.js.map +1 -0
  46. package/dist/server/server/sac/errors.d.ts +39 -0
  47. package/dist/server/server/sac/errors.d.ts.map +1 -0
  48. package/dist/server/server/sac/errors.js +46 -0
  49. package/dist/server/server/sac/errors.js.map +1 -0
  50. package/dist/server/server/sac/generate.d.ts +35 -0
  51. package/dist/server/server/sac/generate.d.ts.map +1 -0
  52. package/dist/server/server/sac/generate.js +111 -0
  53. package/dist/server/server/sac/generate.js.map +1 -0
  54. package/dist/server/server/sac/index.d.ts +24 -0
  55. package/dist/server/server/sac/index.d.ts.map +1 -0
  56. package/dist/server/server/sac/index.js +26 -0
  57. package/dist/server/server/sac/index.js.map +1 -0
  58. package/dist/server/server/sac/output.d.ts +22 -0
  59. package/dist/server/server/sac/output.d.ts.map +1 -0
  60. package/dist/server/server/sac/output.js +142 -0
  61. package/dist/server/server/sac/output.js.map +1 -0
  62. package/dist/server/server/sac/poll.d.ts +12 -0
  63. package/dist/server/server/sac/poll.d.ts.map +1 -0
  64. package/dist/server/server/sac/poll.js +67 -0
  65. package/dist/server/server/sac/poll.js.map +1 -0
  66. package/dist/server/server/sac/providers/index.d.ts +19 -0
  67. package/dist/server/server/sac/providers/index.d.ts.map +1 -0
  68. package/dist/server/server/sac/providers/index.js +32 -0
  69. package/dist/server/server/sac/providers/index.js.map +1 -0
  70. package/dist/server/server/sac/providers/seaart.d.ts +7 -0
  71. package/dist/server/server/sac/providers/seaart.d.ts.map +1 -0
  72. package/dist/server/server/sac/providers/seaart.js +67 -0
  73. package/dist/server/server/sac/providers/seaart.js.map +1 -0
  74. package/dist/server/server/sac/providers/store.d.ts +8 -0
  75. package/dist/server/server/sac/providers/store.d.ts.map +1 -0
  76. package/dist/server/server/sac/providers/store.js +10 -0
  77. package/dist/server/server/sac/providers/store.js.map +1 -0
  78. package/dist/server/server/sac/providers/volces.d.ts +5 -0
  79. package/dist/server/server/sac/providers/volces.d.ts.map +1 -0
  80. package/dist/server/server/sac/providers/volces.js +88 -0
  81. package/dist/server/server/sac/providers/volces.js.map +1 -0
  82. package/dist/server/server/sac/types.d.ts +76 -0
  83. package/dist/server/server/sac/types.d.ts.map +1 -0
  84. package/dist/server/server/sac/types.js +5 -0
  85. package/dist/server/server/sac/types.js.map +1 -0
  86. package/dist/src/server/pid-lock.js +35 -2
  87. package/dist/src/server/pid-lock.js.map +1 -1
  88. package/package.json +10 -3
@@ -10,6 +10,7 @@ import { loadCodexPersistedTimeline } from "./codex-rollout-timeline.js";
10
10
  import { mapCodexRolloutToolCall, mapCodexToolCallFromThreadItem, } from "./codex/tool-call-mapper.js";
11
11
  import { applyProviderEnv, resolveProviderCommandPrefix, } from "../provider-launch-config.js";
12
12
  import { findExecutable } from "../../../utils/executable.js";
13
+ import { getSeaworkModels } from "./seawork-models.js";
13
14
  import { spawnProcess } from "../../../utils/spawn.js";
14
15
  import { extractCodexTerminalSessionId, nonEmptyString } from "./tool-call-mapper-utils.js";
15
16
  import { buildCodexFeatures, codexModelSupportsFastMode } from "./codex-feature-definitions.js";
@@ -81,9 +82,6 @@ function normalizeCodexModelId(modelId) {
81
82
  }
82
83
  return normalized;
83
84
  }
84
- function normalizeCodexModelLabel(displayName) {
85
- return displayName.replace(/\bgpt\b/gi, "GPT");
86
- }
87
85
  function isSchemaRecord(value) {
88
86
  return typeof value === "object" && value !== null && !Array.isArray(value);
89
87
  }
@@ -1838,6 +1836,11 @@ export async function codexAppServerTurnInputFromPrompt(prompt, logger) {
1838
1836
  }
1839
1837
  function buildCodexAppServerEnv(runtimeSettings, launchEnv) {
1840
1838
  const env = applyProviderEnv(process.env, runtimeSettings);
1839
+ // Clear proxy env vars to prevent interference with gateway requests
1840
+ env.http_proxy = "";
1841
+ env.https_proxy = "";
1842
+ env.HTTP_PROXY = "";
1843
+ env.HTTPS_PROXY = "";
1841
1844
  if (!launchEnv) {
1842
1845
  return env;
1843
1846
  }
@@ -3251,10 +3254,25 @@ export class CodexAppServerAgentClient {
3251
3254
  this.logger.trace({
3252
3255
  launchPrefix,
3253
3256
  }, "Spawning Codex app server");
3254
- return spawnProcess(launchPrefix.command, [...launchPrefix.args, "app-server"], {
3257
+ const codexEnv = buildCodexAppServerEnv(this.runtimeSettings, launchEnv);
3258
+ this.logger.info({
3259
+ hasOpenaiKey: !!codexEnv.OPENAI_API_KEY,
3260
+ openaiKeyPrefix: codexEnv.OPENAI_API_KEY?.slice(0, 10) ?? null,
3261
+ openaiBaseUrl: codexEnv.OPENAI_BASE_URL ?? null,
3262
+ }, "Codex app-server env check");
3263
+ // If a Seawork-managed base URL is available, inject a "seawork" provider
3264
+ // via -c flags to override any user config.
3265
+ const extraArgs = [];
3266
+ const seaworkBaseUrl = codexEnv.OPENAI_BASE_URL;
3267
+ if (seaworkBaseUrl) {
3268
+ extraArgs.push("-c", `model_provider="seawork"`, "-c", `model_providers.seawork.name="Seawork"`, "-c", `model_providers.seawork.base_url="${seaworkBaseUrl}/v1"`, "-c", `model_providers.seawork.env_key="SEAWORK_API_KEY"`, "--disable", "js_repl");
3269
+ codexEnv.SEAWORK_API_KEY = codexEnv.OPENAI_API_KEY ?? "";
3270
+ }
3271
+ this.logger.info({ extraArgs }, "Codex app-server extra args");
3272
+ return spawnProcess(launchPrefix.command, [...launchPrefix.args, "app-server", ...extraArgs], {
3255
3273
  detached: process.platform !== "win32",
3256
3274
  stdio: ["pipe", "pipe", "pipe"],
3257
- env: buildCodexAppServerEnv(this.runtimeSettings, launchEnv),
3275
+ env: codexEnv,
3258
3276
  });
3259
3277
  }
3260
3278
  async createSession(config, launchContext) {
@@ -3337,72 +3355,7 @@ export class CodexAppServerAgentClient {
3337
3355
  }
3338
3356
  }
3339
3357
  async listModels(_options) {
3340
- const child = await this.spawnAppServer();
3341
- const client = new CodexAppServerClient(child, this.logger);
3342
- try {
3343
- await client.request("initialize", buildCodexAppServerInitializeParams());
3344
- client.notify("initialized", {});
3345
- const response = (await client.request("model/list", {}));
3346
- const models = Array.isArray(response?.data) ? response.data : [];
3347
- const configuredDefaults = await readCodexConfiguredDefaults(client, this.logger);
3348
- const configuredDefaultModelId = configuredDefaults.model;
3349
- const configuredDefaultThinkingOptionId = configuredDefaults.thinkingOptionId;
3350
- const hasConfiguredDefaultModel = typeof configuredDefaultModelId === "string"
3351
- ? models.some((model) => model?.id === configuredDefaultModelId)
3352
- : false;
3353
- return models.map((model) => {
3354
- const defaultReasoningEffort = normalizeCodexThinkingOptionId(typeof model.defaultReasoningEffort === "string" ? model.defaultReasoningEffort : null);
3355
- const resolvedDefaultReasoningEffort = configuredDefaultThinkingOptionId ?? defaultReasoningEffort;
3356
- const thinkingById = new Map();
3357
- if (Array.isArray(model.supportedReasoningEfforts)) {
3358
- for (const entry of model.supportedReasoningEfforts) {
3359
- const id = normalizeCodexThinkingOptionId(typeof entry?.reasoningEffort === "string" ? entry.reasoningEffort : null);
3360
- if (!id)
3361
- continue;
3362
- const description = typeof entry?.description === "string" && entry.description.trim().length > 0
3363
- ? entry.description
3364
- : undefined;
3365
- thinkingById.set(id, { id, label: id, description });
3366
- }
3367
- }
3368
- if (resolvedDefaultReasoningEffort && !thinkingById.has(resolvedDefaultReasoningEffort)) {
3369
- thinkingById.set(resolvedDefaultReasoningEffort, {
3370
- id: resolvedDefaultReasoningEffort,
3371
- label: resolvedDefaultReasoningEffort,
3372
- description: configuredDefaultThinkingOptionId === resolvedDefaultReasoningEffort
3373
- ? "Configured default reasoning effort"
3374
- : "Model default reasoning effort",
3375
- });
3376
- }
3377
- const thinkingOptions = Array.from(thinkingById.values()).map((option) => ({
3378
- ...option,
3379
- isDefault: option.id === resolvedDefaultReasoningEffort,
3380
- }));
3381
- const defaultThinkingOptionId = resolvedDefaultReasoningEffort ??
3382
- thinkingOptions.find((option) => option.isDefault)?.id ??
3383
- thinkingOptions[0]?.id;
3384
- const isDefaultModel = hasConfiguredDefaultModel
3385
- ? model.id === configuredDefaultModelId
3386
- : model.isDefault;
3387
- return {
3388
- provider: CODEX_PROVIDER,
3389
- id: model.id,
3390
- label: normalizeCodexModelLabel(model.displayName),
3391
- description: model.description,
3392
- isDefault: isDefaultModel,
3393
- thinkingOptions: thinkingOptions.length > 0 ? thinkingOptions : undefined,
3394
- defaultThinkingOptionId,
3395
- metadata: {
3396
- model: model.model,
3397
- defaultReasoningEffort: model.defaultReasoningEffort,
3398
- supportedReasoningEfforts: model.supportedReasoningEfforts,
3399
- },
3400
- };
3401
- });
3402
- }
3403
- finally {
3404
- await client.dispose();
3405
- }
3358
+ return getSeaworkModels("codex");
3406
3359
  }
3407
3360
  async isAvailable() {
3408
3361
  const command = this.runtimeSettings?.command;