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.
Files changed (78) hide show
  1. package/.parallel-codex/config.example.toml +136 -3
  2. package/README.md +299 -21
  3. package/dist/bootstrap.js +37 -17
  4. package/dist/cli-args.js +34 -3
  5. package/dist/cli-help.js +20 -0
  6. package/dist/cli-startup-preflight.js +18 -0
  7. package/dist/cli-startup-recovery.js +82 -0
  8. package/dist/cli-workspace-picker.js +330 -0
  9. package/dist/cli-workspace-transition.js +33 -0
  10. package/dist/cli-workspace.js +7 -71
  11. package/dist/cli.js +234 -24
  12. package/dist/core/collaboration-timeline.js +268 -0
  13. package/dist/core/config-errors.js +14 -0
  14. package/dist/core/config.js +297 -109
  15. package/dist/core/file-store.js +119 -6
  16. package/dist/core/lease-finalization.js +22 -0
  17. package/dist/core/paths.js +7 -0
  18. package/dist/core/process-identity.js +48 -0
  19. package/dist/core/process-mutation-turn.js +128 -0
  20. package/dist/core/process-ownership.js +276 -0
  21. package/dist/core/process-tree.js +90 -0
  22. package/dist/core/router-audit.js +155 -0
  23. package/dist/core/router-redaction.js +31 -0
  24. package/dist/core/router.js +462 -35
  25. package/dist/core/session-index.js +412 -88
  26. package/dist/core/session-manager.js +1110 -40
  27. package/dist/core/task-session-details.js +175 -0
  28. package/dist/core/task-state-machine.js +18 -0
  29. package/dist/core/workspace-commit-recovery.js +118 -0
  30. package/dist/core/workspace.js +19 -11
  31. package/dist/doctor.js +373 -34
  32. package/dist/domain/schemas.js +142 -7
  33. package/dist/orchestrator/collaboration-channel.js +289 -6
  34. package/dist/orchestrator/feature-plan.js +70 -0
  35. package/dist/orchestrator/final-acceptance.js +86 -0
  36. package/dist/orchestrator/judge-artifacts.js +236 -0
  37. package/dist/orchestrator/orchestrator.js +2086 -203
  38. package/dist/orchestrator/prompts.js +168 -5
  39. package/dist/orchestrator/supervisor-summary.js +56 -2
  40. package/dist/orchestrator/workspace-sandbox.js +927 -0
  41. package/dist/tui/App.js +3187 -161
  42. package/dist/tui/AppShell.js +196 -25
  43. package/dist/tui/CollaborationTimelineView.js +327 -0
  44. package/dist/tui/FeatureBoardView.js +232 -0
  45. package/dist/tui/InputBar.js +581 -57
  46. package/dist/tui/RouterDiagnosticsView.js +469 -0
  47. package/dist/tui/StatusBar.js +610 -57
  48. package/dist/tui/StatusDetailView.js +164 -0
  49. package/dist/tui/TaskSessionDetailView.js +222 -0
  50. package/dist/tui/TaskSessionsView.js +210 -0
  51. package/dist/tui/TerminalOutput.js +53 -9
  52. package/dist/tui/WorkerOutputView.js +1404 -161
  53. package/dist/tui/WorkerOverviewView.js +269 -0
  54. package/dist/tui/chat-history.js +25 -0
  55. package/dist/tui/chat-input.js +67 -19
  56. package/dist/tui/chat-paste.js +76 -0
  57. package/dist/tui/display-width.js +41 -3
  58. package/dist/tui/incremental-text-file.js +101 -0
  59. package/dist/tui/keyboard.js +49 -0
  60. package/dist/tui/markdown-text.js +14 -0
  61. package/dist/tui/raw-input-decoder.js +3 -0
  62. package/dist/tui/scrolling.js +2 -1
  63. package/dist/tui/status-line.js +360 -11
  64. package/dist/tui/task-memory.js +13 -1
  65. package/dist/tui/task-result.js +105 -0
  66. package/dist/tui/terminal-screen.js +13 -1
  67. package/dist/tui/theme-contrast.js +144 -0
  68. package/dist/tui/theme-preview.js +109 -0
  69. package/dist/tui/theme.js +158 -0
  70. package/dist/version.js +1 -1
  71. package/dist/workers/capabilities.js +213 -0
  72. package/dist/workers/live-probe.js +177 -0
  73. package/dist/workers/mock-adapter.js +73 -8
  74. package/dist/workers/native-attach.js +106 -16
  75. package/dist/workers/process-adapter.js +572 -77
  76. package/dist/workers/provider.js +26 -0
  77. package/dist/workers/registry.js +12 -20
  78. package/package.json +11 -2
@@ -3,30 +3,101 @@ defaultMode = "auto"
3
3
 
4
4
  [router.codex]
5
5
  command = "codex"
6
- args = ["exec", "--skip-git-repo-check", "--sandbox", "workspace-write", "--color", "never", "-"]
7
- timeoutMs = 120000
8
- fallback = "complex"
6
+ args = ["exec", "--ephemeral", "--ignore-rules", "-c", "model_reasoning_effort=low", "--skip-git-repo-check", "--sandbox", "read-only", "--color", "never", "-"]
7
+ timeoutMs = 30000
8
+ # Stop a silent Router before the total ceiling so one transient retry stays bounded.
9
+ firstOutputTimeoutMs = 15000
10
+ # Reset after every stdout/stderr chunk; timeoutMs remains the hard ceiling.
11
+ idleTimeoutMs = 15000
12
+ # Stop a noisy or malformed classifier before it can grow Router memory without bound (1 KiB..16 MiB).
13
+ maxOutputBytes = 1048576
14
+ # Retry one transient Router failure before asking the user; 1 disables automatic retry.
15
+ maxAttempts = 2
16
+ retryDelayMs = 500
17
+ # Active-task follow-ups fail safely to Main after this shorter Codex timeout.
18
+ followUpTimeoutMs = 20000
19
+ # Non-interactive fallback; the TUI pauses and asks before executing it.
20
+ fallback = "simple"
21
+
22
+ # Optional environment passed only to the Codex router process.
23
+ # [router.codex.env]
24
+ # HTTP_PROXY = "http://127.0.0.1:7890"
25
+ # HTTPS_PROXY = "http://127.0.0.1:7890"
26
+ # ALL_PROXY = "socks5h://127.0.0.1:7890"
27
+ # NO_PROXY = "localhost,127.0.0.1"
28
+
29
+ [orchestration]
30
+ # Maximum isolated Actor or Critic feature workers running at the same time (1..8).
31
+ # Each feature receives its own snapshot; a combined Wave Critic approves staged changes before atomic live commit.
32
+ maxParallelFeatures = 3
33
+ # Maximum Actor/Critic revision rounds before the task is stopped for manual intervention (1..10).
34
+ maxRevisionRounds = 3
9
35
 
10
36
  [workers.codex]
11
37
  command = "codex"
38
+ # Automated Judge/Actor/Critic runs enforce workspace-write even if private args request a broader sandbox.
12
39
  args = ["exec", "--skip-git-repo-check", "--sandbox", "workspace-write", "--color", "never", "-"]
40
+ # timeoutMs is the hard ceiling; first output owns silent startup and idle starts after actual output.
41
+ # timeoutMs = 2700000
42
+ # idleTimeoutMs = 300000
13
43
  firstOutputTimeoutMs = 120000
14
44
 
45
+ # Automated workers and native attach use the same model args and env tables.
46
+ # Model args are appended after the interactive resume args and support {model} and {provider}.
47
+ # [workers.codex.model]
48
+ # name = "gpt-5"
49
+ # provider = "openai"
50
+ # args = ["--model", "{model}"]
51
+
52
+ # [workers.codex.model.env]
53
+ # OPENAI_API_KEY = "{env:OPENAI_API_KEY}"
54
+ # HTTP_PROXY = "http://127.0.0.1:7890"
55
+ # HTTPS_PROXY = "http://127.0.0.1:7890"
56
+ # ALL_PROXY = "socks5h://127.0.0.1:7890"
57
+ # NO_PROXY = "localhost,127.0.0.1"
58
+
59
+ [workers.codex.capabilities]
60
+ # Keep "codex" for Codex-compatible CLIs. Use "generic" for wrappers with their own flags.
61
+ profile = "codex"
62
+ writableDirArgs = ["--add-dir", "{dir}"]
63
+ freshSessionArgs = []
64
+
15
65
  [workers.codex.interactive]
16
66
  command = "codex"
17
67
  args = ["resume", "{sessionId}"]
68
+ # Used by the Task session detail view when branching from a recorded native session.
69
+ forkArgs = ["fork", "{sessionId}"]
18
70
 
19
71
  [workers.codex.nativeSession]
20
72
  fallback = "new"
21
73
 
22
74
  [workers.claude]
23
75
  command = "claude"
76
+ # Automated isolated roles enforce acceptEdits and remove permission-bypass flags.
24
77
  args = ["--print", "--permission-mode", "acceptEdits", "--output-format", "text"]
78
+ # timeoutMs is the hard ceiling; first output owns silent startup and idle starts after actual output.
79
+ # timeoutMs = 2700000
80
+ # idleTimeoutMs = 300000
25
81
  firstOutputTimeoutMs = 120000
26
82
 
83
+ # [workers.claude.model]
84
+ # name = "claude-sonnet"
85
+ # provider = "anthropic"
86
+ # args = ["--model", "{model}"]
87
+
88
+ # [workers.claude.model.env]
89
+ # ANTHROPIC_API_KEY = "{env:ANTHROPIC_API_KEY}"
90
+
91
+ [workers.claude.capabilities]
92
+ # A client-generated id makes the first Claude run reliably resumable.
93
+ profile = "claude"
94
+ writableDirArgs = ["--add-dir", "{dir}"]
95
+ freshSessionArgs = ["--session-id", "{sessionId}"]
96
+
27
97
  [workers.claude.interactive]
28
98
  command = "claude"
29
99
  args = ["--resume", "{sessionId}"]
100
+ forkArgs = ["--resume", "{sessionId}", "--fork-session"]
30
101
 
31
102
  [workers.claude.nativeSession]
32
103
  fallback = "new"
@@ -35,6 +106,52 @@ fallback = "new"
35
106
  command = "mock"
36
107
  args = []
37
108
 
109
+ [workers.mock.capabilities]
110
+ profile = "generic"
111
+ writableDirArgs = []
112
+ freshSessionArgs = []
113
+
114
+ # Add any number of named Worker providers. IDs use lowercase letters, digits, or _.
115
+ # A profile can inherit the Codex/Claude command protocol and override only role-specific values.
116
+ # [workers.openai_compat]
117
+ # extends = "codex"
118
+ # command = "openai-compatible-coder"
119
+ # assignable = true
120
+ #
121
+ # [workers.openai_compat.model]
122
+ # name = "third-party-model"
123
+ # provider = "openai-compatible"
124
+ # args = ["--model", "{model}", "--provider", "{provider}"]
125
+ #
126
+ # [workers.openai_compat.model.env]
127
+ # OPENAI_API_KEY = "{env:OPENAI_COMPAT_API_KEY}"
128
+ # OPENAI_BASE_URL = "{env:OPENAI_COMPAT_BASE_URL}"
129
+ #
130
+ # [workers.openai_compat.interactive]
131
+ # command = "openai-compatible-coder"
132
+ #
133
+ # [workers.anthropic_compat]
134
+ # extends = "claude"
135
+ # command = "anthropic-compatible-coder"
136
+ #
137
+ # [workers.anthropic_compat.model]
138
+ # name = "third-party-claude-model"
139
+ # provider = "anthropic-compatible"
140
+ #
141
+ # [workers.anthropic_compat.model.env]
142
+ # ANTHROPIC_API_KEY = "{env:ANTHROPIC_COMPAT_API_KEY}"
143
+ # ANTHROPIC_BASE_URL = "{env:ANTHROPIC_COMPAT_BASE_URL}"
144
+ #
145
+ # [workers.anthropic_compat.interactive]
146
+ # command = "anthropic-compatible-coder"
147
+
148
+ # A custom CLI starts from conservative generic defaults: isolated cwd, no injected
149
+ # vendor flags, and native resume disabled until explicitly configured.
150
+ # [workers.vendor]
151
+ # extends = "generic"
152
+ # command = "vendor-coder"
153
+ # args = ["run", "--stdin"]
154
+
38
155
  [pairing]
39
156
  main = "claude"
40
157
  judge = "codex"
@@ -60,3 +177,19 @@ instructions = ["Review Actor work against Judge requirements. Lead with blockin
60
177
  [ui]
61
178
  showStatusBar = true
62
179
  autoOpenFailedWorker = true
180
+ theme = "codex" # codex, graphite, paper, aurora, studio
181
+
182
+ [ui.colors]
183
+ # Optional color overrides. Values can be Chalk color names,
184
+ # #rgb/#rrggbb, rgb(r,g,b), or ansi256(0..255).
185
+ # chrome = "ansi256(233)"
186
+ # surface = "ansi256(234)"
187
+ # rail = "ansi256(236)"
188
+ # successSurface = "ansi256(22)"
189
+ # dangerSurface = "ansi256(52)"
190
+ # text = "ansi256(253)"
191
+ # muted = "ansi256(247)"
192
+ # accent = "ansi256(81)"
193
+ # warning = "ansi256(179)"
194
+ # success = "ansi256(114)"
195
+ # danger = "ansi256(210)"