@jterrats/open-orchestra 1.1.2 → 1.2.2
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/AGENTS.md +14 -1
- package/CHANGELOG.md +48 -0
- package/CLAUDE.md +14 -1
- package/README.md +21 -6
- package/dist/autonomous-phase-lifecycle.js +52 -2
- package/dist/autonomous-phase-lifecycle.js.map +1 -1
- package/dist/autonomous-run-state.d.ts +3 -1
- package/dist/autonomous-run-state.js +28 -2
- package/dist/autonomous-run-state.js.map +1 -1
- package/dist/autonomous-run-store.js +9 -0
- package/dist/autonomous-run-store.js.map +1 -1
- package/dist/benchmark.js +54 -6
- package/dist/benchmark.js.map +1 -1
- package/dist/capability-commands.d.ts +2 -0
- package/dist/capability-commands.js +82 -0
- package/dist/capability-commands.js.map +1 -0
- package/dist/capture-commands.d.ts +16 -0
- package/dist/capture-commands.js +70 -0
- package/dist/capture-commands.js.map +1 -0
- package/dist/cli-capability-catalog.d.ts +10 -0
- package/dist/cli-capability-catalog.js +110 -0
- package/dist/cli-capability-catalog.js.map +1 -0
- package/dist/cli-capability-data.d.ts +2 -0
- package/dist/cli-capability-data.js +233 -0
- package/dist/cli-capability-data.js.map +1 -0
- package/dist/cli-capability-renderer.d.ts +2 -0
- package/dist/cli-capability-renderer.js +43 -0
- package/dist/cli-capability-renderer.js.map +1 -0
- package/dist/cli-capability-types.d.ts +30 -0
- package/dist/cli-capability-types.js +2 -0
- package/dist/cli-capability-types.js.map +1 -0
- package/dist/command-manifest.js +11 -5
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-routes-integrations.js +2 -1
- package/dist/command-routes-integrations.js.map +1 -1
- package/dist/command-routes.js +8 -1
- package/dist/command-routes.js.map +1 -1
- package/dist/commands.d.ts +4 -2
- package/dist/commands.js +7 -2
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/delivery-commands.js +1 -0
- package/dist/delivery-commands.js.map +1 -1
- package/dist/delivery-dashboard-charts.js +7 -3
- package/dist/delivery-dashboard-charts.js.map +1 -1
- package/dist/delivery-dashboard-types.d.ts +4 -0
- package/dist/delivery-dashboard.js +6 -0
- package/dist/delivery-dashboard.js.map +1 -1
- package/dist/effort-classification.d.ts +1 -0
- package/dist/effort-classification.js +15 -0
- package/dist/effort-classification.js.map +1 -1
- package/dist/fs-utils.js +6 -5
- package/dist/fs-utils.js.map +1 -1
- package/dist/mcp-integrations.d.ts +9 -2
- package/dist/mcp-integrations.js +50 -13
- package/dist/mcp-integrations.js.map +1 -1
- package/dist/mcp-oauth-proxy.d.ts +8 -0
- package/dist/mcp-oauth-proxy.js +25 -0
- package/dist/mcp-oauth-proxy.js.map +1 -1
- package/dist/mcp-runtime-config.d.ts +55 -0
- package/dist/mcp-runtime-config.js +252 -0
- package/dist/mcp-runtime-config.js.map +1 -0
- package/dist/mcp-tool-adapter.js +2 -4
- package/dist/mcp-tool-adapter.js.map +1 -1
- package/dist/model-providers.d.ts +1 -1
- package/dist/model-providers.js +1 -1
- package/dist/model-providers.js.map +1 -1
- package/dist/ollama-provider.d.ts +7 -0
- package/dist/ollama-provider.js +41 -15
- package/dist/ollama-provider.js.map +1 -1
- package/dist/phase-playbooks.js +17 -0
- package/dist/phase-playbooks.js.map +1 -1
- package/dist/planning-commands.js +5 -0
- package/dist/planning-commands.js.map +1 -1
- package/dist/qa-evidence-validation.d.ts +1 -1
- package/dist/qa-evidence-validation.js +3 -1
- package/dist/qa-evidence-validation.js.map +1 -1
- package/dist/quality-contracts.js +1 -1
- package/dist/quality-contracts.js.map +1 -1
- package/dist/release-inclusion.js +1 -1
- package/dist/release-inclusion.js.map +1 -1
- package/dist/runtime-bootstrap.js +13 -0
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-child-prompt.js +25 -0
- package/dist/runtime-child-prompt.js.map +1 -1
- package/dist/runtime-commands.d.ts +3 -0
- package/dist/runtime-commands.js +96 -0
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-events.d.ts +48 -0
- package/dist/runtime-events.js +255 -0
- package/dist/runtime-events.js.map +1 -0
- package/dist/runtime-execution-renderer.js +8 -0
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-parent-actions.js +3 -0
- package/dist/runtime-parent-actions.js.map +1 -1
- package/dist/runtime-spawn-bridge.js +15 -5
- package/dist/runtime-spawn-bridge.js.map +1 -1
- package/dist/sonar-preflight.js +21 -1
- package/dist/sonar-preflight.js.map +1 -1
- package/dist/sprint-metrics.js +7 -1
- package/dist/sprint-metrics.js.map +1 -1
- package/dist/task-graph-commands.js +48 -0
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/tool-commands.d.ts +1 -0
- package/dist/tool-commands.js +129 -14
- package/dist/tool-commands.js.map +1 -1
- package/dist/types/metrics.d.ts +5 -1
- package/dist/types/runtime.d.ts +3 -0
- package/dist/types/tasks.d.ts +24 -1
- package/dist/types/workflow-run.d.ts +16 -0
- package/dist/types.d.ts +5 -3
- package/dist/types.js.map +1 -1
- package/dist/validation.js +6 -0
- package/dist/validation.js.map +1 -1
- package/dist/verifier-contracts.d.ts +29 -0
- package/dist/verifier-contracts.js +184 -0
- package/dist/verifier-contracts.js.map +1 -0
- package/dist/web-api-read-routes.d.ts +1 -0
- package/dist/web-api-read-routes.js +6 -1
- package/dist/web-api-read-routes.js.map +1 -1
- package/dist/web-api.js +58 -1
- package/dist/web-api.js.map +1 -1
- package/dist/web-console/assets/index-Cip-y4WE.css +1 -0
- package/dist/web-console/assets/index-CuWjFxss.js +11 -0
- package/dist/web-console/index.html +2 -2
- package/dist/workflow-approval-service.js +36 -2
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-continuation-policy.d.ts +3 -0
- package/dist/workflow-continuation-policy.js +20 -0
- package/dist/workflow-continuation-policy.js.map +1 -0
- package/dist/workflow-correction-context.d.ts +30 -0
- package/dist/workflow-correction-context.js +117 -0
- package/dist/workflow-correction-context.js.map +1 -0
- package/dist/workflow-evidence-service.js +31 -22
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.js +6 -0
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-handoff-assessment.js +10 -2
- package/dist/workflow-handoff-assessment.js.map +1 -1
- package/dist/workflow-handoff-contract.d.ts +7 -0
- package/dist/workflow-handoff-contract.js +18 -0
- package/dist/workflow-handoff-contract.js.map +1 -1
- package/dist/workflow-phase-planner.js +56 -22
- package/dist/workflow-phase-planner.js.map +1 -1
- package/dist/workflow-return-routing.d.ts +14 -0
- package/dist/workflow-return-routing.js +61 -0
- package/dist/workflow-return-routing.js.map +1 -0
- package/dist/workflow-run-commands.js +173 -52
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +6 -3
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.js +15 -7
- package/dist/workflow-task-service.js.map +1 -1
- package/docs/autonomous-workflow.md +10 -0
- package/docs/ci-self-hosted-runners.md +82 -0
- package/docs/command-contracts.md +21 -0
- package/docs/e2e-test-batteries.md +115 -25
- package/docs/runtime-adapters.md +4 -0
- package/docs/runtime-llm-flow.md +6 -3
- package/docs/security-env-vars.md +1 -0
- package/docs/sonar-quality-gates.md +19 -9
- package/docs/verifier-contracts.md +87 -0
- package/package.json +7 -3
- package/site/dist/assets/{index-Bi8l6tCE.js → index-B1Xsl_Kg.js} +1 -1
- package/site/dist/index.html +1 -1
- package/dist/web-console/assets/index--_RLc7Zp.js +0 -11
- package/dist/web-console/assets/index-Cxo3REa4.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--panel:#fff;--ink:#17202a;--muted:#5f6b7a;--line:#d8dee6;--accent:#146c94;--ok:#137a44;--warn:#a35f00;--focus:#146c9440}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111418;--panel:#1a2027;--ink:#edf1f5;--muted:#aab5c2;--line:#313b46;--accent:#6fb6d8;--ok:#68d391;--warn:#f0b45b;--focus:#6fb6d852}}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{background:var(--bg);min-width:320px;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}a,code,pre,span,strong{overflow-wrap:anywhere}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:-2px}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--panel)}.topbar-inner,main{width:min(1180px,100%);margin:0 auto;padding:16px}.brand-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand h1{letter-spacing:0;margin:0;font-size:1.15rem;font-weight:750}.brand p,.guide-card p,.empty-state p{color:var(--muted);margin:2px 0 0;font-size:.92rem}.refresh-button,.text-button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;min-height:38px;padding:0 12px}.text-button.secondary{border-color:var(--line);background:var(--panel);color:var(--ink)}.text-button:disabled{cursor:not-allowed;opacity:.55}main{gap:16px;display:grid}.section-nav{z-index:5;background:color-mix(in srgb, var(--bg) 94%, transparent);gap:8px;padding:8px 0;display:flex;position:sticky;top:0;overflow-x:auto}.section-tab{border:1px solid var(--line);background:var(--panel);min-width:0;color:var(--ink);text-align:left;cursor:pointer;border-radius:8px;flex:0 0 170px;gap:2px;padding:10px 12px;display:grid}.section-tab.active{border-color:color-mix(in srgb, var(--accent) 56%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.section-tab strong{font-size:.9rem}.section-tab span,.section-heading p,.muted-copy{color:var(--muted);font-size:.84rem}.console-section,.overview-layout,.overview-column,.operations-layout,.section-column,.settings-layout,.tasks-layout{gap:12px;display:grid}.section-column{align-content:start}.section-column>*{align-self:start;width:100%}.section-heading{gap:2px;display:grid}.section-heading h2,.section-heading p{margin:0}.section-heading h2{font-size:1.08rem}.status-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.92rem;display:flex}.pill,.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;display:inline-flex}.pill{background:var(--panel);min-height:28px;padding:0 10px}.tag{padding:2px 8px;font-size:.78rem}.pill.ok,.tag.ok{color:var(--ok);border-color:#137a4459}.pill.warn,.tag.warn{color:var(--warn);border-color:#a35f0059}.pill.accent,.tag.accent{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));color:var(--accent)}.grid,.guide-grid{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}.grid>*,.guide-grid>*,.control-row>*,.metric-grid>*,.chart-grid>*{min-width:0}.panel,.guide-card,.subpanel{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:0;padding:14px}.panel h2,.guide-card h2,.subpanel h3{letter-spacing:0;margin:0 0 10px;font-size:1rem}.subpanel{margin-top:12px}.warning-panel{border-color:color-mix(in srgb, var(--warn) 45%, var(--line));margin-bottom:12px}.compact-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.compact-list li{gap:3px;display:grid}.compact-list span{color:var(--muted);overflow-wrap:anywhere}.metric-grid,.chart-grid,.control-row{grid-template-columns:1fr;gap:10px;display:grid}.control-row.compact{grid-template-columns:minmax(140px,1fr) auto;align-items:end;margin-top:8px}.toggle-row{color:var(--muted);align-items:center;gap:8px;min-height:42px;font-size:.88rem;display:inline-flex}.toggle-row input{margin:0}.chart-grid{margin-top:12px}.cost-detail-grid{grid-template-columns:1fr;gap:10px;display:grid}.compact-subpanel{min-height:0;margin-top:12px}.compact-chart-grid .chart-card{min-height:0}.compact-chart-grid .chart-frame{min-height:90px}.compact-chart-grid .chart-frame canvas{height:90px}.settings-layout #cost-view .metric strong{overflow-wrap:anywhere;font-size:1.2rem}.chart-card,.metric,.list-item{border:1px solid var(--line);border-radius:6px;padding:10px}.chart-card{min-height:180px}.chart-card h3{letter-spacing:0;margin:0 0 8px;font-size:.9rem}.chart-frame{min-height:130px;position:relative}.chart-frame canvas{width:100%;height:130px}.metric{min-height:76px}.metric strong{font-size:1.45rem;line-height:1.1;display:block}.metric span,.list-item span{color:var(--muted);margin-top:4px;font-size:.85rem;display:block}.step-list,.command-list,.list,.detail-grid,.delivery-grid,.release-check-list,.release-detail-grid{gap:8px;display:grid}.step-list,.release-check-list,.list{margin:0;padding:0;list-style:none}.step-list{margin-top:12px}.step-list li{grid-template-columns:28px 1fr;align-items:start;gap:8px;display:grid}.step-list b{background:color-mix(in srgb, var(--accent) 18%, var(--panel));width:28px;height:28px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;font-size:.84rem;display:inline-flex}.command-chip{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 82%, var(--bg));color:var(--ink);white-space:normal;word-break:break-word;border-radius:6px;padding:9px 10px;font:.84rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:block}.command-disclosure{margin-top:10px}.command-disclosure summary{cursor:pointer;color:var(--accent);font-size:.9rem;font-weight:650}.command-disclosure .command-list{margin-top:8px}.detail-disclosure summary{cursor:pointer;color:var(--ink);font-weight:700}.detail-disclosure>.list,.detail-disclosure>.preview,.detail-disclosure>.markdown-summary,.detail-disclosure>.text-button{margin-top:10px}.markdown-summary{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;max-height:320px;padding:12px;display:grid;overflow:auto}.markdown-summary h4,.markdown-summary p,.markdown-summary ul{margin:0}.markdown-summary h4{font-size:.95rem}.markdown-summary ul{padding-left:18px}.markdown-summary code{overflow-wrap:anywhere;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 82%, var(--bg));border-radius:6px;padding:8px;display:block}.preview{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 82%, var(--bg));max-height:220px;color:var(--ink);white-space:pre-wrap;border-radius:6px;padding:10px;font:.82rem/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.field{gap:4px;display:grid}.field span{color:var(--muted);font-size:.82rem}.field-label{align-items:center;gap:6px;display:inline-flex}.help-tooltip{border:1px solid var(--line);width:18px;height:18px;color:var(--ink);cursor:help;background:#fff;border-radius:50%;place-items:center;font-size:.72rem;font-weight:700;line-height:1;display:inline-grid;position:relative}.tooltip-bubble{z-index:20;color:#f8fafc;text-align:left;white-space:normal;background:#0f172a;border:1px solid #0f172a;border-radius:8px;width:min(260px,72vw);padding:8px 10px;font-size:.78rem;font-weight:500;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 14px 36px #0f172a52}.field .tooltip-bubble{color:#f8fafc;font-size:.78rem}.tooltip-bubble:after{content:"";background:#0f172a;border-bottom:1px solid #0f172a;border-right:1px solid #0f172a;width:10px;height:10px;position:absolute;top:100%;left:50%;transform:translate(-50%,-5px)rotate(45deg)}.help-tooltip:hover .tooltip-bubble,.help-tooltip:focus .tooltip-bubble,.help-tooltip:focus-within .tooltip-bubble{display:block}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;color:var(--ink);border-radius:6px}.field input,.field select{min-height:38px;padding:0 10px}.field textarea{resize:vertical;min-height:120px;padding:10px}.workspace-selector{gap:10px;margin-bottom:12px;display:grid}.workspace-selector-actions{flex-wrap:wrap;gap:8px;display:flex}.inline-error{color:var(--warn);margin:8px 0 0;font-size:.85rem}.inline-status,.muted-copy{color:var(--muted);margin:8px 0 0;font-size:.85rem}.tag-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.repair-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.check-field{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.task-filters{grid-template-columns:1fr;gap:8px;display:grid}.task-filters>*{min-width:0}.task-internals-toggle{margin-top:10px}.artifact-list{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:.84rem}.review-copy{color:var(--muted);margin:8px 0 0;font-size:.86rem}.phase-timeline{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.gate-history{border-top:1px solid var(--line);gap:6px;margin-top:10px;padding-top:8px;font-size:.84rem;display:grid}.gate-history>strong{font-size:.86rem}.gate-history ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.gate-history li{color:var(--muted);grid-template-columns:minmax(80px,1fr) minmax(72px,.7fr) minmax(88px,.8fr) minmax(120px,1.4fr);gap:8px;display:grid}.phase-timeline li{border-top:1px solid var(--line);grid-template-columns:minmax(56px,.7fr) minmax(110px,1fr) minmax(88px,.8fr) minmax(72px,.8fr);align-items:center;gap:8px;padding-top:6px;font-size:.83rem;display:grid}.phase-timeline span,.phase-timeline time{color:var(--muted)}.detail-block{border-top:1px solid var(--line);padding-top:10px}.detail-block h3{letter-spacing:0;margin:0 0 6px;font-size:.9rem}.detail-block ul{color:var(--muted);margin:0;padding-left:18px}.empty-state{border:1px dashed var(--line);background:color-mix(in srgb, var(--panel) 85%, var(--bg));border-radius:8px;padding:18px}.empty-state strong{margin-bottom:4px;display:block}.artifact-canvas{margin:18px 0}.chat-layout{gap:12px;display:grid}.chat-controls-panel,.chat-thread-panel,.chat-timeline-panel{align-content:start}.chat-scope-copy,.chat-composer-actions{flex-wrap:wrap;gap:8px;display:flex}.chat-thread-list,.chat-message-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.chat-thread-list{max-height:560px;overflow:auto}.chat-thread-button{border:1px solid var(--line);background:var(--panel);width:100%;min-height:72px;color:var(--ink);text-align:left;border-radius:6px;gap:4px;padding:10px;display:grid}.chat-thread-button.selected{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.chat-thread-button span,.chat-thread-button small{color:var(--muted)}.chat-message-card{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, var(--bg));border-radius:6px;gap:10px;padding:12px;display:grid}.chat-message-card.tone-ok{border-color:#137a4459}.chat-message-card.tone-warn{border-color:#a35f0059}.chat-message-card.tone-accent{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.chat-message-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:10px;display:flex}.chat-message-heading{gap:6px;display:grid}.chat-message-content{gap:8px;display:grid}.chat-message-content h3,.chat-message-content p,.chat-message-content ul,.chat-message-content pre{margin:0}.chat-message-content ul{padding-left:18px}.chat-message-content pre{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 80%, var(--bg));white-space:pre-wrap;border-radius:6px;padding:10px;font:.82rem/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.chat-event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.chat-event-grid div{min-width:0}.chat-event-grid dt{color:var(--muted);font-size:.8rem}.chat-event-grid dd{margin:2px 0 0}.chat-event-wide{grid-column:1/-1}.chat-composer{border-top:1px solid var(--line);gap:10px;margin-top:12px;padding-top:12px;display:grid}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.compact-heading{align-items:center;margin-bottom:12px}.compact-heading h2{margin-bottom:0}.event-list-panel .list{gap:12px}.release-events-grid{align-items:stretch}.release-events-grid .event-list-panel{grid-template-rows:auto 1fr auto;display:grid}.release-events-grid .event-list-panel .list{align-content:start}.workflow-control-row{align-items:end}.workflow-rationale-row{grid-template-columns:1fr}.workflow-rationale-row .field{width:100%}.event-list-panel .list-item{padding:12px}.event-list-panel .list-item strong{line-height:1.3}.event-list-panel .list-item span{margin-top:6px;line-height:1.45}.list-count{color:var(--muted);white-space:nowrap;font-size:.82rem}.pagination-controls{color:var(--muted);grid-template-columns:minmax(92px,auto) 1fr minmax(72px,auto);align-items:center;gap:8px;margin-top:12px;font-size:.85rem;display:grid}.pagination-controls span{text-align:center}.release-check-list{gap:6px;margin-top:12px}.release-summary-card{align-content:start}.release-summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.release-summary-metrics .metric{min-height:58px;padding:8px}.release-summary-metrics .metric strong{font-size:1.1rem}.release-check-row{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.release-check-row strong,.release-check-row span{display:block}.release-check-row strong{line-height:1.25}.release-check-row div>span{color:var(--muted);margin-top:2px;font-size:.82rem}.compact-role-list{max-height:320px;margin-top:10px;overflow:auto}.playwright-plan-list,#qa-automation-planner .subpanel{margin-top:14px}.artifact-layout{gap:16px;min-height:420px;display:grid}.artifact-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.artifact-actions .disabled{pointer-events:none;opacity:.55}.artifact-index{align-content:start;gap:8px;max-height:520px;display:grid;overflow:auto}.artifact-group{gap:6px;display:grid}.artifact-group header{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 84%, var(--bg));border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;font-size:.8rem;display:flex}.artifact-group header span{color:var(--muted)}.artifact-group ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.artifact-index button{text-align:left;border:1px solid var(--line);width:100%;min-height:58px;color:var(--text);background:#fff;gap:4px;display:grid}.artifact-index button.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, #fff)}.artifact-index span,.artifact-preview pre{overflow-wrap:anywhere}.artifact-preview{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:420px;overflow:hidden}.artifact-preview.error,.artifact-preview.source,.artifact-preview.state,.artifact-preview.unsupported{padding:16px;overflow:auto}.artifact-preview.unsupported{border-color:color-mix(in srgb, var(--warn) 48%, var(--line))}.artifact-preview pre{white-space:pre-wrap;margin:0}.artifact-preview.media{place-items:center;padding:12px;display:grid}.artifact-preview img{max-width:100%;max-height:520px}.canvas-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:10px;display:flex}.canvas-frame{cursor:grab;height:460px;overflow:hidden}.canvas-frame svg{background:#f8fafc;width:100%;height:100%}.canvas-frame line{stroke:#64748b;stroke-width:2px}.canvas-frame marker path{fill:#64748b}.canvas-node{cursor:move}.canvas-node rect{stroke:#334155;stroke-width:1.4px}.canvas-node text{fill:#111827;pointer-events:none;font-size:13px}.erd-preview{padding:14px;overflow:auto}.erd-heading{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:12px;display:flex}.erd-heading span,.erd-table span,.erd-table small,.erd-relationships small{color:var(--muted)}.erd-layout,.erd-tables{gap:12px;display:grid}.erd-table{border:1px solid var(--line);border-radius:6px;overflow:hidden}.erd-table h3,.erd-relationships h3{background:color-mix(in srgb, var(--accent) 8%, var(--panel));margin:0;padding:8px 10px;font-size:.9rem}.erd-table ul,.erd-relationships ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.erd-table li,.erd-relationships li{border-top:1px solid var(--line);grid-template-columns:minmax(120px,1fr) minmax(80px,.7fr) auto;align-items:center;gap:8px;padding:8px 10px;font-size:.84rem;display:grid}.erd-table em{border:1px solid var(--line);color:var(--accent);border-radius:999px;justify-self:start;padding:1px 7px;font-size:.74rem;font-style:normal}.erd-relationships{border:1px solid var(--line);border-radius:6px;overflow:hidden}.erd-relationships li{grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr)}.inline-success{color:#166534;font-weight:600}@media (width>=760px){.topbar-inner,main{padding:20px 24px}.grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.9fr)}.section-nav{grid-template-columns:repeat(8,minmax(0,1fr));display:grid;overflow-x:visible}.section-tab{flex-basis:auto}.guide-grid,.overview-layout,.operations-layout,.settings-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.tasks-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.chat-layout{grid-template-columns:minmax(260px,.8fr) minmax(280px,.9fr) minmax(0,1.4fr);align-items:start}.tasks-layout .panel:first-child{grid-row:span 2}.workflow-rationale-row .field{grid-column:1/-1;max-width:none}.cost-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.task-filters{grid-template-columns:minmax(220px,1fr) minmax(140px,.45fr) minmax(140px,.45fr);align-items:end}.artifact-layout{grid-template-columns:minmax(220px,320px) 1fr}.erd-layout{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}}
|