@aria_asi/cli 0.2.39 → 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 +1271 -40
- 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 +516 -92
- 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 +516 -92
- 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 +516 -92
- 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 +1273 -40
- 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
|
@@ -22,6 +22,8 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync, appendFileSync } fr
|
|
|
22
22
|
import { dirname, join } from 'node:path';
|
|
23
23
|
import { homedir } from 'node:os';
|
|
24
24
|
import { createRequire } from 'node:module';
|
|
25
|
+
import { extractManifest, manifestSkillsToInvoke } from './lib/orchestration-manifest-extract.mjs';
|
|
26
|
+
import { extractTextFromContent, normalizeContent, normalizeRole } from './lib/hook-message-window.mjs';
|
|
25
27
|
|
|
26
28
|
const HOME = homedir();
|
|
27
29
|
const LOG = `${HOME}/.claude/aria-pre-tool-gate.log`;
|
|
@@ -36,7 +38,9 @@ function audit(msg) {
|
|
|
36
38
|
try {
|
|
37
39
|
if (!existsSync(dirname(LOG))) mkdirSync(dirname(LOG), { recursive: true });
|
|
38
40
|
appendFileSync(LOG, `${new Date().toISOString()} [agent-handoff] ${msg}\n`);
|
|
39
|
-
} catch {
|
|
41
|
+
} catch (err) {
|
|
42
|
+
process.stderr.write(`[aria-agent-handoff:audit-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
43
|
+
}
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
let input = '';
|
|
@@ -56,6 +60,40 @@ const sessionId =
|
|
|
56
60
|
: null) ??
|
|
57
61
|
'unknown';
|
|
58
62
|
|
|
63
|
+
function collectAssistantTextForManifest() {
|
|
64
|
+
const texts = [];
|
|
65
|
+
const eventMessages = Array.isArray(event.messages) ? event.messages : [];
|
|
66
|
+
for (let i = eventMessages.length - 1; i >= 0 && texts.length < 8; i--) {
|
|
67
|
+
const message = eventMessages[i];
|
|
68
|
+
if (normalizeRole(message) !== 'assistant') continue;
|
|
69
|
+
const text = extractTextFromContent(normalizeContent(message));
|
|
70
|
+
if (text) texts.push(text);
|
|
71
|
+
}
|
|
72
|
+
const transcriptPath = event.transcript_path || event.transcriptPath || '';
|
|
73
|
+
if (texts.length === 0 && transcriptPath && existsSync(transcriptPath)) {
|
|
74
|
+
try {
|
|
75
|
+
const lines = readFileSync(transcriptPath, 'utf8').split('\n').filter(Boolean);
|
|
76
|
+
for (let i = lines.length - 1; i >= 0 && texts.length < 8; i--) {
|
|
77
|
+
const message = JSON.parse(lines[i]);
|
|
78
|
+
if (normalizeRole(message) !== 'assistant') continue;
|
|
79
|
+
const text = extractTextFromContent(normalizeContent(message));
|
|
80
|
+
if (text) texts.push(text);
|
|
81
|
+
}
|
|
82
|
+
} catch (err) {
|
|
83
|
+
audit(`manifest-source transcript read failed: ${(err?.message || err).toString().slice(0, 200)}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return texts.join('\n\n');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let handoffManifestWorkflowSkills = [];
|
|
90
|
+
try {
|
|
91
|
+
const manifestSlot = extractManifest(collectAssistantTextForManifest());
|
|
92
|
+
handoffManifestWorkflowSkills = manifestSlot ? manifestSkillsToInvoke(manifestSlot.manifest) : [];
|
|
93
|
+
} catch (err) {
|
|
94
|
+
audit(`manifest extraction failed: ${(err?.message || err).toString().slice(0, 200)}`);
|
|
95
|
+
}
|
|
96
|
+
|
|
59
97
|
// ── Tier detection ──────────────────────────────────────────────────────────
|
|
60
98
|
// Read license.json to detect client tier (has jti). If only owner-token
|
|
61
99
|
// exists → owner tier. No license/owner-token → treat as owner tier (dev).
|
|
@@ -87,7 +125,12 @@ if (isClientTier) {
|
|
|
87
125
|
process.env.ARIA_MASTER_TOKEN ||
|
|
88
126
|
'';
|
|
89
127
|
if (!harnessToken && existsSync(OWNER_TOKEN_PATH)) {
|
|
90
|
-
try { harnessToken = readFileSync(OWNER_TOKEN_PATH, 'utf8').trim(); }
|
|
128
|
+
try { harnessToken = readFileSync(OWNER_TOKEN_PATH, 'utf8').trim(); }
|
|
129
|
+
catch (err) {
|
|
130
|
+
// M0.H.X3: owner-token read failure now surfaces. Empty token
|
|
131
|
+
// proceeds; downstream call may 401 and surface differently.
|
|
132
|
+
process.stderr.write(`[aria-agent-handoff:owner-token-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
133
|
+
}
|
|
91
134
|
}
|
|
92
135
|
}
|
|
93
136
|
|
|
@@ -191,6 +234,103 @@ async function fetchAndWriteHarnessPacket() {
|
|
|
191
234
|
|
|
192
235
|
const resolvedPacketPath = await fetchAndWriteHarnessPacket();
|
|
193
236
|
|
|
237
|
+
// AI-11803-F3 (2026-05-12) — pin parent autoload substrate into handoff
|
|
238
|
+
// so sub-agents inherit doctrine pointers (loaded skill names + top memory
|
|
239
|
+
// filenames + cookbook section selections). Sub-agent's own autoload reads
|
|
240
|
+
// these as a pre-classifier substrate layer, then runs its own classifier
|
|
241
|
+
// on top — handoff substrate AUGMENTS, never overrides.
|
|
242
|
+
//
|
|
243
|
+
// Loop safety (chain depth = 1): if the parent's OWN sidecar already
|
|
244
|
+
// contains a parentAutoload field (this orchestrator was itself a
|
|
245
|
+
// sub-agent), we DROP the deeper inheritance — only the immediate parent's
|
|
246
|
+
// substrate propagates one hop. Prevents recursive context compounding
|
|
247
|
+
// across grandchild spawns.
|
|
248
|
+
//
|
|
249
|
+
// Pin strategy: POINTERS not raw bodies. Sub-agent autoload re-resolves
|
|
250
|
+
// skill bodies from SKILLS_DIR, memory bodies from MEMORY_DIR, cookbook
|
|
251
|
+
// sections from references/<name>.md — keeps handoff ≤ ~3KB.
|
|
252
|
+
const SIDECAR_PATH = `${HOME}/.claude/.aria-current-turn-context.json`;
|
|
253
|
+
const MAX_PINNED_SKILLS = 20;
|
|
254
|
+
const MAX_PINNED_MEMORIES = 5;
|
|
255
|
+
const MAX_PINNED_COOKBOOK_SELECTIONS = 5;
|
|
256
|
+
|
|
257
|
+
function readParentAutoloadSidecar() {
|
|
258
|
+
if (!existsSync(SIDECAR_PATH)) {
|
|
259
|
+
audit('parent-autoload: no sidecar at ' + SIDECAR_PATH);
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
let raw;
|
|
263
|
+
try {
|
|
264
|
+
raw = readFileSync(SIDECAR_PATH, 'utf-8');
|
|
265
|
+
} catch (err) {
|
|
266
|
+
audit(`parent-autoload: sidecar read failed: ${(err?.message || err).toString().slice(0, 200)}`);
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
let parsed;
|
|
270
|
+
try {
|
|
271
|
+
parsed = JSON.parse(raw);
|
|
272
|
+
} catch (err) {
|
|
273
|
+
audit(`parent-autoload: sidecar parse failed: ${(err?.message || err).toString().slice(0, 200)}`);
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
// Chain-depth check: if this sidecar was itself populated from a parent
|
|
277
|
+
// handoff (chainDepth field present), do NOT propagate further. Effective
|
|
278
|
+
// depth cap = 1.
|
|
279
|
+
if (parsed.parentHandoffChainDepth && Number(parsed.parentHandoffChainDepth) >= 1) {
|
|
280
|
+
audit(`parent-autoload: chain-depth=${parsed.parentHandoffChainDepth} ≥ 1, NOT propagating to grandchild`);
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
return parsed;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function buildParentAutoloadPins(sidecar) {
|
|
287
|
+
if (!sidecar) return null;
|
|
288
|
+
const requiredSkillsSource = handoffManifestWorkflowSkills.length > 0 ? handoffManifestWorkflowSkills : sidecar.requiredSkills;
|
|
289
|
+
const requiredSkills = Array.isArray(requiredSkillsSource)
|
|
290
|
+
? requiredSkillsSource.slice(0, MAX_PINNED_SKILLS)
|
|
291
|
+
: [];
|
|
292
|
+
const cognitionVocabulary = Array.isArray(sidecar.cognitionVocabulary)
|
|
293
|
+
? sidecar.cognitionVocabulary
|
|
294
|
+
: [];
|
|
295
|
+
// Memory pointers — pin filenames only; sub-agent re-reads bodies from MEMORY_DIR.
|
|
296
|
+
const memoryFilenames = Array.isArray(sidecar.memoryAutoload?.bodiesInjected)
|
|
297
|
+
? sidecar.memoryAutoload.bodiesInjected.slice(0, MAX_PINNED_MEMORIES).map((e) => e.filename).filter(Boolean)
|
|
298
|
+
: [];
|
|
299
|
+
// Cookbook pointers — pin (skill, cookbookName, sectionTitle) triples; sub-agent
|
|
300
|
+
// re-extracts sections from disk using the same selection mechanism.
|
|
301
|
+
const cookbookSelections = Array.isArray(sidecar.cookbookAutoload?.injected)
|
|
302
|
+
? sidecar.cookbookAutoload.injected.slice(0, MAX_PINNED_COOKBOOK_SELECTIONS).map((e) => ({
|
|
303
|
+
skill: e.skill,
|
|
304
|
+
cookbookName: e.cookbookName,
|
|
305
|
+
sectionTitle: e.sectionTitle,
|
|
306
|
+
}))
|
|
307
|
+
: [];
|
|
308
|
+
// AI-11803-F5-QA-FIX-3 (2026-05-12): pin invocationRequired so sub-agent
|
|
309
|
+
// inherits the parent's active-workflow Skill-tool invocation contract.
|
|
310
|
+
// Sub-agent autoload reads this on its own pre-emit and unions it with
|
|
311
|
+
// its own classifier-driven list, capped at INVOCATION_CAP_PER_TURN.
|
|
312
|
+
// Doctrine: feedback_autoload_does_not_invoke_skills.md.
|
|
313
|
+
const invocationRequiredSource = handoffManifestWorkflowSkills.length > 0 ? handoffManifestWorkflowSkills : sidecar.invocationRequired;
|
|
314
|
+
const invocationRequired = Array.isArray(invocationRequiredSource)
|
|
315
|
+
? invocationRequiredSource.slice(0, 8).filter((s) => typeof s === 'string')
|
|
316
|
+
: [];
|
|
317
|
+
return {
|
|
318
|
+
parentPromptHash: sidecar.promptHash || null,
|
|
319
|
+
parentSessionId: sidecar.sessionId || null,
|
|
320
|
+
requiredSkills,
|
|
321
|
+
cognitionVocabulary,
|
|
322
|
+
memoryFilenames,
|
|
323
|
+
cookbookSelections,
|
|
324
|
+
invocationRequired,
|
|
325
|
+
manifestRouted: handoffManifestWorkflowSkills.length > 0,
|
|
326
|
+
chainDepth: 1, // marks downstream sidecars to NOT re-propagate
|
|
327
|
+
pinnedAt: new Date().toISOString(),
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const parentSidecar = readParentAutoloadSidecar();
|
|
332
|
+
const parentAutoload = buildParentAutoloadPins(parentSidecar);
|
|
333
|
+
|
|
194
334
|
const handoff = {
|
|
195
335
|
writtenAt: new Date().toISOString(),
|
|
196
336
|
parentSessionId: sessionId,
|
|
@@ -230,6 +370,11 @@ const handoff = {
|
|
|
230
370
|
// harnessPacketPath is set only if packet was successfully fetched;
|
|
231
371
|
// absent means sub-agent should fall back to calling /api/harness/codex directly.
|
|
232
372
|
...(resolvedPacketPath ? { harnessPacketPath: resolvedPacketPath } : {}),
|
|
373
|
+
// AI-11803-F3: parent autoload pins (skill names + memory filenames +
|
|
374
|
+
// cookbook section pointers) — sub-agent's pre-emit autoload reads this
|
|
375
|
+
// and pre-loads parent doctrine before its own classifier runs. Absent
|
|
376
|
+
// when parent had no sidecar OR chain-depth cap kicked in.
|
|
377
|
+
...(parentAutoload ? { parentAutoload } : {}),
|
|
233
378
|
};
|
|
234
379
|
|
|
235
380
|
try {
|
|
@@ -1,4 +1,9 @@
|
|
|
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: fall.?through session-added-comments-describing-prior-state-or-migration
|
|
6
|
+
|
|
2
7
|
// aria-agent-ledger-merge.mjs — PostToolUse hook for Agent tool completion.
|
|
3
8
|
// Merges sub-agent discovery ledger entries back into parent's ledger.
|
|
4
9
|
// Deduplicates by matching on `text` field prefix (first 100 chars).
|
|
@@ -34,7 +39,9 @@ function audit(msg) {
|
|
|
34
39
|
try {
|
|
35
40
|
if (!existsSync(dirname(LOG))) mkdirSync(dirname(LOG), { recursive: true });
|
|
36
41
|
appendFileSync(LOG, `${new Date().toISOString()} [ledger-merge] ${msg}\n`);
|
|
37
|
-
} catch {
|
|
42
|
+
} catch (err) {
|
|
43
|
+
process.stderr.write(`[aria-agent-ledger-merge:audit-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
44
|
+
}
|
|
38
45
|
}
|
|
39
46
|
|
|
40
47
|
let input = '';
|
|
@@ -56,7 +63,12 @@ try {
|
|
|
56
63
|
jti = lic.jti ?? null;
|
|
57
64
|
isClientTier = Boolean(jti);
|
|
58
65
|
}
|
|
59
|
-
} catch {
|
|
66
|
+
} catch (err) {
|
|
67
|
+
// M0.H.X3 + analogous to M0.H.X1: license parse failure now surfaces.
|
|
68
|
+
// Fall-through here means isClientTier stays false; this hook only
|
|
69
|
+
// determines which path to read handoff from (no privilege grant).
|
|
70
|
+
process.stderr.write(`[aria-agent-ledger-merge:license-parse] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
71
|
+
}
|
|
60
72
|
|
|
61
73
|
const clientHandoffPath = jti ? `/var/lib/aria-licensee/${jti}/handoff.json` : null;
|
|
62
74
|
|
|
@@ -102,10 +114,14 @@ try {
|
|
|
102
114
|
try {
|
|
103
115
|
const e = JSON.parse(line);
|
|
104
116
|
if (e.text) parentExistingKeys.add(String(e.text).slice(0, 100));
|
|
105
|
-
} catch {
|
|
117
|
+
} catch (err) {
|
|
118
|
+
process.stderr.write(`[aria-agent-ledger-merge:parent-line-parse] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
119
|
+
}
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
|
-
} catch {
|
|
122
|
+
} catch (err) {
|
|
123
|
+
process.stderr.write(`[aria-agent-ledger-merge:parent-ledger-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
124
|
+
}
|
|
109
125
|
|
|
110
126
|
// ── Find sub-agent ledger files newer than handoff ──────────────────────────
|
|
111
127
|
let discoveryFiles = [];
|
|
@@ -120,7 +136,11 @@ try {
|
|
|
120
136
|
if (stat.mtimeMs >= handoffWrittenAt) {
|
|
121
137
|
discoveryFiles.push(fullPath);
|
|
122
138
|
}
|
|
123
|
-
} catch {
|
|
139
|
+
} catch (err) {
|
|
140
|
+
// M0.H.X3: per-file stat failure now surfaces. Loop continues; one
|
|
141
|
+
// unreadable file shouldn't block discovery merging across siblings.
|
|
142
|
+
process.stderr.write(`[aria-agent-ledger-merge:discovery-stat@${f}] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
143
|
+
}
|
|
124
144
|
}
|
|
125
145
|
} catch (err) {
|
|
126
146
|
audit(`warn: ledger scan failed: ${(err?.message || err).toString().slice(0, 120)}`);
|
|
@@ -150,9 +170,13 @@ for (const subLedgerPath of discoveryFiles) {
|
|
|
150
170
|
parentExistingKeys.add(key);
|
|
151
171
|
appendFileSync(parentLedgerPath, line + '\n');
|
|
152
172
|
mergedCount++;
|
|
153
|
-
} catch {
|
|
173
|
+
} catch (err) {
|
|
174
|
+
process.stderr.write(`[aria-agent-ledger-merge:sub-line-merge] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
175
|
+
}
|
|
154
176
|
}
|
|
155
|
-
} catch {
|
|
177
|
+
} catch (err) {
|
|
178
|
+
process.stderr.write(`[aria-agent-ledger-merge:sub-ledger-read@${subLedgerPath}] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
179
|
+
}
|
|
156
180
|
}
|
|
157
181
|
|
|
158
182
|
audit(
|
|
@@ -34,7 +34,9 @@ function audit(msg) {
|
|
|
34
34
|
try {
|
|
35
35
|
if (!existsSync(dirname(LOG))) mkdirSync(dirname(LOG), { recursive: true });
|
|
36
36
|
appendFileSync(LOG, `${new Date().toISOString()} [architect-fallback] ${msg}\n`);
|
|
37
|
-
} catch {
|
|
37
|
+
} catch (err) {
|
|
38
|
+
process.stderr.write(`[aria-architect-fallback:audit-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
39
|
+
}
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
let input = '';
|
|
@@ -128,7 +130,13 @@ const DEEPSEEK_MODEL = process.env.ARIA_ARCHITECT_MODEL || 'deepseek-v4-pro';
|
|
|
128
130
|
|
|
129
131
|
if (!DEEPSEEK_API_KEY) {
|
|
130
132
|
const briefPath = `/tmp/aria-architect-brief-${sessionId}-${Date.now()}.txt`;
|
|
131
|
-
try { writeFileSync(briefPath, brief); }
|
|
133
|
+
try { writeFileSync(briefPath, brief); }
|
|
134
|
+
catch (err) {
|
|
135
|
+
// M0.H.X3: brief-write failure now surfaces. Brief is the human-
|
|
136
|
+
// pickup recovery path when no DEEPSEEK_API_KEY is set; silent loss
|
|
137
|
+
// means the human never sees the architect-fallback work.
|
|
138
|
+
process.stderr.write(`[aria-architect-fallback:brief-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
139
|
+
}
|
|
132
140
|
audit(`no DEEPSEEK_API_KEY in env; brief written to ${briefPath} for human pickup`);
|
|
133
141
|
process.stderr.write(
|
|
134
142
|
`Architect-fallback: DEEPSEEK_API_KEY not set (also tried ARIA_DEEPSEEK_API_KEY). Brief written to ${briefPath} for Hamza to run manually.\n`
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aria-claim-evidence-stop-gate.mjs — Phase 9 v3 M9.DRIFT.9.STOPHOOK.
|
|
4
|
+
*
|
|
5
|
+
* Stop hook that intercepts the assistant response from THIS turn before
|
|
6
|
+
* the model is marked complete. Walks the transcript JSONL (path provided
|
|
7
|
+
* by Claude Code in the event payload) backward from the latest entry,
|
|
8
|
+
* accumulates every text-block from assistant turns since the last real
|
|
9
|
+
* user-message boundary, then pipes the accumulated text to
|
|
10
|
+
* apps/arias-soul/scripts/scan-claim-evidence.mjs --stdin --format json.
|
|
11
|
+
*
|
|
12
|
+
* If the validator reports counts.fail > 0, this hook emits a JSON
|
|
13
|
+
* decision=block message with a reason naming each FAIL claim's class +
|
|
14
|
+
* matched substring. Claude Code interprets decision=block as a redo
|
|
15
|
+
* directive, so the operator-visible response gets composed again with
|
|
16
|
+
* the FAIL-claim feedback in scope.
|
|
17
|
+
*
|
|
18
|
+
* Why this rung exists: the original M9.DRIFT.9 (43919c1f) shipped a
|
|
19
|
+
* skill + on-demand validator + pattern doc and explicitly claimed in
|
|
20
|
+
* spec author_notes that "a true gate that prevents my claim before
|
|
21
|
+
* sending would require intercepting model output before stream
|
|
22
|
+
* emission — that's an invocation-layer change, not something this
|
|
23
|
+
* spec produces." That claim was wrong. Claude Code Stop hooks ARE the
|
|
24
|
+
* checkpoint — they fire after the assistant response is composed but
|
|
25
|
+
* before it's marked complete and can return decision=block to force a
|
|
26
|
+
* redo. The mechanism was always available; M9.DRIFT.9 asserted
|
|
27
|
+
* impossibility without verifying. This rung corrects that.
|
|
28
|
+
*
|
|
29
|
+
* Doctrine bind:
|
|
30
|
+
* - truth_over_deception: gate prevents bare claims from reaching the
|
|
31
|
+
* operator
|
|
32
|
+
* - axiom_runtime_rule.admit_ignorance: when claim has no evidence,
|
|
33
|
+
* gate forces redo with explicit ignorance acknowledgment
|
|
34
|
+
* - feedback_no_assumption_without_verification: claims without
|
|
35
|
+
* adjacent evidence anchors get blocked
|
|
36
|
+
* - clean_cognition: hook is opt-in (operator-policy), runs at the
|
|
37
|
+
* single Stop checkpoint, no additional surfaces
|
|
38
|
+
*
|
|
39
|
+
* Opt-in: this hook is NOT auto-installed in settings.json because
|
|
40
|
+
* blocking conversational responses is an operator-policy decision.
|
|
41
|
+
* Operator enables via:
|
|
42
|
+
* {
|
|
43
|
+
* "hooks": {
|
|
44
|
+
* "Stop": [
|
|
45
|
+
* { "matcher": "*", "hooks": [
|
|
46
|
+
* { "type": "command",
|
|
47
|
+
* "command": "node /path/to/aria-claim-evidence-stop-gate.mjs" }
|
|
48
|
+
* ]}
|
|
49
|
+
* ]
|
|
50
|
+
* }
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* Exit / output protocol (Claude Code Stop hook spec):
|
|
54
|
+
* - exit 0 with no JSON -> allow (no block)
|
|
55
|
+
* - exit 0 with JSON {decision:'block', reason:'...'} on stdout
|
|
56
|
+
* -> block + show reason to model
|
|
57
|
+
* - exit 2 -> block with stderr as reason (treated as error)
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
61
|
+
import { spawnSync } from 'node:child_process';
|
|
62
|
+
import { resolve, dirname } from 'node:path';
|
|
63
|
+
import { fileURLToPath } from 'node:url';
|
|
64
|
+
|
|
65
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
66
|
+
const __dirname = dirname(__filename);
|
|
67
|
+
|
|
68
|
+
// scan-claim-evidence.mjs canonical location: relative to this hook's
|
|
69
|
+
// repo location. ops/claude-hooks/ -> apps/arias-soul/scripts/.
|
|
70
|
+
const SCAN_SCRIPT = resolve(__dirname, '..', '..', 'apps', 'arias-soul', 'scripts', 'scan-claim-evidence.mjs');
|
|
71
|
+
|
|
72
|
+
// Same system-reminder skip pattern as aria-stop-gate.mjs:774.
|
|
73
|
+
// Runtime-injected user-role messages (block errors, task-notifications,
|
|
74
|
+
// harness packet preview) shouldn't count as turn boundaries.
|
|
75
|
+
const SYSTEM_REMINDER_RX = /<system-reminder>[\s\S]*?<\/system-reminder>|<task-notification>[\s\S]*?<\/task-notification>|🔐 Aria Harness|task-notification|PreToolUse:[A-Z][A-Za-z]* hook blocking error|Stop hook blocking error/g;
|
|
76
|
+
const SYSTEM_REMINDER_THRESHOLD = 0.6;
|
|
77
|
+
|
|
78
|
+
async function readStdinAsync() {
|
|
79
|
+
return new Promise((resolveP) => {
|
|
80
|
+
let data = '';
|
|
81
|
+
process.stdin.setEncoding('utf8');
|
|
82
|
+
process.stdin.on('data', (chunk) => { data += chunk; });
|
|
83
|
+
process.stdin.on('end', () => resolveP(data));
|
|
84
|
+
process.stdin.on('error', () => resolveP(data));
|
|
85
|
+
if (process.stdin.isTTY) resolveP('');
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function isReminderOnlyUserMessage(textContent) {
|
|
90
|
+
if (!textContent) return false;
|
|
91
|
+
const reminderMatches = textContent.match(SYSTEM_REMINDER_RX) || [];
|
|
92
|
+
if (reminderMatches.length === 0) return false;
|
|
93
|
+
const reminderChars = reminderMatches.reduce((s, x) => s + x.length, 0);
|
|
94
|
+
const fraction = reminderChars / Math.max(1, textContent.length);
|
|
95
|
+
return fraction >= SYSTEM_REMINDER_THRESHOLD;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Walk transcript JSONL backward, accumulate text-block content from
|
|
100
|
+
* assistant turns since the last real user-message boundary. Mirrors
|
|
101
|
+
* aria-stop-gate.mjs:786-840 turn-window logic. Returns accumulated
|
|
102
|
+
* text as a single string in chronological order (oldest assistant
|
|
103
|
+
* chunk in this turn first).
|
|
104
|
+
*/
|
|
105
|
+
function accumulateAssistantTextFromTurn(transcriptPath) {
|
|
106
|
+
if (!transcriptPath || !existsSync(transcriptPath)) return '';
|
|
107
|
+
let lines;
|
|
108
|
+
try {
|
|
109
|
+
lines = readFileSync(transcriptPath, 'utf-8').split('\n').filter(Boolean);
|
|
110
|
+
} catch (err) {
|
|
111
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate:transcript-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
112
|
+
return '';
|
|
113
|
+
}
|
|
114
|
+
const textChunks = [];
|
|
115
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
116
|
+
let m;
|
|
117
|
+
try {
|
|
118
|
+
m = JSON.parse(lines[i]);
|
|
119
|
+
} catch (err) {
|
|
120
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate:transcript-message-parse] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const role = m.message?.role ?? m.role;
|
|
124
|
+
if (role === 'user') {
|
|
125
|
+
const content = m.message?.content ?? m.content ?? [];
|
|
126
|
+
const isToolResultOnly = Array.isArray(content) &&
|
|
127
|
+
content.length > 0 &&
|
|
128
|
+
content.every((b) => b && b.type === 'tool_result');
|
|
129
|
+
if (isToolResultOnly) continue;
|
|
130
|
+
const textContent = Array.isArray(content)
|
|
131
|
+
? content.filter((b) => b && b.type === 'text').map((b) => b.text || '').join('\n')
|
|
132
|
+
: (typeof content === 'string' ? content : '');
|
|
133
|
+
if (textContent && isReminderOnlyUserMessage(textContent)) continue;
|
|
134
|
+
// Real user message reached — turn boundary.
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
if (role !== 'assistant') continue;
|
|
138
|
+
const content = m.message?.content ?? m.content ?? [];
|
|
139
|
+
if (!Array.isArray(content)) continue;
|
|
140
|
+
const text = content
|
|
141
|
+
.filter((b) => b && b.type === 'text')
|
|
142
|
+
.map((b) => b.text || '')
|
|
143
|
+
.join('\n');
|
|
144
|
+
if (text) textChunks.push(text);
|
|
145
|
+
}
|
|
146
|
+
// Walked backward — reverse for chronological order.
|
|
147
|
+
return textChunks.reverse().join('\n\n');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function buildBlockReason(parsed) {
|
|
151
|
+
const failClaims = (parsed.claims || []).filter((c) => c.status === 'fail');
|
|
152
|
+
if (failClaims.length === 0) return null;
|
|
153
|
+
const lines = [];
|
|
154
|
+
lines.push('=== ARIA CLAIM-EVIDENCE STOP GATE ===');
|
|
155
|
+
lines.push('');
|
|
156
|
+
lines.push(`${failClaims.length} unsupported claim(s) detected in this turn's assistant text.`);
|
|
157
|
+
lines.push('Each claim below lacks an evidence anchor (file:line, exit code, git SHA, command output, or citation) within the surrounding window AND lacks an explicit ignorance acknowledgment ("I do not know", "without access to X", "unverified — verifying").');
|
|
158
|
+
lines.push('');
|
|
159
|
+
for (const c of failClaims) {
|
|
160
|
+
lines.push(` ✗ [${c.class}] "${c.match}"`);
|
|
161
|
+
lines.push(` window: ${c.window_preview}`);
|
|
162
|
+
}
|
|
163
|
+
lines.push('');
|
|
164
|
+
lines.push('REQUIRED REDO SHAPE:');
|
|
165
|
+
lines.push(' For each FAIL claim above, either:');
|
|
166
|
+
lines.push(' (a) add an evidence anchor (file:line reference, exit code, git SHA, or verbatim command output) within the same paragraph, OR');
|
|
167
|
+
lines.push(' (b) replace the claim with explicit ignorance acknowledgment ("I do not know without access to X", "unverified — running check now").');
|
|
168
|
+
lines.push(' Do NOT rephrase the same bare claim differently. The doctrine is feedback_no_assumption_without_verification.');
|
|
169
|
+
return lines.join('\n');
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Read event JSON from stdin (Claude Code Stop hook spec).
|
|
173
|
+
const input = await readStdinAsync();
|
|
174
|
+
if (!input.trim()) {
|
|
175
|
+
// No event payload — nothing to gate.
|
|
176
|
+
process.exit(0);
|
|
177
|
+
}
|
|
178
|
+
let event;
|
|
179
|
+
try {
|
|
180
|
+
event = JSON.parse(input);
|
|
181
|
+
} catch {
|
|
182
|
+
// Fail-OPEN on malformed event: this is a CONVERSATIONAL gate, not a
|
|
183
|
+
// safety-critical destructive-action gate. Malformed event during
|
|
184
|
+
// normal operation shouldn't block all responses. Surface to stderr.
|
|
185
|
+
process.stderr.write('[aria-claim-evidence-stop-gate] stdin not JSON; skipping\n');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const transcriptPath = event.transcript_path ?? event.transcriptPath;
|
|
190
|
+
if (!transcriptPath) {
|
|
191
|
+
// No transcript available — can't accumulate assistant text. Allow.
|
|
192
|
+
process.exit(0);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const assistantText = accumulateAssistantTextFromTurn(transcriptPath);
|
|
196
|
+
if (!assistantText.trim()) {
|
|
197
|
+
// No assistant text in this turn (e.g., the turn was tool-only or
|
|
198
|
+
// already-empty). Nothing to validate. Allow.
|
|
199
|
+
process.exit(0);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// Pipe to scan-claim-evidence.mjs --stdin --format json.
|
|
203
|
+
if (!existsSync(SCAN_SCRIPT)) {
|
|
204
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate] scan script not found at ${SCAN_SCRIPT}; skipping\n`);
|
|
205
|
+
process.exit(0);
|
|
206
|
+
}
|
|
207
|
+
const scan = spawnSync('node', [SCAN_SCRIPT, '--stdin', '--format', 'json'], {
|
|
208
|
+
input: assistantText,
|
|
209
|
+
encoding: 'utf8',
|
|
210
|
+
// Reasonable upper bound; scan-claim-evidence is a single-pass
|
|
211
|
+
// regex scanner so even very long turns finish in well under 5s.
|
|
212
|
+
timeout: 10000,
|
|
213
|
+
});
|
|
214
|
+
if (scan.error) {
|
|
215
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate:spawn-error] ${scan.error.message}\n`);
|
|
216
|
+
process.exit(0);
|
|
217
|
+
}
|
|
218
|
+
// scan exits 0 (no fail) or 1 (fail). 2 = usage error.
|
|
219
|
+
if (scan.status === 2) {
|
|
220
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate:scan-usage-error] ${scan.stderr || '(no stderr)'}\n`);
|
|
221
|
+
process.exit(0);
|
|
222
|
+
}
|
|
223
|
+
let parsed;
|
|
224
|
+
try {
|
|
225
|
+
parsed = JSON.parse(scan.stdout || '{}');
|
|
226
|
+
} catch (err) {
|
|
227
|
+
process.stderr.write(`[aria-claim-evidence-stop-gate:scan-output-parse] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
228
|
+
process.exit(0);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const failCount = parsed?.counts?.fail ?? 0;
|
|
232
|
+
if (failCount > 0) {
|
|
233
|
+
const reason = buildBlockReason(parsed);
|
|
234
|
+
process.stdout.write(JSON.stringify({ decision: 'block', reason }, null, 2) + '\n');
|
|
235
|
+
process.exit(0);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// All claims either had evidence (PASS) or had explicit ignorance
|
|
239
|
+
// acknowledgment (SKIPPED). Allow.
|
|
240
|
+
process.exit(0);
|