@azure-id/orc 0.56.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.
Files changed (162) hide show
  1. package/CHANGELOG.md +219 -0
  2. package/README-id.md +49 -107
  3. package/README.md +694 -719
  4. package/bin/build-agents.js +18 -11
  5. package/bin/cli.js +33699 -29855
  6. package/bin/onboarding-content.js +0 -3
  7. package/bin/test-run.js +491 -0
  8. package/bin/verify-contracts.js +4330 -3277
  9. package/bin/verify-package.js +76 -6
  10. package/bin/webui/api.js +1201 -1163
  11. package/bin/webui/app.html +210 -198
  12. package/bin/webui/css/06-responsive.css +120 -108
  13. package/bin/webui/css/panels/extra.css +29 -0
  14. package/bin/webui/css/panels/lanes.css +134 -0
  15. package/bin/webui/css/panels/settings.css +79 -3
  16. package/bin/webui/css/panels/wait.css +123 -0
  17. package/bin/webui/fixtures/extra.js +2036 -1934
  18. package/bin/webui/fixtures/flow.js +2 -2
  19. package/bin/webui/fixtures/index.js +510 -486
  20. package/bin/webui/fixtures/lanes.js +218 -0
  21. package/bin/webui/fixtures/settings.js +261 -34
  22. package/bin/webui/fixtures/stats.js +3 -3
  23. package/bin/webui/fixtures/wait.js +97 -0
  24. package/bin/webui/i18n/TERMS.md +135 -134
  25. package/bin/webui/i18n/en/extra.json +345 -313
  26. package/bin/webui/i18n/en/lanes.json +29 -0
  27. package/bin/webui/i18n/en/nav.json +21 -19
  28. package/bin/webui/i18n/en/overview.json +2 -0
  29. package/bin/webui/i18n/en/settings.json +16 -5
  30. package/bin/webui/i18n/en/wait.json +41 -0
  31. package/bin/webui/i18n/id/extra.json +345 -313
  32. package/bin/webui/i18n/id/lanes.json +29 -0
  33. package/bin/webui/i18n/id/nav.json +21 -19
  34. package/bin/webui/i18n/id/overview.json +2 -0
  35. package/bin/webui/i18n/id/settings.json +15 -4
  36. package/bin/webui/i18n/id/wait.json +41 -0
  37. package/bin/webui/js/01-i18n.js +151 -149
  38. package/bin/webui/js/panels/extra.js +3199 -3011
  39. package/bin/webui/js/panels/lanes.js +259 -0
  40. package/bin/webui/js/panels/overview.js +10 -0
  41. package/bin/webui/js/panels/settings.js +149 -3
  42. package/bin/webui/js/panels/wait.js +253 -0
  43. package/package.json +39 -39
  44. package/templates/agents/MODEL-MAPPING.md +23 -35
  45. package/templates/agents/orc-executor-opus-4-7-high.md +1 -1
  46. package/templates/agents/orc-executor-opus-4-7-med.md +1 -1
  47. package/templates/agents/orc-executor-opus-4-8-high.md +1 -1
  48. package/templates/agents/orc-executor-opus-5-high.md +1 -1
  49. package/templates/agents/orc-executor-opus-5-low.md +1 -1
  50. package/templates/agents/orc-executor-opus-5-med.md +1 -1
  51. package/templates/agents/orc-retro-opus-5-med.md +73 -73
  52. package/templates/agents/orc-retro-sonnet-5-high.md +72 -72
  53. package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -107
  54. package/templates/commands/orc-route.md +1 -1
  55. package/templates/commands/orc-wait.md +19 -0
  56. package/templates/commands/orc.md +1 -1
  57. package/templates/hooks/orc-statusline.js +39 -0
  58. package/templates/skills/_shared/README.md +7 -3
  59. package/templates/skills/_shared/config-precedence.md +198 -0
  60. package/templates/skills/_shared/drift-recovery.md +1 -1
  61. package/templates/skills/_shared/extra-dispatch.md +159 -7
  62. package/templates/skills/_shared/interview.md +1 -1
  63. package/templates/skills/_shared/opus5-only.md +9 -7
  64. package/templates/skills/_shared/phases/README.md +82 -0
  65. package/templates/skills/{orc/references → _shared/phases}/analyst-gates.md +15 -3
  66. package/templates/skills/_shared/phases/execution.md +143 -0
  67. package/templates/skills/{orc/references → _shared/phases}/house-rules.md +13 -1
  68. package/templates/skills/{orc/references → _shared/phases}/intake.md +15 -2
  69. package/templates/skills/_shared/phases/mock-example.md +56 -0
  70. package/templates/skills/{orc/references → _shared/phases}/plan-handoff.md +16 -3
  71. package/templates/skills/_shared/phases/planning.md +135 -0
  72. package/templates/skills/_shared/phases/preflight.md +98 -0
  73. package/templates/skills/_shared/phases/review.md +53 -0
  74. package/templates/skills/_shared/phases/scoring.md +65 -0
  75. package/templates/skills/{orc/references → _shared/phases}/security-checklist.md +12 -1
  76. package/templates/skills/_shared/phases/security.md +55 -0
  77. package/templates/skills/_shared/phases/ship.md +88 -0
  78. package/templates/skills/{orc/references/stop-and-resume.md → _shared/phases/stop-resume.md} +169 -160
  79. package/templates/skills/_shared/phases/summary.md +48 -0
  80. package/templates/skills/_shared/phases/testgen.md +51 -0
  81. package/templates/skills/{orc/references/trace-protocol.md → _shared/phases/trace.md} +49 -6
  82. package/templates/skills/_shared/phases/verify.md +70 -0
  83. package/templates/skills/{orc/references → _shared/phases}/wave-grouping.md +14 -2
  84. package/templates/skills/{orc/references → _shared/phases}/wiki-consult.md +13 -1
  85. package/templates/skills/_shared/read-ladder.md +48 -0
  86. package/templates/skills/_shared/wait.md +240 -0
  87. package/templates/skills/context-combiner/SKILL.md +214 -187
  88. package/templates/skills/orc/README.md +148 -150
  89. package/templates/skills/orc/SKILL.md +75 -358
  90. package/templates/skills/orc/config.md +137 -389
  91. package/templates/skills/orc/examples/full-run-mock.md +1 -1
  92. package/templates/skills/orc/references/effort-and-mode.md +16 -18
  93. package/templates/skills/orc/references/phases/intake.md +47 -0
  94. package/templates/skills/orc/references/phases/integration.md +19 -0
  95. package/templates/skills/orc/references/preflight-report.md +4 -4
  96. package/templates/skills/orc/references/ultra-mode.md +117 -123
  97. package/templates/skills/orc/schemas/planning-output.md +279 -279
  98. package/templates/skills/orc/subskills/orc-planner/SKILL.md +260 -264
  99. package/templates/skills/orc/subskills/orc-pr/stack-gate.md +4 -1
  100. package/templates/skills/orc-aftermath/SKILL.md +158 -136
  101. package/templates/skills/orc-analyze/SKILL.md +252 -220
  102. package/templates/skills/orc-analyze/references/branching.md +51 -51
  103. package/templates/skills/orc-analyze/references/thin-input.md +1 -1
  104. package/templates/skills/orc-analyze-mini/SKILL.md +128 -112
  105. package/templates/skills/orc-boundary/SKILL.md +249 -208
  106. package/templates/skills/orc-brainstorm/SKILL.md +377 -339
  107. package/templates/skills/orc-budget/SKILL.md +248 -225
  108. package/templates/skills/orc-challenge/README.md +1 -1
  109. package/templates/skills/orc-challenge/SKILL.md +298 -255
  110. package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
  111. package/templates/skills/orc-claude/SKILL.md +221 -199
  112. package/templates/skills/orc-diy/README.md +2 -1
  113. package/templates/skills/orc-diy/SKILL.md +132 -68
  114. package/templates/skills/orc-diy/references/blocks/analyze.md +1 -1
  115. package/templates/skills/orc-diy/references/compile.md +21 -7
  116. package/templates/skills/orc-diy/references/flow-schema.md +2 -2
  117. package/templates/skills/orc-doc/SKILL.md +49 -7
  118. package/templates/skills/orc-explain/SKILL.md +24 -0
  119. package/templates/skills/orc-export/SKILL.md +31 -5
  120. package/templates/skills/orc-fast/SKILL.md +218 -185
  121. package/templates/skills/orc-grill/SKILL.md +238 -207
  122. package/templates/skills/orc-handoff/SKILL.md +223 -204
  123. package/templates/skills/orc-learn/SKILL.md +181 -156
  124. package/templates/skills/orc-mini/SKILL.md +47 -24
  125. package/templates/skills/orc-pact/SKILL.md +255 -218
  126. package/templates/skills/orc-pattern/SKILL.md +154 -124
  127. package/templates/skills/orc-poly/SKILL.md +242 -216
  128. package/templates/skills/orc-poly/references/gather.md +1 -1
  129. package/templates/skills/orc-pr-driver/SKILL.md +196 -167
  130. package/templates/skills/orc-pr-driver/references/orc-run-split.md +1 -1
  131. package/templates/skills/orc-pr-setup/SKILL.md +212 -184
  132. package/templates/skills/orc-quick/README.md +2 -2
  133. package/templates/skills/orc-quick/SKILL.md +51 -13
  134. package/templates/skills/orc-quick/references/dispatch-gate.md +2 -3
  135. package/templates/skills/orc-retro/SKILL.md +249 -222
  136. package/templates/skills/orc-retro/examples/retro-mock.md +171 -171
  137. package/templates/skills/orc-route/SKILL.md +188 -165
  138. package/templates/skills/orc-verify/SKILL.md +103 -84
  139. package/templates/skills/orc-wait/SKILL.md +163 -0
  140. package/templates/skills/orc-wiki/SKILL.md +60 -206
  141. package/templates/skills/orc-wiki/references/phases/phase-0.md +71 -0
  142. package/templates/skills/orc-wiki/references/phases/phase-1.md +35 -0
  143. package/templates/skills/orc-wiki/references/phases/phase-2.md +52 -0
  144. package/templates/skills/orc-wiki/references/phases/phase-3.md +57 -0
  145. package/templates/skills/orc-wiki/references/phases/phase-3c.md +36 -0
  146. package/templates/agents/orc-advisor-fable-5.md +0 -50
  147. package/templates/agents/orc-analyst-fable-5.md +0 -115
  148. package/templates/agents/orc-judge-fable-5.md +0 -79
  149. package/templates/agents/orc-planner-fable-5.md +0 -152
  150. package/templates/agents/orc-reviewer-fable-5.md +0 -57
  151. package/templates/skills/_shared/fable5-override.md +0 -56
  152. package/templates/skills/orc-diy/references/blocks/execution.md +0 -42
  153. package/templates/skills/orc-diy/references/blocks/mock-example.md +0 -22
  154. package/templates/skills/orc-diy/references/blocks/planning.md +0 -34
  155. package/templates/skills/orc-diy/references/blocks/review.md +0 -18
  156. package/templates/skills/orc-diy/references/blocks/scoring.md +0 -16
  157. package/templates/skills/orc-diy/references/blocks/security.md +0 -25
  158. package/templates/skills/orc-diy/references/blocks/ship.md +0 -25
  159. package/templates/skills/orc-diy/references/blocks/summary.md +0 -18
  160. package/templates/skills/orc-diy/references/blocks/testgen.md +0 -17
  161. package/templates/skills/orc-diy/references/blocks/trace.md +0 -28
  162. package/templates/skills/orc-diy/references/blocks/verify.md +0 -25
@@ -0,0 +1,29 @@
1
+ {
2
+ "lanes.calls.calledBy": "Called by:",
3
+ "lanes.calls.canonical": "Canonical text",
4
+ "lanes.calls.exits": "Exit codes:",
5
+ "lanes.calls.lanes": "{n} lane",
6
+ "lanes.calls.lanesPlural": "{n} lanes",
7
+ "lanes.calls.never": "Never",
8
+ "lanes.calls.none": "No calls catalogued.",
9
+ "lanes.calls.note": "Every CLI call a lane is allowed to make. Open a row for the exit codes, the cost, and what a lane must do when the answer is empty.",
10
+ "lanes.calls.onAbsent": "If the answer is empty",
11
+ "lanes.calls.states": "States:",
12
+ "lanes.calls.title": "The call catalogue ({n})",
13
+ "lanes.calls.what": "What it answers",
14
+ "lanes.calls.when": "When to call it",
15
+ "lanes.none": "No lanes — the CLI reported an empty registry.",
16
+ "lanes.phases.calls": "Calls:",
17
+ "lanes.phases.foot": "Read-only. The order, the files and the layers all come from the CLI — this page adds no copy of them.",
18
+ "lanes.phases.inSpine": "This lane keeps its pipeline in its own spine, so it runs no shared phase. That is a fact about the lane, not a failed read.",
19
+ "lanes.phases.title": "Phases, in the order they run",
20
+ "lanes.phases.trace": "Trace:",
21
+ "lanes.phases.unknown": "The CLI does not know that lane.",
22
+ "lanes.picker.aria": "Lane to show phases for",
23
+ "lanes.picker.note": "Every lane ORC ships, with the command that opens it. A lane with no command is one that something else dispatches.",
24
+ "lanes.picker.title": "Pick a lane",
25
+ "lanes.sub": "What each lane runs: the shared phases it reads, in order, and the CLI calls it makes.",
26
+ "lanes.tab.calls": "Calls",
27
+ "lanes.tab.phases": "Phases",
28
+ "lanes.title": "Lanes"
29
+ }
@@ -1,19 +1,21 @@
1
- {
2
- "nav.overview": "Overview",
3
- "nav.settings": "Settings",
4
- "nav.runs": "Runs",
5
- "nav.knowledge": "Knowledge",
6
- "nav.stats": "Stats",
7
- "nav.flow": "Flow",
8
- "nav.crosslink": "Crosslink",
9
- "nav.learn": "Learn",
10
- "nav.mockrun": "Mocked Skill Use",
11
- "nav.experiment": "Experiment",
12
- "nav.maintenance": "Maintenance",
13
- "nav.pact": "Promises",
14
- "nav.boundary": "Boundary",
15
- "nav.handoff": "Self-serve",
16
- "nav.challenge": "Challenge",
17
- "nav.extra": "Extra",
18
- "nav.docs": "Docs"
19
- }
1
+ {
2
+ "nav.overview": "Overview",
3
+ "nav.settings": "Settings",
4
+ "nav.lanes": "Lanes",
5
+ "nav.runs": "Runs",
6
+ "nav.knowledge": "Knowledge",
7
+ "nav.stats": "Stats",
8
+ "nav.flow": "Flow",
9
+ "nav.crosslink": "Crosslink",
10
+ "nav.learn": "Learn",
11
+ "nav.mockrun": "Mocked Skill Use",
12
+ "nav.experiment": "Experiment",
13
+ "nav.maintenance": "Maintenance",
14
+ "nav.pact": "Promises",
15
+ "nav.boundary": "Boundary",
16
+ "nav.handoff": "Self-serve",
17
+ "nav.challenge": "Challenge",
18
+ "nav.extra": "Extra",
19
+ "nav.wait": "Wait",
20
+ "nav.docs": "Docs"
21
+ }
@@ -81,6 +81,8 @@
81
81
  "overview.item.wikiDebt.cta": "Open Knowledge",
82
82
  "overview.item.extraFindings.cta": "Open Extra",
83
83
  "overview.item.legacyGlobalPackage.cta": "Open Maintenance",
84
+ "overview.item.extraDemotedRun.cta": "Open Extra",
85
+ "overview.item.laneKeysDrifted.cta": "Open Maintenance",
84
86
  "overview.extraOrphan.title": "A dispatch did not report back",
85
87
  "overview.extraOrphan.note": "ORC sent work to a non-Claude worker and never heard the result. Its changes may still be on disk.",
86
88
  "overview.extraOrphan.chip": "{n} dispatch",
@@ -23,10 +23,8 @@
23
23
  "settings.file.absent": "not created yet (every key is at its default)",
24
24
  "settings.file.traceNote": "Behavior-trace logging is permanently ON and is not configurable. Every run writes a trace; only its folder (log_dir) is a setting.",
25
25
  "settings.tier.common": "Common",
26
- "settings.tier.fable5": "Fable 5 role override",
27
26
  "settings.tier.advanced": "Advanced",
28
27
  "settings.tierDesc.common": "The keys most runs actually touch. If you change one thing, it is probably here.",
29
- "settings.tierDesc.fable5": "Per-role Fable 5 overrides. The whole block goes inert while opus5_only is on — that is the precedence rule, not a bug.",
30
28
  "settings.tierDesc.advanced": "Everything else ORC knows. The defaults are deliberate; change one when you have a reason for it.",
31
29
  "settings.inert": "inert",
32
30
  "settings.shadowed": "shadowed",
@@ -34,9 +32,9 @@
34
32
  "settings.handEdited.note": "These are not in the config registry, so `orc config set` refuses them and this panel will not write them. rubric_bands_override is the designed case: it is hand-written by intent. Edit the YAML file directly.",
35
33
  "settings.handEdited.readonly": "read-only here — hand-edit orc.config.yaml",
36
34
  "settings.ladder.title": "Score → model ladder",
37
- "settings.ladder.opus5": "opus5_only is ON — executors use the fixed 3-band effort ladder. It outranks the default table, rubric_bands_override, and the whole fable5_* block.",
35
+ "settings.ladder.opus5": "opus5_only is ON — executors use the fixed 2-band effort ladder. It outranks the default table and rubric_bands_override.",
38
36
  "settings.ladder.override": "A hand-written rubric_bands_override is in the file. It replaces the default table (and is itself outranked by opus5_only).",
39
- "settings.ladder.default": "The default 8-band table. Tables resolve highest-wins: opus5_only > rubric_bands_override > this one.",
37
+ "settings.ladder.default": "The default 6-band table. Tables resolve highest-wins: opus5_only > rubric_bands_override > this one.",
40
38
  "settings.ladder.note": "Read-only — a diagram, not an editor. This comes from the CLI's own table, so the panel adds no extra copy of it.",
41
39
  "profiles.title": "Config profiles",
42
40
  "profiles.note": "A profile writes only existing, validated keys — nothing it sets is something you could not set yourself.",
@@ -45,5 +43,18 @@
45
43
  "profiles.noChange": "this repo is already on that profile — nothing would change",
46
44
  "recommend.title": "Recommended profile",
47
45
  "recommend.note": "Read-only: this looked at the repo and suggests one profile. Nothing was changed.",
48
- "recommend.applyIt": "Apply {name}"
46
+ "recommend.applyIt": "Apply {name}",
47
+ "settings.retired.title": "Retired settings",
48
+ "settings.retired.note": "These keys were removed from ORC. The lines are still in your config file. ORC does not read them and does not change them. You can delete the lines when you want.",
49
+ "settings.retired.badge": "not read",
50
+ "settings.retired.readonly": "Removed. ORC no longer reads this key.",
51
+ "settings.retired.removedIn": "Removed in v",
52
+ "settings.ranks.title": "Who decides what",
53
+ "settings.ranks.note": "Some settings answer the same question. Read a family top-down and stop at the first rank that resolves. This is what your config file did, not what it could do.",
54
+ "settings.ranks.none": "No contested families — every setting here answers a question of its own.",
55
+ "settings.ranks.answeredBy": "Answered at {prio} by {key}.",
56
+ "settings.ranks.answeredByDefault": "Answered at {prio} by the shipped default — nothing above it resolved.",
57
+ "settings.ranks.legend": "States:",
58
+ "settings.lanes.label": "Read by:",
59
+ "settings.lanes.none": "no lane — the orc extra bridge reads it"
49
60
  }
@@ -0,0 +1,41 @@
1
+ {
2
+ "wait.title": "Wait",
3
+ "wait.sub": "How full your usage windows are, and the wait that answers it. A wait costs no tokens - a detached command does it, and no model runs.",
4
+ "wait.window": "Your windows",
5
+ "wait.worst": "worst: {w}",
6
+ "wait.age": "read 1 minute ago",
7
+ "wait.agePlural": "read {n} minutes ago",
8
+ "wait.left": "{n}% left",
9
+ "wait.resets": "resets in {t}",
10
+ "wait.context": "This conversation uses {n}% of its context.",
11
+ "wait.contextUnknown": "Context use: not measured.",
12
+ "wait.contextLarge": "The context is large. After a wait of more than one hour, start a new session and run `orc resume` - it costs less than continuing here.",
13
+ "wait.gateOff": "usage_gate is off, so ORC never stops a run for you. Nothing here happens until you turn it on.",
14
+ "wait.gateOn": "usage_gate is `{gate}`. A wave needs {pct}% of a window to remain before it starts.",
15
+ "wait.run": "This run",
16
+ "wait.noRun": "No run is in flight",
17
+ "wait.noRunHint": "A wait belongs to a run. With no run, `/orc-wait` simply waits, and there is nothing to hand back.",
18
+ "wait.startWhy": "The panel cannot start a wait. A wait lives in your Claude Code session, and this panel never runs a lane.",
19
+ "wait.waiting": "waiting",
20
+ "wait.blocked": "blocked",
21
+ "wait.idle": "no wait",
22
+ "wait.hops": "Mode `{mode}` - hop {done} of {planned}, ends {ends}.",
23
+ "wait.zeroTokens": "A detached command does the waiting. No model runs, and no tokens are spent.",
24
+ "wait.cancel": "Stop waiting",
25
+ "wait.cancelWhy": "The wait ends at the next hop. The hand-back is already on disk, so nothing is lost either way.",
26
+ "wait.cancelPending": "A stop is pending. The wait ends at the next hop.",
27
+ "wait.blockHead": "You blocked the gate",
28
+ "wait.blockAge": "Set 1 minute ago.",
29
+ "wait.blockAgePlural": "Set {n} minutes ago.",
30
+ "wait.blockRisk": "ORC does not stop this run. The risk is yours: if a window empties during a wave, the wave stops in the middle. A wait you type yourself still runs.",
31
+ "wait.unblock": "Restore the gate",
32
+ "wait.unblockWhy": "ORC can stop this run again when a window is nearly full.",
33
+ "wait.blockWhy": "To block the gate, type this in Claude Code. A block needs a reason, and a reason must be written at the moment you decide - that record is what makes the risk yours.",
34
+ "wait.lanes": "Which lanes support a wait",
35
+ "wait.lanesWhy": "Each lane saves different work before it stops. `full` writes a checkpoint; `none` has nothing to write, because the lane is one dispatch or a read.",
36
+ "wait.settings": "Settings",
37
+ "wait.settingsWhy": "These keys are edited on the Settings page, with every other key. Two editors for one key is one editor too many.",
38
+ "wait.openSettings": "Open Settings",
39
+ "wait.done": "Done",
40
+ "wait.failed": "That did not work"
41
+ }