@golba98/codexa 1.0.3 → 1.0.5
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/README.md +17 -18
- package/bin/codexa.js +62 -144
- package/package.json +4 -3
- package/src/app.tsx +642 -303
- package/src/commands/handler.ts +7 -18
- package/src/config/buildInfo.ts +2 -2
- package/src/config/layeredConfig.ts +1 -1
- package/src/config/runtimeConfig.ts +1 -1
- package/src/config/settings.ts +1 -1
- package/src/config/trustStore.ts +1 -1
- package/src/core/README.md +52 -0
- package/src/core/agent/loop.ts +282 -0
- package/src/core/agent/protocol.ts +211 -0
- package/src/core/agent/tools.ts +414 -0
- package/src/core/{codexExecArgs.ts → codex/codexExecArgs.ts} +2 -2
- package/src/core/{codexLaunch.ts → codex/codexLaunch.ts} +3 -3
- package/src/core/{codexPrompt.ts → codex/codexPrompt.ts} +3 -3
- package/src/core/debug/modelStateDebug.ts +34 -0
- package/src/core/executables/antigravityExecutable.ts +48 -0
- package/src/core/executables/executableResolver.ts +5 -1
- package/src/core/models/codexModelCapabilities.ts +57 -4
- package/src/core/models/codexModelsCacheSeed.ts +153 -0
- package/src/core/models/providerModelCache.ts +106 -0
- package/src/core/perf/renderDebug.ts +10 -6
- package/src/core/process/CommandRunner.ts +12 -1
- package/src/core/providerLauncher/registry.ts +64 -18
- package/src/core/providerLauncher/types.ts +12 -9
- package/src/core/providerLauncher/workspaceConfig.ts +41 -26
- package/src/core/providerRuntime/anthropic.ts +10 -6
- package/src/core/providerRuntime/antigravity.ts +461 -0
- package/src/core/providerRuntime/claudeCodeDiscovery.ts +724 -446
- package/src/core/providerRuntime/claudeCodeDiscoveryDebug.ts +55 -0
- package/src/core/providerRuntime/contextMetadata.ts +12 -24
- package/src/core/providerRuntime/local.ts +129 -51
- package/src/core/providerRuntime/mistralVibe.ts +663 -0
- package/src/core/providerRuntime/models.ts +40 -15
- package/src/core/providerRuntime/reasoning.ts +9 -6
- package/src/core/providerRuntime/registry.ts +76 -4
- package/src/core/providerRuntime/types.ts +20 -14
- package/src/core/providers/codexSubprocess.ts +2 -2
- package/src/core/providers/types.ts +1 -1
- package/src/core/{attachments.ts → shared/attachments.ts} +27 -4
- package/src/core/{cleanupFastFail.ts → shared/cleanupFastFail.ts} +1 -1
- package/src/core/{hollowResponseFormat.ts → shared/hollowResponseFormat.ts} +1 -1
- package/src/core/terminal/clearFrameBoundary.ts +814 -0
- package/src/core/terminal/frameLock.ts +109 -0
- package/src/core/terminal/inkRenderReset.ts +123 -0
- package/src/core/terminal/terminalControl.ts +22 -0
- package/src/core/terminal/terminalTitle.ts +16 -102
- package/src/core/{channel.ts → version/channel.ts} +1 -1
- package/src/core/{updateCheck.ts → version/updateCheck.ts} +10 -5
- package/src/core/{launchContext.ts → workspace/launchContext.ts} +9 -16
- package/src/core/{planStorage.ts → workspace/planStorage.ts} +2 -2
- package/src/core/{workspaceGuard.ts → workspace/workspaceGuard.ts} +97 -13
- package/src/headless/execRunner.ts +2 -2
- package/src/index.tsx +66 -98
- package/src/session/appSession.ts +10 -7
- package/src/session/chatLifecycle.ts +1 -1
- package/src/session/liveRenderScheduler.ts +1 -1
- package/src/session/types.ts +1 -1
- package/src/test/runtimeTestUtils.ts +90 -0
- package/src/ui/{ActivityBars.tsx → chrome/ActivityBars.tsx} +1 -1
- package/src/ui/{ActivityIndicator.tsx → chrome/ActivityIndicator.tsx} +3 -3
- package/src/ui/{AnimatedStatusText.tsx → chrome/AnimatedStatusText.tsx} +3 -3
- package/src/ui/chrome/AppShell.tsx +672 -0
- package/src/ui/{BottomComposer.tsx → chrome/BottomComposer.tsx} +159 -158
- package/src/ui/{DashCard.tsx → chrome/DashCard.tsx} +2 -2
- package/src/ui/{RunFooter.tsx → chrome/RunFooter.tsx} +3 -3
- package/src/ui/chrome/RuntimeStatusBar.tsx +108 -0
- package/src/ui/{Spinner.tsx → chrome/Spinner.tsx} +1 -1
- package/src/ui/{TopHeader.tsx → chrome/TopHeader.tsx} +54 -38
- package/src/ui/{UpdateAvailableCard.tsx → chrome/UpdateAvailableCard.tsx} +5 -5
- package/src/ui/{commandNormalize.ts → input/commandNormalize.ts} +1 -1
- package/src/ui/{focus.ts → input/focus.ts} +1 -1
- package/src/ui/{inputBuffer.ts → input/inputBuffer.ts} +3 -3
- package/src/ui/layout.ts +298 -24
- package/src/ui/{AttachmentImportPanel.tsx → panels/AttachmentImportPanel.tsx} +3 -3
- package/src/ui/{AuthPanel.tsx → panels/AuthPanel.tsx} +5 -5
- package/src/ui/{BackendPicker.tsx → panels/BackendPicker.tsx} +2 -2
- package/src/ui/{ModePicker.tsx → panels/ModePicker.tsx} +2 -2
- package/src/ui/{ModelPicker.tsx → panels/ModelPicker.tsx} +2 -2
- package/src/ui/{ModelPickerScreen.tsx → panels/ModelPickerScreen.tsx} +224 -42
- package/src/ui/{ModelReasoningPicker.tsx → panels/ModelReasoningPicker.tsx} +5 -5
- package/src/ui/{Panel.tsx → panels/Panel.tsx} +1 -1
- package/src/ui/{PermissionsPanel.tsx → panels/PermissionsPanel.tsx} +3 -3
- package/src/ui/{PlanActionPicker.tsx → panels/PlanActionPicker.tsx} +2 -2
- package/src/ui/{PlanReviewPanel.tsx → panels/PlanReviewPanel.tsx} +5 -5
- package/src/ui/panels/ProviderPicker.tsx +737 -0
- package/src/ui/{ReasoningPicker.tsx → panels/ReasoningPicker.tsx} +3 -3
- package/src/ui/{SelectionPanel.tsx → panels/SelectionPanel.tsx} +5 -1
- package/src/ui/{SettingsPanel.tsx → panels/SettingsPanel.tsx} +4 -4
- package/src/ui/{TextEntryPanel.tsx → panels/TextEntryPanel.tsx} +4 -4
- package/src/ui/{ThemePicker.tsx → panels/ThemePicker.tsx} +2 -2
- package/src/ui/{UpdatePromptPanel.tsx → panels/UpdatePromptPanel.tsx} +17 -23
- package/src/ui/{Markdown.tsx → render/Markdown.tsx} +2 -2
- package/src/ui/{diffRenderer.ts → render/diffRenderer.ts} +1 -1
- package/src/ui/{logoVariants.ts → render/logoVariants.ts} +4 -8
- package/src/ui/{modeDisplay.ts → render/modeDisplay.ts} +2 -2
- package/src/ui/{outputPipeline.ts → render/outputPipeline.ts} +2 -2
- package/src/ui/{runtimeDisplay.ts → render/runtimeDisplay.ts} +23 -10
- package/src/ui/{textLayout.ts → render/textLayout.ts} +15 -4
- package/src/ui/{ActionRequiredBlock.tsx → timeline/ActionRequiredBlock.tsx} +3 -3
- package/src/ui/{AgentBlock.tsx → timeline/AgentBlock.tsx} +10 -10
- package/src/ui/{StaticIntroItem.tsx → timeline/StaticIntroItem.tsx} +2 -2
- package/src/ui/{ThinkingBlock.tsx → timeline/ThinkingBlock.tsx} +4 -4
- package/src/ui/{Timeline.tsx → timeline/Timeline.tsx} +1620 -1471
- package/src/ui/timeline/TranscriptShell.tsx +322 -0
- package/src/ui/{TurnGroup.tsx → timeline/TurnGroup.tsx} +15 -15
- package/src/ui/timeline/layoutListWindow.ts +145 -0
- package/src/ui/{progressEntries.ts → timeline/progressEntries.ts} +3 -3
- package/src/ui/{runActivityView.ts → timeline/runActivityView.ts} +1 -1
- package/src/ui/{timelineMeasure.ts → timeline/timelineMeasure.ts} +206 -134
- package/src/core/codex.ts +0 -124
- package/src/ui/AppShell.tsx +0 -706
- package/src/ui/ProviderPicker.tsx +0 -321
- package/src/ui/StaticTranscriptItem.tsx +0 -56
- /package/src/core/{inputDebug.ts → debug/inputDebug.ts} +0 -0
- /package/src/core/{clipboard.ts → shared/clipboard.ts} +0 -0
- /package/src/core/{githubDiagnostics.ts → shared/githubDiagnostics.ts} +0 -0
- /package/src/core/{projectInstructions.ts → workspace/projectInstructions.ts} +0 -0
- /package/src/core/{workspaceActivity.ts → workspace/workspaceActivity.ts} +0 -0
- /package/src/core/{workspaceRoot.ts → workspace/workspaceRoot.ts} +0 -0
- /package/src/ui/{busyStatusAnimation.ts → chrome/busyStatusAnimation.ts} +0 -0
- /package/src/ui/{slashCommands.ts → input/slashCommands.ts} +0 -0
- /package/src/ui/{terminalAnswerFormat.ts → render/terminalAnswerFormat.ts} +0 -0
package/src/core/codex.ts
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { spawn } from "child_process";
|
|
2
|
-
import type { ResolvedRuntimeConfig } from "../config/runtimeConfig.js";
|
|
3
|
-
import { formatCodexLaunchError, spawnCodexProcess } from "./executables/codexExecutable.js";
|
|
4
|
-
import { prepareCodexExecLaunch } from "./codexLaunch.js";
|
|
5
|
-
import { createTerminalTitleSequenceStripper } from "./terminal/terminalTitle.js";
|
|
6
|
-
|
|
7
|
-
export interface CodexHandlers {
|
|
8
|
-
onLine: (line: string) => void;
|
|
9
|
-
onDone: () => void;
|
|
10
|
-
onError: (message: string) => void;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function streamCodex(
|
|
14
|
-
prompt: string,
|
|
15
|
-
runtime: ResolvedRuntimeConfig,
|
|
16
|
-
workspaceRoot: string,
|
|
17
|
-
handlers: CodexHandlers,
|
|
18
|
-
): () => void {
|
|
19
|
-
let done = false;
|
|
20
|
-
let cancelled = false;
|
|
21
|
-
let proc: ReturnType<typeof spawn> | null = null;
|
|
22
|
-
|
|
23
|
-
const finishError = (message: string) => {
|
|
24
|
-
if (done) return;
|
|
25
|
-
done = true;
|
|
26
|
-
handlers.onError(message);
|
|
27
|
-
};
|
|
28
|
-
const finishSuccess = () => {
|
|
29
|
-
if (done) return;
|
|
30
|
-
done = true;
|
|
31
|
-
handlers.onDone();
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
void prepareCodexExecLaunch(
|
|
35
|
-
{
|
|
36
|
-
runtime,
|
|
37
|
-
cwd: workspaceRoot,
|
|
38
|
-
structuredOutput: false,
|
|
39
|
-
},
|
|
40
|
-
import.meta.url,
|
|
41
|
-
)
|
|
42
|
-
.then((launchPlan) => {
|
|
43
|
-
if (cancelled) return;
|
|
44
|
-
if (!launchPlan.ok) {
|
|
45
|
-
finishError(launchPlan.error);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (!launchPlan.executable) {
|
|
49
|
-
finishError("Codex launch preparation did not return an executable.");
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
proc = spawnCodexProcess(
|
|
54
|
-
launchPlan.executable,
|
|
55
|
-
launchPlan.args,
|
|
56
|
-
{ stdio: ["pipe", "pipe", "pipe"] },
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
proc.stdin?.write(prompt);
|
|
60
|
-
proc.stdin?.end();
|
|
61
|
-
|
|
62
|
-
let buffer = "";
|
|
63
|
-
|
|
64
|
-
// Strip title escape sequences from child output — prevents the subprocess from overwriting the terminal title.
|
|
65
|
-
const stdoutTitleStripper = createTerminalTitleSequenceStripper({
|
|
66
|
-
source: "src/core/codex.ts:codex.stdout",
|
|
67
|
-
stream: "stdout",
|
|
68
|
-
origin: "codex-cli",
|
|
69
|
-
});
|
|
70
|
-
const stderrTitleStripper = createTerminalTitleSequenceStripper({
|
|
71
|
-
source: "src/core/codex.ts:codex.stderr",
|
|
72
|
-
stream: "stderr",
|
|
73
|
-
origin: "codex-cli",
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
const flushLine = (line: string) => {
|
|
77
|
-
if (cancelled || done) return;
|
|
78
|
-
if (line.trim()) handlers.onLine(line);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const handleText = (text: string) => {
|
|
82
|
-
if (!text) return;
|
|
83
|
-
if (cancelled || done) return;
|
|
84
|
-
buffer += text;
|
|
85
|
-
const lines = buffer.split("\n");
|
|
86
|
-
buffer = lines.pop() ?? "";
|
|
87
|
-
lines.forEach(flushLine);
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
proc.stdout?.on("data", (chunk: Buffer) => handleText(stdoutTitleStripper.process(chunk)));
|
|
91
|
-
proc.stderr?.on("data", (chunk: Buffer) => handleText(stderrTitleStripper.process(chunk)));
|
|
92
|
-
|
|
93
|
-
proc.on("close", (code) => {
|
|
94
|
-
if (cancelled || done) return;
|
|
95
|
-
handleText(stdoutTitleStripper.flush());
|
|
96
|
-
handleText(stderrTitleStripper.flush());
|
|
97
|
-
if (buffer.trim()) flushLine(buffer);
|
|
98
|
-
buffer = "";
|
|
99
|
-
if (done) return;
|
|
100
|
-
if (code === 0) {
|
|
101
|
-
finishSuccess();
|
|
102
|
-
} else {
|
|
103
|
-
finishError(`Process exited with code ${code}`);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
proc.on("error", (err) => {
|
|
108
|
-
if (cancelled || done) return;
|
|
109
|
-
const errno = err as NodeJS.ErrnoException;
|
|
110
|
-
const msg = formatCodexLaunchError(errno);
|
|
111
|
-
finishError(msg);
|
|
112
|
-
});
|
|
113
|
-
})
|
|
114
|
-
.catch((error) => {
|
|
115
|
-
const errno = error as NodeJS.ErrnoException;
|
|
116
|
-
finishError(formatCodexLaunchError(errno));
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
return () => {
|
|
120
|
-
cancelled = true;
|
|
121
|
-
done = true;
|
|
122
|
-
proc?.kill();
|
|
123
|
-
};
|
|
124
|
-
}
|