@seawork/server 1.0.4 → 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.
- package/dist/server/server/agent/provider-manifest.js +5 -5
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.d.ts +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.js +3 -41
- package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +10 -26
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +24 -71
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/seawork-models.d.ts +4 -0
- package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seawork-models.js +119 -0
- package/dist/server/server/agent/providers/seawork-models.js.map +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +35 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +6 -1
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/index.js +7 -0
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/pid-lock.d.ts.map +1 -1
- package/dist/server/server/pid-lock.js +35 -2
- package/dist/server/server/pid-lock.js.map +1 -1
- package/dist/server/server/sac/auth.d.ts +41 -0
- package/dist/server/server/sac/auth.d.ts.map +1 -0
- package/dist/server/server/sac/auth.js +103 -0
- package/dist/server/server/sac/auth.js.map +1 -0
- package/dist/server/server/sac/client.d.ts +15 -0
- package/dist/server/server/sac/client.d.ts.map +1 -0
- package/dist/server/server/sac/client.js +70 -0
- package/dist/server/server/sac/client.js.map +1 -0
- package/dist/server/server/sac/download.d.ts +10 -0
- package/dist/server/server/sac/download.d.ts.map +1 -0
- package/dist/server/server/sac/download.js +67 -0
- package/dist/server/server/sac/download.js.map +1 -0
- package/dist/server/server/sac/endpoints.d.ts +13 -0
- package/dist/server/server/sac/endpoints.d.ts.map +1 -0
- package/dist/server/server/sac/endpoints.js +16 -0
- package/dist/server/server/sac/endpoints.js.map +1 -0
- package/dist/server/server/sac/errors.d.ts +39 -0
- package/dist/server/server/sac/errors.d.ts.map +1 -0
- package/dist/server/server/sac/errors.js +46 -0
- package/dist/server/server/sac/errors.js.map +1 -0
- package/dist/server/server/sac/generate.d.ts +35 -0
- package/dist/server/server/sac/generate.d.ts.map +1 -0
- package/dist/server/server/sac/generate.js +111 -0
- package/dist/server/server/sac/generate.js.map +1 -0
- package/dist/server/server/sac/index.d.ts +24 -0
- package/dist/server/server/sac/index.d.ts.map +1 -0
- package/dist/server/server/sac/index.js +26 -0
- package/dist/server/server/sac/index.js.map +1 -0
- package/dist/server/server/sac/output.d.ts +22 -0
- package/dist/server/server/sac/output.d.ts.map +1 -0
- package/dist/server/server/sac/output.js +142 -0
- package/dist/server/server/sac/output.js.map +1 -0
- package/dist/server/server/sac/poll.d.ts +12 -0
- package/dist/server/server/sac/poll.d.ts.map +1 -0
- package/dist/server/server/sac/poll.js +67 -0
- package/dist/server/server/sac/poll.js.map +1 -0
- package/dist/server/server/sac/providers/index.d.ts +19 -0
- package/dist/server/server/sac/providers/index.d.ts.map +1 -0
- package/dist/server/server/sac/providers/index.js +32 -0
- package/dist/server/server/sac/providers/index.js.map +1 -0
- package/dist/server/server/sac/providers/seaart.d.ts +7 -0
- package/dist/server/server/sac/providers/seaart.d.ts.map +1 -0
- package/dist/server/server/sac/providers/seaart.js +67 -0
- package/dist/server/server/sac/providers/seaart.js.map +1 -0
- package/dist/server/server/sac/providers/store.d.ts +8 -0
- package/dist/server/server/sac/providers/store.d.ts.map +1 -0
- package/dist/server/server/sac/providers/store.js +10 -0
- package/dist/server/server/sac/providers/store.js.map +1 -0
- package/dist/server/server/sac/providers/volces.d.ts +5 -0
- package/dist/server/server/sac/providers/volces.d.ts.map +1 -0
- package/dist/server/server/sac/providers/volces.js +88 -0
- package/dist/server/server/sac/providers/volces.js.map +1 -0
- package/dist/server/server/sac/types.d.ts +76 -0
- package/dist/server/server/sac/types.d.ts.map +1 -0
- package/dist/server/server/sac/types.js +5 -0
- package/dist/server/server/sac/types.js.map +1 -0
- package/dist/src/server/pid-lock.js +35 -2
- package/dist/src/server/pid-lock.js.map +1 -1
- 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
|
-
|
|
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:
|
|
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
|
-
|
|
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;
|