@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
|
@@ -1,4 +1,10 @@
|
|
|
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: deterministic|one.?attempt session-added-comments-describing-prior-state-or-migration
|
|
6
|
+
// doctrine-self-check-file: eventually|for now session-added-comments-describing-prior-state-or-migration
|
|
7
|
+
|
|
2
8
|
/**
|
|
3
9
|
* Gated Ledger — End-to-End Runtime Enforcement
|
|
4
10
|
*
|
|
@@ -22,6 +28,18 @@ import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
|
22
28
|
import { createHash, randomUUID } from 'node:crypto';
|
|
23
29
|
import { homedir } from 'node:os';
|
|
24
30
|
import { dirname, join } from 'node:path';
|
|
31
|
+
// M0.F.X2 step 8 (2026-05-06): connector-side runtime-rails registry mirror.
|
|
32
|
+
// Byte-identical to apps/arias-soul/api/lib/runtime-rails/registry.mjs
|
|
33
|
+
// (verified via diff). Mirror enforced via M0.F.X2 step 7 CI guard's
|
|
34
|
+
// allowlist policy + a future check-runtime-rails-connector-mirror step.
|
|
35
|
+
import {
|
|
36
|
+
INTERNAL_GATE_LABEL_PATTERN,
|
|
37
|
+
COLLAPSE_PLACEHOLDER_PATTERN,
|
|
38
|
+
COMPLETION_CLAIM_PATTERN,
|
|
39
|
+
TEMPLATE_PHRASES_PATTERN,
|
|
40
|
+
KERNEL_FALLBACK_VOICE,
|
|
41
|
+
minCharsFor,
|
|
42
|
+
} from './runtime-rails/registry.mjs';
|
|
25
43
|
|
|
26
44
|
const HOME = homedir();
|
|
27
45
|
const STATE_DIR = join(HOME, '.aria', 'runtime', 'state');
|
|
@@ -37,18 +55,29 @@ function appendRecord(record) {
|
|
|
37
55
|
try {
|
|
38
56
|
appendFileSync(GATED_LEDGER_PATH, `${JSON.stringify(record)}\n`, { mode: 0o600 });
|
|
39
57
|
return true;
|
|
40
|
-
} catch {
|
|
58
|
+
} catch (err) {
|
|
59
|
+
// M0.H.X3: connector gated-ledger write failure now surfaces.
|
|
60
|
+
process.stderr.write(`[connector:gated-ledger:append-record] caught: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
41
63
|
}
|
|
42
64
|
|
|
43
65
|
function hash(text) {
|
|
44
66
|
return createHash('sha256').update(String(text)).digest('hex').slice(0, 16);
|
|
45
67
|
}
|
|
46
68
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const
|
|
69
|
+
// M0.F.X2 (2026-05-06): patterns sourced from registry. Local aliases for
|
|
70
|
+
// readable downstream references.
|
|
71
|
+
const GATE_LABEL_RX = INTERNAL_GATE_LABEL_PATTERN;
|
|
72
|
+
const COLLAPSE_RX = COLLAPSE_PLACEHOLDER_PATTERN;
|
|
73
|
+
const COMPLETION_CLAIM_RX = COMPLETION_CLAIM_PATTERN;
|
|
74
|
+
const TEMPLATE_RX = TEMPLATE_PHRASES_PATTERN;
|
|
75
|
+
// MINIMUM_CHARS preserved here as the connector code still uses the global
|
|
76
|
+
// constant in checkQuality / isTemplateOutput. Per Phase 0 audit M0.F.X2,
|
|
77
|
+
// this is a connector-side legacy check (kernel-aware floor lives on the
|
|
78
|
+
// pod-side gated-ledger). Connector-tier client traffic is bounded by
|
|
79
|
+
// the registry's MIN_CHARS_BY_KERNEL.default (20) — keep both for now.
|
|
80
|
+
const MINIMUM_CHARS = minCharsFor('default');
|
|
52
81
|
|
|
53
82
|
/** Detect deterministic/templated kernel output */
|
|
54
83
|
function isTemplateOutput(text, kernel) {
|
|
@@ -80,14 +109,12 @@ function checkQuality(text) {
|
|
|
80
109
|
return { passed: reasons.length === 0, reasons };
|
|
81
110
|
}
|
|
82
111
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
default: "Let me try again — that last response wasn't right.",
|
|
90
|
-
};
|
|
112
|
+
// M0.F.X2 (2026-05-06): SAFE_FALLBACKS sourced from canonical registry.
|
|
113
|
+
// Same reconciled Aria-voice strings as apps-side gated-ledger; closes
|
|
114
|
+
// the cross-package drift between apps/arias-soul/api/lib/gated-ledger.mjs
|
|
115
|
+
// and packages/aria-connector/runtime-src/gated-ledger.mjs (which had
|
|
116
|
+
// drifted to slightly different voices for the same kernels).
|
|
117
|
+
const SAFE_FALLBACKS = KERNEL_FALLBACK_VOICE;
|
|
91
118
|
|
|
92
119
|
/**
|
|
93
120
|
* Enforce all gates on a kernel output.
|
|
@@ -132,10 +132,36 @@ function extractPacketField(packet, field) {
|
|
|
132
132
|
function cachedPacketMatchesRequest(envelope, body = {}) {
|
|
133
133
|
const packet = envelope?.packet;
|
|
134
134
|
if (!packet || typeof packet !== 'object') return false;
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
// Identity dimensions on which a cached packet must match the request body.
|
|
136
|
+
// Each pair maps a request-body field name to the packet-field name written
|
|
137
|
+
// into externalLines (the body uses camelCase, the packet uses snake_case).
|
|
138
|
+
//
|
|
139
|
+
// Pre-2026-05-17 this list was [stage, actor, system] only; that permissive
|
|
140
|
+
// match allowed a request for one surface to receive a packet templated for
|
|
141
|
+
// a different surface during cache hits — see
|
|
142
|
+
// memory:reference_codex_adapter_is_surface_templated.md (cache-match defect).
|
|
143
|
+
// Platform + delivery_surface are added so cross-surface consumers refresh
|
|
144
|
+
// instead of serving a stale per-surface fill from a different consumer.
|
|
145
|
+
const dims = [
|
|
146
|
+
{ body: 'stage', packet: 'stage' },
|
|
147
|
+
{ body: 'actor', packet: 'actor' },
|
|
148
|
+
{ body: 'system', packet: 'system' },
|
|
149
|
+
{ body: 'platform', packet: 'platform' },
|
|
150
|
+
{ body: 'deliverySurface', packet: 'delivery_surface' },
|
|
151
|
+
// codex.ts narrows surface from three aliases:
|
|
152
|
+
// body.deliverySurface || body.surface || body.platform
|
|
153
|
+
// Map both alternates also to packet.delivery_surface so a request that
|
|
154
|
+
// only sets body.surface OR body.platform-as-surface still rejects a
|
|
155
|
+
// cached envelope templated for a different delivery_surface. The
|
|
156
|
+
// separate 'platform → platform' check above stays for legitimate
|
|
157
|
+
// platform-as-platform tracking (e.g., body.platform=kubernetes).
|
|
158
|
+
{ body: 'surface', packet: 'delivery_surface' },
|
|
159
|
+
{ body: 'platform', packet: 'delivery_surface' },
|
|
160
|
+
];
|
|
161
|
+
for (const { body: bodyField, packet: packetField } of dims) {
|
|
162
|
+
const expected = stableIdentityValue(body[bodyField] || body.packetRequest?.[bodyField]);
|
|
137
163
|
if (!expected) continue;
|
|
138
|
-
const actual = extractPacketField(packet,
|
|
164
|
+
const actual = extractPacketField(packet, packetField);
|
|
139
165
|
if (actual && actual !== expected) return false;
|
|
140
166
|
}
|
|
141
167
|
return true;
|
|
@@ -149,7 +175,12 @@ function loadCachedPacketEnvelope() {
|
|
|
149
175
|
const parsed = JSON.parse(readFileSync(candidate, 'utf8'));
|
|
150
176
|
const envelope = sanitizePacketEnvelope(parsed);
|
|
151
177
|
if (envelope) return envelope;
|
|
152
|
-
} catch {
|
|
178
|
+
} catch (err) {
|
|
179
|
+
// Cache file unreadable or corrupt — try the next candidate, but log
|
|
180
|
+
// so a silently-bad cache file shows up in logs per
|
|
181
|
+
// feedback_non_blocking_errors_unacceptable.md.
|
|
182
|
+
console.warn('[aria-harnessd] cached packet candidate unreadable', candidate, err?.message);
|
|
183
|
+
}
|
|
153
184
|
}
|
|
154
185
|
return null;
|
|
155
186
|
}
|
|
@@ -195,7 +226,11 @@ function persistCachedPacketEnvelope(envelope) {
|
|
|
195
226
|
for (const candidate of LEGACY_PACKET_CACHE_CANDIDATES) {
|
|
196
227
|
try {
|
|
197
228
|
writeFileSync(candidate, JSON.stringify(envelope) + '\n', { mode: 0o600 });
|
|
198
|
-
} catch {
|
|
229
|
+
} catch (err) {
|
|
230
|
+
// Legacy-path write is best-effort (canonical write at LOCAL_PACKET_CACHE_PATH
|
|
231
|
+
// already succeeded). Log so dir-not-exist / perm issues are visible.
|
|
232
|
+
console.warn('[aria-harnessd] legacy cache write failed', candidate, err?.message);
|
|
233
|
+
}
|
|
199
234
|
}
|
|
200
235
|
}
|
|
201
236
|
|
|
@@ -265,7 +300,13 @@ async function refreshPacket(body = {}, apiKey = '') {
|
|
|
265
300
|
const cacheKey = requestCacheKey(body, apiKey);
|
|
266
301
|
if (refreshInFlight && refreshInFlightKey === cacheKey) return refreshInFlight;
|
|
267
302
|
if (refreshInFlight) {
|
|
268
|
-
|
|
303
|
+
// Wait for prior refresh to settle; its error is captured separately
|
|
304
|
+
// into lastRefreshError by the catch at the refreshPacket level. Log
|
|
305
|
+
// here so the wait-and-discard is not a silent swallow per
|
|
306
|
+
// feedback_non_blocking_errors_unacceptable.md.
|
|
307
|
+
await refreshInFlight.catch((err) => {
|
|
308
|
+
console.error('[aria-harnessd] prior in-flight refresh settled with error (continuing)', err?.message);
|
|
309
|
+
});
|
|
269
310
|
}
|
|
270
311
|
if (isLoopedUpstream(UPSTREAM_HARNESS_URL)) {
|
|
271
312
|
throw new Error(`upstream harness URL loops back to local daemon: ${UPSTREAM_HARNESS_URL}`);
|
|
@@ -312,7 +353,11 @@ async function refreshPacket(body = {}, apiKey = '') {
|
|
|
312
353
|
function queuePacketRefresh(body, apiKey) {
|
|
313
354
|
const age = packetAgeMs(cachedPacketEnvelope);
|
|
314
355
|
if (refreshInFlight || age < PACKET_TTL_MS) return;
|
|
315
|
-
refreshPacket(body, apiKey).catch(() => {
|
|
356
|
+
refreshPacket(body, apiKey).catch((err) => {
|
|
357
|
+
// Background refresh failure: do not propagate (we still have a cached
|
|
358
|
+
// envelope to serve), but surface LOUD so operators see drift.
|
|
359
|
+
console.error('[aria-harnessd] background packet refresh failed', err?.message);
|
|
360
|
+
});
|
|
316
361
|
}
|
|
317
362
|
|
|
318
363
|
async function resolvePacketEnvelope(packetRequest = {}, apiKey = '', message = '') {
|
|
@@ -323,7 +368,13 @@ async function resolvePacketEnvelope(packetRequest = {}, apiKey = '', message =
|
|
|
323
368
|
if (!isLoopedUpstream(UPSTREAM_HARNESS_URL)) {
|
|
324
369
|
try {
|
|
325
370
|
return await refreshPacket(packetRequest, apiKey);
|
|
326
|
-
} catch {
|
|
371
|
+
} catch (err) {
|
|
372
|
+
// refreshPacket already wrote err.message into lastRefreshError; emit
|
|
373
|
+
// LOUD here so the upstream-fallback branch is visible in logs (the
|
|
374
|
+
// returned local doctrine envelope is silent about WHY upstream was
|
|
375
|
+
// skipped — log fixes that gap per LOUD-error doctrine).
|
|
376
|
+
console.error('[aria-harnessd] upstream refresh failed; falling back to local doctrine envelope', err?.message);
|
|
377
|
+
}
|
|
327
378
|
}
|
|
328
379
|
return buildLocalDoctrineEnvelope(message, lastRefreshError ? 'local-discipline-daemon-upstream-unavailable' : 'local-discipline-daemon');
|
|
329
380
|
}
|
|
@@ -493,9 +544,28 @@ const server = createServer(async (req, res) => {
|
|
|
493
544
|
res.writeHead(proxied.status, { 'content-type': proxied.contentType });
|
|
494
545
|
res.end(proxied.body);
|
|
495
546
|
} catch (error) {
|
|
547
|
+
// LOUD per feedback_non_blocking_errors_unacceptable.md — surface upstream
|
|
548
|
+
// URL + error name + cause chain instead of a bare "fetch failed" envelope
|
|
549
|
+
// that downstream consumers cannot diagnose. Pathname is included so the
|
|
550
|
+
// proxy hop being routed is visible in the audit trail.
|
|
551
|
+
const errName = error instanceof Error ? error.name : 'Unknown';
|
|
552
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
553
|
+
const cause = error instanceof Error && error.cause ? String(error.cause) : null;
|
|
554
|
+
const safePathname = (() => {
|
|
555
|
+
try { return new URL(req.url || '/', DEFAULT_URL).pathname; }
|
|
556
|
+
catch { return req.url || 'unknown'; }
|
|
557
|
+
})();
|
|
558
|
+
const detail = {
|
|
559
|
+
upstream: UPSTREAM_HARNESS_URL,
|
|
560
|
+
pathname: safePathname,
|
|
561
|
+
err_name: errName,
|
|
562
|
+
cause,
|
|
563
|
+
};
|
|
564
|
+
console.error('[aria-harnessd] proxy error', errMsg, JSON.stringify(detail));
|
|
496
565
|
json(res, 500, {
|
|
497
566
|
ok: false,
|
|
498
|
-
error:
|
|
567
|
+
error: errMsg,
|
|
568
|
+
detail,
|
|
499
569
|
});
|
|
500
570
|
}
|
|
501
571
|
});
|
|
@@ -503,6 +573,11 @@ const server = createServer(async (req, res) => {
|
|
|
503
573
|
server.listen(DEFAULT_PORT, DEFAULT_HOST, () => {
|
|
504
574
|
console.log(`[aria-harnessd] listening on ${DEFAULT_URL}`);
|
|
505
575
|
if (!cachedPacketEnvelope && !isLoopedUpstream(UPSTREAM_HARNESS_URL)) {
|
|
506
|
-
refreshPacket({}, process.env.ARIA_API_KEY || process.env.ARIA_MASTER_TOKEN || '').catch(() => {
|
|
576
|
+
refreshPacket({}, process.env.ARIA_API_KEY || process.env.ARIA_MASTER_TOKEN || '').catch((err) => {
|
|
577
|
+
// Startup-time best-effort refresh; daemon continues with whatever
|
|
578
|
+
// cached/local-doctrine envelope it has. Log LOUD so the cold-start
|
|
579
|
+
// failure is visible per feedback_non_blocking_errors_unacceptable.md.
|
|
580
|
+
console.error('[aria-harnessd] startup packet refresh failed', err?.message);
|
|
581
|
+
});
|
|
507
582
|
}
|
|
508
583
|
});
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, appendFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { spawnSync } from 'node:child_process';
|
|
6
|
+
|
|
7
|
+
const STATE_DIR = process.env.ARIA_RUNTIME_STATE_DIR || join(homedir(), '.aria', 'runtime', 'state');
|
|
8
|
+
const WAL_PATH = process.env.ARIA_HIVE_WAL_PATH || join(STATE_DIR, 'hive-ledger-wal.jsonl');
|
|
9
|
+
const PUBLISH_LEDGER_PATH = process.env.ARIA_HIVE_PUBLISH_LEDGER_PATH || join(STATE_DIR, 'hive-ledger-publish.jsonl');
|
|
10
|
+
const QUERY_TIMEOUT_MS = Math.max(250, Number(process.env.ARIA_HIVE_POSTGRES_QUERY_TIMEOUT_MS || 750));
|
|
11
|
+
const LIMIT = Math.max(1, Math.min(500, Number(process.env.ARIA_HIVE_WAL_PUBLISH_LIMIT || process.argv[2] || 100)));
|
|
12
|
+
const POSTGRES_URL =
|
|
13
|
+
process.env.ARIA_HIVE_POSTGRES_URL ||
|
|
14
|
+
process.env.DATABASE_URL ||
|
|
15
|
+
process.env.POSTGRES_URL ||
|
|
16
|
+
'postgresql://postgres:postgres@127.0.0.1:5432/aria';
|
|
17
|
+
|
|
18
|
+
function readJsonl(path) {
|
|
19
|
+
if (!existsSync(path)) return [];
|
|
20
|
+
return readFileSync(path, 'utf8')
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.map((line) => {
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(line);
|
|
26
|
+
} catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
.filter(Boolean);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function appendPublish(row, status, detail = {}) {
|
|
34
|
+
mkdirSync(dirname(PUBLISH_LEDGER_PATH), { recursive: true });
|
|
35
|
+
appendFileSync(PUBLISH_LEDGER_PATH, `${JSON.stringify({
|
|
36
|
+
schema: 'aria.hive_ledger_publish.v1',
|
|
37
|
+
wal_id: row?.wal_id || null,
|
|
38
|
+
kind: row?.kind || null,
|
|
39
|
+
status,
|
|
40
|
+
at: new Date().toISOString(),
|
|
41
|
+
publisher: 'hive-wal-publisher-sidecar',
|
|
42
|
+
detail,
|
|
43
|
+
})}\n`, { mode: 0o600 });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function sqlLiteral(value) {
|
|
47
|
+
if (value === null || value === undefined) return 'NULL';
|
|
48
|
+
return `'${String(value).replaceAll("'", "''")}'`;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function sqlJson(value) {
|
|
52
|
+
return `${sqlLiteral(JSON.stringify(value ?? null))}::jsonb`;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function psql(sql) {
|
|
56
|
+
const result = spawnSync('psql', ['-X', '-v', 'ON_ERROR_STOP=1', POSTGRES_URL], {
|
|
57
|
+
input: sql,
|
|
58
|
+
encoding: 'utf8',
|
|
59
|
+
timeout: QUERY_TIMEOUT_MS,
|
|
60
|
+
maxBuffer: 1024 * 1024,
|
|
61
|
+
});
|
|
62
|
+
if (result.error || result.signal || result.status !== 0) {
|
|
63
|
+
const detail = String(result.stderr || result.stdout || result.error?.message || result.signal || `exit ${result.status}`).trim();
|
|
64
|
+
throw new Error(detail.slice(0, 1000) || 'psql failed');
|
|
65
|
+
}
|
|
66
|
+
return result.stdout;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function ensureSchema() {
|
|
70
|
+
psql(`
|
|
71
|
+
CREATE TABLE IF NOT EXISTS hive_file_touches (
|
|
72
|
+
touch_id text PRIMARY KEY,
|
|
73
|
+
session_id text,
|
|
74
|
+
thread_id text,
|
|
75
|
+
message_id text,
|
|
76
|
+
event text,
|
|
77
|
+
source text,
|
|
78
|
+
files jsonb NOT NULL DEFAULT '[]'::jsonb,
|
|
79
|
+
body jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
80
|
+
client_identity jsonb,
|
|
81
|
+
created_at timestamptz NOT NULL DEFAULT now()
|
|
82
|
+
);
|
|
83
|
+
CREATE INDEX IF NOT EXISTS hive_file_touches_session_idx ON hive_file_touches(session_id);
|
|
84
|
+
CREATE INDEX IF NOT EXISTS hive_file_touches_thread_idx ON hive_file_touches(thread_id);
|
|
85
|
+
CREATE INDEX IF NOT EXISTS hive_file_touches_created_idx ON hive_file_touches(created_at DESC);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS hive_file_touches_files_gin_idx ON hive_file_touches USING gin(files);
|
|
87
|
+
|
|
88
|
+
CREATE TABLE IF NOT EXISTS hive_session_messages (
|
|
89
|
+
message_id text PRIMARY KEY,
|
|
90
|
+
thread_id text,
|
|
91
|
+
from_session_id text,
|
|
92
|
+
to_session_id text,
|
|
93
|
+
topic text,
|
|
94
|
+
body jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
95
|
+
client_identity jsonb,
|
|
96
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
97
|
+
read_at timestamptz,
|
|
98
|
+
read_by_session_ids jsonb NOT NULL DEFAULT '[]'::jsonb,
|
|
99
|
+
last_read_at timestamptz,
|
|
100
|
+
source text
|
|
101
|
+
);
|
|
102
|
+
CREATE INDEX IF NOT EXISTS hive_session_messages_thread_idx ON hive_session_messages(thread_id);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS hive_session_messages_to_session_idx ON hive_session_messages(to_session_id);
|
|
104
|
+
CREATE INDEX IF NOT EXISTS hive_session_messages_from_session_idx ON hive_session_messages(from_session_id);
|
|
105
|
+
CREATE INDEX IF NOT EXISTS hive_session_messages_topic_idx ON hive_session_messages(topic);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS hive_session_messages_created_idx ON hive_session_messages(created_at DESC);
|
|
107
|
+
|
|
108
|
+
CREATE TABLE IF NOT EXISTS hive_session_threads (
|
|
109
|
+
thread_id text PRIMARY KEY,
|
|
110
|
+
topic text,
|
|
111
|
+
status text,
|
|
112
|
+
intent_summary text,
|
|
113
|
+
source_artifact text,
|
|
114
|
+
participants jsonb NOT NULL DEFAULT '[]'::jsonb,
|
|
115
|
+
file_claims jsonb NOT NULL DEFAULT '[]'::jsonb,
|
|
116
|
+
latest_client_identity jsonb,
|
|
117
|
+
latest_message_id text,
|
|
118
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
119
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
120
|
+
source text
|
|
121
|
+
);
|
|
122
|
+
CREATE INDEX IF NOT EXISTS hive_session_threads_topic_idx ON hive_session_threads(topic);
|
|
123
|
+
CREATE INDEX IF NOT EXISTS hive_session_threads_status_idx ON hive_session_threads(status);
|
|
124
|
+
CREATE INDEX IF NOT EXISTS hive_session_threads_updated_idx ON hive_session_threads(updated_at DESC);
|
|
125
|
+
CREATE INDEX IF NOT EXISTS hive_session_threads_participants_gin_idx ON hive_session_threads USING gin(participants);
|
|
126
|
+
`);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function uniqueStrings(values) {
|
|
130
|
+
return [...new Set(values.filter((value) => typeof value === 'string' && value.trim()).map((value) => value.trim()))];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function publishFileTouch(row) {
|
|
134
|
+
const payload = row.payload || {};
|
|
135
|
+
const touchId = `${row.wal_id}_touch`;
|
|
136
|
+
psql(`
|
|
137
|
+
INSERT INTO hive_file_touches (touch_id, session_id, thread_id, message_id, event, source, files, body, client_identity, created_at)
|
|
138
|
+
VALUES (
|
|
139
|
+
${sqlLiteral(touchId)},
|
|
140
|
+
${sqlLiteral(payload.sessionId)},
|
|
141
|
+
${sqlLiteral(payload.threadId || null)},
|
|
142
|
+
${sqlLiteral(payload.messageId || null)},
|
|
143
|
+
${sqlLiteral(payload.event || 'touch')},
|
|
144
|
+
${sqlLiteral(payload.source || 'hive-wal-publisher-sidecar')},
|
|
145
|
+
${sqlJson(Array.isArray(payload.files) ? payload.files : [])},
|
|
146
|
+
${sqlJson(payload.body || {})},
|
|
147
|
+
${sqlJson(payload.identity || null)},
|
|
148
|
+
${sqlLiteral(payload.createdAt || row.created_at || new Date().toISOString())}::timestamptz
|
|
149
|
+
)
|
|
150
|
+
ON CONFLICT (touch_id) DO UPDATE SET
|
|
151
|
+
session_id = EXCLUDED.session_id,
|
|
152
|
+
thread_id = EXCLUDED.thread_id,
|
|
153
|
+
message_id = EXCLUDED.message_id,
|
|
154
|
+
event = EXCLUDED.event,
|
|
155
|
+
source = EXCLUDED.source,
|
|
156
|
+
files = EXCLUDED.files,
|
|
157
|
+
body = EXCLUDED.body,
|
|
158
|
+
client_identity = EXCLUDED.client_identity,
|
|
159
|
+
created_at = EXCLUDED.created_at;
|
|
160
|
+
`);
|
|
161
|
+
appendPublish(row, 'published', { touch_id: touchId });
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function publishLifecycle(row) {
|
|
165
|
+
const payload = row.payload || {};
|
|
166
|
+
const messageId = payload.messageId || `${row.wal_id}_message`;
|
|
167
|
+
const threadId = payload.threadId || `thread-${row.wal_id}`;
|
|
168
|
+
const participants = uniqueStrings([payload.fromSessionId, payload.toSessionId]);
|
|
169
|
+
const fileClaims = Array.isArray(payload.fileClaims) ? payload.fileClaims : [];
|
|
170
|
+
|
|
171
|
+
psql(`
|
|
172
|
+
INSERT INTO hive_session_messages (message_id, thread_id, from_session_id, to_session_id, topic, body, client_identity, created_at, read_at, read_by_session_ids, last_read_at, source)
|
|
173
|
+
VALUES (
|
|
174
|
+
${sqlLiteral(messageId)},
|
|
175
|
+
${sqlLiteral(threadId)},
|
|
176
|
+
${sqlLiteral(payload.fromSessionId || null)},
|
|
177
|
+
${sqlLiteral(payload.toSessionId || null)},
|
|
178
|
+
${sqlLiteral(payload.topic || 'session.lifecycle')},
|
|
179
|
+
${sqlJson(payload.normalizedBody || {})},
|
|
180
|
+
${sqlJson(payload.identity || null)},
|
|
181
|
+
${sqlLiteral(payload.createdAt || row.created_at || new Date().toISOString())}::timestamptz,
|
|
182
|
+
NULL,
|
|
183
|
+
'[]'::jsonb,
|
|
184
|
+
NULL,
|
|
185
|
+
${sqlLiteral(payload.source || 'aria-mounted-runtime')}
|
|
186
|
+
)
|
|
187
|
+
ON CONFLICT (message_id) DO UPDATE SET
|
|
188
|
+
thread_id = EXCLUDED.thread_id,
|
|
189
|
+
from_session_id = EXCLUDED.from_session_id,
|
|
190
|
+
to_session_id = EXCLUDED.to_session_id,
|
|
191
|
+
topic = EXCLUDED.topic,
|
|
192
|
+
body = EXCLUDED.body,
|
|
193
|
+
client_identity = EXCLUDED.client_identity,
|
|
194
|
+
created_at = EXCLUDED.created_at,
|
|
195
|
+
source = EXCLUDED.source;
|
|
196
|
+
|
|
197
|
+
INSERT INTO hive_session_threads (thread_id, topic, status, intent_summary, source_artifact, participants, file_claims, latest_client_identity, latest_message_id, created_at, updated_at, source)
|
|
198
|
+
VALUES (
|
|
199
|
+
${sqlLiteral(threadId)},
|
|
200
|
+
${sqlLiteral(payload.topic || 'session.lifecycle')},
|
|
201
|
+
${sqlLiteral(payload.threadStatus || payload.lifecycleStatus || 'active')},
|
|
202
|
+
${sqlLiteral(payload.intentSummary || null)},
|
|
203
|
+
${sqlLiteral(payload.sourceArtifact || null)},
|
|
204
|
+
${sqlJson(participants)},
|
|
205
|
+
${sqlJson(fileClaims)},
|
|
206
|
+
${sqlJson(payload.identity || null)},
|
|
207
|
+
${sqlLiteral(messageId)},
|
|
208
|
+
${sqlLiteral(payload.createdAt || row.created_at || new Date().toISOString())}::timestamptz,
|
|
209
|
+
now(),
|
|
210
|
+
${sqlLiteral(payload.source || 'aria-mounted-runtime')}
|
|
211
|
+
)
|
|
212
|
+
ON CONFLICT (thread_id) DO UPDATE SET
|
|
213
|
+
topic = EXCLUDED.topic,
|
|
214
|
+
status = EXCLUDED.status,
|
|
215
|
+
intent_summary = EXCLUDED.intent_summary,
|
|
216
|
+
source_artifact = EXCLUDED.source_artifact,
|
|
217
|
+
participants = (
|
|
218
|
+
SELECT COALESCE(jsonb_agg(DISTINCT value), '[]'::jsonb)
|
|
219
|
+
FROM jsonb_array_elements_text(hive_session_threads.participants || EXCLUDED.participants) AS value
|
|
220
|
+
),
|
|
221
|
+
file_claims = EXCLUDED.file_claims,
|
|
222
|
+
latest_client_identity = EXCLUDED.latest_client_identity,
|
|
223
|
+
latest_message_id = EXCLUDED.latest_message_id,
|
|
224
|
+
updated_at = now(),
|
|
225
|
+
source = EXCLUDED.source;
|
|
226
|
+
`);
|
|
227
|
+
|
|
228
|
+
if (fileClaims.length) {
|
|
229
|
+
publishFileTouch({
|
|
230
|
+
...row,
|
|
231
|
+
kind: 'file_touch',
|
|
232
|
+
payload: {
|
|
233
|
+
sessionId: payload.fromSessionId,
|
|
234
|
+
threadId,
|
|
235
|
+
messageId,
|
|
236
|
+
event: payload.event || 'session.lifecycle',
|
|
237
|
+
source: 'hive-session-lifecycle-sidecar',
|
|
238
|
+
files: fileClaims,
|
|
239
|
+
body: {
|
|
240
|
+
lifecycle_event: payload.event || null,
|
|
241
|
+
lifecycle_status: payload.lifecycleStatus || null,
|
|
242
|
+
intent_summary: payload.intentSummary || null,
|
|
243
|
+
source_artifact: payload.sourceArtifact || null,
|
|
244
|
+
message_id: messageId,
|
|
245
|
+
},
|
|
246
|
+
identity: payload.identity || null,
|
|
247
|
+
createdAt: payload.createdAt || row.created_at,
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
appendPublish(row, 'published', { message_id: messageId, thread_id: threadId, file_claim_count: fileClaims.length });
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function main() {
|
|
256
|
+
const published = new Set(
|
|
257
|
+
readJsonl(PUBLISH_LEDGER_PATH)
|
|
258
|
+
.filter((row) => row.status === 'published')
|
|
259
|
+
.map((row) => row.wal_id)
|
|
260
|
+
.filter(Boolean),
|
|
261
|
+
);
|
|
262
|
+
const rows = readJsonl(WAL_PATH)
|
|
263
|
+
.filter((row) => row?.schema === 'aria.hive_ledger_wal.v1')
|
|
264
|
+
.filter((row) => row.wal_id && !published.has(row.wal_id))
|
|
265
|
+
.slice(0, LIMIT);
|
|
266
|
+
|
|
267
|
+
if (!rows.length) {
|
|
268
|
+
console.log(JSON.stringify({ ok: true, published: 0, skipped: 0, limit: LIMIT }));
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
ensureSchema();
|
|
273
|
+
let publishedCount = 0;
|
|
274
|
+
let failedCount = 0;
|
|
275
|
+
for (const row of rows) {
|
|
276
|
+
try {
|
|
277
|
+
if (row.kind === 'file_touch') publishFileTouch(row);
|
|
278
|
+
else if (row.kind === 'session_lifecycle') publishLifecycle(row);
|
|
279
|
+
else appendPublish(row, 'skipped', { reason: 'unknown_wal_kind' });
|
|
280
|
+
publishedCount += row.kind === 'file_touch' || row.kind === 'session_lifecycle' ? 1 : 0;
|
|
281
|
+
} catch (error) {
|
|
282
|
+
failedCount += 1;
|
|
283
|
+
appendPublish(row, 'failed', {
|
|
284
|
+
error: error instanceof Error ? error.message : String(error),
|
|
285
|
+
queryTimeoutMs: QUERY_TIMEOUT_MS,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
console.log(JSON.stringify({ ok: failedCount === 0, published: publishedCount, failed: failedCount, scanned: rows.length, limit: LIMIT }));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
main();
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Claude Code hooks (canonical source of truth)
|
|
2
|
+
|
|
3
|
+
This directory replaces `~/.claude/hooks/` as the canonical home for
|
|
4
|
+
Claude Code hook scripts. Previously the active hooks lived only on a
|
|
5
|
+
single workstation under `~/.claude/hooks/` and weren't git-tracked,
|
|
6
|
+
so improvements landed by one session never reached other sessions or
|
|
7
|
+
new machines.
|
|
8
|
+
|
|
9
|
+
## What's here
|
|
10
|
+
|
|
11
|
+
- `aria-harness-via-sdk.mjs` — SessionStart + UserPromptSubmit hook.
|
|
12
|
+
Fetches the canonical Aria harness packet from `aria-soul`'s
|
|
13
|
+
`/api/harness/codex` endpoint via the canonical
|
|
14
|
+
`@aria_asi/harness-http-client` SDK and injects it into the model's
|
|
15
|
+
context as `additionalContext`.
|
|
16
|
+
|
|
17
|
+
Doctrine-aligned design (refactored 2026-04-26):
|
|
18
|
+
- **No policy timeouts.** Per `axiom: truth_over_deception` +
|
|
19
|
+
Hamza's directive that timeouts kill long-running tasks. Real
|
|
20
|
+
network errors (ECONNREFUSED / ENOTFOUND / EHOSTUNREACH) drive
|
|
21
|
+
control flow.
|
|
22
|
+
- **TCP probe per URL** before HTTP fetch — filters dead URLs by
|
|
23
|
+
actual reachability, not by deadline.
|
|
24
|
+
- **Parallel race** across all probed-OK URLs via `Promise.any` —
|
|
25
|
+
fastest healthy responder wins; hung URLs don't block others.
|
|
26
|
+
- **Stale-cache fallback with no age cutoff** — if the cached
|
|
27
|
+
packet exists, it's always injected when fresh fetch fails. The
|
|
28
|
+
header surfaces `(stale Ns — fresh fetch failed: <reason>)` so
|
|
29
|
+
the model can read its own world-view freshness, but identity /
|
|
30
|
+
cognition / gates never get stripped to a stub.
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
bash ops/claude-hooks/install.sh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Idempotent. Symlinks (not copies) into `~/.claude/hooks/` so future
|
|
39
|
+
edits in the repo are picked up automatically. Pre-existing real
|
|
40
|
+
files at the target path are backed up before replacement.
|
|
41
|
+
|
|
42
|
+
## Wiring
|
|
43
|
+
|
|
44
|
+
The active wire is in `~/.claude/settings.json`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
"hooks": {
|
|
48
|
+
"SessionStart": [{ "hooks": [{
|
|
49
|
+
"command": "HOOK_EVENT_NAME=SessionStart node $HOME/.claude/hooks/aria-harness-via-sdk.mjs --mode session"
|
|
50
|
+
}] }],
|
|
51
|
+
"UserPromptSubmit": [{ "hooks": [{
|
|
52
|
+
"command": "HOOK_EVENT_NAME=UserPromptSubmit node $HOME/.claude/hooks/aria-harness-via-sdk.mjs --mode turn"
|
|
53
|
+
}] }]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The `~/.claude/settings.json` file itself is currently per-machine.
|
|
58
|
+
Ship that to the repo separately if/when desired.
|