@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.
- package/CHANGELOG.md +2017 -0
- package/README-id.md +521 -0
- package/README.md +485 -0
- package/bin/build-agents.js +86 -0
- package/bin/cli.js +29050 -0
- package/bin/mockrun-catalog.js +267 -0
- package/bin/onboarding-content.js +172 -0
- package/bin/pricing.json +200 -0
- package/bin/providers.json +437 -0
- package/bin/ui.js +95 -0
- package/bin/verify-contracts.js +3277 -0
- package/bin/verify-package.js +498 -0
- package/bin/webui/api.js +1163 -0
- package/bin/webui/app.html +198 -0
- package/bin/webui/css/00-tokens.css +92 -0
- package/bin/webui/css/01-base.css +42 -0
- package/bin/webui/css/02-shell.css +103 -0
- package/bin/webui/css/03-components.css +462 -0
- package/bin/webui/css/04-motion.css +91 -0
- package/bin/webui/css/05-tour.css +100 -0
- package/bin/webui/css/06-responsive.css +108 -0
- package/bin/webui/css/panels/boundary.css +26 -0
- package/bin/webui/css/panels/challenge.css +151 -0
- package/bin/webui/css/panels/crosslink.css +194 -0
- package/bin/webui/css/panels/docs.css +254 -0
- package/bin/webui/css/panels/experiment.css +23 -0
- package/bin/webui/css/panels/extra.css +536 -0
- package/bin/webui/css/panels/flow.css +177 -0
- package/bin/webui/css/panels/handoff.css +67 -0
- package/bin/webui/css/panels/knowledge.css +86 -0
- package/bin/webui/css/panels/learn.css +154 -0
- package/bin/webui/css/panels/maintenance.css +55 -0
- package/bin/webui/css/panels/mockrun.css +268 -0
- package/bin/webui/css/panels/overview.css +100 -0
- package/bin/webui/css/panels/pact.css +43 -0
- package/bin/webui/css/panels/runs.css +105 -0
- package/bin/webui/css/panels/settings.css +227 -0
- package/bin/webui/css/panels/stats.css +87 -0
- package/bin/webui/fixtures/boundary.js +92 -0
- package/bin/webui/fixtures/challenge.js +825 -0
- package/bin/webui/fixtures/crosslink.js +31 -0
- package/bin/webui/fixtures/docs.js +982 -0
- package/bin/webui/fixtures/extra.js +1934 -0
- package/bin/webui/fixtures/flow.js +81 -0
- package/bin/webui/fixtures/handoff.js +35 -0
- package/bin/webui/fixtures/index.js +486 -0
- package/bin/webui/fixtures/knowledge.js +291 -0
- package/bin/webui/fixtures/maintenance.js +42 -0
- package/bin/webui/fixtures/mockrun.js +36 -0
- package/bin/webui/fixtures/pact.js +111 -0
- package/bin/webui/fixtures/runs.js +109 -0
- package/bin/webui/fixtures/settings.js +78 -0
- package/bin/webui/fixtures/shell.js +48 -0
- package/bin/webui/fixtures/stats.js +104 -0
- package/bin/webui/i18n/TERMS.md +134 -0
- package/bin/webui/i18n/en/banner.json +29 -0
- package/bin/webui/i18n/en/boundary.json +20 -0
- package/bin/webui/i18n/en/challenge.json +106 -0
- package/bin/webui/i18n/en/common.json +69 -0
- package/bin/webui/i18n/en/crosslink.json +69 -0
- package/bin/webui/i18n/en/docs.json +175 -0
- package/bin/webui/i18n/en/experiment.json +17 -0
- package/bin/webui/i18n/en/extra.json +313 -0
- package/bin/webui/i18n/en/flow.json +30 -0
- package/bin/webui/i18n/en/handoff.json +37 -0
- package/bin/webui/i18n/en/knowledge.json +141 -0
- package/bin/webui/i18n/en/learn.json +16 -0
- package/bin/webui/i18n/en/maintenance.json +52 -0
- package/bin/webui/i18n/en/mockrun.json +19 -0
- package/bin/webui/i18n/en/nav.json +19 -0
- package/bin/webui/i18n/en/overview.json +89 -0
- package/bin/webui/i18n/en/pact.json +36 -0
- package/bin/webui/i18n/en/runs.json +51 -0
- package/bin/webui/i18n/en/settings.json +49 -0
- package/bin/webui/i18n/en/stats.json +69 -0
- package/bin/webui/i18n/en/tour.json +33 -0
- package/bin/webui/i18n/id/banner.json +29 -0
- package/bin/webui/i18n/id/boundary.json +20 -0
- package/bin/webui/i18n/id/challenge.json +106 -0
- package/bin/webui/i18n/id/common.json +70 -0
- package/bin/webui/i18n/id/crosslink.json +69 -0
- package/bin/webui/i18n/id/docs.json +175 -0
- package/bin/webui/i18n/id/experiment.json +17 -0
- package/bin/webui/i18n/id/extra.json +313 -0
- package/bin/webui/i18n/id/flow.json +30 -0
- package/bin/webui/i18n/id/handoff.json +37 -0
- package/bin/webui/i18n/id/knowledge.json +141 -0
- package/bin/webui/i18n/id/learn.json +16 -0
- package/bin/webui/i18n/id/maintenance.json +52 -0
- package/bin/webui/i18n/id/mockrun.json +19 -0
- package/bin/webui/i18n/id/nav.json +19 -0
- package/bin/webui/i18n/id/overview.json +89 -0
- package/bin/webui/i18n/id/pact.json +36 -0
- package/bin/webui/i18n/id/runs.json +51 -0
- package/bin/webui/i18n/id/settings.json +49 -0
- package/bin/webui/i18n/id/stats.json +69 -0
- package/bin/webui/i18n/id/tour.json +33 -0
- package/bin/webui/js/00-core.js +115 -0
- package/bin/webui/js/01-i18n.js +149 -0
- package/bin/webui/js/02-ui.js +211 -0
- package/bin/webui/js/03-md.js +286 -0
- package/bin/webui/js/04-router.js +51 -0
- package/bin/webui/js/05-banners.js +172 -0
- package/bin/webui/js/06-edit.js +183 -0
- package/bin/webui/js/90-tour.js +488 -0
- package/bin/webui/js/91-shortcuts.js +126 -0
- package/bin/webui/js/99-boot.js +118 -0
- package/bin/webui/js/panels/boundary.js +104 -0
- package/bin/webui/js/panels/challenge.js +781 -0
- package/bin/webui/js/panels/crosslink.js +654 -0
- package/bin/webui/js/panels/docs.js +1338 -0
- package/bin/webui/js/panels/experiment.js +98 -0
- package/bin/webui/js/panels/extra.js +3011 -0
- package/bin/webui/js/panels/flow.js +297 -0
- package/bin/webui/js/panels/handoff.js +169 -0
- package/bin/webui/js/panels/knowledge.js +890 -0
- package/bin/webui/js/panels/learn.js +220 -0
- package/bin/webui/js/panels/maintenance.js +235 -0
- package/bin/webui/js/panels/mockrun.js +227 -0
- package/bin/webui/js/panels/overview.js +447 -0
- package/bin/webui/js/panels/pact.js +189 -0
- package/bin/webui/js/panels/runs.js +416 -0
- package/bin/webui/js/panels/settings.js +573 -0
- package/bin/webui/js/panels/stats.js +378 -0
- package/bin/webui/serve.js +557 -0
- package/mock-run/INDEX.md +106 -0
- package/mock-run/a-normal-day.md +587 -0
- package/mock-run/context-combiner.md +100 -0
- package/mock-run/extra-recovery.md +330 -0
- package/mock-run/extra-slots.md +177 -0
- package/mock-run/media/README.md +43 -0
- package/mock-run/orc-aftermath.md +392 -0
- package/mock-run/orc-boundary.md +356 -0
- package/mock-run/orc-brainstorm.md +177 -0
- package/mock-run/orc-budget.md +534 -0
- package/mock-run/orc-challenge-council.md +262 -0
- package/mock-run/orc-challenge.md +416 -0
- package/mock-run/orc-cli.md +200 -0
- package/mock-run/orc-diy.md +129 -0
- package/mock-run/orc-doc.md +448 -0
- package/mock-run/orc-explain.md +86 -0
- package/mock-run/orc-export.md +423 -0
- package/mock-run/orc-extra.md +392 -0
- package/mock-run/orc-fast.md +106 -0
- package/mock-run/orc-grill.md +151 -0
- package/mock-run/orc-handoff.md +480 -0
- package/mock-run/orc-pact.md +421 -0
- package/mock-run/orc-pattern.md +112 -0
- package/mock-run/orc-plan.md +108 -0
- package/mock-run/orc-pr-setup.md +126 -0
- package/mock-run/orc-quick.md +113 -0
- package/mock-run/orc-route.md +93 -0
- package/mock-run/orc-ui.md +125 -0
- package/mock-run/orc-ultra.md +103 -0
- package/mock-run/orc.md +157 -0
- package/mock-run/the-example-project.md +55 -0
- package/package.json +39 -0
- package/templates/agents/MODEL-MAPPING.md +168 -0
- package/templates/agents/orc-advisor-fable-5.md +50 -0
- package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -0
- package/templates/agents/orc-analyst-fable-5.md +115 -0
- package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -0
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -0
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -0
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -0
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -0
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -0
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -0
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -0
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -0
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -0
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +53 -0
- package/templates/agents/orc-claude-writer-opus-5-med.md +55 -0
- package/templates/agents/orc-context-combiner-opus-5-high.md +88 -0
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -0
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -0
- package/templates/agents/orc-executor-haiku-4-5.md +113 -0
- package/templates/agents/orc-executor-opus-4-7-high.md +114 -0
- package/templates/agents/orc-executor-opus-4-7-med.md +114 -0
- package/templates/agents/orc-executor-opus-4-8-high.md +114 -0
- package/templates/agents/orc-executor-opus-5-high.md +114 -0
- package/templates/agents/orc-executor-opus-5-low.md +114 -0
- package/templates/agents/orc-executor-opus-5-med.md +114 -0
- package/templates/agents/orc-executor-sonnet-4-6-high.md +114 -0
- package/templates/agents/orc-executor-sonnet-4-6-med.md +114 -0
- package/templates/agents/orc-executor-sonnet-5-high.md +114 -0
- package/templates/agents/orc-judge-fable-5.md +79 -0
- package/templates/agents/orc-judge-opus-5-xhigh.md +85 -0
- package/templates/agents/orc-learn-writer-opus-5-low.md +73 -0
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -0
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +63 -0
- package/templates/agents/orc-planner-fable-5.md +152 -0
- package/templates/agents/orc-planner-mini-opus-5-med.md +69 -0
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +67 -0
- package/templates/agents/orc-planner-opus-5-med.md +160 -0
- package/templates/agents/orc-retro-opus-5-med.md +73 -0
- package/templates/agents/orc-retro-sonnet-5-high.md +72 -0
- package/templates/agents/orc-reviewer-fable-5.md +57 -0
- package/templates/agents/orc-reviewer-opus-5-med.md +60 -0
- package/templates/agents/orc-scout-opus-5-low.md +40 -0
- package/templates/agents/orc-scout-sonnet-4-6-high.md +39 -0
- package/templates/agents/orc-system-analyst-opus-5-high.md +120 -0
- package/templates/agents/orc-test-author-opus-5-med.md +71 -0
- package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -0
- package/templates/agents/orc-verifier-opus-5-med.md +69 -0
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +79 -0
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -0
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +106 -0
- package/templates/commands/orc-aftermath.md +49 -0
- package/templates/commands/orc-analyze.md +21 -0
- package/templates/commands/orc-boundary.md +46 -0
- package/templates/commands/orc-brainstorm.md +51 -0
- package/templates/commands/orc-budget.md +54 -0
- package/templates/commands/orc-challenge.md +58 -0
- package/templates/commands/orc-claude.md +14 -0
- package/templates/commands/orc-diy.md +13 -0
- package/templates/commands/orc-doc.md +128 -0
- package/templates/commands/orc-explain.md +20 -0
- package/templates/commands/orc-export.md +46 -0
- package/templates/commands/orc-fast.md +15 -0
- package/templates/commands/orc-grill.md +40 -0
- package/templates/commands/orc-handoff.md +52 -0
- package/templates/commands/orc-learn.md +17 -0
- package/templates/commands/orc-mini.md +12 -0
- package/templates/commands/orc-pact.md +44 -0
- package/templates/commands/orc-pattern.md +15 -0
- package/templates/commands/orc-plan.md +22 -0
- package/templates/commands/orc-poly.md +21 -0
- package/templates/commands/orc-pr-driver.md +30 -0
- package/templates/commands/orc-pr-setup.md +31 -0
- package/templates/commands/orc-quick.md +33 -0
- package/templates/commands/orc-retro.md +17 -0
- package/templates/commands/orc-route.md +41 -0
- package/templates/commands/orc-ultra.md +17 -0
- package/templates/commands/orc-verify.md +11 -0
- package/templates/commands/orc-wiki.md +42 -0
- package/templates/commands/orc.md +16 -0
- package/templates/hooks/orc-effort-guard.js +178 -0
- package/templates/hooks/orc-statusline.js +305 -0
- package/templates/hooks/orc-trace.js +471 -0
- package/templates/hooks/orc-update-lib.js +125 -0
- package/templates/skills/_shared/README.md +50 -0
- package/templates/skills/_shared/detecting-artifacts.md +90 -0
- package/templates/skills/_shared/drift-recovery.md +98 -0
- package/templates/skills/_shared/extra-dispatch.md +1051 -0
- package/templates/skills/_shared/fable5-override.md +56 -0
- package/templates/skills/_shared/fallback-handoff.md +42 -0
- package/templates/skills/_shared/gh-stack-commands.md +65 -0
- package/templates/skills/_shared/gotchas.md +177 -0
- package/templates/skills/_shared/interview.md +144 -0
- package/templates/skills/_shared/lane-suspend.md +82 -0
- package/templates/skills/_shared/opus5-only.md +131 -0
- package/templates/skills/_shared/pr-templates.md +106 -0
- package/templates/skills/_shared/read-ladder.md +54 -0
- package/templates/skills/_shared/return-validation.md +145 -0
- package/templates/skills/_shared/smoke-gate.md +28 -0
- package/templates/skills/_shared/stack-plan.md +135 -0
- package/templates/skills/_shared/untrusted-input.md +63 -0
- package/templates/skills/context-combiner/SKILL.md +187 -0
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -0
- package/templates/skills/context-combiner/schemas/combined-requirement-spec.md +87 -0
- package/templates/skills/orc/README.md +150 -0
- package/templates/skills/orc/SKILL.md +526 -0
- package/templates/skills/orc/config.md +389 -0
- package/templates/skills/orc/examples/full-run-mock.md +73 -0
- package/templates/skills/orc/references/analyst-gates.md +124 -0
- package/templates/skills/orc/references/effort-and-mode.md +224 -0
- package/templates/skills/orc/references/house-rules.md +20 -0
- package/templates/skills/orc/references/intake.md +120 -0
- package/templates/skills/orc/references/log-protocol.md +39 -0
- package/templates/skills/orc/references/pattern-gate.md +89 -0
- package/templates/skills/orc/references/plan-handoff.md +84 -0
- package/templates/skills/orc/references/preflight-report.md +220 -0
- package/templates/skills/orc/references/security-checklist.md +39 -0
- package/templates/skills/orc/references/stop-and-resume.md +160 -0
- package/templates/skills/orc/references/trace-protocol.md +314 -0
- package/templates/skills/orc/references/ultra-mode.md +123 -0
- package/templates/skills/orc/references/wave-grouping.md +121 -0
- package/templates/skills/orc/references/wiki-consult.md +177 -0
- package/templates/skills/orc/schemas/checkpoint.md +122 -0
- package/templates/skills/orc/schemas/intent-spec.md +42 -0
- package/templates/skills/orc/schemas/planning-output.md +279 -0
- package/templates/skills/orc/subskills/orc-checkpoint/SKILL.md +55 -0
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +72 -0
- package/templates/skills/orc/subskills/orc-execution/core.md +151 -0
- package/templates/skills/orc/subskills/orc-execution/subagent.md +13 -0
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +264 -0
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -0
- package/templates/skills/orc/subskills/orc-pr/SKILL.md +51 -0
- package/templates/skills/orc/subskills/orc-pr/pr.md +22 -0
- package/templates/skills/orc/subskills/orc-pr/stack-gate.md +108 -0
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -0
- package/templates/skills/orc/subskills/orc-review-verify/core.md +135 -0
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -0
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -0
- package/templates/skills/orc/subskills/orc-testgen/core.md +59 -0
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -0
- package/templates/skills/orc-advisor/SKILL.md +60 -0
- package/templates/skills/orc-aftermath/SKILL.md +136 -0
- package/templates/skills/orc-aftermath/references/report.md +95 -0
- package/templates/skills/orc-analyze/SKILL.md +220 -0
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -0
- package/templates/skills/orc-analyze/references/branching.md +51 -0
- package/templates/skills/orc-analyze/references/deep-mode.md +27 -0
- package/templates/skills/orc-analyze/references/thin-input.md +77 -0
- package/templates/skills/orc-analyze/schemas/report-audit.md +83 -0
- package/templates/skills/orc-analyze/schemas/report-prose.md +63 -0
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -0
- package/templates/skills/orc-analyze/schemas/requirement-spec.md +77 -0
- package/templates/skills/orc-analyze-mini/SKILL.md +112 -0
- package/templates/skills/orc-analyze-mini/examples/quick-analysis-mock.md +31 -0
- package/templates/skills/orc-boundary/SKILL.md +208 -0
- package/templates/skills/orc-boundary/references/card.md +78 -0
- package/templates/skills/orc-boundary/references/gate.md +113 -0
- package/templates/skills/orc-brainstorm/SKILL.md +339 -0
- package/templates/skills/orc-brainstorm/references/brainstorm-doc.md +133 -0
- package/templates/skills/orc-brainstorm/references/lenses.md +152 -0
- package/templates/skills/orc-budget/SKILL.md +225 -0
- package/templates/skills/orc-budget/references/corpus.md +87 -0
- package/templates/skills/orc-challenge/README.md +142 -0
- package/templates/skills/orc-challenge/SKILL.md +255 -0
- package/templates/skills/orc-challenge/examples/code-module.md +110 -0
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -0
- package/templates/skills/orc-challenge/examples/tsd-two-iterations.md +213 -0
- package/templates/skills/orc-challenge/references/conservation.md +107 -0
- package/templates/skills/orc-challenge/references/council.md +315 -0
- package/templates/skills/orc-challenge/references/cycle-state.md +185 -0
- package/templates/skills/orc-challenge/references/dimensions.md +121 -0
- package/templates/skills/orc-challenge/references/fix-brief.md +130 -0
- package/templates/skills/orc-challenge/references/intake.md +171 -0
- package/templates/skills/orc-challenge/references/kinds.md +44 -0
- package/templates/skills/orc-challenge/references/plain-english.md +98 -0
- package/templates/skills/orc-challenge/references/rubric.md +109 -0
- package/templates/skills/orc-challenge/references/sealed-slice.md +97 -0
- package/templates/skills/orc-challenge/references/verdict-doc.md +154 -0
- package/templates/skills/orc-claude/SKILL.md +199 -0
- package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -0
- package/templates/skills/orc-claude/references/refresh.md +76 -0
- package/templates/skills/orc-claude/references/template.md +109 -0
- package/templates/skills/orc-diy/README.md +142 -0
- package/templates/skills/orc-diy/SKILL.md +70 -0
- package/templates/skills/orc-diy/references/blocks/analyze.md +24 -0
- package/templates/skills/orc-diy/references/blocks/execution.md +42 -0
- package/templates/skills/orc-diy/references/blocks/extra.md +55 -0
- package/templates/skills/orc-diy/references/blocks/header.md +55 -0
- package/templates/skills/orc-diy/references/blocks/mock-example.md +22 -0
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -0
- package/templates/skills/orc-diy/references/blocks/planning.md +34 -0
- package/templates/skills/orc-diy/references/blocks/review.md +18 -0
- package/templates/skills/orc-diy/references/blocks/scoring.md +16 -0
- package/templates/skills/orc-diy/references/blocks/security.md +25 -0
- package/templates/skills/orc-diy/references/blocks/ship.md +25 -0
- package/templates/skills/orc-diy/references/blocks/summary.md +18 -0
- package/templates/skills/orc-diy/references/blocks/testgen.md +17 -0
- package/templates/skills/orc-diy/references/blocks/trace.md +28 -0
- package/templates/skills/orc-diy/references/blocks/verify.md +25 -0
- package/templates/skills/orc-diy/references/blocks/wiki.md +26 -0
- package/templates/skills/orc-diy/references/compile.md +59 -0
- package/templates/skills/orc-diy/references/flow-schema.md +100 -0
- package/templates/skills/orc-diy/references/locked-blocks.md +37 -0
- package/templates/skills/orc-doc/README.md +229 -0
- package/templates/skills/orc-doc/SKILL.md +444 -0
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -0
- package/templates/skills/orc-doc/references/chunking.md +527 -0
- package/templates/skills/orc-doc/references/gates.md +311 -0
- package/templates/skills/orc-doc/references/generation-rules.md +122 -0
- package/templates/skills/orc-doc/references/house-rules.md +170 -0
- package/templates/skills/orc-doc/references/import-targets.md +40 -0
- package/templates/skills/orc-doc/references/plain-language.md +66 -0
- package/templates/skills/orc-doc/references/portable-markdown.md +74 -0
- package/templates/skills/orc-doc/references/resume-protocol.md +228 -0
- package/templates/skills/orc-doc/references/templates/collaboration.md +118 -0
- package/templates/skills/orc-doc/references/templates/prd.md +133 -0
- package/templates/skills/orc-doc/references/templates/report.md +102 -0
- package/templates/skills/orc-doc/references/templates/tsd.md +122 -0
- package/templates/skills/orc-doc/references/templates/workflow.md +112 -0
- package/templates/skills/orc-explain/SKILL.md +57 -0
- package/templates/skills/orc-export/SKILL.md +154 -0
- package/templates/skills/orc-fast/SKILL.md +188 -0
- package/templates/skills/orc-grill/SKILL.md +207 -0
- package/templates/skills/orc-grill/references/grill-doc.md +105 -0
- package/templates/skills/orc-handoff/SKILL.md +204 -0
- package/templates/skills/orc-handoff/references/handoff-log.md +67 -0
- package/templates/skills/orc-handoff/references/surfaces.md +88 -0
- package/templates/skills/orc-judge/SKILL.md +82 -0
- package/templates/skills/orc-learn/SKILL.md +156 -0
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -0
- package/templates/skills/orc-learn/references/deepen.md +70 -0
- package/templates/skills/orc-learn/references/refresh.md +65 -0
- package/templates/skills/orc-learn/references/template-knowledge.md +83 -0
- package/templates/skills/orc-learn/references/template-learning.md +67 -0
- package/templates/skills/orc-mini/SKILL.md +226 -0
- package/templates/skills/orc-mini/examples/mini-run-mock.md +50 -0
- package/templates/skills/orc-pact/SKILL.md +218 -0
- package/templates/skills/orc-pact/references/gate.md +70 -0
- package/templates/skills/orc-pact/references/ledger.md +99 -0
- package/templates/skills/orc-pattern/SKILL.md +124 -0
- package/templates/skills/orc-pattern/references/INDEX.md +73 -0
- package/templates/skills/orc-pattern/references/be-django.md +80 -0
- package/templates/skills/orc-pattern/references/be-express.md +82 -0
- package/templates/skills/orc-pattern/references/be-fastapi.md +107 -0
- package/templates/skills/orc-pattern/references/be-go.md +96 -0
- package/templates/skills/orc-pattern/references/be-nestjs.md +86 -0
- package/templates/skills/orc-pattern/references/be-postgres.md +98 -0
- package/templates/skills/orc-pattern/references/fe-a11y.md +36 -0
- package/templates/skills/orc-pattern/references/fe-angular.md +87 -0
- package/templates/skills/orc-pattern/references/fe-nextjs.md +65 -0
- package/templates/skills/orc-pattern/references/fe-perf.md +39 -0
- package/templates/skills/orc-pattern/references/fe-react.md +83 -0
- package/templates/skills/orc-pattern/references/fe-vue.md +75 -0
- package/templates/skills/orc-pattern/schemas/pattern-doc.md +62 -0
- package/templates/skills/orc-poly/SKILL.md +216 -0
- package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -0
- package/templates/skills/orc-poly/references/gather.md +70 -0
- package/templates/skills/orc-poly/references/poly-spec.md +84 -0
- package/templates/skills/orc-pr-driver/README.md +349 -0
- package/templates/skills/orc-pr-driver/SKILL.md +167 -0
- package/templates/skills/orc-pr-driver/references/conflict-playbook.md +78 -0
- package/templates/skills/orc-pr-driver/references/green-gate.md +105 -0
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +99 -0
- package/templates/skills/orc-pr-setup/README.md +436 -0
- package/templates/skills/orc-pr-setup/SKILL.md +184 -0
- package/templates/skills/orc-pr-setup/references/certainty-gate.md +66 -0
- package/templates/skills/orc-pr-setup/references/layer-taxonomy.md +67 -0
- package/templates/skills/orc-quick/README.md +423 -0
- package/templates/skills/orc-quick/SKILL.md +306 -0
- package/templates/skills/orc-quick/references/context-doc.md +114 -0
- package/templates/skills/orc-quick/references/dispatch-gate.md +163 -0
- package/templates/skills/orc-quick/references/gh-mode.md +127 -0
- package/templates/skills/orc-retro/SKILL.md +222 -0
- package/templates/skills/orc-retro/examples/retro-mock.md +171 -0
- package/templates/skills/orc-route/SKILL.md +165 -0
- package/templates/skills/orc-verify/SKILL.md +86 -0
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -0
- package/templates/skills/orc-wiki/README.md +325 -0
- package/templates/skills/orc-wiki/SKILL.md +322 -0
- package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -0
- package/templates/skills/orc-wiki/references/claude-md-injection.md +61 -0
- package/templates/skills/orc-wiki/references/crosslink-compile.md +39 -0
- package/templates/skills/orc-wiki/references/crosslink-kinds.md +57 -0
- package/templates/skills/orc-wiki/references/crosslink.md +284 -0
- package/templates/skills/orc-wiki/references/extra.md +79 -0
- package/templates/skills/orc-wiki/references/integrity-check.md +86 -0
- package/templates/skills/orc-wiki/references/orientation.md +51 -0
- package/templates/skills/orc-wiki/references/partial-refresh.md +203 -0
- package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -0
- package/templates/skills/orc-wiki/references/staleness.md +288 -0
- package/templates/skills/orc-wiki/schemas/crosslink-tag.md +166 -0
- package/templates/skills/orc-wiki/schemas/wiki-doc.md +120 -0
|
@@ -0,0 +1,536 @@
|
|
|
1
|
+
/* panels/extra.css — the Extra panel (v0.50.0), "Integrate with other AI model".
|
|
2
|
+
|
|
3
|
+
Loaded by app.html in the order its <link> sits in that manifest, and for CSS
|
|
4
|
+
the load order IS the cascade order — which is why 06-responsive and 04-motion
|
|
5
|
+
come after every panel sheet.
|
|
6
|
+
|
|
7
|
+
NO COLOUR TOKEN IS DEFINED HERE. Every one of them is declared once, on bare
|
|
8
|
+
:root, in 00-tokens.css.
|
|
9
|
+
|
|
10
|
+
The connect animation (v0.50.0) lives here as a keyframe; the reduced-motion
|
|
11
|
+
rule that REMOVES it lives in 04-motion.css with every other one, because
|
|
12
|
+
there is exactly ONE such media block in this codebase and a test asserts that
|
|
13
|
+
the literal appears in no panel sheet — including in a comment like this one,
|
|
14
|
+
which is why this paragraph does not spell it out. */
|
|
15
|
+
|
|
16
|
+
/* --- the boundary card ---------------------------------------------------- */
|
|
17
|
+
/* It renders ALWAYS and never behind a hover or a fold: somebody about to send
|
|
18
|
+
their source code to a third party should not have to go looking for the
|
|
19
|
+
paragraph that says so. The accent edge is what stops it reading as chrome. */
|
|
20
|
+
.ex-boundary { border-left: 3px solid var(--accent); }
|
|
21
|
+
.ex-boundary-line { margin: 0 0 var(--sp-2); color: var(--text-dim); font-size: 13px; line-height: 1.55; }
|
|
22
|
+
.ex-boundary-line:first-of-type { color: var(--text); }
|
|
23
|
+
|
|
24
|
+
/* --- the header strip ----------------------------------------------------- */
|
|
25
|
+
/* Same shape as Knowledge's, and for the same reason: the numbers that answer
|
|
26
|
+
"what is set up here?" belong on one line above everything else. A `—` means
|
|
27
|
+
the CLI could not compute it, and that is an ANSWER. */
|
|
28
|
+
.ex-strip {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-wrap: wrap;
|
|
31
|
+
gap: var(--sp-4);
|
|
32
|
+
padding: var(--sp-3);
|
|
33
|
+
border: 1px solid var(--line-soft);
|
|
34
|
+
border-radius: var(--radius-sm);
|
|
35
|
+
}
|
|
36
|
+
.ex-strip-item { display: grid; gap: 2px; }
|
|
37
|
+
.ex-strip-value { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
|
|
38
|
+
.ex-strip-label { font-size: 11px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .04em; }
|
|
39
|
+
|
|
40
|
+
/* --- one connection ------------------------------------------------------- */
|
|
41
|
+
.ex-profile {
|
|
42
|
+
border: 1px solid var(--line-soft);
|
|
43
|
+
border-radius: var(--radius-sm);
|
|
44
|
+
padding: var(--sp-3);
|
|
45
|
+
margin-top: var(--sp-2);
|
|
46
|
+
display: grid;
|
|
47
|
+
gap: var(--sp-2);
|
|
48
|
+
}
|
|
49
|
+
.ex-name { font-weight: 600; }
|
|
50
|
+
.ex-finding { display: block; }
|
|
51
|
+
|
|
52
|
+
/* The model names a real connection test read back. They are ids, so they are
|
|
53
|
+
monospace, and the row scrolls inside itself rather than widening the page. */
|
|
54
|
+
.ex-models {
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-wrap: wrap;
|
|
57
|
+
gap: var(--sp-1);
|
|
58
|
+
max-height: 92px;
|
|
59
|
+
overflow: auto;
|
|
60
|
+
scrollbar-width: thin;
|
|
61
|
+
scrollbar-color: var(--line) transparent;
|
|
62
|
+
}
|
|
63
|
+
.ex-models::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
64
|
+
.ex-models::-webkit-scrollbar-track { background: transparent; }
|
|
65
|
+
.ex-models::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
|
|
66
|
+
.ex-model {
|
|
67
|
+
font-size: 11px;
|
|
68
|
+
color: var(--text-dim);
|
|
69
|
+
background: var(--surface-2);
|
|
70
|
+
border-radius: var(--radius-sm);
|
|
71
|
+
padding: 1px var(--sp-2);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* --- the provider catalog ------------------------------------------------- */
|
|
75
|
+
/* A fixed-width tile grid, so the catalog is the same picture whatever is in it
|
|
76
|
+
— the VAULT lesson: a box sized by its longest label cannot be laid out by
|
|
77
|
+
arithmetic. It wraps; it never squeezes. */
|
|
78
|
+
.ex-provider-grid {
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
|
|
81
|
+
gap: var(--sp-2);
|
|
82
|
+
margin: var(--sp-2) 0;
|
|
83
|
+
}
|
|
84
|
+
.ex-provider {
|
|
85
|
+
border: 1px solid var(--line-soft);
|
|
86
|
+
border-radius: var(--radius-sm);
|
|
87
|
+
padding: var(--sp-3);
|
|
88
|
+
display: grid;
|
|
89
|
+
gap: var(--sp-2);
|
|
90
|
+
align-content: start;
|
|
91
|
+
}
|
|
92
|
+
.ex-provider-id { font-weight: 600; font-size: 13px; }
|
|
93
|
+
.ex-provider-label { color: var(--text-dim); font-size: 12px; }
|
|
94
|
+
.ex-link { color: var(--accent); font-size: 12px; text-decoration: none; }
|
|
95
|
+
.ex-link:hover { text-decoration: underline; }
|
|
96
|
+
|
|
97
|
+
/* --- the connect modal: the probe note, the wire, the result -------------- */
|
|
98
|
+
/* R11's first animation. The pulse travels from this machine to the provider
|
|
99
|
+
and lands green or red — the feedback that makes an invisible network call
|
|
100
|
+
feel like an event, in the one place where a user has no other way to tell
|
|
101
|
+
whether anything happened. */
|
|
102
|
+
|
|
103
|
+
.ex-probe {
|
|
104
|
+
border-left: 3px solid var(--line);
|
|
105
|
+
padding-left: var(--sp-3);
|
|
106
|
+
display: grid;
|
|
107
|
+
gap: 2px;
|
|
108
|
+
}
|
|
109
|
+
.ex-probe-head { font-weight: 600; font-size: 13px; }
|
|
110
|
+
|
|
111
|
+
.ex-wire {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
gap: var(--sp-2);
|
|
115
|
+
padding: var(--sp-3) 0;
|
|
116
|
+
}
|
|
117
|
+
.ex-wire-end {
|
|
118
|
+
font-size: 11px;
|
|
119
|
+
color: var(--text-faint);
|
|
120
|
+
text-transform: uppercase;
|
|
121
|
+
letter-spacing: .04em;
|
|
122
|
+
white-space: nowrap;
|
|
123
|
+
}
|
|
124
|
+
/* The line is the only thing that changes colour, so the whole state of the
|
|
125
|
+
probe reads at a glance without a single word moving. */
|
|
126
|
+
.ex-wire-line {
|
|
127
|
+
position: relative;
|
|
128
|
+
flex: 1 1 auto;
|
|
129
|
+
min-width: 40px;
|
|
130
|
+
height: 2px;
|
|
131
|
+
border-radius: 2px;
|
|
132
|
+
background: var(--line);
|
|
133
|
+
transition: background var(--dur) var(--ease);
|
|
134
|
+
}
|
|
135
|
+
.ex-wire-dot {
|
|
136
|
+
position: absolute;
|
|
137
|
+
top: 50%;
|
|
138
|
+
left: 0;
|
|
139
|
+
width: 8px;
|
|
140
|
+
height: 8px;
|
|
141
|
+
margin-top: -4px;
|
|
142
|
+
border-radius: 50%;
|
|
143
|
+
background: var(--accent);
|
|
144
|
+
opacity: 0;
|
|
145
|
+
}
|
|
146
|
+
/* INFINITE while the probe is in flight, because a probe has no known duration
|
|
147
|
+
— which is exactly why 04-motion.css removes this outright rather than
|
|
148
|
+
capping it: a capped infinite animation freezes mid-travel, and a dot stopped
|
|
149
|
+
half way across reads as a request that hung. */
|
|
150
|
+
.ex-wire-live .ex-wire-dot { animation: ex-travel 1100ms var(--ease) infinite; }
|
|
151
|
+
.ex-wire-live .ex-wire-line { background: var(--accent-dim); }
|
|
152
|
+
.ex-wire-ok .ex-wire-line { background: var(--ok); }
|
|
153
|
+
.ex-wire-bad .ex-wire-line { background: var(--bad); }
|
|
154
|
+
@keyframes ex-travel {
|
|
155
|
+
0% { left: 0; opacity: 0; }
|
|
156
|
+
15% { opacity: 1; }
|
|
157
|
+
85% { opacity: 1; }
|
|
158
|
+
100% { left: 100%; opacity: 0; }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.ex-result { display: grid; gap: var(--sp-2); }
|
|
162
|
+
.ex-result-ok,
|
|
163
|
+
.ex-result-bad {
|
|
164
|
+
display: grid;
|
|
165
|
+
gap: var(--sp-2);
|
|
166
|
+
padding: var(--sp-3);
|
|
167
|
+
border-radius: var(--radius-sm);
|
|
168
|
+
border: 1px solid var(--line-soft);
|
|
169
|
+
}
|
|
170
|
+
.ex-result-ok { border-left: 3px solid var(--ok); }
|
|
171
|
+
.ex-result-bad { border-left: 3px solid var(--bad); }
|
|
172
|
+
/* v0.53.0 — the verdict LANDS rather than appears. A probe has no known
|
|
173
|
+
duration, so the dot loops while it runs (`.ex-wire-dot`, removed outright
|
|
174
|
+
under reduced motion) and this is the punctuation at the end of it. ONE SHOT,
|
|
175
|
+
finishing at its resting state, so 04-motion.css can cap it without freezing
|
|
176
|
+
anything half way — and the border colour still carries the whole result with
|
|
177
|
+
motion off. */
|
|
178
|
+
.ex-result-ok,
|
|
179
|
+
.ex-result-bad { animation: ex-land var(--dur) var(--ease); }
|
|
180
|
+
@keyframes ex-land {
|
|
181
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
182
|
+
to { opacity: 1; transform: none; }
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/* `hidden` LOSES to an author `display`, which is how a form ends up showing the
|
|
186
|
+
fields it just hid: `.field` is a flex box and `.banner` is a flex box, and an
|
|
187
|
+
author rule beats the UA stylesheet's `[hidden] { display: none }` whatever
|
|
188
|
+
its specificity. Every box this form hides is named here.
|
|
189
|
+
|
|
190
|
+
The engine `cli` fields, the region picker on a provider with one region and
|
|
191
|
+
the paste-a-key warning all shipped VISIBLE in the first draft because of
|
|
192
|
+
exactly this. */
|
|
193
|
+
.ex-form-hide[hidden] { display: none; }
|
|
194
|
+
|
|
195
|
+
/* The credential choice. The recommended option is first and selected, and the
|
|
196
|
+
other one is offered with its cost printed beside it rather than hidden. */
|
|
197
|
+
.ex-cred-choice { display: grid; gap: var(--sp-2); }
|
|
198
|
+
.ex-cred-opt { display: flex; align-items: center; gap: var(--sp-2); font-size: 13px; }
|
|
199
|
+
|
|
200
|
+
.ex-save { display: grid; gap: var(--sp-2); margin-top: var(--sp-2); }
|
|
201
|
+
|
|
202
|
+
/* --- the band ladder (v0.53.0) ------------------------------------------- */
|
|
203
|
+
/* ONE VERTICAL LADDER, and the row you read is the row you edit.
|
|
204
|
+
It replaces a horizontal 0→100 rail plus a separate list of editable rows —
|
|
205
|
+
the same data twice, with only the second copy interactive.
|
|
206
|
+
|
|
207
|
+
The proportional bar is a width INSIDE the row rather than the row's own
|
|
208
|
+
width. That is the whole geometric fix: the old rail gave each segment
|
|
209
|
+
`flex: 0 0 var(--w)` with `min-width: 128px`, so the floor fought the
|
|
210
|
+
percentage and a 10-point band came out nearly as wide as a 30-point one
|
|
211
|
+
while the axis underneath promised they were to scale. A full-width track
|
|
212
|
+
holding a `var(--w)` bar is honest at every viewport, needs no floor, needs
|
|
213
|
+
no horizontal scroll, and can never clip a target name. */
|
|
214
|
+
|
|
215
|
+
.ex-ladder { display: grid; gap: var(--sp-1); margin: var(--sp-3) 0 var(--sp-2); }
|
|
216
|
+
.ex-band {
|
|
217
|
+
border: 1px solid var(--line-soft);
|
|
218
|
+
border-radius: var(--radius-sm);
|
|
219
|
+
overflow: hidden;
|
|
220
|
+
}
|
|
221
|
+
.ex-band.open { border-color: var(--accent); }
|
|
222
|
+
/* A GRID, and it DECLARES ITS COLUMNS — the .run-card lesson. Five children,
|
|
223
|
+
five columns, every one of them fixed except the two that hold text. */
|
|
224
|
+
.ex-band-head {
|
|
225
|
+
display: grid;
|
|
226
|
+
grid-template-columns: minmax(0, 22%) minmax(0, auto) minmax(0, 1fr) auto 16px;
|
|
227
|
+
align-items: center;
|
|
228
|
+
gap: var(--sp-2);
|
|
229
|
+
width: 100%;
|
|
230
|
+
padding: var(--sp-2) var(--sp-3);
|
|
231
|
+
background: none;
|
|
232
|
+
border: 0;
|
|
233
|
+
text-align: left;
|
|
234
|
+
color: inherit;
|
|
235
|
+
font: inherit;
|
|
236
|
+
cursor: pointer;
|
|
237
|
+
}
|
|
238
|
+
.ex-band-head:hover { background: var(--surface-2); }
|
|
239
|
+
.ex-band.open > .ex-band-head { background: var(--surface-2); }
|
|
240
|
+
.ex-band-track {
|
|
241
|
+
display: block;
|
|
242
|
+
height: 10px;
|
|
243
|
+
border-radius: 999px;
|
|
244
|
+
background: var(--line-soft);
|
|
245
|
+
overflow: hidden;
|
|
246
|
+
}
|
|
247
|
+
/* The one-shot entrance: the bar grows to its width on first paint and FINISHES
|
|
248
|
+
at its resting state, so 04-motion.css can cap it without freezing anything
|
|
249
|
+
mid-way — the one-shot rule the staged-segment grow already followed. */
|
|
250
|
+
.ex-band-bar {
|
|
251
|
+
display: block;
|
|
252
|
+
width: var(--w);
|
|
253
|
+
height: 100%;
|
|
254
|
+
border-radius: 999px;
|
|
255
|
+
animation: ex-grow var(--dur-slow) var(--ease);
|
|
256
|
+
}
|
|
257
|
+
.ex-band-claude { background: var(--accent-dim); }
|
|
258
|
+
.ex-band-extra { background: var(--ok); }
|
|
259
|
+
/* A staged bar is dashed as well as animated: the dashed edge is what carries
|
|
260
|
+
the meaning when motion is off. */
|
|
261
|
+
.ex-band-staged { outline: 1px dashed var(--text-faint); outline-offset: 1px; }
|
|
262
|
+
@keyframes ex-grow {
|
|
263
|
+
from { transform: scaleX(.15); transform-origin: left center; opacity: .35; }
|
|
264
|
+
to { transform: none; opacity: 1; }
|
|
265
|
+
}
|
|
266
|
+
.ex-band-mid { display: grid; gap: 1px; min-width: 0; }
|
|
267
|
+
.ex-band-label { font-size: 12px; font-weight: 600; white-space: nowrap; }
|
|
268
|
+
.ex-band-range { font-size: 11px; white-space: nowrap; }
|
|
269
|
+
/* NEVER TRUNCATED. The target is the most important fact in the row, and it was
|
|
270
|
+
the one thing the old rail clipped. It wraps instead. */
|
|
271
|
+
.ex-band-target { font-size: 12px; min-width: 0; overflow-wrap: anywhere; }
|
|
272
|
+
.ex-band-chips { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; justify-content: flex-end; }
|
|
273
|
+
.ex-band-caret { color: var(--text-faint); transition: transform var(--dur-fast) var(--ease); justify-self: end; }
|
|
274
|
+
.ex-band.open .ex-band-caret { transform: rotate(90deg); }
|
|
275
|
+
.ex-band-pane:not(:empty) {
|
|
276
|
+
padding: var(--sp-3);
|
|
277
|
+
border-top: 1px solid var(--line-soft);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* THE POSITIONS (v0.55.0) — the same row, minus the bar.
|
|
281
|
+
|
|
282
|
+
A band has a width because it covers a range of scores. A POSITION covers
|
|
283
|
+
nothing: it is a point. So this row reuses `.ex-band` wholesale and simply
|
|
284
|
+
DECLARES ONE FEWER COLUMN, rather than drawing a bar at some invented width
|
|
285
|
+
the CLI never computed. The `.run-card` lesson stated once more: a row whose
|
|
286
|
+
child count differs from another's must declare its own columns, never
|
|
287
|
+
inherit a template built for a different number of children. */
|
|
288
|
+
.ex-slot-head { grid-template-columns: minmax(0, 22%) minmax(0, auto) minmax(0, 1fr) auto 16px; }
|
|
289
|
+
.ex-slot-when { font-size: 11px; white-space: normal; overflow-wrap: anywhere; }
|
|
290
|
+
/* The six `extra_roles` values nothing resolves. Reported, never fixed, and
|
|
291
|
+
visually quiet: a permanent honest gap is not a caution. */
|
|
292
|
+
.ex-unreachable {
|
|
293
|
+
margin-top: var(--sp-3);
|
|
294
|
+
padding-top: var(--sp-2);
|
|
295
|
+
border-top: 1px solid var(--line-soft);
|
|
296
|
+
}
|
|
297
|
+
.ex-unreachable-list { display: grid; gap: 2px; margin-top: var(--sp-1); }
|
|
298
|
+
.ex-lane-slot { display: flex; flex-wrap: wrap; gap: 4px; padding-left: var(--sp-2); }
|
|
299
|
+
|
|
300
|
+
/* THE LEGEND. Two colours were carrying the whole meaning of the picture and
|
|
301
|
+
neither was ever named anywhere on the page. */
|
|
302
|
+
.ex-legend { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
|
|
303
|
+
.ex-legend-item { display: inline-flex; align-items: center; gap: var(--sp-2); }
|
|
304
|
+
.ex-legend-swatch { width: 18px; height: 10px; border-radius: 999px; flex: 0 0 auto; }
|
|
305
|
+
|
|
306
|
+
.ex-route-controls { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
|
|
307
|
+
.ex-route-controls .text-input { flex: 1 1 160px; min-width: 0; }
|
|
308
|
+
.ex-route-staged { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
|
|
309
|
+
|
|
310
|
+
/* --- what it ran, and what it cost (W12) ---------------------------------- */
|
|
311
|
+
/* Every routed band keeps its slot, including one nothing has run through — a
|
|
312
|
+
row that reads `—` everywhere is an ANSWER, and dropping it would make "this
|
|
313
|
+
band cost nothing" and "nothing has run here yet" identical. */
|
|
314
|
+
.ex-cost-row {
|
|
315
|
+
border: 1px solid var(--line-soft);
|
|
316
|
+
border-radius: var(--radius-sm);
|
|
317
|
+
padding: var(--sp-3);
|
|
318
|
+
margin-top: var(--sp-2);
|
|
319
|
+
display: grid;
|
|
320
|
+
gap: var(--sp-2);
|
|
321
|
+
}
|
|
322
|
+
.ex-cost-list {
|
|
323
|
+
border-left: 3px solid var(--warn);
|
|
324
|
+
padding-left: var(--sp-3);
|
|
325
|
+
margin-top: var(--sp-3);
|
|
326
|
+
display: grid;
|
|
327
|
+
gap: 2px;
|
|
328
|
+
}
|
|
329
|
+
.ex-rates { margin-top: var(--sp-3); display: grid; gap: var(--sp-2); justify-items: start; }
|
|
330
|
+
.ex-rates pre { max-height: 240px; overflow: auto; width: 100%; }
|
|
331
|
+
|
|
332
|
+
/* --- the local tools, the gate and the live result (v0.51.0) -------------- */
|
|
333
|
+
/* A tool box is a GRID and it DECLARES its shape per state, because the four
|
|
334
|
+
states carry different numbers of children — the `.run-card` lesson: a grid
|
|
335
|
+
that does not declare its columns prints one child on top of another. Every
|
|
336
|
+
state gets its own border colour so the card that needs an action is the one
|
|
337
|
+
your eye lands on. */
|
|
338
|
+
.ex-tool-grid {
|
|
339
|
+
display: grid;
|
|
340
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
341
|
+
gap: var(--sp-3);
|
|
342
|
+
margin-top: var(--sp-3);
|
|
343
|
+
}
|
|
344
|
+
/* v0.53.0 — A TOOL CARD IS CHILD-COUNT AGNOSTIC, AND THAT IS NOT A PREFERENCE.
|
|
345
|
+
v0.52.0 declared `grid-template-rows: auto auto auto 1fr auto` here to absorb
|
|
346
|
+
the height difference between two tools in ONE place, and the diagnosis was
|
|
347
|
+
right. The remedy was not: FOUR STATES CARRY FOUR DIFFERENT NUMBERS OF
|
|
348
|
+
CHILDREN, so a POSITIONAL row template cannot describe this card. A
|
|
349
|
+
ready-and-verified card has exactly five children — head, kv, path, the
|
|
350
|
+
"connected as" chip, actions — so the chip landed in the `1fr` slack row, a
|
|
351
|
+
grid item defaults to `align-self: stretch`, and `border-radius: 999px` on a
|
|
352
|
+
tall full-width box drew a ~250px green ELLIPSE. It hit whichever card had the
|
|
353
|
+
shortest content in its row, so it was never about one tool.
|
|
354
|
+
|
|
355
|
+
So: no row template at all. The footer is pushed down by the FREE SPACE, and
|
|
356
|
+
nothing can be stretched by a slot it was never meant to occupy. This cannot
|
|
357
|
+
break when a fifth state joins. */
|
|
358
|
+
.ex-tool {
|
|
359
|
+
border: 1px solid var(--line-soft);
|
|
360
|
+
border-radius: var(--radius-sm);
|
|
361
|
+
padding: var(--sp-3);
|
|
362
|
+
display: flex;
|
|
363
|
+
flex-direction: column;
|
|
364
|
+
gap: var(--sp-2);
|
|
365
|
+
}
|
|
366
|
+
.ex-tool > .row-actions:last-child { margin-top: auto; }
|
|
367
|
+
/* v0.53.0 — and when the state's diagnostics disclosure is the last child, IT
|
|
368
|
+
absorbs the slack instead. Same rule, one child further down: whatever is at
|
|
369
|
+
the bottom of the card lines up across the row. */
|
|
370
|
+
.ex-tool > .ex-more:last-child { margin-top: auto; }
|
|
371
|
+
/* A CHIP STATES A FACT. It is never a layout element and it never stretches —
|
|
372
|
+
in either axis. */
|
|
373
|
+
.ex-tool > .chip { align-self: flex-start; flex: 0 0 auto; }
|
|
374
|
+
.ex-tool .kv { align-content: start; }
|
|
375
|
+
/* The one genuinely unbounded field. `auth_detail` is DIAGNOSTIC, not prose, so
|
|
376
|
+
it is clamped rather than allowed to make one card taller than its neighbour
|
|
377
|
+
on its own. */
|
|
378
|
+
.ex-tool .kv dd.ex-auth-detail {
|
|
379
|
+
display: -webkit-box;
|
|
380
|
+
-webkit-line-clamp: 2;
|
|
381
|
+
-webkit-box-orient: vertical;
|
|
382
|
+
overflow: hidden;
|
|
383
|
+
}
|
|
384
|
+
/* The disclosure a tool card's diagnostics live behind. A native <details>, so
|
|
385
|
+
the marker is the browser's — only the summary needs to read like the rest of
|
|
386
|
+
the panel. */
|
|
387
|
+
.ex-more { margin-top: var(--sp-1); }
|
|
388
|
+
.ex-more > summary {
|
|
389
|
+
cursor: pointer;
|
|
390
|
+
font-size: 12px;
|
|
391
|
+
color: var(--text-dim);
|
|
392
|
+
list-style: revert;
|
|
393
|
+
}
|
|
394
|
+
.ex-more > summary:hover { color: var(--text); }
|
|
395
|
+
.ex-more[open] > summary { margin-bottom: var(--sp-2); }
|
|
396
|
+
.ex-more > *:not(summary) { margin-top: var(--sp-2); }
|
|
397
|
+
/* The "why" disclosure sits under a card's instruction line, so it is indented
|
|
398
|
+
to read as a footnote to it rather than as another instruction. */
|
|
399
|
+
.ex-why { margin-top: calc(var(--sp-1) * -1); }
|
|
400
|
+
.ex-why > summary { font-size: 11px; }
|
|
401
|
+
|
|
402
|
+
.ex-tool-absent { border-color: var(--bad); }
|
|
403
|
+
.ex-tool-outdated,
|
|
404
|
+
.ex-tool-unauthenticated { border-color: var(--warn); }
|
|
405
|
+
.ex-tool-ready { border-color: var(--ok); }
|
|
406
|
+
.ex-tool-name { font-weight: 600; }
|
|
407
|
+
.ex-tool-path { word-break: break-all; }
|
|
408
|
+
|
|
409
|
+
/* PREVIEW THEN APPLY: the exact command sits ABOVE the button that runs it, and
|
|
410
|
+
it is selectable so the paste-it-yourself path is always open. */
|
|
411
|
+
.ex-install,
|
|
412
|
+
.ex-keyhelp { display: grid; gap: var(--sp-2); justify-items: start; }
|
|
413
|
+
.ex-install .action-cmd,
|
|
414
|
+
.ex-keyhelp .action-cmd { width: 100%; user-select: text; }
|
|
415
|
+
|
|
416
|
+
/* WHICH LANE A BAND GOVERNS (v0.52.0). One row per lane, and every row keeps
|
|
417
|
+
its slot whatever its verdict — filtering out the lanes that never route
|
|
418
|
+
would make "this lane cannot go foreign" and "I have not configured it yet"
|
|
419
|
+
look identical. The OFF-phase-keeps-its-slot rule, one panel over. */
|
|
420
|
+
.ex-lanes { display: grid; gap: var(--sp-2); margin-top: var(--sp-2); }
|
|
421
|
+
.ex-lane {
|
|
422
|
+
display: grid;
|
|
423
|
+
gap: 4px;
|
|
424
|
+
padding: var(--sp-2) var(--sp-3);
|
|
425
|
+
border-left: 2px solid var(--line-soft);
|
|
426
|
+
}
|
|
427
|
+
.ex-lane-name { font-weight: 600; }
|
|
428
|
+
|
|
429
|
+
/* THE GATE. It is a banner rather than a card because it is not a thing you
|
|
430
|
+
configure — it is the reason the things below it are missing. */
|
|
431
|
+
.ex-gate { display: grid; gap: var(--sp-2); }
|
|
432
|
+
.ex-gate-head { font-weight: 600; }
|
|
433
|
+
|
|
434
|
+
/* The model control. A dropdown and a text box occupy the same slot, so the row
|
|
435
|
+
does not change width when the CLI answers `list` instead of `free-text`. */
|
|
436
|
+
/* `flex` belongs to the ROUTING ROW, which lays these out horizontally. Left on
|
|
437
|
+
the base class it also applied inside the test modal's `.field` — a COLUMN
|
|
438
|
+
flex container — where `flex-grow: 1` stretched the control to fill the form
|
|
439
|
+
and left a hand's width of dead space under the picker. */
|
|
440
|
+
.ex-modelbox { display: grid; gap: 4px; min-width: 0; }
|
|
441
|
+
.ex-route-controls .ex-modelbox { flex: 1 1 220px; }
|
|
442
|
+
.ex-modelbox > .text-input { width: 100%; }
|
|
443
|
+
|
|
444
|
+
/* THE LIVE RESULT. The reply is a third party's text: it scrolls inside its own
|
|
445
|
+
box and never widens the modal. */
|
|
446
|
+
.ex-live {
|
|
447
|
+
border-top: 1px solid var(--line-soft);
|
|
448
|
+
margin-top: var(--sp-3);
|
|
449
|
+
padding-top: var(--sp-3);
|
|
450
|
+
display: grid;
|
|
451
|
+
gap: var(--sp-2);
|
|
452
|
+
}
|
|
453
|
+
.ex-live-reply { max-height: 200px; overflow: auto; }
|
|
454
|
+
|
|
455
|
+
/* A tool box carries SENTENCES, not paths, so it opts out of the global
|
|
456
|
+
`word-break: break-all` that a base URL needs — that rule broke ordinary
|
|
457
|
+
words mid-syllable in the one card written to be read rather than scanned.
|
|
458
|
+
The binary PATH keeps the break, because a path has no word boundaries. */
|
|
459
|
+
.ex-tool .kv dd { word-break: normal; overflow-wrap: anywhere; }
|
|
460
|
+
.ex-tool-path { word-break: break-all; }
|
|
461
|
+
|
|
462
|
+
/* A <select> inside a grid stretches to the row, which made the model picker a
|
|
463
|
+
120px-tall box with one line in it. It sizes itself. */
|
|
464
|
+
.ex-modelbox > select.text-input { align-self: start; height: auto; }
|
|
465
|
+
|
|
466
|
+
/* The live result is PROSE beside numbers — the honest "this tool does not say
|
|
467
|
+
which model answered" sentence lives in a `kv` value, and the global
|
|
468
|
+
`word-break: break-all` was hyphenating it mid-word. Same reasoning as
|
|
469
|
+
`.ex-tool`: a path breaks anywhere, a sentence breaks on spaces. */
|
|
470
|
+
.ex-live .kv dd { word-break: normal; overflow-wrap: anywhere; }
|
|
471
|
+
|
|
472
|
+
/* ── RECOVERY (v0.54.0) ──────────────────────────────────────────────────────
|
|
473
|
+
One row per journal directory, EXPANDED IN PLACE — the Runs-row rule: there
|
|
474
|
+
is no detail box below the list.
|
|
475
|
+
|
|
476
|
+
A ROW IS A FLEX COLUMN, NOT A DECLARED GRID. Five states carry five different
|
|
477
|
+
numbers of children (an orphan has no outcome chip, a single attempt has no
|
|
478
|
+
attempt chip, engine `cli` has no per-turn note), and `.ex-tool`'s 250px
|
|
479
|
+
ellipse is what a declared row template does to a card whose child count
|
|
480
|
+
changes with its state. A chip states a FACT — it is never a layout element. */
|
|
481
|
+
.ex-rec-list { display: flex; flex-direction: column; gap: var(--sp-2); }
|
|
482
|
+
.ex-rec-row {
|
|
483
|
+
border: 1px solid var(--line-soft);
|
|
484
|
+
border-radius: var(--r-md);
|
|
485
|
+
background: var(--surface-1);
|
|
486
|
+
overflow: hidden;
|
|
487
|
+
}
|
|
488
|
+
.ex-rec-head {
|
|
489
|
+
display: flex;
|
|
490
|
+
align-items: center;
|
|
491
|
+
gap: var(--sp-3);
|
|
492
|
+
width: 100%;
|
|
493
|
+
padding: var(--sp-2) var(--sp-3);
|
|
494
|
+
background: none;
|
|
495
|
+
border: 0;
|
|
496
|
+
color: inherit;
|
|
497
|
+
font: inherit;
|
|
498
|
+
text-align: left;
|
|
499
|
+
cursor: pointer;
|
|
500
|
+
}
|
|
501
|
+
.ex-rec-head:hover { background: var(--surface-2); }
|
|
502
|
+
.ex-rec-row.open > .ex-rec-head { background: var(--surface-2); }
|
|
503
|
+
.ex-rec-task { font-weight: 600; flex: 0 0 auto; }
|
|
504
|
+
/* The identity may be long and must not push the caret off the row. */
|
|
505
|
+
.ex-rec-who { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
506
|
+
.ex-rec-chips { display: inline-flex; flex-wrap: wrap; gap: var(--sp-2); flex: 0 0 auto; }
|
|
507
|
+
.ex-rec-caret { color: var(--text-faint); transition: transform var(--dur-fast) var(--ease); flex: 0 0 auto; }
|
|
508
|
+
.ex-rec-row.open .ex-rec-caret { transform: rotate(90deg); }
|
|
509
|
+
.ex-rec-pane:not(:empty) { padding: var(--sp-3); border-top: 1px solid var(--line-soft); }
|
|
510
|
+
|
|
511
|
+
.ex-rec-attr,
|
|
512
|
+
.ex-rec-files,
|
|
513
|
+
.ex-rec-acc,
|
|
514
|
+
.ex-rec-floor {
|
|
515
|
+
border: 1px solid var(--line-soft);
|
|
516
|
+
border-radius: var(--r-sm);
|
|
517
|
+
padding: var(--sp-2) var(--sp-3);
|
|
518
|
+
display: flex;
|
|
519
|
+
flex-direction: column;
|
|
520
|
+
gap: var(--sp-1);
|
|
521
|
+
}
|
|
522
|
+
/* A RECOVERED VECTOR IS A FLOOR and is drawn distinctly, so it can never be
|
|
523
|
+
mistaken for a measured total. */
|
|
524
|
+
.ex-rec-floor { border-color: var(--warn-line, var(--line)); }
|
|
525
|
+
.ex-rec-file { gap: var(--sp-2); }
|
|
526
|
+
.ex-rec-file .mono { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
|
|
527
|
+
|
|
528
|
+
.ex-rel { display: flex; flex-direction: column; gap: var(--sp-2); }
|
|
529
|
+
.ex-rel-row {
|
|
530
|
+
display: flex;
|
|
531
|
+
flex-direction: column;
|
|
532
|
+
gap: var(--sp-1);
|
|
533
|
+
border: 1px solid var(--line-soft);
|
|
534
|
+
border-radius: var(--r-sm);
|
|
535
|
+
padding: var(--sp-2) var(--sp-3);
|
|
536
|
+
}
|