create-principles-disciple 1.94.0 → 1.96.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/console/dist/server/config/WorkspaceConfigStore.js +2 -1
- package/console/dist/server/config/pd-config-store.d.ts +33 -0
- package/console/dist/server/config/pd-config-store.js +196 -0
- package/console/dist/server/index.js +19 -4
- package/console/dist/server/models/EvidenceChainConsoleModel.d.ts +0 -2
- package/console/dist/server/models/EvidenceChainConsoleModel.js +36 -2
- package/console/dist/server/models/HealthCheckModel.js +5 -3
- package/console/dist/server/models/IntentDecisionModel.d.ts +66 -0
- package/console/dist/server/models/IntentDecisionModel.js +207 -0
- package/console/dist/server/models/IntentPageModel.d.ts +52 -0
- package/console/dist/server/models/IntentPageModel.js +292 -0
- package/console/dist/server/models/PrinciplesConsoleModel.d.ts +2 -0
- package/console/dist/server/models/PrinciplesConsoleModel.js +37 -1
- package/console/dist/server/models/WorkspaceService.d.ts +0 -28
- package/console/dist/server/models/WorkspaceService.js +0 -115
- package/console/dist/server/routes/config.js +55 -1
- package/console/dist/server/routes/intent-decisions.d.ts +33 -0
- package/console/dist/server/routes/intent-decisions.js +499 -0
- package/console/dist/server/routes/intent.d.ts +7 -0
- package/console/dist/server/routes/intent.js +223 -0
- package/console/dist/server/routes/principles.js +67 -1
- package/console/dist/server/routes/update.d.ts +0 -1
- package/console/dist/server/routes/update.js +14 -11
- package/console/dist/types.d.ts +1 -0
- package/console/dist/ui/App.js +2 -60
- package/console/dist/ui/api.d.ts +58 -18
- package/console/dist/ui/api.js +78 -6
- package/console/dist/ui/components/layout/app-sidebar.js +13 -12
- package/console/dist/ui/components/ui/badge.d.ts +1 -1
- package/console/dist/ui/components/ui/button.d.ts +1 -1
- package/console/dist/ui/components/ui/shiny-text.d.ts +28 -0
- package/console/dist/ui/components/ui/shiny-text.js +46 -0
- package/console/dist/ui/i18n/en.json +306 -3
- package/console/dist/ui/i18n/zh-CN.json +306 -3
- package/console/dist/ui/pages/activation/ActivationPage.js +2 -1
- package/console/dist/ui/pages/control-center/AgentCard.d.ts +31 -0
- package/console/dist/ui/pages/control-center/AgentCard.js +156 -0
- package/console/dist/ui/pages/control-center/AgentGroup.d.ts +26 -0
- package/console/dist/ui/pages/control-center/AgentGroup.js +38 -0
- package/console/dist/ui/pages/control-center/ControlCenterPage.js +103 -41
- package/console/dist/ui/pages/control-center/EmpathyObserverCostHint.d.ts +28 -0
- package/console/dist/ui/pages/control-center/EmpathyObserverCostHint.js +38 -0
- package/console/dist/ui/pages/control-center/WorkflowDiagram.d.ts +17 -0
- package/console/dist/ui/pages/control-center/WorkflowDiagram.js +55 -0
- package/console/dist/ui/pages/debt/DebtPage.js +219 -2
- package/console/dist/ui/pages/focus/FocusPage.js +2 -1
- package/console/dist/ui/pages/intent/IntentOnboarding.d.ts +67 -0
- package/console/dist/ui/pages/intent/IntentOnboarding.js +289 -0
- package/console/dist/ui/pages/intent/IntentPage.d.ts +1 -0
- package/console/dist/ui/pages/intent/IntentPage.js +258 -0
- package/console/dist/ui/pages/pain/PainPage.js +234 -4
- package/console/dist/ui/pages/pain/pain-card-helpers.d.ts +75 -0
- package/console/dist/ui/pages/pain/pain-card-helpers.js +78 -0
- package/console/dist/ui/pages/principles/PrinciplesPage.js +2 -1
- package/console/dist/ui/utils/agent-metadata.d.ts +58 -0
- package/console/dist/ui/utils/agent-metadata.js +275 -0
- package/console/dist/ui/utils/control-center-helpers.d.ts +19 -0
- package/console/dist/ui/utils/control-center-helpers.js +37 -0
- package/console/dist/ui/utils/validators.d.ts +200 -0
- package/console/dist/ui/utils/validators.js +563 -0
- package/console/dist/web/assets/app.css +498 -3
- package/console/dist/web/assets/app.js +5063 -1418
- package/console/package.json +3 -0
- package/core/dist/principle-tree-ledger.d.ts +55 -4
- package/core/dist/principle-tree-ledger.d.ts.map +1 -1
- package/core/dist/principle-tree-ledger.js +472 -13
- package/core/dist/principle-tree-ledger.js.map +1 -1
- package/core/dist/prompt-builder/__tests__/prompt-builder-core.test.js +58 -0
- package/core/dist/prompt-builder/__tests__/prompt-builder-core.test.js.map +1 -1
- package/core/dist/prompt-builder/empathy-keyword-matching.d.ts.map +1 -1
- package/core/dist/prompt-builder/empathy-keyword-matching.js +9 -6
- package/core/dist/prompt-builder/empathy-keyword-matching.js.map +1 -1
- package/core/dist/prompt-builder/size-guard.d.ts +1 -0
- package/core/dist/prompt-builder/size-guard.d.ts.map +1 -1
- package/core/dist/prompt-builder/size-guard.js +21 -0
- package/core/dist/prompt-builder/size-guard.js.map +1 -1
- package/core/dist/prompt-builder/types.d.ts +2 -0
- package/core/dist/prompt-builder/types.d.ts.map +1 -1
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +143 -65
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +85 -7
- package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js +284 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js +70 -0
- package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/golden-trace.test.js +136 -1
- package/core/dist/runtime-v2/__tests__/golden-trace.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +105 -0
- package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +7 -5
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pi-artifact-store.test.js +11 -0
- package/core/dist/runtime-v2/__tests__/pi-artifact-store.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +15 -2
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.js +290 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.js +158 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js +211 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +15 -1
- package/core/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js +62 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +12 -2
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js +56 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +8 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +20 -0
- package/core/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js +6 -0
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-approval-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-approval-store.js +86 -32
- package/core/dist/runtime-v2/activation/sqlite-approval-store.js.map +1 -1
- package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +158 -1
- package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts +11 -0
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.js +55 -11
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +134 -15
- package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +18 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +251 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +1 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +73 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +98 -0
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.js +131 -0
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +8 -0
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +66 -3
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician-output.d.ts +23 -0
- package/core/dist/runtime-v2/diagnostician-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician-output.js +16 -0
- package/core/dist/runtime-v2/diagnostician-output.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts +32 -0
- package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/evidence-triage/source-descriptors.d.ts +1 -1
- package/core/dist/runtime-v2/evidence-triage/source-descriptors.js +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +23 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js +30 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js +74 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +246 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js +9 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/index.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/index.js +2 -0
- package/core/dist/runtime-v2/feature-flags/index.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js +0 -9
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js.map +1 -1
- package/{plugin/dist/core/surface-guard.d.ts → core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts} +15 -5
- package/core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts.map +1 -0
- package/{plugin/dist/core/surface-guard.js → core/dist/runtime-v2/feature-flags/surface-guard-policy.js} +14 -2
- package/core/dist/runtime-v2/feature-flags/surface-guard-policy.js.map +1 -0
- package/core/dist/runtime-v2/golden-trace-replay-validator.js +1 -1
- package/core/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
- package/core/dist/runtime-v2/golden-trace.d.ts +19 -3
- package/core/dist/runtime-v2/golden-trace.d.ts.map +1 -1
- package/core/dist/runtime-v2/golden-trace.js +2 -0
- package/core/dist/runtime-v2/golden-trace.js.map +1 -1
- package/core/dist/runtime-v2/index.d.ts +21 -4
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +21 -3
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js +185 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +88 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js +181 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js +168 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js +121 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/index.d.ts +8 -0
- package/core/dist/runtime-v2/intent/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/index.js +8 -0
- package/core/dist/runtime-v2/intent/index.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-browser.d.ts +23 -0
- package/core/dist/runtime-v2/intent/intent-browser.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-browser.js +21 -0
- package/core/dist/runtime-v2/intent/intent-browser.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.d.ts +125 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.js +21 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.d.ts +95 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.js +43 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.d.ts +28 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.js +21 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc.d.ts +35 -0
- package/core/dist/runtime-v2/intent/intent-doc.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc.js +158 -0
- package/core/dist/runtime-v2/intent/intent-doc.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.d.ts +63 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.js +129 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-hash.d.ts +2 -0
- package/core/dist/runtime-v2/intent/intent-hash.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-hash.js +10 -0
- package/core/dist/runtime-v2/intent/intent-hash.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.d.ts +42 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.js +81 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +54 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +219 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +41 -1
- package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js +130 -2
- package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js +228 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +41 -11
- package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +360 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +333 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +113 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js +135 -0
- package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js +449 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/adversarial-case.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/adversarial-case.js +24 -0
- package/core/dist/runtime-v2/internalization/adversarial-case.js.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-output.d.ts +10 -0
- package/core/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-output.js +45 -0
- package/core/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +2 -2
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js +7 -2
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts +66 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.js +183 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.js.map +1 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts +13 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.js +42 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-router-runner.js +27 -0
- package/core/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-output.d.ts +8 -0
- package/core/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-output.js +10 -0
- package/core/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts +17 -0
- package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-runner.js +118 -24
- package/core/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
- package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts +61 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.js +301 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.js.map +1 -0
- package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts +9 -0
- package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts +55 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js +131 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js.map +1 -0
- package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-observability.js +280 -56
- package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts +12 -0
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/core/dist/runtime-v2/pain-to-principle-service.d.ts +6 -0
- package/core/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-to-principle-service.js +2 -0
- package/core/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
- package/core/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.js +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js +95 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/risk/index.d.ts +7 -0
- package/core/dist/runtime-v2/risk/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/index.js +6 -0
- package/core/dist/runtime-v2/risk/index.js.map +1 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts +18 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.js +47 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.js.map +1 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js +55 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +6 -0
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js +272 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +83 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/index.d.ts +7 -0
- package/core/dist/runtime-v2/store/intent/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/index.js +6 -0
- package/core/dist/runtime-v2/store/intent/index.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts +51 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js +306 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts +28 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js +88 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection-pragma.test.js +14 -3
- package/core/dist/runtime-v2/store/sqlite-connection-pragma.test.js.map +1 -1
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.js +72 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.js.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection.d.ts +27 -0
- package/core/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/sqlite-connection.js +138 -12
- package/core/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +149 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/thinking-models/index.d.ts +3 -0
- package/core/dist/runtime-v2/thinking-models/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/index.js +3 -0
- package/core/dist/runtime-v2/thinking-models/index.js.map +1 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +73 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js +227 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +1 -0
- package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +40 -1
- package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js +28 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts +3 -0
- package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-output-typebox.js +3 -0
- package/core/dist/runtime-v2/tools/artificer-output-typebox.js.map +1 -1
- package/core/dist/runtime-v2/types/event-payload.d.ts +1 -20
- package/core/dist/runtime-v2/types/event-payload.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-payload.js +0 -12
- package/core/dist/runtime-v2/types/event-payload.js.map +1 -1
- package/core/dist/runtime-v2/types/event-types.d.ts +5 -34
- package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-types.js +0 -19
- package/core/dist/runtime-v2/types/event-types.js.map +1 -1
- package/core/dist/runtime-v2/types/evidence-chain-contract.d.ts +63 -0
- package/core/dist/runtime-v2/types/evidence-chain-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/evidence-chain-contract.js +234 -9
- package/core/dist/runtime-v2/types/evidence-chain-contract.js.map +1 -1
- package/core/dist/runtime-v2/types/index.d.ts +5 -5
- package/core/dist/runtime-v2/types/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/index.js +5 -3
- package/core/dist/runtime-v2/types/index.js.map +1 -1
- package/core/dist/runtime-v2/types/ledger-store.d.ts +30 -30
- package/core/dist/runtime-v2/types/ledger-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/ledger-store.js +10 -5
- package/core/dist/runtime-v2/types/ledger-store.js.map +1 -1
- package/core/dist/workflow-funnel-loader.d.ts +2 -2
- package/core/dist/workflow-funnel-loader.d.ts.map +1 -1
- package/core/package.json +4 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +16 -0
- package/dist/installer.js.map +1 -1
- package/package.json +1 -1
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.d.ts +9 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.d.ts.map +1 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js +237 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js.map +1 -0
- package/pd-cli/dist/commands/intent.d.ts +76 -0
- package/pd-cli/dist/commands/intent.d.ts.map +1 -0
- package/pd-cli/dist/commands/intent.js +411 -0
- package/pd-cli/dist/commands/intent.js.map +1 -0
- package/pd-cli/dist/commands/runtime-init.d.ts +43 -0
- package/pd-cli/dist/commands/runtime-init.d.ts.map +1 -0
- package/pd-cli/dist/commands/runtime-init.js +264 -0
- package/pd-cli/dist/commands/runtime-init.js.map +1 -0
- package/pd-cli/dist/index.js +25 -0
- package/pd-cli/dist/index.js.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.js +6 -0
- package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
- package/pd-cli/package.json +1 -0
- package/plugin/dist/commands/pain.js +2 -0
- package/plugin/dist/core/behavior-example-pack-assembler.d.ts +43 -0
- package/plugin/dist/core/behavior-example-pack-assembler.js +247 -0
- package/plugin/dist/core/control-ui-db.d.ts +11 -0
- package/plugin/dist/core/control-ui-db.js +40 -16
- package/plugin/dist/core/event-log.js +0 -5
- package/plugin/dist/core/intent-doc-reader-adapter.d.ts +36 -0
- package/plugin/dist/core/intent-doc-reader-adapter.js +76 -0
- package/plugin/dist/core/intent-doc-reader.d.ts +89 -0
- package/plugin/dist/core/intent-doc-reader.js +210 -0
- package/plugin/dist/core/principle-tree-ledger.d.ts +27 -79
- package/plugin/dist/core/principle-tree-ledger.js +39 -524
- package/plugin/dist/core/reflection/reflection-context.d.ts +2 -2
- package/plugin/dist/core/rule-context-assembler.d.ts +45 -0
- package/plugin/dist/core/rule-context-assembler.js +148 -0
- package/plugin/dist/core/thinking-models.d.ts +12 -57
- package/plugin/dist/core/thinking-models.js +18 -224
- package/plugin/dist/core/trajectory-types.d.ts +18 -0
- package/plugin/dist/core/trajectory.d.ts +50 -2
- package/plugin/dist/core/trajectory.js +435 -254
- package/plugin/dist/core/workspace-context.d.ts +2 -3
- package/plugin/dist/hooks/gate.js +59 -2
- package/plugin/dist/hooks/pain.js +5 -0
- package/plugin/dist/hooks/prompt-helpers.d.ts +19 -1
- package/plugin/dist/hooks/prompt-helpers.js +39 -2
- package/plugin/dist/hooks/prompt-types.d.ts +8 -0
- package/plugin/dist/hooks/prompt.js +81 -21
- package/plugin/dist/index.d.ts +3 -1
- package/plugin/dist/index.js +10 -6
- package/plugin/dist/service/runtime-summary-service.js +1 -1
- package/plugin/dist/service/subagent-workflow/workflow-store.d.ts +14 -0
- package/plugin/dist/service/subagent-workflow/workflow-store.js +91 -2
- package/plugin/dist/types/event-types.d.ts +1 -1
- package/plugin/package.json +6 -3
- package/plugin/scripts/acceptance-test.mjs +3 -3
- package/plugin/dist/core/evolution-migration.d.ts +0 -5
- package/plugin/dist/core/evolution-migration.js +0 -65
- package/plugin/dist/core/principle-tree-ledger-adapter.d.ts +0 -32
- package/plugin/dist/core/principle-tree-ledger-adapter.js +0 -125
- package/plugin/dist/core/risk-calculator.d.ts +0 -22
- package/plugin/dist/core/risk-calculator.js +0 -88
- package/plugin/dist/core/rule-host-helpers.d.ts +0 -8
- package/plugin/dist/core/rule-host-helpers.js +0 -7
- package/plugin/dist/core/rule-host-types.d.ts +0 -7
- package/plugin/dist/core/rule-host-types.js +0 -7
- package/plugin/dist/core/schema/db-types.d.ts +0 -11
- package/plugin/dist/core/schema/db-types.js +0 -5
- package/plugin/dist/core/schema/index.d.ts +0 -17
- package/plugin/dist/core/schema/index.js +0 -15
- package/plugin/dist/core/schema/migration-runner.d.ts +0 -53
- package/plugin/dist/core/schema/migration-runner.js +0 -170
- package/plugin/dist/core/schema/migrations/001-init-trajectory.d.ts +0 -6
- package/plugin/dist/core/schema/migrations/001-init-trajectory.js +0 -190
- package/plugin/dist/core/schema/migrations/002-init-central.d.ts +0 -5
- package/plugin/dist/core/schema/migrations/002-init-central.js +0 -108
- package/plugin/dist/core/schema/migrations/003-init-workflow.d.ts +0 -5
- package/plugin/dist/core/schema/migrations/003-init-workflow.js +0 -50
- package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.d.ts +0 -8
- package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.js +0 -66
- package/plugin/dist/core/schema/migrations/index.d.ts +0 -16
- package/plugin/dist/core/schema/migrations/index.js +0 -27
- package/plugin/dist/core/schema/schema-definitions.d.ts +0 -46
- package/plugin/dist/core/schema/schema-definitions.js +0 -599
- package/plugin/dist/service/central-database.d.ts +0 -138
- package/plugin/dist/service/central-database.js +0 -731
- package/plugin/dist/service/central-sync-service.d.ts +0 -8
- package/plugin/dist/service/central-sync-service.js +0 -71
- package/plugin/scripts/db-migrate.mjs +0 -170
- package/plugin/scripts/validate-live-path.ts +0 -462
|
@@ -226,7 +226,65 @@
|
|
|
226
226
|
"noHumanSummary": "PD 尚未为此条证据生成行为摘要",
|
|
227
227
|
"inReviewQueueCount": "已有 {{count}} 条进入审查队列",
|
|
228
228
|
"goToGovernance": "去治理首页处理",
|
|
229
|
-
"expandTechDetails": "展开技术细节"
|
|
229
|
+
"expandTechDetails": "展开技术细节",
|
|
230
|
+
"intentTensionTitle": "意图张力",
|
|
231
|
+
"intentTensionSourceLabel": "来源",
|
|
232
|
+
"intentTensionSourceNone": "无意图张力",
|
|
233
|
+
"intentTensionSourceActionDrift": "行动偏离",
|
|
234
|
+
"intentTensionSourceIntentSuspect": "意图存疑",
|
|
235
|
+
"intentTensionSourceHealthyTension": "良性张力",
|
|
236
|
+
"intentTensionEvidenceStrengthLabel": "证据强度",
|
|
237
|
+
"intentTensionEvidenceStrengthWeak": "弱",
|
|
238
|
+
"intentTensionEvidenceStrengthModerate": "中",
|
|
239
|
+
"intentTensionEvidenceStrengthStrong": "强",
|
|
240
|
+
"intentTensionRelatedIntentFieldsLabel": "关联 INTENT 字段",
|
|
241
|
+
"intentTensionEvidenceLabel": "证据",
|
|
242
|
+
"intentTensionExplanationLabel": "说明",
|
|
243
|
+
"intentTensionSuggestedActionLabel": "建议拥有者操作",
|
|
244
|
+
"intentTensionSuggestedActionConfirmDrift": "确认偏离",
|
|
245
|
+
"intentTensionSuggestedActionReviseIntent": "修订意图",
|
|
246
|
+
"intentTensionSuggestedActionObserve": "继续观察",
|
|
247
|
+
"intentTensionSuggestedActionDismiss": "忽略",
|
|
248
|
+
"intentTensionSuggestedActionPromoteToPrinciple": "提升为原则",
|
|
249
|
+
"intentTensionSuggestedActionPromoteToRulehost": "提升为 RuleHost",
|
|
250
|
+
"intentTensionIntentDocHashLabel": "INTENT 文档哈希",
|
|
251
|
+
"intentTensionNoTension": "未检测到意图张力",
|
|
252
|
+
"intentTensionArtifactDegraded": "此记录的诊断器产物无法完整解析,意图张力可能不可用。",
|
|
253
|
+
"ownerDecisionPanelTitle": "拥有者决策",
|
|
254
|
+
"ownerDecisionPanelSubtitle": "记录您对此意图张力的决策。后续操作仅在决策持久化后才会显示。",
|
|
255
|
+
"ownerDecisionNoteLabel": "备注(可选)",
|
|
256
|
+
"ownerDecisionNotePlaceholder": "为此决策添加上下文",
|
|
257
|
+
"ownerDecisionSubmitConfirmDrift": "确认漂移",
|
|
258
|
+
"ownerDecisionSubmitReviseIntent": "修订意图",
|
|
259
|
+
"ownerDecisionSubmitObserve": "观察",
|
|
260
|
+
"ownerDecisionSubmitDismiss": "驳回",
|
|
261
|
+
"ownerDecisionSubmitPromoteToPrinciple": "沉淀为原则",
|
|
262
|
+
"ownerDecisionSubmitPromoteToRulehost": "转为 RuleHost",
|
|
263
|
+
"ownerDecisionSubmitting": "正在记录决策…",
|
|
264
|
+
"ownerDecisionRecorded": "决策已记录",
|
|
265
|
+
"ownerDecisionFailed": "记录决策失败",
|
|
266
|
+
"ownerDecisionExisting": "此张力已存在决策",
|
|
267
|
+
"ownerDecisionFollowUpPlaceholder": "决策记录后,后续操作将显示在此处。",
|
|
268
|
+
"ownerDecisionLoadingExisting": "正在加载已有决策…",
|
|
269
|
+
"ownerDecisionLoadFailed": "加载已有决策失败",
|
|
270
|
+
"followUpActionsTitle": "后续动作",
|
|
271
|
+
"followUpDispatching": "正在派发…",
|
|
272
|
+
"followUpDispatchFailed": "派发后续动作失败",
|
|
273
|
+
"followUpLinkCandidateDescription": "将已有的原则候选链接到此决策。PD 不会创建新的候选——从证据链中选择或粘贴候选 ID。",
|
|
274
|
+
"followUpLinkCandidateButton": "链接候选",
|
|
275
|
+
"followUpCandidateIdPlaceholder": "粘贴候选 ID",
|
|
276
|
+
"followUpCandidateIdAriaLabel": "要链接的原则候选 ID",
|
|
277
|
+
"followUpPrefilledFromEvidenceChain": "已从证据链的链接候选预填。",
|
|
278
|
+
"followUpLinkedSuccess": "已链接候选",
|
|
279
|
+
"followUpGuideRulehostDescription": "获取将此决策转为 RuleHost 候选的 CLI 命令。PD 将创建一个审批,可在治理队列中审核。",
|
|
280
|
+
"followUpGuideRulehostButton": "查看 RuleHost 指引",
|
|
281
|
+
"followUpCliCommandLabel": "CLI 命令",
|
|
282
|
+
"followUpPatchProposalDescription": "生成只读的意图补丁建议。该建议汇总张力并提示 INTENT.md 可能需要修订的位置。PD 不会自动应用补丁。",
|
|
283
|
+
"followUpViewPatchProposalButton": "查看意图补丁建议",
|
|
284
|
+
"followUpPatchProposalLabel": "意图补丁建议",
|
|
285
|
+
"followUpPatchProposalReadOnlyBadge": "仅展示",
|
|
286
|
+
"followUpPatchProposalWarning": "仅展示——不可自动应用。拥有者若接受此建议,需手动编辑 .principles/INTENT.md。",
|
|
287
|
+
"followUpPromoteToPrincipleDescription": "链接已有的原则候选以沉淀此决策。PD 不会创建新的候选——从证据链中选择或粘贴候选 ID。"
|
|
230
288
|
},
|
|
231
289
|
"principles": {
|
|
232
290
|
"title": "原则",
|
|
@@ -589,7 +647,58 @@
|
|
|
589
647
|
"agentEnabled": "已启用",
|
|
590
648
|
"agentDisabled": "已停用",
|
|
591
649
|
"profileLabel": "配置",
|
|
592
|
-
"readinessLabel": "就绪状态"
|
|
650
|
+
"readinessLabel": "就绪状态",
|
|
651
|
+
"empathyCostHint": {
|
|
652
|
+
"body": "共情观察器已启用 — 每次关键词未命中时会调用 LLM 做深度分析(当前模型:{{provider}}/{{model}})。",
|
|
653
|
+
"muted": "如需节省成本,建议使用本地 LLM 模型(如 Ollama),或在 workflows.yaml 的 pd-empathy-observer.policy.model 换更便宜模型。",
|
|
654
|
+
"ack": "知道了"
|
|
655
|
+
},
|
|
656
|
+
"workflow": {
|
|
657
|
+
"title": "PD 行为回路",
|
|
658
|
+
"subtitle": "从错误到原则,从原则到改变",
|
|
659
|
+
"phase01": "发现错误",
|
|
660
|
+
"phase01Desc": "观察智能体行为\n识别需要改进的模式",
|
|
661
|
+
"phase02": "形成原则",
|
|
662
|
+
"phase02Desc": "把经验提炼成\n可遵循的原则",
|
|
663
|
+
"phase03": "拥有者审批",
|
|
664
|
+
"phase03Desc": "你决定哪些原则\n可以生效",
|
|
665
|
+
"phase04": "改变行为",
|
|
666
|
+
"phase04Desc": "原则作用于\n智能体下次行为",
|
|
667
|
+
"loopHint": "行为改变后,PD 继续观察 —— 形成闭环。9 个代理分布在这条回路上,各司其职。"
|
|
668
|
+
},
|
|
669
|
+
"status": {
|
|
670
|
+
"enabled": "已启用",
|
|
671
|
+
"notReady": "未就绪",
|
|
672
|
+
"corePipeline": "核心管道",
|
|
673
|
+
"corePipelineOk": "正常",
|
|
674
|
+
"corePipelineDegraded": "降级可用",
|
|
675
|
+
"corePipelineParalyzed": "瘫痪",
|
|
676
|
+
"needsConfig": "需配置"
|
|
677
|
+
},
|
|
678
|
+
"groups": {
|
|
679
|
+
"coreTrio": "核心三件套",
|
|
680
|
+
"coreTrioTag": "必须一起开",
|
|
681
|
+
"coreTrioHint": "关掉任何一个,PD 都无法把错误转化为原则",
|
|
682
|
+
"codeChain": "代码实现链",
|
|
683
|
+
"codeChainTag": "推荐一起开",
|
|
684
|
+
"codeChainHint": "只开 artificer 会降级为纯提示通道;只开 evaluator 无意义",
|
|
685
|
+
"qualityPolish": "质量打磨",
|
|
686
|
+
"qualityPolishTag": "可选 · 单独开关",
|
|
687
|
+
"qualityPolishHint": "让原则更精炼,关掉也能用,只是质量略粗",
|
|
688
|
+
"sidechain": "侧链服务",
|
|
689
|
+
"sidechainTag": "独立 · 单独开关",
|
|
690
|
+
"sidechainHint": "不影响主管道,只影响 pain 信号检测精度"
|
|
691
|
+
},
|
|
692
|
+
"impact": {
|
|
693
|
+
"label": "关掉会怎样",
|
|
694
|
+
"confirmTitle": "确认关闭核心代理",
|
|
695
|
+
"confirmAck": "确认关闭",
|
|
696
|
+
"confirmCancel": "取消"
|
|
697
|
+
},
|
|
698
|
+
"techDetail": "技术细节",
|
|
699
|
+
"profileLabelShort": "运行时",
|
|
700
|
+
"unknownAgentsWarning": "检测到 {{count}} 个未识别的代理:{{names}}。它们未被分组显示。",
|
|
701
|
+
"footerNote": "9 个代理分布在内化管道与侧链服务两条路径上。核心三件套必须一起开,否则 PD 无法把错误转化为原则。"
|
|
593
702
|
},
|
|
594
703
|
"login": {
|
|
595
704
|
"title": "登录",
|
|
@@ -640,6 +749,199 @@
|
|
|
640
749
|
"filesUpdated": "更新了 {{count}} 个文件",
|
|
641
750
|
"networkErrorHint": "请检查网络连接后重试。",
|
|
642
751
|
"retry": "重试"
|
|
752
|
+
},
|
|
753
|
+
"intent": {
|
|
754
|
+
"eyebrow": "拥有者意图",
|
|
755
|
+
"title": "拥有者意图文档",
|
|
756
|
+
"subtitle": "单页锚点,记录拥有者的目标、不可违背的边界、以及何时应当停止并升级。仅当 intent_engineering 标志开启时,PD 才会读取此文档。",
|
|
757
|
+
"flagStatus": {
|
|
758
|
+
"enabled": "标志已开启",
|
|
759
|
+
"disabled": "标志已关闭",
|
|
760
|
+
"ariaLabel": "intent_engineering 功能标志状态",
|
|
761
|
+
"enable": "启用意图工程",
|
|
762
|
+
"enabling": "启用中…",
|
|
763
|
+
"enableFailed": "启用失败,请稍后重试或手动修改 .pd/config.yaml"
|
|
764
|
+
},
|
|
765
|
+
"editEntry": {
|
|
766
|
+
"heading": "编辑 INTENT.md",
|
|
767
|
+
"title": "拥有者自有文档",
|
|
768
|
+
"description": "PD 不会修改此文件。请在自己的编辑器中编辑,以声明或修订你的意图。",
|
|
769
|
+
"copy": "复制路径",
|
|
770
|
+
"copyAriaLabel": "复制 INTENT.md 文件路径到剪贴板"
|
|
771
|
+
},
|
|
772
|
+
"flagDisabled": {
|
|
773
|
+
"title": "意图工程已关闭",
|
|
774
|
+
"description": "intent_engineering 功能标志未开启。PD 当前不会读取 INTENT.md,不会将意图上下文注入提示词,也不会在诊断中呈现意图张力。这是 MVP-Quiet 的默认状态。"
|
|
775
|
+
},
|
|
776
|
+
"notFound": {
|
|
777
|
+
"title": "未找到 INTENT.md",
|
|
778
|
+
"description": "PD 在 .principles/ 目录中未找到 INTENT.md 文件。缺少此锚点时,基于意图的诊断无法运行。",
|
|
779
|
+
"nextAction": "运行:pd intent init --confirm --workspace <path>",
|
|
780
|
+
"createButton": "创建 INTENT.md",
|
|
781
|
+
"creating": "创建中…",
|
|
782
|
+
"createFailed": "创建失败,请稍后重试",
|
|
783
|
+
"createSuccess": "INTENT.md 已创建,你可以开始填写意图"
|
|
784
|
+
},
|
|
785
|
+
"onboarding": {
|
|
786
|
+
"title": "欢迎使用意图工程",
|
|
787
|
+
"subtitle": "在开始之前,让我们先了解一下意图工程",
|
|
788
|
+
"whatIsIt": {
|
|
789
|
+
"title": "什么是意图工程?",
|
|
790
|
+
"description": "INTENT.md 是你的长期意图锚点 — 记录你的目标、不可违背的边界、以及何时应当停止并升级。它帮助 PD 在关键决策点对齐你的真实意图。"
|
|
791
|
+
},
|
|
792
|
+
"whyYouFill": {
|
|
793
|
+
"title": "为什么需要你填写?",
|
|
794
|
+
"description": "意图是拥有者自有的。PD 不会自动生成意图,因为只有你知道项目的真实目标和边界。这是你的决策权,PD 只负责帮助你执行和对齐。"
|
|
795
|
+
},
|
|
796
|
+
"sectionGuide": {
|
|
797
|
+
"title": "5 个章节填写引导",
|
|
798
|
+
"description": "INTENT.md 包含 5 个章节,每个章节有明确的用途:",
|
|
799
|
+
"sections": {
|
|
800
|
+
"why": "为什么 — 这个项目的根本动机",
|
|
801
|
+
"desiredOutcome": "期望结果 — 你希望达成的具体结果",
|
|
802
|
+
"nonNegotiables": "不可妥协项 — 绝对不能违反的边界",
|
|
803
|
+
"stopEscalation": "停止 / 升级 — 何时应当停止当前操作并升级给你",
|
|
804
|
+
"currentStrategicFocus": "当前战略焦点 — 阶段性重点"
|
|
805
|
+
}
|
|
806
|
+
},
|
|
807
|
+
"skipOption": "跳过引导,创建空模板稍后填写",
|
|
808
|
+
"startFilling": "开始填写",
|
|
809
|
+
"skip": "跳过",
|
|
810
|
+
"close": "关闭",
|
|
811
|
+
"dontShowAgain": "不再显示"
|
|
812
|
+
},
|
|
813
|
+
"editor": {
|
|
814
|
+
"title": "编辑 INTENT.md",
|
|
815
|
+
"description": "直接在浏览器中编辑你的意图文档。保存后会立即生效。",
|
|
816
|
+
"placeholder": "在此输入 INTENT.md 内容(Markdown 格式)…",
|
|
817
|
+
"save": "保存",
|
|
818
|
+
"saving": "保存中…",
|
|
819
|
+
"cancel": "取消",
|
|
820
|
+
"edit": "编辑",
|
|
821
|
+
"saveSuccess": "INTENT.md 已保存",
|
|
822
|
+
"saveFailed": "保存失败,请稍后重试",
|
|
823
|
+
"emptyContent": "内容不能为空",
|
|
824
|
+
"oversized": "内容超过 32KB 上限,请精简后重试",
|
|
825
|
+
"confirmDiscard": "你有未保存的修改,确定要放弃吗?",
|
|
826
|
+
"yes": "是,放弃修改",
|
|
827
|
+
"no": "继续编辑"
|
|
828
|
+
},
|
|
829
|
+
"oversized": {
|
|
830
|
+
"title": "INTENT.md 超过 32KB",
|
|
831
|
+
"description": "文件超过 32KB 上限。PD 拒绝读取超大文件,以保证意图解析的确定性与有界性。",
|
|
832
|
+
"nextAction": "请将 INTENT.md 精简至 32KB 以下,将长篇策略移至独立文档。"
|
|
833
|
+
},
|
|
834
|
+
"sections": {
|
|
835
|
+
"why": "为什么",
|
|
836
|
+
"desiredOutcome": "期望结果",
|
|
837
|
+
"nonNegotiables": "不可妥协项",
|
|
838
|
+
"stopEscalation": "停止 / 升级",
|
|
839
|
+
"currentStrategicFocus": "当前战略焦点"
|
|
840
|
+
},
|
|
841
|
+
"warnings": {
|
|
842
|
+
"title": "健康告警",
|
|
843
|
+
"empty": "无告警。INTENT.md 格式良好。",
|
|
844
|
+
"missing_section": "缺失章节",
|
|
845
|
+
"empty_section": "章节为空",
|
|
846
|
+
"too_vague": "章节过于简略(少于 10 个字符)",
|
|
847
|
+
"oversized": "文档超过 32KB 上限",
|
|
848
|
+
"parse_failed": "章节解析失败"
|
|
849
|
+
},
|
|
850
|
+
"meta": {
|
|
851
|
+
"title": "文档元信息",
|
|
852
|
+
"lastEditedAt": "上次编辑",
|
|
853
|
+
"contentHash": "内容哈希",
|
|
854
|
+
"path": "路径",
|
|
855
|
+
"templateTitle": "INTENT.md 模板",
|
|
856
|
+
"templateDescription": "将其复制到 .principles/INTENT.md,替换占位符为你的意图。"
|
|
857
|
+
},
|
|
858
|
+
"loadError": "加载意图文档失败",
|
|
859
|
+
"validationError": "数据格式校验失败,请刷新后重试",
|
|
860
|
+
"decisions": {
|
|
861
|
+
"sectionTitle": "拥有者决策",
|
|
862
|
+
"sectionSubtitle": "基于 IntentDecisionRecord 的轻量审计摘要,非仪表盘。",
|
|
863
|
+
"countConfirmDrift": "确认漂移",
|
|
864
|
+
"countReviseIntent": "修订意图",
|
|
865
|
+
"countObserve": "观察",
|
|
866
|
+
"countDismiss": "驳回",
|
|
867
|
+
"countPromoteToPrinciple": "沉淀为原则",
|
|
868
|
+
"countPromoteToRulehost": "转为 RuleHost",
|
|
869
|
+
"lastDecisionAtLabel": "最近决策",
|
|
870
|
+
"noDecisions": "暂无决策记录",
|
|
871
|
+
"loadError": "加载决策摘要失败"
|
|
872
|
+
},
|
|
873
|
+
"langSelector": {
|
|
874
|
+
"ariaLabel": "选择 INTENT.md 语言",
|
|
875
|
+
"disabledWhileEditing": "请先保存或取消编辑,再切换语言"
|
|
876
|
+
},
|
|
877
|
+
"versionHistory": {
|
|
878
|
+
"title": "版本历史",
|
|
879
|
+
"reasonInit": "初始化",
|
|
880
|
+
"reasonSave": "保存"
|
|
881
|
+
},
|
|
882
|
+
"wizard": {
|
|
883
|
+
"progressLabel": "第 {{current}}/5 步",
|
|
884
|
+
"next": "下一步",
|
|
885
|
+
"prev": "上一步",
|
|
886
|
+
"finish": "完成",
|
|
887
|
+
"review": "查看摘要",
|
|
888
|
+
"complete": "完成保存",
|
|
889
|
+
"cancel": "取消",
|
|
890
|
+
"emptyWarning": "此节不能为空,请填写后再继续",
|
|
891
|
+
"stepLabels": {
|
|
892
|
+
"why": "1. 为什么(Why)",
|
|
893
|
+
"desiredOutcome": "2. 期望结果(Desired Outcome)",
|
|
894
|
+
"nonNegotiables": "3. 不可妥协项(Non-negotiables)",
|
|
895
|
+
"stopEscalation": "4. 止损/升级(Stop / Escalation)",
|
|
896
|
+
"currentStrategicFocus": "5. 当前战略焦点(Current Strategic Focus)"
|
|
897
|
+
},
|
|
898
|
+
"guidance": {
|
|
899
|
+
"why": "说明这个项目为什么重要。拥有者关心什么?不解决会怎样?",
|
|
900
|
+
"desiredOutcome": "描述可观察的改变。做完后,什么会变好?",
|
|
901
|
+
"nonNegotiables": "列出不可违反的硬约束(合规/安全/边界)。",
|
|
902
|
+
"stopEscalation": "什么情况下应该停下来升级给拥有者,而不是继续推进?",
|
|
903
|
+
"currentStrategicFocus": "当前阶段最优先的事是什么?(会随阶段更新)"
|
|
904
|
+
},
|
|
905
|
+
"discardConfirmTitle": "放弃填写?",
|
|
906
|
+
"discardConfirmBody": "你已填写的内容将丢失,无法恢复。",
|
|
907
|
+
"discardConfirmCancel": "继续填写",
|
|
908
|
+
"discardConfirmConfirm": "放弃"
|
|
909
|
+
},
|
|
910
|
+
"versionDiff": {
|
|
911
|
+
"changed": "已变更",
|
|
912
|
+
"unchanged": "未变更",
|
|
913
|
+
"oldPreview": "旧版本",
|
|
914
|
+
"newPreview": "新版本",
|
|
915
|
+
"expandHint": "点击查看 section 级差异",
|
|
916
|
+
"collapseHint": "点击折叠差异"
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
"debt": {
|
|
920
|
+
"eyebrow": "原则债务",
|
|
921
|
+
"title": "原则债务管理",
|
|
922
|
+
"subtitle": "审查那些未激活、长期停滞或可能成为技术/行为负债的原则。",
|
|
923
|
+
"emptyTitle": "暂无原则债务",
|
|
924
|
+
"emptyDescription": "太棒了!你的所有活跃原则均运行正常,没有发现长期未激活或被晾在审批队列里的情况。",
|
|
925
|
+
"reasonNeverActivated": "该原则已被批准,但从未真正部署到任何运行通道(如提示词、RuleHost)。",
|
|
926
|
+
"reasonStagnant": "该原则的审批请求已在队列中滞留超过 7 天,可能已被遗忘。",
|
|
927
|
+
"suggestedAction": "建议操作",
|
|
928
|
+
"actionArchive": "归档",
|
|
929
|
+
"actionDeactivate": "停用通道",
|
|
930
|
+
"actionKeep": "保留观察",
|
|
931
|
+
"confirmArchive": "归档该原则会将其移出当前活跃原则库,确认归档吗?",
|
|
932
|
+
"confirmDeactivate": "停用该通道将使该原则不再在运行时对智能体进行拦截,确认停用吗?",
|
|
933
|
+
"deactivateSuccess": "通道停用成功。",
|
|
934
|
+
"deactivateFailed": "停用通道失败。",
|
|
935
|
+
"archiveSuccess": "原则归档成功。",
|
|
936
|
+
"archiveFailed": "原则归档失败。",
|
|
937
|
+
"undoAction": "撤销",
|
|
938
|
+
"undoSuccess": "操作已撤销。",
|
|
939
|
+
"undoFailed": "撤销操作失败。",
|
|
940
|
+
"loadError": "无法加载原则债务数据,请尝试刷新页面。",
|
|
941
|
+
"daysSinceAgo": "{{count}} 天前",
|
|
942
|
+
"demoteTooltip": "降权端点开发中",
|
|
943
|
+
"principleAriaLabel": "原则债务 {{id}}",
|
|
944
|
+
"listAriaLabel": "原则债务列表"
|
|
643
945
|
}
|
|
644
946
|
},
|
|
645
947
|
"components": {
|
|
@@ -699,7 +1001,8 @@
|
|
|
699
1001
|
"settings": "设置",
|
|
700
1002
|
"update": "更新",
|
|
701
1003
|
"pendingApprovalsAria": "{{count}} 条待审批原则",
|
|
702
|
-
"degradedSignalsAria": "{{count}} 个系统降级信号"
|
|
1004
|
+
"degradedSignalsAria": "{{count}} 个系统降级信号",
|
|
1005
|
+
"intent": "拥有者意图"
|
|
703
1006
|
},
|
|
704
1007
|
"approvalCard": {
|
|
705
1008
|
"confidence": {
|
|
@@ -6,6 +6,7 @@ import { toast } from "sonner";
|
|
|
6
6
|
import { PageShell } from "../../components/layout/page-shell.js";
|
|
7
7
|
import { PageLoading } from "../../components/layout/page-loading.js";
|
|
8
8
|
import { SectionTitle } from "../../components/layout/section-title.js";
|
|
9
|
+
import { ShinyText } from "../../components/ui/shiny-text.js";
|
|
9
10
|
import { fetchAllActivations, disableActivation, fetchLifecycleMetrics, } from "../../api.js";
|
|
10
11
|
import { validateActivationsData, validateLifecycleMetricsData, isReversibleChannel, } from "./ActivationValidators.js";
|
|
11
12
|
import { enumLabel } from "../../utils/enum-labels.js";
|
|
@@ -137,7 +138,7 @@ export function ActivationPage() {
|
|
|
137
138
|
const activeActivations = activations.filter((a) => a.status === "active");
|
|
138
139
|
const inactiveActivations = activations.filter((a) => a.status === "inactive");
|
|
139
140
|
const neverActivatedCount = activations.filter((a) => a.activatedAt === null).length;
|
|
140
|
-
return (_jsx(PageShell, { children: _jsxs("div", { className: "animate-[pdFadeIn_400ms_ease-out]", children: [_jsx("div", { className: "font-mono text-[12px] tracking-[0.14em] text-ink-3 uppercase mb-3", children: t("pages.activation.eyebrow") }), _jsx("h1",
|
|
141
|
+
return (_jsx(PageShell, { children: _jsxs("div", { className: "animate-[pdFadeIn_400ms_ease-out]", children: [_jsx("div", { className: "font-mono text-[12px] tracking-[0.14em] text-ink-3 uppercase mb-3", children: t("pages.activation.eyebrow") }), _jsx(ShinyText, { as: "h1", className: "text-[29px] font-semibold tracking-tight text-ink mb-2", duration: 4.5, brightness: 0.5, disabled: activeActivations.length === 0, children: t("pages.activation.title") }), _jsx("p", { className: "text-ink-3 text-[14px] max-w-[760px] leading-relaxed mb-7", children: t("pages.activation.subtitle") }), _jsxs("div", { className: "text-sm leading-relaxed text-ink-2 mb-7 px-[18px] py-[14px] bg-panel border border-line rounded-[6px]", role: "status", "aria-live": "polite", children: [_jsx("span", { className: "font-mono font-semibold text-ink tabular-nums", children: activeActivations.length }), " ", _jsx("span", { className: "text-ink-3", children: t("pages.activation.summaryActive") }), " ", "/", " ", _jsx("span", { className: "font-mono font-semibold text-ink tabular-nums", children: inactiveActivations.length }), " ", _jsx("span", { className: "text-ink-3", children: t("pages.activation.summaryInactive") }), neverActivatedCount > 0 && (_jsxs(_Fragment, { children: [" ", "/", " ", _jsx("span", { className: "font-mono font-semibold text-amber tabular-nums", children: neverActivatedCount }), " ", _jsx("span", { className: "text-amber", children: t("pages.activation.summaryNeverActivated") })] }))] }), _jsx(CapabilityBoundaryDeclaration, {}), degradedNote && (_jsx("div", { className: "mt-4 text-ink-4 text-[13px] bg-surface/60 border-l-2 border-amber px-3 py-2", children: degradedNote })), _jsxs("section", { className: "mt-8", "aria-labelledby": "section-active", children: [_jsx(SectionTitle, { id: "section-active", children: t("pages.activation.sectionActive") }), activeActivations.length > 0 ? (_jsx("div", { className: "space-y-[14px]", children: activeActivations.map((record) => (_jsx(ActivationFactCard, { record: record, lifecycleData: lifecycleCache[record.principleId], onDisable: handleDisable, disabling: disablingIds.has(record.id) }, record.id))) })) : (_jsx("div", { className: "text-ink-3 text-[13px] leading-relaxed py-3", children: t("pages.activation.emptyActive") }))] }), inactiveActivations.length > 0 && (_jsxs("section", { className: "mt-8", "aria-labelledby": "section-inactive", children: [_jsx(SectionTitle, { id: "section-inactive", children: t("pages.activation.sectionInactive") }), _jsx("div", { className: "space-y-[14px]", children: inactiveActivations.map((record) => (_jsx(ActivationFactCard, { record: record, lifecycleData: lifecycleCache[record.principleId], onDisable: handleDisable, disabling: disablingIds.has(record.id) }, record.id))) })] })), neverActivatedCount > 0 && (_jsxs("section", { className: "mt-8", "aria-labelledby": "section-never-activated", children: [_jsx(SectionTitle, { id: "section-never-activated", children: t("pages.activation.sectionNeverActivated") }), _jsx("div", { className: "space-y-[10px]", children: activations
|
|
141
142
|
.filter((a) => a.activatedAt === null)
|
|
142
143
|
.map((record) => (_jsxs("article", { className: "relative pl-[22px] py-[14px] pr-[18px] bg-panel border border-amber/20 border-l-[3px] border-l-amber rounded-[6px]", children: [_jsxs("div", { className: "text-ink-2 text-sm leading-relaxed", children: [_jsx("span", { className: "font-medium text-ink", children: t("pages.activation.neverActivatedCard") }), " ", "\u2014 ", record.action, " \u00B7 ", getChannelLabel(record.channel, t), _jsx("span", { className: "ml-2 font-mono text-[11px] text-ink-4", children: record.principleId })] }), _jsxs(Link, { to: "/debt", className: "inline-flex items-center mt-2 text-gov text-[13px] hover:underline focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: [t("pages.activation.viewDebt"), " \u2192"] })] }, record.id))) })] })), _jsx("footer", { className: "mt-12 pt-6 border-t border-line text-ink-3 text-[13px]", children: t("pages.activation.footer") })] }) }));
|
|
143
144
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AgentMeta } from "../../utils/agent-metadata.js";
|
|
2
|
+
import type { RedactedAgentSummary, RedactedRuntimeProfileSummary } from "../../api.js";
|
|
3
|
+
/**
|
|
4
|
+
* AgentCard — 三层渐进式披露代理卡片 + 核心代理内联确认
|
|
5
|
+
*
|
|
6
|
+
* L1(折叠态):状态点 + 显示名 + agent.name + 角色一句话 + 开关 + 展开箭头
|
|
7
|
+
* L2(展开态):详细说明段落 + impact-box + 技术细节 toggle + profile-row
|
|
8
|
+
* L3(嵌套折叠):技术细节 grid
|
|
9
|
+
*
|
|
10
|
+
* 核心代理(isCore=true)关闭时显示内联确认条(不弹模态)。
|
|
11
|
+
*
|
|
12
|
+
* rc 合规:
|
|
13
|
+
* - rc-1: agent/profiles 由父组件已验证;meta 是静态数据
|
|
14
|
+
* - rc-2: 无 as 绕过
|
|
15
|
+
* - rc-8: 无 JSON 序列化
|
|
16
|
+
*
|
|
17
|
+
* 品牌约束(PRI-CR1 B.4.4):
|
|
18
|
+
* - 禁止 translateY / scale hover(rotate 仅用于箭头朝向,允许)
|
|
19
|
+
* - 无硬编码十六进制色值
|
|
20
|
+
*/
|
|
21
|
+
export type AgentLocale = "zh-CN" | "en";
|
|
22
|
+
interface AgentCardProps {
|
|
23
|
+
agent: RedactedAgentSummary;
|
|
24
|
+
meta: AgentMeta;
|
|
25
|
+
profiles: RedactedRuntimeProfileSummary[];
|
|
26
|
+
onBindingChange: (agentName: string, runtimeProfile: string, enabled: boolean) => void;
|
|
27
|
+
saving: string | null;
|
|
28
|
+
locale: AgentLocale;
|
|
29
|
+
}
|
|
30
|
+
export declare function AgentCard({ agent, meta, profiles, onBindingChange, saving, locale, }: AgentCardProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { ChevronRight } from "lucide-react";
|
|
5
|
+
import { cn } from "../../../lib/utils.js";
|
|
6
|
+
/** 状态点样式:ready / notready / off */
|
|
7
|
+
function statusDotClasses(agent) {
|
|
8
|
+
const base = "w-2 h-2 rounded-full border-2 shrink-0";
|
|
9
|
+
if (!agent.enabled) {
|
|
10
|
+
return cn(base, "border-ink-4 bg-surface opacity-50");
|
|
11
|
+
}
|
|
12
|
+
switch (agent.readiness) {
|
|
13
|
+
case "ready":
|
|
14
|
+
return cn(base, "border-green bg-green");
|
|
15
|
+
case "not_ready":
|
|
16
|
+
return cn(base, "border-amber bg-surface");
|
|
17
|
+
case "needs_setup":
|
|
18
|
+
return cn(base, "border-amber bg-surface");
|
|
19
|
+
default:
|
|
20
|
+
return cn(base, "border-ink-4 bg-surface");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** impact-box 左边框色 */
|
|
24
|
+
function impactBorderClass(level) {
|
|
25
|
+
switch (level) {
|
|
26
|
+
case "danger":
|
|
27
|
+
return "border-l-danger";
|
|
28
|
+
case "green":
|
|
29
|
+
return "border-l-green";
|
|
30
|
+
default:
|
|
31
|
+
return "border-l-amber";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** impact label 色 */
|
|
35
|
+
function impactLabelClass(level) {
|
|
36
|
+
switch (level) {
|
|
37
|
+
case "danger":
|
|
38
|
+
return "text-danger";
|
|
39
|
+
case "green":
|
|
40
|
+
return "text-green";
|
|
41
|
+
default:
|
|
42
|
+
return "text-ink-4";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 渲染含反引号 code 片段的文本。
|
|
47
|
+
* 输入示例:'`DiagnosticianContextPayload`(pain 信号上下文)'
|
|
48
|
+
* 输出:[<code>DiagnosticianContextPayload</code>, "(pain 信号上下文)"]
|
|
49
|
+
*/
|
|
50
|
+
function renderTextWithCode(text) {
|
|
51
|
+
const parts = text.split("`");
|
|
52
|
+
const nodes = [];
|
|
53
|
+
for (let i = 0; i < parts.length; i++) {
|
|
54
|
+
const part = parts[i];
|
|
55
|
+
if (part === undefined)
|
|
56
|
+
continue;
|
|
57
|
+
if (i % 2 === 0) {
|
|
58
|
+
if (part.length > 0) {
|
|
59
|
+
nodes.push(part);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Odd index = content between backticks = code
|
|
64
|
+
nodes.push(_jsx("code", { className: "font-mono text-[11px] text-ink-2 bg-paper-2 px-[5px] py-[1px] rounded-[2px]", children: part }, `code-${i}`));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return nodes;
|
|
68
|
+
}
|
|
69
|
+
export function AgentCard({ agent, meta, profiles, onBindingChange, saving, locale, }) {
|
|
70
|
+
const { t } = useTranslation();
|
|
71
|
+
const isSaving = saving === agent.name;
|
|
72
|
+
// L2 / L3 / confirm 状态
|
|
73
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
74
|
+
const [showTechDetail, setShowTechDetail] = useState(false);
|
|
75
|
+
const [confirming, setConfirming] = useState(false);
|
|
76
|
+
// locale 决定取 Zh 还是 En 字段
|
|
77
|
+
const isZh = locale === "zh-CN";
|
|
78
|
+
const displayName = isZh ? meta.displayNameZh : meta.displayNameEn;
|
|
79
|
+
const role = isZh ? meta.roleZh : meta.roleEn;
|
|
80
|
+
const detail = isZh ? meta.detailZh : meta.detailEn;
|
|
81
|
+
const impact = isZh ? meta.impactZh : meta.impactEn;
|
|
82
|
+
const techDetail = isZh ? meta.techDetailZh : meta.techDetailEn;
|
|
83
|
+
const mvpNote = isZh ? meta.mvpNoteZh : meta.mvpNoteEn;
|
|
84
|
+
// 段落用 \n\n 分隔
|
|
85
|
+
const detailParagraphs = detail.split("\n\n").filter((p) => p.length > 0);
|
|
86
|
+
// 头部点击:toggle isOpen(但点击 toggle 按钮 / confirm-bar / tech-toggle 不触发)
|
|
87
|
+
const handleHeadClick = (e) => {
|
|
88
|
+
const target = e.target;
|
|
89
|
+
if (target.closest("[data-agent-toggle]") ||
|
|
90
|
+
target.closest("[data-confirm-bar]") ||
|
|
91
|
+
target.closest("[data-tech-toggle]")) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
setIsOpen((prev) => !prev);
|
|
95
|
+
};
|
|
96
|
+
// toggle 按钮点击
|
|
97
|
+
const handleToggleClick = (e) => {
|
|
98
|
+
e.stopPropagation();
|
|
99
|
+
if (agent.enabled) {
|
|
100
|
+
// 当前 on → 要关
|
|
101
|
+
if (meta.isCore) {
|
|
102
|
+
// 核心代理:显示内联确认 + 自动展开
|
|
103
|
+
setConfirming(true);
|
|
104
|
+
setIsOpen(true);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// 非核心代理:直接关
|
|
108
|
+
onBindingChange(agent.name, agent.runtimeProfileId, false);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// 当前 off → 要开
|
|
113
|
+
onBindingChange(agent.name, agent.runtimeProfileId, true);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
// 确认停用
|
|
117
|
+
const handleConfirmOff = (e) => {
|
|
118
|
+
e.stopPropagation();
|
|
119
|
+
onBindingChange(agent.name, agent.runtimeProfileId, false);
|
|
120
|
+
setConfirming(false);
|
|
121
|
+
};
|
|
122
|
+
// 取消确认
|
|
123
|
+
const handleCancelConfirm = (e) => {
|
|
124
|
+
e.stopPropagation();
|
|
125
|
+
setConfirming(false);
|
|
126
|
+
};
|
|
127
|
+
// tech-toggle 点击
|
|
128
|
+
const handleTechToggleClick = (e) => {
|
|
129
|
+
e.stopPropagation();
|
|
130
|
+
setShowTechDetail((prev) => !prev);
|
|
131
|
+
};
|
|
132
|
+
// profile select 变更
|
|
133
|
+
const handleProfileChange = (e) => {
|
|
134
|
+
onBindingChange(agent.name, e.target.value, agent.enabled);
|
|
135
|
+
};
|
|
136
|
+
return (_jsxs("div", { "data-agent-card": agent.name, className: cn("bg-surface border border-line-2 rounded-[4px] mb-[6px] overflow-hidden transition-colors hover:border-line", !meta.isCore && "border-dashed", !agent.enabled && "opacity-72"), children: [_jsxs("div", { className: "px-[16px] py-[12px] cursor-pointer flex items-center gap-[12px]", onClick: handleHeadClick, role: "button", tabIndex: 0, "aria-expanded": isOpen, onKeyDown: (e) => {
|
|
137
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
138
|
+
e.preventDefault();
|
|
139
|
+
setIsOpen((prev) => !prev);
|
|
140
|
+
}
|
|
141
|
+
}, children: [_jsx("div", { className: statusDotClasses(agent), "aria-hidden": "true" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: cn("text-[14px] font-semibold tracking-[-0.005em] flex items-center gap-[8px]", agent.enabled ? "text-ink" : "text-ink-3"), children: [_jsx("span", { children: displayName }), _jsx("span", { className: "font-mono text-[11.5px] text-ink-4 font-normal", children: agent.name })] }), _jsx("div", { className: "text-[12.5px] text-ink-3 mt-[2px] leading-[1.5]", children: role })] }), _jsx("button", { type: "button", "data-agent-toggle": true, onClick: handleToggleClick, disabled: isSaving, "aria-label": agent.enabled
|
|
142
|
+
? t("pages.controlCenter.agentDisabled")
|
|
143
|
+
: t("pages.controlCenter.agentEnabled"), className: cn("rounded-[3px] px-[14px] py-[6px] text-[12.5px] font-medium transition-colors disabled:opacity-50", agent.enabled
|
|
144
|
+
? "border border-gov bg-gov text-paper hover:bg-gov-2"
|
|
145
|
+
: "border border-line bg-surface text-ink hover:border-line-2"), children: isSaving
|
|
146
|
+
? t("pages.controlCenter.saving")
|
|
147
|
+
: agent.enabled
|
|
148
|
+
? t("pages.controlCenter.on")
|
|
149
|
+
: t("pages.controlCenter.off") }), _jsx(ChevronRight, { className: cn("w-[14px] h-[14px] text-ink-4 transition-transform shrink-0", isOpen && "rotate-90"), "aria-hidden": "true" })] }), isOpen && (_jsxs("div", { className: "px-[16px] pb-[14px] border-t border-line-2 bg-panel", children: [_jsx("div", { className: "pt-[14px] text-[13px] text-ink-3 leading-[1.62]", children: detailParagraphs.map((para, i) => (_jsx("p", { className: i > 0 ? "mt-2" : undefined, children: renderTextWithCode(para) }, i))) }), mvpNote && (_jsx("div", { className: "mt-3 text-[12px] text-ink-4 font-mono italic", children: mvpNote })), _jsxs("div", { className: cn("mt-[12px] px-[12px] py-[10px] border border-line-2 border-l-[2.5px] rounded-[4px] bg-paper-2 text-[12.5px] text-ink-3 leading-[1.55]", impactBorderClass(meta.impactLevel)), children: [_jsx("span", { className: cn("block mb-[3px] text-[10px] font-mono uppercase tracking-[0.08em] font-medium", impactLabelClass(meta.impactLevel)), children: t("pages.controlCenter.impact.label") }), impact] }), Object.keys(techDetail).length > 0 && (_jsxs(_Fragment, { children: [_jsxs("div", { "data-tech-toggle": true, className: "mt-[12px] pt-[12px] border-t border-line-2 flex items-center gap-[6px] cursor-pointer text-[11px] text-ink-4 font-mono uppercase tracking-[0.04em] hover:text-ink-2 transition-colors", onClick: handleTechToggleClick, role: "button", tabIndex: 0, "aria-expanded": showTechDetail, onKeyDown: (e) => {
|
|
150
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
151
|
+
e.preventDefault();
|
|
152
|
+
e.stopPropagation();
|
|
153
|
+
setShowTechDetail((prev) => !prev);
|
|
154
|
+
}
|
|
155
|
+
}, children: [_jsx(ChevronRight, { className: cn("w-[12px] h-[12px] transition-transform", showTechDetail && "rotate-90"), "aria-hidden": "true" }), t("pages.controlCenter.techDetail")] }), showTechDetail && (_jsx("div", { className: "mt-2 grid grid-cols-[72px_1fr] gap-x-[14px] gap-y-[6px] text-[12px] leading-[1.55]", children: Object.entries(techDetail).map(([k, v]) => (_jsxs("div", { className: "contents", children: [_jsx("div", { className: "text-ink-4 font-mono text-[10.5px] uppercase tracking-[0.04em] pt-px", children: k }), _jsx("div", { className: "text-ink-3", children: renderTextWithCode(v) })] }, k))) }))] })), _jsxs("div", { className: "mt-[12px] pt-[12px] border-t border-line-2 flex items-center gap-[10px] text-[12px]", children: [_jsx("span", { className: "text-ink-4 font-mono text-[10.5px] uppercase tracking-[0.04em]", children: t("pages.controlCenter.profileLabelShort") }), _jsx("select", { value: agent.runtimeProfileId, onChange: handleProfileChange, disabled: isSaving, className: "font-mono text-[11px] text-ink-2 bg-surface border border-line-2 rounded-[3px] px-2 py-1 cursor-pointer focus:outline-none focus:border-gov disabled:opacity-50", "aria-label": t("pages.controlCenter.profileLabel"), children: profiles.map((p) => (_jsx("option", { value: p.id, children: p.label }, p.id))) })] }), confirming && (_jsxs("div", { "data-confirm-bar": true, className: "mt-[10px] px-[12px] py-[10px] border border-danger rounded-[4px] bg-danger/10 text-[12px] text-ink-2 leading-[1.55]", children: [_jsx("div", { children: impact }), _jsxs("div", { className: "mt-2 flex gap-[8px]", children: [_jsx("button", { type: "button", onClick: handleConfirmOff, className: "text-[11.5px] px-[12px] py-[4px] rounded-[3px] border border-transparent bg-danger text-paper font-medium hover:opacity-90 transition-opacity focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: t("pages.controlCenter.impact.confirmAck") }), _jsx("button", { type: "button", onClick: handleCancelConfirm, className: "text-[11.5px] px-[12px] py-[4px] rounded-[3px] border border-line bg-transparent text-ink-3 hover:border-line-2 transition-colors focus-visible:outline-2 focus-visible:outline-gov focus-visible:outline-offset-2", children: t("pages.controlCenter.impact.confirmCancel") })] })] }))] }))] }));
|
|
156
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AgentGroupMeta } from "../../utils/agent-metadata.js";
|
|
2
|
+
import type { RedactedAgentSummary, RedactedRuntimeProfileSummary } from "../../api.js";
|
|
3
|
+
import { type AgentLocale } from "./AgentCard.js";
|
|
4
|
+
/**
|
|
5
|
+
* AgentGroup — 依赖分组容器
|
|
6
|
+
*
|
|
7
|
+
* 渲染 group header(名称 + 标签 + 提示)+ 该组所有 AgentCard。
|
|
8
|
+
* 标签样式按 GroupTag(must/recommend/optional/independent)区分。
|
|
9
|
+
*
|
|
10
|
+
* rc 合规:
|
|
11
|
+
* - rc-2/rc-5: 父组件已用 groupAgentsByDependency 过滤未知代理,本组件用
|
|
12
|
+
* isKnownAgentName 类型守卫二次校验 agent.name 后取 meta(防御性,不静默)
|
|
13
|
+
* - rc-9: 若 agents 为空数组,渲染 group header 但显示空状态提示
|
|
14
|
+
*
|
|
15
|
+
* 品牌约束:无 translateY / scale hover,无硬编码色值
|
|
16
|
+
*/
|
|
17
|
+
interface AgentGroupProps {
|
|
18
|
+
groupMeta: AgentGroupMeta;
|
|
19
|
+
agents: RedactedAgentSummary[];
|
|
20
|
+
profiles: RedactedRuntimeProfileSummary[];
|
|
21
|
+
onBindingChange: (agentName: string, runtimeProfile: string, enabled: boolean) => void;
|
|
22
|
+
saving: string | null;
|
|
23
|
+
locale: AgentLocale;
|
|
24
|
+
}
|
|
25
|
+
export declare function AgentGroup({ groupMeta, agents, profiles, onBindingChange, saving, locale, }: AgentGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { cn } from "../../../lib/utils.js";
|
|
4
|
+
import { AGENT_METADATA, } from "../../utils/agent-metadata.js";
|
|
5
|
+
import { isKnownAgentName } from "../../utils/control-center-helpers.js";
|
|
6
|
+
import { AgentCard } from "./AgentCard.js";
|
|
7
|
+
/** gtag 样式按 GroupTag 区分 */
|
|
8
|
+
function gtagClasses(tag) {
|
|
9
|
+
const base = "text-[10px] font-mono px-[7px] py-[2px] rounded-[2px] tracking-[0.02em] font-medium border border-transparent";
|
|
10
|
+
switch (tag) {
|
|
11
|
+
case "must":
|
|
12
|
+
return cn(base, "bg-danger/10 text-danger border-danger/22");
|
|
13
|
+
case "recommend":
|
|
14
|
+
return cn(base, "bg-amber/10 text-amber border-amber/22");
|
|
15
|
+
case "optional":
|
|
16
|
+
return cn(base, "bg-paper-2 text-ink-4 border-line-2");
|
|
17
|
+
case "independent":
|
|
18
|
+
return cn(base, "bg-green/10 text-green border-green/22");
|
|
19
|
+
default:
|
|
20
|
+
return base;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function AgentGroup({ groupMeta, agents, profiles, onBindingChange, saving, locale, }) {
|
|
24
|
+
const { t } = useTranslation();
|
|
25
|
+
const isZh = locale === "zh-CN";
|
|
26
|
+
const groupName = isZh ? groupMeta.labelZh : groupMeta.labelEn;
|
|
27
|
+
const groupTagLabel = isZh ? groupMeta.tagLabelZh : groupMeta.tagLabelEn;
|
|
28
|
+
const groupHint = isZh ? groupMeta.hintZh : groupMeta.hintEn;
|
|
29
|
+
// rc-2/rc-5: 先用类型守卫缩窄 agent.name,避免 as 绕过;
|
|
30
|
+
// 空状态判断基于过滤后的 knownAgents,避免"全部未知时仍渲染 group header 但无卡片"
|
|
31
|
+
// 用对象级类型谓词让 TS 在后续 map 中正确缩窄 agent.name(Array.filter 对
|
|
32
|
+
// 子属性的 string 谓词不会传播到元素类型)
|
|
33
|
+
const knownAgents = agents.filter((agent) => isKnownAgentName(agent.name));
|
|
34
|
+
return (_jsxs("div", { className: "mb-[20px]", children: [_jsxs("div", { className: "px-[14px] py-[9px] bg-paper-2 border border-line-2 rounded-[4px] flex items-center gap-[10px] mb-[8px]", children: [_jsx("span", { className: "text-[12.5px] font-semibold text-ink-2", children: groupName }), _jsx("span", { className: gtagClasses(groupMeta.tag), children: groupTagLabel }), _jsx("span", { className: "ml-auto text-[11px] text-ink-4 font-mono leading-[1.4] max-w-[32ch] text-right", children: groupHint })] }), knownAgents.length === 0 ? (_jsx("div", { className: "py-2 px-4 text-[12.5px] text-ink-4 italic", children: "\u2014" })) : (knownAgents.map((agent) => {
|
|
35
|
+
const meta = AGENT_METADATA[agent.name];
|
|
36
|
+
return (_jsx(AgentCard, { agent: agent, meta: meta, profiles: profiles, onBindingChange: onBindingChange, saving: saving, locale: locale }, agent.name));
|
|
37
|
+
}))] }));
|
|
38
|
+
}
|