catherd-cli 0.2.1 → 1.1.0
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 +141 -33
- package/THIRD_PARTY_NOTICES.md +37 -0
- package/catalog/jev.json +89 -0
- package/catalog/models.json +236 -0
- package/catalog/scores.json +366 -0
- package/package.json +24 -8
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/.mcp.json +2 -2
- package/plugin/bin/catherd-mcp +30 -0
- package/plugin/commands/catherd.md +2 -2
- package/plugin/skills/catherd/SKILL.md +160 -97
- package/plugin/skills/catherd-setup/SKILL.md +34 -24
- package/src/adapters/access.ts +63 -0
- package/src/adapters/all.ts +8 -0
- package/src/adapters/backend.ts +159 -0
- package/src/adapters/claude-code/events.ts +86 -0
- package/src/adapters/claude-code/index.ts +317 -0
- package/src/adapters/claude-code/models-api.ts +65 -0
- package/src/adapters/claude-code/models.ts +26 -0
- package/src/adapters/cli.ts +74 -0
- package/src/adapters/codex/events.ts +65 -0
- package/src/adapters/codex/home.ts +47 -0
- package/src/adapters/codex/index.ts +282 -0
- package/src/adapters/discovery.ts +87 -0
- package/src/adapters/opencode/agents.ts +84 -0
- package/src/adapters/opencode/events.ts +109 -0
- package/src/adapters/opencode/index.ts +333 -0
- package/src/adapters/registry.ts +14 -0
- package/src/cli.ts +159 -19
- package/src/domain/agents.ts +60 -0
- package/src/domain/budget.ts +45 -0
- package/src/domain/catalog.ts +262 -0
- package/src/domain/changes.ts +52 -0
- package/src/domain/cost.ts +89 -0
- package/src/domain/errors.ts +60 -0
- package/src/domain/failover.ts +119 -0
- package/src/domain/hints.ts +22 -0
- package/src/domain/ids.ts +97 -0
- package/src/domain/jev.ts +283 -0
- package/src/domain/lane.ts +92 -0
- package/src/domain/notice.ts +95 -0
- package/src/domain/profile-rules.ts +239 -0
- package/src/domain/profile.ts +389 -0
- package/src/domain/record.ts +86 -0
- package/src/{profile → domain}/role-prompts.ts +75 -27
- package/src/domain/roles.ts +25 -0
- package/src/domain/route.ts +126 -0
- package/src/domain/runtime.ts +21 -0
- package/src/domain/sanitize.ts +29 -0
- package/src/domain/secrets.ts +57 -0
- package/src/domain/select.ts +136 -0
- package/src/domain/state.ts +49 -0
- package/src/domain/util.ts +18 -0
- package/src/entry/capture-fixtures-command.ts +57 -0
- package/src/entry/catalog-command.ts +106 -0
- package/src/entry/cli-kit.ts +36 -0
- package/src/entry/deps.ts +17 -0
- package/src/entry/doctor-command.ts +51 -0
- package/src/entry/glyphs.ts +34 -0
- package/src/entry/init-command.ts +182 -0
- package/src/entry/lock-command.ts +123 -0
- package/src/{mcp/commands.ts → entry/mcp/command.ts} +5 -1
- package/src/entry/mcp/dispatch-tools.ts +52 -0
- package/src/entry/mcp/handshake.ts +58 -0
- package/src/entry/mcp/lane-tools.ts +84 -0
- package/src/entry/mcp/protocol-tools.ts +57 -0
- package/src/entry/mcp/result.ts +51 -0
- package/src/entry/mcp/run-tools.ts +145 -0
- package/src/entry/mcp/server.ts +88 -0
- package/src/entry/mcp/setup-tools.ts +81 -0
- package/src/entry/profile-command.ts +318 -0
- package/src/entry/prompt.ts +103 -0
- package/src/entry/runs-command.ts +260 -0
- package/src/entry/supervise-bin.ts +18 -0
- package/src/entry/supervise-command.ts +37 -0
- package/src/entry/tui/commands.ts +545 -0
- package/src/entry/tui/effects.ts +312 -0
- package/src/entry/tui/fixtures.ts +585 -0
- package/src/entry/tui/profile-edits.ts +138 -0
- package/src/entry/tui/profile-tree.ts +420 -0
- package/src/entry/tui/providers/app.tsx +162 -0
- package/src/entry/tui/providers/boundary.tsx +57 -0
- package/src/entry/tui/providers/data.tsx +160 -0
- package/src/entry/tui/providers/keymap.tsx +166 -0
- package/src/entry/tui/providers/root.tsx +45 -0
- package/src/entry/tui/providers/theme.tsx +17 -0
- package/src/entry/tui/providers/toast.tsx +77 -0
- package/src/entry/tui/run.tsx +98 -0
- package/src/entry/tui/state.ts +356 -0
- package/src/entry/tui/stories.ts +107 -0
- package/src/entry/tui/text.ts +130 -0
- package/src/entry/tui/theme.ts +140 -0
- package/src/entry/tui/views/app.tsx +208 -0
- package/src/entry/tui/views/dialogs.tsx +41 -0
- package/src/entry/tui/views/profile-actions.ts +321 -0
- package/src/entry/tui/views/profiles.tsx +440 -0
- package/src/entry/tui/views/runs.tsx +573 -0
- package/src/entry/tui/views/save-dialog.tsx +332 -0
- package/src/entry/tui/views/status.tsx +209 -0
- package/src/entry/tui/widgets/chrome.tsx +114 -0
- package/src/entry/tui/widgets/dialog-confirm.tsx +58 -0
- package/src/entry/tui/widgets/dialog-prompt.tsx +52 -0
- package/src/entry/tui/widgets/dialog-select.tsx +212 -0
- package/src/entry/tui/widgets/dialog.tsx +68 -0
- package/src/entry/tui/widgets/line.tsx +92 -0
- package/src/entry/tui/widgets/list.tsx +197 -0
- package/src/entry/tui/widgets/spinner.tsx +49 -0
- package/src/entry/tui/widgets/toast.tsx +62 -0
- package/src/infra/assets.ts +4 -0
- package/src/infra/claude-session.ts +98 -0
- package/src/infra/dispatch-dir.ts +286 -0
- package/src/infra/env.ts +67 -0
- package/src/infra/filelock.ts +159 -0
- package/src/infra/git.ts +91 -0
- package/src/infra/heavy-lock.ts +36 -0
- package/src/infra/jev-client.ts +162 -0
- package/src/infra/launch.ts +25 -0
- package/src/infra/log.ts +84 -0
- package/src/infra/paths.ts +38 -0
- package/src/infra/peer-inbox.ts +92 -0
- package/src/infra/proc.ts +110 -0
- package/src/infra/store.ts +229 -0
- package/src/infra/supervisor.ts +287 -0
- package/src/infra/version.ts +6 -0
- package/src/services/admission.ts +303 -0
- package/src/services/agent-links.ts +139 -0
- package/src/services/backends.ts +44 -0
- package/src/services/budget.ts +47 -0
- package/src/services/capture.ts +233 -0
- package/src/services/catalog-service.ts +382 -0
- package/src/services/dispatch-service.ts +620 -0
- package/src/services/dispatches.ts +174 -0
- package/src/services/doctor-access.ts +231 -0
- package/src/services/doctor-backends.ts +170 -0
- package/src/services/doctor-checks.ts +148 -0
- package/src/services/doctor-push.ts +109 -0
- package/src/services/doctor.ts +338 -0
- package/src/services/finalize.ts +377 -0
- package/src/services/gate-service.ts +288 -0
- package/src/services/global-install.ts +99 -0
- package/src/services/jev-service.ts +183 -0
- package/src/services/lane-service.ts +390 -0
- package/src/services/milestones.ts +208 -0
- package/src/services/notifier.ts +296 -0
- package/src/services/peek.ts +103 -0
- package/src/services/ports.ts +135 -0
- package/src/services/preflight.ts +221 -0
- package/src/services/profile-service.ts +292 -0
- package/src/services/profile-store.ts +141 -0
- package/src/services/protocol.ts +212 -0
- package/src/services/questions.ts +102 -0
- package/src/services/reconcile.ts +130 -0
- package/src/services/reentry.ts +22 -0
- package/src/services/routing-service.ts +190 -0
- package/src/services/run-debug.ts +79 -0
- package/src/services/run-service.ts +194 -0
- package/src/services/run-store.ts +334 -0
- package/src/services/runs-page.ts +254 -0
- package/src/services/session-view.ts +152 -0
- package/src/services/sessions.ts +92 -0
- package/src/services/setup.ts +87 -0
- package/src/services/state.ts +111 -0
- package/src/services/summary.ts +241 -0
- package/catalog/catalog.json +0 -112
- package/catalog/models-dev.json +0 -56453
- package/src/core/codex-events.ts +0 -49
- package/src/core/codex.ts +0 -166
- package/src/core/harness.ts +0 -89
- package/src/core/lanes.ts +0 -67
- package/src/core/lock.ts +0 -111
- package/src/core/opencode.ts +0 -207
- package/src/core/reconcile.ts +0 -26
- package/src/core/reply.ts +0 -54
- package/src/core/runstore.ts +0 -163
- package/src/core/spawn.ts +0 -89
- package/src/core/status.ts +0 -193
- package/src/files.ts +0 -19
- package/src/mcp/dispatch.ts +0 -154
- package/src/mcp/lane-tools.ts +0 -200
- package/src/mcp/out.ts +0 -6
- package/src/mcp/preflight.ts +0 -84
- package/src/mcp/run-tools.ts +0 -121
- package/src/mcp/runs.ts +0 -118
- package/src/mcp/server.ts +0 -26
- package/src/mcp/setup-tools.ts +0 -175
- package/src/paths.ts +0 -20
- package/src/profile/agents.ts +0 -130
- package/src/profile/profile.ts +0 -228
- package/src/routing/catalog.ts +0 -227
- package/src/routing/commands.ts +0 -22
- package/src/routing/jev.ts +0 -185
- package/src/routing/route.ts +0 -155
- package/src/routing/select.ts +0 -90
- package/src/tui/backends.ts +0 -57
- package/src/tui/commands.ts +0 -53
- package/src/tui/dashboard.tsx +0 -245
- package/src/tui/editor.tsx +0 -214
- package/src/tui/init.tsx +0 -208
- package/src/tui/matrix-model.ts +0 -279
- package/src/tui/matrix.tsx +0 -512
- package/src/tui/profiles.ts +0 -38
- package/src/tui/theme.ts +0 -177
- package/src/tui/ui.tsx +0 -267
- package/src/tui/watch-model.ts +0 -83
- package/src/tui/watch.tsx +0 -236
- package/src/types.ts +0 -184
- package/src/version.ts +0 -7
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": 1,
|
|
3
|
+
"version": "2026-09-25",
|
|
4
|
+
"benchmarks": {
|
|
5
|
+
"repo_code": { "benchmark": "DeepSWE", "version": "1.1" },
|
|
6
|
+
"terminal": { "benchmark": "Terminal-Bench", "version": "4.0" },
|
|
7
|
+
"honesty": {
|
|
8
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
9
|
+
"version": "GPT-6 system card appendix 11.6.4.2"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"scores": [
|
|
13
|
+
{
|
|
14
|
+
"rung": "gpt-6-sol#low",
|
|
15
|
+
"dim": "repo_code",
|
|
16
|
+
"value": 37.2,
|
|
17
|
+
"benchmark": "DeepSWE",
|
|
18
|
+
"version": "1.1",
|
|
19
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
20
|
+
"date": "2026-09-22",
|
|
21
|
+
"confidence": "secondary"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"rung": "gpt-6-sol#medium",
|
|
25
|
+
"dim": "repo_code",
|
|
26
|
+
"value": 56.6,
|
|
27
|
+
"benchmark": "DeepSWE",
|
|
28
|
+
"version": "1.1",
|
|
29
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
30
|
+
"date": "2026-09-22",
|
|
31
|
+
"confidence": "secondary"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"rung": "gpt-6-sol#high",
|
|
35
|
+
"dim": "repo_code",
|
|
36
|
+
"value": 65.3,
|
|
37
|
+
"benchmark": "DeepSWE",
|
|
38
|
+
"version": "1.1",
|
|
39
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
40
|
+
"date": "2026-09-22",
|
|
41
|
+
"confidence": "secondary"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"rung": "gpt-6-sol#xhigh",
|
|
45
|
+
"dim": "repo_code",
|
|
46
|
+
"value": 66.6,
|
|
47
|
+
"benchmark": "DeepSWE",
|
|
48
|
+
"version": "1.1",
|
|
49
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
50
|
+
"date": "2026-09-22",
|
|
51
|
+
"confidence": "secondary"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"rung": "gpt-6-sol#max",
|
|
55
|
+
"dim": "repo_code",
|
|
56
|
+
"value": 68.8,
|
|
57
|
+
"benchmark": "DeepSWE",
|
|
58
|
+
"version": "1.1",
|
|
59
|
+
"url": "https://x.com/OpenAIDevs/status/2102461464279912495",
|
|
60
|
+
"date": "2026-09-22",
|
|
61
|
+
"confidence": "verified"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"rung": "gpt-6-sol#max",
|
|
65
|
+
"dim": "terminal",
|
|
66
|
+
"value": 43,
|
|
67
|
+
"benchmark": "Terminal-Bench",
|
|
68
|
+
"version": "4.0",
|
|
69
|
+
"url": "https://artificialanalysis.ai/articles/gpt-6-sol-and-luna-push-the-cost-efficiency-frontier",
|
|
70
|
+
"date": "2026-09-22",
|
|
71
|
+
"confidence": "secondary"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"rung": "gpt-6-sol#max",
|
|
75
|
+
"dim": "honesty",
|
|
76
|
+
"value": 95.1,
|
|
77
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
78
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
79
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
80
|
+
"date": "2026-09-22",
|
|
81
|
+
"confidence": "verified"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"rung": "gpt-6-sol#medium",
|
|
85
|
+
"dim": "honesty",
|
|
86
|
+
"value": 95.1,
|
|
87
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
88
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
89
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
90
|
+
"date": "2026-09-22",
|
|
91
|
+
"confidence": "inferred",
|
|
92
|
+
"note": "measured at max effort; carried to this effort"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"rung": "gpt-6-sol#high",
|
|
96
|
+
"dim": "honesty",
|
|
97
|
+
"value": 95.1,
|
|
98
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
99
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
100
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
101
|
+
"date": "2026-09-22",
|
|
102
|
+
"confidence": "inferred",
|
|
103
|
+
"note": "measured at max effort; carried to this effort"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"rung": "gpt-6-sol#xhigh",
|
|
107
|
+
"dim": "honesty",
|
|
108
|
+
"value": 95.1,
|
|
109
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
110
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
111
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
112
|
+
"date": "2026-09-22",
|
|
113
|
+
"confidence": "inferred",
|
|
114
|
+
"note": "measured at max effort; carried to this effort"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"rung": "gpt-6-luna#high",
|
|
118
|
+
"dim": "repo_code",
|
|
119
|
+
"value": 59.3,
|
|
120
|
+
"benchmark": "DeepSWE",
|
|
121
|
+
"version": "1.1",
|
|
122
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
123
|
+
"date": "2026-09-22",
|
|
124
|
+
"confidence": "inferred",
|
|
125
|
+
"note": "the 0.x seed; only Luna max (66.6) is published"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"rung": "gpt-6-luna#max",
|
|
129
|
+
"dim": "repo_code",
|
|
130
|
+
"value": 66.6,
|
|
131
|
+
"benchmark": "DeepSWE",
|
|
132
|
+
"version": "1.1",
|
|
133
|
+
"url": "https://kingy.ai/blog/gpt-6-sol-luna-specs-benchmarks-pricing-comparison/",
|
|
134
|
+
"date": "2026-09-22",
|
|
135
|
+
"confidence": "secondary"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"rung": "gpt-6-luna#max",
|
|
139
|
+
"dim": "terminal",
|
|
140
|
+
"value": 13,
|
|
141
|
+
"benchmark": "Terminal-Bench",
|
|
142
|
+
"version": "4.0",
|
|
143
|
+
"url": "https://artificialanalysis.ai/articles/gpt-6-sol-and-luna-push-the-cost-efficiency-frontier",
|
|
144
|
+
"date": "2026-09-22",
|
|
145
|
+
"confidence": "secondary"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"rung": "gpt-6-luna#max",
|
|
149
|
+
"dim": "honesty",
|
|
150
|
+
"value": 71.3,
|
|
151
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
152
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
153
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
154
|
+
"date": "2026-09-22",
|
|
155
|
+
"confidence": "verified"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"rung": "gpt-6-luna#high",
|
|
159
|
+
"dim": "honesty",
|
|
160
|
+
"value": 71.3,
|
|
161
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
162
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
163
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
164
|
+
"date": "2026-09-22",
|
|
165
|
+
"confidence": "inferred",
|
|
166
|
+
"note": "measured at max effort; carried to this effort"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"rung": "gpt-6-astra#xhigh",
|
|
170
|
+
"dim": "repo_code",
|
|
171
|
+
"value": 74,
|
|
172
|
+
"benchmark": "DeepSWE",
|
|
173
|
+
"version": "1.1",
|
|
174
|
+
"url": "https://deepswe.datacurve.ai/",
|
|
175
|
+
"date": "2026-09-22",
|
|
176
|
+
"confidence": "verified"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"rung": "gpt-6-astra#high",
|
|
180
|
+
"dim": "terminal",
|
|
181
|
+
"value": 57.9,
|
|
182
|
+
"benchmark": "Terminal-Bench",
|
|
183
|
+
"version": "4.0",
|
|
184
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
185
|
+
"date": "2026-09-22",
|
|
186
|
+
"confidence": "secondary",
|
|
187
|
+
"note": "OpenAI-reported, as quoted in the Opus 5.5 system card"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"rung": "gpt-6-astra#max",
|
|
191
|
+
"dim": "honesty",
|
|
192
|
+
"value": 98.5,
|
|
193
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
194
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
195
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
196
|
+
"date": "2026-09-22",
|
|
197
|
+
"confidence": "verified"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"rung": "gpt-6-astra#xhigh",
|
|
201
|
+
"dim": "honesty",
|
|
202
|
+
"value": 98.5,
|
|
203
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
204
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
205
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
206
|
+
"date": "2026-09-22",
|
|
207
|
+
"confidence": "inferred",
|
|
208
|
+
"note": "measured at max effort; carried to this effort"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"rung": "gpt-5.6-sol#max",
|
|
212
|
+
"dim": "repo_code",
|
|
213
|
+
"value": 73,
|
|
214
|
+
"benchmark": "DeepSWE",
|
|
215
|
+
"version": "1.1",
|
|
216
|
+
"url": "https://deepswe.datacurve.ai/",
|
|
217
|
+
"date": "2026-09-22",
|
|
218
|
+
"confidence": "verified"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"rung": "gpt-5.6-sol#max",
|
|
222
|
+
"dim": "terminal",
|
|
223
|
+
"value": 37.3,
|
|
224
|
+
"benchmark": "Terminal-Bench",
|
|
225
|
+
"version": "4.0",
|
|
226
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
227
|
+
"date": "2026-09-22",
|
|
228
|
+
"confidence": "secondary"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"rung": "gpt-5.6-sol#max",
|
|
232
|
+
"dim": "honesty",
|
|
233
|
+
"value": 22.5,
|
|
234
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
235
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
236
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
237
|
+
"date": "2026-09-22",
|
|
238
|
+
"confidence": "verified"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"rung": "gpt-5.6-luna#max",
|
|
242
|
+
"dim": "repo_code",
|
|
243
|
+
"value": 67,
|
|
244
|
+
"benchmark": "DeepSWE",
|
|
245
|
+
"version": "1.1",
|
|
246
|
+
"url": "https://deepswe.datacurve.ai/",
|
|
247
|
+
"date": "2026-09-22",
|
|
248
|
+
"confidence": "verified"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"rung": "gpt-5.6-luna#max",
|
|
252
|
+
"dim": "honesty",
|
|
253
|
+
"value": 21.8,
|
|
254
|
+
"benchmark": "OpenAI Broken Search Tool, 100 minus the failure rate",
|
|
255
|
+
"version": "GPT-6 system card appendix 11.6.4.2",
|
|
256
|
+
"url": "https://deploymentsafety.openai.com/gpt-6-astra/sec:appendix-sol-luna",
|
|
257
|
+
"date": "2026-09-22",
|
|
258
|
+
"confidence": "verified"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"rung": "claude-opus-5-5#max",
|
|
262
|
+
"dim": "repo_code",
|
|
263
|
+
"value": 74.2,
|
|
264
|
+
"benchmark": "DeepSWE",
|
|
265
|
+
"version": "1.1",
|
|
266
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
267
|
+
"date": "2026-09-22",
|
|
268
|
+
"confidence": "verified",
|
|
269
|
+
"note": "vendor-run, mean of 5 trials (system card 8.3)"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"rung": "claude-opus-5-5#xhigh",
|
|
273
|
+
"dim": "terminal",
|
|
274
|
+
"value": 66.4,
|
|
275
|
+
"benchmark": "Terminal-Bench",
|
|
276
|
+
"version": "4.0",
|
|
277
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
278
|
+
"date": "2026-09-22",
|
|
279
|
+
"confidence": "verified",
|
|
280
|
+
"note": "Claude Code --bare, 5 trials (system card 8.5)"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"rung": "claude-opus-5-5#max",
|
|
284
|
+
"dim": "terminal",
|
|
285
|
+
"value": 64.8,
|
|
286
|
+
"benchmark": "Terminal-Bench",
|
|
287
|
+
"version": "4.0",
|
|
288
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
289
|
+
"date": "2026-09-22",
|
|
290
|
+
"confidence": "verified"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"rung": "claude-fable-5-1#max",
|
|
294
|
+
"dim": "terminal",
|
|
295
|
+
"value": 55.8,
|
|
296
|
+
"benchmark": "Terminal-Bench",
|
|
297
|
+
"version": "4.0",
|
|
298
|
+
"url": "https://www-cdn.anthropic.com/fc1b44717c85dc068bc6ba5024219938094694bd/Claude%20Opus%205.5%20System%20Card.pdf",
|
|
299
|
+
"date": "2026-09-22",
|
|
300
|
+
"confidence": "verified"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"rung": "claude-fable-5-1#max",
|
|
304
|
+
"dim": "repo_code",
|
|
305
|
+
"value": 67.4,
|
|
306
|
+
"benchmark": "DeepSWE",
|
|
307
|
+
"version": "1.1",
|
|
308
|
+
"url": "https://codingfleet.com/blog/deepswe-v11-leaderboard-2026/",
|
|
309
|
+
"date": "2026-09-25",
|
|
310
|
+
"confidence": "inferred",
|
|
311
|
+
"note": "a 5-trial mean from a secondary source that names no effort"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"rung": "claude-sonnet-5#max",
|
|
315
|
+
"dim": "repo_code",
|
|
316
|
+
"value": 54,
|
|
317
|
+
"benchmark": "DeepSWE",
|
|
318
|
+
"version": "1.1",
|
|
319
|
+
"url": "https://deepswe.datacurve.ai/",
|
|
320
|
+
"date": "2026-09-22",
|
|
321
|
+
"confidence": "verified"
|
|
322
|
+
}
|
|
323
|
+
],
|
|
324
|
+
"treatLike": {
|
|
325
|
+
"claude-opus-5-5#low": { "like": "claude-opus-5-5#xhigh", "note": "only xhigh and max are published" },
|
|
326
|
+
"claude-opus-5-5#medium": { "like": "claude-opus-5-5#xhigh", "note": "only xhigh and max are published" },
|
|
327
|
+
"claude-opus-5-5#high": { "like": "claude-opus-5-5#xhigh", "note": "only xhigh and max are published" },
|
|
328
|
+
"opencode-go/kimi-k3#max": {
|
|
329
|
+
"like": "gpt-6-sol#medium",
|
|
330
|
+
"note": "the default profile's OpenCode Go stand-in for Sol; no DeepSWE 1.1, Terminal-Bench 4.0 or honesty score is published for it"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"bars": {
|
|
334
|
+
"repo_code": {
|
|
335
|
+
"copy": { "repo_code": 55 },
|
|
336
|
+
"build": { "repo_code": 55 },
|
|
337
|
+
"logic": { "repo_code": 55, "honesty": 90 },
|
|
338
|
+
"hard": { "repo_code": 55, "honesty": 90 }
|
|
339
|
+
},
|
|
340
|
+
"terminal": {
|
|
341
|
+
"copy": { "honesty": 90 },
|
|
342
|
+
"build": { "honesty": 90 },
|
|
343
|
+
"logic": { "honesty": 90 },
|
|
344
|
+
"hard": { "honesty": 90 }
|
|
345
|
+
},
|
|
346
|
+
"ui": {
|
|
347
|
+
"copy": { "repo_code": 55 },
|
|
348
|
+
"build": { "repo_code": 55 },
|
|
349
|
+
"logic": { "repo_code": 55, "honesty": 90 },
|
|
350
|
+
"hard": { "repo_code": 55, "honesty": 90 }
|
|
351
|
+
},
|
|
352
|
+
"prose": {
|
|
353
|
+
"copy": { "repo_code": 55 },
|
|
354
|
+
"build": { "repo_code": 55 },
|
|
355
|
+
"logic": { "repo_code": 55, "honesty": 90 },
|
|
356
|
+
"hard": { "repo_code": 55, "honesty": 90 }
|
|
357
|
+
},
|
|
358
|
+
"research": {
|
|
359
|
+
"copy": { "repo_code": 55 },
|
|
360
|
+
"build": { "repo_code": 55 },
|
|
361
|
+
"logic": { "repo_code": 55, "honesty": 90 },
|
|
362
|
+
"hard": { "repo_code": 55, "honesty": 90 }
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
"barsWhy": "Track A (copy, build) needs DeepSWE 1.1 >= 55, which Luna high and every Sol rung from medium clear. Track B (logic, hard) also needs honesty >= 90: a worker on logic or hard work must say when a tool fails, which Luna (71.3) does not and Sol (95.1) does. Terminal-Bench 4.0 is published per effort only for Opus 5.5, so terminal lanes gate on honesty alone and use terminal scores to order the speed ladder."
|
|
366
|
+
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "catherd-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Herds coding agents: autopilot builds from your own Claude Code session.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"autopilot",
|
|
7
|
+
"claude-code",
|
|
8
|
+
"claude-code-plugin",
|
|
9
|
+
"cli",
|
|
10
|
+
"codex",
|
|
11
|
+
"coding-agents",
|
|
12
|
+
"mcp",
|
|
13
|
+
"opencode",
|
|
14
|
+
"orchestration",
|
|
15
|
+
"tui"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/47vigen/catherd#readme",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/47vigen/catherd/issues"
|
|
20
|
+
},
|
|
5
21
|
"license": "MIT",
|
|
22
|
+
"author": "47vigen",
|
|
6
23
|
"repository": {
|
|
7
24
|
"type": "git",
|
|
8
25
|
"url": "git+https://github.com/47vigen/catherd.git"
|
|
@@ -13,7 +30,8 @@
|
|
|
13
30
|
"files": [
|
|
14
31
|
"src",
|
|
15
32
|
"catalog",
|
|
16
|
-
"plugin"
|
|
33
|
+
"plugin",
|
|
34
|
+
"THIRD_PARTY_NOTICES.md"
|
|
17
35
|
],
|
|
18
36
|
"type": "module",
|
|
19
37
|
"scripts": {
|
|
@@ -21,16 +39,15 @@
|
|
|
21
39
|
"lint": "oxlint --deny-warnings src test",
|
|
22
40
|
"format": "oxfmt",
|
|
23
41
|
"format:check": "oxfmt --check",
|
|
24
|
-
"
|
|
42
|
+
"tui-frames": "CATHERD_WRITE_FRAMES=1 bun test test/entry/tui/frames.test.tsx",
|
|
25
43
|
"version-packages": "changeset version && bun scripts/stamp-plugin-version.mjs"
|
|
26
44
|
},
|
|
27
45
|
"dependencies": {
|
|
28
46
|
"@modelcontextprotocol/sdk": "^1.30.1",
|
|
29
|
-
"@opentui/core": "
|
|
30
|
-
"@opentui/
|
|
47
|
+
"@opentui/core": "0.5.12",
|
|
48
|
+
"@opentui/keymap": "0.5.12",
|
|
49
|
+
"@opentui/react": "0.5.12",
|
|
31
50
|
"citty": "^0.2.2",
|
|
32
|
-
"microdiff": "^1.6.0",
|
|
33
|
-
"ofetch": "^1.5.1",
|
|
34
51
|
"react": "^19.3.0",
|
|
35
52
|
"zod": "^4.6.5"
|
|
36
53
|
},
|
|
@@ -43,7 +60,6 @@
|
|
|
43
60
|
"lefthook": "^2.1.14",
|
|
44
61
|
"oxfmt": "^0.70.0",
|
|
45
62
|
"oxlint": "^1.85.0",
|
|
46
|
-
"string-width": "^8.3.0",
|
|
47
63
|
"typescript": "^7.0.2"
|
|
48
64
|
},
|
|
49
65
|
"engines": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "catherd",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Herds coding agents: Claude plans and verifies, Codex
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Herds coding agents: Claude plans and verifies, Codex, opencode or headless Claude Code workers write the code, and Jev picks the model and effort for each piece.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "47vigen",
|
|
7
7
|
"url": "https://github.com/47vigen"
|
package/plugin/.mcp.json
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# catherd's MCP launcher (spec 1.1 §12): the plugin's .mcp.json runs it. The release stamps VERSION
|
|
3
|
+
# (scripts/stamp-plugin-version.mjs), so the plugin always starts the server it was released with.
|
|
4
|
+
VERSION="1.1.0"
|
|
5
|
+
|
|
6
|
+
# a global catherd at this version (catherd init installs one): start it, no resolve at all
|
|
7
|
+
if command -v catherd >/dev/null 2>&1 && [ "$(catherd --version 2>/dev/null)" = "$VERSION" ]; then
|
|
8
|
+
# CATHERD_USER_TMPDIR is only this launcher's own hand-off to the server below; never pass on a stray one
|
|
9
|
+
unset CATHERD_USER_TMPDIR
|
|
10
|
+
exec catherd mcp
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# else bunx, with its cache out of $TMPDIR: macOS cleans old files there and leaves bunx a broken package.
|
|
14
|
+
# The server gets the user's own TMPDIR back from CATHERD_USER_TMPDIR (empty when it was unset).
|
|
15
|
+
if [ -n "${XDG_CACHE_HOME:-}" ]; then
|
|
16
|
+
cache="$XDG_CACHE_HOME"
|
|
17
|
+
elif [ -n "${HOME:-}" ]; then
|
|
18
|
+
cache="$HOME/.cache"
|
|
19
|
+
else
|
|
20
|
+
echo "catherd-mcp: HOME and XDG_CACHE_HOME are both unset, so there is no cache folder for bunx; set HOME, or install catherd globally: bun add -g catherd-cli@$VERSION" >&2
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
CATHERD_USER_TMPDIR="${TMPDIR:-}"
|
|
24
|
+
TMPDIR="$cache/catherd/bunx"
|
|
25
|
+
if ! mkdir -p "$TMPDIR" 2>/dev/null; then
|
|
26
|
+
echo "catherd-mcp: cannot create $TMPDIR for bunx's cache; fix its permissions, or install catherd globally: bun add -g catherd-cli@$VERSION" >&2
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
export CATHERD_USER_TMPDIR TMPDIR
|
|
30
|
+
exec bunx "catherd-cli@$VERSION" mcp
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Orchestrate a task with catherd — Claude plans and verifies, Codex
|
|
2
|
+
description: Orchestrate a task with catherd — Claude plans and verifies, Codex, opencode or headless Claude Code workers write the code
|
|
3
3
|
argument-hint: "<task, or nothing to resume the latest run>"
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,4 +7,4 @@ Use the `catherd` skill for this, and follow it exactly.
|
|
|
7
7
|
|
|
8
8
|
Task: $ARGUMENTS
|
|
9
9
|
|
|
10
|
-
If the task is empty, resume: call `status()`, tell the user which run it names, and continue that run from its
|
|
10
|
+
If the task is empty, resume: call `status()`, tell the user which run it names, call `peek(run)` once, and continue that run from its `Protocol next` step.
|