@akiojin/gwt 4.12.0 → 4.12.2
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/bin/gwt.js +35 -9
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +67 -14
- package/dist/claude.js.map +1 -1
- package/dist/cli/ui/App.solid.d.ts.map +1 -1
- package/dist/cli/ui/App.solid.js +40 -8
- package/dist/cli/ui/App.solid.js.map +1 -1
- package/dist/cli/ui/components/solid/WizardController.d.ts.map +1 -1
- package/dist/cli/ui/components/solid/WizardController.js +48 -2
- package/dist/cli/ui/components/solid/WizardController.js.map +1 -1
- package/dist/cli/ui/components/solid/WizardSteps.d.ts +5 -0
- package/dist/cli/ui/components/solid/WizardSteps.d.ts.map +1 -1
- package/dist/cli/ui/components/solid/WizardSteps.js +29 -6
- package/dist/cli/ui/components/solid/WizardSteps.js.map +1 -1
- package/dist/cli/ui/utils/installedVersionCache.d.ts +33 -0
- package/dist/cli/ui/utils/installedVersionCache.d.ts.map +1 -0
- package/dist/cli/ui/utils/installedVersionCache.js +59 -0
- package/dist/cli/ui/utils/installedVersionCache.js.map +1 -0
- package/dist/cli/ui/utils/modelOptions.d.ts.map +1 -1
- package/dist/cli/ui/utils/modelOptions.js +16 -0
- package/dist/cli/ui/utils/modelOptions.js.map +1 -1
- package/dist/codex.d.ts.map +1 -1
- package/dist/codex.js +63 -22
- package/dist/codex.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/logging/reader.d.ts +2 -1
- package/dist/logging/reader.d.ts.map +1 -1
- package/dist/logging/reader.js +37 -1
- package/dist/logging/reader.js.map +1 -1
- package/dist/opentui/index.solid.js +298 -264
- package/dist/services/codingAgentResolver.d.ts.map +1 -1
- package/dist/services/codingAgentResolver.js +8 -6
- package/dist/services/codingAgentResolver.js.map +1 -1
- package/dist/shared/codingAgentConstants.d.ts +3 -0
- package/dist/shared/codingAgentConstants.d.ts.map +1 -1
- package/dist/shared/codingAgentConstants.js +66 -0
- package/dist/shared/codingAgentConstants.js.map +1 -1
- package/dist/utils/bun-runtime.d.ts +12 -0
- package/dist/utils/bun-runtime.d.ts.map +1 -0
- package/dist/utils/bun-runtime.js +13 -0
- package/dist/utils/bun-runtime.js.map +1 -0
- package/dist/utils/session/parsers/codex.d.ts.map +1 -1
- package/dist/utils/session/parsers/codex.js +0 -1
- package/dist/utils/session/parsers/codex.js.map +1 -1
- package/package.json +1 -1
- package/src/claude.ts +79 -15
- package/src/cli/ui/App.solid.tsx +55 -6
- package/src/cli/ui/__tests__/solid/AppSolid.cleanup.test.tsx +91 -0
- package/src/cli/ui/__tests__/solid/components/WizardController.test.tsx +63 -0
- package/src/cli/ui/__tests__/solid/components/WizardSteps.test.tsx +91 -1
- package/src/cli/ui/components/solid/WizardController.tsx +65 -1
- package/src/cli/ui/components/solid/WizardSteps.tsx +55 -10
- package/src/cli/ui/utils/__tests__/installedVersionCache.test.ts +46 -0
- package/src/cli/ui/utils/installedVersionCache.ts +84 -0
- package/src/cli/ui/utils/modelOptions.test.ts +6 -0
- package/src/cli/ui/utils/modelOptions.ts +16 -0
- package/src/codex.ts +78 -22
- package/src/index.ts +5 -0
- package/src/logging/reader.ts +48 -1
- package/src/services/codingAgentResolver.ts +12 -5
- package/src/shared/codingAgentConstants.ts +73 -0
- package/src/utils/bun-runtime.ts +29 -0
- package/src/utils/session/parsers/codex.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codingAgentResolver.d.ts","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codingAgentResolver.d.ts","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AASlE,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AACrE,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,uBAAuB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAE1C,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,EAAE,MAAM,EAAE;gBAFhB,IAAI,EAAE,iBAAiB,EAC9B,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,EAAE,YAAA;CAK1B;AA8FD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAmC5E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAoC1E;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAU9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -2,9 +2,10 @@ import { execa } from "execa";
|
|
|
2
2
|
import { platform } from "os";
|
|
3
3
|
import { getCodingAgentById } from "../config/tools.js";
|
|
4
4
|
import { CLAUDE_CODE_TOOL } from "../config/builtin-coding-agents.js";
|
|
5
|
-
import { CODEX_DEFAULT_ARGS, CLAUDE_PERMISSION_SKIP_ARGS, } from "../shared/codingAgentConstants.js";
|
|
5
|
+
import { CODEX_DEFAULT_ARGS, CLAUDE_PERMISSION_SKIP_ARGS, shouldEnableCodexSkillsFlag, withCodexSkillsFlag, } from "../shared/codingAgentConstants.js";
|
|
6
6
|
import { prepareCodingAgentExecution } from "./codingAgentCommandResolver.js";
|
|
7
7
|
import { createLogger } from "../logging/logger.js";
|
|
8
|
+
import { findCommand } from "../utils/command.js";
|
|
8
9
|
const logger = createLogger({ category: "resolver" });
|
|
9
10
|
const DETECTION_COMMAND = platform() === "win32" ? "where" : "which";
|
|
10
11
|
const MIN_BUN_MAJOR = 1;
|
|
@@ -192,13 +193,14 @@ export function buildCodexArgs(options = {}) {
|
|
|
192
193
|
return args;
|
|
193
194
|
}
|
|
194
195
|
export async function resolveCodexCommand(options = {}) {
|
|
195
|
-
const
|
|
196
|
+
const codexLookup = await findCommand("codex");
|
|
197
|
+
const baseArgs = buildCodexArgs(options);
|
|
198
|
+
const args = withCodexSkillsFlag(baseArgs, shouldEnableCodexSkillsFlag(codexLookup.version));
|
|
196
199
|
// フルパスを取得(node-ptyはシェルを経由しないため必要)
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
logger.info({ command: codexPath, usesFallback: false }, "Codex command resolved");
|
|
200
|
+
if (codexLookup.source === "installed" && codexLookup.path) {
|
|
201
|
+
logger.info({ command: codexLookup.path, usesFallback: false }, "Codex command resolved");
|
|
200
202
|
return {
|
|
201
|
-
command:
|
|
203
|
+
command: codexLookup.path,
|
|
202
204
|
args,
|
|
203
205
|
usesFallback: false,
|
|
204
206
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codingAgentResolver.js","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"codingAgentResolver.js","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,4 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const CLAUDE_PERMISSION_SKIP_ARGS: readonly ["--dangerously-skip-permissions"];
|
|
8
8
|
export declare const CODEX_DEFAULT_ARGS: readonly ["--enable", "web_search_request", "--model=gpt-5.2-codex", "--sandbox", "workspace-write", "-c", "model_reasoning_effort=high", "-c", "model_reasoning_summaries=detailed", "-c", "sandbox_workspace_write.network_access=true", "-c", "shell_environment_policy.inherit=all", "-c", "shell_environment_policy.ignore_default_excludes=true", "-c", "shell_environment_policy.experimental_use_profile=true"];
|
|
9
|
+
export declare const CODEX_SKILLS_FLAG_DEPRECATED_FROM = "0.80.0";
|
|
10
|
+
export declare function shouldEnableCodexSkillsFlag(version?: string | null): boolean;
|
|
11
|
+
export declare function withCodexSkillsFlag(args: readonly string[], enable: boolean): string[];
|
|
9
12
|
//# sourceMappingURL=codingAgentConstants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codingAgentConstants.d.ts","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,2BAA2B,6CAE9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,yZAkBrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"codingAgentConstants.d.ts","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,2BAA2B,6CAE9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,yZAkBrB,CAAC;AAEX,eAAO,MAAM,iCAAiC,WAAW,CAAC;AAiD1D,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAM5E;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,OAAO,GACd,MAAM,EAAE,CAWV"}
|
|
@@ -26,4 +26,70 @@ export const CODEX_DEFAULT_ARGS = [
|
|
|
26
26
|
"-c",
|
|
27
27
|
"shell_environment_policy.experimental_use_profile=true",
|
|
28
28
|
];
|
|
29
|
+
export const CODEX_SKILLS_FLAG_DEPRECATED_FROM = "0.80.0";
|
|
30
|
+
const MODEL_FLAG_PREFIX = "--model=";
|
|
31
|
+
function normalizeVersion(value) {
|
|
32
|
+
if (!value)
|
|
33
|
+
return null;
|
|
34
|
+
const trimmed = value.trim();
|
|
35
|
+
if (!trimmed)
|
|
36
|
+
return null;
|
|
37
|
+
return trimmed.replace(/^v/i, "");
|
|
38
|
+
}
|
|
39
|
+
function parseVersion(value) {
|
|
40
|
+
const normalized = normalizeVersion(value);
|
|
41
|
+
if (!normalized)
|
|
42
|
+
return null;
|
|
43
|
+
const match = normalized.match(/^(\d+)\.(\d+)(?:\.(\d+))?(?:-([0-9A-Za-z.-]+))?$/);
|
|
44
|
+
if (!match)
|
|
45
|
+
return null;
|
|
46
|
+
const major = Number(match[1]);
|
|
47
|
+
const minor = Number(match[2]);
|
|
48
|
+
const patch = Number(match[3] ?? "0");
|
|
49
|
+
if (![major, minor, patch].every(Number.isFinite))
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
major,
|
|
53
|
+
minor,
|
|
54
|
+
patch,
|
|
55
|
+
prerelease: match[4] ?? null,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function compareVersions(a, b) {
|
|
59
|
+
if (a.major !== b.major)
|
|
60
|
+
return a.major - b.major;
|
|
61
|
+
if (a.minor !== b.minor)
|
|
62
|
+
return a.minor - b.minor;
|
|
63
|
+
if (a.patch !== b.patch)
|
|
64
|
+
return a.patch - b.patch;
|
|
65
|
+
if (a.prerelease && !b.prerelease)
|
|
66
|
+
return -1;
|
|
67
|
+
if (!a.prerelease && b.prerelease)
|
|
68
|
+
return 1;
|
|
69
|
+
if (a.prerelease && b.prerelease) {
|
|
70
|
+
return a.prerelease.localeCompare(b.prerelease);
|
|
71
|
+
}
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
export function shouldEnableCodexSkillsFlag(version) {
|
|
75
|
+
const parsed = parseVersion(version);
|
|
76
|
+
if (!parsed)
|
|
77
|
+
return false;
|
|
78
|
+
const threshold = parseVersion(CODEX_SKILLS_FLAG_DEPRECATED_FROM);
|
|
79
|
+
if (!threshold)
|
|
80
|
+
return false;
|
|
81
|
+
return compareVersions(parsed, threshold) < 0;
|
|
82
|
+
}
|
|
83
|
+
export function withCodexSkillsFlag(args, enable) {
|
|
84
|
+
if (!enable)
|
|
85
|
+
return Array.from(args);
|
|
86
|
+
const alreadyEnabled = args.some((arg, index) => arg === "--enable" && args[index + 1] === "skills");
|
|
87
|
+
if (alreadyEnabled)
|
|
88
|
+
return Array.from(args);
|
|
89
|
+
const next = Array.from(args);
|
|
90
|
+
const modelIndex = next.findIndex((arg) => arg.startsWith(MODEL_FLAG_PREFIX));
|
|
91
|
+
const insertIndex = modelIndex === -1 ? next.length : modelIndex;
|
|
92
|
+
next.splice(insertIndex, 0, "--enable", "skills");
|
|
93
|
+
return next;
|
|
94
|
+
}
|
|
29
95
|
//# sourceMappingURL=codingAgentConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codingAgentConstants.js","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gCAAgC;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,oBAAoB;IACpB,uBAAuB;IACvB,WAAW;IACX,iBAAiB;IACjB,IAAI;IACJ,6BAA6B;IAC7B,IAAI;IACJ,oCAAoC;IACpC,IAAI;IACJ,6CAA6C;IAC7C,IAAI;IACJ,sCAAsC;IACtC,IAAI;IACJ,uDAAuD;IACvD,IAAI;IACJ,wDAAwD;CAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"codingAgentConstants.js","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface BunReexecInput {
|
|
2
|
+
hasBunGlobal: boolean;
|
|
3
|
+
bunExecPath?: string | null;
|
|
4
|
+
argv: string[];
|
|
5
|
+
scriptPath: string;
|
|
6
|
+
}
|
|
7
|
+
export interface BunReexecCommand {
|
|
8
|
+
command: string;
|
|
9
|
+
args: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function buildBunReexecCommand(input: BunReexecInput): BunReexecCommand | null;
|
|
12
|
+
//# sourceMappingURL=bun-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-runtime.d.ts","sourceRoot":"","sources":["../../src/utils/bun-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,GACpB,gBAAgB,GAAG,IAAI,CAczB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function buildBunReexecCommand(input) {
|
|
2
|
+
if (input.hasBunGlobal) {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
const scriptPath = input.scriptPath?.trim();
|
|
6
|
+
if (!scriptPath) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const bunCommand = input.bunExecPath?.trim() || "bun";
|
|
10
|
+
const args = [scriptPath, ...(input.argv?.slice(2) ?? [])];
|
|
11
|
+
return { command: bunCommand, args };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=bun-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-runtime.js","sourceRoot":"","sources":["../../src/utils/bun-runtime.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,qBAAqB,CACnC,KAAqB;IAErB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAU1E;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAU1E;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4FlC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBzB"}
|
|
@@ -101,7 +101,6 @@ export async function findLatestCodexSession(options = {}) {
|
|
|
101
101
|
if (sessionId) {
|
|
102
102
|
return { id: sessionId, mtime: file.mtime };
|
|
103
103
|
}
|
|
104
|
-
// Priority 2: Fallback to reading file content if filename lacks UUID
|
|
105
104
|
// (already handled via info above)
|
|
106
105
|
}
|
|
107
106
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/claude.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execa, type Options as ExecaOptions } from "execa";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { existsSync, readFileSync } from "fs";
|
|
4
|
+
import os from "node:os";
|
|
4
5
|
import {
|
|
5
6
|
createChildStdio,
|
|
6
7
|
getTerminalStreams,
|
|
@@ -13,8 +14,15 @@ import {
|
|
|
13
14
|
runAgentWithPty,
|
|
14
15
|
shouldCaptureAgentOutput,
|
|
15
16
|
} from "./logging/agentOutput.js";
|
|
17
|
+
import { createLogger } from "./logging/logger.js";
|
|
16
18
|
|
|
17
19
|
const CLAUDE_CLI_PACKAGE = "@anthropic-ai/claude-code@latest";
|
|
20
|
+
const logger = createLogger({ category: "claude" });
|
|
21
|
+
const signalNumberToName: ReadonlyMap<number, string> = new Map(
|
|
22
|
+
Object.entries(os.constants.signals)
|
|
23
|
+
.filter(([, value]) => typeof value === "number")
|
|
24
|
+
.map(([name, value]) => [value as number, name]),
|
|
25
|
+
);
|
|
18
26
|
|
|
19
27
|
/**
|
|
20
28
|
* Error wrapper used by `launchClaudeCode` to preserve the original failure
|
|
@@ -267,12 +275,32 @@ export async function launchClaudeCode(
|
|
|
267
275
|
}
|
|
268
276
|
};
|
|
269
277
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
signal ===
|
|
278
|
+
const normalizeSignal = (
|
|
279
|
+
signal?: number | string | null,
|
|
280
|
+
): string | null => {
|
|
281
|
+
if (signal === null || signal === undefined) {
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
if (typeof signal === "number") {
|
|
285
|
+
return signalNumberToName.get(signal) ?? String(signal);
|
|
286
|
+
}
|
|
287
|
+
return signal.trim().toUpperCase();
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
// Treat SIGINT (2), SIGTERM (15) as normal exit signals (user interrupts)
|
|
291
|
+
const isNormalExitSignal = (
|
|
292
|
+
signal?: number | string | null,
|
|
293
|
+
exitCode?: number | null,
|
|
294
|
+
) => {
|
|
295
|
+
const normalized = normalizeSignal(signal);
|
|
296
|
+
if (normalized === "SIGINT" || normalized === "SIGTERM") {
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
return exitCode === 130 || exitCode === 143;
|
|
300
|
+
};
|
|
274
301
|
|
|
275
302
|
const runCommand = async (file: string, fileArgs: string[]) => {
|
|
303
|
+
const runStartedAt = Date.now();
|
|
276
304
|
if (captureOutput) {
|
|
277
305
|
const result = await runAgentWithPty({
|
|
278
306
|
command: file,
|
|
@@ -281,12 +309,28 @@ export async function launchClaudeCode(
|
|
|
281
309
|
env: launchEnv,
|
|
282
310
|
agentId: "claude-code",
|
|
283
311
|
});
|
|
284
|
-
|
|
285
|
-
|
|
312
|
+
const durationMs = Date.now() - runStartedAt;
|
|
313
|
+
const exitCode = result.exitCode ?? null;
|
|
314
|
+
const rawSignal = result.signal ?? null;
|
|
315
|
+
const signal = normalizeSignal(rawSignal);
|
|
316
|
+
// isNormalExitSignal covers SIGINT/SIGTERM and 130/143 exit codes.
|
|
317
|
+
const signalIsNormal = isNormalExitSignal(rawSignal, exitCode);
|
|
318
|
+
const hasError =
|
|
319
|
+
(!signalIsNormal && signal !== null && signal !== undefined) ||
|
|
320
|
+
(exitCode !== null && exitCode !== 0 && !signalIsNormal);
|
|
321
|
+
if (hasError) {
|
|
322
|
+
logger.error({ exitCode, signal, durationMs }, "Claude Code exited");
|
|
323
|
+
} else {
|
|
324
|
+
logger.info({ exitCode, signal, durationMs }, "Claude Code exited");
|
|
325
|
+
}
|
|
326
|
+
if (signalIsNormal) {
|
|
286
327
|
return;
|
|
287
328
|
}
|
|
288
|
-
if (
|
|
289
|
-
throw new Error(`Claude Code
|
|
329
|
+
if (signal !== null && signal !== undefined) {
|
|
330
|
+
throw new Error(`Claude Code terminated by signal ${signal}`);
|
|
331
|
+
}
|
|
332
|
+
if (exitCode !== null && exitCode !== 0) {
|
|
333
|
+
throw new Error(`Claude Code exited with code ${exitCode}`);
|
|
290
334
|
}
|
|
291
335
|
return;
|
|
292
336
|
}
|
|
@@ -295,13 +339,33 @@ export async function launchClaudeCode(
|
|
|
295
339
|
return;
|
|
296
340
|
}
|
|
297
341
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
342
|
+
try {
|
|
343
|
+
await execInteractive(file, fileArgs, {
|
|
344
|
+
cwd: worktreePath,
|
|
345
|
+
stdin: childStdio.stdin,
|
|
346
|
+
stdout: childStdio.stdout,
|
|
347
|
+
stderr: childStdio.stderr,
|
|
348
|
+
env: launchEnv,
|
|
349
|
+
});
|
|
350
|
+
const durationMs = Date.now() - runStartedAt;
|
|
351
|
+
logger.info(
|
|
352
|
+
{ exitCode: 0, signal: null, durationMs },
|
|
353
|
+
"Claude Code exited",
|
|
354
|
+
);
|
|
355
|
+
} catch (execError: unknown) {
|
|
356
|
+
const durationMs = Date.now() - runStartedAt;
|
|
357
|
+
const exitCode =
|
|
358
|
+
(execError as { exitCode?: number | null })?.exitCode ?? null;
|
|
359
|
+
const rawSignal =
|
|
360
|
+
(execError as { signal?: string | number | null })?.signal ?? null;
|
|
361
|
+
const signal = normalizeSignal(rawSignal);
|
|
362
|
+
if (isNormalExitSignal(rawSignal, exitCode)) {
|
|
363
|
+
logger.info({ exitCode, signal, durationMs }, "Claude Code exited");
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
logger.error({ exitCode, signal, durationMs }, "Claude Code failed");
|
|
367
|
+
throw execError;
|
|
368
|
+
}
|
|
305
369
|
};
|
|
306
370
|
|
|
307
371
|
// Determine execution strategy based on version selection
|
package/src/cli/ui/App.solid.tsx
CHANGED
|
@@ -60,6 +60,7 @@ import {
|
|
|
60
60
|
getLocalBranches,
|
|
61
61
|
getRepositoryRoot,
|
|
62
62
|
deleteBranch,
|
|
63
|
+
fetchAllRemotes,
|
|
63
64
|
} from "../../git.js";
|
|
64
65
|
import {
|
|
65
66
|
isProtectedBranchName,
|
|
@@ -85,6 +86,8 @@ import {
|
|
|
85
86
|
getTodayLogDate,
|
|
86
87
|
readLogLinesForDate,
|
|
87
88
|
resolveLogTarget,
|
|
89
|
+
selectLogTargetByRecency,
|
|
90
|
+
type LogTargetResolution,
|
|
88
91
|
} from "../../logging/reader.js";
|
|
89
92
|
import { parseLogLines } from "../../logging/formatter.js";
|
|
90
93
|
import { copyToClipboard } from "./utils/clipboard.js";
|
|
@@ -102,11 +105,13 @@ import {
|
|
|
102
105
|
} from "../../types/profiles.js";
|
|
103
106
|
import { BRANCH_PREFIXES } from "../../config/constants.js";
|
|
104
107
|
import { prefetchAgentVersions } from "./utils/versionCache.js";
|
|
108
|
+
import { prefetchInstalledVersions } from "./utils/installedVersionCache.js";
|
|
105
109
|
import { getBunxAgentIds } from "./utils/versionFetcher.js";
|
|
106
110
|
|
|
107
111
|
export type ExecutionMode = "normal" | "continue" | "resume";
|
|
108
112
|
|
|
109
113
|
const UNSAFE_SELECTION_MESSAGE = "Unsafe branch selected. Select anyway?";
|
|
114
|
+
const SAFETY_PENDING_MESSAGE = "Safety check in progress. Select anyway?";
|
|
110
115
|
|
|
111
116
|
export interface SelectionResult {
|
|
112
117
|
branch: string;
|
|
@@ -297,6 +302,9 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
297
302
|
const [unsafeSelectionTarget, setUnsafeSelectionTarget] = createSignal<
|
|
298
303
|
string | null
|
|
299
304
|
>(null);
|
|
305
|
+
const [unsafeSelectionMessage, setUnsafeSelectionMessage] = createSignal(
|
|
306
|
+
UNSAFE_SELECTION_MESSAGE,
|
|
307
|
+
);
|
|
300
308
|
const [branchFooterMessage, setBranchFooterMessage] = createSignal<{
|
|
301
309
|
text: string;
|
|
302
310
|
isSpinning?: boolean;
|
|
@@ -437,12 +445,20 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
437
445
|
const [profileConfirmMode, setProfileConfirmMode] =
|
|
438
446
|
createSignal<ProfileConfirmMode>("delete-profile");
|
|
439
447
|
|
|
440
|
-
const
|
|
448
|
+
const [logEffectiveTarget, setLogEffectiveTarget] =
|
|
449
|
+
createSignal<LogTargetResolution | null>(null);
|
|
450
|
+
const logPrimaryTarget = createMemo(() =>
|
|
441
451
|
resolveLogTarget(logTargetBranch(), workingDirectory()),
|
|
442
452
|
);
|
|
453
|
+
const logFallbackTarget = createMemo(() =>
|
|
454
|
+
resolveLogTarget(null, workingDirectory()),
|
|
455
|
+
);
|
|
456
|
+
const logActiveTarget = createMemo(
|
|
457
|
+
() => logEffectiveTarget() ?? logPrimaryTarget(),
|
|
458
|
+
);
|
|
443
459
|
const logBranchLabel = createMemo(() => logTargetBranch()?.label ?? null);
|
|
444
460
|
const logSourceLabel = createMemo(() => {
|
|
445
|
-
const target =
|
|
461
|
+
const target = logActiveTarget();
|
|
446
462
|
if (!target.sourcePath) {
|
|
447
463
|
return "(none)";
|
|
448
464
|
}
|
|
@@ -452,11 +468,18 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
452
468
|
) {
|
|
453
469
|
return `${target.sourcePath} (cwd)`;
|
|
454
470
|
}
|
|
471
|
+
if (target.reason === "working-directory-fallback") {
|
|
472
|
+
return `${target.sourcePath} (cwd fallback)`;
|
|
473
|
+
}
|
|
455
474
|
if (target.reason === "worktree-inaccessible") {
|
|
456
475
|
return `${target.sourcePath} (inaccessible)`;
|
|
457
476
|
}
|
|
458
477
|
return target.sourcePath;
|
|
459
478
|
});
|
|
479
|
+
createEffect(() => {
|
|
480
|
+
logPrimaryTarget();
|
|
481
|
+
setLogEffectiveTarget(null);
|
|
482
|
+
});
|
|
460
483
|
const selectedProfileConfig = createMemo(() => {
|
|
461
484
|
const name = selectedProfileName();
|
|
462
485
|
const config = profilesConfig();
|
|
@@ -623,7 +646,13 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
623
646
|
setLogLoading(true);
|
|
624
647
|
setLogError(null);
|
|
625
648
|
try {
|
|
626
|
-
const
|
|
649
|
+
const primaryTarget = logPrimaryTarget();
|
|
650
|
+
const fallbackTarget = logFallbackTarget();
|
|
651
|
+
const target = await selectLogTargetByRecency(
|
|
652
|
+
primaryTarget,
|
|
653
|
+
fallbackTarget,
|
|
654
|
+
);
|
|
655
|
+
setLogEffectiveTarget(target);
|
|
627
656
|
if (!target.logDir) {
|
|
628
657
|
setLogEntries([]);
|
|
629
658
|
setLogSelectedDate(targetDate);
|
|
@@ -658,7 +687,7 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
658
687
|
};
|
|
659
688
|
|
|
660
689
|
const resetLogFiles = async () => {
|
|
661
|
-
const target =
|
|
690
|
+
const target = logActiveTarget();
|
|
662
691
|
if (!target.logDir) {
|
|
663
692
|
showLogNotification("No logs available.", "error");
|
|
664
693
|
return;
|
|
@@ -723,6 +752,14 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
723
752
|
void refreshCleanupSafety();
|
|
724
753
|
|
|
725
754
|
void (async () => {
|
|
755
|
+
// Fetch remote updates with --prune to remove stale tracking refs
|
|
756
|
+
await withTimeout(
|
|
757
|
+
fetchAllRemotes({ cwd: repoRoot }),
|
|
758
|
+
BRANCH_FULL_LOAD_TIMEOUT_MS,
|
|
759
|
+
).catch(() => {
|
|
760
|
+
// Ignore fetch errors (e.g., network issues)
|
|
761
|
+
});
|
|
762
|
+
|
|
726
763
|
const [branches, latestWorktrees] = await Promise.all([
|
|
727
764
|
withTimeout(
|
|
728
765
|
getAllBranches(repoRoot),
|
|
@@ -850,11 +887,15 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
850
887
|
void prefetchAgentVersions(bunxAgentIds).catch(() => {
|
|
851
888
|
// Silently handle errors - cache will return null and UI will show "latest" only
|
|
852
889
|
});
|
|
890
|
+
// FR-017: Prefetch installed versions for all builtin agents at startup
|
|
891
|
+
void prefetchInstalledVersions(bunxAgentIds).catch(() => {
|
|
892
|
+
// Silently handle errors - cache will return null and UI won't show "installed"
|
|
893
|
+
});
|
|
853
894
|
});
|
|
854
895
|
|
|
855
896
|
createEffect(() => {
|
|
856
897
|
if (currentScreen() === "log-list") {
|
|
857
|
-
|
|
898
|
+
logPrimaryTarget();
|
|
858
899
|
void loadLogEntries(logSelectedDate());
|
|
859
900
|
}
|
|
860
901
|
});
|
|
@@ -1530,8 +1571,15 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
1530
1571
|
!hasSafetyPending &&
|
|
1531
1572
|
(hasUncommitted || hasUnpushed || isUnmerged || !safeToCleanup);
|
|
1532
1573
|
|
|
1574
|
+
if (branch && hasSafetyPending) {
|
|
1575
|
+
setUnsafeSelectionTarget(branch.name);
|
|
1576
|
+
setUnsafeSelectionMessage(SAFETY_PENDING_MESSAGE);
|
|
1577
|
+
setUnsafeSelectionConfirmVisible(true);
|
|
1578
|
+
return;
|
|
1579
|
+
}
|
|
1533
1580
|
if (branch && isUnsafe) {
|
|
1534
1581
|
setUnsafeSelectionTarget(branch.name);
|
|
1582
|
+
setUnsafeSelectionMessage(UNSAFE_SELECTION_MESSAGE);
|
|
1535
1583
|
setUnsafeSelectionConfirmVisible(true);
|
|
1536
1584
|
return;
|
|
1537
1585
|
}
|
|
@@ -1545,6 +1593,7 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
1545
1593
|
const target = unsafeSelectionTarget();
|
|
1546
1594
|
setUnsafeSelectionConfirmVisible(false);
|
|
1547
1595
|
setUnsafeSelectionTarget(null);
|
|
1596
|
+
setUnsafeSelectionMessage(UNSAFE_SELECTION_MESSAGE);
|
|
1548
1597
|
if (!confirmed || !target) {
|
|
1549
1598
|
return;
|
|
1550
1599
|
}
|
|
@@ -2005,7 +2054,7 @@ export function AppSolid(props: AppSolidProps) {
|
|
|
2005
2054
|
padding={1}
|
|
2006
2055
|
>
|
|
2007
2056
|
<ConfirmScreen
|
|
2008
|
-
message={
|
|
2057
|
+
message={unsafeSelectionMessage()}
|
|
2009
2058
|
onConfirm={confirmUnsafeSelection}
|
|
2010
2059
|
yesLabel="OK"
|
|
2011
2060
|
noLabel="Cancel"
|