@aria_asi/cli 0.2.40 → 0.2.41
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/bin/aria.js +236 -34
- package/dist/aria-connector/src/action-ledger-core.d.ts +387 -0
- package/dist/aria-connector/src/action-ledger-core.d.ts.map +1 -0
- package/dist/aria-connector/src/action-ledger-core.js +638 -0
- package/dist/aria-connector/src/action-ledger-core.js.map +1 -0
- package/dist/aria-connector/src/chat.d.ts.map +1 -1
- package/dist/aria-connector/src/chat.js +5 -6
- package/dist/aria-connector/src/chat.js.map +1 -1
- package/dist/aria-connector/src/codebase-scanner.d.ts +1 -1
- package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.d.ts +1 -0
- package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.js +152 -14
- package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +10 -0
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.js +276 -27
- package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -1
- package/dist/aria-connector/src/connectors/codex.d.ts +3 -1
- package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codex.js +1223 -41
- package/dist/aria-connector/src/connectors/codex.js.map +1 -1
- package/dist/aria-connector/src/connectors/cursor.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/cursor.js +7 -0
- package/dist/aria-connector/src/connectors/cursor.js.map +1 -1
- package/dist/aria-connector/src/connectors/governed-adapter.d.ts +30 -0
- package/dist/aria-connector/src/connectors/governed-adapter.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/governed-adapter.js +132 -0
- package/dist/aria-connector/src/connectors/governed-adapter.js.map +1 -0
- package/dist/aria-connector/src/connectors/opencode.d.ts +3 -1
- package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.js +18 -2
- package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.js +25 -14
- package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.js +92 -2
- package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
- package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/shell.js +123 -7
- package/dist/aria-connector/src/connectors/shell.js.map +1 -1
- package/dist/aria-connector/src/cross-cli-hive-binding.d.ts +63 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.d.ts.map +1 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.js +205 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.js.map +1 -0
- package/dist/aria-connector/src/garden-control-plane.d.ts +6 -1
- package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
- package/dist/aria-connector/src/garden-control-plane.js +8 -2
- package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
- package/dist/aria-connector/src/governed-surface-runner.d.ts +189 -0
- package/dist/aria-connector/src/governed-surface-runner.d.ts.map +1 -0
- package/dist/aria-connector/src/governed-surface-runner.js +1022 -0
- package/dist/aria-connector/src/governed-surface-runner.js.map +1 -0
- package/dist/aria-connector/src/index.d.ts +10 -1
- package/dist/aria-connector/src/index.d.ts.map +1 -1
- package/dist/aria-connector/src/index.js +5 -0
- package/dist/aria-connector/src/index.js.map +1 -1
- package/dist/aria-connector/src/task-runner.d.ts +3 -0
- package/dist/aria-connector/src/task-runner.d.ts.map +1 -0
- package/dist/aria-connector/src/task-runner.js +3526 -0
- package/dist/aria-connector/src/task-runner.js.map +1 -0
- package/dist/aria-web/src/lib/codebase-scanner.d.ts +21 -2
- package/dist/aria-web/src/lib/codebase-scanner.d.ts.map +1 -1
- package/dist/aria-web/src/lib/codebase-scanner.js +59 -14
- package/dist/aria-web/src/lib/codebase-scanner.js.map +1 -1
- package/dist/assets/hooks/README.md +58 -0
- package/dist/assets/hooks/aria-agent-handoff.mjs +147 -2
- package/dist/assets/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/dist/assets/hooks/aria-architect-fallback.mjs +10 -2
- package/dist/assets/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/dist/assets/hooks/aria-first-class-coach.mjs +305 -10
- package/dist/assets/hooks/aria-harness-via-sdk.mjs +93 -16
- package/dist/assets/hooks/aria-import-resolution-gate.mjs +106 -20
- package/dist/assets/hooks/aria-outcome-record.mjs +56 -20
- package/dist/assets/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/dist/assets/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/dist/assets/hooks/aria-pre-text-gate.mjs +11 -2
- package/dist/assets/hooks/aria-pre-tool-gate.mjs +477 -81
- package/dist/assets/hooks/aria-pre-tool-use.mjs +70 -6
- package/dist/assets/hooks/aria-preprompt-consult.mjs +23 -4
- package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/dist/assets/hooks/aria-stop-gate.mjs +585 -76
- package/dist/assets/hooks/aria-trigger-autolearn.mjs +17 -3
- package/dist/assets/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/dist/assets/hooks/canonical-settings-block.json +172 -0
- package/dist/assets/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/dist/assets/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/dist/assets/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/dist/assets/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/dist/assets/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/dist/assets/hooks/codex-native/aria-stop.mjs +691 -0
- package/dist/assets/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/dist/assets/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/dist/assets/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/dist/assets/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/dist/assets/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/dist/assets/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/dist/assets/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/dist/assets/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/dist/assets/hooks/doctrine_trigger_map.json +236 -25
- package/dist/assets/hooks/doctrine_trigger_map.schema.json +46 -0
- package/dist/assets/hooks/install.sh +84 -0
- package/dist/assets/hooks/lib/action-ledger-core.mjs +269 -0
- package/dist/assets/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/dist/assets/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/dist/assets/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/dist/assets/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/dist/assets/hooks/lib/canonical-lenses.mjs +83 -6
- package/dist/assets/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/dist/assets/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/dist/assets/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/dist/assets/hooks/lib/domain-output-quality.mjs +132 -3
- package/dist/assets/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/dist/assets/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/dist/assets/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/assets/hooks/lib/first-class-coach.mjs +454 -19
- package/dist/assets/hooks/lib/gate-audit.mjs +12 -2
- package/dist/assets/hooks/lib/gate-loop-state.mjs +11 -2
- package/dist/assets/hooks/lib/goal-contract-quality.mjs +302 -0
- package/dist/assets/hooks/lib/hook-message-window.mjs +101 -9
- package/dist/assets/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/dist/assets/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/assets/hooks/lib/obligation-ledger.mjs +147 -0
- package/dist/assets/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/dist/assets/hooks/lib/owner-authorizations.mjs +269 -0
- package/dist/assets/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/dist/assets/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/dist/assets/hooks/lib/recovery-context.mjs +151 -0
- package/dist/assets/hooks/lib/recovery-template-loader.mjs +154 -0
- package/dist/assets/hooks/lib/self-doctrine-check.mjs +321 -0
- package/dist/assets/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/dist/assets/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/dist/assets/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/dist/assets/hooks/lib/surface-caught.mjs +94 -0
- package/dist/assets/hooks/recovery-templates/force-reauthor.md +67 -0
- package/dist/assets/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/dist/assets/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/dist/assets/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/dist/assets/hooks/test-tier-lens-labeling.mjs +14 -3
- package/dist/assets/opencode-plugins/harness-context/index.js +39 -6
- package/dist/assets/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
- package/dist/assets/opencode-plugins/harness-gate/index.js +36 -0
- package/dist/assets/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
- package/dist/assets/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
- package/dist/assets/opencode-plugins/harness-outcome/index.js +12 -0
- package/dist/assets/opencode-plugins/harness-stop/index.js +97 -2
- package/dist/assets/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
- package/dist/assets/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
- package/dist/assets/opencode-plugins/lib/coach.js +148 -0
- package/dist/runtime/coach-kernel.mjs +144 -7
- package/dist/runtime/codex-bridge.mjs +254 -8
- package/dist/runtime/discipline/doctrine_trigger_map.json +236 -25
- package/dist/runtime/discipline/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-chat/SKILL.md +84 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ops/SKILL.md +60 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
- package/dist/runtime/discipline/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
- package/dist/runtime/discipline/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/never-guess/SKILL.md +77 -0
- package/dist/runtime/discipline/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
- package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
- package/dist/runtime/discipline/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur/SKILL.md +506 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/tafakkur/SKILL.md +104 -0
- package/dist/runtime/doctrine_trigger_map.json +236 -25
- package/dist/runtime/embedded-public-key.mjs +27 -0
- package/dist/runtime/gated-ledger.mjs +41 -14
- package/dist/runtime/harness-daemon.mjs +85 -10
- package/dist/runtime/hive-wal-publisher.mjs +292 -0
- package/dist/runtime/hooks/README.md +58 -0
- package/dist/runtime/hooks/aria-agent-handoff.mjs +147 -2
- package/dist/runtime/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/dist/runtime/hooks/aria-architect-fallback.mjs +10 -2
- package/dist/runtime/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/dist/runtime/hooks/aria-first-class-coach.mjs +305 -10
- package/dist/runtime/hooks/aria-harness-via-sdk.mjs +93 -16
- package/dist/runtime/hooks/aria-import-resolution-gate.mjs +106 -20
- package/dist/runtime/hooks/aria-outcome-record.mjs +56 -20
- package/dist/runtime/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/dist/runtime/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/dist/runtime/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/dist/runtime/hooks/aria-pre-text-gate.mjs +11 -2
- package/dist/runtime/hooks/aria-pre-tool-gate.mjs +477 -81
- package/dist/runtime/hooks/aria-pre-tool-use.mjs +70 -6
- package/dist/runtime/hooks/aria-preprompt-consult.mjs +23 -4
- package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/dist/runtime/hooks/aria-stop-gate.mjs +585 -76
- package/dist/runtime/hooks/aria-trigger-autolearn.mjs +17 -3
- package/dist/runtime/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/dist/runtime/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/dist/runtime/hooks/canonical-settings-block.json +172 -0
- package/dist/runtime/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/dist/runtime/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/dist/runtime/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/dist/runtime/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/dist/runtime/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/dist/runtime/hooks/codex-native/aria-stop.mjs +691 -0
- package/dist/runtime/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/dist/runtime/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/dist/runtime/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/dist/runtime/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/dist/runtime/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/dist/runtime/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/dist/runtime/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/dist/runtime/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/dist/runtime/hooks/doctrine_trigger_map.json +236 -25
- package/dist/runtime/hooks/doctrine_trigger_map.schema.json +46 -0
- package/dist/runtime/hooks/install.sh +84 -0
- package/dist/runtime/hooks/lib/action-ledger-core.mjs +269 -0
- package/dist/runtime/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/dist/runtime/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/dist/runtime/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/dist/runtime/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/dist/runtime/hooks/lib/canonical-lenses.mjs +83 -6
- package/dist/runtime/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/dist/runtime/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/dist/runtime/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/dist/runtime/hooks/lib/domain-output-quality.mjs +132 -3
- package/dist/runtime/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/dist/runtime/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/dist/runtime/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/runtime/hooks/lib/first-class-coach.mjs +454 -19
- package/dist/runtime/hooks/lib/gate-audit.mjs +12 -2
- package/dist/runtime/hooks/lib/gate-loop-state.mjs +11 -2
- package/dist/runtime/hooks/lib/goal-contract-quality.mjs +302 -0
- package/dist/runtime/hooks/lib/hook-message-window.mjs +101 -9
- package/dist/runtime/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/dist/runtime/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/runtime/hooks/lib/obligation-ledger.mjs +147 -0
- package/dist/runtime/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/dist/runtime/hooks/lib/owner-authorizations.mjs +269 -0
- package/dist/runtime/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/dist/runtime/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/dist/runtime/hooks/lib/recovery-context.mjs +151 -0
- package/dist/runtime/hooks/lib/recovery-template-loader.mjs +154 -0
- package/dist/runtime/hooks/lib/self-doctrine-check.mjs +321 -0
- package/dist/runtime/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/dist/runtime/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/dist/runtime/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/dist/runtime/hooks/lib/surface-caught.mjs +94 -0
- package/dist/runtime/hooks/recovery-templates/force-reauthor.md +67 -0
- package/dist/runtime/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/dist/runtime/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/dist/runtime/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/dist/runtime/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/dist/runtime/hooks/test-tier-lens-labeling.mjs +14 -3
- package/dist/runtime/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/runtime/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/runtime/local-phase.mjs +10 -5
- package/dist/runtime/manifest.json +8 -8
- package/dist/runtime/packet-verifier.mjs +166 -0
- package/dist/runtime/provider-proxy.mjs +13 -0
- package/dist/runtime/quality-enforcer.mjs +40 -23
- package/dist/runtime/runtime-rails/registry.mjs +252 -0
- package/dist/runtime/sdk/BUNDLED.json +2 -2
- package/dist/runtime/sdk/index.d.ts +119 -4
- package/dist/runtime/sdk/index.js +138 -12
- package/dist/runtime/sdk/index.js.map +1 -1
- package/dist/runtime/service.mjs +8036 -764
- package/dist/runtime/sub-agent-enforcer.mjs +201 -0
- package/dist/runtime/task-project-ledger.mjs +5 -1
- package/dist/sdk/BUNDLED.json +2 -2
- package/dist/sdk/index.d.ts +119 -4
- package/dist/sdk/index.js +138 -12
- package/dist/sdk/index.js.map +1 -1
- package/hooks/README.md +58 -0
- package/hooks/aria-agent-handoff.mjs +147 -2
- package/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/hooks/aria-architect-fallback.mjs +10 -2
- package/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/hooks/aria-first-class-coach.mjs +305 -10
- package/hooks/aria-harness-via-sdk.mjs +93 -16
- package/hooks/aria-import-resolution-gate.mjs +106 -20
- package/hooks/aria-outcome-record.mjs +56 -20
- package/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/hooks/aria-pre-text-gate.mjs +11 -2
- package/hooks/aria-pre-tool-gate.mjs +477 -81
- package/hooks/aria-pre-tool-use.mjs +70 -6
- package/hooks/aria-preprompt-consult.mjs +23 -4
- package/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/hooks/aria-stop-gate.mjs +585 -76
- package/hooks/aria-trigger-autolearn.mjs +17 -3
- package/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/hooks/canonical-settings-block.json +172 -0
- package/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/hooks/codex-native/aria-stop.mjs +691 -0
- package/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/hooks/doctrine_trigger_map.json +236 -25
- package/hooks/doctrine_trigger_map.schema.json +46 -0
- package/hooks/install.sh +84 -0
- package/hooks/lib/action-ledger-core.mjs +269 -0
- package/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/hooks/lib/canonical-lenses.mjs +83 -6
- package/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/hooks/lib/domain-output-quality.mjs +132 -3
- package/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/hooks/lib/first-class-coach.mjs +454 -19
- package/hooks/lib/gate-audit.mjs +12 -2
- package/hooks/lib/gate-loop-state.mjs +11 -2
- package/hooks/lib/goal-contract-quality.mjs +302 -0
- package/hooks/lib/hook-message-window.mjs +101 -9
- package/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/hooks/lib/obligation-ledger.mjs +147 -0
- package/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/hooks/lib/owner-authorizations.mjs +269 -0
- package/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/hooks/lib/recovery-context.mjs +151 -0
- package/hooks/lib/recovery-template-loader.mjs +154 -0
- package/hooks/lib/self-doctrine-check.mjs +321 -0
- package/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/hooks/lib/surface-caught.mjs +94 -0
- package/hooks/recovery-templates/force-reauthor.md +67 -0
- package/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/hooks/test-tier-lens-labeling.mjs +14 -3
- package/opencode-plugins/harness-context/index.js +39 -6
- package/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
- package/opencode-plugins/harness-gate/index.js +36 -0
- package/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
- package/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
- package/opencode-plugins/harness-outcome/index.js +12 -0
- package/opencode-plugins/harness-stop/index.js +97 -2
- package/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
- package/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
- package/opencode-plugins/lib/coach.js +148 -0
- package/package.json +71 -5
- package/runtime-src/coach-kernel.mjs +144 -7
- package/runtime-src/codex-bridge.mjs +254 -8
- package/runtime-src/embedded-public-key.mjs +27 -0
- package/runtime-src/gated-ledger.mjs +41 -14
- package/runtime-src/harness-daemon.mjs +85 -10
- package/runtime-src/hive-wal-publisher.mjs +292 -0
- package/runtime-src/lib/evaluate-with-kernel.mjs +133 -0
- package/runtime-src/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/runtime-src/local-phase.mjs +10 -5
- package/runtime-src/packet-verifier.mjs +166 -0
- package/runtime-src/provider-proxy.mjs +13 -0
- package/runtime-src/quality-enforcer.mjs +40 -23
- package/runtime-src/runtime-rails/registry.mjs +252 -0
- package/runtime-src/service.mjs +8036 -764
- package/runtime-src/sub-agent-enforcer.mjs +201 -0
- package/scripts/aria-ledger-append.mjs +337 -0
- package/scripts/aria-task-cheap-worker-dispatch.mjs +234 -0
- package/scripts/audit-of-audit-prior-tasks.mjs +194 -0
- package/scripts/audit-of-audit-this-turn.mjs +116 -0
- package/scripts/bundle-sdk.mjs +31 -5
- package/scripts/check-cli-wrapper-provider-contract.mjs +160 -0
- package/scripts/check-client-compatibility.mjs +15 -5
- package/scripts/check-client-smoke.mjs +297 -0
- package/scripts/check-codex-orchestrator-adoption.mjs +150 -0
- package/scripts/check-glm-env-wired.mjs +131 -0
- package/scripts/check-hive-local-storage-contract.mjs +91 -0
- package/scripts/check-hook-mirror.mjs +150 -0
- package/scripts/check-install-sh-drift.mjs +152 -0
- package/scripts/check-kernel-sync.mjs +101 -0
- package/scripts/check-package-artifact.mjs +152 -0
- package/scripts/check-registry-mirror.mjs +71 -0
- package/scripts/drain-owner-airtable-sync-queue.mjs +287 -0
- package/scripts/export-owner-status-sheets.mjs +589 -0
- package/scripts/live-sidecar-receipt-canary.mjs +347 -0
- package/scripts/qiyas-tadabbur-model-matrix.mjs +970 -0
- package/scripts/quality-ab-live-provider.mjs +913 -0
- package/scripts/self-test-action-ledger-core.mjs +190 -0
- package/scripts/self-test-approval-receipt-binding.mjs +122 -0
- package/scripts/self-test-autofire-quality-output.mjs +110 -0
- package/scripts/self-test-claude-code-action-ledger.mjs +132 -0
- package/scripts/self-test-claude-code-mechanical-autofire-hive.mjs +138 -0
- package/scripts/self-test-claude-code-mechanical-autofire.mjs +234 -0
- package/scripts/self-test-codebase-awareness-atlas-delta.mjs +159 -0
- package/scripts/self-test-codebase-awareness-delta-ingest.mjs +179 -0
- package/scripts/self-test-codex-live-hook-parity.mjs +84 -0
- package/scripts/self-test-codex-native-action-ledger.mjs +167 -0
- package/scripts/self-test-codex-native-hook-json-contract.mjs +74 -0
- package/scripts/self-test-codex-orchestrator-continuity.mjs +113 -0
- package/scripts/self-test-codex-readable-recovery.mjs +94 -0
- package/scripts/self-test-codex-self-harness.mjs +538 -0
- package/scripts/self-test-compiled-workunit.mjs +214 -0
- package/scripts/self-test-continuation-output-smoke.mjs +101 -0
- package/scripts/self-test-cross-cli-fleet-ticker.mjs +85 -0
- package/scripts/self-test-cross-cli-hive-adoption.mjs +125 -0
- package/scripts/self-test-cross-cli-hive-learning.mjs +146 -0
- package/scripts/self-test-cross-phase-tool-failure.mjs +110 -0
- package/scripts/self-test-cross-surface-action-ledger.mjs +149 -0
- package/scripts/self-test-end-of-phase-qa-court.mjs +616 -0
- package/scripts/self-test-evaluate-with-kernel.mjs +111 -0
- package/scripts/self-test-first-class-output-delta-proof.mjs +307 -0
- package/scripts/self-test-goal-contract-output-qa.mjs +73 -0
- package/scripts/self-test-goal-contract.mjs +35 -0
- package/scripts/self-test-governed-adapters.mjs +105 -0
- package/scripts/self-test-governed-surface-runner.mjs +198 -0
- package/scripts/self-test-harness-gates.mjs +15 -12
- package/scripts/self-test-harness-ticker-sidecar.mjs +153 -0
- package/scripts/self-test-hive-org-kernel.mjs +233 -0
- package/scripts/self-test-hive-session-coordination.mjs +156 -0
- package/scripts/self-test-hive-wal-consumer.mjs +111 -0
- package/scripts/self-test-kernel-a3-a4-selection.mjs +179 -0
- package/scripts/self-test-ledger-append.mjs +175 -0
- package/scripts/self-test-live-codex-posttool-packet-smoke.mjs +111 -0
- package/scripts/self-test-live-codex-pretool-packet-smoke.mjs +101 -0
- package/scripts/self-test-live-codex-stop-qa-kernel-smoke.mjs +43 -0
- package/scripts/self-test-live-wrapper-substrate-inventory.mjs +149 -0
- package/scripts/self-test-local-main-sync-script.mjs +47 -0
- package/scripts/self-test-mechanical-autofire-resolver.mjs +296 -0
- package/scripts/self-test-no-consult-cognitive-skills-output.mjs +135 -0
- package/scripts/self-test-owner-airtable-sync-queue.mjs +196 -0
- package/scripts/self-test-owner-airtable-sync.mjs +181 -0
- package/scripts/self-test-owner-sheets-action-ledger.mjs +100 -0
- package/scripts/self-test-production-preflight.mjs +78 -0
- package/scripts/self-test-project-boundary-cognition.mjs +79 -0
- package/scripts/self-test-qa-exec-kernel.mjs +34 -0
- package/scripts/self-test-qa-recovery-learning-loop.mjs +113 -0
- package/scripts/self-test-qiyas-label-alignment.mjs +94 -0
- package/scripts/self-test-recovery-context.mjs +110 -0
- package/scripts/self-test-repo-guard.mjs +10 -0
- package/scripts/self-test-runtime-health-self-heal.mjs +161 -0
- package/scripts/self-test-runtime-postcondition.mjs +70 -0
- package/scripts/self-test-soul-precommit-hook.mjs +39 -0
- package/scripts/self-test-stop-gate-kernel-guards.mjs +185 -0
- package/scripts/self-test-stop-gate.mjs +128 -0
- package/scripts/self-test-substrate-kernel-execution-receipt.mjs +130 -0
- package/scripts/self-test-substrate-open-skill-floor.mjs +87 -0
- package/scripts/self-test-substrate-output-quality-eval.mjs +171 -0
- package/scripts/self-test-task-closeout-drift.mjs +97 -0
- package/scripts/self-test-task-project-ledger-readiness.mjs +43 -0
- package/scripts/self-test-task-runner-phase-consumer.mjs +134 -0
- package/scripts/self-test-task-worker-lane.mjs +256 -0
- package/scripts/self-test-turn-substrate-qa-kernel.mjs +188 -0
- package/scripts/self-test-universal-action-capture.mjs +153 -0
- package/scripts/self-test-universal-turn-packet-entrypoints.mjs +252 -0
- package/scripts/self-test-universal-turn-packet.mjs +320 -0
- package/scripts/session-quality-backfill.mjs +253 -0
- package/scripts/smoke-autofire-100-prompts.mjs +481 -0
- package/scripts/sync-local-main-on-task-complete.mjs +278 -0
- package/scripts/sync-owner-status-airtable.mjs +1158 -0
- package/scripts/validate-skill-prompts.mjs +12 -1
- package/scripts/verify-codex-native-mirror.mjs +262 -0
- package/skills/34-frameworks-unified/SKILL.md +42 -0
- package/skills/api-design/SKILL.md +123 -0
- package/skills/architecture-decision/SKILL.md +105 -0
- package/skills/aria-aristotle-cognitives/SKILL.md +128 -0
- package/skills/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/skills/aria-aristotle-post-phase/SKILL.md +116 -0
- package/skills/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/skills/aria-axioms-first-principles/SKILL.md +202 -0
- package/skills/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/skills/aria-axioms-first-principles/references/source-map.md +130 -0
- package/skills/aria-chat/SKILL.md +84 -0
- package/skills/aria-chat/scripts/aria-chat.sh +57 -0
- package/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
- package/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
- package/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
- package/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
- package/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
- package/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
- package/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
- package/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
- package/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
- package/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
- package/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
- package/skills/aria-cognition/aria-chat/SKILL.md +84 -0
- package/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
- package/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
- package/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
- package/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
- package/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
- package/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
- package/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
- package/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
- package/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
- package/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
- package/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
- package/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
- package/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
- package/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
- package/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
- package/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
- package/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
- package/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
- package/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
- package/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
- package/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
- package/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
- package/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
- package/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
- package/skills/aria-cognition/aria-ops/SKILL.md +60 -0
- package/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
- package/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
- package/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
- package/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
- package/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
- package/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
- package/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
- package/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
- package/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
- package/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
- package/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
- package/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
- package/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
- package/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
- package/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
- package/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
- package/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
- package/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
- package/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
- package/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
- package/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
- package/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
- package/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
- package/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
- package/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
- package/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
- package/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
- package/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
- package/skills/aria-cognition/never-guess/SKILL.md +77 -0
- package/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
- package/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
- package/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
- package/skills/aria-cognition/tadabbur/SKILL.md +506 -0
- package/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
- package/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
- package/skills/aria-cognition/tafakkur/SKILL.md +104 -0
- package/skills/aria-cognition-autofire/SKILL.md +109 -0
- package/skills/aria-cognition-batch/SKILL.md +264 -0
- package/skills/aria-conversational-doctrine-discipline/SKILL.md +125 -0
- package/skills/aria-essence/SKILL.md +81 -0
- package/skills/aria-essence/references/domain-matrix.md +80 -0
- package/skills/aria-essence/references/evolution-loop.md +30 -0
- package/skills/aria-essence/references/readable-cognition.md +27 -0
- package/skills/aria-first-class-operating-contract/SKILL.md +104 -0
- package/skills/aria-forge-guardrails/SKILL.md +53 -0
- package/skills/aria-forge-guardrails/references/checklist.md +31 -0
- package/skills/aria-harness-deploy/SKILL.md +145 -0
- package/skills/aria-harness-no-stripping/SKILL.md +135 -0
- package/skills/aria-harness-onboarding/SKILL.md +130 -0
- package/skills/aria-harness-output-discipline/SKILL.md +120 -0
- package/skills/aria-harness-substrate-binding/SKILL.md +139 -0
- package/skills/aria-http-harness-client/SKILL.md +85 -0
- package/skills/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/skills/aria-k8s-deploy/SKILL.md +174 -0
- package/skills/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/skills/aria-ladduniframe/SKILL.md +60 -0
- package/skills/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/skills/aria-live-ops/SKILL.md +54 -0
- package/skills/aria-mac-ssh-ops/SKILL.md +100 -0
- package/skills/aria-memory-index/SKILL.md +42 -0
- package/skills/aria-noor-cognitives/SKILL.md +120 -0
- package/skills/aria-ops/SKILL.md +60 -0
- package/skills/aria-ops/references/live-endpoints.md +59 -0
- package/skills/aria-quality-audit/SKILL.md +133 -0
- package/skills/aria-reasoning/SKILL.md +67 -0
- package/skills/aria-reasoning/references/core-principles.md +42 -0
- package/skills/aria-repo-doctrine/SKILL.md +57 -0
- package/skills/aria-soul-principles/SKILL.md +42 -0
- package/skills/aria-task-codex-executor/SKILL.md +86 -0
- package/skills/aristotle-engine/SKILL.md +42 -0
- package/skills/ci-cd-pipeline/SKILL.md +116 -0
- package/skills/code-review/SKILL.md +131 -0
- package/skills/cross-domain-24/SKILL.md +42 -0
- package/skills/database-design/SKILL.md +124 -0
- package/skills/deepsoul-emotional/SKILL.md +42 -0
- package/skills/deno-kv-raft-pubsub/SKILL.md +561 -0
- package/skills/deno-kv-raft-pubsub/reference/maelstrom-integration.md +393 -0
- package/skills/deno-kv-raft-pubsub/reference/pubsub-api.md +376 -0
- package/skills/deno-kv-raft-pubsub/reference/raft-spec.md +402 -0
- package/skills/deno-kv-raft-pubsub/reference/state-machine.md +182 -0
- package/skills/error-handling/SKILL.md +159 -0
- package/skills/firecrawl/SKILL.md +165 -0
- package/skills/firecrawl/rules/install.md +82 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/firecrawl-agent/SKILL.md +86 -0
- package/skills/firecrawl-build-interact/SKILL.md +96 -0
- package/skills/firecrawl-build-onboarding/SKILL.md +131 -0
- package/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
- package/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
- package/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
- package/skills/firecrawl-build-scrape/SKILL.md +97 -0
- package/skills/firecrawl-build-search/SKILL.md +97 -0
- package/skills/firecrawl-clone/SKILL.md +419 -0
- package/skills/firecrawl-crawl/SKILL.md +87 -0
- package/skills/firecrawl-download/SKILL.md +98 -0
- package/skills/firecrawl-interact/SKILL.md +112 -0
- package/skills/firecrawl-map/SKILL.md +79 -0
- package/skills/firecrawl-scrape/SKILL.md +97 -0
- package/skills/firecrawl-search/SKILL.md +88 -0
- package/skills/fitrah-guard/SKILL.md +78 -0
- package/skills/forge-quality-rules/SKILL.md +61 -0
- package/skills/ghazali-8lens/SKILL.md +56 -0
- package/skills/ijtihad-novel/SKILL.md +42 -0
- package/skills/ilham-intuition/SKILL.md +42 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +374 -0
- package/skills/imagegen/agents/openai.yaml +6 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +242 -0
- package/skills/imagegen/references/codex-network.md +33 -0
- package/skills/imagegen/references/image-api.md +90 -0
- package/skills/imagegen/references/prompting.md +118 -0
- package/skills/imagegen/references/sample-prompts.md +433 -0
- package/skills/imagegen/scripts/image_gen.py +995 -0
- package/skills/imagegen/scripts/remove_chroma_key.py +440 -0
- package/skills/istiqra-induction/SKILL.md +44 -0
- package/skills/ladunni-22/SKILL.md +53 -0
- package/skills/mizan/SKILL.md +90 -0
- package/skills/nadia/SKILL.md +56 -0
- package/skills/nadia-psi/SKILL.md +56 -0
- package/skills/never-guess/SKILL.md +75 -0
- package/skills/noor-recognition/SKILL.md +45 -0
- package/skills/observability/SKILL.md +133 -0
- package/skills/openai-docs/LICENSE.txt +201 -0
- package/skills/openai-docs/SKILL.md +100 -0
- package/skills/openai-docs/agents/openai.yaml +14 -0
- package/skills/openai-docs/assets/openai-small.svg +3 -0
- package/skills/openai-docs/assets/openai.png +0 -0
- package/skills/openai-docs/references/latest-model.md +37 -0
- package/skills/openai-docs/references/prompting-guide.md +244 -0
- package/skills/openai-docs/references/upgrade-guide.md +181 -0
- package/skills/openai-docs/scripts/resolve-latest-model-info.js +147 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +85 -0
- package/skills/pdf/agents/openai.yaml +5 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +165 -0
- package/skills/playwright/agents/openai.yaml +6 -0
- package/skills/playwright/assets/playwright-small.svg +3 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/plugin-creator/SKILL.md +178 -0
- package/skills/plugin-creator/agents/openai.yaml +6 -0
- package/skills/plugin-creator/assets/plugin-creator-small.svg +3 -0
- package/skills/plugin-creator/assets/plugin-creator.png +0 -0
- package/skills/plugin-creator/references/plugin-json-spec.md +170 -0
- package/skills/plugin-creator/scripts/create_basic_plugin.py +301 -0
- package/skills/predictor/SKILL.md +43 -0
- package/skills/qiyas-analogy/SKILL.md +204 -0
- package/skills/refactoring/SKILL.md +137 -0
- package/skills/ruh-basis/SKILL.md +42 -0
- package/skills/security-review/SKILL.md +129 -0
- package/skills/skill-creator/SKILL.md +434 -0
- package/skills/skill-creator/agents/openai.yaml +5 -0
- package/skills/skill-creator/assets/skill-creator-small.svg +3 -0
- package/skills/skill-creator/assets/skill-creator.png +0 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/references/openai_yaml.md +49 -0
- package/skills/skill-creator/scripts/generate_openai_yaml.py +226 -0
- package/skills/skill-creator/scripts/init_skill.py +400 -0
- package/skills/skill-creator/scripts/quick_validate.py +101 -0
- package/skills/skill-installer/LICENSE.txt +202 -0
- package/skills/skill-installer/SKILL.md +76 -0
- package/skills/skill-installer/agents/openai.yaml +5 -0
- package/skills/skill-installer/assets/skill-installer-small.svg +3 -0
- package/skills/skill-installer/assets/skill-installer.png +0 -0
- package/skills/skill-installer/scripts/github_utils.py +21 -0
- package/skills/skill-installer/scripts/install-skill-from-github.py +308 -0
- package/skills/skill-installer/scripts/list-skills.py +107 -0
- package/skills/skills-and-hooks-reference/SKILL.md +196 -0
- package/skills/soul-domains/SKILL.md +43 -0
- package/skills/tadabbur/SKILL.md +232 -0
- package/skills/tadabbur-ops/SKILL.md +42 -0
- package/skills/tafakkur/SKILL.md +104 -0
- package/skills/testing-strategy/SKILL.md +122 -0
- package/src/action-ledger-core.ts +1054 -0
- package/src/chat.ts +5 -6
- package/src/codebase-scanner.ts +2 -0
- package/src/connectors/claude-code.ts +149 -12
- package/src/connectors/codebase-awareness.ts +325 -25
- package/src/connectors/codex.ts +1225 -41
- package/src/connectors/cursor.ts +8 -0
- package/src/connectors/governed-adapter.ts +174 -0
- package/src/connectors/opencode.ts +18 -2
- package/src/connectors/repo-guard.ts +24 -12
- package/src/connectors/runtime.ts +99 -2
- package/src/connectors/shell.ts +125 -7
- package/src/cross-cli-hive-binding.ts +290 -0
- package/src/garden-control-plane.ts +24 -1
- package/src/governed-surface-runner.ts +1227 -0
- package/src/index.ts +104 -1
- package/src/task-runner.ts +3794 -0
- package/dist/aria-connector/src/install-hooks.d.ts +0 -18
- package/dist/aria-connector/src/install-hooks.d.ts.map +0 -1
- package/dist/aria-connector/src/install-hooks.js +0 -224
- package/dist/aria-connector/src/install-hooks.js.map +0 -1
- package/dist/aria-connector/src/onboarding-wizard.d.ts +0 -5
- package/dist/aria-connector/src/onboarding-wizard.d.ts.map +0 -1
- package/dist/aria-connector/src/onboarding-wizard.js +0 -188
- package/dist/aria-connector/src/onboarding-wizard.js.map +0 -1
- package/dist/cli-0.2.38.tgz +0 -0
- package/dist/install.sh +0 -13
- package/src/__tests__/anthropic-oauth.test.ts +0 -186
- package/src/__tests__/auth-commands.test.ts +0 -132
- package/src/__tests__/owner-login.test.ts +0 -311
|
@@ -15,6 +15,13 @@ import {
|
|
|
15
15
|
runtimeCoachBlocksLocalPhase,
|
|
16
16
|
updateTaskProjectLedger,
|
|
17
17
|
} from './lib/first-class-coach.mjs';
|
|
18
|
+
import { classifyIntentDeterministic } from './lib/coach-intent-classifier.mjs';
|
|
19
|
+
import {
|
|
20
|
+
extractManifest,
|
|
21
|
+
manifestHash,
|
|
22
|
+
manifestMode,
|
|
23
|
+
manifestVerificationRequired,
|
|
24
|
+
} from './lib/orchestration-manifest-extract.mjs';
|
|
18
25
|
|
|
19
26
|
function readInput() {
|
|
20
27
|
try {
|
|
@@ -30,6 +37,235 @@ function emitRuntimeCoachBlock(result) {
|
|
|
30
37
|
process.exit(2);
|
|
31
38
|
}
|
|
32
39
|
|
|
40
|
+
// AI-11803-LOOP-HOTFIX 2026-05-12 — local-ledger-supersedes-remote-runtime-coach
|
|
41
|
+
// pattern, generalized. The remote runtime coach raises form-pattern reasons
|
|
42
|
+
// (missing_readable_cognition_before_release, missing_applied_cognition_before_release,
|
|
43
|
+
// verification_trace_pending, intent_boundary_pending) when its text-pattern
|
|
44
|
+
// parser doesn't match the emitted XML cognition/applied_cognition blocks.
|
|
45
|
+
// The local task/project ledger evaluates the same emission against
|
|
46
|
+
// structure-anchored evidence (qualityGates with evidence anchors) and reports
|
|
47
|
+
// readinessClaimAllowed=true. When local says safe AND every remote reason is
|
|
48
|
+
// in this known-false-positive set, downgrade the repair_once block to a
|
|
49
|
+
// non-blocking advisory: write LOUD telemetry, do NOT exit 2, let the turn
|
|
50
|
+
// release. Hard_block decisions (real risk signals) pass through untouched.
|
|
51
|
+
//
|
|
52
|
+
// Kill switch: ARIA_COACH_SUPERSEDES_OFF=1 disables the downgrade entirely.
|
|
53
|
+
// Per-reason re-enable: not needed yet — the SUPERSEDABLE set is narrow and
|
|
54
|
+
// only applies to repair_once decisions.
|
|
55
|
+
// AI-11803-SUPERSEDES-COMPLETION-CLAIM (2026-05-12) — added
|
|
56
|
+
// `unsupported_completion_or_verification_claim` to the supersedes set.
|
|
57
|
+
// The remote coach fires this reason at OUTPUT_PHASES when COMPLETION_CLAIM_RX
|
|
58
|
+
// matches and the remote's hasEvidence returns false. After the parity fix
|
|
59
|
+
// for hasEvidence (now reads tool_response.stdout), failed-detection cases
|
|
60
|
+
// should be rare — but legitimate "done" claims after a successful probe in
|
|
61
|
+
// a prior turn can still trigger the remote because the remote may not see
|
|
62
|
+
// the prior turn's tool_response. The local ledger DOES persist verification
|
|
63
|
+
// state across turns, so when readinessClaimAllowed=true, the local has
|
|
64
|
+
// real proof and the remote's "unsupported" reason is a parser miss.
|
|
65
|
+
// Gate-condition (readinessClaimAllowed=true + no open blockers) is enforced
|
|
66
|
+
// by applyLocalLedgerSupersedes — this set membership is necessary but not
|
|
67
|
+
// sufficient on its own.
|
|
68
|
+
const SUPERSEDABLE_RUNTIME_REASONS = new Set([
|
|
69
|
+
'missing_readable_cognition_before_release',
|
|
70
|
+
'missing_applied_cognition_before_release',
|
|
71
|
+
'verification_trace_pending',
|
|
72
|
+
'intent_boundary_pending',
|
|
73
|
+
'cognition_presence',
|
|
74
|
+
'missing_readable_cognition',
|
|
75
|
+
'missing_applied_cognition',
|
|
76
|
+
'unsupported_completion_or_verification_claim',
|
|
77
|
+
]);
|
|
78
|
+
|
|
79
|
+
function extractRuntimeReasons(block) {
|
|
80
|
+
if (!block || typeof block !== 'object') return [];
|
|
81
|
+
if (Array.isArray(block.reasons)) return block.reasons.filter((r) => typeof r === 'string');
|
|
82
|
+
const record = block.record;
|
|
83
|
+
if (record && Array.isArray(record.reasons)) return record.reasons.filter((r) => typeof r === 'string');
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// AI-11803-LOOP3 2026-05-12 — posture-based downgrade for the deploy-class
|
|
88
|
+
// runtime-coach false-positive. The runtime coach's vocabulary classifier
|
|
89
|
+
// raises `unverified_deploy_or_infra_mutation` on prose that MENTIONS
|
|
90
|
+
// deploy/rollout/push/etc. as topics, even when intent is PROPOSE / REPORT /
|
|
91
|
+
// DESCRIBE (audit prose, recommendations, meta-discussion). The local
|
|
92
|
+
// classifyIntentDeterministic from lib/coach-intent-classifier.mjs already
|
|
93
|
+
// implements the structural intent taxonomy. This downgrade consults it and
|
|
94
|
+
// overrides hard_block when intent decision is OVERRIDE (PROPOSE / REPORT /
|
|
95
|
+
// DESCRIBE without first-person past-tense claim). CLAIM intent without
|
|
96
|
+
// evidence-anchor still hard_blocks — real risk signals are preserved.
|
|
97
|
+
//
|
|
98
|
+
// Kill switch: ARIA_COACH_POSTURE_OFF=1 disables the posture downgrade.
|
|
99
|
+
const POSTURE_DOWNGRADE_REASONS = new Set([
|
|
100
|
+
'unverified_deploy_or_infra_mutation',
|
|
101
|
+
]);
|
|
102
|
+
|
|
103
|
+
function applyPostureDowngradeForDeployClass(runtimeBlock, event) {
|
|
104
|
+
if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_POSTURE_OFF || ''))) return runtimeBlock;
|
|
105
|
+
if (!runtimeBlock) return null;
|
|
106
|
+
const reasons = extractRuntimeReasons(runtimeBlock);
|
|
107
|
+
if (reasons.length === 0) return runtimeBlock;
|
|
108
|
+
// Only act when EVERY reason on the block is in the deploy-class set; if a
|
|
109
|
+
// real risk signal is co-raised alongside the deploy-class, keep hard_block.
|
|
110
|
+
const allPostureClass = reasons.every((r) => POSTURE_DOWNGRADE_REASONS.has(r));
|
|
111
|
+
if (!allPostureClass) return runtimeBlock;
|
|
112
|
+
const text = extractAssistantText(event);
|
|
113
|
+
if (!text || typeof text !== 'string') return runtimeBlock;
|
|
114
|
+
let classification;
|
|
115
|
+
try {
|
|
116
|
+
classification = classifyIntentDeterministic(text);
|
|
117
|
+
} catch (err) {
|
|
118
|
+
process.stderr.write(`[aria-first-class-coach:posture-classifier-error] ${err instanceof Error ? err.message : String(err)} — passing block through unchanged\n`);
|
|
119
|
+
return runtimeBlock;
|
|
120
|
+
}
|
|
121
|
+
// OVERRIDE = PROPOSE / REPORT / DESCRIBE — false-positive of the vocabulary
|
|
122
|
+
// pattern; the runtime coach's matcher fired on topic words, not on a CLAIM.
|
|
123
|
+
if (classification && classification.intent !== 'CLAIM' && classification.intent !== 'AMBIGUOUS') {
|
|
124
|
+
process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=${classification.intent} confidence=${classification.confidence} features=${(classification.features || []).join(',')} — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
// CLAIM with evidence-anchor: downgrade to advisory (real claim but
|
|
128
|
+
// verification anchor present in prose; runtime coach lacks visibility).
|
|
129
|
+
if (classification && classification.intent === 'CLAIM' && classification.evidenceAnchored === true) {
|
|
130
|
+
process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=CLAIM evidence_anchored=true — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
// AI-11803-DEPLOY-MENU-FALLBACK (2026-05-12) — AMBIGUOUS with proposal-menu
|
|
134
|
+
// shape: agent is surfacing concrete deploy commands as options for the
|
|
135
|
+
// operator to authorize (numbered list, "Options:", "want me to", "awaiting")
|
|
136
|
+
// — not claiming them. Symmetric to destructive-class menu-shape fallback.
|
|
137
|
+
// Without this, audit findings prose listing kubectl/docker examples gets
|
|
138
|
+
// hard_blocked even though the prose is meta-discussion.
|
|
139
|
+
if (classification && classification.intent === 'AMBIGUOUS' && PROPOSAL_MENU_RX.test(text)) {
|
|
140
|
+
process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=AMBIGUOUS menu_shape=true — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
// CLAIM without evidence OR AMBIGUOUS without menu shape: keep the
|
|
144
|
+
// hard_block — real risk signal.
|
|
145
|
+
return runtimeBlock;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// AI-11803-F4-COACH-FIX (2026-05-12) — local downgrade for the
|
|
149
|
+
// destructive-action class false-positive. The runtime coach's pattern
|
|
150
|
+
// classifier matches a curated token list against ANY text in the event
|
|
151
|
+
// payload — including code-edit content (where the token appears in a
|
|
152
|
+
// string literal or regex source), prose-discussion context, and
|
|
153
|
+
// proposal-menu prose at Stop/output phase. All three are false positives:
|
|
154
|
+
// the action shape is not a shell execution.
|
|
155
|
+
//
|
|
156
|
+
// Downgrade fires when:
|
|
157
|
+
// - tool_name is Edit / Write / NotebookEdit → the matched token is in
|
|
158
|
+
// a string literal or comment, not an executed command. Real mutations
|
|
159
|
+
// happen via Bash, not Edit/Write of source files.
|
|
160
|
+
// - tool_name is Bash AND command prefix is a known read-only probe
|
|
161
|
+
// pattern (ls/cat/grep/find/echo/wc/stat/which/pwd/date/file/du/df/
|
|
162
|
+
// ss/ps/md5sum/node/python/git status/git log/git diff/git show).
|
|
163
|
+
// The local pre-tool-gate's destructive-pattern scanner already
|
|
164
|
+
// handles real mutations at correct shell-position discipline.
|
|
165
|
+
// - tool_name is EMPTY (Stop/output phase, no tool firing) AND the
|
|
166
|
+
// assistant text classifies as PROPOSE / REPORT / DESCRIBE / CLAIM
|
|
167
|
+
// with evidence-anchor / AMBIGUOUS with proposal-menu shape. This is
|
|
168
|
+
// the case where the operator listed kubectl/delete/wipe commands as
|
|
169
|
+
// options awaiting authorization — not executions. Symmetric to the
|
|
170
|
+
// deploy-class downgrade.
|
|
171
|
+
//
|
|
172
|
+
// Real mutations from Bash (non-probe prefix) still pass through to
|
|
173
|
+
// hard_block — the runtime coach's signal is preserved when the action
|
|
174
|
+
// shape is genuinely mutation. CLAIM at Stop without evidence anchor still
|
|
175
|
+
// hard_blocks too.
|
|
176
|
+
//
|
|
177
|
+
// Kill switch: ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1
|
|
178
|
+
const POSTURE_DOWNGRADE_DESTRUCTIVE_REASONS = new Set([
|
|
179
|
+
'unapproved_destructive_action',
|
|
180
|
+
]);
|
|
181
|
+
|
|
182
|
+
// AI-11803-PROBE-PREFIX-EXTEND (2026-05-12) — extended the probe set to
|
|
183
|
+
// include message-carrying git commands (commit, tag, stash, notes). These
|
|
184
|
+
// commands ACCEPT user-supplied text in -m/--message/-F arguments and that
|
|
185
|
+
// text appears in tool_input.command. The runtime coach scans the full
|
|
186
|
+
// command string and matches destructive vocab inside the message body even
|
|
187
|
+
// though that body is literal text, not executed shell. Symmetric to the
|
|
188
|
+
// Edit/Write/NotebookEdit case where matched vocab is in a string literal.
|
|
189
|
+
// Real destructive shapes (e.g., `git commit -m "$(rm -rf /)"`) are still
|
|
190
|
+
// caught by the local pre-tool-gate's destructive-pattern scanner via
|
|
191
|
+
// shell-substitution detection — those don't reach this Bash branch.
|
|
192
|
+
const PROBE_PREFIX_RX = /^(?:ls|cat|head|tail|grep|find|echo|wc|stat|which|pwd|date|file|du|df|ss|ps|md5sum|node|python3?|git\s+(?:status|log|diff|show|branch|rev-list|rev-parse|fetch|commit|tag|stash|notes|add|restore|switch|config\s+--get))\b/;
|
|
193
|
+
|
|
194
|
+
// Proposal-menu shape detection — a numbered/bulleted list of options OR
|
|
195
|
+
// "options:" / "choices:" / "alternatives:" framing. Used to recognize the
|
|
196
|
+
// Stop-phase pattern where the assistant surfaces concrete commands as
|
|
197
|
+
// options for the operator to authorize, which the upstream destructive
|
|
198
|
+
// classifier reads as action intent.
|
|
199
|
+
const PROPOSAL_MENU_RX = /(?:^|\n)\s*(?:\d+[\.\)]\s+|[•*\-]\s+|option[s]?\s*:|choice[s]?\s*:|alternatives?\s*:|path[s]?\s+(?:forward|to)\s*:|recommend(?:ation|ed)?\s+(?:option|path|choice|next)s?\s*:|want\s+me\s+to|need\s+your\s+(?:nod|direction|word|authorization|authorisation|approval)|awaiting\s+(?:your|owner))/im;
|
|
200
|
+
|
|
201
|
+
function applyPostureDowngradeForDestructiveClass(runtimeBlock, event) {
|
|
202
|
+
if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF || ''))) return runtimeBlock;
|
|
203
|
+
if (!runtimeBlock) return null;
|
|
204
|
+
const reasons = extractRuntimeReasons(runtimeBlock);
|
|
205
|
+
if (reasons.length === 0) return runtimeBlock;
|
|
206
|
+
const allDestructiveClass = reasons.every((r) => POSTURE_DOWNGRADE_DESTRUCTIVE_REASONS.has(r));
|
|
207
|
+
if (!allDestructiveClass) return runtimeBlock;
|
|
208
|
+
const toolName = String(event?.tool_name || event?.toolName || '');
|
|
209
|
+
if (toolName === 'Edit' || toolName === 'Write' || toolName === 'NotebookEdit') {
|
|
210
|
+
process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] tool=${toolName} reasons=${reasons.join(',')} — code-edit shape, matched token is in a string-literal/regex-source not an executed command; downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
if (toolName === 'Bash') {
|
|
214
|
+
const cmd = String(event?.tool_input?.command || event?.toolInput?.command || '').trim();
|
|
215
|
+
if (PROBE_PREFIX_RX.test(cmd)) {
|
|
216
|
+
process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] tool=Bash shape=probe cmd_prefix=${cmd.slice(0, 40).replace(/\s+/g, ' ')} — read-only probe; downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
// Real mutation shape (Bash with non-probe prefix) — preserve hard_block.
|
|
220
|
+
return runtimeBlock;
|
|
221
|
+
}
|
|
222
|
+
// Stop / output phase: no tool firing. Apply intent-classifier discrimination
|
|
223
|
+
// symmetric to applyPostureDowngradeForDeployClass.
|
|
224
|
+
if (!toolName) {
|
|
225
|
+
const text = extractAssistantText(event);
|
|
226
|
+
if (!text || typeof text !== 'string') return runtimeBlock;
|
|
227
|
+
let classification;
|
|
228
|
+
try {
|
|
229
|
+
classification = classifyIntentDeterministic(text);
|
|
230
|
+
} catch (err) {
|
|
231
|
+
process.stderr.write(`[aria-first-class-coach:destructive-classifier-error] ${err instanceof Error ? err.message : String(err)} — passing block through unchanged\n`);
|
|
232
|
+
return runtimeBlock;
|
|
233
|
+
}
|
|
234
|
+
if (classification && classification.intent !== 'CLAIM' && classification.intent !== 'AMBIGUOUS') {
|
|
235
|
+
process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=${classification.intent} confidence=${classification.confidence} features=${(classification.features || []).join(',')} — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
if (classification && classification.intent === 'CLAIM' && classification.evidenceAnchored === true) {
|
|
239
|
+
process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=CLAIM evidence_anchored=true — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
if (classification && classification.intent === 'AMBIGUOUS' && PROPOSAL_MENU_RX.test(text)) {
|
|
243
|
+
process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=AMBIGUOUS menu_shape=true — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
return runtimeBlock;
|
|
247
|
+
}
|
|
248
|
+
return runtimeBlock;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
function applyLocalLedgerSupersedes(runtimeBlock, ledger) {
|
|
252
|
+
if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_SUPERSEDES_OFF || ''))) return runtimeBlock;
|
|
253
|
+
if (!runtimeBlock) return null;
|
|
254
|
+
const decision = String(runtimeBlock.decision || runtimeBlock.record?.decision || '').toLowerCase();
|
|
255
|
+
// Only act on repair_once; hard_block + blocked must pass through untouched.
|
|
256
|
+
if (decision !== 'repair_once') return runtimeBlock;
|
|
257
|
+
const reasons = extractRuntimeReasons(runtimeBlock);
|
|
258
|
+
if (reasons.length === 0) return runtimeBlock;
|
|
259
|
+
const allSupersedable = reasons.every((r) => SUPERSEDABLE_RUNTIME_REASONS.has(r));
|
|
260
|
+
if (!allSupersedable) return runtimeBlock;
|
|
261
|
+
const readinessOk = ledger?.controls?.readinessClaimAllowed === true;
|
|
262
|
+
const openBlockers = Array.isArray(ledger?.openBlockers) ? ledger.openBlockers : [];
|
|
263
|
+
if (!readinessOk || openBlockers.length > 0) return runtimeBlock;
|
|
264
|
+
// LOUD telemetry — every downgrade is auditable.
|
|
265
|
+
process.stderr.write(`[aria-first-class-coach:supersedes-applied] decision=${decision} reasons=${reasons.join(',')} ledgerId=${ledger.ledgerId || 'unknown'} readinessClaimAllowed=true openBlockers=0 — downgraded to non-blocking advisory; kill switch ARIA_COACH_SUPERSEDES_OFF=1\n`);
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
|
|
33
269
|
async function main() {
|
|
34
270
|
const event = readInput();
|
|
35
271
|
const platform = inferCoachPlatform(event);
|
|
@@ -42,6 +278,42 @@ async function main() {
|
|
|
42
278
|
event,
|
|
43
279
|
evidence: hookEvidence,
|
|
44
280
|
});
|
|
281
|
+
const runtimeResult = await recordRuntimeCoachForLifecycle({
|
|
282
|
+
platform,
|
|
283
|
+
phase,
|
|
284
|
+
event,
|
|
285
|
+
ledgerResult,
|
|
286
|
+
evidence: hookEvidence,
|
|
287
|
+
});
|
|
288
|
+
const runtimeBlock = applyLocalLedgerSupersedes(
|
|
289
|
+
applyPostureDowngradeForDestructiveClass(
|
|
290
|
+
applyPostureDowngradeForDeployClass(
|
|
291
|
+
runtimeCoachBlocksLocalPhase(phase, runtimeResult),
|
|
292
|
+
event,
|
|
293
|
+
),
|
|
294
|
+
event,
|
|
295
|
+
),
|
|
296
|
+
ledgerResult.ledger,
|
|
297
|
+
);
|
|
298
|
+
// 2026-05-17 producer-enrichment for harness ticker
|
|
299
|
+
// (project_harness_ticker_counter_wiring_2026_05_17.md). The coach event
|
|
300
|
+
// row now carries the runtime decision + posture + forcedSkillLoad
|
|
301
|
+
// alongside the base telemetry so the ticker consumer can bump
|
|
302
|
+
// Repairs / Blocks / Skills fired (not just Gate checks). Moved after
|
|
303
|
+
// runtimeBlock computation so a single row per hook fire carries the
|
|
304
|
+
// full decision context — keeps gates count proportional to fires.
|
|
305
|
+
const decisionRaw = String(runtimeBlock?.decision || runtimeBlock?.record?.decision || '').toLowerCase();
|
|
306
|
+
const decision = decisionRaw || null;
|
|
307
|
+
const posture = decision === 'hard_block' || decision === 'blocked' ? 'hard_block'
|
|
308
|
+
: decision === 'repair_once' ? 'repair_once'
|
|
309
|
+
: null;
|
|
310
|
+
const forcedSkillLoad = runtimeBlock?.record?.forcedSkillLoad
|
|
311
|
+
|| runtimeBlock?.forcedSkillLoad
|
|
312
|
+
|| (Array.isArray(runtimeResult?.results)
|
|
313
|
+
? (runtimeResult.results.find((r) => r?.record?.forcedSkillLoad)?.record?.forcedSkillLoad
|
|
314
|
+
|| runtimeResult.results.find((r) => r?.forcedSkillLoad)?.forcedSkillLoad
|
|
315
|
+
|| null)
|
|
316
|
+
: null);
|
|
45
317
|
recordCoachEvent({
|
|
46
318
|
platform,
|
|
47
319
|
phase,
|
|
@@ -50,21 +322,35 @@ async function main() {
|
|
|
50
322
|
evidence: {
|
|
51
323
|
...hookEvidence,
|
|
52
324
|
task_project_ledger: ledgerResult.ledger.ledgerId,
|
|
325
|
+
...(decision ? { decision } : {}),
|
|
326
|
+
...(posture ? { posture } : {}),
|
|
53
327
|
},
|
|
328
|
+
metadata: forcedSkillLoad ? { forcedSkillLoad } : null,
|
|
54
329
|
});
|
|
55
|
-
|
|
56
|
-
const runtimeResult = await recordRuntimeCoachForLifecycle({
|
|
57
|
-
platform,
|
|
58
|
-
phase,
|
|
59
|
-
event,
|
|
60
|
-
ledgerResult,
|
|
61
|
-
evidence: hookEvidence,
|
|
62
|
-
});
|
|
63
|
-
const runtimeBlock = runtimeCoachBlocksLocalPhase(phase, runtimeResult);
|
|
64
330
|
if (runtimeBlock) emitRuntimeCoachBlock(runtimeBlock);
|
|
65
331
|
|
|
66
332
|
if (phase === 'stop' || phase === 'pre_emit' || phase === 'post_cognition') {
|
|
67
333
|
const text = extractAssistantText(event);
|
|
334
|
+
const manifestSlot = extractManifest(text);
|
|
335
|
+
if (manifestSlot) {
|
|
336
|
+
const hash = manifestHash(manifestSlot.manifest);
|
|
337
|
+
const mode = manifestMode(manifestSlot.manifest) || 'unknown';
|
|
338
|
+
const verificationRequired = manifestVerificationRequired(manifestSlot.manifest);
|
|
339
|
+
process.stderr.write(
|
|
340
|
+
`[aria-first-class-coach:manifest] hash=${hash} mode=${mode} verification_required=${verificationRequired}\n`,
|
|
341
|
+
);
|
|
342
|
+
recordCoachEvent({
|
|
343
|
+
platform,
|
|
344
|
+
phase,
|
|
345
|
+
source: 'aria-first-class-coach-hook:manifest-extracted',
|
|
346
|
+
event,
|
|
347
|
+
evidence: {
|
|
348
|
+
...hookEvidence,
|
|
349
|
+
task_project_ledger: ledgerResult.ledger.ledgerId,
|
|
350
|
+
verification: { manifest_hash: hash, mode, verification_required: verificationRequired },
|
|
351
|
+
},
|
|
352
|
+
});
|
|
353
|
+
}
|
|
68
354
|
const evaluation = evaluateTaskProjectClaim({ text, ledger: ledgerResult.ledger });
|
|
69
355
|
if (!evaluation.ok) {
|
|
70
356
|
recordBlockedTaskProjectClaim({
|
|
@@ -103,7 +389,16 @@ async function main() {
|
|
|
103
389
|
task_project_claim_ok: true,
|
|
104
390
|
},
|
|
105
391
|
});
|
|
106
|
-
const releaseBlock =
|
|
392
|
+
const releaseBlock = applyLocalLedgerSupersedes(
|
|
393
|
+
applyPostureDowngradeForDestructiveClass(
|
|
394
|
+
applyPostureDowngradeForDeployClass(
|
|
395
|
+
runtimeCoachBlocksLocalPhase(phase, releaseRuntimeResult),
|
|
396
|
+
event,
|
|
397
|
+
),
|
|
398
|
+
event,
|
|
399
|
+
),
|
|
400
|
+
ledgerResult.ledger,
|
|
401
|
+
);
|
|
107
402
|
if (releaseBlock) emitRuntimeCoachBlock(releaseBlock);
|
|
108
403
|
}
|
|
109
404
|
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// ── doctrine-self-check-file: M0.SELFREVIEW.1+2 (2026-05-06) ──
|
|
3
|
+
// Session added comments describing prior antipatterns being migrated.
|
|
4
|
+
// Each comment names a trigger pattern; file-level ack covers them all.
|
|
5
|
+
// doctrine-self-check-file: (?:non-blocking|warn(?:ing)? only|advisory|falls? through|fail open|soft fail|log(?:ged)? and continue|quality gate warning) session-added-comments-describing-prior-state-or-migration
|
|
6
|
+
// doctrine-self-check-file: \b(?:shadow|proxy|wrapper)\b session-added-comments-describing-prior-state-or-migration
|
|
7
|
+
// doctrine-self-check-file: best.?effort session-added-comments-describing-prior-state-or-migration
|
|
8
|
+
// doctrine-self-check-file: eventually|for now session-added-comments-describing-prior-state-or-migration
|
|
9
|
+
// doctrine-self-check-file: fall.?through session-added-comments-describing-prior-state-or-migration
|
|
10
|
+
|
|
2
11
|
// Aria harness fetch — via the canonical @aria_asi/harness-http-client SDK.
|
|
3
12
|
//
|
|
4
13
|
// Why this exists: doctrine says "use harness http client to be Aria's
|
|
@@ -20,6 +29,7 @@ import { spawnSync } from 'node:child_process';
|
|
|
20
29
|
import { appendFileSync, existsSync, readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
|
|
21
30
|
import { dirname } from 'node:path';
|
|
22
31
|
import { createConnection } from 'node:net';
|
|
32
|
+
import { readGovernanceRecoveryContext, archiveRecoveryAfterPickup } from './lib/recovery-context.mjs';
|
|
23
33
|
|
|
24
34
|
const HOME = process.env.HOME || '/tmp';
|
|
25
35
|
const LOG_FILE = `${HOME}/.claude/aria-harness-history.log`;
|
|
@@ -67,7 +77,10 @@ function emit(envelope) {
|
|
|
67
77
|
function emitFallback(reason, tried = []) {
|
|
68
78
|
try {
|
|
69
79
|
appendFileSync(LOG_FILE, `${new Date().toISOString()} offline mode=${MODE} reason="${reason.replace(/"/g, "'")}"\n`);
|
|
70
|
-
} catch {
|
|
80
|
+
} catch (err) {
|
|
81
|
+
// M0.H.X3: log-write failure now surfaces.
|
|
82
|
+
process.stderr.write(`[aria-harness-via-sdk:fallback-log-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
83
|
+
}
|
|
71
84
|
emit({
|
|
72
85
|
systemMessage: `${HEADER_PREFIX} ⚠ offline (${reason}) — fallback mode`,
|
|
73
86
|
suppressOutput: false,
|
|
@@ -90,7 +103,12 @@ function resolveApiKey() {
|
|
|
90
103
|
if (r.status === 0 && r.stdout) {
|
|
91
104
|
return Buffer.from(r.stdout.trim(), 'base64').toString('utf8');
|
|
92
105
|
}
|
|
93
|
-
} catch {
|
|
106
|
+
} catch (err) {
|
|
107
|
+
// M0.H.X3: kubectl-secret api-key-fetch failure now surfaces. Falls
|
|
108
|
+
// through to empty string (caller will emit offline-fallback) but
|
|
109
|
+
// operator sees if cluster RBAC / kubectl is broken.
|
|
110
|
+
process.stderr.write(`[aria-harness-via-sdk:apikey-kubectl-fetch] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
111
|
+
}
|
|
94
112
|
return '';
|
|
95
113
|
}
|
|
96
114
|
|
|
@@ -100,14 +118,18 @@ function loadCachedUrl() {
|
|
|
100
118
|
const v = readFileSync(LAST_URL_CACHE, 'utf8').trim();
|
|
101
119
|
if (v) return v;
|
|
102
120
|
}
|
|
103
|
-
} catch {
|
|
121
|
+
} catch (err) {
|
|
122
|
+
process.stderr.write(`[aria-harness-via-sdk:url-cache-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
123
|
+
}
|
|
104
124
|
return '';
|
|
105
125
|
}
|
|
106
126
|
function saveCachedUrl(url) {
|
|
107
127
|
try {
|
|
108
128
|
mkdirSync(dirname(LAST_URL_CACHE), { recursive: true });
|
|
109
129
|
writeFileSync(LAST_URL_CACHE, url + '\n');
|
|
110
|
-
} catch {
|
|
130
|
+
} catch (err) {
|
|
131
|
+
process.stderr.write(`[aria-harness-via-sdk:url-cache-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
132
|
+
}
|
|
111
133
|
}
|
|
112
134
|
|
|
113
135
|
function loadCachedPacket() {
|
|
@@ -120,7 +142,9 @@ function loadCachedPacket() {
|
|
|
120
142
|
return { data: JSON.parse(raw), ageSec };
|
|
121
143
|
}
|
|
122
144
|
}
|
|
123
|
-
} catch {
|
|
145
|
+
} catch (err) {
|
|
146
|
+
process.stderr.write(`[aria-harness-via-sdk:packet-cache-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
147
|
+
}
|
|
124
148
|
return null;
|
|
125
149
|
}
|
|
126
150
|
function saveCachedPacket(rawJson) {
|
|
@@ -128,7 +152,9 @@ function saveCachedPacket(rawJson) {
|
|
|
128
152
|
try {
|
|
129
153
|
mkdirSync(dirname(packetPath), { recursive: true });
|
|
130
154
|
writeFileSync(packetPath, rawJson);
|
|
131
|
-
} catch {
|
|
155
|
+
} catch (err) {
|
|
156
|
+
process.stderr.write(`[aria-harness-via-sdk:packet-cache-write@${packetPath}] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
157
|
+
}
|
|
132
158
|
}
|
|
133
159
|
}
|
|
134
160
|
|
|
@@ -153,7 +179,12 @@ function buildUrlList() {
|
|
|
153
179
|
if (r.status === 0 && r.stdout && r.stdout !== 'None') {
|
|
154
180
|
list.push(`http://${r.stdout.trim()}:8080`);
|
|
155
181
|
}
|
|
156
|
-
} catch {
|
|
182
|
+
} catch (err) {
|
|
183
|
+
// M0.H.X3: kubectl-svc clusterIP probe failure now surfaces. Falls
|
|
184
|
+
// through with empty list addition; operator sees if kubectl access
|
|
185
|
+
// is broken.
|
|
186
|
+
process.stderr.write(`[aria-harness-via-sdk:cluster-ip-probe] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
187
|
+
}
|
|
157
188
|
if (process.env.ARIA_PUBLIC_URL) list.push(process.env.ARIA_PUBLIC_URL.replace(/\/+$/, ''));
|
|
158
189
|
// Dedup preserving order
|
|
159
190
|
const seen = new Set();
|
|
@@ -283,7 +314,9 @@ function persistMizanReceipt(sessionId, payload) {
|
|
|
283
314
|
try {
|
|
284
315
|
mkdirSync(MIZAN_RECEIPT_DIR, { recursive: true });
|
|
285
316
|
writeFileSync(receiptPathForSession(sessionId), JSON.stringify(payload, null, 2) + '\n');
|
|
286
|
-
} catch {
|
|
317
|
+
} catch (err) {
|
|
318
|
+
process.stderr.write(`[aria-harness-via-sdk:mizan-receipt-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
319
|
+
}
|
|
287
320
|
}
|
|
288
321
|
|
|
289
322
|
async function runMizanPre(apiKey, packet, sourceLabel) {
|
|
@@ -335,9 +368,14 @@ async function tryRunMizanPre(apiKey, packet, sourceLabel) {
|
|
|
335
368
|
try {
|
|
336
369
|
return await runMizanPre(apiKey, packet, sourceLabel);
|
|
337
370
|
} catch (err) {
|
|
371
|
+
// Original mizan failure already captured in `err`. Log it best-effort.
|
|
338
372
|
try {
|
|
339
373
|
appendFileSync(LOG_FILE, `${new Date().toISOString()} mizan-pre-skip mode=${MODE} source=${sourceLabel} err="${String(err).replace(/"/g, "'").slice(0, 200)}"\n`);
|
|
340
|
-
} catch {
|
|
374
|
+
} catch (logErr) {
|
|
375
|
+
// M0.H.X3: log-write inside catch can also fail; surface to stderr
|
|
376
|
+
// so we don't lose both signals at once.
|
|
377
|
+
process.stderr.write(`[aria-harness-via-sdk:mizan-pre-skip-log] caught: ${logErr instanceof Error ? logErr.message : String(logErr)}\n`);
|
|
378
|
+
}
|
|
341
379
|
return null;
|
|
342
380
|
}
|
|
343
381
|
}
|
|
@@ -446,15 +484,37 @@ function renderPacket(json, source, ageNote = '') {
|
|
|
446
484
|
ctx += harness.slice(0, HARNESS_EXCERPT_CHARS);
|
|
447
485
|
}
|
|
448
486
|
|
|
487
|
+
// M1.2 fix: deliver pending governance recovery contract on the next turn.
|
|
488
|
+
// Per feedback_no_graceful_degradation.md, the recovery file written by
|
|
489
|
+
// stop-gate / cognition-substrate-binding MUST flow back to the model.
|
|
490
|
+
// The OpenCode plugin already had this; the Claude Code hook was missing it
|
|
491
|
+
// (audit ledger Layer 4 / Bug B). Archive on pickup so the same recovery
|
|
492
|
+
// doesn't re-fire forever.
|
|
493
|
+
let recoveryPickupId = null;
|
|
449
494
|
try {
|
|
450
|
-
|
|
451
|
-
|
|
495
|
+
const { block: recoveryBlock, pickupId } = readGovernanceRecoveryContext();
|
|
496
|
+
if (recoveryBlock) {
|
|
497
|
+
ctx += `\n\n${recoveryBlock}`;
|
|
498
|
+
recoveryPickupId = pickupId;
|
|
499
|
+
}
|
|
500
|
+
} catch (error) {
|
|
501
|
+
process.stderr.write(`[harness-via-sdk] recovery context read failed (${error.message})\n`);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
try {
|
|
505
|
+
appendFileSync(LOG_FILE, `${new Date().toISOString()} mode=${MODE} hash=${phash.slice(0, 24)} url=${source} pre_passed=${pre.passed} contract_passed=${con.passed} missing=${mc.join(',') || 'none'} sdk=harness-http-client recovery=${recoveryPickupId ? recoveryPickupId.slice(0, 12) : 'none'}\n`);
|
|
506
|
+
} catch (err) {
|
|
507
|
+
process.stderr.write(`[aria-harness-via-sdk:summary-log-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
508
|
+
}
|
|
452
509
|
|
|
453
510
|
emit({
|
|
454
|
-
systemMessage: `${HEADER_PREFIX} ${MODE} hash=${phash.slice(0, 16)} preState=${(pre.score || 0).toFixed(2)} contract=${(con.score || 0).toFixed(2)} sdk
|
|
511
|
+
systemMessage: `${HEADER_PREFIX} ${MODE} hash=${phash.slice(0, 16)} preState=${(pre.score || 0).toFixed(2)} contract=${(con.score || 0).toFixed(2)} sdk✓${recoveryPickupId ? ' recovery⟳' : ''}`,
|
|
455
512
|
suppressOutput: false,
|
|
456
513
|
hookSpecificOutput: { hookEventName: HOOK_EVENT_NAME, additionalContext: ctx },
|
|
457
514
|
});
|
|
515
|
+
|
|
516
|
+
// Archive AFTER emit so the contract was actually delivered before we move it.
|
|
517
|
+
if (recoveryPickupId) archiveRecoveryAfterPickup(recoveryPickupId);
|
|
458
518
|
}
|
|
459
519
|
|
|
460
520
|
function normalizeCachedPacketForRender(cached) {
|
|
@@ -479,7 +539,12 @@ function probeUrl(urlStr) {
|
|
|
479
539
|
const finish = (ok, err) => {
|
|
480
540
|
if (settled) return;
|
|
481
541
|
settled = true;
|
|
482
|
-
try { sock.destroy(); } catch {
|
|
542
|
+
try { sock.destroy(); } catch (_destroyErr) {
|
|
543
|
+
// M0.H.X3: documented silent-by-design — sock.destroy() can fail
|
|
544
|
+
// safely when the socket is already closed; the destroy is best-
|
|
545
|
+
// effort cleanup, not a control-flow signal.
|
|
546
|
+
void _destroyErr;
|
|
547
|
+
}
|
|
483
548
|
resolve({ url: urlStr, ok, err });
|
|
484
549
|
};
|
|
485
550
|
sock.once('connect', () => finish(true));
|
|
@@ -507,7 +572,12 @@ async function main() {
|
|
|
507
572
|
await tryRunMizanPre(apiKey, cached, '(cache)');
|
|
508
573
|
return renderPacket(cached, '(cache)', ` cached ${Math.round(ageSec)}s`);
|
|
509
574
|
}
|
|
510
|
-
} catch {
|
|
575
|
+
} catch (err) {
|
|
576
|
+
// M0.H.X3: cache-render path failure now surfaces. Fall-through to
|
|
577
|
+
// direct fetch is preserved; operator sees if cache normalization
|
|
578
|
+
// is consistently failing.
|
|
579
|
+
process.stderr.write(`[aria-harness-via-sdk:fresh-cache-render] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
580
|
+
}
|
|
511
581
|
}
|
|
512
582
|
|
|
513
583
|
const urls = buildUrlList();
|
|
@@ -557,11 +627,18 @@ async function main() {
|
|
|
557
627
|
await tryRunMizanPre(apiKey, cached, '(stale-cache)');
|
|
558
628
|
try {
|
|
559
629
|
appendFileSync(LOG_FILE, `${new Date().toISOString()} stale mode=${MODE} cache_age=${Math.round(ageSec)}s last_err="${lastErr.replace(/"/g, "'")}" sdk=harness-http-client\n`);
|
|
560
|
-
} catch {
|
|
630
|
+
} catch (logErr) {
|
|
631
|
+
process.stderr.write(`[aria-harness-via-sdk:stale-cache-log-write] caught: ${logErr instanceof Error ? logErr.message : String(logErr)}\n`);
|
|
632
|
+
}
|
|
561
633
|
return renderPacket(cached, `(stale ${Math.round(ageSec)}s — fresh fetch failed: ${lastErr.slice(0, 80)})`, ` stale ${Math.round(ageSec)}s`);
|
|
562
634
|
}
|
|
563
635
|
}
|
|
564
|
-
} catch {
|
|
636
|
+
} catch (err) {
|
|
637
|
+
// M0.H.X3: stale-cache render failure now surfaces. Falls through to
|
|
638
|
+
// emitFallback below; operator sees if BOTH fresh AND stale cache
|
|
639
|
+
// paths are failing.
|
|
640
|
+
process.stderr.write(`[aria-harness-via-sdk:stale-cache-render] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
641
|
+
}
|
|
565
642
|
|
|
566
643
|
emitFallback(`all endpoints unreachable; last=${lastErr}`, urls);
|
|
567
644
|
}
|