@seawork/server 1.0.17-rc.3 → 1.0.17
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 +15 -3
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +24 -1
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +25 -0
- package/dist/server/server/agent/agent-manager.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 -1
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +6 -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 +79 -15
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +5 -5
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +46 -17
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/session.d.ts +17 -15
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +155 -35
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-bootstrap.js +6 -1
- package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
- package/dist/server/server/workspace-registry.d.ts +4 -0
- package/dist/server/server/workspace-registry.d.ts.map +1 -1
- package/dist/server/server/workspace-registry.js +2 -0
- package/dist/server/server/workspace-registry.js.map +1 -1
- package/dist/server/server/worktree-session.d.ts +4 -3
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +3 -2
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +488 -4
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +38 -5
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +8 -8
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/executable.d.ts.map +1 -1
- package/dist/server/utils/executable.js +56 -9
- package/dist/server/utils/executable.js.map +1 -1
- package/dist/server/utils/worktree.d.ts +4 -0
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +45 -6
- package/dist/server/utils/worktree.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-server-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/codex-app-server-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EAErB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAczE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAsB,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAYhG,QAAA,MAAM,cAAc,EAAG,OAAgB,CAAC;AAoIxC,iBAAS,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW5E;AAmCD,qBAAa,sCAAuC,SAAQ,KAAK;IAC/D,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-app-server-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/codex-app-server-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,11 +137,24 @@ function normalizeCodexOutputSchema(schema) {
|
|
|
137
137
|
return normalized;
|
|
138
138
|
}
|
|
139
139
|
export class CodexExternalMigrationUnavailableError extends Error {
|
|
140
|
-
constructor(version) {
|
|
141
|
-
|
|
140
|
+
constructor(version, options = {}) {
|
|
141
|
+
const binaryPath = options.binaryPath ?? null;
|
|
142
|
+
const probeError = options.probeError ?? null;
|
|
143
|
+
// Surface the resolved binary path + probe error so users on Windows can
|
|
144
|
+
// tell whether the daemon is spawning a stale npm-global shim instead of
|
|
145
|
+
// the freshly-installed bun-global codex (#179).
|
|
146
|
+
const detail = [
|
|
147
|
+
binaryPath ? `binary: ${binaryPath}` : null,
|
|
148
|
+
probeError ? `probe error: ${probeError}` : null,
|
|
149
|
+
]
|
|
150
|
+
.filter(Boolean)
|
|
151
|
+
.join("; ");
|
|
152
|
+
super(`Codex ${CODEX_EXTERNAL_MIGRATION_MIN_VERSION} or newer is required to migrate Claude Code sessions. Current version: ${version}${detail ? ` (${detail})` : ""}.`);
|
|
142
153
|
this.code = "CODEX_UPGRADE_REQUIRED";
|
|
143
154
|
this.name = "CodexExternalMigrationUnavailableError";
|
|
144
155
|
this.version = version;
|
|
156
|
+
this.binaryPath = binaryPath;
|
|
157
|
+
this.probeError = probeError;
|
|
145
158
|
}
|
|
146
159
|
}
|
|
147
160
|
function parseVersionTriplet(raw) {
|
|
@@ -3463,8 +3476,11 @@ export class CodexAppServerAgentClient {
|
|
|
3463
3476
|
});
|
|
3464
3477
|
}
|
|
3465
3478
|
async resolveCodexVersion() {
|
|
3479
|
+
let binaryPath = null;
|
|
3480
|
+
let probeError = null;
|
|
3466
3481
|
try {
|
|
3467
3482
|
const launchPrefix = await resolveCodexLaunchPrefix(this.runtimeSettings);
|
|
3483
|
+
binaryPath = launchPrefix.command;
|
|
3468
3484
|
let command = launchPrefix.command;
|
|
3469
3485
|
let args = [...launchPrefix.args, "--version"];
|
|
3470
3486
|
const electronRuntime = resolveElectronNodeRuntime();
|
|
@@ -3490,22 +3506,37 @@ export class CodexAppServerAgentClient {
|
|
|
3490
3506
|
...(command === electronRuntime ? { ELECTRON_RUN_AS_NODE: "1" } : {}),
|
|
3491
3507
|
},
|
|
3492
3508
|
});
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
try {
|
|
3497
|
-
const launchPrefix = await resolveCodexLaunchPrefix(this.runtimeSettings);
|
|
3498
|
-
return await resolveBinaryVersion(launchPrefix.command);
|
|
3499
|
-
}
|
|
3500
|
-
catch {
|
|
3501
|
-
return "unknown";
|
|
3509
|
+
const version = stdout.trim();
|
|
3510
|
+
if (version) {
|
|
3511
|
+
return { version, binaryPath, probeError: null };
|
|
3502
3512
|
}
|
|
3513
|
+
probeError = "binary returned empty --version output";
|
|
3514
|
+
}
|
|
3515
|
+
catch (err) {
|
|
3516
|
+
probeError = err instanceof Error ? err.message : String(err);
|
|
3517
|
+
}
|
|
3518
|
+
try {
|
|
3519
|
+
const launchPrefix = await resolveCodexLaunchPrefix(this.runtimeSettings);
|
|
3520
|
+
binaryPath = binaryPath ?? launchPrefix.command;
|
|
3521
|
+
const version = await resolveBinaryVersion(launchPrefix.command);
|
|
3522
|
+
return { version, binaryPath, probeError };
|
|
3523
|
+
}
|
|
3524
|
+
catch (err) {
|
|
3525
|
+
const fallbackErr = err instanceof Error ? err.message : String(err);
|
|
3526
|
+
return {
|
|
3527
|
+
version: "unknown",
|
|
3528
|
+
binaryPath,
|
|
3529
|
+
probeError: probeError ?? fallbackErr,
|
|
3530
|
+
};
|
|
3503
3531
|
}
|
|
3504
3532
|
}
|
|
3505
3533
|
async importExternalAgentSession(input) {
|
|
3506
|
-
const
|
|
3507
|
-
if (!isVersionAtLeast(version, CODEX_EXTERNAL_MIGRATION_MIN_VERSION)) {
|
|
3508
|
-
throw new CodexExternalMigrationUnavailableError(version
|
|
3534
|
+
const versionInfo = await this.resolveCodexVersion();
|
|
3535
|
+
if (!isVersionAtLeast(versionInfo.version, CODEX_EXTERNAL_MIGRATION_MIN_VERSION)) {
|
|
3536
|
+
throw new CodexExternalMigrationUnavailableError(versionInfo.version, {
|
|
3537
|
+
binaryPath: versionInfo.binaryPath,
|
|
3538
|
+
probeError: versionInfo.probeError,
|
|
3539
|
+
});
|
|
3509
3540
|
}
|
|
3510
3541
|
const sourceMetadata = input.source.metadata ?? {};
|
|
3511
3542
|
const sourcePath = readStringMetadata(sourceMetadata.sourcePath);
|
|
@@ -3601,6 +3632,36 @@ export class CodexAppServerAgentClient {
|
|
|
3601
3632
|
}, "Codex external migration: session not matched");
|
|
3602
3633
|
throw new Error("Claude session was not detected by Codex for external migration.");
|
|
3603
3634
|
}
|
|
3635
|
+
// Re-check the ledger now that we've resolved the canonical jsonl path
|
|
3636
|
+
// via detect. Old desktop clients (and any path where describePersistence
|
|
3637
|
+
// was built before the sourcePath fix) reach here with input sourcePath
|
|
3638
|
+
// null but selected.path populated. Reusing here avoids issuing a fresh
|
|
3639
|
+
// import for a jsonl codex has already imported — without this, the
|
|
3640
|
+
// post-import readImportedThreadId() races against ledger writes and can
|
|
3641
|
+
// return a stale threadId, producing two daemon-side codex agents bound
|
|
3642
|
+
// to the same underlying thread.
|
|
3643
|
+
const ledgerThreadId = await this.readImportedThreadId(selected.path, codexHome);
|
|
3644
|
+
if (ledgerThreadId) {
|
|
3645
|
+
this.logger.info({ sourcePath: selected.path, importedThreadId: ledgerThreadId, codexHome }, "Codex external migration: reusing ledger thread (post-detect)");
|
|
3646
|
+
return {
|
|
3647
|
+
provider: CODEX_PROVIDER,
|
|
3648
|
+
sessionId: ledgerThreadId,
|
|
3649
|
+
nativeHandle: ledgerThreadId,
|
|
3650
|
+
metadata: {
|
|
3651
|
+
provider: CODEX_PROVIDER,
|
|
3652
|
+
cwd: selected.cwd,
|
|
3653
|
+
title: input.title ?? selected.title ?? null,
|
|
3654
|
+
threadId: ledgerThreadId,
|
|
3655
|
+
modeId: DEFAULT_CODEX_MODE_ID,
|
|
3656
|
+
sourcePath: selected.path,
|
|
3657
|
+
migratedFrom: {
|
|
3658
|
+
provider: input.source.provider,
|
|
3659
|
+
sessionId: input.source.sessionId,
|
|
3660
|
+
sourcePath: selected.path,
|
|
3661
|
+
},
|
|
3662
|
+
},
|
|
3663
|
+
};
|
|
3664
|
+
}
|
|
3604
3665
|
const filteredItem = {
|
|
3605
3666
|
...sessionsItem,
|
|
3606
3667
|
details: {
|
|
@@ -3637,7 +3698,10 @@ export class CodexAppServerAgentClient {
|
|
|
3637
3698
|
}
|
|
3638
3699
|
catch (error) {
|
|
3639
3700
|
if (error instanceof Error && /not found|method/i.test(error.message)) {
|
|
3640
|
-
throw new CodexExternalMigrationUnavailableError(version
|
|
3701
|
+
throw new CodexExternalMigrationUnavailableError(versionInfo.version, {
|
|
3702
|
+
binaryPath: versionInfo.binaryPath,
|
|
3703
|
+
probeError: versionInfo.probeError,
|
|
3704
|
+
});
|
|
3641
3705
|
}
|
|
3642
3706
|
throw error;
|
|
3643
3707
|
}
|