@azure-id/orc 0.55.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 (449) hide show
  1. package/CHANGELOG.md +2017 -0
  2. package/README-id.md +521 -0
  3. package/README.md +485 -0
  4. package/bin/build-agents.js +86 -0
  5. package/bin/cli.js +29050 -0
  6. package/bin/mockrun-catalog.js +267 -0
  7. package/bin/onboarding-content.js +172 -0
  8. package/bin/pricing.json +200 -0
  9. package/bin/providers.json +437 -0
  10. package/bin/ui.js +95 -0
  11. package/bin/verify-contracts.js +3277 -0
  12. package/bin/verify-package.js +498 -0
  13. package/bin/webui/api.js +1163 -0
  14. package/bin/webui/app.html +198 -0
  15. package/bin/webui/css/00-tokens.css +92 -0
  16. package/bin/webui/css/01-base.css +42 -0
  17. package/bin/webui/css/02-shell.css +103 -0
  18. package/bin/webui/css/03-components.css +462 -0
  19. package/bin/webui/css/04-motion.css +91 -0
  20. package/bin/webui/css/05-tour.css +100 -0
  21. package/bin/webui/css/06-responsive.css +108 -0
  22. package/bin/webui/css/panels/boundary.css +26 -0
  23. package/bin/webui/css/panels/challenge.css +151 -0
  24. package/bin/webui/css/panels/crosslink.css +194 -0
  25. package/bin/webui/css/panels/docs.css +254 -0
  26. package/bin/webui/css/panels/experiment.css +23 -0
  27. package/bin/webui/css/panels/extra.css +536 -0
  28. package/bin/webui/css/panels/flow.css +177 -0
  29. package/bin/webui/css/panels/handoff.css +67 -0
  30. package/bin/webui/css/panels/knowledge.css +86 -0
  31. package/bin/webui/css/panels/learn.css +154 -0
  32. package/bin/webui/css/panels/maintenance.css +55 -0
  33. package/bin/webui/css/panels/mockrun.css +268 -0
  34. package/bin/webui/css/panels/overview.css +100 -0
  35. package/bin/webui/css/panels/pact.css +43 -0
  36. package/bin/webui/css/panels/runs.css +105 -0
  37. package/bin/webui/css/panels/settings.css +227 -0
  38. package/bin/webui/css/panels/stats.css +87 -0
  39. package/bin/webui/fixtures/boundary.js +92 -0
  40. package/bin/webui/fixtures/challenge.js +825 -0
  41. package/bin/webui/fixtures/crosslink.js +31 -0
  42. package/bin/webui/fixtures/docs.js +982 -0
  43. package/bin/webui/fixtures/extra.js +1934 -0
  44. package/bin/webui/fixtures/flow.js +81 -0
  45. package/bin/webui/fixtures/handoff.js +35 -0
  46. package/bin/webui/fixtures/index.js +486 -0
  47. package/bin/webui/fixtures/knowledge.js +291 -0
  48. package/bin/webui/fixtures/maintenance.js +42 -0
  49. package/bin/webui/fixtures/mockrun.js +36 -0
  50. package/bin/webui/fixtures/pact.js +111 -0
  51. package/bin/webui/fixtures/runs.js +109 -0
  52. package/bin/webui/fixtures/settings.js +78 -0
  53. package/bin/webui/fixtures/shell.js +48 -0
  54. package/bin/webui/fixtures/stats.js +104 -0
  55. package/bin/webui/i18n/TERMS.md +134 -0
  56. package/bin/webui/i18n/en/banner.json +29 -0
  57. package/bin/webui/i18n/en/boundary.json +20 -0
  58. package/bin/webui/i18n/en/challenge.json +106 -0
  59. package/bin/webui/i18n/en/common.json +69 -0
  60. package/bin/webui/i18n/en/crosslink.json +69 -0
  61. package/bin/webui/i18n/en/docs.json +175 -0
  62. package/bin/webui/i18n/en/experiment.json +17 -0
  63. package/bin/webui/i18n/en/extra.json +313 -0
  64. package/bin/webui/i18n/en/flow.json +30 -0
  65. package/bin/webui/i18n/en/handoff.json +37 -0
  66. package/bin/webui/i18n/en/knowledge.json +141 -0
  67. package/bin/webui/i18n/en/learn.json +16 -0
  68. package/bin/webui/i18n/en/maintenance.json +52 -0
  69. package/bin/webui/i18n/en/mockrun.json +19 -0
  70. package/bin/webui/i18n/en/nav.json +19 -0
  71. package/bin/webui/i18n/en/overview.json +89 -0
  72. package/bin/webui/i18n/en/pact.json +36 -0
  73. package/bin/webui/i18n/en/runs.json +51 -0
  74. package/bin/webui/i18n/en/settings.json +49 -0
  75. package/bin/webui/i18n/en/stats.json +69 -0
  76. package/bin/webui/i18n/en/tour.json +33 -0
  77. package/bin/webui/i18n/id/banner.json +29 -0
  78. package/bin/webui/i18n/id/boundary.json +20 -0
  79. package/bin/webui/i18n/id/challenge.json +106 -0
  80. package/bin/webui/i18n/id/common.json +70 -0
  81. package/bin/webui/i18n/id/crosslink.json +69 -0
  82. package/bin/webui/i18n/id/docs.json +175 -0
  83. package/bin/webui/i18n/id/experiment.json +17 -0
  84. package/bin/webui/i18n/id/extra.json +313 -0
  85. package/bin/webui/i18n/id/flow.json +30 -0
  86. package/bin/webui/i18n/id/handoff.json +37 -0
  87. package/bin/webui/i18n/id/knowledge.json +141 -0
  88. package/bin/webui/i18n/id/learn.json +16 -0
  89. package/bin/webui/i18n/id/maintenance.json +52 -0
  90. package/bin/webui/i18n/id/mockrun.json +19 -0
  91. package/bin/webui/i18n/id/nav.json +19 -0
  92. package/bin/webui/i18n/id/overview.json +89 -0
  93. package/bin/webui/i18n/id/pact.json +36 -0
  94. package/bin/webui/i18n/id/runs.json +51 -0
  95. package/bin/webui/i18n/id/settings.json +49 -0
  96. package/bin/webui/i18n/id/stats.json +69 -0
  97. package/bin/webui/i18n/id/tour.json +33 -0
  98. package/bin/webui/js/00-core.js +115 -0
  99. package/bin/webui/js/01-i18n.js +149 -0
  100. package/bin/webui/js/02-ui.js +211 -0
  101. package/bin/webui/js/03-md.js +286 -0
  102. package/bin/webui/js/04-router.js +51 -0
  103. package/bin/webui/js/05-banners.js +172 -0
  104. package/bin/webui/js/06-edit.js +183 -0
  105. package/bin/webui/js/90-tour.js +488 -0
  106. package/bin/webui/js/91-shortcuts.js +126 -0
  107. package/bin/webui/js/99-boot.js +118 -0
  108. package/bin/webui/js/panels/boundary.js +104 -0
  109. package/bin/webui/js/panels/challenge.js +781 -0
  110. package/bin/webui/js/panels/crosslink.js +654 -0
  111. package/bin/webui/js/panels/docs.js +1338 -0
  112. package/bin/webui/js/panels/experiment.js +98 -0
  113. package/bin/webui/js/panels/extra.js +3011 -0
  114. package/bin/webui/js/panels/flow.js +297 -0
  115. package/bin/webui/js/panels/handoff.js +169 -0
  116. package/bin/webui/js/panels/knowledge.js +890 -0
  117. package/bin/webui/js/panels/learn.js +220 -0
  118. package/bin/webui/js/panels/maintenance.js +235 -0
  119. package/bin/webui/js/panels/mockrun.js +227 -0
  120. package/bin/webui/js/panels/overview.js +447 -0
  121. package/bin/webui/js/panels/pact.js +189 -0
  122. package/bin/webui/js/panels/runs.js +416 -0
  123. package/bin/webui/js/panels/settings.js +573 -0
  124. package/bin/webui/js/panels/stats.js +378 -0
  125. package/bin/webui/serve.js +557 -0
  126. package/mock-run/INDEX.md +106 -0
  127. package/mock-run/a-normal-day.md +587 -0
  128. package/mock-run/context-combiner.md +100 -0
  129. package/mock-run/extra-recovery.md +330 -0
  130. package/mock-run/extra-slots.md +177 -0
  131. package/mock-run/media/README.md +43 -0
  132. package/mock-run/orc-aftermath.md +392 -0
  133. package/mock-run/orc-boundary.md +356 -0
  134. package/mock-run/orc-brainstorm.md +177 -0
  135. package/mock-run/orc-budget.md +534 -0
  136. package/mock-run/orc-challenge-council.md +262 -0
  137. package/mock-run/orc-challenge.md +416 -0
  138. package/mock-run/orc-cli.md +200 -0
  139. package/mock-run/orc-diy.md +129 -0
  140. package/mock-run/orc-doc.md +448 -0
  141. package/mock-run/orc-explain.md +86 -0
  142. package/mock-run/orc-export.md +423 -0
  143. package/mock-run/orc-extra.md +392 -0
  144. package/mock-run/orc-fast.md +106 -0
  145. package/mock-run/orc-grill.md +151 -0
  146. package/mock-run/orc-handoff.md +480 -0
  147. package/mock-run/orc-pact.md +421 -0
  148. package/mock-run/orc-pattern.md +112 -0
  149. package/mock-run/orc-plan.md +108 -0
  150. package/mock-run/orc-pr-setup.md +126 -0
  151. package/mock-run/orc-quick.md +113 -0
  152. package/mock-run/orc-route.md +93 -0
  153. package/mock-run/orc-ui.md +125 -0
  154. package/mock-run/orc-ultra.md +103 -0
  155. package/mock-run/orc.md +157 -0
  156. package/mock-run/the-example-project.md +55 -0
  157. package/package.json +39 -0
  158. package/templates/agents/MODEL-MAPPING.md +168 -0
  159. package/templates/agents/orc-advisor-fable-5.md +50 -0
  160. package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -0
  161. package/templates/agents/orc-analyst-fable-5.md +115 -0
  162. package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -0
  163. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -0
  164. package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -0
  165. package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -0
  166. package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -0
  167. package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -0
  168. package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -0
  169. package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -0
  170. package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -0
  171. package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -0
  172. package/templates/agents/orc-claude-writer-opus-4-8-high.md +53 -0
  173. package/templates/agents/orc-claude-writer-opus-5-med.md +55 -0
  174. package/templates/agents/orc-context-combiner-opus-5-high.md +88 -0
  175. package/templates/agents/orc-doc-checker-opus-5-low.md +108 -0
  176. package/templates/agents/orc-doc-writer-opus-5-med.md +134 -0
  177. package/templates/agents/orc-executor-haiku-4-5.md +113 -0
  178. package/templates/agents/orc-executor-opus-4-7-high.md +114 -0
  179. package/templates/agents/orc-executor-opus-4-7-med.md +114 -0
  180. package/templates/agents/orc-executor-opus-4-8-high.md +114 -0
  181. package/templates/agents/orc-executor-opus-5-high.md +114 -0
  182. package/templates/agents/orc-executor-opus-5-low.md +114 -0
  183. package/templates/agents/orc-executor-opus-5-med.md +114 -0
  184. package/templates/agents/orc-executor-sonnet-4-6-high.md +114 -0
  185. package/templates/agents/orc-executor-sonnet-4-6-med.md +114 -0
  186. package/templates/agents/orc-executor-sonnet-5-high.md +114 -0
  187. package/templates/agents/orc-judge-fable-5.md +79 -0
  188. package/templates/agents/orc-judge-opus-5-xhigh.md +85 -0
  189. package/templates/agents/orc-learn-writer-opus-5-low.md +73 -0
  190. package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -0
  191. package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +63 -0
  192. package/templates/agents/orc-planner-fable-5.md +152 -0
  193. package/templates/agents/orc-planner-mini-opus-5-med.md +69 -0
  194. package/templates/agents/orc-planner-mini-sonnet-5-high.md +67 -0
  195. package/templates/agents/orc-planner-opus-5-med.md +160 -0
  196. package/templates/agents/orc-retro-opus-5-med.md +73 -0
  197. package/templates/agents/orc-retro-sonnet-5-high.md +72 -0
  198. package/templates/agents/orc-reviewer-fable-5.md +57 -0
  199. package/templates/agents/orc-reviewer-opus-5-med.md +60 -0
  200. package/templates/agents/orc-scout-opus-5-low.md +40 -0
  201. package/templates/agents/orc-scout-sonnet-4-6-high.md +39 -0
  202. package/templates/agents/orc-system-analyst-opus-5-high.md +120 -0
  203. package/templates/agents/orc-test-author-opus-5-med.md +71 -0
  204. package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -0
  205. package/templates/agents/orc-verifier-opus-5-med.md +69 -0
  206. package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +79 -0
  207. package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -0
  208. package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +106 -0
  209. package/templates/commands/orc-aftermath.md +49 -0
  210. package/templates/commands/orc-analyze.md +21 -0
  211. package/templates/commands/orc-boundary.md +46 -0
  212. package/templates/commands/orc-brainstorm.md +51 -0
  213. package/templates/commands/orc-budget.md +54 -0
  214. package/templates/commands/orc-challenge.md +58 -0
  215. package/templates/commands/orc-claude.md +14 -0
  216. package/templates/commands/orc-diy.md +13 -0
  217. package/templates/commands/orc-doc.md +128 -0
  218. package/templates/commands/orc-explain.md +20 -0
  219. package/templates/commands/orc-export.md +46 -0
  220. package/templates/commands/orc-fast.md +15 -0
  221. package/templates/commands/orc-grill.md +40 -0
  222. package/templates/commands/orc-handoff.md +52 -0
  223. package/templates/commands/orc-learn.md +17 -0
  224. package/templates/commands/orc-mini.md +12 -0
  225. package/templates/commands/orc-pact.md +44 -0
  226. package/templates/commands/orc-pattern.md +15 -0
  227. package/templates/commands/orc-plan.md +22 -0
  228. package/templates/commands/orc-poly.md +21 -0
  229. package/templates/commands/orc-pr-driver.md +30 -0
  230. package/templates/commands/orc-pr-setup.md +31 -0
  231. package/templates/commands/orc-quick.md +33 -0
  232. package/templates/commands/orc-retro.md +17 -0
  233. package/templates/commands/orc-route.md +41 -0
  234. package/templates/commands/orc-ultra.md +17 -0
  235. package/templates/commands/orc-verify.md +11 -0
  236. package/templates/commands/orc-wiki.md +42 -0
  237. package/templates/commands/orc.md +16 -0
  238. package/templates/hooks/orc-effort-guard.js +178 -0
  239. package/templates/hooks/orc-statusline.js +305 -0
  240. package/templates/hooks/orc-trace.js +471 -0
  241. package/templates/hooks/orc-update-lib.js +125 -0
  242. package/templates/skills/_shared/README.md +50 -0
  243. package/templates/skills/_shared/detecting-artifacts.md +90 -0
  244. package/templates/skills/_shared/drift-recovery.md +98 -0
  245. package/templates/skills/_shared/extra-dispatch.md +1051 -0
  246. package/templates/skills/_shared/fable5-override.md +56 -0
  247. package/templates/skills/_shared/fallback-handoff.md +42 -0
  248. package/templates/skills/_shared/gh-stack-commands.md +65 -0
  249. package/templates/skills/_shared/gotchas.md +177 -0
  250. package/templates/skills/_shared/interview.md +144 -0
  251. package/templates/skills/_shared/lane-suspend.md +82 -0
  252. package/templates/skills/_shared/opus5-only.md +131 -0
  253. package/templates/skills/_shared/pr-templates.md +106 -0
  254. package/templates/skills/_shared/read-ladder.md +54 -0
  255. package/templates/skills/_shared/return-validation.md +145 -0
  256. package/templates/skills/_shared/smoke-gate.md +28 -0
  257. package/templates/skills/_shared/stack-plan.md +135 -0
  258. package/templates/skills/_shared/untrusted-input.md +63 -0
  259. package/templates/skills/context-combiner/SKILL.md +187 -0
  260. package/templates/skills/context-combiner/schemas/combined-report.md +78 -0
  261. package/templates/skills/context-combiner/schemas/combined-requirement-spec.md +87 -0
  262. package/templates/skills/orc/README.md +150 -0
  263. package/templates/skills/orc/SKILL.md +526 -0
  264. package/templates/skills/orc/config.md +389 -0
  265. package/templates/skills/orc/examples/full-run-mock.md +73 -0
  266. package/templates/skills/orc/references/analyst-gates.md +124 -0
  267. package/templates/skills/orc/references/effort-and-mode.md +224 -0
  268. package/templates/skills/orc/references/house-rules.md +20 -0
  269. package/templates/skills/orc/references/intake.md +120 -0
  270. package/templates/skills/orc/references/log-protocol.md +39 -0
  271. package/templates/skills/orc/references/pattern-gate.md +89 -0
  272. package/templates/skills/orc/references/plan-handoff.md +84 -0
  273. package/templates/skills/orc/references/preflight-report.md +220 -0
  274. package/templates/skills/orc/references/security-checklist.md +39 -0
  275. package/templates/skills/orc/references/stop-and-resume.md +160 -0
  276. package/templates/skills/orc/references/trace-protocol.md +314 -0
  277. package/templates/skills/orc/references/ultra-mode.md +123 -0
  278. package/templates/skills/orc/references/wave-grouping.md +121 -0
  279. package/templates/skills/orc/references/wiki-consult.md +177 -0
  280. package/templates/skills/orc/schemas/checkpoint.md +122 -0
  281. package/templates/skills/orc/schemas/intent-spec.md +42 -0
  282. package/templates/skills/orc/schemas/planning-output.md +279 -0
  283. package/templates/skills/orc/subskills/orc-checkpoint/SKILL.md +55 -0
  284. package/templates/skills/orc/subskills/orc-execution/SKILL.md +72 -0
  285. package/templates/skills/orc/subskills/orc-execution/core.md +151 -0
  286. package/templates/skills/orc/subskills/orc-execution/subagent.md +13 -0
  287. package/templates/skills/orc/subskills/orc-planner/SKILL.md +264 -0
  288. package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -0
  289. package/templates/skills/orc/subskills/orc-pr/SKILL.md +51 -0
  290. package/templates/skills/orc/subskills/orc-pr/pr.md +22 -0
  291. package/templates/skills/orc/subskills/orc-pr/stack-gate.md +108 -0
  292. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -0
  293. package/templates/skills/orc/subskills/orc-review-verify/core.md +135 -0
  294. package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -0
  295. package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -0
  296. package/templates/skills/orc/subskills/orc-testgen/core.md +59 -0
  297. package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -0
  298. package/templates/skills/orc-advisor/SKILL.md +60 -0
  299. package/templates/skills/orc-aftermath/SKILL.md +136 -0
  300. package/templates/skills/orc-aftermath/references/report.md +95 -0
  301. package/templates/skills/orc-analyze/SKILL.md +220 -0
  302. package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -0
  303. package/templates/skills/orc-analyze/references/branching.md +51 -0
  304. package/templates/skills/orc-analyze/references/deep-mode.md +27 -0
  305. package/templates/skills/orc-analyze/references/thin-input.md +77 -0
  306. package/templates/skills/orc-analyze/schemas/report-audit.md +83 -0
  307. package/templates/skills/orc-analyze/schemas/report-prose.md +63 -0
  308. package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -0
  309. package/templates/skills/orc-analyze/schemas/requirement-spec.md +77 -0
  310. package/templates/skills/orc-analyze-mini/SKILL.md +112 -0
  311. package/templates/skills/orc-analyze-mini/examples/quick-analysis-mock.md +31 -0
  312. package/templates/skills/orc-boundary/SKILL.md +208 -0
  313. package/templates/skills/orc-boundary/references/card.md +78 -0
  314. package/templates/skills/orc-boundary/references/gate.md +113 -0
  315. package/templates/skills/orc-brainstorm/SKILL.md +339 -0
  316. package/templates/skills/orc-brainstorm/references/brainstorm-doc.md +133 -0
  317. package/templates/skills/orc-brainstorm/references/lenses.md +152 -0
  318. package/templates/skills/orc-budget/SKILL.md +225 -0
  319. package/templates/skills/orc-budget/references/corpus.md +87 -0
  320. package/templates/skills/orc-challenge/README.md +142 -0
  321. package/templates/skills/orc-challenge/SKILL.md +255 -0
  322. package/templates/skills/orc-challenge/examples/code-module.md +110 -0
  323. package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -0
  324. package/templates/skills/orc-challenge/examples/tsd-two-iterations.md +213 -0
  325. package/templates/skills/orc-challenge/references/conservation.md +107 -0
  326. package/templates/skills/orc-challenge/references/council.md +315 -0
  327. package/templates/skills/orc-challenge/references/cycle-state.md +185 -0
  328. package/templates/skills/orc-challenge/references/dimensions.md +121 -0
  329. package/templates/skills/orc-challenge/references/fix-brief.md +130 -0
  330. package/templates/skills/orc-challenge/references/intake.md +171 -0
  331. package/templates/skills/orc-challenge/references/kinds.md +44 -0
  332. package/templates/skills/orc-challenge/references/plain-english.md +98 -0
  333. package/templates/skills/orc-challenge/references/rubric.md +109 -0
  334. package/templates/skills/orc-challenge/references/sealed-slice.md +97 -0
  335. package/templates/skills/orc-challenge/references/verdict-doc.md +154 -0
  336. package/templates/skills/orc-claude/SKILL.md +199 -0
  337. package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -0
  338. package/templates/skills/orc-claude/references/refresh.md +76 -0
  339. package/templates/skills/orc-claude/references/template.md +109 -0
  340. package/templates/skills/orc-diy/README.md +142 -0
  341. package/templates/skills/orc-diy/SKILL.md +70 -0
  342. package/templates/skills/orc-diy/references/blocks/analyze.md +24 -0
  343. package/templates/skills/orc-diy/references/blocks/execution.md +42 -0
  344. package/templates/skills/orc-diy/references/blocks/extra.md +55 -0
  345. package/templates/skills/orc-diy/references/blocks/header.md +55 -0
  346. package/templates/skills/orc-diy/references/blocks/mock-example.md +22 -0
  347. package/templates/skills/orc-diy/references/blocks/pattern.md +18 -0
  348. package/templates/skills/orc-diy/references/blocks/planning.md +34 -0
  349. package/templates/skills/orc-diy/references/blocks/review.md +18 -0
  350. package/templates/skills/orc-diy/references/blocks/scoring.md +16 -0
  351. package/templates/skills/orc-diy/references/blocks/security.md +25 -0
  352. package/templates/skills/orc-diy/references/blocks/ship.md +25 -0
  353. package/templates/skills/orc-diy/references/blocks/summary.md +18 -0
  354. package/templates/skills/orc-diy/references/blocks/testgen.md +17 -0
  355. package/templates/skills/orc-diy/references/blocks/trace.md +28 -0
  356. package/templates/skills/orc-diy/references/blocks/verify.md +25 -0
  357. package/templates/skills/orc-diy/references/blocks/wiki.md +26 -0
  358. package/templates/skills/orc-diy/references/compile.md +59 -0
  359. package/templates/skills/orc-diy/references/flow-schema.md +100 -0
  360. package/templates/skills/orc-diy/references/locked-blocks.md +37 -0
  361. package/templates/skills/orc-doc/README.md +229 -0
  362. package/templates/skills/orc-doc/SKILL.md +444 -0
  363. package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -0
  364. package/templates/skills/orc-doc/references/chunking.md +527 -0
  365. package/templates/skills/orc-doc/references/gates.md +311 -0
  366. package/templates/skills/orc-doc/references/generation-rules.md +122 -0
  367. package/templates/skills/orc-doc/references/house-rules.md +170 -0
  368. package/templates/skills/orc-doc/references/import-targets.md +40 -0
  369. package/templates/skills/orc-doc/references/plain-language.md +66 -0
  370. package/templates/skills/orc-doc/references/portable-markdown.md +74 -0
  371. package/templates/skills/orc-doc/references/resume-protocol.md +228 -0
  372. package/templates/skills/orc-doc/references/templates/collaboration.md +118 -0
  373. package/templates/skills/orc-doc/references/templates/prd.md +133 -0
  374. package/templates/skills/orc-doc/references/templates/report.md +102 -0
  375. package/templates/skills/orc-doc/references/templates/tsd.md +122 -0
  376. package/templates/skills/orc-doc/references/templates/workflow.md +112 -0
  377. package/templates/skills/orc-explain/SKILL.md +57 -0
  378. package/templates/skills/orc-export/SKILL.md +154 -0
  379. package/templates/skills/orc-fast/SKILL.md +188 -0
  380. package/templates/skills/orc-grill/SKILL.md +207 -0
  381. package/templates/skills/orc-grill/references/grill-doc.md +105 -0
  382. package/templates/skills/orc-handoff/SKILL.md +204 -0
  383. package/templates/skills/orc-handoff/references/handoff-log.md +67 -0
  384. package/templates/skills/orc-handoff/references/surfaces.md +88 -0
  385. package/templates/skills/orc-judge/SKILL.md +82 -0
  386. package/templates/skills/orc-learn/SKILL.md +156 -0
  387. package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -0
  388. package/templates/skills/orc-learn/references/deepen.md +70 -0
  389. package/templates/skills/orc-learn/references/refresh.md +65 -0
  390. package/templates/skills/orc-learn/references/template-knowledge.md +83 -0
  391. package/templates/skills/orc-learn/references/template-learning.md +67 -0
  392. package/templates/skills/orc-mini/SKILL.md +226 -0
  393. package/templates/skills/orc-mini/examples/mini-run-mock.md +50 -0
  394. package/templates/skills/orc-pact/SKILL.md +218 -0
  395. package/templates/skills/orc-pact/references/gate.md +70 -0
  396. package/templates/skills/orc-pact/references/ledger.md +99 -0
  397. package/templates/skills/orc-pattern/SKILL.md +124 -0
  398. package/templates/skills/orc-pattern/references/INDEX.md +73 -0
  399. package/templates/skills/orc-pattern/references/be-django.md +80 -0
  400. package/templates/skills/orc-pattern/references/be-express.md +82 -0
  401. package/templates/skills/orc-pattern/references/be-fastapi.md +107 -0
  402. package/templates/skills/orc-pattern/references/be-go.md +96 -0
  403. package/templates/skills/orc-pattern/references/be-nestjs.md +86 -0
  404. package/templates/skills/orc-pattern/references/be-postgres.md +98 -0
  405. package/templates/skills/orc-pattern/references/fe-a11y.md +36 -0
  406. package/templates/skills/orc-pattern/references/fe-angular.md +87 -0
  407. package/templates/skills/orc-pattern/references/fe-nextjs.md +65 -0
  408. package/templates/skills/orc-pattern/references/fe-perf.md +39 -0
  409. package/templates/skills/orc-pattern/references/fe-react.md +83 -0
  410. package/templates/skills/orc-pattern/references/fe-vue.md +75 -0
  411. package/templates/skills/orc-pattern/schemas/pattern-doc.md +62 -0
  412. package/templates/skills/orc-poly/SKILL.md +216 -0
  413. package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -0
  414. package/templates/skills/orc-poly/references/gather.md +70 -0
  415. package/templates/skills/orc-poly/references/poly-spec.md +84 -0
  416. package/templates/skills/orc-pr-driver/README.md +349 -0
  417. package/templates/skills/orc-pr-driver/SKILL.md +167 -0
  418. package/templates/skills/orc-pr-driver/references/conflict-playbook.md +78 -0
  419. package/templates/skills/orc-pr-driver/references/green-gate.md +105 -0
  420. package/templates/skills/orc-pr-driver/references/orc-run-split.md +99 -0
  421. package/templates/skills/orc-pr-setup/README.md +436 -0
  422. package/templates/skills/orc-pr-setup/SKILL.md +184 -0
  423. package/templates/skills/orc-pr-setup/references/certainty-gate.md +66 -0
  424. package/templates/skills/orc-pr-setup/references/layer-taxonomy.md +67 -0
  425. package/templates/skills/orc-quick/README.md +423 -0
  426. package/templates/skills/orc-quick/SKILL.md +306 -0
  427. package/templates/skills/orc-quick/references/context-doc.md +114 -0
  428. package/templates/skills/orc-quick/references/dispatch-gate.md +163 -0
  429. package/templates/skills/orc-quick/references/gh-mode.md +127 -0
  430. package/templates/skills/orc-retro/SKILL.md +222 -0
  431. package/templates/skills/orc-retro/examples/retro-mock.md +171 -0
  432. package/templates/skills/orc-route/SKILL.md +165 -0
  433. package/templates/skills/orc-verify/SKILL.md +86 -0
  434. package/templates/skills/orc-verify/examples/verify-mock.md +33 -0
  435. package/templates/skills/orc-wiki/README.md +325 -0
  436. package/templates/skills/orc-wiki/SKILL.md +322 -0
  437. package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -0
  438. package/templates/skills/orc-wiki/references/claude-md-injection.md +61 -0
  439. package/templates/skills/orc-wiki/references/crosslink-compile.md +39 -0
  440. package/templates/skills/orc-wiki/references/crosslink-kinds.md +57 -0
  441. package/templates/skills/orc-wiki/references/crosslink.md +284 -0
  442. package/templates/skills/orc-wiki/references/extra.md +79 -0
  443. package/templates/skills/orc-wiki/references/integrity-check.md +86 -0
  444. package/templates/skills/orc-wiki/references/orientation.md +51 -0
  445. package/templates/skills/orc-wiki/references/partial-refresh.md +203 -0
  446. package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -0
  447. package/templates/skills/orc-wiki/references/staleness.md +288 -0
  448. package/templates/skills/orc-wiki/schemas/crosslink-tag.md +166 -0
  449. package/templates/skills/orc-wiki/schemas/wiki-doc.md +120 -0
@@ -0,0 +1,437 @@
1
+ {
2
+ "_readme": [
3
+ "DATED provider catalog for `orc extra`. Providers, NEVER models.",
4
+ "",
5
+ "Between this package's cutoff and any given release the model lineup moves:",
6
+ "DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2, MiniMax M2 -> M2.7,",
7
+ "Qwen 3 -> 3.6, MiMo v2 -> v2.5. A SHIPPED MODEL LIST IS WRONG WITHIN A",
8
+ "QUARTER, and wrong SILENTLY: a user picks from a stale dropdown and gets a",
9
+ "404 in the middle of a wave. So model ids come from the provider's own",
10
+ "/v1/models at ping time and are cached in the profile (`models_seen`).",
11
+ "",
12
+ "`as_of` is load-bearing, exactly like bin/pricing.json: a catalog older than",
13
+ "90 days prints a staleness warning beside every provider listing. Bump the",
14
+ "date only when you have re-checked the base URLs against each provider's",
15
+ "own docs.",
16
+ "",
17
+ "`auth_env` names the ENVIRONMENT VARIABLE, not a header. Claude Code picks",
18
+ "the header FROM the variable you set: ANTHROPIC_AUTH_TOKEN -> `Authorization:",
19
+ "Bearer`, ANTHROPIC_API_KEY -> `x-api-key`. Ollama's Anthropic endpoint",
20
+ "REJECTS x-api-key, so a row that said `bearer` plus a resolver that set",
21
+ "ANTHROPIC_API_KEY would fail at 401 with nothing on screen explaining why.",
22
+ "",
23
+ "`api_base` (OpenAI-compatible, engine `api`) and `anthropic_base` (the",
24
+ "/anthropic shim, engine `claude-shim`) are INDEPENDENTLY probeable: they are",
25
+ "different URLs with different capabilities, and `/v1/models` does not",
26
+ "necessarily live under the shim one.",
27
+ "",
28
+ "`custom` is a real row and is the escape hatch that keeps this catalog from",
29
+ "being a gate: anything OpenAI- or Anthropic-compatible works by typing a",
30
+ "base URL, with no entry here.",
31
+ "",
32
+ "`provider_routing` marks a provider that accepts an OpenRouter-style `provider` block in the request body (zdr, data_collection, require_parameters, only, allow_fallbacks). Only engine `api` composes a body, so this is the ONE enforceable privacy control in the whole subsystem — and it exists on the aggregator, plus `custom` because a custom base URL is routinely an aggregator-compatible gateway. Everything else gets `orc extra privacy` REFUSED BY NAME rather than an unknown body field that 400s mid-wave.",
33
+ "",
34
+ "`cli_bin` names the LOCAL BINARY a provider's only surface is. A row that",
35
+ "carries it is a tool that may simply not be installed, which is a state",
36
+ "before it is a failure: `orc extra tools` computes it fresh on every read",
37
+ "(never stored — a stored `installing` flag is a lie the moment the user hits",
38
+ "Ctrl-C), and `orc extra add --provider <that row>` REFUSES while it is",
39
+ "absent, naming the install command instead of creating a profile that cannot",
40
+ "work.",
41
+ "",
42
+ "`install` is per platform and per package manager and it AGES WITH THIS FILE.",
43
+ "The common failure is `npm i -g codex`, which installs an unrelated 2012",
44
+ "package — so the exact string has to come from here rather than from memory,",
45
+ "and it is dated for the same reason a base URL is.",
46
+ "",
47
+ "`no_install_alternative` is an asymmetry made data: a provider whose tool is",
48
+ "absent may have an install-free route (an ordinary `api` row serving the same",
49
+ "models), or it may not. `null` MEANS THERE IS NONE — never that the catalog",
50
+ "forgot to look — and a renderer must say the difference out loud.",
51
+ "",
52
+ "`models_public: true` says this provider's models list answers WITHOUT a",
53
+ "credential. It exists because `orc extra ping`'s cheapest rung treats a 200",
54
+ "on /models as verification, and on a provider whose list is public that would",
55
+ "mark a profile verified with a garbage key. Such a row fills models_seen and",
56
+ "then falls THROUGH to the paid rung; the free answer is recorded as",
57
+ "`models-public` and is never the profile's verification.",
58
+ "",
59
+ "`credential` on a cli row says how that tool takes a key, because the two",
60
+ "shipped ones are opposites: codex accepts a key on stdin and in an env var,",
61
+ "opencode's own login always prompts and cannot be driven — so ORC injects the",
62
+ "key into the child's environment instead and NEVER writes another tool's",
63
+ "credential store. `orc extra keyhelp` renders which of the three routes",
64
+ "applies."
65
+ ],
66
+ "version": 1,
67
+ "as_of": "2026-08-22",
68
+ "providers": [
69
+ {
70
+ "id": "deepseek",
71
+ "label": "DeepSeek",
72
+ "engines": [
73
+ "api",
74
+ "claude-shim"
75
+ ],
76
+ "api_base": "https://api.deepseek.com",
77
+ "anthropic_base": "https://api.deepseek.com/anthropic",
78
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
79
+ "env_key_default": "DEEPSEEK_API_KEY",
80
+ "models_path": "/v1/models",
81
+ "context_tokens": null,
82
+ "regions": [],
83
+ "docs_url": "https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code/",
84
+ "terms_url": "https://platform.deepseek.com/downloads/DeepSeek%20Open%20Platform%20Terms%20of%20Service.html",
85
+ "notes": "Peak / off-peak rates differ; the off-peak window is the cheap one."
86
+ },
87
+ {
88
+ "id": "zai",
89
+ "label": "Z.ai (GLM)",
90
+ "engines": [
91
+ "api",
92
+ "claude-shim"
93
+ ],
94
+ "api_base": "https://api.z.ai/api/paas/v4",
95
+ "anthropic_base": "https://api.z.ai/api/anthropic",
96
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
97
+ "env_key_default": "ZAI_API_KEY",
98
+ "models_path": "/v1/models",
99
+ "context_tokens": null,
100
+ "regions": [],
101
+ "docs_url": "https://docs.z.ai/",
102
+ "terms_url": "https://z.ai/terms",
103
+ "notes": "GLM Coding Plan is a subscription; a plan key and an API key are not the same credential."
104
+ },
105
+ {
106
+ "id": "moonshot",
107
+ "label": "Moonshot (Kimi)",
108
+ "engines": [
109
+ "api",
110
+ "claude-shim"
111
+ ],
112
+ "api_base": "https://api.moonshot.ai/v1",
113
+ "anthropic_base": "https://api.moonshot.ai/anthropic",
114
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
115
+ "env_key_default": "MOONSHOT_API_KEY",
116
+ "models_path": "/v1/models",
117
+ "context_tokens": null,
118
+ "regions": [
119
+ {
120
+ "id": "cn",
121
+ "label": "China",
122
+ "api_base": "https://api.moonshot.cn/v1",
123
+ "anthropic_base": "https://api.moonshot.cn/anthropic"
124
+ }
125
+ ],
126
+ "docs_url": "https://platform.moonshot.ai/docs",
127
+ "terms_url": "https://platform.moonshot.ai/docs/agreement",
128
+ "notes": null
129
+ },
130
+ {
131
+ "id": "minimax",
132
+ "label": "MiniMax",
133
+ "engines": [
134
+ "api",
135
+ "claude-shim"
136
+ ],
137
+ "api_base": "https://api.minimax.io/v1",
138
+ "anthropic_base": "https://api.minimax.io/anthropic",
139
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
140
+ "env_key_default": "MINIMAX_API_KEY",
141
+ "models_path": "/v1/models",
142
+ "context_tokens": null,
143
+ "regions": [
144
+ {
145
+ "id": "cn",
146
+ "label": "China",
147
+ "api_base": "https://api.minimaxi.com/v1",
148
+ "anthropic_base": "https://api.minimaxi.com/anthropic"
149
+ }
150
+ ],
151
+ "docs_url": "https://platform.minimax.io/docs/token-plan/claude-code",
152
+ "terms_url": "https://platform.minimax.io/document/Terms%20of%20Service",
153
+ "notes": "A key issued in one region does NOT work against the other region's host."
154
+ },
155
+ {
156
+ "id": "qwen",
157
+ "label": "Alibaba Qwen (DashScope)",
158
+ "engines": [
159
+ "api",
160
+ "claude-shim"
161
+ ],
162
+ "api_base": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
163
+ "anthropic_base": "https://dashscope-intl.aliyuncs.com/apps/anthropic",
164
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
165
+ "env_key_default": "DASHSCOPE_API_KEY",
166
+ "models_path": "/models",
167
+ "context_tokens": null,
168
+ "regions": [
169
+ {
170
+ "id": "cn",
171
+ "label": "China (Beijing)",
172
+ "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
173
+ "anthropic_base": "https://dashscope.aliyuncs.com/apps/anthropic"
174
+ }
175
+ ],
176
+ "docs_url": "https://www.alibabacloud.com/help/en/model-studio/compatibility-of-openai-with-dashscope",
177
+ "terms_url": "https://www.alibabacloud.com/help/en/legal",
178
+ "notes": "DashScope's OpenAI-compatible mode already carries /v1 in the base; models_path is /models."
179
+ },
180
+ {
181
+ "id": "mimo",
182
+ "label": "Xiaomi MiMo",
183
+ "engines": [
184
+ "api",
185
+ "claude-shim"
186
+ ],
187
+ "api_base": "https://api.xiaomimimo.com/v1",
188
+ "anthropic_base": "https://api.xiaomimimo.com/anthropic",
189
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
190
+ "env_key_default": "MIMO_API_KEY",
191
+ "models_path": "/v1/models",
192
+ "context_tokens": null,
193
+ "regions": [],
194
+ "docs_url": "https://api.xiaomimimo.com/docs",
195
+ "terms_url": "https://api.xiaomimimo.com/terms",
196
+ "notes": "Open weights; a self-hosted deployment is the `custom` row, not this one."
197
+ },
198
+ {
199
+ "id": "stepfun",
200
+ "label": "StepFun",
201
+ "engines": [
202
+ "api",
203
+ "claude-shim"
204
+ ],
205
+ "api_base": "https://api.stepfun.ai/v1",
206
+ "anthropic_base": "https://api.stepfun.ai/anthropic",
207
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
208
+ "env_key_default": "STEPFUN_API_KEY",
209
+ "models_path": "/v1/models",
210
+ "context_tokens": null,
211
+ "regions": [],
212
+ "docs_url": "https://platform.stepfun.com/docs",
213
+ "terms_url": "https://platform.stepfun.com/terms",
214
+ "notes": null
215
+ },
216
+ {
217
+ "id": "siliconflow",
218
+ "label": "SiliconFlow",
219
+ "engines": [
220
+ "api",
221
+ "claude-shim"
222
+ ],
223
+ "api_base": "https://api.siliconflow.com/v1",
224
+ "anthropic_base": "https://api.siliconflow.com/anthropic",
225
+ "auth_env": "ANTHROPIC_API_KEY",
226
+ "env_key_default": "SILICONFLOW_API_KEY",
227
+ "models_path": "/v1/models",
228
+ "context_tokens": null,
229
+ "regions": [],
230
+ "docs_url": "https://docs.siliconflow.com/",
231
+ "terms_url": "https://siliconflow.com/terms",
232
+ "notes": "An AGGREGATOR: the model id names an upstream. Verify model_reported on every return."
233
+ },
234
+ {
235
+ "id": "openrouter",
236
+ "label": "OpenRouter",
237
+ "engines": [
238
+ "api",
239
+ "claude-shim"
240
+ ],
241
+ "api_base": "https://openrouter.ai/api/v1",
242
+ "anthropic_base": "https://openrouter.ai/api",
243
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
244
+ "env_key_default": "OPENROUTER_API_KEY",
245
+ "models_path": "/models",
246
+ "context_tokens": null,
247
+ "regions": [],
248
+ "docs_url": "https://openrouter.ai/docs/guides/overview/models",
249
+ "terms_url": "https://openrouter.ai/terms",
250
+ "notes": "An AGGREGATOR with TWO fallback kinds. Model-level fallback changes the model id (visible). Provider-level fallback is ON BY DEFAULT and KEEPS the model id while changing who serves it — visible only on engine `api`, via the response's `provider` field.",
251
+ "provider_routing": true
252
+ },
253
+ {
254
+ "id": "ollama",
255
+ "label": "Ollama (local)",
256
+ "engines": [
257
+ "api",
258
+ "claude-shim"
259
+ ],
260
+ "api_base": "http://localhost:11434/v1",
261
+ "anthropic_base": "http://localhost:11434",
262
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
263
+ "env_key_default": "OLLAMA_API_KEY",
264
+ "models_path": "/v1/models",
265
+ "context_tokens": null,
266
+ "regions": [],
267
+ "docs_url": "https://docs.ollama.com/api/anthropic-compatibility",
268
+ "terms_url": "https://ollama.com/terms",
269
+ "notes": "Local: nothing leaves the machine, and the credential is a placeholder. Its /v1/messages REJECTS x-api-key, which is why auth_env is ANTHROPIC_AUTH_TOKEN and must stay that way."
270
+ },
271
+ {
272
+ "id": "opencode",
273
+ "label": "OpenCode",
274
+ "engines": [
275
+ "cli"
276
+ ],
277
+ "api_base": null,
278
+ "anthropic_base": null,
279
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
280
+ "env_key_default": null,
281
+ "models_path": null,
282
+ "context_tokens": null,
283
+ "regions": [],
284
+ "docs_url": "https://opencode.ai/docs/cli/",
285
+ "terms_url": "https://opencode.ai/docs/",
286
+ "notes": "A LOCAL agentic CLI, so the thing that can be absent is the binary, not a URL. It reports token counts but NEVER which model answered — a substitution is invisible on this engine, and every render says so.",
287
+ "cli_bin": "opencode",
288
+ "min_version": "1.10.0",
289
+ "version_cmd": [
290
+ "--version"
291
+ ],
292
+ "auth_cmd": [
293
+ "auth",
294
+ "list"
295
+ ],
296
+ "models_cmd": [
297
+ "models"
298
+ ],
299
+ "no_install_alternative": "opencode-zen",
300
+ "credential": {
301
+ "env_route": true,
302
+ "env_var": null,
303
+ "stdin_login": null,
304
+ "interactive_login": "opencode auth login",
305
+ "note": "opencode reads a key from the environment or a .env file at startup, so ORC injects it into the child process and never touches ~/.local/share/opencode/auth.json. `opencode auth login` has no flag for the key itself and always prompts — it cannot be driven, and ORC says so rather than pretending."
306
+ },
307
+ "install": {
308
+ "docs_url": "https://opencode.ai/docs/",
309
+ "bin_name": "opencode",
310
+ "cmds": [
311
+ {
312
+ "manager": "npm",
313
+ "platforms": [
314
+ "win32",
315
+ "darwin",
316
+ "linux"
317
+ ],
318
+ "cmd": "npm i -g opencode-ai"
319
+ },
320
+ {
321
+ "manager": "script",
322
+ "platforms": [
323
+ "darwin",
324
+ "linux"
325
+ ],
326
+ "cmd": "curl -fsSL https://opencode.ai/install | bash"
327
+ }
328
+ ]
329
+ }
330
+ },
331
+ {
332
+ "id": "codex",
333
+ "label": "Codex",
334
+ "engines": [
335
+ "cli"
336
+ ],
337
+ "api_base": null,
338
+ "anthropic_base": null,
339
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
340
+ "env_key_default": "OPENAI_API_KEY",
341
+ "models_path": null,
342
+ "context_tokens": null,
343
+ "regions": [],
344
+ "docs_url": "https://developers.openai.com/codex/cli",
345
+ "terms_url": "https://openai.com/policies/terms-of-use",
346
+ "notes": "CLI-only: there is no endpoint to point ORC at, which is why no_install_alternative is null. Custom providers live in the USER-level ~/.codex/config.toml, which ORC reads and NEVER writes. `-m` alone does not set the compute budget — the dispatch always passes `-c model_reasoning_effort` too, and an unsupported level is coerced SILENTLY, so the effort is reported as requested and never as confirmed.",
347
+ "cli_bin": "codex",
348
+ "min_version": null,
349
+ "version_cmd": [
350
+ "--version"
351
+ ],
352
+ "auth_cmd": [
353
+ "login",
354
+ "status"
355
+ ],
356
+ "models_cmd": [
357
+ "debug",
358
+ "models"
359
+ ],
360
+ "no_install_alternative": null,
361
+ "credential": {
362
+ "env_route": true,
363
+ "env_var": "CODEX_API_KEY",
364
+ "stdin_login": "codex login --with-api-key",
365
+ "interactive_login": "codex login --device-auth",
366
+ "note": "Every codex login path reads the key from STDIN and never from an argument — the tool's own docs say so, which is ORC's rule arrived at independently. CODEX_API_KEY scopes a key to ONE invocation and writes nothing global, so it is the default route."
367
+ },
368
+ "install": {
369
+ "docs_url": "https://developers.openai.com/codex/cli",
370
+ "bin_name": "codex",
371
+ "cmds": [
372
+ {
373
+ "manager": "npm",
374
+ "platforms": [
375
+ "win32",
376
+ "darwin",
377
+ "linux"
378
+ ],
379
+ "cmd": "npm i -g @openai/codex"
380
+ },
381
+ {
382
+ "manager": "brew",
383
+ "platforms": [
384
+ "darwin"
385
+ ],
386
+ "cmd": "brew install --cask codex"
387
+ },
388
+ {
389
+ "manager": "winget",
390
+ "platforms": [
391
+ "win32"
392
+ ],
393
+ "cmd": "winget install OpenAI.Codex"
394
+ }
395
+ ]
396
+ }
397
+ },
398
+ {
399
+ "id": "opencode-zen",
400
+ "label": "OpenCode Zen",
401
+ "engines": [
402
+ "api"
403
+ ],
404
+ "api_base": "https://opencode.ai/zen/v1",
405
+ "anthropic_base": null,
406
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
407
+ "env_key_default": "OPENCODE_ZEN_API_KEY",
408
+ "models_path": "/models",
409
+ "context_tokens": null,
410
+ "regions": [],
411
+ "docs_url": "https://opencode.ai/docs/zen/",
412
+ "terms_url": "https://opencode.ai/docs/",
413
+ "notes": "The install-free route to the same catalogue: an ordinary OpenAI-compatible endpoint, reachable with a key and no local tool at all. Its /models answers WITHOUT a credential, which is why models_public is set — the free rung proves the URL and nothing else here.",
414
+ "models_public": true
415
+ },
416
+ {
417
+ "id": "custom",
418
+ "label": "Custom endpoint",
419
+ "engines": [
420
+ "api",
421
+ "claude-shim",
422
+ "cli"
423
+ ],
424
+ "api_base": null,
425
+ "anthropic_base": null,
426
+ "auth_env": "ANTHROPIC_AUTH_TOKEN",
427
+ "env_key_default": null,
428
+ "models_path": "/v1/models",
429
+ "context_tokens": null,
430
+ "regions": [],
431
+ "docs_url": null,
432
+ "terms_url": null,
433
+ "notes": "You supply the base URL and the auth shape. This row is why the catalog is not a gate.",
434
+ "provider_routing": true
435
+ }
436
+ ]
437
+ }
package/bin/ui.js ADDED
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * ui.js — a tiny zero-dependency terminal UI kit shared by the orc CLI.
4
+ *
5
+ * NOT the web panel. `bin/webui/` is `orc ui`, the local browser control panel;
6
+ * this file is the TERMINAL styling kit the CLI prints through. One letter
7
+ * apart, entirely different jobs — do not let the names collide.
8
+ *
9
+ * Rules that keep automated callers safe:
10
+ * - COLOR is emitted ONLY on a real TTY and only when NO_COLOR is unset. Piped
11
+ * output (tests, `| cat`, CI) is byte-identical to the plain text — no ANSI.
12
+ * - GLYPHS fall back to ASCII on a console that can't render UTF-8 (legacy
13
+ * Windows cmd without a UTF-8 codepage), detected conservatively.
14
+ * Nothing here changes the machine-stable command outputs (`where`,
15
+ * `pattern status`, `doctor` exit codes) — it only styles human-facing text.
16
+ */
17
+
18
+ const useColor =
19
+ !!process.stdout.isTTY && !process.env.NO_COLOR && process.env.TERM !== "dumb";
20
+
21
+ const wrap = (code) => (s) =>
22
+ useColor ? `\x1b[${code}m${s}\x1b[0m` : String(s);
23
+
24
+ const color = {
25
+ bold: wrap(1),
26
+ dim: wrap(2),
27
+ red: wrap(31),
28
+ green: wrap(32),
29
+ yellow: wrap(33),
30
+ blue: wrap(34),
31
+ magenta: wrap(35),
32
+ cyan: wrap(36),
33
+ gray: wrap(90),
34
+ };
35
+
36
+ // UTF-8-capable console? Windows Terminal / VS Code / a UTF-8 codepage set it;
37
+ // bare legacy cmd.exe does not. Non-Windows is always fine.
38
+ const unicodeOk =
39
+ process.platform !== "win32" ||
40
+ !!(
41
+ process.env.WT_SESSION ||
42
+ process.env.TERM_PROGRAM ||
43
+ /utf-?8/i.test(process.env.PYTHONIOENCODING || "") ||
44
+ process.env.ConEmuTask
45
+ );
46
+
47
+ const glyph = {
48
+ ok: unicodeOk ? "✔" : "OK",
49
+ warn: unicodeOk ? "⚠" : "!",
50
+ bad: unicodeOk ? "✖" : "x",
51
+ arrow: unicodeOk ? "→" : "->",
52
+ bullet: unicodeOk ? "•" : "*",
53
+ };
54
+
55
+ // Section header: a bold title with an underline the same visible width.
56
+ function header(title) {
57
+ return "\n" + color.bold(title) + "\n" + color.gray("─".repeat(strip(title).length));
58
+ }
59
+
60
+ // Strip ANSI so width math is correct.
61
+ function strip(s) {
62
+ return String(s).replace(/\x1b\[[0-9;]*m/g, "");
63
+ }
64
+
65
+ // Aligned two-column key/value rows: [[key, value, note?], …].
66
+ function kv(rows, { indent = " " } = {}) {
67
+ const pad = Math.max(0, ...rows.map((r) => strip(String(r[0])).length));
68
+ return rows
69
+ .map((r) => {
70
+ const key = String(r[0]);
71
+ const gap = " ".repeat(pad - strip(key).length + 2);
72
+ const note = r[2] ? " " + color.gray(r[2]) : "";
73
+ return `${indent}${key}${gap}${r[1]}${note}`;
74
+ })
75
+ .join("\n");
76
+ }
77
+
78
+ // A light box around a block of lines (for "next steps" call-outs).
79
+ function box(lines) {
80
+ const width = Math.max(0, ...lines.map((l) => strip(l).length));
81
+ const bar = unicodeOk ? "─" : "-";
82
+ const top = unicodeOk ? "┌" + bar.repeat(width + 2) + "┐" : "+" + bar.repeat(width + 2) + "+";
83
+ const bot = unicodeOk ? "└" + bar.repeat(width + 2) + "┘" : "+" + bar.repeat(width + 2) + "+";
84
+ const side = unicodeOk ? "│" : "|";
85
+ const mid = lines.map((l) => `${side} ${l}${" ".repeat(width - strip(l).length)} ${side}`);
86
+ return [top, ...mid, bot].map((l) => color.gray(l)).join("\n");
87
+ }
88
+
89
+ const mark = {
90
+ ok: (s) => color.green(glyph.ok) + " " + s,
91
+ warn: (s) => color.yellow(glyph.warn) + " " + s,
92
+ bad: (s) => color.red(glyph.bad) + " " + s,
93
+ };
94
+
95
+ module.exports = { color, glyph, header, kv, box, mark, strip, useColor, unicodeOk };