@seawork/server 1.0.7 → 1.0.10-rc.4
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/client/daemon-client.d.ts +32 -1
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +69 -0
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
- package/dist/server/server/agent/agent-management-mcp.js +6 -5
- package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
- package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
- package/dist/server/server/agent/agent-response-loop.js +0 -1
- package/dist/server/server/agent/agent-response-loop.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +68 -68
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +6 -5
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +30 -30
- package/dist/server/server/agent/provider-manifest.d.ts +2 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +3 -64
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +2 -10
- package/dist/server/server/agent/provider-registry.js.map +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 -0
- package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
- package/dist/server/server/agent/providers/claude-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +167 -22
- 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 +106 -3
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-rollout-timeline.js +76 -0
- package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -1
- package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/seawork-models.js +9 -0
- package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +16 -16
- package/dist/server/server/bug-report-handler.d.ts +9 -0
- package/dist/server/server/bug-report-handler.d.ts.map +1 -0
- package/dist/server/server/bug-report-handler.js +111 -0
- package/dist/server/server/bug-report-handler.js.map +1 -0
- package/dist/server/server/bug-report-redact.d.ts +12 -0
- package/dist/server/server/bug-report-redact.d.ts.map +1 -0
- package/dist/server/server/bug-report-redact.js +63 -0
- package/dist/server/server/bug-report-redact.js.map +1 -0
- package/dist/server/server/chat/chat-rpc-schemas.d.ts +26 -26
- package/dist/server/server/chat/chat-types.d.ts +2 -2
- package/dist/server/server/exports.d.ts +4 -2
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/exports.js +3 -0
- package/dist/server/server/exports.js.map +1 -1
- package/dist/server/server/index.js +47 -0
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +775 -775
- package/dist/server/server/loop-service.d.ts +108 -108
- package/dist/server/server/persisted-config.d.ts +121 -121
- package/dist/server/server/sac/errors.d.ts +1 -0
- package/dist/server/server/sac/errors.d.ts.map +1 -1
- package/dist/server/server/sac/errors.js +2 -1
- package/dist/server/server/sac/errors.js.map +1 -1
- package/dist/server/server/sac/generate.d.ts +19 -11
- package/dist/server/server/sac/generate.d.ts.map +1 -1
- package/dist/server/server/sac/generate.js +131 -36
- package/dist/server/server/sac/generate.js.map +1 -1
- package/dist/server/server/sac/index.d.ts +8 -10
- package/dist/server/server/sac/index.d.ts.map +1 -1
- package/dist/server/server/sac/index.js +5 -17
- package/dist/server/server/sac/index.js.map +1 -1
- package/dist/server/server/sac/providers/alibaba.d.ts +2 -0
- package/dist/server/server/sac/providers/alibaba.d.ts.map +1 -0
- package/dist/server/server/sac/providers/alibaba.js +506 -0
- package/dist/server/server/sac/providers/alibaba.js.map +1 -0
- package/dist/server/server/sac/providers/audio.d.ts +2 -0
- package/dist/server/server/sac/providers/audio.d.ts.map +1 -0
- package/dist/server/server/sac/providers/audio.js +57 -0
- package/dist/server/server/sac/providers/audio.js.map +1 -0
- package/dist/server/server/sac/providers/kling.d.ts +2 -0
- package/dist/server/server/sac/providers/kling.d.ts.map +1 -0
- package/dist/server/server/sac/providers/kling.js +589 -0
- package/dist/server/server/sac/providers/kling.js.map +1 -0
- package/dist/server/server/sac/providers/nano.d.ts +2 -0
- package/dist/server/server/sac/providers/nano.d.ts.map +1 -0
- package/dist/server/server/sac/providers/nano.js +37 -0
- package/dist/server/server/sac/providers/nano.js.map +1 -0
- package/dist/server/server/sac/providers/pixverse.d.ts +2 -0
- package/dist/server/server/sac/providers/pixverse.d.ts.map +1 -0
- package/dist/server/server/sac/providers/pixverse.js +1017 -0
- package/dist/server/server/sac/providers/pixverse.js.map +1 -0
- package/dist/server/server/sac/providers/registry.d.ts +34 -0
- package/dist/server/server/sac/providers/registry.d.ts.map +1 -0
- package/dist/server/server/sac/providers/registry.js +57 -0
- package/dist/server/server/sac/providers/registry.js.map +1 -0
- package/dist/server/server/sac/providers/seaart.d.ts +1 -4
- package/dist/server/server/sac/providers/seaart.d.ts.map +1 -1
- package/dist/server/server/sac/providers/seaart.js +8 -18
- package/dist/server/server/sac/providers/seaart.js.map +1 -1
- package/dist/server/server/sac/providers/store.d.ts +9 -5
- package/dist/server/server/sac/providers/store.d.ts.map +1 -1
- package/dist/server/server/sac/providers/store.js +0 -3
- package/dist/server/server/sac/providers/store.js.map +1 -1
- package/dist/server/server/sac/providers/tencent-3d.d.ts +2 -0
- package/dist/server/server/sac/providers/tencent-3d.d.ts.map +1 -0
- package/dist/server/server/sac/providers/tencent-3d.js +210 -0
- package/dist/server/server/sac/providers/tencent-3d.js.map +1 -0
- package/dist/server/server/sac/providers/tencent-image.d.ts +2 -0
- package/dist/server/server/sac/providers/tencent-image.d.ts.map +1 -0
- package/dist/server/server/sac/providers/tencent-image.js +90 -0
- package/dist/server/server/sac/providers/tencent-image.js.map +1 -0
- package/dist/server/server/sac/providers/tencent-video.d.ts +2 -0
- package/dist/server/server/sac/providers/tencent-video.d.ts.map +1 -0
- package/dist/server/server/sac/providers/tencent-video.js +103 -0
- package/dist/server/server/sac/providers/tencent-video.js.map +1 -0
- package/dist/server/server/sac/providers/tripo3d.d.ts +2 -0
- package/dist/server/server/sac/providers/tripo3d.d.ts.map +1 -0
- package/dist/server/server/sac/providers/tripo3d.js +302 -0
- package/dist/server/server/sac/providers/tripo3d.js.map +1 -0
- package/dist/server/server/sac/providers/vidu.d.ts +2 -0
- package/dist/server/server/sac/providers/vidu.d.ts.map +1 -0
- package/dist/server/server/sac/providers/vidu.js +965 -0
- package/dist/server/server/sac/providers/vidu.js.map +1 -0
- package/dist/server/server/sac/providers/volces-3d.d.ts +2 -0
- package/dist/server/server/sac/providers/volces-3d.d.ts.map +1 -0
- package/dist/server/server/sac/providers/volces-3d.js +77 -0
- package/dist/server/server/sac/providers/volces-3d.js.map +1 -0
- package/dist/server/server/sac/providers/volces-video.d.ts +2 -0
- package/dist/server/server/sac/providers/volces-video.d.ts.map +1 -0
- package/dist/server/server/sac/providers/volces-video.js +392 -0
- package/dist/server/server/sac/providers/volces-video.js.map +1 -0
- package/dist/server/server/sac/providers/volces.d.ts +1 -4
- package/dist/server/server/sac/providers/volces.d.ts.map +1 -1
- package/dist/server/server/sac/providers/volces.js +279 -66
- package/dist/server/server/sac/providers/volces.js.map +1 -1
- package/dist/server/server/sac/types.d.ts +13 -30
- package/dist/server/server/sac/types.d.ts.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.d.ts +493 -493
- package/dist/server/server/schedule/types.d.ts +140 -140
- package/dist/server/server/session.d.ts +9 -2
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +137 -19
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/speech-types.d.ts +2 -2
- package/dist/server/server/workspace-registry.d.ts +4 -4
- package/dist/server/shared/messages.d.ts +17455 -15917
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +83 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/utils/spawn.d.ts.map +1 -1
- package/dist/server/utils/spawn.js +8 -3
- package/dist/server/utils/spawn.js.map +1 -1
- package/dist/server/utils/worktree-metadata.d.ts +4 -4
- package/package.json +7 -9
- package/dist/server/server/agent/providers/acp-agent.d.ts +0 -202
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/acp-agent.js +0 -1650
- package/dist/server/server/agent/providers/acp-agent.js.map +0 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +0 -16
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +0 -95
- package/dist/server/server/agent/providers/copilot-acp-agent.js.map +0 -1
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +0 -3
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +0 -1
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +0 -39
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +0 -1
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +0 -13
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +0 -1
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +0 -144
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +0 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +0 -121
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/opencode-agent.js +0 -1649
- package/dist/server/server/agent/providers/opencode-agent.js.map +0 -1
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
- package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
|
@@ -862,6 +862,8 @@ function normalizeCodexThreadItemType(rawType) {
|
|
|
862
862
|
return "mcpToolCall";
|
|
863
863
|
case "WebSearch":
|
|
864
864
|
return "webSearch";
|
|
865
|
+
case "ImageGeneration":
|
|
866
|
+
return "imageGeneration";
|
|
865
867
|
default:
|
|
866
868
|
return rawType;
|
|
867
869
|
}
|
|
@@ -1121,6 +1123,46 @@ function mapCodexTerminalInteractionToToolCall(params) {
|
|
|
1121
1123
|
...(processId ? { metadata: { processId } } : {}),
|
|
1122
1124
|
};
|
|
1123
1125
|
}
|
|
1126
|
+
function normalizeCodexGeneratedImageSource(item) {
|
|
1127
|
+
const savedPath = nonEmptyString(item.savedPath) ??
|
|
1128
|
+
nonEmptyString(item.saved_path) ??
|
|
1129
|
+
nonEmptyString(item.path) ??
|
|
1130
|
+
null;
|
|
1131
|
+
if (savedPath) {
|
|
1132
|
+
return savedPath;
|
|
1133
|
+
}
|
|
1134
|
+
const result = nonEmptyString(item.result);
|
|
1135
|
+
if (!result) {
|
|
1136
|
+
return null;
|
|
1137
|
+
}
|
|
1138
|
+
return result.startsWith("data:") ? result : `data:image/png;base64,${result}`;
|
|
1139
|
+
}
|
|
1140
|
+
function markdownImageSource(source) {
|
|
1141
|
+
if (/^(https?:|data:|blob:)/i.test(source)) {
|
|
1142
|
+
return source;
|
|
1143
|
+
}
|
|
1144
|
+
return `<${source.replace(/>/g, "%3E")}>`;
|
|
1145
|
+
}
|
|
1146
|
+
function mapCodexImageGenerationToTimeline(item) {
|
|
1147
|
+
const source = normalizeCodexGeneratedImageSource(item);
|
|
1148
|
+
if (!source) {
|
|
1149
|
+
return null;
|
|
1150
|
+
}
|
|
1151
|
+
return {
|
|
1152
|
+
type: "assistant_message",
|
|
1153
|
+
text: `})`,
|
|
1154
|
+
};
|
|
1155
|
+
}
|
|
1156
|
+
function rawResponseItemToThreadItem(item) {
|
|
1157
|
+
if (item.type !== "image_generation_call") {
|
|
1158
|
+
return null;
|
|
1159
|
+
}
|
|
1160
|
+
return {
|
|
1161
|
+
...item,
|
|
1162
|
+
type: "imageGeneration",
|
|
1163
|
+
revisedPrompt: item.revised_prompt ?? item.revisedPrompt ?? null,
|
|
1164
|
+
};
|
|
1165
|
+
}
|
|
1124
1166
|
function threadItemToTimeline(item, options) {
|
|
1125
1167
|
if (!item || typeof item !== "object")
|
|
1126
1168
|
return null;
|
|
@@ -1163,6 +1205,8 @@ function threadItemToTimeline(item, options) {
|
|
|
1163
1205
|
case "mcpToolCall":
|
|
1164
1206
|
case "webSearch":
|
|
1165
1207
|
return mapCodexToolCallFromThreadItem(normalizedItem, { cwd });
|
|
1208
|
+
case "imageGeneration":
|
|
1209
|
+
return mapCodexImageGenerationToTimeline(normalizedItem);
|
|
1166
1210
|
default:
|
|
1167
1211
|
return null;
|
|
1168
1212
|
}
|
|
@@ -1268,6 +1312,16 @@ const ItemLifecycleNotificationSchema = z
|
|
|
1268
1312
|
.passthrough(),
|
|
1269
1313
|
})
|
|
1270
1314
|
.passthrough();
|
|
1315
|
+
const RawResponseItemCompletedNotificationSchema = z
|
|
1316
|
+
.object({
|
|
1317
|
+
item: z
|
|
1318
|
+
.object({
|
|
1319
|
+
id: z.string().optional(),
|
|
1320
|
+
type: z.string().optional(),
|
|
1321
|
+
})
|
|
1322
|
+
.passthrough(),
|
|
1323
|
+
})
|
|
1324
|
+
.passthrough();
|
|
1271
1325
|
const CodexEventTurnAbortedNotificationSchema = z
|
|
1272
1326
|
.object({
|
|
1273
1327
|
msg: z
|
|
@@ -1519,6 +1573,20 @@ const CodexNotificationSchema = z.union([
|
|
|
1519
1573
|
method,
|
|
1520
1574
|
params,
|
|
1521
1575
|
})),
|
|
1576
|
+
z
|
|
1577
|
+
.object({
|
|
1578
|
+
method: z.literal("rawResponseItem/completed"),
|
|
1579
|
+
params: RawResponseItemCompletedNotificationSchema,
|
|
1580
|
+
})
|
|
1581
|
+
.transform(({ params }) => ({
|
|
1582
|
+
kind: "raw_response_item_completed",
|
|
1583
|
+
item: params.item,
|
|
1584
|
+
})),
|
|
1585
|
+
z.object({ method: z.literal("rawResponseItem/completed"), params: z.unknown() }).transform(({ method, params }) => ({
|
|
1586
|
+
kind: "invalid_payload",
|
|
1587
|
+
method,
|
|
1588
|
+
params,
|
|
1589
|
+
})),
|
|
1522
1590
|
z
|
|
1523
1591
|
.object({ method: z.literal("item/started"), params: ItemLifecycleNotificationSchema })
|
|
1524
1592
|
.transform(({ params }) => ({
|
|
@@ -2373,13 +2441,17 @@ class CodexAppServerAgentSession {
|
|
|
2373
2441
|
}
|
|
2374
2442
|
const turnId = this.createTurnId();
|
|
2375
2443
|
this.activeForegroundTurnId = turnId;
|
|
2444
|
+
const turnStartT0 = Date.now();
|
|
2445
|
+
this.logger.info({ turnId }, "[timing] codex turn/start request sending");
|
|
2376
2446
|
try {
|
|
2377
2447
|
await this.client.request("turn/start", params, TURN_START_TIMEOUT_MS);
|
|
2378
2448
|
}
|
|
2379
2449
|
catch (error) {
|
|
2450
|
+
this.logger.info({ turnId, elapsedMs: Date.now() - turnStartT0 }, "[timing] codex turn/start FAILED");
|
|
2380
2451
|
this.activeForegroundTurnId = null;
|
|
2381
2452
|
throw error;
|
|
2382
2453
|
}
|
|
2454
|
+
this.logger.info({ turnId, elapsedMs: Date.now() - turnStartT0 }, "[timing] codex turn/start acknowledged");
|
|
2383
2455
|
return { turnId };
|
|
2384
2456
|
}
|
|
2385
2457
|
subscribe(callback) {
|
|
@@ -2947,6 +3019,27 @@ class CodexAppServerAgentSession {
|
|
|
2947
3019
|
}
|
|
2948
3020
|
return;
|
|
2949
3021
|
}
|
|
3022
|
+
if (parsed.kind === "raw_response_item_completed") {
|
|
3023
|
+
const threadItem = rawResponseItemToThreadItem(parsed.item);
|
|
3024
|
+
if (!threadItem) {
|
|
3025
|
+
return;
|
|
3026
|
+
}
|
|
3027
|
+
const itemId = threadItem.id;
|
|
3028
|
+
if (itemId && this.emittedItemCompletedIds.has(itemId)) {
|
|
3029
|
+
return;
|
|
3030
|
+
}
|
|
3031
|
+
const timelineItem = threadItemToTimeline(threadItem, {
|
|
3032
|
+
includeUserMessage: false,
|
|
3033
|
+
cwd: this.config.cwd ?? null,
|
|
3034
|
+
});
|
|
3035
|
+
if (timelineItem) {
|
|
3036
|
+
this.emitEvent({ type: "timeline", provider: CODEX_PROVIDER, item: timelineItem });
|
|
3037
|
+
if (itemId) {
|
|
3038
|
+
this.emittedItemCompletedIds.add(itemId);
|
|
3039
|
+
}
|
|
3040
|
+
}
|
|
3041
|
+
return;
|
|
3042
|
+
}
|
|
2950
3043
|
if (parsed.kind === "item_completed") {
|
|
2951
3044
|
// Codex emits mirrored lifecycle notifications via both `codex/event/item_*`
|
|
2952
3045
|
// and canonical `item/*`. We render only the canonical channel to avoid
|
|
@@ -3268,8 +3361,17 @@ export class CodexAppServerAgentClient {
|
|
|
3268
3361
|
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
3362
|
codexEnv.SEAWORK_API_KEY = codexEnv.OPENAI_API_KEY ?? "";
|
|
3270
3363
|
}
|
|
3271
|
-
|
|
3272
|
-
|
|
3364
|
+
const fullArgs = [...launchPrefix.args, "app-server", ...extraArgs];
|
|
3365
|
+
this.logger.debug({
|
|
3366
|
+
command: launchPrefix.command,
|
|
3367
|
+
args: fullArgs,
|
|
3368
|
+
hasOpenaiKey: !!codexEnv.OPENAI_API_KEY,
|
|
3369
|
+
openaiKeyPrefix: codexEnv.OPENAI_API_KEY?.slice(0, 10) ?? null,
|
|
3370
|
+
openaiBaseUrl: codexEnv.OPENAI_BASE_URL ?? null,
|
|
3371
|
+
hasSeaworkKey: !!codexEnv.SEAWORK_API_KEY,
|
|
3372
|
+
launchEnvKeys: Object.keys(launchEnv ?? {}),
|
|
3373
|
+
}, "codex_spawn");
|
|
3374
|
+
return spawnProcess(launchPrefix.command, fullArgs, {
|
|
3273
3375
|
detached: process.platform !== "win32",
|
|
3274
3376
|
stdio: ["pipe", "pipe", "pipe"],
|
|
3275
3377
|
env: codexEnv,
|
|
@@ -3288,6 +3390,7 @@ export class CodexAppServerAgentClient {
|
|
|
3288
3390
|
...overrides,
|
|
3289
3391
|
provider: CODEX_PROVIDER,
|
|
3290
3392
|
cwd: overrides?.cwd ?? storedConfig.cwd ?? process.cwd(),
|
|
3393
|
+
modeId: overrides?.modeId ?? storedConfig.modeId ?? "auto",
|
|
3291
3394
|
};
|
|
3292
3395
|
const session = new CodexAppServerAgentSession(merged, handle, this.logger, () => this.spawnAppServer(launchContext?.env));
|
|
3293
3396
|
await session.connect();
|
|
@@ -3362,7 +3465,7 @@ export class CodexAppServerAgentClient {
|
|
|
3362
3465
|
if (command?.mode === "replace") {
|
|
3363
3466
|
return existsSync(command.argv[0]);
|
|
3364
3467
|
}
|
|
3365
|
-
return
|
|
3468
|
+
return (await findExecutable("codex")) !== null;
|
|
3366
3469
|
}
|
|
3367
3470
|
async getDiagnostic() {
|
|
3368
3471
|
try {
|