agent-bios 0.10.0 → 0.11.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/DEPENDENCIES.md +3 -3
- package/README.md +1 -1
- package/claude/guides/cli-multi-model-workflow.md +4 -4
- package/claude/guides/coding-staged-workflow.md +1 -1
- package/claude/guides/session-distill-workflow.md +3 -3
- package/codex/guides/cli-multi-model-workflow.md +4 -4
- package/codex/guides/coding-staged-workflow.md +1 -1
- package/codex/guides/session-distill-workflow.md +3 -3
- package/install.sh +47 -4
- package/launch/agent-launch.py +790 -173
- package/launch/agent-launch.toml +56 -107
- package/launch/i18n/en.toml +66 -0
- package/launch/i18n/ja.toml +63 -0
- package/launch/i18n/ko.toml +63 -0
- package/package.json +2 -1
- package/provenance.json +1 -1
- package/wrappers/codex-run.sh +1 -1
package/launch/agent-launch.toml
CHANGED
|
@@ -11,33 +11,21 @@ passthrough_args = ["--dangerously-skip-permissions"]
|
|
|
11
11
|
# Optional dependencies. `command` gates the route: unresolvable means the route
|
|
12
12
|
# is unavailable and the review setup degrades without it. `install` is the single
|
|
13
13
|
# source for both the one-line hint shown when it is missing and what
|
|
14
|
-
# `agent-bios install --with <name>` runs.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
# and getting them the wrong way round is the mistake to avoid: the package name is
|
|
30
|
-
# "ultracode, ported for codex", not "the codex one is the real one".
|
|
31
|
-
#
|
|
32
|
-
# What they are FOR, which is what a reader choosing between reviewers actually needs:
|
|
33
|
-
# both drive a dynamic workflow, used here as a flexible many-perspective check on an
|
|
34
|
-
# IMPLEMENTATION — does it function, does it survive an adversary, does the logic hold,
|
|
35
|
-
# does it hold under a real scenario, does it hold under stress. That makes them
|
|
36
|
-
# COMPLEMENTARY to onto rather than competing with it: onto looks hardest at whether
|
|
37
|
-
# authority, gates and harness are consistent with each other. The two are independently
|
|
38
|
-
# selectable, and both single-sided choices are legitimate — a thing whose whole point is
|
|
39
|
-
# that it WORKS can be reviewed by the workflow alone, and a logic-bearing document,
|
|
40
|
-
# ontology, harness or gate can be reviewed by onto alone.
|
|
14
|
+
# `agent-bios install --with <name>` runs. How a tool exposes an operation is its
|
|
15
|
+
# `offers` list: the adapter there is a protocol codec owned by core, never a method
|
|
16
|
+
# identity, so a second method reusing the tag is data-only, and `evidence` names what
|
|
17
|
+
# the tool reports back about the dispatch it performed — a receipt missing any of it
|
|
18
|
+
# is not credited.
|
|
19
|
+
|
|
20
|
+
# ── deep review, one concept and two host-bound mechanisms ─────────────────
|
|
21
|
+
# Both shipped deep reviewers are the host CLIs themselves — nothing to install beyond
|
|
22
|
+
# the CLI, which is a host rather than a reviewer. `ultracode` runs ON CLAUDE (the
|
|
23
|
+
# Claude Code workflow keyword); `codex-exec` runs ON CODEX (the CLI's non-interactive
|
|
24
|
+
# exec mode). What they are FOR: a deep check on an IMPLEMENTATION — does it function,
|
|
25
|
+
# does it survive an adversary, does the logic hold, does it hold under a real scenario,
|
|
26
|
+
# does it hold under stress. The Claude side fans that across many agents; the Codex
|
|
27
|
+
# side hands the whole packet to one frontier-effort pass. Personal or third-party
|
|
28
|
+
# reviewers register in the user-owned methods file, never here.
|
|
41
29
|
|
|
42
30
|
[capabilities.ultracode]
|
|
43
31
|
# Not a separate tool: the Claude Code CLI's own dynamic workflow, opened by putting the
|
|
@@ -55,17 +43,24 @@ command = "${backend}"
|
|
|
55
43
|
# claude only: the keyword trigger is a Claude Code feature, so a codex seat cannot run it.
|
|
56
44
|
offers = [{ operation = "workflow-review", adapter = "host-workflow-v1", hosts = ["claude"] }]
|
|
57
45
|
|
|
58
|
-
[capabilities.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
|
|
46
|
+
[capabilities.codex-exec]
|
|
47
|
+
# The Codex CLI's own non-interactive exec mode. As with `ultracode` above, the command
|
|
48
|
+
# IS the configured backend — `${backend}` and not a duplicated literal, because a
|
|
49
|
+
# duplicated default breaks for anyone whose backend is a wrapper or an absolute path.
|
|
50
|
+
# No `install`: that field is EXECUTED by `agent-bios install --with`, and a missing
|
|
51
|
+
# codex CLI is a missing host, not a missing reviewer.
|
|
52
|
+
command = "${backend}"
|
|
53
|
+
# codex only, and this is the tool's nature rather than a policy: `exec`,
|
|
54
|
+
# `-s read-only`, `-c model_reasoning_effort` and `-c service_tier` are Codex CLI
|
|
55
|
+
# surface (verified against installed codex-cli 0.146.0), so a claude seat cannot
|
|
56
|
+
# run it. `-s read-only` pins the sandbox the descriptor promises; what stays
|
|
57
|
+
# inherited is the ambient ~/.codex configuration (AGENTS.md, config.toml), so
|
|
58
|
+
# this reviewer is read-only but not hermetic — the codex-run wrapper remains the
|
|
59
|
+
# hermetic dispatch when that matters.
|
|
65
60
|
#
|
|
66
|
-
# Between the two, this review is available CROSS-FAMILY from
|
|
67
|
-
#
|
|
68
|
-
offers = [{ operation = "
|
|
61
|
+
# Between the two, this review is available CROSS-FAMILY from a claude main — the
|
|
62
|
+
# opposite family's CLI is dispatched as a fresh read-only subprocess.
|
|
63
|
+
offers = [{ operation = "exec-review", adapter = "exec-stdio-v1", hosts = ["codex"] }]
|
|
69
64
|
|
|
70
65
|
# ── review methods (DESIGN.md §1) ───────────────────────────────────────────
|
|
71
66
|
# Data only. Adding a method here — including one this repo has never seen — must
|
|
@@ -92,59 +87,33 @@ aggregation = "majority"
|
|
|
92
87
|
severity_emits = ["blocker", "high", "medium", "low", "info"]
|
|
93
88
|
severity_map = { blocker = "blocker", high = "high", medium = "medium", low = "low", info = "info" }
|
|
94
89
|
|
|
95
|
-
[review_methods.
|
|
96
|
-
label = "
|
|
97
|
-
|
|
98
|
-
capability
|
|
99
|
-
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
-
|
|
110
|
-
instructions = 'call onto_review/onto_prepare_review with llmOverride={{"provider":"{provider}","model":"{model}","effort":"{effort}"}} so onto runs on {provider} at {effort}'
|
|
90
|
+
[review_methods.codex-exec]
|
|
91
|
+
label = "Codex deep exec review"
|
|
92
|
+
# Named for the mechanism, not for the legacy layer. The legacy route token `ultracode`
|
|
93
|
+
# used to BE its capability's key, so naming another tool with the bare name silently
|
|
94
|
+
# repointed the legacy route — the golden caught that, and the fix was to bind the legacy
|
|
95
|
+
# token to a capability explicitly (`LEGACY_ULTRACODE_CAPABILITY`) rather than let a setup
|
|
96
|
+
# name and a tool id be the same string.
|
|
97
|
+
description = "One deep pass by the Codex CLI in non-interactive exec mode: the whole packet handed to a single frontier-effort model rather than fanned out over agents. Use it on things that have to WORK when the strongest single reader beats many angles; the Claude-side workflow below is the fan-out counterpart. Reviews whatever packet you hand it on stdin, so it needs no working-tree state and nothing installed beyond the codex CLI itself."
|
|
98
|
+
capability = "codex-exec"
|
|
99
|
+
operation = "exec-review"
|
|
100
|
+
# The exec flags are the whole mechanism, so they are stated as literals rather than left
|
|
101
|
+
# to the dispatcher's memory. The severity ladder is stated too, and that is what makes
|
|
102
|
+
# the identity map below TRUE rather than copied: this reviewer has no vocabulary of its
|
|
103
|
+
# own — it reports on the ladder because the request tells it to.
|
|
104
|
+
instructions = 'dispatch {command} exec -s read-only -m {model} -c model_reasoning_effort="{effort}" as a fresh read-only process with a self-contained review packet on stdin (the -s flag is what makes read-only true rather than promised; append -c service_tier="fast" only when a faster, shallower turnaround is explicitly wanted), and require every finding to carry one of {severities}'
|
|
111
105
|
output = "review-v1"
|
|
112
|
-
perspectives = ["
|
|
106
|
+
perspectives = ["deep-exec"]
|
|
113
107
|
trials = 1
|
|
114
108
|
order = "fixed"
|
|
115
109
|
swap_augmentation = false
|
|
116
110
|
aggregation = "union"
|
|
117
|
-
# onto's own REVIEW_SEVERITY_ORDER is this same ladder — read in its source, not
|
|
118
|
-
# assumed. Identity is correct here for a different reason than the panel below.
|
|
119
111
|
severity_emits = ["blocker", "high", "medium", "low", "info"]
|
|
120
112
|
severity_map = { blocker = "blocker", high = "high", medium = "medium", low = "low", info = "info" }
|
|
121
113
|
|
|
122
|
-
[review_methods.ultracode-for-codex]
|
|
123
|
-
label = "Ultracode workflow review (Codex)"
|
|
124
|
-
# Named for the tool, not for the legacy layer. The legacy route token `ultracode` used to
|
|
125
|
-
# BE this capability's key, so naming the Claude tool `ultracode` silently repointed the
|
|
126
|
-
# legacy route at it — the golden caught that, and the fix was to bind the legacy token to
|
|
127
|
-
# a capability explicitly (`LEGACY_ULTRACODE_CAPABILITY`) rather than let a setup name and
|
|
128
|
-
# a tool id be the same string.
|
|
129
|
-
description = "The same dynamic workflow, ported to Codex — same use: things that have to WORK, checked from many angles rather than one. Fans dozens of Codex agents over your UNCOMMITTED working-tree changes for file:line defects, each candidate verified by its own agent. Its built-in code-review fails before spawning anything when the tree holds no reviewable change — clean, or only types it excludes such as .java, Dockerfile or dist/. Passing that gate is not the same as your files being reviewed. Detached: launching exits 0 even when the run dies."
|
|
130
|
-
capability = "ultracode-for-codex"
|
|
131
|
-
operation = "workflow-review"
|
|
132
|
-
instructions = "run {command} against a self-contained review packet on {model}/{effort}"
|
|
133
|
-
output = "review-v1"
|
|
134
|
-
perspectives = ["orchestration"]
|
|
135
|
-
trials = 1
|
|
136
|
-
order = "fixed"
|
|
137
|
-
swap_augmentation = false
|
|
138
|
-
aggregation = "union"
|
|
139
|
-
# P0..P3 plus a null severity, taken from the tool's own result contract. The mapping
|
|
140
|
-
# is the owner's call: the tool documents the vocabulary but not what each level
|
|
141
|
-
# means, so it cannot be derived. "null" keys a finding the tool reports with none.
|
|
142
|
-
severity_emits = ["P0", "P1", "P2", "P3", "null"]
|
|
143
|
-
severity_map = { P0 = "blocker", P1 = "high", P2 = "medium", P3 = "low", null = "info" }
|
|
144
|
-
|
|
145
114
|
[review_methods.ultracode]
|
|
146
115
|
label = "Ultracode workflow review (Claude)"
|
|
147
|
-
description = "Claude Code's own dynamic workflow, on Claude. Decomposes the request across many agents and adversarially verifies each candidate finding before it survives. Use it on things that have to WORK — functional, adversarial, logic, scenario and stress passes
|
|
116
|
+
description = "Claude Code's own dynamic workflow, on Claude. Decomposes the request across many agents and adversarially verifies each candidate finding before it survives. Use it on things that have to WORK — functional, adversarial, logic, scenario and stress passes; the Codex-side deep exec review above is the single-reader counterpart. Reviews whatever packet you hand it, so it needs no working-tree state. The keyword in the prompt is what opens the workflow: without it the turn is an ordinary session that will answer, plausibly, alone. PRECONDITION this launcher cannot establish: the keyword trigger must be enabled (`workflowKeywordTriggerEnabled`, default true, verified in claude 2.1.220). A resolvable claude CLI proves the command exists, not that the workflow opens — with that setting off the review runs as an ordinary session and would report as though it were orchestrated."
|
|
148
117
|
capability = "ultracode"
|
|
149
118
|
operation = "workflow-review"
|
|
150
119
|
# The keyword is the whole mechanism, so it is stated as a literal rather than left to the
|
|
@@ -167,9 +136,6 @@ severity_map = { blocker = "blocker", high = "high", medium = "medium", low = "l
|
|
|
167
136
|
# the reverse map must be unique so it resolves to exactly one validatable seat.
|
|
168
137
|
provider = "openai"
|
|
169
138
|
models = ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"]
|
|
170
|
-
# onto review seat used when a CROSS-family main (Claude) routes onto review to
|
|
171
|
-
# this (gpt/codex) family; must be an onto review-role registered (provider, model).
|
|
172
|
-
onto_review = { provider = "openai", model = "gpt-5.6-sol" }
|
|
173
139
|
|
|
174
140
|
[hosts.codex.tiers.frontier]
|
|
175
141
|
model = "gpt-5.6-sol"
|
|
@@ -209,9 +175,6 @@ sweep = "${CODEX_HOME}/agents/sweep.toml"
|
|
|
209
175
|
[hosts.claude]
|
|
210
176
|
provider = "anthropic"
|
|
211
177
|
models = ["claude-fable-5", "claude-opus-5", "claude-sonnet-5", "claude-haiku-4-5"]
|
|
212
|
-
# onto review seat used when a CROSS-family main (Codex) routes onto review to
|
|
213
|
-
# this (anthropic/claude) family; must be an onto review-role registered (provider, model).
|
|
214
|
-
onto_review = { provider = "anthropic", model = "claude-fable-5" }
|
|
215
178
|
|
|
216
179
|
[hosts.claude.tiers.frontier]
|
|
217
180
|
model = "claude-fable-5"
|
|
@@ -241,7 +204,7 @@ claude_permission_mode = "bypassPermissions"
|
|
|
241
204
|
|
|
242
205
|
[presets.deep-review]
|
|
243
206
|
label = "Deep review"
|
|
244
|
-
description = "HELM with
|
|
207
|
+
description = "HELM with the base panel plus both deep reviewers — Codex exec at ultra and the Claude workflow — at FRONTIER effort."
|
|
245
208
|
mode = "builder"
|
|
246
209
|
main_tier = "helm"
|
|
247
210
|
frontier_effort = { codex = "ultra", claude = "max" }
|
|
@@ -318,22 +281,15 @@ tier = "helm"
|
|
|
318
281
|
provider = "openai"
|
|
319
282
|
tier = "frontier"
|
|
320
283
|
|
|
321
|
-
[presets.deep-review.review.hosts.claude.methods."
|
|
322
|
-
provider = "openai"
|
|
323
|
-
tier = "frontier"
|
|
324
|
-
|
|
325
|
-
[presets.deep-review.review.hosts.claude.methods."ultracode-for-codex"]
|
|
284
|
+
[presets.deep-review.review.hosts.claude.methods."codex-exec"]
|
|
326
285
|
provider = "openai"
|
|
327
|
-
|
|
286
|
+
model = "gpt-5.6-sol"
|
|
287
|
+
effort = "ultra"
|
|
328
288
|
|
|
329
289
|
[presets.deep-review.review.hosts.codex.base]
|
|
330
290
|
provider = "anthropic"
|
|
331
291
|
tier = "frontier"
|
|
332
292
|
|
|
333
|
-
[presets.deep-review.review.hosts.codex.methods."onto"]
|
|
334
|
-
provider = "anthropic"
|
|
335
|
-
tier = "frontier"
|
|
336
|
-
|
|
337
293
|
[presets.deep-review.review.hosts.codex.methods."ultracode"]
|
|
338
294
|
provider = "anthropic"
|
|
339
295
|
tier = "frontier"
|
|
@@ -350,22 +306,15 @@ tier = "workhorse"
|
|
|
350
306
|
provider = "openai"
|
|
351
307
|
tier = "frontier"
|
|
352
308
|
|
|
353
|
-
[presets.session-distill.review.hosts.claude.methods."
|
|
309
|
+
[presets.session-distill.review.hosts.claude.methods."codex-exec"]
|
|
354
310
|
provider = "openai"
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
[presets.session-distill.review.hosts.claude.methods."ultracode-for-codex"]
|
|
358
|
-
provider = "openai"
|
|
359
|
-
tier = "frontier"
|
|
311
|
+
model = "gpt-5.6-sol"
|
|
312
|
+
effort = "ultra"
|
|
360
313
|
|
|
361
314
|
[presets.session-distill.review.hosts.codex.base]
|
|
362
315
|
provider = "anthropic"
|
|
363
316
|
tier = "frontier"
|
|
364
317
|
|
|
365
|
-
[presets.session-distill.review.hosts.codex.methods."onto"]
|
|
366
|
-
provider = "anthropic"
|
|
367
|
-
tier = "frontier"
|
|
368
|
-
|
|
369
318
|
[presets.session-distill.review.hosts.codex.methods."ultracode"]
|
|
370
319
|
provider = "anthropic"
|
|
371
320
|
tier = "frontier"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# UI text catalog: English, the reference key-set. Every `t("key")` in
|
|
2
|
+
# launch/agent-launch.py must exist here, and ko.toml/ja.toml must carry
|
|
3
|
+
# exactly this key-set — the parity gate holds all three, both directions.
|
|
4
|
+
# Chrome only: launch-contract text is never sourced from a catalog.
|
|
5
|
+
|
|
6
|
+
"mode.title" = "Mode"
|
|
7
|
+
"mode.swe.label" = "Software Engineer"
|
|
8
|
+
"mode.swe.description" = "Repo-scoped work that defers to the project's own AGENTS.md/CLAUDE.md: a bare Vanilla session, or Custom to configure one."
|
|
9
|
+
"mode.builder.label" = "Builder"
|
|
10
|
+
"mode.builder.description" = "Tune tiers, review routes, and permissions across fixed presets; includes Custom."
|
|
11
|
+
"mode.distill.label" = "Session distill"
|
|
12
|
+
"mode.distill.description" = "Enter the dedicated session-distill hub: status, packages, versions, and session start."
|
|
13
|
+
|
|
14
|
+
"language.label" = "Language"
|
|
15
|
+
"language.description" = "Choose the TUI language (English / 한국어 / 日本語). The corpus the AI consumes stays English; this changes the launcher's screens only."
|
|
16
|
+
"language.title" = "Language"
|
|
17
|
+
"language.en.description" = "Show the launcher's screens in English."
|
|
18
|
+
"language.ko.description" = "런처 화면을 한국어로 표시합니다."
|
|
19
|
+
"language.ja.description" = "ランチャーの画面を日本語で表示します。"
|
|
20
|
+
|
|
21
|
+
"corpus.label" = "Corpus packages"
|
|
22
|
+
"corpus.description" = "Choose which corpus domain packages are installed; applying runs the installer's onboard loop (install + activation canary)."
|
|
23
|
+
"corpus.title" = "Corpus packages"
|
|
24
|
+
"corpus.core.line" = "core + infra always install; the checklist covers the optional domain packages."
|
|
25
|
+
"corpus.toggle.description" = "Toggle this domain package. Nothing changes until Apply."
|
|
26
|
+
"corpus.apply.label" = "Apply selection"
|
|
27
|
+
"corpus.apply.description" = "Run agent-bios onboard with exactly the checked set; the installer deploys, canaries, and records the outcome."
|
|
28
|
+
"corpus.apply.unchanged" = "the checked set equals the applied one — nothing to apply"
|
|
29
|
+
"corpus.unavailable.line1" = "The corpus status projection is missing or predates domain reporting."
|
|
30
|
+
"corpus.unavailable.line2" = "Run: agent-bios install (it rewrites the projection this screen reads)"
|
|
31
|
+
"corpus.back.hint" = "Return to the mode menu."
|
|
32
|
+
|
|
33
|
+
"wizard.title" = "Register another reviewer"
|
|
34
|
+
"wizard.id.label" = "Method id (kebab-case)"
|
|
35
|
+
"wizard.label.label" = "Label (shown in the method list)"
|
|
36
|
+
"wizard.description.label" = "Description (what it reviews best)"
|
|
37
|
+
"wizard.drives.title" = "What runs this reviewer?"
|
|
38
|
+
"wizard.drives.tool.label" = "An installed tool"
|
|
39
|
+
"wizard.drives.tool.description" = "The method drives a capability: a command this machine can resolve, with an operation/adapter/hosts offer."
|
|
40
|
+
"wizard.drives.panel.label" = "Fresh host subprocesses (panel-shaped)"
|
|
41
|
+
"wizard.drives.panel.description" = "No tool: isolated passes by the host CLI itself. The reader requires at least 2 distinct perspectives and 2 trials."
|
|
42
|
+
"wizard.cap.name.label" = "Capability name"
|
|
43
|
+
"wizard.cap.command.label" = "Command (resolved on PATH, or ${backend} for the host CLI)"
|
|
44
|
+
"wizard.cap.install.label" = "Install line (runs via agent-bios install --with; '-' for none)"
|
|
45
|
+
"wizard.cap.operation.label" = "Operation (the join key between method and offer)"
|
|
46
|
+
"wizard.cap.adapter.title" = "Adapter (core protocol codec)"
|
|
47
|
+
"wizard.cap.hosts.title" = "Which host seats can this tool fill?"
|
|
48
|
+
"wizard.cap.hosts.both" = "both (codex and claude)"
|
|
49
|
+
"wizard.perspectives.label" = "Perspectives (comma-separated, at least 2)"
|
|
50
|
+
"wizard.trials.label" = "Trials (at least 2)"
|
|
51
|
+
"wizard.instructions.label" = "Instructions (slots: {command} {model} {effort} {provider} {host} {service_tier} {perspectives} {trials} {severities})"
|
|
52
|
+
"wizard.emits.label" = "Severity values YOUR reviewer reports, verbatim (comma-separated)"
|
|
53
|
+
"wizard.map.title" = "Map to the canonical ladder"
|
|
54
|
+
"wizard.confirm.title" = "The reader accepted this block — write it?"
|
|
55
|
+
"wizard.confirm.target" = "Appends to:"
|
|
56
|
+
"wizard.confirm.write.label" = "Write it"
|
|
57
|
+
"wizard.confirm.write.description" = "Append atomically; your file's existing content is untouched."
|
|
58
|
+
"wizard.confirm.edit.label" = "Edit answers again"
|
|
59
|
+
"wizard.refused.title" = "The reader refused this block"
|
|
60
|
+
"wizard.refused.header" = "Validation is the reader's own; its message, verbatim:"
|
|
61
|
+
"wizard.refused.edit.label" = "Edit answers (kept as defaults)"
|
|
62
|
+
"wizard.refused.edit.description" = "Walk the questions again; every answer is pre-filled."
|
|
63
|
+
"wizard.refused.contract.label" = "Show the file contract"
|
|
64
|
+
"wizard.raced.line" = "The methods file changed while the wizard was open; nothing was written. Re-run the registration."
|
|
65
|
+
"wizard.postwrite.line" = "Post-write re-read did not show the method; the file was restored from your shell's perspective — inspect it by hand."
|
|
66
|
+
"wizard.done.line" = "Registered and live in this launcher:"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# UI text catalog: Japanese. Key-set must equal en.toml exactly (gate-enforced).
|
|
2
|
+
|
|
3
|
+
"mode.title" = "モード"
|
|
4
|
+
"mode.swe.label" = "Software Engineer"
|
|
5
|
+
"mode.swe.description" = "プロジェクト自身の AGENTS.md/CLAUDE.md に従うリポジトリ範囲の作業: 素の Vanilla セッション、または Custom で構成します。"
|
|
6
|
+
"mode.builder.label" = "Builder"
|
|
7
|
+
"mode.builder.description" = "固定プリセットで tier・レビュールート・権限を調整します。Custom を含みます。"
|
|
8
|
+
"mode.distill.label" = "Session distill"
|
|
9
|
+
"mode.distill.description" = "専用の session-distill ハブへ: ステータス、パッケージ、バージョン、セッション開始。"
|
|
10
|
+
|
|
11
|
+
"language.label" = "言語"
|
|
12
|
+
"language.description" = "TUI の言語を選択します (English / 한국어 / 日本語)。AI が消費するコーパスは英語のままで、ランチャーの画面だけが変わります。"
|
|
13
|
+
"language.title" = "言語"
|
|
14
|
+
"language.en.description" = "Show the launcher's screens in English."
|
|
15
|
+
"language.ko.description" = "런처 화면을 한국어로 표시합니다."
|
|
16
|
+
"language.ja.description" = "ランチャーの画面を日本語で表示します。"
|
|
17
|
+
|
|
18
|
+
"corpus.label" = "コーパスパッケージ"
|
|
19
|
+
"corpus.description" = "インストールするコーパスのドメインパッケージを選択します。適用するとインストーラーの onboard ループ(インストール + 起動カナリア)が実行されます。"
|
|
20
|
+
"corpus.title" = "コーパスパッケージ"
|
|
21
|
+
"corpus.core.line" = "core + infra は常にインストールされます。このチェックリストは任意のドメインパッケージのみを扱います。"
|
|
22
|
+
"corpus.toggle.description" = "このドメインパッケージを切り替えます。Apply まで何も変わりません。"
|
|
23
|
+
"corpus.apply.label" = "選択を適用"
|
|
24
|
+
"corpus.apply.description" = "チェックされた集合そのままで agent-bios onboard を実行します。デプロイ・カナリア・結果記録はインストーラーが行います。"
|
|
25
|
+
"corpus.apply.unchanged" = "チェックされた集合は適用済みの集合と同じです — 適用するものがありません"
|
|
26
|
+
"corpus.unavailable.line1" = "corpus status projection が存在しないか、ドメイン報告以前のバージョンです。"
|
|
27
|
+
"corpus.unavailable.line2" = "実行: agent-bios install (この画面が読む projection を書き直します)"
|
|
28
|
+
"corpus.back.hint" = "モードメニューに戻ります。"
|
|
29
|
+
|
|
30
|
+
"wizard.title" = "別のレビュアーを登録"
|
|
31
|
+
"wizard.id.label" = "Method id (kebab-case)"
|
|
32
|
+
"wizard.label.label" = "ラベル (method 一覧に表示)"
|
|
33
|
+
"wizard.description.label" = "説明 (何のレビューが得意か)"
|
|
34
|
+
"wizard.drives.title" = "このレビュアーは何が実行しますか?"
|
|
35
|
+
"wizard.drives.tool.label" = "インストール済みのツール"
|
|
36
|
+
"wizard.drives.tool.description" = "method が capability を駆動します: このマシンで解決できる command と operation/adapter/hosts offer。"
|
|
37
|
+
"wizard.drives.panel.label" = "新しい host サブプロセス (panel 型)"
|
|
38
|
+
"wizard.drives.panel.description" = "ツールなし: host CLI 自体の隔離パス。reader は相異なる perspective 2 つ以上と trial 2 回以上を要求します。"
|
|
39
|
+
"wizard.cap.name.label" = "Capability 名"
|
|
40
|
+
"wizard.cap.command.label" = "Command (PATH で解決、host CLI なら ${backend})"
|
|
41
|
+
"wizard.cap.install.label" = "Install 行 (agent-bios install --with が実行; なければ '-')"
|
|
42
|
+
"wizard.cap.operation.label" = "Operation (method と offer を結ぶ join key)"
|
|
43
|
+
"wizard.cap.adapter.title" = "Adapter (core プロトコル codec)"
|
|
44
|
+
"wizard.cap.hosts.title" = "このツールが担える host seat は?"
|
|
45
|
+
"wizard.cap.hosts.both" = "両方 (codex と claude)"
|
|
46
|
+
"wizard.perspectives.label" = "Perspectives (カンマ区切り、2 つ以上)"
|
|
47
|
+
"wizard.trials.label" = "Trials (2 以上)"
|
|
48
|
+
"wizard.instructions.label" = "Instructions (slot: {command} {model} {effort} {provider} {host} {service_tier} {perspectives} {trials} {severities})"
|
|
49
|
+
"wizard.emits.label" = "レビュアーが実際に報告する severity 値、そのまま (カンマ区切り)"
|
|
50
|
+
"wizard.map.title" = "canonical ladder へマッピング"
|
|
51
|
+
"wizard.confirm.title" = "reader がこのブロックを受理しました — 書き込みますか?"
|
|
52
|
+
"wizard.confirm.target" = "追記先:"
|
|
53
|
+
"wizard.confirm.write.label" = "書き込む"
|
|
54
|
+
"wizard.confirm.write.description" = "アトミックに追記します。ファイルの既存内容には触れません。"
|
|
55
|
+
"wizard.confirm.edit.label" = "回答を再編集"
|
|
56
|
+
"wizard.refused.title" = "reader がこのブロックを拒否しました"
|
|
57
|
+
"wizard.refused.header" = "検証は reader のものです。そのメッセージをそのまま:"
|
|
58
|
+
"wizard.refused.edit.label" = "回答を編集 (既定値として保持)"
|
|
59
|
+
"wizard.refused.edit.description" = "質問をやり直します。すべての回答が事前入力されています。"
|
|
60
|
+
"wizard.refused.contract.label" = "ファイル契約を表示"
|
|
61
|
+
"wizard.raced.line" = "ウィザードを開いている間に methods ファイルが変更されました。何も書き込んでいません。登録をやり直してください。"
|
|
62
|
+
"wizard.postwrite.line" = "書き込み後の再読込で method が見つかりません。ファイルを直接確認してください。"
|
|
63
|
+
"wizard.done.line" = "登録完了、このランチャーで即時利用可能:"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# UI text catalog: Korean. Key-set must equal en.toml exactly (gate-enforced).
|
|
2
|
+
|
|
3
|
+
"mode.title" = "모드"
|
|
4
|
+
"mode.swe.label" = "Software Engineer"
|
|
5
|
+
"mode.swe.description" = "프로젝트 자체의 AGENTS.md/CLAUDE.md를 따르는 레포 범위 작업: 순정 Vanilla 세션 또는 Custom으로 직접 구성합니다."
|
|
6
|
+
"mode.builder.label" = "Builder"
|
|
7
|
+
"mode.builder.description" = "고정 프리셋들에서 tier·리뷰 라우트·권한을 조정합니다. Custom 포함."
|
|
8
|
+
"mode.distill.label" = "Session distill"
|
|
9
|
+
"mode.distill.description" = "전용 session-distill 허브로 이동: 상태, 패키지, 버전, 세션 시작."
|
|
10
|
+
|
|
11
|
+
"language.label" = "언어"
|
|
12
|
+
"language.description" = "TUI 언어를 선택합니다 (English / 한국어 / 日本語). AI가 소비하는 코퍼스는 영어 그대로이며, 런처 화면만 바뀝니다."
|
|
13
|
+
"language.title" = "언어"
|
|
14
|
+
"language.en.description" = "Show the launcher's screens in English."
|
|
15
|
+
"language.ko.description" = "런처 화면을 한국어로 표시합니다."
|
|
16
|
+
"language.ja.description" = "ランチャーの画面を日本語で表示します。"
|
|
17
|
+
|
|
18
|
+
"corpus.label" = "코퍼스 패키지"
|
|
19
|
+
"corpus.description" = "설치할 코퍼스 도메인 패키지를 선택합니다. 적용하면 설치기의 onboard 루프(설치 + 활성화 카나리)가 실행됩니다."
|
|
20
|
+
"corpus.title" = "코퍼스 패키지"
|
|
21
|
+
"corpus.core.line" = "core + infra는 항상 설치됩니다. 이 체크리스트는 선택 도메인 패키지만 다룹니다."
|
|
22
|
+
"corpus.toggle.description" = "이 도메인 패키지를 토글합니다. Apply 전까지 아무것도 바뀌지 않습니다."
|
|
23
|
+
"corpus.apply.label" = "선택 적용"
|
|
24
|
+
"corpus.apply.description" = "체크된 집합 그대로 agent-bios onboard를 실행합니다. 배포·카나리·결과 기록은 설치기가 수행합니다."
|
|
25
|
+
"corpus.apply.unchanged" = "체크된 집합이 적용된 집합과 같습니다 — 적용할 것이 없습니다"
|
|
26
|
+
"corpus.unavailable.line1" = "corpus status projection이 없거나 도메인 보고 이전 버전입니다."
|
|
27
|
+
"corpus.unavailable.line2" = "실행: agent-bios install (이 화면이 읽는 projection을 다시 씁니다)"
|
|
28
|
+
"corpus.back.hint" = "모드 메뉴로 돌아갑니다."
|
|
29
|
+
|
|
30
|
+
"wizard.title" = "다른 리뷰어 등록"
|
|
31
|
+
"wizard.id.label" = "Method id (kebab-case)"
|
|
32
|
+
"wizard.label.label" = "라벨 (method 목록에 표시)"
|
|
33
|
+
"wizard.description.label" = "설명 (무엇을 가장 잘 리뷰하는지)"
|
|
34
|
+
"wizard.drives.title" = "이 리뷰어는 무엇이 실행하나요?"
|
|
35
|
+
"wizard.drives.tool.label" = "설치된 도구"
|
|
36
|
+
"wizard.drives.tool.description" = "method가 capability를 구동합니다: 이 머신에서 해석 가능한 command와 operation/adapter/hosts offer."
|
|
37
|
+
"wizard.drives.panel.label" = "새 host 서브프로세스 (panel형)"
|
|
38
|
+
"wizard.drives.panel.description" = "도구 없음: host CLI 자체의 격리 pass. reader가 서로 다른 perspective 2개 이상과 trial 2회 이상을 요구합니다."
|
|
39
|
+
"wizard.cap.name.label" = "Capability 이름"
|
|
40
|
+
"wizard.cap.command.label" = "Command (PATH에서 해석, host CLI면 ${backend})"
|
|
41
|
+
"wizard.cap.install.label" = "Install 라인 (agent-bios install --with가 실행; 없으면 '-')"
|
|
42
|
+
"wizard.cap.operation.label" = "Operation (method와 offer를 잇는 join key)"
|
|
43
|
+
"wizard.cap.adapter.title" = "Adapter (core 프로토콜 codec)"
|
|
44
|
+
"wizard.cap.hosts.title" = "이 도구가 채울 수 있는 host seat는?"
|
|
45
|
+
"wizard.cap.hosts.both" = "둘 다 (codex와 claude)"
|
|
46
|
+
"wizard.perspectives.label" = "Perspectives (쉼표 구분, 2개 이상)"
|
|
47
|
+
"wizard.trials.label" = "Trials (2 이상)"
|
|
48
|
+
"wizard.instructions.label" = "Instructions (slot: {command} {model} {effort} {provider} {host} {service_tier} {perspectives} {trials} {severities})"
|
|
49
|
+
"wizard.emits.label" = "리뷰어가 실제로 보고하는 severity 값들, 그대로 (쉼표 구분)"
|
|
50
|
+
"wizard.map.title" = "canonical ladder로 매핑"
|
|
51
|
+
"wizard.confirm.title" = "reader가 이 블록을 수락했습니다 — 기록할까요?"
|
|
52
|
+
"wizard.confirm.target" = "추가 대상:"
|
|
53
|
+
"wizard.confirm.write.label" = "기록"
|
|
54
|
+
"wizard.confirm.write.description" = "원자적으로 append합니다. 파일의 기존 내용은 건드리지 않습니다."
|
|
55
|
+
"wizard.confirm.edit.label" = "답변 다시 편집"
|
|
56
|
+
"wizard.refused.title" = "reader가 이 블록을 거부했습니다"
|
|
57
|
+
"wizard.refused.header" = "검증은 reader의 것입니다. 그 메시지 그대로:"
|
|
58
|
+
"wizard.refused.edit.label" = "답변 편집 (기본값으로 유지됨)"
|
|
59
|
+
"wizard.refused.edit.description" = "질문을 다시 진행합니다. 모든 답이 미리 채워져 있습니다."
|
|
60
|
+
"wizard.refused.contract.label" = "파일 계약 보기"
|
|
61
|
+
"wizard.raced.line" = "마법사가 열려 있는 동안 methods 파일이 바뀌었습니다. 아무것도 기록하지 않았습니다. 등록을 다시 실행하세요."
|
|
62
|
+
"wizard.postwrite.line" = "기록 후 재확인에서 method가 보이지 않습니다. 파일을 직접 확인하세요."
|
|
63
|
+
"wizard.done.line" = "등록 완료, 이 런처에서 즉시 사용 가능:"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-bios",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"releaseDate": "2026-08-10",
|
|
5
5
|
"description": "A thin, low-level instruction layer for LLM CLI agents: one set of principles and behavior whichever model you run. Deploys into $HOME by copy via an explicit `agent-bios install`.",
|
|
6
6
|
"bin": {
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"codex/agents/",
|
|
18
18
|
"codex/config-additions.toml",
|
|
19
19
|
"launch/agent-launch.toml",
|
|
20
|
+
"launch/i18n",
|
|
20
21
|
"compose/domains.json",
|
|
21
22
|
"learn/learning.schema.json",
|
|
22
23
|
"learn/promotions.json",
|
package/provenance.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit":"
|
|
1
|
+
{"commit":"7726933922b63dc7d3749e6aa971fb395a26cfad","committedAt":"2026-08-10T16:38:38+09:00","dirty":false}
|
package/wrappers/codex-run.sh
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# Purpose: let a caller (e.g. Claude driving Codex CLI) control, per invocation,
|
|
5
5
|
# the three levers that otherwise silently vary by consumer — raw Codex CLI and
|
|
6
6
|
# codex-plugin-cc inherit the real ~/.codex (AGENTS.md + full config.toml), while
|
|
7
|
-
#
|
|
7
|
+
# a hermetic reviewer must see none of it (no AGENTS.md, minimal config). This
|
|
8
8
|
# raw adapter makes that choice explicit instead of implicit. It is not a policy
|
|
9
9
|
# boundary; callers that pass -c are making expert overrides:
|
|
10
10
|
# (1) AGENTS.md / global instructions — via CODEX_HOME (the --profile)
|