parallel-codex-tui 0.1.3 → 0.1.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/.parallel-codex/config.example.toml +136 -3
- package/README.md +299 -21
- package/dist/bootstrap.js +37 -17
- package/dist/cli-args.js +34 -3
- package/dist/cli-help.js +20 -0
- package/dist/cli-startup-preflight.js +18 -0
- package/dist/cli-startup-recovery.js +82 -0
- package/dist/cli-workspace-picker.js +330 -0
- package/dist/cli-workspace-transition.js +33 -0
- package/dist/cli-workspace.js +7 -71
- package/dist/cli.js +234 -24
- package/dist/core/collaboration-timeline.js +268 -0
- package/dist/core/config-errors.js +14 -0
- package/dist/core/config.js +297 -109
- package/dist/core/file-store.js +119 -6
- package/dist/core/lease-finalization.js +22 -0
- package/dist/core/paths.js +7 -0
- package/dist/core/process-identity.js +48 -0
- package/dist/core/process-mutation-turn.js +128 -0
- package/dist/core/process-ownership.js +276 -0
- package/dist/core/process-tree.js +90 -0
- package/dist/core/router-audit.js +155 -0
- package/dist/core/router-redaction.js +31 -0
- package/dist/core/router.js +462 -35
- package/dist/core/session-index.js +412 -88
- package/dist/core/session-manager.js +1110 -40
- package/dist/core/task-session-details.js +175 -0
- package/dist/core/task-state-machine.js +18 -0
- package/dist/core/workspace-commit-recovery.js +118 -0
- package/dist/core/workspace.js +19 -11
- package/dist/doctor.js +373 -34
- package/dist/domain/schemas.js +142 -7
- package/dist/orchestrator/collaboration-channel.js +289 -6
- package/dist/orchestrator/feature-plan.js +70 -0
- package/dist/orchestrator/final-acceptance.js +86 -0
- package/dist/orchestrator/judge-artifacts.js +236 -0
- package/dist/orchestrator/orchestrator.js +2086 -203
- package/dist/orchestrator/prompts.js +168 -5
- package/dist/orchestrator/supervisor-summary.js +56 -2
- package/dist/orchestrator/workspace-sandbox.js +927 -0
- package/dist/tui/App.js +3187 -161
- package/dist/tui/AppShell.js +196 -25
- package/dist/tui/CollaborationTimelineView.js +327 -0
- package/dist/tui/FeatureBoardView.js +232 -0
- package/dist/tui/InputBar.js +581 -57
- package/dist/tui/RouterDiagnosticsView.js +469 -0
- package/dist/tui/StatusBar.js +610 -57
- package/dist/tui/StatusDetailView.js +164 -0
- package/dist/tui/TaskSessionDetailView.js +222 -0
- package/dist/tui/TaskSessionsView.js +210 -0
- package/dist/tui/TerminalOutput.js +53 -9
- package/dist/tui/WorkerOutputView.js +1404 -161
- package/dist/tui/WorkerOverviewView.js +269 -0
- package/dist/tui/chat-history.js +25 -0
- package/dist/tui/chat-input.js +67 -19
- package/dist/tui/chat-paste.js +76 -0
- package/dist/tui/display-width.js +41 -3
- package/dist/tui/incremental-text-file.js +101 -0
- package/dist/tui/keyboard.js +49 -0
- package/dist/tui/markdown-text.js +14 -0
- package/dist/tui/raw-input-decoder.js +3 -0
- package/dist/tui/scrolling.js +2 -1
- package/dist/tui/status-line.js +360 -11
- package/dist/tui/task-memory.js +13 -1
- package/dist/tui/task-result.js +105 -0
- package/dist/tui/terminal-screen.js +13 -1
- package/dist/tui/theme-contrast.js +144 -0
- package/dist/tui/theme-preview.js +109 -0
- package/dist/tui/theme.js +158 -0
- package/dist/version.js +1 -1
- package/dist/workers/capabilities.js +213 -0
- package/dist/workers/live-probe.js +177 -0
- package/dist/workers/mock-adapter.js +73 -8
- package/dist/workers/native-attach.js +106 -16
- package/dist/workers/process-adapter.js +572 -77
- package/dist/workers/provider.js +26 -0
- package/dist/workers/registry.js +12 -20
- package/package.json +11 -2
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function workerProvider(config, id) {
|
|
2
|
+
const provider = config.workers[id];
|
|
3
|
+
if (!provider) {
|
|
4
|
+
throw new Error(`Worker provider is not configured: ${id}`);
|
|
5
|
+
}
|
|
6
|
+
return { id, config: provider };
|
|
7
|
+
}
|
|
8
|
+
export function workerProviders(config) {
|
|
9
|
+
return Object.entries(config.workers)
|
|
10
|
+
.map(([id, provider]) => ({ id, config: provider }))
|
|
11
|
+
.sort((left, right) => left.id.localeCompare(right.id));
|
|
12
|
+
}
|
|
13
|
+
export function assignableWorkerProviderIds(config) {
|
|
14
|
+
return workerProviders(config)
|
|
15
|
+
.filter((provider) => provider.config.assignable)
|
|
16
|
+
.map((provider) => provider.id);
|
|
17
|
+
}
|
|
18
|
+
export function workerProviderLabel(config, id) {
|
|
19
|
+
const provider = config.workers[id];
|
|
20
|
+
if (!provider) {
|
|
21
|
+
return id;
|
|
22
|
+
}
|
|
23
|
+
const model = provider.model.name.trim();
|
|
24
|
+
const remote = provider.model.provider.trim();
|
|
25
|
+
return [id, model, remote].filter(Boolean).join("/");
|
|
26
|
+
}
|
package/dist/workers/registry.js
CHANGED
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
import { MockWorkerAdapter } from "./mock-adapter.js";
|
|
2
2
|
import { ProcessWorkerAdapter } from "./process-adapter.js";
|
|
3
|
+
import { workerProviders } from "./provider.js";
|
|
3
4
|
export function createWorkerRegistry(config) {
|
|
4
|
-
return new Map([
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
new ProcessWorkerAdapter(
|
|
9
|
-
timeoutMs:
|
|
10
|
-
idleTimeoutMs:
|
|
11
|
-
firstOutputTimeoutMs:
|
|
12
|
-
model:
|
|
5
|
+
return new Map(workerProviders(config).map(({ id, config: provider }) => [
|
|
6
|
+
id,
|
|
7
|
+
id === "mock"
|
|
8
|
+
? new MockWorkerAdapter()
|
|
9
|
+
: new ProcessWorkerAdapter(provider.command, provider.args, id, {
|
|
10
|
+
timeoutMs: provider.timeoutMs,
|
|
11
|
+
idleTimeoutMs: provider.idleTimeoutMs,
|
|
12
|
+
firstOutputTimeoutMs: provider.firstOutputTimeoutMs,
|
|
13
|
+
model: provider.model,
|
|
14
|
+
capabilities: provider.capabilities
|
|
13
15
|
})
|
|
14
|
-
|
|
15
|
-
[
|
|
16
|
-
"claude",
|
|
17
|
-
new ProcessWorkerAdapter(config.workers.claude.command, config.workers.claude.args, "claude", {
|
|
18
|
-
timeoutMs: config.workers.claude.timeoutMs,
|
|
19
|
-
idleTimeoutMs: config.workers.claude.idleTimeoutMs,
|
|
20
|
-
firstOutputTimeoutMs: config.workers.claude.firstOutputTimeoutMs,
|
|
21
|
-
model: config.workers.claude.model
|
|
22
|
-
})
|
|
23
|
-
]
|
|
24
|
-
]);
|
|
16
|
+
]));
|
|
25
17
|
}
|
|
26
18
|
export function getAdapter(registry, engine) {
|
|
27
19
|
const adapter = registry.get(engine);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "parallel-codex-tui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "A TypeScript TUI wrapper for routed parallel coding with Codex and Claude workers.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"agent-orchestration"
|
|
25
25
|
],
|
|
26
26
|
"engines": {
|
|
27
|
-
"node": ">=
|
|
27
|
+
"node": ">=24.15.0"
|
|
28
28
|
},
|
|
29
29
|
"bin": {
|
|
30
30
|
"parallel-codex-tui": "dist/cli.js"
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
"build": "tsc -p tsconfig.json",
|
|
41
41
|
"postbuild": "node -e \"require('node:fs').chmodSync('dist/cli.js', 0o755)\"",
|
|
42
42
|
"prepack": "npm run build",
|
|
43
|
+
"pretest": "node scripts/fix-node-pty-permissions.mjs",
|
|
44
|
+
"verify:package": "node scripts/verify-package.mjs",
|
|
43
45
|
"test": "vitest run",
|
|
44
46
|
"test:watch": "vitest",
|
|
45
47
|
"typecheck": "tsc --noEmit -p tsconfig.typecheck.json",
|
|
@@ -48,8 +50,10 @@
|
|
|
48
50
|
"dependencies": {
|
|
49
51
|
"@iarna/toml": "^2.2.5",
|
|
50
52
|
"@xterm/headless": "^6.0.0",
|
|
53
|
+
"chalk": "^5.3.0",
|
|
51
54
|
"ink": "^5.0.1",
|
|
52
55
|
"ink-text-input": "^6.0.0",
|
|
56
|
+
"marked": "^18.0.6",
|
|
53
57
|
"node-pty": "^1.1.0",
|
|
54
58
|
"react": "^18.3.1",
|
|
55
59
|
"zod": "^3.25.0"
|
|
@@ -61,5 +65,10 @@
|
|
|
61
65
|
"tsx": "^4.19.0",
|
|
62
66
|
"typescript": "^5.8.0",
|
|
63
67
|
"vitest": "^3.2.0"
|
|
68
|
+
},
|
|
69
|
+
"allowScripts": {
|
|
70
|
+
"esbuild@0.28.1": true,
|
|
71
|
+
"fsevents@2.3.3": true,
|
|
72
|
+
"node-pty@1.1.0": true
|
|
64
73
|
}
|
|
65
74
|
}
|