@mindrian_os/cli 2.0.0-beta.3 → 2.0.0-beta.33
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/.claude-plugin/plugin.json +21 -0
- package/.mcp.json +14 -0
- package/CHANGELOG.md +497 -0
- package/agents/analogy-query-fetcher.md +119 -0
- package/agents/brain-query.md +91 -0
- package/agents/competitor-watch-fetcher.md +94 -0
- package/agents/framework-runner.md +258 -0
- package/agents/grading.md +216 -0
- package/agents/grant-reviewer.md +191 -0
- package/agents/investor.md +141 -0
- package/agents/larry-extended.md +215 -0
- package/agents/meeting-perspective-extractor.md +94 -0
- package/agents/opportunity-scanner.md +105 -0
- package/agents/persona-analyst.md +201 -0
- package/agents/research.md +103 -0
- package/agents/reverse-salient-agent.md +42 -0
- package/agents/vault-section-reviewer.md +107 -0
- package/assets/banner-showcase.html +537 -0
- package/assets/fonts/BebasNeue-Regular.ttf +0 -0
- package/assets/fonts/Inter-Bold.ttf +0 -0
- package/assets/fonts/Inter-Regular.ttf +0 -0
- package/assets/logo.svg +10 -0
- package/bin/local-chain-recommender.cjs +256 -0
- package/bin/mindrian-brain-mcp-client.cjs +319 -0
- package/bin/mindrian-mcp-server.cjs +445 -0
- package/bin/mindrian-mcp-shim.cjs +100 -0
- package/bin/mindrian-tools.cjs +784 -0
- package/commands/act.md +529 -0
- package/commands/admin.md +439 -0
- package/commands/agentshield.md +49 -0
- package/commands/analyze-needs.md +78 -0
- package/commands/analyze-systems.md +73 -0
- package/commands/analyze-timing.md +98 -0
- package/commands/auto-explore.md +85 -0
- package/commands/beautiful-question.md +76 -0
- package/commands/bono.md +152 -0
- package/commands/brain-derive.md +137 -0
- package/commands/build-knowledge.md +121 -0
- package/commands/build-thesis.md +94 -0
- package/commands/causal.md +269 -0
- package/commands/challenge-assumptions.md +78 -0
- package/commands/compare-ventures.md +117 -0
- package/commands/correct-reference-now.md +88 -0
- package/commands/dashboard.md +144 -0
- package/commands/deck.md +117 -0
- package/commands/deep-grade.md +214 -0
- package/commands/diagnose.md +131 -0
- package/commands/diagnostics.md +195 -0
- package/commands/dial-memory-refresh.md +113 -0
- package/commands/diffusion.md +129 -0
- package/commands/discover.md +221 -0
- package/commands/doctor.md +271 -0
- package/commands/dogfood-flush.md +130 -0
- package/commands/dominant-designs.md +76 -0
- package/commands/eureka.md +315 -0
- package/commands/explain-decision.md +135 -0
- package/commands/explore-domains.md +78 -0
- package/commands/explore-futures.md +67 -0
- package/commands/explore-opportunity.md +172 -0
- package/commands/explore-trends.md +78 -0
- package/commands/export.md +128 -0
- package/commands/feynman-timeline-refresh.md +102 -0
- package/commands/file-meeting.md +1195 -0
- package/commands/find-analogies.md +369 -0
- package/commands/find-bottlenecks.md +108 -0
- package/commands/find-connections.md +111 -0
- package/commands/funding.md +114 -0
- package/commands/futures.md +128 -0
- package/commands/grade-grant.md +297 -0
- package/commands/grade.md +257 -0
- package/commands/graph.md +218 -0
- package/commands/hat-briefing.md +163 -0
- package/commands/heal.md +72 -0
- package/commands/help.md +176 -0
- package/commands/hmi-status.md +75 -0
- package/commands/ignite.md +229 -0
- package/commands/ingest-methodology.md +128 -0
- package/commands/intel-pipeline.md +133 -0
- package/commands/jtbd.md +262 -0
- package/commands/leadership.md +113 -0
- package/commands/lean-canvas.md +74 -0
- package/commands/macro-trends.md +88 -0
- package/commands/map-unknowns.md +76 -0
- package/commands/memory-cortex-reach.md +79 -0
- package/commands/memory.md +213 -0
- package/commands/models.md +200 -0
- package/commands/mos-reason.md +489 -0
- package/commands/mos.md +162 -0
- package/commands/mullins.md +155 -0
- package/commands/mva-brief.md +86 -0
- package/commands/mva-option.md +119 -0
- package/commands/mva-report.md +76 -0
- package/commands/new-project.md +633 -0
- package/commands/new-surface.md +116 -0
- package/commands/onboard.md +489 -0
- package/commands/operator.md +168 -0
- package/commands/opportunities.md +177 -0
- package/commands/organize.md +74 -0
- package/commands/persona.md +276 -0
- package/commands/pipeline.md +167 -0
- package/commands/present.md +125 -0
- package/commands/publish.md +227 -0
- package/commands/pws-brain.md +154 -0
- package/commands/qualify-opportunity.md +113 -0
- package/commands/query.md +70 -0
- package/commands/radar.md +110 -0
- package/commands/reanalyze.md +124 -0
- package/commands/research.md +467 -0
- package/commands/room.md +385 -0
- package/commands/rooms.md +682 -0
- package/commands/root-cause.md +77 -0
- package/commands/rs-experts.md +153 -0
- package/commands/rs-explain.md +134 -0
- package/commands/rs-fetch.md +119 -0
- package/commands/rs-thesis.md +131 -0
- package/commands/scenario-plan.md +80 -0
- package/commands/scheduled-tasks.md +308 -0
- package/commands/score-innovation.md +78 -0
- package/commands/scout.md +379 -0
- package/commands/setup.md +658 -0
- package/commands/show.md +71 -0
- package/commands/skill.md +108 -0
- package/commands/snapshot.md +179 -0
- package/commands/speakers.md +118 -0
- package/commands/splash.md +55 -0
- package/commands/stance.md +91 -0
- package/commands/status.md +109 -0
- package/commands/structure-argument.md +82 -0
- package/commands/suggest-next.md +141 -0
- package/commands/systems-thinking.md +224 -0
- package/commands/think-hats.md +86 -0
- package/commands/trending-to-absurd.md +151 -0
- package/commands/update.md +256 -0
- package/commands/user-needs.md +77 -0
- package/commands/validate.md +77 -0
- package/commands/value-proposition.md +116 -0
- package/commands/vault.md +330 -0
- package/commands/visualize.md +71 -0
- package/commands/whitespace.md +541 -0
- package/commands/wiki.md +96 -0
- package/data/ROOM.md +47 -0
- package/data/brain-census.generated.json +2617 -0
- package/data/brain-orchestration-projection.json +4973 -0
- package/data/brain-packet-schema.json +545 -0
- package/data/brain-surface-contract.json +32 -0
- package/data/capability-ledger.json +391 -0
- package/data/capability-map-registry.json +23 -0
- package/data/command-registry.json +2433 -0
- package/data/connector-coverage-ledger.json +1618 -0
- package/data/connector-out-of-spine-allowlist.json +71 -0
- package/data/connector-registry.json +3637 -0
- package/data/corpus-stats-source.json +11 -0
- package/data/corpus-stats.generated.json +10 -0
- package/data/cross-domain-analogues.json +15 -0
- package/data/deck-aliases.json +6 -0
- package/data/deck-styles.json +85 -0
- package/data/deployment-surfaces.json +69 -0
- package/data/dispatch-framework-map.json +18 -0
- package/data/doctor-modules.json +206 -0
- package/data/dual-graph-health-baseline.json +12 -0
- package/data/eureka-critic-tags.json +32 -0
- package/data/first-reward-surfaces.json +66 -0
- package/data/first-touch-surfaces.json +60 -0
- package/data/flagship-floor-set.json +37 -0
- package/data/framework-names.json +121 -0
- package/data/grant-rubric-fixtures/early-stage-pre-seed.json +18 -0
- package/data/grant-rubric-fixtures/early-stage-round-a.json +18 -0
- package/data/grant-rubric-fixtures/early-stage-seed.json +18 -0
- package/data/grant-rubric-fixtures/hybrid-seed-incentive.json +18 -0
- package/data/grant-rubric-fixtures/rd-fund.json +18 -0
- package/data/grant-rubric-fixtures/regional-innovation-incubators.json +18 -0
- package/data/grant-rubric-fixtures/technology-incubators.json +18 -0
- package/data/grant-rubric-fixtures/tnufa.json +167 -0
- package/data/grant-rubric-schema.json +33 -0
- package/data/harness-fixtures/converged-room/.context/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/.intelligence/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/.snapshots/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/MINTO.md +19 -0
- package/data/harness-fixtures/converged-room/STATE.md +73 -0
- package/data/harness-fixtures/converged-room/USER.md +23 -0
- package/data/harness-fixtures/converged-room/assets/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/business-model/CONTEXT.md +32 -0
- package/data/harness-fixtures/converged-room/business-model/ROOM.md +36 -0
- package/data/harness-fixtures/converged-room/competitive-analysis/CONTEXT.md +33 -0
- package/data/harness-fixtures/converged-room/competitive-analysis/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/financial-model/CONTEXT.md +30 -0
- package/data/harness-fixtures/converged-room/financial-model/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/funding/CONTEXT.md +41 -0
- package/data/harness-fixtures/converged-room/funding/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/legal-ip/CONTEXT.md +30 -0
- package/data/harness-fixtures/converged-room/legal-ip/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/market-analysis/CONTEXT.md +32 -0
- package/data/harness-fixtures/converged-room/market-analysis/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/opportunity-bank/CONTEXT.md +39 -0
- package/data/harness-fixtures/converged-room/opportunity-bank/ROOM.md +36 -0
- package/data/harness-fixtures/converged-room/problem-definition/CONTEXT.md +32 -0
- package/data/harness-fixtures/converged-room/problem-definition/ROOM.md +36 -0
- package/data/harness-fixtures/converged-room/references/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/references/SECTION-SCHEMA.md +213 -0
- package/data/harness-fixtures/converged-room/references/SUB-SCHEMAS.md +91 -0
- package/data/harness-fixtures/converged-room/solution-design/CONTEXT.md +36 -0
- package/data/harness-fixtures/converged-room/solution-design/ROOM.md +36 -0
- package/data/harness-fixtures/converged-room/strategy/CONTEXT.md +35 -0
- package/data/harness-fixtures/converged-room/strategy/ROOM.md +35 -0
- package/data/harness-fixtures/converged-room/team/ROOM.md +13 -0
- package/data/harness-fixtures/converged-room/team-execution/CONTEXT.md +36 -0
- package/data/harness-fixtures/converged-room/team-execution/ROOM.md +35 -0
- package/data/harness-manifest.json +74 -0
- package/data/harness-policies/CONTEXT.md +55 -0
- package/data/harness-policies/_schema.json +42 -0
- package/data/harness-policies/contract-parity-larry.json +63 -0
- package/data/harness-policies/gate-card-fire.json +13 -0
- package/data/harness-policies/gate-graph-derive-health.json +13 -0
- package/data/harness-policies/gate-shape-declaration.json +13 -0
- package/data/harness-policies/gate-tool-honesty.json +13 -0
- package/data/harness-policies/gate-worktree-hygiene.json +13 -0
- package/data/harness-policies/memory-write-policy.json +28 -0
- package/data/harness-policies/registry-drift.json +13 -0
- package/data/harness-policies/release-payload-ceiling.json +13 -0
- package/data/harness-policies/voice-backend-noun-free.json +13 -0
- package/data/harness-policies/voice-fork-as-card.json +13 -0
- package/data/harness-policies/voice-glyph-present.json +13 -0
- package/data/harness-policies/voice-hyphens-only.json +13 -0
- package/data/help-groups.json +236 -0
- package/data/hitl-shape-backfill.json +777 -0
- package/data/hitl-shape-declaration-fixtures/invalid-bad-shape.json +5 -0
- package/data/hitl-shape-declaration-fixtures/invalid-missing-why.json +4 -0
- package/data/hitl-shape-declaration-fixtures/invalid-ranker-contradiction.json +6 -0
- package/data/hitl-shape-declaration-fixtures/invalid-skill-gap.json +3 -0
- package/data/hitl-shape-declaration-fixtures/valid-multi-stage.json +7 -0
- package/data/hitl-shape-declaration-fixtures/valid-single-shape.json +5 -0
- package/data/hitl-shape-declaration-fixtures/valid-skill-exempt.json +5 -0
- package/data/hitl-shape-declaration-schema.json +34 -0
- package/data/hitl-stages-fixtures/bono.json +10 -0
- package/data/hitl-stages-fixtures/pipeline-1.json +9 -0
- package/data/hitl-stages-fixtures/pipeline-2.json +9 -0
- package/data/hitl-stages-fixtures/pipeline-3.json +10 -0
- package/data/hitl-stages-fixtures/research.json +10 -0
- package/data/hitl-stages-fixtures/rs-convergence.json +10 -0
- package/data/hitl-stages-fixtures/rs-family.json +11 -0
- package/data/hitl-stages-fixtures/rs-reverse-salient.json +10 -0
- package/data/hitl-stages-fixtures/trending-to-absurd.json +11 -0
- package/data/hitl-stages-schema.json +26 -0
- package/data/mcp-tool-connectors.json +464 -0
- package/data/mva-agent-prompts.json +31 -0
- package/data/mva-deck-template.html +15 -0
- package/data/mva-heuristic-keywords.json +35 -0
- package/data/orchestration-command-ledger.json +576 -0
- package/data/orchestration-unwired-allowlist.json +6 -0
- package/data/portfolio-ahp-matrix.json +16 -0
- package/data/publish-needs.json +76 -0
- package/data/render-coverage-registry.json +1152 -0
- package/data/research-sources.json +58 -0
- package/data/roadmap-type-chains.json +28 -0
- package/data/room-blueprints.json +156 -0
- package/data/subagent-dispatch-grants.json +150 -0
- package/hooks/hooks.json +493 -0
- package/hooks/run-hook.cmd +64 -0
- package/lib/__init__.py +0 -0
- package/lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/lib/agents/auto-explore-agent.cjs +1163 -0
- package/lib/agents/mva/brain-classic-traps.cjs +55 -0
- package/lib/agents/mva/brain-cross-domain.cjs +79 -0
- package/lib/agents/mva/brain-similar-ventures.cjs +93 -0
- package/lib/agents/mva/dashboard-graph-neighborhood.cjs +72 -0
- package/lib/agents/mva/index.cjs +42 -0
- package/lib/agents/mva/six-hats-red-black.cjs +137 -0
- package/lib/agents/mva/tavily-funding-scan.cjs +147 -0
- package/lib/agents/mva/test-all-six-agents.cjs +467 -0
- package/lib/agents/reverse-salient-agent.cjs +757 -0
- package/lib/agents/tension-hook-agent.cjs +586 -0
- package/lib/brain/ROOM.md +44 -0
- package/lib/brain/chain-recommender.cjs +784 -0
- package/lib/brain/curation-batch.cjs +519 -0
- package/lib/brain/framework-chain-slice.cjs +252 -0
- package/lib/brain/hypergraph-event-schema.cjs +184 -0
- package/lib/chat/chat-context.js +185 -0
- package/lib/chat/chat-panel.js +721 -0
- package/lib/chat/fabric-chat.cjs +288 -0
- package/lib/chat/generative-tools.js +219 -0
- package/lib/conversation/ROOM.md +39 -0
- package/lib/conversation/classifier-rules.json +38 -0
- package/lib/conversation/classifier.cjs +264 -0
- package/lib/conversation/operator-epistemic-cap.test.cjs +156 -0
- package/lib/conversation/operator.cjs +492 -0
- package/lib/conversation/operator.test.cjs +160 -0
- package/lib/copy/115-spec-strings.cjs +55 -0
- package/lib/core/__init__.py +0 -0
- package/lib/core/__nav-stub.cjs +14 -0
- package/lib/core/__pycache__/__init__.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs-math.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_cache.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_corpus.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_corpus_exclude.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_hybrid.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_math.cpython-312.pyc +0 -0
- package/lib/core/__pycache__/rs_rooms.cpython-312.pyc +0 -0
- package/lib/core/abstraction-gate.cjs +133 -0
- package/lib/core/act-jtbd-blurb.cjs +231 -0
- package/lib/core/artifact-id.cjs +148 -0
- package/lib/core/asset-ops.cjs +151 -0
- package/lib/core/auto-commit-throttle.cjs +129 -0
- package/lib/core/bearer-token.cjs +199 -0
- package/lib/core/behavioral/observation-schema.cjs +86 -0
- package/lib/core/bono/cell-fanout.cjs +305 -0
- package/lib/core/bono/debate-composition.cjs +495 -0
- package/lib/core/bono/hat-governance.cjs +367 -0
- package/lib/core/bono/persona-research.cjs +288 -0
- package/lib/core/bono/reviewer-governance.cjs +331 -0
- package/lib/core/brain-client.cjs +2621 -0
- package/lib/core/brain-derivation-prompts.cjs +331 -0
- package/lib/core/brain-derivation-queue.cjs +535 -0
- package/lib/core/brain-derivation.cjs +740 -0
- package/lib/core/brain-md-schema.cjs +528 -0
- package/lib/core/brain-md-staleness.cjs +357 -0
- package/lib/core/brain-response-sanitize.cjs +396 -0
- package/lib/core/breakthrough/canary.cjs +134 -0
- package/lib/core/breakthrough/canary.test.cjs +136 -0
- package/lib/core/breakthrough/detectors.cjs +359 -0
- package/lib/core/breakthrough/detectors.test.cjs +333 -0
- package/lib/core/breakthrough/ethics-fence.cjs +129 -0
- package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
- package/lib/core/breakthrough/resurfacing.cjs +150 -0
- package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
- package/lib/core/breakthrough/review-queue.cjs +168 -0
- package/lib/core/breakthrough/review-queue.test.cjs +160 -0
- package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
- package/lib/core/breakthrough/scanner.cjs +435 -0
- package/lib/core/breakthrough/scanner.test.cjs +267 -0
- package/lib/core/breakthrough/schema.cjs +180 -0
- package/lib/core/breakthrough/schema.test.cjs +256 -0
- package/lib/core/breakthrough/scoring.cjs +293 -0
- package/lib/core/breakthrough/scoring.test.cjs +423 -0
- package/lib/core/breakthrough/verb-dispatch.cjs +230 -0
- package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
- package/lib/core/breakthrough/voice-scaffold.cjs +249 -0
- package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
- package/lib/core/bridge-writer.cjs +477 -0
- package/lib/core/cache-prune.cjs +314 -0
- package/lib/core/card-fire-gate.cjs +107 -0
- package/lib/core/card-fire-sidechannel.cjs +518 -0
- package/lib/core/chain-executor.cjs +939 -0
- package/lib/core/chain-retry.cjs +214 -0
- package/lib/core/chain-step-dispatcher.cjs +397 -0
- package/lib/core/chat-context-builder.cjs +253 -0
- package/lib/core/check-plugin-enabled.cjs +145 -0
- package/lib/core/close-loop-writer.cjs +492 -0
- package/lib/core/command-registration-check.cjs +246 -0
- package/lib/core/correlation-label-index.cjs +230 -0
- package/lib/core/correlation.cjs +112 -0
- package/lib/core/coverage-monitor.cjs +183 -0
- package/lib/core/coverage-rollup.cjs +232 -0
- package/lib/core/cross-room-aggregator.cjs +1127 -0
- package/lib/core/cross-room-store.cjs +292 -0
- package/lib/core/cross-room-triggers.cjs +222 -0
- package/lib/core/daily-briefing.cjs +438 -0
- package/lib/core/decision-axes.cjs +178 -0
- package/lib/core/decision-capture.cjs +618 -0
- package/lib/core/deck-design-rules.cjs +211 -0
- package/lib/core/deep-links.cjs +82 -0
- package/lib/core/directive-envelope.cjs +230 -0
- package/lib/core/directive-envelope.test.cjs +225 -0
- package/lib/core/dispatch-optimizer.cjs +354 -0
- package/lib/core/doc-text-extractor.cjs +133 -0
- package/lib/core/doctor/capability-ledger-module.cjs +170 -0
- package/lib/core/doctor/card-fire-health-module.cjs +159 -0
- package/lib/core/doctor/cascade-rooms-active-module.cjs +127 -0
- package/lib/core/doctor/cascade-rooms-module.cjs +184 -0
- package/lib/core/doctor/class-m-brain-smoke.cjs +479 -0
- package/lib/core/doctor/class-m-brain-smoke.test.cjs +448 -0
- package/lib/core/doctor/class-s-eureka-smoke.cjs +380 -0
- package/lib/core/doctor/deployment-surfaces-module.cjs +408 -0
- package/lib/core/doctor/deprecated-usage-module.cjs +155 -0
- package/lib/core/doctor/eureka-fts-health-module.cjs +236 -0
- package/lib/core/doctor/graph-derive-heal-retrofit-module.cjs +148 -0
- package/lib/core/doctor/graph-derive-health-module.cjs +486 -0
- package/lib/core/doctor/install-incomplete-module.cjs +320 -0
- package/lib/core/doctor/install-state-module.cjs +503 -0
- package/lib/core/doctor/mcp-surface-module.cjs +369 -0
- package/lib/core/doctor/mode-select-checkpoint-module.cjs +113 -0
- package/lib/core/doctor/plugin-enabled-state-module.cjs +86 -0
- package/lib/core/doctor/room-graph-density-module.cjs +181 -0
- package/lib/core/doctor/room-md-module.cjs +198 -0
- package/lib/core/doctor/shared.cjs +555 -0
- package/lib/core/doctor/stale-first-touch-copy-module.cjs +83 -0
- package/lib/core/doctor/statusline-visibility-module.cjs +295 -0
- package/lib/core/doctor/ui-compliance-module.cjs +223 -0
- package/lib/core/doctor/umbilical-module.cjs +486 -0
- package/lib/core/doctor/verify-surface-module.cjs +82 -0
- package/lib/core/doctor/voice-style-log-module.cjs +146 -0
- package/lib/core/domain-insight-sweep.cjs +224 -0
- package/lib/core/drift-baseline.cjs +362 -0
- package/lib/core/drift-runtime-reachability.cjs +283 -0
- package/lib/core/dual-path-detector.cjs +84 -0
- package/lib/core/dual-path-detector.test.cjs +334 -0
- package/lib/core/enrichment-queue.cjs +636 -0
- package/lib/core/eureka/ahp-weights.cjs +232 -0
- package/lib/core/eureka/analogy-fitness.cjs +326 -0
- package/lib/core/eureka/compression-meter.cjs +165 -0
- package/lib/core/eureka/embedding-classifier.cjs +226 -0
- package/lib/core/eureka/embedding-spine.cjs +563 -0
- package/lib/core/eureka/entity-classifier.cjs +232 -0
- package/lib/core/eureka/entity-extractor.cjs +356 -0
- package/lib/core/eureka/eureka-enable.cjs +228 -0
- package/lib/core/eureka/eureka-offer.cjs +225 -0
- package/lib/core/eureka/eureka-reach-runner.cjs +430 -0
- package/lib/core/eureka/explore-chain.cjs +834 -0
- package/lib/core/eureka/explored-artifact.cjs +456 -0
- package/lib/core/eureka/fts-index-lifecycle.cjs +265 -0
- package/lib/core/eureka/grade-grant-examine.cjs +544 -0
- package/lib/core/eureka/grade-grant.cjs +596 -0
- package/lib/core/eureka/hybrid-retrieve.cjs +256 -0
- package/lib/core/eureka/lateral-engine-adapter.cjs +118 -0
- package/lib/core/eureka/lexical-overlap.cjs +98 -0
- package/lib/core/eureka/online-pattern-query.cjs +142 -0
- package/lib/core/eureka/opportunity-harvest.cjs +752 -0
- package/lib/core/eureka/opportunity-statement.cjs +519 -0
- package/lib/core/eureka/portfolio-dimensions.cjs +255 -0
- package/lib/core/eureka/qualify-opportunity.cjs +607 -0
- package/lib/core/eureka/reasoning-mode.cjs +481 -0
- package/lib/core/eureka/report-html.cjs +368 -0
- package/lib/core/eureka/research-filing.cjs +547 -0
- package/lib/core/eureka/room-native-substrate.cjs +343 -0
- package/lib/core/eureka/tail-quadrant.cjs +177 -0
- package/lib/core/eureka/tri-modal-index.cjs +564 -0
- package/lib/core/eureka/vector-store.cjs +414 -0
- package/lib/core/eureka-critic.cjs +733 -0
- package/lib/core/eureka-deps-resolver.cjs +179 -0
- package/lib/core/expert-genesis.cjs +437 -0
- package/lib/core/expert-library.cjs +303 -0
- package/lib/core/exports-log.cjs +79 -0
- package/lib/core/feynman/ROOM.md +25 -0
- package/lib/core/feynman/dial-memory-renderer.cjs +279 -0
- package/lib/core/feynman/dial-memory-runner.cjs +173 -0
- package/lib/core/feynman/feynman-seed-writer.cjs +187 -0
- package/lib/core/feynman/timeline-renderer.cjs +197 -0
- package/lib/core/feynman/timeline-runner.cjs +281 -0
- package/lib/core/feynman-minto-invariants.cjs +609 -0
- package/lib/core/findings-wirer.cjs +360 -0
- package/lib/core/first-touch-version-stamper.cjs +113 -0
- package/lib/core/folder-memory-async.cjs +424 -0
- package/lib/core/folder-memory-shared.cjs +890 -0
- package/lib/core/folder-memory.cjs +546 -0
- package/lib/core/framework-chain-composer.cjs +583 -0
- package/lib/core/frontmatter-schemas.cjs +468 -0
- package/lib/core/fusion-router.cjs +540 -0
- package/lib/core/futures/causal-cue.cjs +91 -0
- package/lib/core/futures/orchestrator.cjs +1391 -0
- package/lib/core/futures/subsystem-render.cjs +164 -0
- package/lib/core/gate-relevance.cjs +278 -0
- package/lib/core/git-ops.cjs +141 -0
- package/lib/core/graph-backfill.cjs +562 -0
- package/lib/core/graph-candidate-producer.cjs +235 -0
- package/lib/core/graph-derivation.cjs +546 -0
- package/lib/core/graph-derive-classifier.cjs +352 -0
- package/lib/core/graph-ops.cjs +274 -0
- package/lib/core/graph-refine-loop.cjs +194 -0
- package/lib/core/graph-self-heal.cjs +289 -0
- package/lib/core/greeting-intent-detector.cjs +201 -0
- package/lib/core/grill-engine.cjs +459 -0
- package/lib/core/hat-persistence.cjs +274 -0
- package/lib/core/hsi-engine.cjs +439 -0
- package/lib/core/hsi-lsa.cjs +246 -0
- package/lib/core/hsi-spectral.cjs +554 -0
- package/lib/core/hsi-to-graph.test.cjs +168 -0
- package/lib/core/icm-forest.cjs +703 -0
- package/lib/core/ignite-branch-gate.cjs +66 -0
- package/lib/core/index.cjs +60 -0
- package/lib/core/insight-sensors.cjs +1000 -0
- package/lib/core/install-state.cjs +242 -0
- package/lib/core/integration-registry.cjs +232 -0
- package/lib/core/intel-pipeline.cjs +566 -0
- package/lib/core/intelligence-cascade.cjs +852 -0
- package/lib/core/issue-tree.cjs +269 -0
- package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
- package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
- package/lib/core/lazygraph-ops.cjs +1453 -0
- package/lib/core/lens-engine.cjs +434 -0
- package/lib/core/leverage-scan.cjs +218 -0
- package/lib/core/llm-name-suggester.cjs +194 -0
- package/lib/core/llm-name-suggester.test.cjs +132 -0
- package/lib/core/lru-cache.cjs +139 -0
- package/lib/core/mcp-dep-heal.cjs +475 -0
- package/lib/core/mcp-dep-heal.test.cjs +253 -0
- package/lib/core/mcp-profiles.cjs +185 -0
- package/lib/core/meeting-ops.cjs +54 -0
- package/lib/core/memory/governance-candidate-raiser.cjs +205 -0
- package/lib/core/memory/governance-candidate.cjs +95 -0
- package/lib/core/memory/reconcile-memory-runner.cjs +653 -0
- package/lib/core/memory-ops.cjs +641 -0
- package/lib/core/meter/gate-density-reader.cjs +112 -0
- package/lib/core/meter/transfer-reader.cjs +276 -0
- package/lib/core/meter/two-gauge.cjs +245 -0
- package/lib/core/methodology-ingest.cjs +346 -0
- package/lib/core/metrics/larryreach-loop-health.cjs +142 -0
- package/lib/core/migration-snapshot.cjs +287 -0
- package/lib/core/migration-snapshot.test.cjs +174 -0
- package/lib/core/migrations/ROOM.md +33 -0
- package/lib/core/migrations/phase-109-nodes-provenance.cjs +400 -0
- package/lib/core/migrations/phase-109-session-focus.cjs +99 -0
- package/lib/core/migrations/phase-160-nodes-bitemporal.cjs +168 -0
- package/lib/core/migrations/phase-160-nodes-bitemporal.test.cjs +140 -0
- package/lib/core/migrations/phase-162-section-nodes.cjs +156 -0
- package/lib/core/migrations/phase-222-ranker-weights.cjs +62 -0
- package/lib/core/migrations/phase-224-edge-review-status.cjs +87 -0
- package/lib/core/mindrian-brain-shim.test.cjs +221 -0
- package/lib/core/mode-select-sidechannel.cjs +259 -0
- package/lib/core/model-profiles.cjs +246 -0
- package/lib/core/mullins-scaffold.cjs +258 -0
- package/lib/core/mullins-scaffold.test.cjs +128 -0
- package/lib/core/mva-agent-contract.cjs +170 -0
- package/lib/core/mva-agent-contract.test.cjs +169 -0
- package/lib/core/mva-budget.cjs +75 -0
- package/lib/core/mva-budget.test.cjs +68 -0
- package/lib/core/mva-classifier.cjs +392 -0
- package/lib/core/mva-classifier.test.cjs +248 -0
- package/lib/core/mva-deck-builder.cjs +452 -0
- package/lib/core/mva-deck-builder.test.cjs +287 -0
- package/lib/core/mva-detect.smoke.test.cjs +209 -0
- package/lib/core/mva-dispatcher.cjs +110 -0
- package/lib/core/mva-dispatcher.test.cjs +216 -0
- package/lib/core/mva-option-router.cjs +414 -0
- package/lib/core/mva-option-router.test.cjs +483 -0
- package/lib/core/mva-orchestrator.cjs +365 -0
- package/lib/core/mva-orchestrator.test.cjs +916 -0
- package/lib/core/mva-progressive-renderer.cjs +194 -0
- package/lib/core/mva-progressive-renderer.test.cjs +157 -0
- package/lib/core/mva-rule-linter.cjs +458 -0
- package/lib/core/mva-rule-linter.test.cjs +484 -0
- package/lib/core/mva-state.cjs +159 -0
- package/lib/core/mva-telemetry.cjs +58 -0
- package/lib/core/mva-telemetry.test.cjs +196 -0
- package/lib/core/mva-vercel-deploy.cjs +168 -0
- package/lib/core/mva-vercel-deploy.test.cjs +239 -0
- package/lib/core/nav-dial.cjs +440 -0
- package/lib/core/navigation/ROOM.md +15 -0
- package/lib/core/navigation/abstraction-claim.cjs +185 -0
- package/lib/core/navigation/calibration-gate.cjs +284 -0
- package/lib/core/navigation/calibration-log.cjs +141 -0
- package/lib/core/navigation/confirm-node.cjs +73 -0
- package/lib/core/navigation/dashboard-helpers.cjs +145 -0
- package/lib/core/navigation/edges.cjs +1150 -0
- package/lib/core/navigation/evidence-claim.cjs +186 -0
- package/lib/core/navigation/explanation.cjs +48 -0
- package/lib/core/navigation/file-evidence-readback.cjs +242 -0
- package/lib/core/navigation/focus.cjs +155 -0
- package/lib/core/navigation/get-domains-for-trends.cjs +277 -0
- package/lib/core/navigation/governance.cjs +101 -0
- package/lib/core/navigation/grant-rubric.cjs +218 -0
- package/lib/core/navigation/graph-export.cjs +325 -0
- package/lib/core/navigation/ingestion.cjs +109 -0
- package/lib/core/navigation/insights-stale.test.cjs +127 -0
- package/lib/core/navigation/insights.cjs +574 -0
- package/lib/core/navigation/lens-nodes.cjs +315 -0
- package/lib/core/navigation/memory-artifacts.cjs +437 -0
- package/lib/core/navigation/memory-cortex-packet.cjs +274 -0
- package/lib/core/navigation/memory-events.cjs +811 -0
- package/lib/core/navigation/neighborhood.cjs +79 -0
- package/lib/core/navigation/packet.cjs +420 -0
- package/lib/core/navigation/planning-artifacts.cjs +219 -0
- package/lib/core/navigation/projections.cjs +295 -0
- package/lib/core/navigation/ranker-weights.cjs +133 -0
- package/lib/core/navigation/reasoning-write.cjs +211 -0
- package/lib/core/navigation/reconcile-guard.cjs +98 -0
- package/lib/core/navigation/reified-claim.cjs +287 -0
- package/lib/core/navigation/research-preflight.cjs +156 -0
- package/lib/core/navigation/room-birth.cjs +1213 -0
- package/lib/core/navigation/room-context.cjs +380 -0
- package/lib/core/navigation/room-home.cjs +142 -0
- package/lib/core/navigation/spine-events.cjs +548 -0
- package/lib/core/navigation/synthetic-expert.cjs +177 -0
- package/lib/core/navigation/transitions.cjs +253 -0
- package/lib/core/navigation/typed-claim.cjs +208 -0
- package/lib/core/navigation/typed-domain.cjs +249 -0
- package/lib/core/navigation/typed-entity.cjs +236 -0
- package/lib/core/navigation/typed-frame.cjs +257 -0
- package/lib/core/navigation/typed-open-question.cjs +130 -0
- package/lib/core/navigation/typed-opportunity.cjs +418 -0
- package/lib/core/navigation-engine-offer.cjs +776 -0
- package/lib/core/navigation-engine-shared.cjs +256 -0
- package/lib/core/navigation-engine.cjs +1696 -0
- package/lib/core/navigation.cjs +686 -0
- package/lib/core/nl-graph-queries.cjs +164 -0
- package/lib/core/node-insert-epistemic.test.cjs +212 -0
- package/lib/core/node-insert-overrides.test.cjs +273 -0
- package/lib/core/node-insert.cjs +274 -0
- package/lib/core/npm-cli-resolve.cjs +151 -0
- package/lib/core/npm-cli-resolve.test.cjs +153 -0
- package/lib/core/npm-install-lock.cjs +326 -0
- package/lib/core/npm-install-lock.test.cjs +379 -0
- package/lib/core/numeric/sklearn-stopwords-v1.json +325 -0
- package/lib/core/numeric/svd.cjs +377 -0
- package/lib/core/numeric/tfidf.cjs +241 -0
- package/lib/core/offer-presenter.cjs +406 -0
- package/lib/core/opportunity-extractor.cjs +183 -0
- package/lib/core/opportunity-ops.cjs +1423 -0
- package/lib/core/orchestration-candidate-lift.cjs +284 -0
- package/lib/core/part8-egress-guard.cjs +563 -0
- package/lib/core/part8-egress-guard.test.cjs +194 -0
- package/lib/core/part8-egress-ontology.cjs +174 -0
- package/lib/core/part8-egress-ontology.test.cjs +133 -0
- package/lib/core/persona-ops.cjs +692 -0
- package/lib/core/persona-override.cjs +327 -0
- package/lib/core/persona-taxonomy.cjs +328 -0
- package/lib/core/pinecone-inference.cjs +176 -0
- package/lib/core/pitch-feedback-schemas.cjs +303 -0
- package/lib/core/planning/artifact-brain-packet.cjs +212 -0
- package/lib/core/planning/reconcile-runner.cjs +347 -0
- package/lib/core/platform-gates.cjs +120 -0
- package/lib/core/platform.cjs +257 -0
- package/lib/core/proactive-intelligence.cjs +528 -0
- package/lib/core/problem-type-router.cjs +315 -0
- package/lib/core/publish-needs-default-lane.cjs +110 -0
- package/lib/core/ralph-loop-gate.cjs +48 -0
- package/lib/core/reader/ab-harness.cjs +177 -0
- package/lib/core/reader/decide-projection-reader.cjs +358 -0
- package/lib/core/reasoning-ops.cjs +639 -0
- package/lib/core/recipe-maps.cjs +442 -0
- package/lib/core/recovery/case-file.cjs +358 -0
- package/lib/core/recovery/controller.cjs +1008 -0
- package/lib/core/recovery/dispatcher.cjs +533 -0
- package/lib/core/recovery/result-semantics.cjs +488 -0
- package/lib/core/recovery/stage-envelope.cjs +338 -0
- package/lib/core/refusal-messaging.cjs +569 -0
- package/lib/core/refusal-messaging.test.cjs +220 -0
- package/lib/core/repo-version.cjs +134 -0
- package/lib/core/research-cache.cjs +165 -0
- package/lib/core/research-cache.test.cjs +137 -0
- package/lib/core/research-context-extractor.cjs +283 -0
- package/lib/core/research-corpus.cjs +814 -0
- package/lib/core/research-corpus.test.cjs +280 -0
- package/lib/core/research-filing-selector.cjs +189 -0
- package/lib/core/resolve-active-room.cjs +602 -0
- package/lib/core/resolve-brain-key.cjs +273 -0
- package/lib/core/resolve-umbilical-target.cjs +288 -0
- package/lib/core/resolve-vercel-key.cjs +107 -0
- package/lib/core/resolve-vercel-key.test.cjs +137 -0
- package/lib/core/reverse-salient-persona-suffix.cjs +115 -0
- package/lib/core/room-auto-create.cjs +318 -0
- package/lib/core/room-auto-create.test.cjs +198 -0
- package/lib/core/room-chooser.cjs +244 -0
- package/lib/core/room-classifier-strict-mode.cjs +235 -0
- package/lib/core/room-db.cjs +348 -0
- package/lib/core/room-discard-cascade.cjs +238 -0
- package/lib/core/room-discard-cascade.test.cjs +135 -0
- package/lib/core/room-name-validator.cjs +132 -0
- package/lib/core/room-name-validator.test.cjs +156 -0
- package/lib/core/room-naming-selector.cjs +357 -0
- package/lib/core/room-naming-selector.test.cjs +277 -0
- package/lib/core/room-open.cjs +259 -0
- package/lib/core/room-ops-async.cjs +92 -0
- package/lib/core/room-ops-shared.cjs +64 -0
- package/lib/core/room-ops-sync.cjs +70 -0
- package/lib/core/room-ops.cjs +32 -0
- package/lib/core/room-receipt-emit.cjs +63 -0
- package/lib/core/room-root.cjs +93 -0
- package/lib/core/room-skeleton-scaffold.cjs +669 -0
- package/lib/core/room-skeleton-scaffold.test.cjs +296 -0
- package/lib/core/room-type-detector.cjs +386 -0
- package/lib/core/rs-backend-dispatch.cjs +64 -0
- package/lib/core/rs-brain-substrate-prompts.cjs +129 -0
- package/lib/core/rs-brain-substrate.cjs +570 -0
- package/lib/core/rs-breakthrough-scorer.cjs +255 -0
- package/lib/core/rs-canon-violations.cjs +82 -0
- package/lib/core/rs-chain-feeder.cjs +381 -0
- package/lib/core/rs-commercial-assessor.cjs +280 -0
- package/lib/core/rs-corpus-quality-gate.cjs +62 -0
- package/lib/core/rs-differential-scorer.cjs +629 -0
- package/lib/core/rs-domain-analyzer.cjs +385 -0
- package/lib/core/rs-egress-prompts.cjs +113 -0
- package/lib/core/rs-egress-telemetry.cjs +225 -0
- package/lib/core/rs-egress-violations.cjs +53 -0
- package/lib/core/rs-engine.cjs +597 -0
- package/lib/core/rs-expert-brain-projection.cjs +280 -0
- package/lib/core/rs-expert-mapper.cjs +467 -0
- package/lib/core/rs-fetcher-academic.cjs +697 -0
- package/lib/core/rs-fetcher-experts.cjs +314 -0
- package/lib/core/rs-fetcher-industry.cjs +731 -0
- package/lib/core/rs-fetcher-patents.cjs +564 -0
- package/lib/core/rs-innovation-classifier.cjs +194 -0
- package/lib/core/rs-math.cjs +458 -0
- package/lib/core/rs-mind-map.cjs +656 -0
- package/lib/core/rs-neo4j-writer.cjs +388 -0
- package/lib/core/rs-nl-to-query.cjs +435 -0
- package/lib/core/rs-pinecone-bridge.cjs +344 -0
- package/lib/core/rs-preprocessor.cjs +350 -0
- package/lib/core/rs-query-matrix.cjs +316 -0
- package/lib/core/rs-query-to-text.cjs +438 -0
- package/lib/core/rs-sqlite-mirror.cjs +495 -0
- package/lib/core/rs-thesis-generator.cjs +188 -0
- package/lib/core/rs_cache.py +635 -0
- package/lib/core/rs_corpus.py +562 -0
- package/lib/core/rs_corpus_exclude.py +62 -0
- package/lib/core/rs_hybrid.py +589 -0
- package/lib/core/rs_math.py +287 -0
- package/lib/core/rs_rooms.py +196 -0
- package/lib/core/salient-governance.cjs +315 -0
- package/lib/core/scheduled-scanner.cjs +658 -0
- package/lib/core/scratchpad-ops.cjs +316 -0
- package/lib/core/seam-liveness.cjs +191 -0
- package/lib/core/seam-liveness.test.cjs +177 -0
- package/lib/core/section-8-trace-schema.cjs +138 -0
- package/lib/core/section-registry.cjs +167 -0
- package/lib/core/security/agentshield-adapters.test.cjs +104 -0
- package/lib/core/security/agentshield-run.cjs +343 -0
- package/lib/core/security/agentshield-scanner.cjs +314 -0
- package/lib/core/security/agentshield-scanner.test.cjs +259 -0
- package/lib/core/sensors/hat-scoping-table.cjs +103 -0
- package/lib/core/sensors/sensor-circularity.cjs +278 -0
- package/lib/core/sensors/sensor-content-relevance.cjs +407 -0
- package/lib/core/sensors/sensor-diffusion-adoption.cjs +230 -0
- package/lib/core/sensors/sensor-eureka.cjs +208 -0
- package/lib/core/sensors/sensor-expert-skill.cjs +293 -0
- package/lib/core/sensors/sensor-external-fact.cjs +184 -0
- package/lib/core/sensors/sensor-gate-approach.cjs +104 -0
- package/lib/core/sensors/sensor-jtbd-reweight.cjs +141 -0
- package/lib/core/sensors/sensor-lagging-component.cjs +115 -0
- package/lib/core/sensors/sensor-memory-cortex.cjs +111 -0
- package/lib/core/sensors/sensor-methodology-decision.cjs +131 -0
- package/lib/core/sensors/sensor-opportunity-harvest.cjs +195 -0
- package/lib/core/sensors/sensor-perspective-lock.cjs +174 -0
- package/lib/core/sensors/sensor-priority.cjs +183 -0
- package/lib/core/sensors/sensor-recency.cjs +151 -0
- package/lib/core/sensors/sensor-roadmap-type.cjs +421 -0
- package/lib/core/sensors/sensor-room-pick.cjs +238 -0
- package/lib/core/sensors/sensor-show-share.cjs +215 -0
- package/lib/core/sensors/sensor-temporal-blindness.cjs +123 -0
- package/lib/core/sensors/sensor-types.cjs +294 -0
- package/lib/core/sensors/sensor-url-ingest.cjs +234 -0
- package/lib/core/session-binding.cjs +208 -0
- package/lib/core/session-presence.cjs +404 -0
- package/lib/core/session-register.cjs +138 -0
- package/lib/core/session-state.cjs +144 -0
- package/lib/core/shallow-doc-parser.cjs +353 -0
- package/lib/core/shallow-doc-parser.test.cjs +226 -0
- package/lib/core/skill-activation-router.cjs +284 -0
- package/lib/core/skillopt-schemas.cjs +509 -0
- package/lib/core/stale-copy-scanner.cjs +190 -0
- package/lib/core/stance-state.cjs +153 -0
- package/lib/core/state-aware-router.cjs +78 -0
- package/lib/core/state-ops.cjs +80 -0
- package/lib/core/state-version.cjs +350 -0
- package/lib/core/statusline-cache.cjs +266 -0
- package/lib/core/statusline-liveness-gate.cjs +105 -0
- package/lib/core/surface-fence.cjs +127 -0
- package/lib/core/synthesizers/comparison-matrix.cjs +82 -0
- package/lib/core/synthesizers/convergence-map.cjs +107 -0
- package/lib/core/synthesizers/domain-hierarchy.cjs +138 -0
- package/lib/core/synthesizers/source-comparison.cjs +56 -0
- package/lib/core/synthesizers/tension-map.cjs +119 -0
- package/lib/core/synthetic-expert-behavior-gate.cjs +99 -0
- package/lib/core/synthetic-expert-construction-gate.cjs +170 -0
- package/lib/core/telemetry/schema.cjs +168 -0
- package/lib/core/telemetry/schema.test.cjs +124 -0
- package/lib/core/telemetry/validator.cjs +200 -0
- package/lib/core/telemetry/validator.test.cjs +188 -0
- package/lib/core/telemetry/writer.cjs +141 -0
- package/lib/core/telemetry/writer.test.cjs +331 -0
- package/lib/core/temporal/date-sync-gate.cjs +256 -0
- package/lib/core/temporal/date-sync-gate.test.cjs +191 -0
- package/lib/core/temporal/dual-stamp.cjs +172 -0
- package/lib/core/temporal/dual-stamp.test.cjs +172 -0
- package/lib/core/temporal/point-in-time.cjs +76 -0
- package/lib/core/temporal/point-in-time.test.cjs +169 -0
- package/lib/core/temporal/recency-decay.cjs +119 -0
- package/lib/core/temporal/recency-decay.test.cjs +140 -0
- package/lib/core/temporal/reference-now.cjs +281 -0
- package/lib/core/temporal/reference-now.test.cjs +225 -0
- package/lib/core/temporal/resolve-relative-time.cjs +116 -0
- package/lib/core/temporal/resolve-relative-time.test.cjs +138 -0
- package/lib/core/temporal/supersession.cjs +250 -0
- package/lib/core/temporal/supersession.test.cjs +103 -0
- package/lib/core/terminal-capability.cjs +88 -0
- package/lib/core/token-estimator.cjs +348 -0
- package/lib/core/tone-filter.cjs +147 -0
- package/lib/core/trending-to-absurd/orchestrator.cjs +341 -0
- package/lib/core/trending-to-absurd/stage7-roadmap.cjs +317 -0
- package/lib/core/trending-to-absurd/variance.cjs +169 -0
- package/lib/core/unknowns/bandit.cjs +332 -0
- package/lib/core/unknowns/corpus-adapter.cjs +327 -0
- package/lib/core/unknowns/dsp.cjs +356 -0
- package/lib/core/unknowns/edge-writer.cjs +211 -0
- package/lib/core/unknowns/iface.cjs +212 -0
- package/lib/core/unknowns/orchestrator.cjs +375 -0
- package/lib/core/unknowns/pattern-miner.cjs +214 -0
- package/lib/core/unknowns/rumsfeld-matrix.cjs +155 -0
- package/lib/core/unknowns/verdict.cjs +254 -0
- package/lib/core/update-path.cjs +57 -0
- package/lib/core/url-ingest.cjs +568 -0
- package/lib/core/user-archetype.cjs +284 -0
- package/lib/core/user-md-ops.cjs +578 -0
- package/lib/core/venture-shape-nudge.cjs +178 -0
- package/lib/core/venture-shape-nudge.test.cjs +266 -0
- package/lib/core/verb-reach-affinity.cjs +299 -0
- package/lib/core/visual-ops.cjs +692 -0
- package/lib/core/voice-transition-detector.cjs +125 -0
- package/lib/core/watched-sources.cjs +237 -0
- package/lib/core/write-lock.cjs +149 -0
- package/lib/graph/canvas-graph.js +467 -0
- package/lib/graph/constellation-config.cjs +299 -0
- package/lib/graph/graph-detail-panel.js +165 -0
- package/lib/hmi/ROOM.md +47 -0
- package/lib/hmi/across-session-memory.cjs +669 -0
- package/lib/hmi/agentshield-drift-gate.cjs +142 -0
- package/lib/hmi/brain-review-packet.cjs +221 -0
- package/lib/hmi/cortex-reach-adapter.cjs +271 -0
- package/lib/hmi/cross-room-memory.cjs +618 -0
- package/lib/hmi/decoy-tier.cjs +395 -0
- package/lib/hmi/depth-state.cjs +164 -0
- package/lib/hmi/dial-label-composer.cjs +410 -0
- package/lib/hmi/dial-presenter.cjs +508 -0
- package/lib/hmi/dial-reach-orchestrator.cjs +377 -0
- package/lib/hmi/dial-selector.cjs +239 -0
- package/lib/hmi/f1-pick-capture-cli.cjs +131 -0
- package/lib/hmi/f3-depth-capture-cli.cjs +77 -0
- package/lib/hmi/f4-scope-capture-cli.cjs +86 -0
- package/lib/hmi/f8-action-capture-cli.cjs +145 -0
- package/lib/hmi/f8-capture.test.cjs +77 -0
- package/lib/hmi/f9-ordered-capture-cli.cjs +138 -0
- package/lib/hmi/harvest-scope-state.cjs +202 -0
- package/lib/hmi/hats-persona-cache.cjs +142 -0
- package/lib/hmi/jtbd-classifier.cjs +219 -0
- package/lib/hmi/jtbd-state.cjs +263 -0
- package/lib/hmi/jtbd-taxonomy.json +402 -0
- package/lib/hmi/mindrian-ascii-logo.cjs +96 -0
- package/lib/hmi/part8-egress-gate.cjs +149 -0
- package/lib/hmi/reach-component-map.json +47 -0
- package/lib/hmi/reach-relevance-gate.cjs +147 -0
- package/lib/hmi/selector-dispatcher.cjs +1201 -0
- package/lib/hmi/selector-dispatcher.test.cjs +141 -0
- package/lib/hmi/selector-telemetry.cjs +269 -0
- package/lib/hmi/shape-f0-renderer.cjs +145 -0
- package/lib/hmi/shape-f1-fallback.cjs +80 -0
- package/lib/hmi/shape-f1-renderer.cjs +219 -0
- package/lib/hmi/shape-f2-renderer.cjs +132 -0
- package/lib/hmi/shape-f3-parity.test.cjs +64 -0
- package/lib/hmi/shape-f3-renderer.cjs +66 -0
- package/lib/hmi/shape-f4-parity.test.cjs +72 -0
- package/lib/hmi/shape-f4-renderer.cjs +72 -0
- package/lib/hmi/shape-f5-renderer.cjs +155 -0
- package/lib/hmi/shape-f6-plan-review-renderer.cjs +324 -0
- package/lib/hmi/shape-f6-renderer.cjs +144 -0
- package/lib/hmi/shape-f7-breakthrough-renderer.cjs +234 -0
- package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
- package/lib/hmi/shape-f8-renderer.cjs +150 -0
- package/lib/hmi/shape-f8-renderer.test.cjs +70 -0
- package/lib/hmi/shape-f9-renderer.cjs +187 -0
- package/lib/hmi/shape-f9-renderer.test.cjs +80 -0
- package/lib/hmi/shape-g-renderer.cjs +219 -0
- package/lib/hmi/shape-h-renderer.cjs +222 -0
- package/lib/hmi/tier-check.cjs +63 -0
- package/lib/hmi/turn-text.cjs +268 -0
- package/lib/hmi/voice-color-mark.cjs +318 -0
- package/lib/hmi/voice-style-log.cjs +276 -0
- package/lib/import/PRECONDITIONS.md +41 -0
- package/lib/import/branding.cjs +210 -0
- package/lib/import/branding.test.cjs +235 -0
- package/lib/import/classifications-sync.cjs +104 -0
- package/lib/import/classifications-sync.test.cjs +129 -0
- package/lib/import/enricher.cjs +296 -0
- package/lib/import/enricher.test.cjs +273 -0
- package/lib/import/integration.test.cjs +376 -0
- package/lib/import/manifest.cjs +129 -0
- package/lib/import/manifest.schema.json +185 -0
- package/lib/import/manifest.test.cjs +123 -0
- package/lib/import/meeting-detector.cjs +92 -0
- package/lib/import/meeting-detector.test.cjs +100 -0
- package/lib/import/person-detector.cjs +229 -0
- package/lib/import/person-detector.test.cjs +149 -0
- package/lib/import/report.cjs +186 -0
- package/lib/import/report.test.cjs +186 -0
- package/lib/import/room-md-scaffolder.cjs +49 -0
- package/lib/import/router.cjs +224 -0
- package/lib/import/router.test.cjs +356 -0
- package/lib/import/run-all-tests.cjs +36 -0
- package/lib/import/smoke-test.cjs +213 -0
- package/lib/import/smoke-test.test.cjs +148 -0
- package/lib/import/undo.test.cjs +199 -0
- package/lib/import/vault-scanner.cjs +105 -0
- package/lib/import/vault-scanner.test.cjs +67 -0
- package/lib/lens-engine/correlation-resolver.cjs +174 -0
- package/lib/lens-engine/source-lens-driver.cjs +736 -0
- package/lib/mcp/adapter-client.cjs +103 -0
- package/lib/mcp/app-html/dashboard.html +316 -0
- package/lib/mcp/app-html/graph.html +428 -0
- package/lib/mcp/app-html/mindrian-platform.html +1841 -0
- package/lib/mcp/app-html/wiki.html +383 -0
- package/lib/mcp/app-views.cjs +322 -0
- package/lib/mcp/brain-composition-census.cjs +184 -0
- package/lib/mcp/brain-router.cjs +551 -0
- package/lib/mcp/capability-registry.cjs +62 -0
- package/lib/mcp/contract-version.cjs +59 -0
- package/lib/mcp/daemon-lifecycle.cjs +324 -0
- package/lib/mcp/gate-dedup.cjs +120 -0
- package/lib/mcp/gate-ledger.cjs +145 -0
- package/lib/mcp/gate-render.cjs +483 -0
- package/lib/mcp/hook-adapter-audit.cjs +199 -0
- package/lib/mcp/larry-context.cjs +42 -0
- package/lib/mcp/mcp-first-flag.cjs +147 -0
- package/lib/mcp/no-instructions.test.cjs +270 -0
- package/lib/mcp/pipeline-state.cjs +424 -0
- package/lib/mcp/prompts.cjs +421 -0
- package/lib/mcp/register-core-tools.cjs +78 -0
- package/lib/mcp/resources.cjs +359 -0
- package/lib/mcp/runtime-instructions.cjs +38 -0
- package/lib/mcp/session-catchup.cjs +349 -0
- package/lib/mcp/session-registry.cjs +113 -0
- package/lib/mcp/session-room.cjs +124 -0
- package/lib/mcp/sse-event-bus.cjs +98 -0
- package/lib/mcp/stop-gate-handler.cjs +589 -0
- package/lib/mcp/surface-detect.cjs +186 -0
- package/lib/mcp/tool-router.cjs +2115 -0
- package/lib/mcp/tools/chain.cjs +674 -0
- package/lib/mcp/tools/claim.cjs +180 -0
- package/lib/mcp/tools/context.cjs +92 -0
- package/lib/mcp/tools/dual-path.cjs +79 -0
- package/lib/mcp/tools/gate.cjs +392 -0
- package/lib/mcp/tools/graph-reason.cjs +130 -0
- package/lib/mcp/tools/graph.cjs +321 -0
- package/lib/mcp/tools/identity.cjs +174 -0
- package/lib/mcp/tools/room.cjs +449 -0
- package/lib/mcp/tools/sensors.cjs +450 -0
- package/lib/mcp/tools/status.cjs +183 -0
- package/lib/mcp/tools/stop-gate.cjs +103 -0
- package/lib/mcp/tools/views.cjs +382 -0
- package/lib/mcp/tree-watcher.cjs +199 -0
- package/lib/memory/.mindrian/auto-explore-mat-test-001.json +11 -0
- package/lib/memory/aaak-compress.cjs +403 -0
- package/lib/memory/aaak-compress.test.cjs +288 -0
- package/lib/memory/async-artifact-auto-commit.test.cjs +223 -0
- package/lib/memory/bearer-token.test.cjs +315 -0
- package/lib/memory/body-shape-coverage.test.cjs +268 -0
- package/lib/memory/brain-cache-lru.test.cjs +259 -0
- package/lib/memory/brain-client-query-shape.test.cjs +160 -0
- package/lib/memory/brain-cypher-chain-slice.test.cjs +368 -0
- package/lib/memory/brain-derivation-graceful-degradation.test.cjs +1019 -0
- package/lib/memory/brain-derivation-queue.test.cjs +553 -0
- package/lib/memory/brain-derivation.test.cjs +639 -0
- package/lib/memory/brain-derive-command.test.cjs +534 -0
- package/lib/memory/brain-derive-curation.test.cjs +243 -0
- package/lib/memory/brain-md-invariants-validator.test.cjs +704 -0
- package/lib/memory/brain-md-schema.test.cjs +467 -0
- package/lib/memory/brain-md-staleness.test.cjs +525 -0
- package/lib/memory/brain-server-resolution.test.cjs +314 -0
- package/lib/memory/brain-suggestion-template.test.cjs +200 -0
- package/lib/memory/chain-recommender-canonical.test.cjs +208 -0
- package/lib/memory/chain-recommender.test.cjs +233 -0
- package/lib/memory/chat-context.test.cjs +128 -0
- package/lib/memory/command-registry.test.cjs +220 -0
- package/lib/memory/connector-registry.test.cjs +94 -0
- package/lib/memory/correlation-label-index.test.cjs +119 -0
- package/lib/memory/correlation.test.cjs +253 -0
- package/lib/memory/cross-room-aggregator.test.cjs +909 -0
- package/lib/memory/curation-132-03-dedup-held-rename.test.cjs +251 -0
- package/lib/memory/curation-132-05-pseudonymize.test.cjs +205 -0
- package/lib/memory/curation-batch.test.cjs +213 -0
- package/lib/memory/dashboard-server.test.cjs +256 -0
- package/lib/memory/debouncer-drain-at-prompt.test.cjs +389 -0
- package/lib/memory/decision-capture.test.cjs +632 -0
- package/lib/memory/decision-capture.worker.cjs +70 -0
- package/lib/memory/doctor-deprecation-surface.test.cjs +188 -0
- package/lib/memory/dual-graph-health.test.cjs +485 -0
- package/lib/memory/explain-decision-command.test.cjs +521 -0
- package/lib/memory/explain-decision-footer.test.cjs +316 -0
- package/lib/memory/explored-materials-store.cjs +392 -0
- package/lib/memory/f-selector-ranker.test.cjs +593 -0
- package/lib/memory/feynman-minto-guardian.test.cjs +863 -0
- package/lib/memory/feynman-minto-invariants.test.cjs +554 -0
- package/lib/memory/feynman-prompts-drift.test.cjs +144 -0
- package/lib/memory/feynman-prompts.cjs +151 -0
- package/lib/memory/feynman-prompts.test.cjs +96 -0
- package/lib/memory/first-touch-version.test.cjs +198 -0
- package/lib/memory/folder-memory-quadruple.test.cjs +548 -0
- package/lib/memory/folder-memory.test.cjs +503 -0
- package/lib/memory/framework-chain-composer.test.cjs +549 -0
- package/lib/memory/frontmatter-schema-validator.test.cjs +344 -0
- package/lib/memory/guardian-onstop-reaches-user.test.cjs +396 -0
- package/lib/memory/heal-command.test.cjs +604 -0
- package/lib/memory/help-coverage.test.cjs +108 -0
- package/lib/memory/help-renderer.test.cjs +145 -0
- package/lib/memory/huji-run-one-async-parity.test.cjs +242 -0
- package/lib/memory/hypergraph-event-schema.test.cjs +116 -0
- package/lib/memory/index-artifact-transaction.test.cjs +333 -0
- package/lib/memory/lazygraph-rs-discoveries-view.test.cjs +122 -0
- package/lib/memory/local-chain-recommender.test.cjs +172 -0
- package/lib/memory/mcp-input-validation.test.cjs +240 -0
- package/lib/memory/mcp-server-brain-deps.test.cjs +270 -0
- package/lib/memory/mcp-stack-fallback.test.cjs +433 -0
- package/lib/memory/minto-debounce-consumer-census.test.cjs +567 -0
- package/lib/memory/minto-debouncer.test.cjs +407 -0
- package/lib/memory/minto-debouncer.worker.cjs +46 -0
- package/lib/memory/minto-migration-v88.test.cjs +265 -0
- package/lib/memory/minto-schema-v88.test.cjs +390 -0
- package/lib/memory/mos-status-renderer.test.cjs +631 -0
- package/lib/memory/narrative-schema.cjs +376 -0
- package/lib/memory/narrative-schema.test.cjs +209 -0
- package/lib/memory/nav-dial.test.cjs +414 -0
- package/lib/memory/navigation-engine-core.test.cjs +712 -0
- package/lib/memory/navigation-engine-offer.test.cjs +404 -0
- package/lib/memory/navigation-hook-resolver.test.cjs +177 -0
- package/lib/memory/navigation-invariants.test.cjs +483 -0
- package/lib/memory/navigation-projections.test.cjs +241 -0
- package/lib/memory/navigation-write-edge.test.cjs +206 -0
- package/lib/memory/offer-closer.test.cjs +258 -0
- package/lib/memory/offer-presenter.test.cjs +554 -0
- package/lib/memory/on-stop-snapshot.test.cjs +404 -0
- package/lib/memory/orchestration-projection.test.cjs +706 -0
- package/lib/memory/packet-chain-hint.test.cjs +407 -0
- package/lib/memory/packet-schema-validation.test.cjs +317 -0
- package/lib/memory/palette-consistency.test.cjs +127 -0
- package/lib/memory/pending-tension-store.cjs +453 -0
- package/lib/memory/per-command-jtbd-derivation.test.cjs +130 -0
- package/lib/memory/per-command-teaching.test.cjs +110 -0
- package/lib/memory/post-compact-reinjection.test.cjs +854 -0
- package/lib/memory/post-write-triple.test.cjs +317 -0
- package/lib/memory/pre-compact-snapshot.test.cjs +495 -0
- package/lib/memory/precommit-real-commit.test.cjs +301 -0
- package/lib/memory/problem-type-router.test.cjs +656 -0
- package/lib/memory/query-efficiency-telemetry.test.cjs +612 -0
- package/lib/memory/recompile-room-references.test.cjs +392 -0
- package/lib/memory/recompile-room-references.worker.cjs +42 -0
- package/lib/memory/record-decision-dual-write.test.cjs +454 -0
- package/lib/memory/render-v2-disposition.test.cjs +199 -0
- package/lib/memory/room-classifier-strict-mode.test.cjs +430 -0
- package/lib/memory/room-minto-hook.test.cjs +398 -0
- package/lib/memory/rs-discovery-engine.test.cjs +323 -0
- package/lib/memory/run-feynman-tests.cjs +2101 -0
- package/lib/memory/security-trifecta.test.cjs +329 -0
- package/lib/memory/selector-alias-map.test.cjs +172 -0
- package/lib/memory/selector-decisions.test.cjs +417 -0
- package/lib/memory/selector-miss.test.cjs +290 -0
- package/lib/memory/session-start-brain-staleness.test.cjs +363 -0
- package/lib/memory/session-start-triple-injection.test.cjs +514 -0
- package/lib/memory/sessionstart-banner-formatter.cjs +318 -0
- package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
- package/lib/memory/sessionstart-minto-banner.test.cjs +373 -0
- package/lib/memory/skill-activation-router.test.cjs +465 -0
- package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
- package/lib/memory/soft-alias.test.cjs +144 -0
- package/lib/memory/spine-events-correlation.test.cjs +198 -0
- package/lib/memory/stale-copy-scanner.test.cjs +294 -0
- package/lib/memory/stamp-artifact-write.test.cjs +304 -0
- package/lib/memory/state-aware-router.test.cjs +90 -0
- package/lib/memory/statusline-active-room-write.test.cjs +245 -0
- package/lib/memory/statusline-active-room.test.cjs +315 -0
- package/lib/memory/statusline-minto-segment.test.cjs +292 -0
- package/lib/memory/statusline-two-row.test.cjs +338 -0
- package/lib/memory/suggest-next-workflow.test.cjs +176 -0
- package/lib/memory/sync-async-entry-points.test.cjs +204 -0
- package/lib/memory/terminal-capability.test.cjs +155 -0
- package/lib/memory/test-bridge-writer-enhanced.cjs +452 -0
- package/lib/memory/test-rs-brain-substrate-shape.cjs +529 -0
- package/lib/memory/test-rs-brain-substrate.cjs +636 -0
- package/lib/memory/test-rs-breakthrough-scorer.cjs +375 -0
- package/lib/memory/test-rs-canon-violations.cjs +218 -0
- package/lib/memory/test-rs-chain-feeder-core.cjs +344 -0
- package/lib/memory/test-rs-chain-feeder-skill-spawn.cjs +297 -0
- package/lib/memory/test-rs-commercial-assessor.cjs +385 -0
- package/lib/memory/test-rs-differential-scorer.cjs +480 -0
- package/lib/memory/test-rs-discovery-engine.cjs +648 -0
- package/lib/memory/test-rs-domain-analyzer.cjs +492 -0
- package/lib/memory/test-rs-egress-primitives.cjs +420 -0
- package/lib/memory/test-rs-expert-mapper.cjs +547 -0
- package/lib/memory/test-rs-explain-command.cjs +443 -0
- package/lib/memory/test-rs-fetcher-academic.cjs +848 -0
- package/lib/memory/test-rs-fetcher-experts.cjs +496 -0
- package/lib/memory/test-rs-fetcher-industry.cjs +702 -0
- package/lib/memory/test-rs-fetcher-patents.cjs +674 -0
- package/lib/memory/test-rs-innovation-classifier.cjs +301 -0
- package/lib/memory/test-rs-mind-map.cjs +646 -0
- package/lib/memory/test-rs-neo4j-writer.cjs +518 -0
- package/lib/memory/test-rs-nl-to-query.cjs +449 -0
- package/lib/memory/test-rs-pinecone-bridge.cjs +282 -0
- package/lib/memory/test-rs-preprocessor.cjs +433 -0
- package/lib/memory/test-rs-query-matrix.cjs +391 -0
- package/lib/memory/test-rs-query-to-text.cjs +551 -0
- package/lib/memory/test-rs-sqlite-mirror.cjs +649 -0
- package/lib/memory/test-rs-thesis-generator.cjs +360 -0
- package/lib/memory/triple-context-formatter.cjs +473 -0
- package/lib/memory/triple-context-formatter.test.cjs +442 -0
- package/lib/memory/user-md-persona.test.cjs +565 -0
- package/lib/memory/userpromptsubmit-integration.test.cjs +787 -0
- package/lib/memory/validators/README.md +157 -0
- package/lib/memory/validators/brain-md-invariants.cjs +475 -0
- package/lib/memory/validators/brain-substrate-invariants.cjs +285 -0
- package/lib/memory/validators/external-academic-invariants.cjs +249 -0
- package/lib/memory/validators/external-industry-invariants.cjs +271 -0
- package/lib/memory/validators/external-patents-invariants.cjs +266 -0
- package/lib/memory/validators/minto-invariants.cjs +62 -0
- package/lib/memory/validators/navigation-invariants.cjs +340 -0
- package/lib/memory/validators/queue-health.cjs +95 -0
- package/lib/memory/validators/snapshot-integrity.cjs +129 -0
- package/lib/memory/validators/stale-lifecycle.cjs +116 -0
- package/lib/memory/vault-section-minto-generator-atomic.test.cjs +556 -0
- package/lib/memory/vault-section-minto-generator-atomic.worker.cjs +73 -0
- package/lib/memory/workflow-layer-e2e.test.cjs +262 -0
- package/lib/memory/write-lock-atomic.test.cjs +137 -0
- package/lib/memory/write-lock-atomic.worker.cjs +55 -0
- package/lib/parity/check-parity.cjs +83 -0
- package/lib/presentation/presentation-server.cjs +101 -0
- package/lib/presentation/presentation-watcher.cjs +123 -0
- package/lib/quickview/hub-server.cjs +719 -0
- package/lib/quickview/server.cjs +533 -0
- package/lib/render/JTBD-PALETTES.md +145 -0
- package/lib/render/ROOM.md +111 -0
- package/lib/render/render-v2.cjs +532 -0
- package/lib/render/render-v2.test.cjs +267 -0
- package/lib/render/render.cjs +65 -0
- package/lib/sessionstart/budget-compressor.cjs +130 -0
- package/lib/sessionstart/contributor-interface.cjs +134 -0
- package/lib/sessionstart/contributor-isolator.cjs +128 -0
- package/lib/sessionstart/precedence-ladder.cjs +47 -0
- package/lib/state/ROOM.md +46 -0
- package/lib/state/state-md-parser.cjs +215 -0
- package/lib/statusline/ROOM.md +38 -0
- package/lib/statusline/banner-suppression.cjs +50 -0
- package/lib/statusline/cockpit-renderer.cjs +443 -0
- package/lib/statusline/cockpit-signals.cjs +312 -0
- package/lib/statusline/cockpit-telemetry.cjs +152 -0
- package/lib/statusline/ctx-window.cjs +135 -0
- package/lib/statusline/governing-thought-truncator.cjs +45 -0
- package/lib/statusline/next-move-cache.cjs +235 -0
- package/lib/statusline/ratification-next.cjs +164 -0
- package/lib/statusline/room-health-cache.cjs +200 -0
- package/lib/statusline/surface-detect.cjs +85 -0
- package/lib/statusline/two-row-renderer.cjs +207 -0
- package/lib/statusline/version-resolver.cjs +81 -0
- package/lib/ui/design-system.cjs +19 -0
- package/lib/update-bootstrap.sh.template +145 -0
- package/lib/vault/frontmatter-schema.cjs +297 -0
- package/lib/vault/room-scanner.cjs +365 -0
- package/lib/vault/wikilink-builder.cjs +231 -0
- package/lib/vault/wikilink-builder.test.cjs +182 -0
- package/lib/wiki/briefing.cjs +193 -0
- package/lib/wiki/editor-dist/wiki-editor.css +1 -0
- package/lib/wiki/editor-dist/wiki-editor.js +1327 -0
- package/lib/wiki/graph-links.cjs +281 -0
- package/lib/wiki/page-renderer.cjs +229 -0
- package/lib/wiki/room-home.cjs +353 -0
- package/lib/wiki/wiki-chat.cjs +81 -0
- package/lib/wiki/wiki-export.cjs +364 -0
- package/lib/wiki/wiki-layout.cjs +1143 -0
- package/lib/wiki/wiki-search.cjs +142 -0
- package/lib/wiki/wiki-server.cjs +748 -0
- package/lib/wiki/wiki-watcher.cjs +105 -0
- package/lib/workflow/ROOM.md +47 -0
- package/lib/workflow/chain-source.cjs +179 -0
- package/lib/workflow/command-resolver.cjs +155 -0
- package/lib/workflow/command-resolver.test.cjs +235 -0
- package/lib/workflow/cross-room-umbilical-closer.cjs +364 -0
- package/lib/workflow/dial-close-reach.cjs +405 -0
- package/lib/workflow/f-selector-ranker.cjs +1148 -0
- package/lib/workflow/f1-pick-consumer.cjs +232 -0
- package/lib/workflow/f3-depth-consumer.cjs +98 -0
- package/lib/workflow/f4-scope-consumer.cjs +112 -0
- package/lib/workflow/f8-consumer.test.cjs +82 -0
- package/lib/workflow/f8-fanout-consumer.cjs +208 -0
- package/lib/workflow/f9-consumer.test.cjs +71 -0
- package/lib/workflow/f9-ordered-consumer.cjs +199 -0
- package/lib/workflow/local-chain-recommender.cjs +330 -0
- package/lib/workflow/memory-cascade-f9-adapter.cjs +273 -0
- package/lib/workflow/memory-governance-closer.cjs +384 -0
- package/lib/workflow/offer-closer.cjs +407 -0
- package/lib/workflow/reach-hedge-ranker.cjs +809 -0
- package/lib/workflow/reach-reject-reader.cjs +372 -0
- package/lib/workflow/reconcile-f9-adapter.cjs +299 -0
- package/lib/workflow/selector-decisions.cjs +478 -0
- package/lib/workflow/session-binding-consumer.cjs +249 -0
- package/npm-shrinkwrap.json +1544 -0
- package/output-styles/destijl.md +67 -0
- package/package.json +22 -4
- package/pipelines/PWS_grading/01-deep-grade.md +48 -0
- package/pipelines/PWS_grading/02-mullins.md +50 -0
- package/pipelines/PWS_grading/03-build-thesis.md +60 -0
- package/pipelines/PWS_grading/04-structure-argument.md +77 -0
- package/pipelines/PWS_grading/CHAIN.md +79 -0
- package/pipelines/analogy/01-decompose.md +80 -0
- package/pipelines/analogy/02-abstract.md +87 -0
- package/pipelines/analogy/03-search.md +135 -0
- package/pipelines/analogy/04-transfer.md +101 -0
- package/pipelines/analogy/05-validate.md +106 -0
- package/pipelines/analogy/CHAIN.md +73 -0
- package/pipelines/discovery/01-explore-domains.md +44 -0
- package/pipelines/discovery/02-think-hats.md +50 -0
- package/pipelines/discovery/03-analyze-needs.md +54 -0
- package/pipelines/discovery/CHAIN.md +48 -0
- package/pipelines/thesis/01-structure-argument.md +45 -0
- package/pipelines/thesis/02-challenge-assumptions.md +48 -0
- package/pipelines/thesis/03-build-thesis.md +54 -0
- package/pipelines/thesis/CHAIN.md +48 -0
- package/references/brain/causal-directives.md +91 -0
- package/references/brain/causal-enrichment.cypher +165 -0
- package/references/brain/command-triggers-schema.md +15 -0
- package/references/brain/graph-architecture.md +317 -0
- package/references/brain/query-patterns.md +504 -0
- package/references/brain/room-hierarchy-schema.md +224 -0
- package/references/brain/schema.md +86 -0
- package/references/capability-radar/capabilities-index.md +269 -0
- package/references/capability-radar/changelog-cache.md +95 -0
- package/references/causal/causal-schema.md +103 -0
- package/references/design/email-template-standard.md +169 -0
- package/references/design/graph-visualization-standard.md +178 -0
- package/references/design/newsletter-email-template.html +307 -0
- package/references/document-generation.md +179 -0
- package/references/hsi/HSI-TOOLS-REFERENCE.md +222 -0
- package/references/import-config.md +141 -0
- package/references/integrations/detection-patterns.md +101 -0
- package/references/meeting/artifact-template.md +377 -0
- package/references/meeting/cross-meeting-intelligence.md +216 -0
- package/references/meeting/cross-relationship-patterns.md +202 -0
- package/references/meeting/extraction-perspectives.md +225 -0
- package/references/meeting/filing-protocol.md +222 -0
- package/references/meeting/knowledge-typing.md +242 -0
- package/references/meeting/live-join-interface.md +244 -0
- package/references/meeting/section-mapping.md +192 -0
- package/references/meeting/segment-classification.md +258 -0
- package/references/meeting/speaker-profile-template.md +219 -0
- package/references/meeting/summary-template.md +348 -0
- package/references/meeting/transcript-patterns.md +226 -0
- package/references/methodology/analyze-needs.md +135 -0
- package/references/methodology/analyze-systems.md +121 -0
- package/references/methodology/analyze-timing.md +149 -0
- package/references/methodology/beautiful-question.md +109 -0
- package/references/methodology/build-knowledge.md +161 -0
- package/references/methodology/build-thesis-scored.md +60 -0
- package/references/methodology/build-thesis.md +237 -0
- package/references/methodology/causal-loop-diagrams.md +65 -0
- package/references/methodology/challenge-assumptions.md +127 -0
- package/references/methodology/diagnose.md +169 -0
- package/references/methodology/dominant-designs.md +212 -0
- package/references/methodology/explore-domains.md +147 -0
- package/references/methodology/explore-futures.md +163 -0
- package/references/methodology/explore-trends.md +129 -0
- package/references/methodology/find-bottlenecks.md +131 -0
- package/references/methodology/grade.md +211 -0
- package/references/methodology/huji-stage-a-intake.md +246 -0
- package/references/methodology/index.md +34 -0
- package/references/methodology/leadership.md +200 -0
- package/references/methodology/lean-canvas.md +116 -0
- package/references/methodology/leverage-scan-signatures.md +83 -0
- package/references/methodology/macro-trends.md +192 -0
- package/references/methodology/map-unknowns.md +137 -0
- package/references/methodology/mullins-7-domains.md +104 -0
- package/references/methodology/problem-types.md +65 -0
- package/references/methodology/root-cause.md +178 -0
- package/references/methodology/rubric-huji.md +160 -0
- package/references/methodology/sapphire-encoding.md +355 -0
- package/references/methodology/scenario-plan.md +190 -0
- package/references/methodology/score-innovation.md +154 -0
- package/references/methodology/skillopt-judge-rubric.md +48 -0
- package/references/methodology/skillopt-queries-rubric.md +60 -0
- package/references/methodology/skillopt-refute-rubric.md +59 -0
- package/references/methodology/skillopt-review-rubric.md +72 -0
- package/references/methodology/skillopt-revise-rubric.md +48 -0
- package/references/methodology/structure-argument.md +158 -0
- package/references/methodology/systems-thinking.md +231 -0
- package/references/methodology/think-hats.md +147 -0
- package/references/methodology/triz-matrix.json +751 -0
- package/references/methodology/triz-principles.md +501 -0
- package/references/methodology/user-needs.md +199 -0
- package/references/methodology/validate.md +163 -0
- package/references/methodology/value-proposition.md +244 -0
- package/references/opportunities/funding-lifecycle.md +103 -0
- package/references/opportunities/grant-api-patterns.md +99 -0
- package/references/opportunities/opportunity-template.md +84 -0
- package/references/opportunities/tnufa-rubric.md +81 -0
- package/references/personality/assessment-philosophy.md +72 -0
- package/references/personality/lexicon.md +100 -0
- package/references/personality/persona-chains.md +56 -0
- package/references/personality/pws-lexicon-full.md +499 -0
- package/references/personality/voice-dna.md +156 -0
- package/references/personas/hat-perspectives.md +76 -0
- package/references/personas/persona-template.md +63 -0
- package/references/pipeline/act-output-contract.md +88 -0
- package/references/pipeline/chains-index.md +39 -0
- package/references/pws-profile-generation.md +79 -0
- package/references/reasoning/reasoning-schema.md +143 -0
- package/references/reasoning/reasoning-template.md +68 -0
- package/references/reasoning/run-template.md +38 -0
- package/references/research/RESEARCH_14_CLAUDE_CODE_SOURCE_ARCHITECTURE.md +209 -0
- package/references/research/RESEARCH_15_V1.8_OPTIMIZATION_JTBD.md +375 -0
- package/references/research/RESEARCH_16_NATIVE_FIRST_PLUGIN_ARCHITECTURE.md +575 -0
- package/references/research/RESEARCH_17_MCP_UI_FRAMEWORKS.md +272 -0
- package/references/security/agentshield-baseline.json +8 -0
- package/references/security/cve-db.json +220 -0
- package/references/taxonomy/TAXONOMY.md +192 -0
- package/references/templates/MINTO.md +36 -0
- package/references/user-research/2026-04-05-leah-lawrence-session.md +202 -0
- package/references/vault-kit/README.md +35 -0
- package/references/vault-kit/app.json +12 -0
- package/references/vault-kit/appearance.json +12 -0
- package/references/vault-kit/graph.json +35 -0
- package/references/vault-kit/snippets/mindrian-destijl.css +297 -0
- package/references/vault-kit/templates/new-artifact.md +37 -0
- package/references/vault-kit/templates/new-meeting-note.md +35 -0
- package/references/vault-kit/templates/new-team-profile.md +29 -0
- package/references/vault-kit/templates/new-xref.md +35 -0
- package/references/visual/ROOM.md +55 -0
- package/references/visual/palette.json +54 -0
- package/references/visual/symbol-system.md +151 -0
- package/scripts/189-plurai-gate-check.cjs +88 -0
- package/scripts/198-plurai-gate-check.cjs +118 -0
- package/scripts/198-rollback-rehearsal.cjs +233 -0
- package/scripts/83-scope-injection.test.cjs +648 -0
- package/scripts/PYTHON_GATES.md +78 -0
- package/scripts/__pycache__/compute-hsi.cpython-312.pyc +0 -0
- package/scripts/__pycache__/detect-reverse-salients.cpython-312.pyc +0 -0
- package/scripts/__pycache__/rs-engine.cpython-312.pyc +0 -0
- package/scripts/act-command.cjs +518 -0
- package/scripts/admin-brain-write.cjs +442 -0
- package/scripts/admin-command-gate.cjs +178 -0
- package/scripts/agentshield-scan-cli.cjs +226 -0
- package/scripts/agentshield-sessionstart-scan.cjs +282 -0
- package/scripts/analogy-fitness-report.cjs +266 -0
- package/scripts/analyze-room +1079 -0
- package/scripts/apply-teaching-content.cjs +298 -0
- package/scripts/async-artifact-auto-commit.cjs +485 -0
- package/scripts/audit-active-phase-resolver.cjs +160 -0
- package/scripts/audit-body-shape-coverage.cjs +213 -0
- package/scripts/auto-explore-drain.cjs +274 -0
- package/scripts/auto-explore-fingerprint.cjs +354 -0
- package/scripts/auto-explore-fire.cjs +359 -0
- package/scripts/backfill-correlation-id.cjs +425 -0
- package/scripts/backfill-hitl-shape.cjs +276 -0
- package/scripts/backfill-hitl-shape.test.cjs +307 -0
- package/scripts/backup-modifications +68 -0
- package/scripts/banner +182 -0
- package/scripts/brain-derivation-drain.cjs +291 -0
- package/scripts/brain-derive-command.cjs +846 -0
- package/scripts/brain-normalize-books.cypher +505 -0
- package/scripts/brain-normalize-final.cypher +1355 -0
- package/scripts/brain-normalize-problemtype.cypher +475 -0
- package/scripts/brain-normalize-supplement.cypher +449 -0
- package/scripts/brain-normalize-targeted.cypher +344 -0
- package/scripts/brain-normalize-v194.cypher +61 -0
- package/scripts/brain-normalize.cypher +530 -0
- package/scripts/brain-response-sanitize-hook.cjs +165 -0
- package/scripts/build-brain-census.cjs +957 -0
- package/scripts/build-brain-packet-schema.cjs +225 -0
- package/scripts/build-command-registry.cjs +587 -0
- package/scripts/build-connector-registry.cjs +1331 -0
- package/scripts/build-corpus-stats.cjs +408 -0
- package/scripts/build-dist-bundles.cjs +495 -0
- package/scripts/build-ecosystem-graph.cjs +490 -0
- package/scripts/build-graph +1462 -0
- package/scripts/build-graph-from-sqlite.cjs +97 -0
- package/scripts/build-harness-manifest.cjs +1090 -0
- package/scripts/build-jtbd-nudges +205 -0
- package/scripts/build-new-surface.cjs +805 -0
- package/scripts/build-orchestration-projection.cjs +1221 -0
- package/scripts/build-render-coverage.cjs +637 -0
- package/scripts/build-skill-mirrors.cjs +681 -0
- package/scripts/cache-hitrate-report.cjs +216 -0
- package/scripts/causal-to-graph.cjs +163 -0
- package/scripts/check-abstraction-fixture-neutral.cjs +160 -0
- package/scripts/check-admin-identity.cjs +212 -0
- package/scripts/check-brain-tool-liveness.cjs +502 -0
- package/scripts/check-card-fire.cjs +1809 -0
- package/scripts/check-cirs-declaration.cjs +279 -0
- package/scripts/check-deck-design.cjs +104 -0
- package/scripts/check-dual-graph-health.cjs +645 -0
- package/scripts/check-first-touch-drift.cjs +220 -0
- package/scripts/check-flagship-floor.cjs +391 -0
- package/scripts/check-framework-vocabulary-drift.cjs +563 -0
- package/scripts/check-gate-seam.cjs +178 -0
- package/scripts/check-graph-derive-health.cjs +208 -0
- package/scripts/check-graph-export-typemap.cjs +118 -0
- package/scripts/check-help-coverage.cjs +290 -0
- package/scripts/check-hitl-stages.cjs +219 -0
- package/scripts/check-hook-schema-compatibility.cjs +231 -0
- package/scripts/check-hsi-deps +42 -0
- package/scripts/check-kuzu-reintroduction.cjs +251 -0
- package/scripts/check-onboard +43 -0
- package/scripts/check-onboard-statusline.cjs +363 -0
- package/scripts/check-palette-consistency.cjs +106 -0
- package/scripts/check-pending-ambiguous.cjs +244 -0
- package/scripts/check-pending-breakthrough.cjs +189 -0
- package/scripts/check-pending-breakthrough.test.cjs +166 -0
- package/scripts/check-pending-naming-decision.cjs +97 -0
- package/scripts/check-plugin-path-anchoring.cjs +830 -0
- package/scripts/check-publish-needs.cjs +126 -0
- package/scripts/check-registry-drift.cjs +206 -0
- package/scripts/check-release-payload-ceiling.cjs +269 -0
- package/scripts/check-render-coverage.cjs +558 -0
- package/scripts/check-research-isomorphism.cjs +446 -0
- package/scripts/check-reward-before-investment.cjs +261 -0
- package/scripts/check-room-blueprints.cjs +213 -0
- package/scripts/check-schema-aliases.cjs +532 -0
- package/scripts/check-shape-declaration.cjs +958 -0
- package/scripts/check-shape-declaration.test.cjs +185 -0
- package/scripts/check-skill-spec.cjs +312 -0
- package/scripts/check-skill-vs-code-drift.cjs +178 -0
- package/scripts/check-substrate.cjs +513 -0
- package/scripts/check-tool-honesty.cjs +1601 -0
- package/scripts/check-update +60 -0
- package/scripts/check-version-and-sha.cjs +366 -0
- package/scripts/check-voice-style.cjs +184 -0
- package/scripts/check-worktree-hygiene.cjs +530 -0
- package/scripts/classify-insight +59 -0
- package/scripts/coherence-smoke-test.cjs +489 -0
- package/scripts/collect-cold-install-evidence.cjs +411 -0
- package/scripts/compute-bayesian-surprise.py +175 -0
- package/scripts/compute-blindspot-mass.py +209 -0
- package/scripts/compute-disruption-index.py +211 -0
- package/scripts/compute-element-novelty.py +254 -0
- package/scripts/compute-external-whitespace.py +563 -0
- package/scripts/compute-hsi.py +947 -0
- package/scripts/compute-meetings-intelligence +716 -0
- package/scripts/compute-opportunity-state +17 -0
- package/scripts/compute-state +393 -0
- package/scripts/compute-team +1112 -0
- package/scripts/compute-whitespace-embeddings.py +464 -0
- package/scripts/compute-whitespace-gaps.py +562 -0
- package/scripts/compute_topic_forest.py +684 -0
- package/scripts/consolidate-pinecone.py +265 -0
- package/scripts/context-monitor +943 -0
- package/scripts/create-speaker-profile +311 -0
- package/scripts/cross-room-detect.cjs +195 -0
- package/scripts/csv-to-idea-graph.cjs +755 -0
- package/scripts/ctxl-eval.cjs +846 -0
- package/scripts/curation-132-03-dedup-held-rename.cjs +395 -0
- package/scripts/curation-132-05-pseudonymize.cjs +189 -0
- package/scripts/derive-verb-reach-affinity.cjs +507 -0
- package/scripts/detect-reverse-salients.py +242 -0
- package/scripts/diagnostics-command.cjs +345 -0
- package/scripts/dial-memory-refresh-command.cjs +147 -0
- package/scripts/discover-analogy-whitespace.py +433 -0
- package/scripts/discover-hsi-whitespace.py +352 -0
- package/scripts/discover-rs-whitespace.py +327 -0
- package/scripts/discovery-cycle.cjs +625 -0
- package/scripts/disposition-render-v2.cjs +229 -0
- package/scripts/doctor-preflight-format.cjs +101 -0
- package/scripts/doctor.cjs +4327 -0
- package/scripts/dogfood-bridge/append-to-queue.sh +59 -0
- package/scripts/dogfood-bridge/path-filter.cjs +86 -0
- package/scripts/dogfood-derive.cjs +158 -0
- package/scripts/dogfood-emit.cjs +126 -0
- package/scripts/empathy-observation-emit.cjs +108 -0
- package/scripts/enrichment-queue-append.cjs +157 -0
- package/scripts/ensure-brain-baseline.cjs +117 -0
- package/scripts/entity-extract.cjs +1135 -0
- package/scripts/eureka-command.cjs +687 -0
- package/scripts/eureka-critic-run.cjs +662 -0
- package/scripts/eureka-portfolio-report.cjs +2038 -0
- package/scripts/eureka-room-report.cjs +419 -0
- package/scripts/explain-decision-command.cjs +499 -0
- package/scripts/export-pinecone-embeddings.cjs +516 -0
- package/scripts/extract-room-intelligence.cjs +714 -0
- package/scripts/fetch-brain-baseline.cjs +190 -0
- package/scripts/fetch-brain-baseline.py +360 -0
- package/scripts/feynman-minto-guardian.cjs +672 -0
- package/scripts/feynman-timeline-refresh-command.cjs +270 -0
- package/scripts/file-asset +253 -0
- package/scripts/fire-sensor-event.cjs +83 -0
- package/scripts/first-install-router.cjs +968 -0
- package/scripts/frontmatter-schema-validator.cjs +339 -0
- package/scripts/fts-index-drain.cjs +221 -0
- package/scripts/generate-chat-embed.cjs +179 -0
- package/scripts/generate-deck.cjs +322 -0
- package/scripts/generate-export.cjs +474 -0
- package/scripts/generate-hub.cjs +2553 -0
- package/scripts/generate-lobby.cjs +718 -0
- package/scripts/generate-presentation.cjs +988 -0
- package/scripts/generate-presentation.test.cjs +405 -0
- package/scripts/generate-section-intelligence.cjs +330 -0
- package/scripts/generate-snapshot.cjs +1410 -0
- package/scripts/generate-standalone +159 -0
- package/scripts/git-ops +211 -0
- package/scripts/graph-heal-pipeline.cjs +321 -0
- package/scripts/gsd-artifact-graph-hook.cjs +219 -0
- package/scripts/gsd-graph-derive-drain.cjs +571 -0
- package/scripts/gsd-graph-derive-sweep.cjs +195 -0
- package/scripts/heal-command.cjs +1365 -0
- package/scripts/hedge-refit-pipeline.cjs +207 -0
- package/scripts/help-renderer.cjs +303 -0
- package/scripts/hmi-compliance-poll.cjs +451 -0
- package/scripts/hmi-status-command.cjs +510 -0
- package/scripts/hooked-rescore-117.cjs +224 -0
- package/scripts/hooks/pre-commit +533 -0
- package/scripts/hooks/pre-commit-room-minto-guard.cmd +43 -0
- package/scripts/hooks/pre-commit-room-minto-guard.sh +533 -0
- package/scripts/hsi-to-graph.cjs +194 -0
- package/scripts/huji-batch.cjs +821 -0
- package/scripts/huji-eval.cjs +1158 -0
- package/scripts/huji-intake.cjs +563 -0
- package/scripts/huji-pin-smoketest.cjs +454 -0
- package/scripts/huji-run-one-async.cjs +305 -0
- package/scripts/huji-run-one.cjs +671 -0
- package/scripts/install-pre-commit.sh +113 -0
- package/scripts/intent-classifier +106 -0
- package/scripts/intent-classifier.cjs +3620 -0
- package/scripts/interpret-whitespace.cjs +691 -0
- package/scripts/jtbd-command.cjs +810 -0
- package/scripts/jtbd-update.cjs +299 -0
- package/scripts/label-topic-forest.cjs +667 -0
- package/scripts/learn-from-usage +168 -0
- package/scripts/lib/__pycache__/ensure_ml_deps.cpython-312.pyc +0 -0
- package/scripts/lib/ensure_ml_deps.py +97 -0
- package/scripts/load-embeddings-into-neo4j.cjs +569 -0
- package/scripts/memory-artifact-graph-hook.cjs +191 -0
- package/scripts/memory-command.cjs +687 -0
- package/scripts/memory-completion-detector.cjs +217 -0
- package/scripts/memory-lifecycle.cjs +620 -0
- package/scripts/memory-resume-nudge.cjs +233 -0
- package/scripts/methodology-ingest-local.sh +36 -0
- package/scripts/migrate-brain-mcp-from-http-to-stdio.cjs +190 -0
- package/scripts/migrate-brain-mcp-from-http-to-stdio.test.cjs +242 -0
- package/scripts/migrate-hats-to-roomdb.cjs +217 -0
- package/scripts/migrate-lazygraph.cjs +250 -0
- package/scripts/migrate-minto-schema-v88.cjs +296 -0
- package/scripts/migrate-plugin-root-refs.cjs +168 -0
- package/scripts/migrate-room-sections-v275.cjs +556 -0
- package/scripts/migrate-rooms +417 -0
- package/scripts/migrate-skill-frontmatter.cjs +472 -0
- package/scripts/migrate-stale-user-settings.cjs +296 -0
- package/scripts/migrate-telemetry-v1.cjs +384 -0
- package/scripts/migrate-telemetry-v1.test.cjs +356 -0
- package/scripts/minto-debouncer.cjs +428 -0
- package/scripts/mos-status.cjs +622 -0
- package/scripts/mva-detect.cjs +229 -0
- package/scripts/mva-run.cjs +36 -0
- package/scripts/on-agent-complete +163 -0
- package/scripts/on-cwd-changed +149 -0
- package/scripts/on-file-changed +68 -0
- package/scripts/on-stop +617 -0
- package/scripts/on-task-complete +194 -0
- package/scripts/operator-command.cjs +858 -0
- package/scripts/operator-update.cjs +308 -0
- package/scripts/part8-egress-guard-hook.cjs +229 -0
- package/scripts/pipeline-command.cjs +271 -0
- package/scripts/post-compact +383 -0
- package/scripts/post-update-activation.cjs +339 -0
- package/scripts/post-write +283 -0
- package/scripts/power-demo-prompt.md +621 -0
- package/scripts/pre-compact +273 -0
- package/scripts/preflight-auto-explore.cjs +314 -0
- package/scripts/preflight-doctor.cjs +225 -0
- package/scripts/preflight-release-drift.cjs +168 -0
- package/scripts/preflight-tension-surface.cjs +414 -0
- package/scripts/probe-brain-contract.cjs +502 -0
- package/scripts/publish-ops +346 -0
- package/scripts/query-efficiency-telemetry.cjs +364 -0
- package/scripts/query-semantic-scholar.cjs +545 -0
- package/scripts/reapply-modifications +49 -0
- package/scripts/reassign-primary.cjs +125 -0
- package/scripts/recompile-room-references.cjs +601 -0
- package/scripts/release-beta-preflight.sh +69 -0
- package/scripts/render-pdf +588 -0
- package/scripts/render-viz +190 -0
- package/scripts/research-speaker +239 -0
- package/scripts/resolve-room +204 -0
- package/scripts/restore-post-compact-context.cjs +320 -0
- package/scripts/room-auto-create-nudge.cjs +136 -0
- package/scripts/room-naming-selector.cjs +201 -0
- package/scripts/room-registry +767 -0
- package/scripts/rs-discovery-engine.cjs +725 -0
- package/scripts/rs-engine.py +2073 -0
- package/scripts/rs-experts-command.cjs +300 -0
- package/scripts/rs-explain-command.cjs +323 -0
- package/scripts/rs-fetch-command.cjs +170 -0
- package/scripts/rs-thesis-command.cjs +203 -0
- package/scripts/rs-vector-bridge.cjs +410 -0
- package/scripts/run-harness.cjs +890 -0
- package/scripts/scout-cadence-guard.cjs +323 -0
- package/scripts/scout-cadence-runner.cjs +509 -0
- package/scripts/scout-telemetry-aggregator.cjs +268 -0
- package/scripts/sealed-walker.py +96 -0
- package/scripts/seed-brain-commands.cjs +324 -0
- package/scripts/self-update +105 -0
- package/scripts/sentinel-deadline-monitor +241 -0
- package/scripts/sentinel-health-check +198 -0
- package/scripts/sentinel-snapshot +42 -0
- package/scripts/serve-dashboard +103 -0
- package/scripts/serve-dashboard-live +932 -0
- package/scripts/serve-presentation +97 -0
- package/scripts/serve-wiki +90 -0
- package/scripts/session-end-presence.cjs +79 -0
- package/scripts/session-start +1943 -0
- package/scripts/sessionstart-coordinator.cjs +249 -0
- package/scripts/sessionstart-npm-reconcile.cjs +111 -0
- package/scripts/sessionstart-post-update-preflight.cjs +303 -0
- package/scripts/sessionstart-reference-now-seed.cjs +137 -0
- package/scripts/setup-hooks.sh +112 -0
- package/scripts/skillopt-codereview.cjs +830 -0
- package/scripts/skillopt-eval.cjs +519 -0
- package/scripts/skillopt-funnel.cjs +1076 -0
- package/scripts/skillopt-genqueries.cjs +571 -0
- package/scripts/skillopt-inventory.cjs +319 -0
- package/scripts/skillopt-merge.cjs +656 -0
- package/scripts/skillopt-triggerloop.cjs +1126 -0
- package/scripts/soft-alias-runner.cjs +116 -0
- package/scripts/stamp-artifact-write.cjs +276 -0
- package/scripts/stamp-firing-block.cjs +325 -0
- package/scripts/state-write.cjs +97 -0
- package/scripts/statusline-fallback-echo.cjs +297 -0
- package/scripts/statusline-mos +116 -0
- package/scripts/statusline-mos-dispatch +127 -0
- package/scripts/suggest-next-command.cjs +416 -0
- package/scripts/sweep-skill-descriptions.cjs +263 -0
- package/scripts/sync-rooms-graph +264 -0
- package/scripts/telemetry-command-invocation.cjs +120 -0
- package/scripts/test-doctor-recovery.cjs +242 -0
- package/scripts/test-fresh-install.md +140 -0
- package/scripts/track-analytics +156 -0
- package/scripts/transcribe-audio +148 -0
- package/scripts/transcript-ingest.cjs +225 -0
- package/scripts/update-icm-index +153 -0
- package/scripts/v182-brain-optimize.cypher +1191 -0
- package/scripts/validate-model-profiles +93 -0
- package/scripts/vault-content-reformatter.cjs +581 -0
- package/scripts/vault-export-orchestrator.cjs +400 -0
- package/scripts/vault-footer-injector.cjs +315 -0
- package/scripts/vault-import.cjs +839 -0
- package/scripts/vault-integration-test.cjs +318 -0
- package/scripts/vault-regenerate-all.cjs +216 -0
- package/scripts/vault-regenerate-all.test.cjs +138 -0
- package/scripts/vault-rules-generator.cjs +220 -0
- package/scripts/vault-section-minto-generator.cjs +1642 -0
- package/scripts/vault-section-minto-generator.integration.test.cjs +576 -0
- package/scripts/vault-section-minto-generator.test.cjs +291 -0
- package/scripts/vault-section-state-generator.cjs +385 -0
- package/scripts/vault-welcome-generator.cjs +403 -0
- package/scripts/vault-wikilink-injector.cjs +449 -0
- package/scripts/verify-phase-132.cjs +338 -0
- package/scripts/verify-release +744 -0
- package/scripts/whitespace-command.cjs +831 -0
- package/scripts/whitespace-to-brain.cjs +384 -0
- package/scripts/whitespace-to-graph.cjs +220 -0
- package/scripts/wikilink-batch.cjs +102 -0
- package/scripts/wikilink-file.cjs +139 -0
- package/scripts/write-bridge-artifacts.cjs +140 -0
- package/scripts/write-scope-check +12 -0
- package/scripts/write-scope-check.cjs +461 -0
- package/scripts/write-whitespace-sections.cjs +483 -0
- package/settings.json +7 -0
- package/skills/act/SKILL.md +523 -0
- package/skills/admin/SKILL.md +437 -0
- package/skills/agentshield/SKILL.md +50 -0
- package/skills/analyze-needs/SKILL.md +74 -0
- package/skills/analyze-systems/SKILL.md +69 -0
- package/skills/analyze-timing/SKILL.md +94 -0
- package/skills/auto-explore/SKILL.md +84 -0
- package/skills/beautiful-question/SKILL.md +72 -0
- package/skills/bono/SKILL.md +146 -0
- package/skills/brain-connector/SKILL.md +206 -0
- package/skills/brain-derive/SKILL.md +140 -0
- package/skills/build-knowledge/SKILL.md +118 -0
- package/skills/build-thesis/SKILL.md +90 -0
- package/skills/causal/SKILL.md +265 -0
- package/skills/challenge-assumptions/SKILL.md +74 -0
- package/skills/client-discovery-interview/SKILL.md +94 -0
- package/skills/client-discovery-interview/discovery-scaffold.json +41 -0
- package/skills/client-discovery-interview/question-bank.md +149 -0
- package/skills/compare-ventures/SKILL.md +113 -0
- package/skills/context-engine/SKILL.md +169 -0
- package/skills/conversation-mode/SKILL.md +189 -0
- package/skills/correct-reference-now/SKILL.md +86 -0
- package/skills/dashboard/SKILL.md +142 -0
- package/skills/deck/SKILL.md +113 -0
- package/skills/deep-grade/SKILL.md +210 -0
- package/skills/diagnose/SKILL.md +128 -0
- package/skills/diagnostics/SKILL.md +193 -0
- package/skills/dial-memory-refresh/SKILL.md +116 -0
- package/skills/diffusion/SKILL.md +125 -0
- package/skills/discover/SKILL.md +216 -0
- package/skills/doctor/SKILL.md +269 -0
- package/skills/dogfood-flush/SKILL.md +133 -0
- package/skills/dominant-designs/SKILL.md +72 -0
- package/skills/eureka/SKILL.md +313 -0
- package/skills/explain-decision/SKILL.md +138 -0
- package/skills/explore-domains/SKILL.md +74 -0
- package/skills/explore-futures/SKILL.md +64 -0
- package/skills/explore-opportunity/SKILL.md +168 -0
- package/skills/explore-trends/SKILL.md +74 -0
- package/skills/export/SKILL.md +126 -0
- package/skills/feynman-timeline-refresh/SKILL.md +105 -0
- package/skills/file-meeting/SKILL.md +1190 -0
- package/skills/find-analogies/SKILL.md +360 -0
- package/skills/find-bottlenecks/SKILL.md +104 -0
- package/skills/find-connections/SKILL.md +108 -0
- package/skills/funding/SKILL.md +110 -0
- package/skills/futures/SKILL.md +124 -0
- package/skills/grade/SKILL.md +252 -0
- package/skills/grade-grant/SKILL.md +293 -0
- package/skills/graph/SKILL.md +216 -0
- package/skills/hat-briefing/SKILL.md +160 -0
- package/skills/heal/SKILL.md +69 -0
- package/skills/help/SKILL.md +172 -0
- package/skills/hmi-status/SKILL.md +73 -0
- package/skills/ignite/SKILL.md +225 -0
- package/skills/ingest-methodology/SKILL.md +125 -0
- package/skills/intel-pipeline/SKILL.md +128 -0
- package/skills/intelligence-orchestrator/SKILL.md +262 -0
- package/skills/jtbd/SKILL.md +261 -0
- package/skills/larry-personality/SKILL.md +571 -0
- package/skills/larry-personality/framework-chains.md +92 -0
- package/skills/larry-personality/mode-engine.md +185 -0
- package/skills/leadership/SKILL.md +109 -0
- package/skills/lean-canvas/SKILL.md +70 -0
- package/skills/macro-trends/SKILL.md +84 -0
- package/skills/map-unknowns/SKILL.md +72 -0
- package/skills/memory/SKILL.md +212 -0
- package/skills/memory-cortex-reach/SKILL.md +80 -0
- package/skills/models/SKILL.md +197 -0
- package/skills/mos/SKILL.md +160 -0
- package/skills/mos-deck-engine/SKILL.md +329 -0
- package/skills/mos-reason/SKILL.md +484 -0
- package/skills/mullins/SKILL.md +151 -0
- package/skills/mullins-scaffold/SKILL.md +132 -0
- package/skills/mullins-scaffold/scaffold.json +223 -0
- package/skills/mva-brief/SKILL.md +87 -0
- package/skills/mva-option/SKILL.md +120 -0
- package/skills/mva-pipeline/SKILL.md +158 -0
- package/skills/mva-report/SKILL.md +79 -0
- package/skills/new-project/SKILL.md +629 -0
- package/skills/new-surface/SKILL.md +112 -0
- package/skills/onboard/SKILL.md +485 -0
- package/skills/operator/SKILL.md +167 -0
- package/skills/opportunities/SKILL.md +171 -0
- package/skills/organize/SKILL.md +69 -0
- package/skills/persona/SKILL.md +272 -0
- package/skills/pipeline/SKILL.md +164 -0
- package/skills/present/SKILL.md +123 -0
- package/skills/publish/SKILL.md +224 -0
- package/skills/pws-brain/SKILL.md +152 -0
- package/skills/pws-methodology/SKILL.md +92 -0
- package/skills/qualify-opportunity/SKILL.md +111 -0
- package/skills/query/SKILL.md +68 -0
- package/skills/radar/SKILL.md +106 -0
- package/skills/reanalyze/SKILL.md +122 -0
- package/skills/research/SKILL.md +462 -0
- package/skills/room/SKILL.md +381 -0
- package/skills/room-passive/SKILL.md +174 -0
- package/skills/room-proactive/SKILL.md +344 -0
- package/skills/rooms/SKILL.md +678 -0
- package/skills/root-cause/SKILL.md +73 -0
- package/skills/rs-experts/SKILL.md +151 -0
- package/skills/rs-explain/SKILL.md +130 -0
- package/skills/rs-fetch/SKILL.md +115 -0
- package/skills/rs-thesis/SKILL.md +129 -0
- package/skills/scenario-plan/SKILL.md +76 -0
- package/skills/scheduled-tasks/SKILL.md +301 -0
- package/skills/score-innovation/SKILL.md +74 -0
- package/skills/scout/SKILL.md +370 -0
- package/skills/setup/SKILL.md +654 -0
- package/skills/show/SKILL.md +68 -0
- package/skills/skill/SKILL.md +104 -0
- package/skills/snapshot/SKILL.md +178 -0
- package/skills/speakers/SKILL.md +116 -0
- package/skills/splash/SKILL.md +54 -0
- package/skills/stance/SKILL.md +89 -0
- package/skills/status/SKILL.md +107 -0
- package/skills/structure-argument/SKILL.md +78 -0
- package/skills/suggest-next/SKILL.md +137 -0
- package/skills/systems-thinking/SKILL.md +220 -0
- package/skills/think-hats/SKILL.md +82 -0
- package/skills/trending-to-absurd/SKILL.md +100 -0
- package/skills/ui-system/SKILL.md +474 -0
- package/skills/ui-system/design-system/M-OS-DESIGN-SYSTEM.md +273 -0
- package/skills/ui-system/design-system/SPEC.md +72 -0
- package/skills/ui-system/design-system/image-prompt-style.md +29 -0
- package/skills/ui-system/design-system/mos-design-system.css +240 -0
- package/skills/ui-system/rules/design-system.md +60 -0
- package/skills/ui-system/rules/dual-palette.md +156 -0
- package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
- package/skills/ui-system/rules/shape-f-zero-and-six.md +169 -0
- package/skills/update/SKILL.md +254 -0
- package/skills/user-needs/SKILL.md +73 -0
- package/skills/validate/SKILL.md +73 -0
- package/skills/value-proposition/SKILL.md +141 -0
- package/skills/vault/SKILL.md +326 -0
- package/skills/visualize/SKILL.md +69 -0
- package/skills/whitespace/SKILL.md +539 -0
- package/skills/wiki/SKILL.md +94 -0
- package/templates/_base.html +20 -0
- package/templates/chat-panel.html +205 -0
- package/templates/constellation-chat-hooks.js +89 -0
- package/templates/constellation.html +1272 -0
- package/templates/destijl-base.css +268 -0
- package/templates/discovery/discovery-brief-template.md +97 -0
- package/templates/due-diligence.html +49 -0
- package/templates/executive-summary.html +40 -0
- package/templates/icm/CLAUDE.md +31 -0
- package/templates/icm/GROUP-CLAUDE.md +33 -0
- package/templates/icm/INDEX.md +26 -0
- package/templates/import/stage-contracts/01-ingest.md +34 -0
- package/templates/import/stage-contracts/02-classify.md +48 -0
- package/templates/import/stage-contracts/03-route.md +42 -0
- package/templates/import/stage-contracts/04-enrich.md +40 -0
- package/templates/investment-thesis.html +25 -0
- package/templates/meeting-report.html +361 -0
- package/templates/presentation/dashboard.html +1150 -0
- package/templates/presentation/deck.html +540 -0
- package/templates/presentation/diagrams.html +437 -0
- package/templates/presentation/graph.html +391 -0
- package/templates/presentation/insights.html +548 -0
- package/templates/presentation/wiki.html +533 -0
- package/templates/profile.html +136 -0
- package/templates/room-context/last-session.md +56 -0
- package/templates/room-context/methodology-history.md +28 -0
- package/templates/room-context/rejection-log.md +25 -0
- package/templates/room-context/weekly-digest.md +54 -0
- package/templates/room-skeleton/MINTO.md.tmpl +19 -0
- package/templates/room-skeleton/ROOM.md.identity.tmpl +13 -0
- package/templates/room-skeleton/ROOM.md.section.tmpl +33 -0
- package/templates/room-skeleton/STATE.md.tmpl +33 -0
- package/templates/room-skeleton/USER.md.tmpl +23 -0
- package/templates/room-skeleton/references/.gitkeep +0 -0
- package/templates/room-skeleton/references/SECTION-SCHEMA.md +213 -0
- package/templates/room-skeleton/references/SUB-SCHEMAS.md +91 -0
- package/templates/room-skeleton/section-contracts/.gitkeep +0 -0
- package/templates/room-skeleton/section-contracts/business-model.md +32 -0
- package/templates/room-skeleton/section-contracts/competitive-analysis.md +33 -0
- package/templates/room-skeleton/section-contracts/financial-model.md +30 -0
- package/templates/room-skeleton/section-contracts/funding.md +41 -0
- package/templates/room-skeleton/section-contracts/legal-ip.md +30 -0
- package/templates/room-skeleton/section-contracts/market-analysis.md +32 -0
- package/templates/room-skeleton/section-contracts/opportunity-bank.md +39 -0
- package/templates/room-skeleton/section-contracts/problem-definition.md +32 -0
- package/templates/room-skeleton/section-contracts/solution-design.md +36 -0
- package/templates/room-skeleton/section-contracts/strategy.md +35 -0
- package/templates/room-skeleton/section-contracts/team-execution.md +36 -0
- package/templates/shared.css +427 -0
- package/templates/showcase/blueprint.html +432 -0
- package/templates/showcase/library.html +571 -0
- package/templates/showcase/narrative.html +361 -0
- package/templates/showcase/overview.html +468 -0
- package/templates/showcase/synthesis.html +473 -0
- package/templates/signature-footer.html +34 -0
|
@@ -0,0 +1,1150 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// Phase 125-00 -- navigation.cjs edge-write primitive (per CONTEXT.md Pass 3 GAP-2
|
|
3
|
+
// resolution). Adds writeEdge to the navigation.cjs closed surface as an additive
|
|
4
|
+
// extension following the Phase 110-03 logMemoryEvent precedent.
|
|
5
|
+
//
|
|
6
|
+
// Canon Part 4: every choice is graph data; this is the chokepoint primitive that
|
|
7
|
+
// lets Plan 06 selector-decisions.cjs + future Phases 116/117/118 write typed
|
|
8
|
+
// cascade edges without bypassing the closed surface.
|
|
9
|
+
//
|
|
10
|
+
// Canon Part 7: reuse-before-build -- the UPSERT statement mirrors
|
|
11
|
+
// lib/core/lazygraph-ops.cjs::upsertEdge (lines 990-1019) so sibling agents
|
|
12
|
+
// emit edges via the same UPSERT shape and the navigation chokepoint stays
|
|
13
|
+
// the single door for write traffic.
|
|
14
|
+
//
|
|
15
|
+
// Canon Part 8 invariant: writeEdge takes (db, params) -- a db handle owned by
|
|
16
|
+
// the caller (via openRoomDb) -- so this module never opens room.db itself. Zero
|
|
17
|
+
// direct room-db.cjs require here. The navigation pre-commit hook treats this
|
|
18
|
+
// file as part of the navigation/* allow-list, NOT as a bypass.
|
|
19
|
+
|
|
20
|
+
const crypto = require('node:crypto');
|
|
21
|
+
|
|
22
|
+
// Closed edge-type allowlist enforced by writeEdge. Mirrors the EVENT_TYPES Set
|
|
23
|
+
// pattern in lib/core/navigation/memory-events.cjs. Phase 125 ships DEFERRED +
|
|
24
|
+
// REJECTED (D7 typed cascade edge surface for F.1 defer / F.2 reject). Future
|
|
25
|
+
// phases (e.g. Phase 116 tension resolution, Phase 117 auto-explore, Phase 118
|
|
26
|
+
// MVA) extend this Set additively without canon amendment -- same idiom as the
|
|
27
|
+
// EVENT_TYPES additive blocks for Phases 88.2-00 / 89-07 / 116-00 / 117-00 /
|
|
28
|
+
// 110-02.
|
|
29
|
+
//
|
|
30
|
+
// Tests assert a FLOOR (DEFERRED + REJECTED present) and Set-instance shape --
|
|
31
|
+
// not an exact size -- so additive extensions cannot regress baseline.
|
|
32
|
+
const ALLOWED_EDGE_TYPES = Object.freeze(new Set([
|
|
33
|
+
// Phase 125 D7 -- F-selector decision edges (LOCKED LOCAL per Canon Part 8).
|
|
34
|
+
'DEFERRED',
|
|
35
|
+
'REJECTED',
|
|
36
|
+
// Phase 120-00 Wave 1 extension (Breakthrough Scan / Category G; D-18 HARD FLOOR enforcement
|
|
37
|
+
// + D-20 Cypher-provable principle). DERIVED_FROM is the structural enforcement: a
|
|
38
|
+
// Breakthrough node CANNOT surface without at least one DERIVED_FROM edge to an
|
|
39
|
+
// Artifact node. Mirrors the Phase 125-00 DEFERRED + REJECTED additive idiom.
|
|
40
|
+
//
|
|
41
|
+
// Canon Part 4: every choice is graph data. The Breakthrough node + its DERIVED_FROM
|
|
42
|
+
// edges are the graph-native artifact of pattern detection.
|
|
43
|
+
//
|
|
44
|
+
// Canon Part 8: writeEdge takes (db, params) over a LOCAL room.db handle; DERIVED_FROM
|
|
45
|
+
// never crosses to Brain. Cross-room aggregation is prevented structurally:
|
|
46
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
47
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
48
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
49
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
50
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
51
|
+
//
|
|
52
|
+
// D-20 enforcement: lib/core/breakthrough/schema.cjs::writeBreakthrough wraps the
|
|
53
|
+
// Breakthrough node insert + N DERIVED_FROM edge inserts in a single SQLite transaction.
|
|
54
|
+
// If any step fails, the transaction rolls back -- partial Breakthrough state CANNOT
|
|
55
|
+
// land. The Cypher invariant `MATCH (b:Breakthrough)-[:DERIVED_FROM]->(a:Artifact)
|
|
56
|
+
// RETURN count(a)` is guaranteed >= 1 by construction.
|
|
57
|
+
'DERIVED_FROM',
|
|
58
|
+
// Phase 120-02 Wave 2 extension (Breakthrough Scan / Category G; D-09 file-as-decision
|
|
59
|
+
// bridge). FILED_AS_DECISION is the typed edge that promotes a Breakthrough node into
|
|
60
|
+
// the Phase 88 decision-log machinery when the user picks the [File as decision]
|
|
61
|
+
// verb on F.7. Mirrors the Phase 120-00 DERIVED_FROM additive idiom verbatim.
|
|
62
|
+
//
|
|
63
|
+
// Canon Part 4: every choice is graph data. The Breakthrough -> Decision edge is the
|
|
64
|
+
// graph-native bridge that lets future related breakthroughs reference the filed
|
|
65
|
+
// decision via ENABLES edges (per CONTEXT.md D-15 "may be referenced as ENABLES in
|
|
66
|
+
// future related breakthroughs").
|
|
67
|
+
//
|
|
68
|
+
// Canon Part 8: writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
69
|
+
// FILED_AS_DECISION never crosses to Brain. Cross-room aggregation is prevented structurally:
|
|
70
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
71
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
72
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
73
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
74
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
75
|
+
//
|
|
76
|
+
// Emitted by: lib/core/breakthrough/verb-dispatch.cjs::handleFileAsDecision.
|
|
77
|
+
// The destination Decision node id is 'decision:' + breakthroughId by convention;
|
|
78
|
+
// Phase 88 decision-log machinery (or a future Phase 121 housekeeping pass) is
|
|
79
|
+
// responsible for materializing the Decision node body when one does not yet exist.
|
|
80
|
+
'FILED_AS_DECISION',
|
|
81
|
+
// Phase 129-01 extension (Spine Repair; FOLLOWS_FROM is the 8th canonical
|
|
82
|
+
// cascade edge type extending the shipped vocabulary INFORMS / CONTRADICTS /
|
|
83
|
+
// CONVERGES / INVALIDATES / ENABLES / REJECTED / DEFERRED per the 2026-05-16
|
|
84
|
+
// dual-graph review additive-scope verdict). Emitted by the spine repair work
|
|
85
|
+
// when one memory_event clearly follows another in the proactive loop (e.g.
|
|
86
|
+
// spine_read FOLLOWS_FROM suggestion_surfaced). Mirrors the Phase 120-02
|
|
87
|
+
// FILED_AS_DECISION additive idiom verbatim.
|
|
88
|
+
//
|
|
89
|
+
// Canon Part 8: properties are ENUM-ONLY (a surface scalar); no freeform
|
|
90
|
+
// user-content fields ever land on a FOLLOWS_FROM edge -- the review's hard
|
|
91
|
+
// constraint. writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
92
|
+
// FOLLOWS_FROM never crosses to Brain.
|
|
93
|
+
//
|
|
94
|
+
// The dual-graph proposal's lens-class taxonomy (ASSOCIATION_LENS /
|
|
95
|
+
// TRANSITION_LENS) is REJECTED -- the verdict accepts a SINGLE additive
|
|
96
|
+
// cascade type that extends the shipped vocabulary, not parallel lens
|
|
97
|
+
// classes. Those strings stay OUT of the Set so writeEdge rejects them.
|
|
98
|
+
'FOLLOWS_FROM',
|
|
99
|
+
// Phase 129-03 extension (Spine Repair; OPERATOR_TRANSITION is the typed edge
|
|
100
|
+
// that lib/conversation/operator.cjs used to write via a direct node:sqlite
|
|
101
|
+
// INSERT bypass -- a baselined Phase 128 substrate violation). This is the
|
|
102
|
+
// legal home for that edge: routing the write through navigation.writeEdge
|
|
103
|
+
// (the chokepoint) RETIRES the bypass while preserving the edge the bypass
|
|
104
|
+
// produced (the OPERATOR_TRANSITION row between two operator nodes per Canon
|
|
105
|
+
// Part 4). Consumer = lib/core/navigation/spine-events.cjs::logOperatorTransition
|
|
106
|
+
// (when payload.write_transition_edge is true), called by operator.cjs's
|
|
107
|
+
// transition() path. Mirrors the Phase 129-01 FOLLOWS_FROM additive idiom.
|
|
108
|
+
//
|
|
109
|
+
// Canon Part 8: writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
110
|
+
// OPERATOR_TRANSITION never crosses to Brain. The five-operator vocabulary
|
|
111
|
+
// is generic; only the generic operator names land on the edge.
|
|
112
|
+
'OPERATOR_TRANSITION',
|
|
113
|
+
// Phase 130-01 extension (Lens-Engine Skeleton; the two lens-engine cascade
|
|
114
|
+
// edges that close review finding H2, the edge-allowlist bypass). INFORMS is
|
|
115
|
+
// the lens-engine onAccept cascade edge -- a lens finding INFORMS a target
|
|
116
|
+
// node (the engine's onAccept path writes it via writeEdge). REJECTED_BECAUSE
|
|
117
|
+
// is the lens-engine onReject rejection-as-data edge per Canon Part 4 ("why
|
|
118
|
+
// not" is graph data): the engine's onReject path records WHY a lens finding
|
|
119
|
+
// was rejected so the next cross-relationship scan learns what not to surface.
|
|
120
|
+
// Mirrors the Phase 129-03 OPERATOR_TRANSITION additive idiom verbatim.
|
|
121
|
+
//
|
|
122
|
+
// INFORMS was NAMED in the shipped-vocabulary comment since Phase 129-01
|
|
123
|
+
// (INFORMS / CONTRADICTS / CONVERGES / INVALIDATES / ENABLES) but was never
|
|
124
|
+
// actually a member of this Set -- so writeEdge would have rejected it. This
|
|
125
|
+
// lands it, closing review finding H2 (the bypass where the engine would
|
|
126
|
+
// otherwise write an edge type writeEdge rejects).
|
|
127
|
+
//
|
|
128
|
+
// Canon Part 8: properties are ENUM-ONLY (a surface scalar). REJECTED_BECAUSE
|
|
129
|
+
// carries a single reason scalar -- a short enum string such as low_evidence
|
|
130
|
+
// / off_topic / duplicate / out_of_scope -- never freeform user content, and
|
|
131
|
+
// never crosses to Brain. writeEdge takes (db, params) over a LOCAL room.db
|
|
132
|
+
// handle.
|
|
133
|
+
//
|
|
134
|
+
// The dual-graph proposal's lens-class taxonomy (ASSOCIATION_LENS /
|
|
135
|
+
// TRANSITION_LENS) stays REJECTED per the 2026-05-16 dual-graph verdict --
|
|
136
|
+
// those strings stay OUT of the Set so writeEdge rejects them.
|
|
137
|
+
'INFORMS',
|
|
138
|
+
'REJECTED_BECAUSE',
|
|
139
|
+
// Phase 131-01 extension (Research as Graph-Aware Workflow; the two source-lens
|
|
140
|
+
// cascade edges that close the LOCKED Phase 136 forward contract -- CONTRADICTS
|
|
141
|
+
// and SUPERSEDES are added ADDITIVELY to this closed allow-list, never invented
|
|
142
|
+
// per-phase). They EXTEND the shipped vocabulary (INFORMS / REJECTED_BECAUSE
|
|
143
|
+
// shipped at 130-01) per the 4.8 re-baseline forward-contract lock:
|
|
144
|
+
// CONTRADICTS is the finding-kills-an-existing-claim edge -- a research
|
|
145
|
+
// EvidenceClaim node CONTRADICTS a target claim/assumption when the finding
|
|
146
|
+
// invalidates it (Stage 7 ACCEPT path; Phase 136 renders it as BOTH a graph
|
|
147
|
+
// edge AND a sentence per D-06).
|
|
148
|
+
// SUPERSEDES is the better-evidence-tier-version edge -- a higher-tier
|
|
149
|
+
// EvidenceClaim SUPERSEDES a lower-tier prior claim/EvidenceClaim.
|
|
150
|
+
// Mirrors the Phase 130-01 INFORMS / REJECTED_BECAUSE additive idiom verbatim.
|
|
151
|
+
//
|
|
152
|
+
// Canon Part 4: every choice is graph data; CONTRADICTS / SUPERSEDES ARE the
|
|
153
|
+
// graph-native artifact of the Stage 7 wiring decision.
|
|
154
|
+
// Canon Part 8: properties are ENUM-ONLY (a surface reason scalar -- a short
|
|
155
|
+
// enum string such as finding_kills_claim / higher_evidence_tier); never
|
|
156
|
+
// freeform user content, never crosses to Brain. writeEdge takes (db, params)
|
|
157
|
+
// over a LOCAL room.db handle.
|
|
158
|
+
//
|
|
159
|
+
// The cascade-edge targets are canonical correlation_ids (Phase 130.7
|
|
160
|
+
// computeCorrelationId), NOT raw names -- so edges do not fork across
|
|
161
|
+
// cross-label duplicates. The wirer (Plan 04) resolves the canonical id
|
|
162
|
+
// before calling writeEdge; this Set only governs the predicate vocabulary.
|
|
163
|
+
'CONTRADICTS',
|
|
164
|
+
'SUPERSEDES',
|
|
165
|
+
// Phase 139-03 extension (Doctor Accumulative Engine -- Umbilical Cord, the
|
|
166
|
+
// FIRST registered accumulative-engine module). AFFILIATED_WITH is the typed
|
|
167
|
+
// edge a `.umbilical` cord projects into its TARGET room's room.db: a non-room
|
|
168
|
+
// project (code / deck / research / deploy / doc / data tree) declares its
|
|
169
|
+
// affiliation to a registered room via a `.umbilical` marker, and the doctor
|
|
170
|
+
// umbilical module projects exactly ONE AFFILIATED_WITH edge per marker via
|
|
171
|
+
// writeEdge. Added ADDITIVELY to this closed allow-list, never invented
|
|
172
|
+
// per-phase -- mirrors the Phase 131-01 CONTRADICTS / SUPERSEDES additive
|
|
173
|
+
// idiom verbatim.
|
|
174
|
+
//
|
|
175
|
+
// umbilical_storage LOCKED decision (Phase 139-CONTEXT.md): cords are
|
|
176
|
+
// authoritative at the REGISTRY layer (cross-tree, many-to-many) and are
|
|
177
|
+
// PROJECTED into each room.db as LOCAL AFFILIATED_WITH edges. The cord is
|
|
178
|
+
// the cross-tree source of truth; the edge is its per-room projection.
|
|
179
|
+
//
|
|
180
|
+
// Canon Part 8: the AFFILIATED_WITH edge is a LOCAL edge written into the
|
|
181
|
+
// TARGET room's OWN room.db ONLY -- NEVER a raw cross-room edge (no second
|
|
182
|
+
// room's db is opened to write it), and NEVER crosses to Brain. Properties
|
|
183
|
+
// are ENUM/scalar ONLY (relation enum + born ISO date); the marker's freeform
|
|
184
|
+
// `note:` field NEVER lands on the edge (it stays LOCAL to the marker file).
|
|
185
|
+
// writeEdge takes (db, params) over a LOCAL room.db handle.
|
|
186
|
+
'AFFILIATED_WITH',
|
|
187
|
+
// Phase 143.1-03 extension (Dial-TUI Capability Selector; DIALTUI-06 +
|
|
188
|
+
// DIALTUI-08 -- the two dial-decision cascade edges closeReach() writes).
|
|
189
|
+
// Added ADDITIVELY to this closed allow-list, never invented per-phase --
|
|
190
|
+
// mirrors the Phase 139-03 AFFILIATED_WITH additive idiom verbatim. The floor
|
|
191
|
+
// (DEFERRED / REJECTED + every prior type) is byte-identical except these two
|
|
192
|
+
// additions; tests assert a FLOOR + named membership, never an exact count,
|
|
193
|
+
// so this cannot regress baseline.
|
|
194
|
+
//
|
|
195
|
+
// PIVOTED -- DIALTUI-06. The "why not the recommendation" edge: when
|
|
196
|
+
// the navigator rotates the dial OFF the Recommended reach and commits a
|
|
197
|
+
// different one, closeReach writes a PIVOTED edge FROM the chosen reach TO
|
|
198
|
+
// the declined-recommended one. Canon Part 4: "why not" is graph data.
|
|
199
|
+
//
|
|
200
|
+
// Canon Part 8 -- ENUM-ONLY props: {declined_recommended:'cmd:...',
|
|
201
|
+
// margin (a numeric scalar), decision_id (a generated handle)}. NO
|
|
202
|
+
// freeform user content ever lands on a PIVOTED edge -- the same hard
|
|
203
|
+
// constraint the FOLLOWS_FROM precedent (line 79) carries. writeEdge
|
|
204
|
+
// takes (db, params) over a LOCAL room.db handle; PIVOTED never crosses
|
|
205
|
+
// to Brain.
|
|
206
|
+
//
|
|
207
|
+
// SELECTED_REACH -- DIALTUI-08 + FILEVAL-01. Every committed reach (sync OR
|
|
208
|
+
// pivot) writes ONE SELECTED_REACH edge FROM the active focus node TO
|
|
209
|
+
// cmd:<command> with props {jtbd, framework, recommended, decision_id}.
|
|
210
|
+
// This closes the Part 3 Layer-3 gap (the selection becomes graph data at
|
|
211
|
+
// the selection moment) and satisfies FILEVAL-01.
|
|
212
|
+
//
|
|
213
|
+
// Canon Part 9 carve-out: SELECTED_REACH is SYSTEM BOOKKEEPING
|
|
214
|
+
// (created_by=system, exempt from human-confirm), kept DISTINCT from any
|
|
215
|
+
// confirmNode truth-claim promotion. A truth-claim promotion stays on
|
|
216
|
+
// the confirmNode human-byUser path; closeReach never folds it into the
|
|
217
|
+
// SELECTED_REACH write. writeEdge takes (db, params) over a LOCAL
|
|
218
|
+
// room.db handle; SELECTED_REACH never crosses to Brain.
|
|
219
|
+
'PIVOTED',
|
|
220
|
+
'SELECTED_REACH',
|
|
221
|
+
// Phase 149-01 extension (GSD Planning Artifacts as Local-Graph Members; the
|
|
222
|
+
// two GSD-lineage cascade edges the planning-artifact writer needs). Added
|
|
223
|
+
// ADDITIVELY to this closed allow-list, never invented per-phase -- mirrors
|
|
224
|
+
// the Phase 143.1-03 PIVOTED / SELECTED_REACH additive idiom verbatim. The
|
|
225
|
+
// floor (DEFERRED / REJECTED + every prior type) is byte-identical except
|
|
226
|
+
// these two additions; tests assert a FLOOR + named membership, never an
|
|
227
|
+
// exact count, so this cannot regress baseline. INFORMS (line 127) is the
|
|
228
|
+
// third lineage type and was already a member; these two complete the
|
|
229
|
+
// FEEDS_INTO / VALIDATES / INFORMS lineage triple the SPEC names.
|
|
230
|
+
//
|
|
231
|
+
// FEEDS_INTO -- GAM-03. The artifact-lineage spine edge: SPEC FEEDS_INTO
|
|
232
|
+
// CONTEXT FEEDS_INTO PLAN (and PLAN FEEDS_INTO a requirement when that
|
|
233
|
+
// reading fits). The directed "this artifact informs the next stage of
|
|
234
|
+
// the GSD lifecycle" edge.
|
|
235
|
+
//
|
|
236
|
+
// VALIDATES -- GAM-03. The verification-lineage edge: a VERIFICATION
|
|
237
|
+
// artifact VALIDATES a requirement (or the owning PLAN). The directed
|
|
238
|
+
// "this artifact confirms that node was satisfied" edge.
|
|
239
|
+
//
|
|
240
|
+
// Canon Part 4: every choice is graph data; the GSD lineage edges ARE the
|
|
241
|
+
// graph-native artifact of the planning-doc lifecycle (Canon Part 9: files
|
|
242
|
+
// preserve meaning, SQL remembers and navigates).
|
|
243
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a phase id + an artifact-type
|
|
244
|
+
// enum); the artifact BODY never lands on the edge. writeEdge takes
|
|
245
|
+
// (db, params) over a LOCAL room.db handle; FEEDS_INTO / VALIDATES never
|
|
246
|
+
// cross to Brain. Cross-room aggregation is prevented structurally:
|
|
247
|
+
// writeEdge(db, params) only ever holds the one db handle its caller
|
|
248
|
+
// passed in, so it is physically incapable of opening or writing a
|
|
249
|
+
// second room's db (Phase 8 cross-room fence; no runtime assertion
|
|
250
|
+
// exists because no code path has been found or hypothesized where a
|
|
251
|
+
// handle is swapped mid-call -- see 273-RESEARCH.md D-04).
|
|
252
|
+
//
|
|
253
|
+
// Emitted by: lib/core/navigation/planning-artifacts.cjs writeLineageEdge,
|
|
254
|
+
// which constrains its accepted set to the LINEAGE subset
|
|
255
|
+
// {FEEDS_INTO, VALIDATES, INFORMS} -- a subset of this allow-list, so this
|
|
256
|
+
// Set stays the single source of truth for the predicate vocabulary.
|
|
257
|
+
'FEEDS_INTO',
|
|
258
|
+
'VALIDATES',
|
|
259
|
+
// Phase 150-01 extension (Memory Cortex as Graph Members; the three cortex
|
|
260
|
+
// lineage cascade edges the memory-artifact writer needs). Added ADDITIVELY to
|
|
261
|
+
// this closed allow-list, never invented per-phase -- mirrors the Phase 149-01
|
|
262
|
+
// FEEDS_INTO / VALIDATES additive idiom verbatim. The floor (DEFERRED /
|
|
263
|
+
// REJECTED + every prior type) is byte-identical except these three additions;
|
|
264
|
+
// tests assert a FLOOR + named membership, never an exact count, so this cannot
|
|
265
|
+
// regress baseline. INFORMS (line 127) is the fourth cortex type and was
|
|
266
|
+
// already a member; these three complete the STATES / SUPPORTS / INFORMS /
|
|
267
|
+
// DESCRIBES cortex lineage taxonomy the SPEC names.
|
|
268
|
+
//
|
|
269
|
+
// STATES -- MEM-01. The governing-thought-states-section edge: a
|
|
270
|
+
// governing_thought node STATES the section memory_artifact it summarizes.
|
|
271
|
+
//
|
|
272
|
+
// SUPPORTS -- MEM-01. The claim-supports-governing-thought edge: a MECE
|
|
273
|
+
// claim node SUPPORTS the governing_thought it underpins.
|
|
274
|
+
//
|
|
275
|
+
// DESCRIBES -- MEM-01. The persona-describes-room edge: a navigator_persona
|
|
276
|
+
// node DESCRIBES the room node.
|
|
277
|
+
//
|
|
278
|
+
// Canon Part 4: every choice is graph data; the cortex lineage edges ARE the
|
|
279
|
+
// graph-native artifact of the user-memory lifecycle (Canon Part 9: files
|
|
280
|
+
// preserve meaning, SQL remembers and navigates).
|
|
281
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a section id + a kind enum);
|
|
282
|
+
// the memory BODY never lands on the edge. writeEdge takes (db, params) over
|
|
283
|
+
// a LOCAL room.db handle; STATES / SUPPORTS / DESCRIBES never cross to Brain.
|
|
284
|
+
// Cross-room aggregation is prevented structurally: writeEdge(db, params)
|
|
285
|
+
// only ever holds the one db handle its caller passed in, so it is
|
|
286
|
+
// physically incapable of opening or writing a second room's db (Phase 8
|
|
287
|
+
// cross-room fence; no runtime assertion exists because no code path has
|
|
288
|
+
// been found or hypothesized where a handle is swapped mid-call -- see
|
|
289
|
+
// 273-RESEARCH.md D-04).
|
|
290
|
+
//
|
|
291
|
+
// Emitted by: lib/core/navigation/memory-artifacts.cjs writeCortexLineageEdge,
|
|
292
|
+
// which constrains its accepted set to the CORTEX subset
|
|
293
|
+
// {STATES, SUPPORTS, INFORMS, DESCRIBES} -- a subset of this allow-list, so
|
|
294
|
+
// this Set stays the single source of truth for the predicate vocabulary.
|
|
295
|
+
'STATES',
|
|
296
|
+
'SUPPORTS',
|
|
297
|
+
'DESCRIBES',
|
|
298
|
+
// Phase 150.8 extension (Meeting Micro-Knowledge DIKW Filing; the three
|
|
299
|
+
// Knowledge-rung relationship edges the typed-claim writer needs to express
|
|
300
|
+
// refinement + causal + instantiation structure between claim nodes). Added
|
|
301
|
+
// ADDITIVELY to this closed allow-list, never invented per-phase -- mirrors
|
|
302
|
+
// the Phase 150-01 STATES / SUPPORTS / DESCRIBES additive idiom verbatim. The
|
|
303
|
+
// floor (DEFERRED / REJECTED + every prior type) is byte-identical except
|
|
304
|
+
// these three additions; tests assert a FLOOR + named membership, never an
|
|
305
|
+
// exact count, so this cannot regress baseline.
|
|
306
|
+
//
|
|
307
|
+
// NAVIGATOR-GATED Canon Part 4 + Phase 108 amendment (AskUserQuestion approval
|
|
308
|
+
// D-150.8, 2026-06-12). Unlike the routine additive-without-amendment idiom
|
|
309
|
+
// above, this trio MOVES A FROZEN CONSTITUTIONAL SET: a navigator approved
|
|
310
|
+
// the closed-set change via a blocking AskUserQuestion BEFORE these bytes
|
|
311
|
+
// landed, mirroring the Phase 148 D-09 reach-count amendment procedure. The
|
|
312
|
+
// three deferred types (GENERALIZES / CONTRADICTS_CONDITIONALLY /
|
|
313
|
+
// SUPERSEDES_v2) stay OUT (SEED-023, v1.14.0) so writeEdge rejects them.
|
|
314
|
+
//
|
|
315
|
+
// REFINES -- DIKW-04. The refinement edge: a new claim TIGHTENS or
|
|
316
|
+
// CONDITIONS a prior claim without invalidating it. Today the schema
|
|
317
|
+
// forces a wrong binary choice between INFORMS (too weak) and CONTRADICTS
|
|
318
|
+
// (wrong); REFINES is the missing middle. Source = the refining claim,
|
|
319
|
+
// target = the refined-prior claim.
|
|
320
|
+
//
|
|
321
|
+
// ROOT_CAUSES -- DIKW-04. The directional causal-mechanism edge:
|
|
322
|
+
// source = the cause, target = the effect. A causal claim ROOT_CAUSES the
|
|
323
|
+
// outcome it explains; makes the causal chain queryable as graph paths.
|
|
324
|
+
//
|
|
325
|
+
// INSTANTIATES -- DIKW-04. The example-evidences-abstraction edge: a
|
|
326
|
+
// concrete example claim INSTANTIATES an abstract claim it is an instance
|
|
327
|
+
// of. Source = the concrete instance, target = the abstract claim.
|
|
328
|
+
//
|
|
329
|
+
// Canon Part 4: every choice is graph data; REFINES / ROOT_CAUSES /
|
|
330
|
+
// INSTANTIATES ARE the graph-native artifact of the Knowledge-rung filing
|
|
331
|
+
// decision (Canon Part 9: files preserve meaning, SQL remembers and
|
|
332
|
+
// navigates).
|
|
333
|
+
// Canon Part 8: properties are ENUM/scalar ONLY. The claim/segment BODY never
|
|
334
|
+
// lands on the edge; valid_from / valid_until (TV-01) are SCALARS that ride
|
|
335
|
+
// the existing writeEdge properties JSON param with ZERO signature change.
|
|
336
|
+
// writeEdge takes (db, params) over a LOCAL room.db handle; REFINES /
|
|
337
|
+
// ROOT_CAUSES / INSTANTIATES never cross to Brain. Cross-room aggregation
|
|
338
|
+
// forbidden.
|
|
339
|
+
'REFINES',
|
|
340
|
+
'ROOT_CAUSES',
|
|
341
|
+
'INSTANTIATES',
|
|
342
|
+
// Phase 163-01 extension (Trending-to-the-Absurd Harness; the four
|
|
343
|
+
// domain-taxonomy relationship edges the connective taxonomy layer needs to
|
|
344
|
+
// make domains / subdomains / focus_areas first-class connected graph citizens
|
|
345
|
+
// per D-163-01). Added ADDITIVELY to this closed allow-list, never invented
|
|
346
|
+
// per-phase -- mirrors the Phase 150.8 REFINES / ROOT_CAUSES / INSTANTIATES
|
|
347
|
+
// additive idiom verbatim. The floor (DEFERRED / REJECTED + every prior type)
|
|
348
|
+
// is byte-identical except these four additions; tests assert a FLOOR + named
|
|
349
|
+
// membership, never an exact count, so this cannot regress baseline.
|
|
350
|
+
//
|
|
351
|
+
// NAVIGATOR-GATED Canon Part 4 + Phase 108 amendment (D-163-03, navigator-LOCKED
|
|
352
|
+
// 2026-06-17). Unlike the routine additive-without-amendment idiom above, this
|
|
353
|
+
// set of four MOVES A FROZEN CONSTITUTIONAL SET: a navigator ratified the
|
|
354
|
+
// closed-set change at a blocking checkpoint BEFORE these bytes landed,
|
|
355
|
+
// mirroring the Phase 150.8 D-150.8 trio and the Phase 148 D-09 reach-count
|
|
356
|
+
// amendment procedure.
|
|
357
|
+
//
|
|
358
|
+
// DECOMPOSED_INTO -- the hierarchy edge. Source = the parent taxonomy node,
|
|
359
|
+
// target = the child. Legal endpoints are domain -> subdomain and
|
|
360
|
+
// subdomain -> focus_area ONLY. Makes the domain tree queryable as graph
|
|
361
|
+
// paths (walk a domain down to its focus areas and back).
|
|
362
|
+
//
|
|
363
|
+
// PART_OF -- the structural-membership edge. Source = the member node, target
|
|
364
|
+
// = the domain / subdomain it belongs to. Legal source endpoints are ANY
|
|
365
|
+
// node type (claim / assumption / opportunity / Artifact / Section / trend /
|
|
366
|
+
// CausalClaim); legal target endpoints are domain / subdomain / focus_area.
|
|
367
|
+
// This is the connective edge that lets a domain walk to everything it
|
|
368
|
+
// touches (D-163-01).
|
|
369
|
+
//
|
|
370
|
+
// TAGGED_WITH -- the lightweight categorization edge. Source = any node,
|
|
371
|
+
// target = a domain / subdomain (the connective taxonomy tag). Weaker than
|
|
372
|
+
// PART_OF: a tag relationship, not a structural-membership claim.
|
|
373
|
+
//
|
|
374
|
+
// RELATED_TO -- the symmetric cross-domain relatedness edge between two
|
|
375
|
+
// taxonomy nodes (domain <-> domain, subdomain <-> subdomain) when a theme
|
|
376
|
+
// spans them. The undirected sibling of DECOMPOSED_INTO's hierarchy.
|
|
377
|
+
//
|
|
378
|
+
// Canon Part 4: every choice is graph data; DECOMPOSED_INTO / PART_OF /
|
|
379
|
+
// TAGGED_WITH / RELATED_TO ARE the graph-native artifact of the connective
|
|
380
|
+
// taxonomy layer (Canon Part 9: files preserve meaning, SQL remembers and
|
|
381
|
+
// navigates).
|
|
382
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (the taxonomy node id + a
|
|
383
|
+
// relation enum); never prose, never a domain/trend BODY. These edges are
|
|
384
|
+
// LOCAL room.db edges; writeEdge takes (db, params) over a LOCAL room.db
|
|
385
|
+
// handle; DECOMPOSED_INTO / PART_OF / TAGGED_WITH / RELATED_TO never cross to
|
|
386
|
+
// Brain. Cross-room aggregation is prevented structurally: writeEdge(db,
|
|
387
|
+
// params) only ever holds the one db handle its caller passed in, so it
|
|
388
|
+
// is physically incapable of opening or writing a second room's db
|
|
389
|
+
// (Phase 8 cross-room fence; no runtime assertion exists because no code
|
|
390
|
+
// path has been found or hypothesized where a handle is swapped
|
|
391
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
392
|
+
'DECOMPOSED_INTO',
|
|
393
|
+
'PART_OF',
|
|
394
|
+
'TAGGED_WITH',
|
|
395
|
+
'RELATED_TO',
|
|
396
|
+
// Phase 168-01 extension (Part 4 edge-vocabulary RECONCILIATION; the three
|
|
397
|
+
// Part-4-blessed cascade edges the Part 9 chokepoint frozen set was MISSING).
|
|
398
|
+
// Added ADDITIVELY to this closed allow-list, never invented per-phase --
|
|
399
|
+
// mirrors the Phase 163-01 DECOMPOSED_INTO / PART_OF / TAGGED_WITH / RELATED_TO
|
|
400
|
+
// additive idiom verbatim. The floor (DEFERRED / REJECTED + every prior type)
|
|
401
|
+
// is byte-identical except these three additions; tests assert a FLOOR + named
|
|
402
|
+
// membership, never an exact count, so this cannot regress baseline.
|
|
403
|
+
//
|
|
404
|
+
// This is a RECONCILIATION, not a net-new vocabulary expansion. Canon Part 4
|
|
405
|
+
// PROSE has ALWAYS declared the cascade edges INFORMS / CONTRADICTS /
|
|
406
|
+
// CONVERGES / INVALIDATES / ENABLES, and the legacy lib/core/lazygraph-ops.cjs
|
|
407
|
+
// path (the Phase 84 cascade path) ALREADY writes all three. But this Part 9
|
|
408
|
+
// writeEdge chokepoint frozen set carried only INFORMS (line 127) + CONTRADICTS
|
|
409
|
+
// (line 153) and never caught up on CONVERGES / INVALIDATES / ENABLES -- so
|
|
410
|
+
// writeEdge rejected three edges the canon already blessed. This block brings
|
|
411
|
+
// the code into line with the already-blessed prose (Canon Part 6 dog-fooding:
|
|
412
|
+
// the plugin must honor its own canon; the drift was a self-CONTRADICTS this
|
|
413
|
+
// phase resolves). Phase 164's issue-tree must emit INVALIDATES / ENABLES via
|
|
414
|
+
// THIS chokepoint, so closing the drift was a blocking prerequisite.
|
|
415
|
+
//
|
|
416
|
+
// NAVIGATOR-GATED Canon Part 4 + Phase 108 amendment (D-168, navigator-LOCKED
|
|
417
|
+
// 2026-06-18). Unlike the routine additive-without-amendment idiom above, this
|
|
418
|
+
// trio MOVES A FROZEN CONSTITUTIONAL SET: a navigator ratified the closed-set
|
|
419
|
+
// reconciliation at a blocking checkpoint BEFORE these bytes landed, mirroring
|
|
420
|
+
// the Phase 163 D-163-03 quad and the Phase 150.8 D-150.8 trio. BELONGS_TO is
|
|
421
|
+
// NOT added (the Phase 164 issue-tree REMAPS it to PART_OF, the structural
|
|
422
|
+
// edge Phase 163 already froze); the lazygraph-ops.cjs legacy-array
|
|
423
|
+
// two-vocabulary unification (HSI_CONNECTION / REVERSE_SALIENT / RESOLVES_VIA
|
|
424
|
+
// etc.) is a deferred follow-on, OUT of scope here.
|
|
425
|
+
//
|
|
426
|
+
// CONVERGES -- the convergence cascade edge (CLAUDE.md cross-relationship
|
|
427
|
+
// rule 3): this artifact's themes appear in 3+ other sections. Source = the
|
|
428
|
+
// converging artifact, target = a section/node the theme converges on.
|
|
429
|
+
//
|
|
430
|
+
// INVALIDATES -- the assumption-stale cascade edge (CLAUDE.md rule 4): this
|
|
431
|
+
// artifact makes an existing assumption stale. Source = the invalidating
|
|
432
|
+
// artifact, target = the now-stale assumption.
|
|
433
|
+
//
|
|
434
|
+
// ENABLES -- the unblocks cascade edge (CLAUDE.md rule 5): this artifact
|
|
435
|
+
// unblocks something in another section. Source = the enabling artifact,
|
|
436
|
+
// target = the unblocked node/section.
|
|
437
|
+
//
|
|
438
|
+
// Canon Part 4: every choice is graph data; CONVERGES / INVALIDATES / ENABLES
|
|
439
|
+
// ARE the graph-native artifact of the cross-relationship scan (Canon Part 9:
|
|
440
|
+
// files preserve meaning, SQL remembers and navigates).
|
|
441
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a relation enum + scalar
|
|
442
|
+
// counts); never prose, never an artifact BODY. These edges are LOCAL room.db
|
|
443
|
+
// edges; writeEdge takes (db, params) over a LOCAL room.db handle; CONVERGES /
|
|
444
|
+
// INVALIDATES / ENABLES never cross to Brain. Cross-room aggregation is prevented structurally:
|
|
445
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
446
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
447
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
448
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
449
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
450
|
+
'CONVERGES',
|
|
451
|
+
'INVALIDATES',
|
|
452
|
+
'ENABLES',
|
|
453
|
+
// Phase 169-00 extension (Graph-Derivation Harness; the room-lineage edge the
|
|
454
|
+
// D-169-11 fractal joint needs to have a LEGAL, graph-navigable frozen-set
|
|
455
|
+
// representation). Added ADDITIVELY to this closed allow-list, never invented
|
|
456
|
+
// per-phase -- mirrors the Phase 168-01 CONVERGES / INVALIDATES / ENABLES
|
|
457
|
+
// additive idiom verbatim. The floor (DEFERRED / REJECTED + every prior type)
|
|
458
|
+
// is byte-identical except this one addition; tests assert a FLOOR + named
|
|
459
|
+
// membership, never an exact count, so this cannot regress baseline.
|
|
460
|
+
//
|
|
461
|
+
// The 8-agent ICM/fractal fan-out (verdict MISSING) proved the joint had no
|
|
462
|
+
// legal home today: PART_OF (above) is the domain-taxonomy structural edge
|
|
463
|
+
// whose legal targets are domain / subdomain / focus_area ONLY (consumed by
|
|
464
|
+
// typed-domain.cjs + get-domains-for-trends.cjs), so a room is an illegal
|
|
465
|
+
// PART_OF target -- writeEdge checks type-membership but NOT endpoints, so a
|
|
466
|
+
// room->room PART_OF would write SILENTLY while breaching the frozen-endpoint
|
|
467
|
+
// contract (a Part 4 self-CONTRADICTS). And BELONGS_TO is NOT a member of this
|
|
468
|
+
// navigation frozen set at all (it lives only in the legacy lazygraph
|
|
469
|
+
// EDGE_TYPES array, written via raw SQL, not this chokepoint), so a child-room
|
|
470
|
+
// BELONGS_TO parent-room via navigation.writeEdge would be REJECTED
|
|
471
|
+
// (invalid_edge_type). NESTED_WITHIN is the clean LEGAL representation: a NEW
|
|
472
|
+
// dedicated lineage type, NOT a widening of PART_OF endpoints, so room-lineage
|
|
473
|
+
// walks never pollute the domain-taxonomy traversals.
|
|
474
|
+
//
|
|
475
|
+
// NAVIGATOR-GATED Canon Part 4 + Phase 108 amendment (D-169-11, navigator-LOCKED
|
|
476
|
+
// / ratified as option-a 2026-06-19). Unlike the routine additive-without-
|
|
477
|
+
// amendment idiom above, this MOVES A FROZEN CONSTITUTIONAL SET: a navigator
|
|
478
|
+
// ratified the closed-set move (mint NESTED_WITHIN, NOT a PART_OF widening,
|
|
479
|
+
// NOT BELONGS_TO) at a blocking checkpoint BEFORE these bytes landed, mirroring
|
|
480
|
+
// the Phase 168 D-168 reconciliation, the Phase 163 D-163-03 quad, and the
|
|
481
|
+
// Phase 150.8 D-150.8 trio.
|
|
482
|
+
//
|
|
483
|
+
// NESTED_WITHIN -- the room-lineage edge. Source = a healed / born CHILD room
|
|
484
|
+
// node id (room:<child-slug>), target = its PARENT room node id
|
|
485
|
+
// (room:<parent-slug>). It is the graph-navigable fractal joint (D-169-11):
|
|
486
|
+
// a graph walk traverses the nested hierarchy up to the parent and
|
|
487
|
+
// (read-side, via the rollup) down to children, expressing the ICM / Simon
|
|
488
|
+
// nested-near-decomposable-hierarchy claim directly (the nested folder
|
|
489
|
+
// hierarchy IS the graph). Plans 04 (the rollup walk) + 07 (the heal lineage
|
|
490
|
+
// edge) BOTH consume this type, so it lands Wave 1, before any consumer.
|
|
491
|
+
//
|
|
492
|
+
// Canon Part 4: every choice is graph data; NESTED_WITHIN IS the graph-native
|
|
493
|
+
// artifact of the room-lineage joint (Canon Part 9: files preserve meaning,
|
|
494
|
+
// SQL remembers and navigates).
|
|
495
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a relation enum + the parent
|
|
496
|
+
// slug handle, e.g. { relation:'nested', parent:'<parent-slug>' }); never
|
|
497
|
+
// prose, never a room/artifact BODY. NESTED_WITHIN is a LOCAL room.db edge in
|
|
498
|
+
// the child's db; writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
499
|
+
// NESTED_WITHIN never crosses to Brain. Cross-room aggregation of the edge is
|
|
500
|
+
// forbidden.
|
|
501
|
+
'NESTED_WITHIN',
|
|
502
|
+
// Phase 205-02 extension (Larry-Loop Elevation FUSION substrate; the ONE additive
|
|
503
|
+
// cross-frame edge the horizontal-elevation move needs -- decision D-Q5 /
|
|
504
|
+
// 205-CONTEXT.md graph-readiness gap-2). Added ADDITIVELY to this closed
|
|
505
|
+
// allow-list, never invented per-phase -- mirrors the Phase 169-00 NESTED_WITHIN
|
|
506
|
+
// additive idiom verbatim. The floor (DEFERRED / REJECTED + every prior type) is
|
|
507
|
+
// byte-identical except these two additions; tests assert a FLOOR + named
|
|
508
|
+
// membership, never an exact count, so this cannot regress baseline. This is the
|
|
509
|
+
// SAME additive idiom the CONTRADICTS (line 153) / SELECTED_REACH (line 210)
|
|
510
|
+
// members were grown by -- 205-CONTEXT.md names them as the precedent.
|
|
511
|
+
//
|
|
512
|
+
// The FUSION cross-frame move (plan 205-07) is the measured highest-value gap:
|
|
513
|
+
// Larry is strong within-frame (vertical) but weak across-frames (5 Test-6
|
|
514
|
+
// horizontal misses). These two edges give the horizontal move a graph-native
|
|
515
|
+
// home so the connection becomes graph data (Canon Part 4) instead of prose.
|
|
516
|
+
//
|
|
517
|
+
// SHARES_JOB -- D-Q5 gap-2. The horizontal-move edge: two Frame nodes SHARE
|
|
518
|
+
// THE SAME JTBD JOB (the containing-system signal that the navigator's two
|
|
519
|
+
// separate ideas may be one argument). Source + target are Frame node ids
|
|
520
|
+
// (frame:<sid>:<hash>, minted by typed-frame.cjs); the shared-job signal is
|
|
521
|
+
// what the cross-frame synthesis writes when it detects the same underlying
|
|
522
|
+
// job across two open frames.
|
|
523
|
+
//
|
|
524
|
+
// ELEVATES_TO -- D-Q5 gap-2. The frame-to-containing-system edge: when the
|
|
525
|
+
// horizontal move NAMES the system that contains both frames, it writes an
|
|
526
|
+
// ELEVATES_TO edge FROM a Frame node TO the containing-system node it was
|
|
527
|
+
// elevated to. The directed "this frame elevates to that containing system"
|
|
528
|
+
// edge that makes the elevation path queryable as graph paths.
|
|
529
|
+
//
|
|
530
|
+
// Canon Part 4: every choice is graph data; SHARES_JOB / ELEVATES_TO ARE the
|
|
531
|
+
// graph-native artifact of the horizontal cross-frame elevation decision (Canon
|
|
532
|
+
// Part 9: files preserve meaning, SQL remembers and navigates).
|
|
533
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a job enum/hash handle + a
|
|
534
|
+
// confidence scalar + a generated decision handle); never prose, never a frame
|
|
535
|
+
// or conversation BODY. These are LOCAL room.db edges; writeEdge takes
|
|
536
|
+
// (db, params) over a LOCAL room.db handle; SHARES_JOB / ELEVATES_TO NEVER
|
|
537
|
+
// cross to Brain (Frame membership + its edges are LOCAL only). Cross-room
|
|
538
|
+
// aggregation forbidden.
|
|
539
|
+
'SHARES_JOB',
|
|
540
|
+
'ELEVATES_TO',
|
|
541
|
+
// Phase 195-04 extension (Fractal Cross-Room Memory; FCM-11 -- the ONE net-new
|
|
542
|
+
// frozen-set member this phase mints). Added ADDITIVELY beside NESTED_WITHIN and
|
|
543
|
+
// the Phase-205 SHARES_JOB / ELEVATES_TO pair, never clobbering them -- the floor
|
|
544
|
+
// (DEFERRED / REJECTED + every prior type) asserts named MEMBERSHIP, never an exact
|
|
545
|
+
// count, so this additive change cannot regress the baseline (and cannot race the
|
|
546
|
+
// concurrent 205 additions to the SAME Set).
|
|
547
|
+
//
|
|
548
|
+
// UMBILICAL_TO vs NESTED_WITHIN -- the axis contrast (encode it, do not conflate):
|
|
549
|
+
// NESTED_WITHIN is a parent-child VERTICAL lineage joint. Source = a CHILD room
|
|
550
|
+
// node (room:<child-slug>), target = its PARENT room node (room:<parent-slug>);
|
|
551
|
+
// it is a LOCAL edge living in the CHILD's own room.db, expressing the nested
|
|
552
|
+
// near-decomposable hierarchy (Simon / ICM). It walks UP and DOWN the tree.
|
|
553
|
+
// UMBILICAL_TO is a PEER-to-peer HORIZONTAL cross-room link. Source =
|
|
554
|
+
// item_in_room_A, target = item_in_room_B (two SIBLING rooms, no lineage
|
|
555
|
+
// between them); it is the cross-room cord the F.8 fan-out (Plan 05) consumes.
|
|
556
|
+
// Unlike NESTED_WITHIN, it does NOT live in a single child's room.db -- it is
|
|
557
|
+
// the single source of truth at the REGISTRY level (.rooms/cross-room store,
|
|
558
|
+
// lib/core/cross-room-store.cjs), because a peer edge belongs to neither room
|
|
559
|
+
// alone. D-03 locks this registry-level single-write-chokepoint placement.
|
|
560
|
+
//
|
|
561
|
+
// Canon Part 4: every choice is graph data; UMBILICAL_TO IS the graph-native
|
|
562
|
+
// artifact of the cross-room peer link (Canon Part 9: files preserve meaning,
|
|
563
|
+
// SQL remembers and navigates).
|
|
564
|
+
// Canon Part 8 (the cross-room fence): properties are ENUM/scalar ONLY --
|
|
565
|
+
// { relevance, signal, linked_at, session_id } -- never prose, never a room /
|
|
566
|
+
// artifact BODY. UMBILICAL_TO edges are LOCAL to the registry store and NEVER
|
|
567
|
+
// egress to the Brain; only aggregate scalars cross a boundary (Appendix D
|
|
568
|
+
// entry 23). This chokepoint validation mirrors writeEdge's ALLOWED_EDGE_TYPES.has
|
|
569
|
+
// discipline at the registry (.rooms/) level.
|
|
570
|
+
'UMBILICAL_TO',
|
|
571
|
+
// Phase 200-02 extension (RS Engine Spine reconciliation; SEED-030 / D-200-2 --
|
|
572
|
+
// the TWO RS discovery edge types the Part-9 chokepoint frozen set was MISSING).
|
|
573
|
+
// Added ADDITIVELY to this closed allow-list, never invented per-phase -- mirrors
|
|
574
|
+
// the Phase 195-04 UMBILICAL_TO additive idiom verbatim. The floor (DEFERRED /
|
|
575
|
+
// REJECTED + every prior type) is byte-identical except these two additions; tests
|
|
576
|
+
// assert a FLOOR + named membership, never an exact count, so this cannot regress
|
|
577
|
+
// baseline (and cannot race any concurrent addition to the SAME Set).
|
|
578
|
+
//
|
|
579
|
+
// This is a RECONCILIATION, not a net-new vocabulary. The RS dual-tier writers
|
|
580
|
+
// (rs-neo4j-writer.cjs Tier 1 + rs-sqlite-mirror.cjs Tier 0) emit FIVE edge
|
|
581
|
+
// types -- DISCOVERED / DERIVED_FROM / ENABLES / AUTHORED_BY / AFFILIATED_WITH.
|
|
582
|
+
// THREE were already members (DERIVED_FROM line 52, AFFILIATED_WITH line 176,
|
|
583
|
+
// ENABLES line 422), so rerouting the RS Tier-0 edge writes through the Part-9
|
|
584
|
+
// navigation.writeEdge chokepoint (mirroring lib/core/breakthrough/schema.cjs:
|
|
585
|
+
// nodes via lazygraph, edges via navigation.writeEdge) was rejected only for the
|
|
586
|
+
// remaining two. This block lands them, closing the drift: rs-sqlite-mirror wrote
|
|
587
|
+
// these edges DIRECTLY to the edges table via lazygraph, bypassing the chokepoint
|
|
588
|
+
// (a Part-9 gap the recon flagged). Wave 1 mints the types before Wave 2's reroute
|
|
589
|
+
// consumes them (same land-type-before-consumer idiom as NESTED_WITHIN line 471).
|
|
590
|
+
//
|
|
591
|
+
// NAVIGATOR-GATED Canon Part 4 + Phase 108 amendment (D-200-2, navigator-ratified
|
|
592
|
+
// via the "Extend navigation vocab" blocking checkpoint 2026-07-01). Unlike the
|
|
593
|
+
// routine additive-without-amendment idiom, this MOVES A FROZEN CONSTITUTIONAL
|
|
594
|
+
// SET: the navigator ratified minting exactly DISCOVERED + AUTHORED_BY BEFORE these
|
|
595
|
+
// bytes landed, mirroring the Phase 168 D-168 reconciliation and the Phase 169-00
|
|
596
|
+
// NESTED_WITHIN mint.
|
|
597
|
+
//
|
|
598
|
+
// DISCOVERED -- the discovery-surfaces-a-salient edge. Source = an RSDiscovery
|
|
599
|
+
// node (rsd-<hash>), target = the ReverseSalient node (rs-<hash>) it surfaced.
|
|
600
|
+
// The root edge of the RS discovery sub-graph.
|
|
601
|
+
//
|
|
602
|
+
// AUTHORED_BY -- the paper-authored-by-author edge. Source = a Paper node,
|
|
603
|
+
// target = an Author node (name|orcid composite id). Makes the expert graph
|
|
604
|
+
// (SEED-030) walkable from a discovery's papers to their authors.
|
|
605
|
+
//
|
|
606
|
+
// Canon Part 4: every choice is graph data; DISCOVERED / AUTHORED_BY ARE the
|
|
607
|
+
// graph-native artifact of the reverse-salient discovery (Canon Part 9: files
|
|
608
|
+
// preserve meaning, SQL remembers and navigates).
|
|
609
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (the RS deterministic node-id
|
|
610
|
+
// handles + a schema_version scalar); never prose, never a paper/abstract BODY.
|
|
611
|
+
// Author/Paper/Institution are LOCAL per the D-200-2 local-only expert-graph
|
|
612
|
+
// resolution. writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
613
|
+
// DISCOVERED / AUTHORED_BY never cross to Brain. Cross-room aggregation is prevented structurally:
|
|
614
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
615
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
616
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
617
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
618
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
619
|
+
'DISCOVERED',
|
|
620
|
+
'AUTHORED_BY',
|
|
621
|
+
// Phase 189-01 extension (HITL Memory Governance; SEED-040 / HMG-08 -- the THREE
|
|
622
|
+
// net-new governance-bookkeeping edge types the human-in-the-loop memory-write path
|
|
623
|
+
// needs). Added ADDITIVELY to this closed allow-list, never invented per-phase --
|
|
624
|
+
// mirrors the Phase 195-04 UMBILICAL_TO / Phase 205-02 SHARES_JOB / ELEVATES_TO
|
|
625
|
+
// additive idiom verbatim (the LIGHTER additive-comment-only idiom, not the
|
|
626
|
+
// navigator-gated blocking-checkpoint ceremony: SEED-040's Provenance line already
|
|
627
|
+
// records navigator-direction 2026-06-30, Shape-F explainer session, and the two most
|
|
628
|
+
// recent precedents 195-04 / 205-02 used this lighter idiom). The floor (DEFERRED /
|
|
629
|
+
// REJECTED + every prior type) is byte-identical except these three additions; the
|
|
630
|
+
// floor test asserts named MEMBERSHIP, never an exact `.size` / count, so this cannot
|
|
631
|
+
// regress baseline (and cannot race any concurrent addition to the SAME Set).
|
|
632
|
+
//
|
|
633
|
+
// These are the F.8/F.9 memory-governance edges (Phase 188 F.8/F.9 shipped; Phase 189
|
|
634
|
+
// repoints them at the general memory-write path per SEED-040). MEMORY_LAYER is NOT
|
|
635
|
+
// a fourth edge type: it does not read as a directed relationship between two nodes,
|
|
636
|
+
// it reads as an attribute of WHERE a memory lives, so it rides as the enum-scalar
|
|
637
|
+
// `memory_layer` PROPERTY on ATTRIBUTED_TO (values within-session | across-session |
|
|
638
|
+
// cross-room, reusing the exact three strings the shipped /mos:memory three-layer
|
|
639
|
+
// model already uses). Exactly THREE edge types are minted, not four.
|
|
640
|
+
//
|
|
641
|
+
// REMEMBERED_AS -- the "this got durably filed" governance-bookkeeping edge.
|
|
642
|
+
// Source = the candidate / proposed node id, target = the section or typed node it
|
|
643
|
+
// was filed as. Written when a human confirms a candidate and it lands durably.
|
|
644
|
+
//
|
|
645
|
+
// ATTRIBUTED_TO -- the WHO-decided edge. Source = the same candidate node id,
|
|
646
|
+
// target = a session / persona identity handle (e.g. session:<id>). Carries the WHO
|
|
647
|
+
// decision plus the `memory_layer` enum property. WHO is an explicit choice, never a
|
|
648
|
+
// silent default.
|
|
649
|
+
//
|
|
650
|
+
// NOT_REMEMBERED_BECAUSE -- the rejection-as-data edge (Canon Part 4: "why not" is
|
|
651
|
+
// graph data). Source / target = the SAME pair REMEMBERED_AS would have used had the
|
|
652
|
+
// confirm toggle been ON. Mirrors the REJECTED_BECAUSE (line 128) /
|
|
653
|
+
// NOT_LINKED_BECAUSE precedent: a declined candidate records WHY so the next
|
|
654
|
+
// memory-ranking pass learns what not to surface.
|
|
655
|
+
//
|
|
656
|
+
// Canon Part 4: every choice is graph data; REMEMBERED_AS / ATTRIBUTED_TO /
|
|
657
|
+
// NOT_REMEMBERED_BECAUSE ARE the graph-native artifact of the human-in-the-loop
|
|
658
|
+
// memory-governance decision (Canon Part 9: files preserve meaning, SQL remembers
|
|
659
|
+
// and navigates; only a human confirms a truth-claim node).
|
|
660
|
+
// Canon Part 8: properties on all three are ENUM / scalar ONLY (a reason enum, a
|
|
661
|
+
// memory_layer enum, a section / session handle); NEVER prose, NEVER a candidate /
|
|
662
|
+
// artifact BODY. These are LOCAL room.db edges; writeEdge takes (db, params) over a
|
|
663
|
+
// LOCAL room.db handle; REMEMBERED_AS / ATTRIBUTED_TO / NOT_REMEMBERED_BECAUSE NEVER
|
|
664
|
+
// cross to Brain. Cross-room aggregation is prevented structurally:
|
|
665
|
+
// writeEdge(db, params) only ever holds the one db handle its caller
|
|
666
|
+
// passed in, so it is physically incapable of opening or writing a
|
|
667
|
+
// second room's db (Phase 8 cross-room fence; no runtime assertion
|
|
668
|
+
// exists because no code path has been found or hypothesized where a
|
|
669
|
+
// handle is swapped mid-call -- see 273-RESEARCH.md D-04).
|
|
670
|
+
'REMEMBERED_AS',
|
|
671
|
+
'ATTRIBUTED_TO',
|
|
672
|
+
'NOT_REMEMBERED_BECAUSE',
|
|
673
|
+
// Phase 218-01 extension (Entity Extraction Pipeline; D-02 -- the THREE
|
|
674
|
+
// domain-relationship edge types the entity extractor needs to wire
|
|
675
|
+
// company / technology / market nodes to each other and to their source
|
|
676
|
+
// artifacts). Added ADDITIVELY to this closed allow-list, never invented
|
|
677
|
+
// per-phase -- mirrors the Phase 189-01 REMEMBERED_AS / ATTRIBUTED_TO /
|
|
678
|
+
// NOT_REMEMBERED_BECAUSE additive idiom verbatim (the LIGHTER additive-
|
|
679
|
+
// comment-only idiom, not the navigator-gated blocking-checkpoint ceremony;
|
|
680
|
+
// this is a routine additive vocabulary extension, the same lighter idiom the
|
|
681
|
+
// two most recent precedents 195-04 / 189-01 used). The floor (DEFERRED /
|
|
682
|
+
// REJECTED + every prior type) is byte-identical except these three additions;
|
|
683
|
+
// the floor test asserts named MEMBERSHIP, never an exact `.size` / count, so
|
|
684
|
+
// this cannot regress baseline (post-phase count = 40, satisfying REQ-2's
|
|
685
|
+
// ">= 40 entries").
|
|
686
|
+
//
|
|
687
|
+
// COMPETES_WITH -- the rivalry edge. Source = a company / technology node,
|
|
688
|
+
// target = the rival company / technology it competes with. Makes the
|
|
689
|
+
// competitive landscape queryable as graph paths.
|
|
690
|
+
//
|
|
691
|
+
// USES_COMPONENT -- the dependency edge. Source = a company / technology
|
|
692
|
+
// node, target = the technology / component it uses. The directed "this
|
|
693
|
+
// entity is built on that component" edge.
|
|
694
|
+
//
|
|
695
|
+
// SUPPLIES_TO -- the supply-chain edge. Source = a supplier company,
|
|
696
|
+
// target = the company it supplies. The directed "this supplier feeds
|
|
697
|
+
// that customer" edge.
|
|
698
|
+
//
|
|
699
|
+
// Canon Part 4: every choice is graph data; COMPETES_WITH / USES_COMPONENT /
|
|
700
|
+
// SUPPLIES_TO ARE the graph-native artifact of the entity-relationship
|
|
701
|
+
// extraction (Canon Part 9: files preserve meaning, SQL remembers and
|
|
702
|
+
// navigates).
|
|
703
|
+
// Canon Part 8: properties are ENUM / scalar ONLY (a relation enum + scalar
|
|
704
|
+
// handles); NEVER prose, NEVER an artifact / entity BODY. These are LOCAL
|
|
705
|
+
// room.db edges; writeEdge takes (db, params) over a LOCAL room.db handle;
|
|
706
|
+
// COMPETES_WITH / USES_COMPONENT / SUPPLIES_TO NEVER cross to Brain.
|
|
707
|
+
// Cross-room aggregation is prevented structurally: writeEdge(db, params)
|
|
708
|
+
// only ever holds the one db handle its caller passed in, so it is
|
|
709
|
+
// physically incapable of opening or writing a second room's db (Phase 8
|
|
710
|
+
// cross-room fence; no runtime assertion exists because no code path has
|
|
711
|
+
// been found or hypothesized where a handle is swapped mid-call -- see
|
|
712
|
+
// 273-RESEARCH.md D-04).
|
|
713
|
+
//
|
|
714
|
+
// Emitted by: lib/core/navigation/typed-entity.cjs linkEntityRelations, which
|
|
715
|
+
// constrains its accepted set to the ENTITY_EDGE_SUBSET {COMPETES_WITH,
|
|
716
|
+
// USES_COMPONENT, SUPPLIES_TO} plus the already-existing DESCRIBES artifact-
|
|
717
|
+
// link type -- a subset of this allow-list, so this Set stays the single
|
|
718
|
+
// source of truth for the predicate vocabulary.
|
|
719
|
+
'COMPETES_WITH',
|
|
720
|
+
'USES_COMPONENT',
|
|
721
|
+
'SUPPLIES_TO',
|
|
722
|
+
// Quick task 260725-9ca extension (Local Reified-Claim Events; the ONE net-new
|
|
723
|
+
// edge type the ContradictionEvent primitive needs). Added ADDITIVELY to this
|
|
724
|
+
// closed allow-list, never invented per-phase -- mirrors the Phase 218-01
|
|
725
|
+
// COMPETES_WITH / USES_COMPONENT / SUPPLIES_TO additive idiom verbatim (the
|
|
726
|
+
// LIGHTER additive-comment-only idiom; this is a routine additive vocabulary
|
|
727
|
+
// extension, not a navigator-gated blocking-checkpoint ceremony). The floor
|
|
728
|
+
// (DEFERRED / REJECTED + every prior type) is byte-identical except this one
|
|
729
|
+
// addition; the floor test asserts named MEMBERSHIP, never an exact `.size` /
|
|
730
|
+
// count, so this cannot regress baseline.
|
|
731
|
+
//
|
|
732
|
+
// CONCERNS -- the event-to-claim "this event is about that claim" edge. It is
|
|
733
|
+
// the FIRST link a reified event node needs: no existing edge type means
|
|
734
|
+
// "this event concerns that claim" (INFORMS is too weak, PART_OF is domain
|
|
735
|
+
// taxonomy, DESCRIBES is artifact-link). Source = a ContradictionEvent node
|
|
736
|
+
// (event:contradictionevent:<hash>), target = its `claim` participant (a
|
|
737
|
+
// typed_claim node, type='claim'). Minted by
|
|
738
|
+
// lib/core/navigation/reified-claim.cjs writeContradictionEvent.
|
|
739
|
+
//
|
|
740
|
+
// Edge vocabulary decision (260725-9ca-CONTEXT.md, LOCKED): CONTRADICTS (already
|
|
741
|
+
// a member at line 153) is REUSED VERBATIM for the event-to-rivalClaim link.
|
|
742
|
+
// NO CONTRADICTED_BY type is minted -- it would be a near-duplicate of an edge
|
|
743
|
+
// type that already means exactly this. So this block adds exactly ONE new
|
|
744
|
+
// member (CONCERNS), and the rivalClaim link rides the pre-existing CONTRADICTS.
|
|
745
|
+
//
|
|
746
|
+
// Canon Part 8: properties on CONCERNS are ENUM/scalar ONLY (a relation enum +
|
|
747
|
+
// the event-node id handle, e.g. { relation:'concerns', event:'event:...' });
|
|
748
|
+
// NEVER prose, NEVER a claim BODY. This is a LOCAL room.db edge; writeEdge
|
|
749
|
+
// takes (db, params) over a LOCAL room.db handle; CONCERNS NEVER crosses to
|
|
750
|
+
// Brain (Canon Part 8 LOCAL -> BRAIN: NO). Cross-room aggregation is prevented structurally:
|
|
751
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
752
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
753
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
754
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
755
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
756
|
+
'CONCERNS',
|
|
757
|
+
// Quick task 260806-grant-grader-room-graph extension (Grant-Rubric Graph
|
|
758
|
+
// Substrate; the ONE net-new edge type the grant-rubric map needs). Added
|
|
759
|
+
// ADDITIVELY to this closed allow-list, never invented per-phase -- mirrors
|
|
760
|
+
// the quick 260725-9ca CONCERNS additive idiom verbatim (the LIGHTER
|
|
761
|
+
// additive-comment-only idiom; this is a routine additive vocabulary
|
|
762
|
+
// extension, not a navigator-gated blocking-checkpoint ceremony). The floor
|
|
763
|
+
// (DEFERRED / REJECTED + every prior type) is byte-identical except this one
|
|
764
|
+
// addition; the floor test asserts named MEMBERSHIP, never an exact `.size` /
|
|
765
|
+
// count, so this cannot regress baseline.
|
|
766
|
+
//
|
|
767
|
+
// MAPS_TO_SECTION -- the rubric-criterion-to-room-section edge. Source = a
|
|
768
|
+
// grant_criterion anchor node (grant_criterion:<program>:<criterion_id>,
|
|
769
|
+
// minted by lib/core/navigation/grant-rubric.cjs writeGrantRubricGraph),
|
|
770
|
+
// target = the standard Section node it maps to (the 8 canonical slugs
|
|
771
|
+
// room-birth.cjs writeSectionNodes mints at birth). It is the graph-native
|
|
772
|
+
// home of the grant rubric's room_section map: one edge per criterion with
|
|
773
|
+
// a non-null room_section, so "which sections does this program's rubric
|
|
774
|
+
// touch, and which criteria live where" is a graph walk, not a JSON read.
|
|
775
|
+
// A criterion with room_section null (a pure post-award process/reporting
|
|
776
|
+
// item) gets NO edge -- the null is honest, never forced.
|
|
777
|
+
//
|
|
778
|
+
// Edge vocabulary decision (quick 260806 PLAN.md D2, LOCKED): PART_OF /
|
|
779
|
+
// TAGGED_WITH are NOT reused -- their frozen legal targets are domain /
|
|
780
|
+
// subdomain / focus_area ONLY (Phase 163-01), and Phase 169-00 explicitly
|
|
781
|
+
// REJECTED widening PART_OF endpoints as the pattern for a new joint (the
|
|
782
|
+
// NESTED_WITHIN precedent: mint a dedicated type, keep taxonomy traversals
|
|
783
|
+
// unpolluted). The verdict->section gap-profile edge reuses the pre-existing
|
|
784
|
+
// INFORMS member with scalar count properties, so this block adds exactly
|
|
785
|
+
// ONE new member.
|
|
786
|
+
//
|
|
787
|
+
// Canon Part 4: every choice is graph data; MAPS_TO_SECTION IS the graph-
|
|
788
|
+
// native artifact of the rubric's room_section mapping (Canon Part 9: files
|
|
789
|
+
// preserve meaning, SQL remembers and navigates).
|
|
790
|
+
// Canon Part 8: properties are ENUM/scalar ONLY (a relation enum + the
|
|
791
|
+
// program slug + the category enum); NEVER prose, NEVER a criterion's
|
|
792
|
+
// details/common_mistake BODY (those stay in the LOCAL fixture JSON). This
|
|
793
|
+
// is a LOCAL room.db edge; writeEdge takes (db, params) over a LOCAL
|
|
794
|
+
// room.db handle; MAPS_TO_SECTION NEVER crosses to Brain (the grant rubric
|
|
795
|
+
// is real IIA domain data, empirically blocked by the Part 8 egress guard
|
|
796
|
+
// -- see grade-grant.cjs header). Cross-room aggregation is prevented structurally:
|
|
797
|
+
// writeEdge(db, params) only ever holds the one db handle its caller passed
|
|
798
|
+
// in, so it is physically incapable of opening or writing a second room's
|
|
799
|
+
// db (Phase 8 cross-room fence; no runtime assertion exists because no
|
|
800
|
+
// code path has been found or hypothesized where a handle is swapped
|
|
801
|
+
// mid-call -- see 273-RESEARCH.md D-04).
|
|
802
|
+
'MAPS_TO_SECTION',
|
|
803
|
+
// Quick task 260903-gct extension, implementing R16 of the ratified MOS
|
|
804
|
+
// Reasoning Constitution v3.1.0 section 2.2
|
|
805
|
+
// (docs/2026-09-03-CONSTITUTION-v3.1.0-mos-reasoning-constitution.md,
|
|
806
|
+
// navigator sign-off 2026-09-03). v3.0.0's original R2 listed five edges
|
|
807
|
+
// to add -- SUPPORTS, CONTRADICTS, REFINES, DERIVED_FROM, SOURCED_FROM --
|
|
808
|
+
// and this session confirmed by direct code read that four of those five
|
|
809
|
+
// (SUPPORTS line 296, CONTRADICTS line 163, REFINES line 339, DERIVED_FROM
|
|
810
|
+
// line 57) were ALREADY live. R16 struck those four; this block mints
|
|
811
|
+
// exactly ONE member.
|
|
812
|
+
//
|
|
813
|
+
// The additive-floor contract: the floor (DEFERRED / REJECTED + every
|
|
814
|
+
// prior type) is byte-identical except this one addition; tests assert
|
|
815
|
+
// named MEMBERSHIP, never an exact `.size`, so this cannot regress the
|
|
816
|
+
// baseline.
|
|
817
|
+
//
|
|
818
|
+
// SOURCED_FROM -- the PROVENANCE edge. Source = a written reasoning node
|
|
819
|
+
// (a claim, conclusion, decision, or artifact node); target = a node id
|
|
820
|
+
// that write was actually sourced FROM (its evidence or subject node).
|
|
821
|
+
// Per the filed T2 write-back design
|
|
822
|
+
// (docs/2026-09-03-DESIGN-t2-write-back-minimal.md line 17):
|
|
823
|
+
// "SOURCED_FROM from the new node to every node id the gate decision
|
|
824
|
+
// was actually about."
|
|
825
|
+
//
|
|
826
|
+
// AXIS CONTRAST with DERIVED_FROM (encode it, do not conflate, mirroring
|
|
827
|
+
// the UMBILICAL_TO vs NESTED_WITHIN contrast at line 542): DERIVED_FROM
|
|
828
|
+
// is the Phase 120-00 STRUCTURAL ENFORCEMENT edge -- narrow and typed,
|
|
829
|
+
// source = a Breakthrough node, target = an Artifact node, and a
|
|
830
|
+
// Breakthrough CANNOT surface without at least one of them. SOURCED_FROM
|
|
831
|
+
// is the GENERAL provenance edge for any written reasoning node back to
|
|
832
|
+
// its evidence; it enforces no surfacing precondition and its endpoints
|
|
833
|
+
// are not restricted to Breakthrough/Artifact.
|
|
834
|
+
//
|
|
835
|
+
// NO CONSUMER SHIPS IN THIS TASK: the T2 write-back path that will emit
|
|
836
|
+
// SOURCED_FROM is DESIGNED and FILED but NOT implemented, and that design
|
|
837
|
+
// names R16 as its blocking dependency. This is the land-the-type-before-
|
|
838
|
+
// the-consumer idiom NESTED_WITHIN (line 471) and DISCOVERED /
|
|
839
|
+
// AUTHORED_BY (line 588) were grown by.
|
|
840
|
+
//
|
|
841
|
+
// Canon Part 4: every choice is graph data; SOURCED_FROM IS the graph-native
|
|
842
|
+
// artifact of provenance (Canon Part 9: files preserve meaning, SQL
|
|
843
|
+
// remembers and navigates).
|
|
844
|
+
// Canon Part 8: properties are ENUM / scalar ONLY (a relation enum plus
|
|
845
|
+
// node-id handles); NEVER prose, NEVER a claim or artifact BODY. This is
|
|
846
|
+
// a LOCAL room.db edge; writeEdge takes (db, params) over a LOCAL room.db
|
|
847
|
+
// handle; SOURCED_FROM NEVER crosses to Brain. Cross-room aggregation is
|
|
848
|
+
// prevented structurally: writeEdge(db, params) only ever holds the one
|
|
849
|
+
// db handle its caller passed in, so it is physically incapable of
|
|
850
|
+
// opening or writing a second room's db (Phase 8 cross-room fence; no
|
|
851
|
+
// runtime assertion exists because no code path has been found or
|
|
852
|
+
// hypothesized where a handle is swapped mid-call -- see
|
|
853
|
+
// 273-RESEARCH.md D-04).
|
|
854
|
+
'SOURCED_FROM',
|
|
855
|
+
// Quick task 260903-i2x extension, implementing T2's node-writing half of
|
|
856
|
+
// the ratified MOS Reasoning Constitution v3.1.0
|
|
857
|
+
// (docs/2026-09-03-CONSTITUTION-v3.1.0-mos-reasoning-constitution.md).
|
|
858
|
+
// The filed T2 write-back design (docs/2026-09-03-DESIGN-t2-write-back-
|
|
859
|
+
// minimal.md line 19 and line 39) names this edge as T2's own scope, and
|
|
860
|
+
// CLAUDE.md's open-handoff row independently names "T2's node-writing
|
|
861
|
+
// half (claim-node creation + SOURCED_FROM/USES_FRAMEWORK edges ...)" as
|
|
862
|
+
// the remaining work this task closes.
|
|
863
|
+
//
|
|
864
|
+
// USES_FRAMEWORK -- the METHODOLOGY-PROVENANCE edge. Source = a written
|
|
865
|
+
// reasoning node (the decision node a gate approval mints); target =
|
|
866
|
+
// a `framework:<slug>` handle naming the methodology that was active
|
|
867
|
+
// when the decision was made.
|
|
868
|
+
//
|
|
869
|
+
// AXIS CONTRAST with SOURCED_FROM (encode it, do not conflate): SOURCED_
|
|
870
|
+
// FROM points at the EVIDENCE a write was sourced from; USES_FRAMEWORK
|
|
871
|
+
// points at the METHOD used to reach it. Different questions,
|
|
872
|
+
// different targets, no overlap.
|
|
873
|
+
//
|
|
874
|
+
// BRAIN-VS-LOCAL COLLISION, named honestly: a USES_FRAMEWORK relationship
|
|
875
|
+
// already exists in the Brain graph (references/brain/room-hierarchy-
|
|
876
|
+
// schema.md:72, Room -> Framework, 86 edges per docs/BRAIN-GRAPH-
|
|
877
|
+
// CENSUS.generated.md). This LOCAL member is a same-named but
|
|
878
|
+
// INDEPENDENT local edge; per Canon Part 8 it NEVER crosses to Brain,
|
|
879
|
+
// and the two are never synced or compared. The framework NAME is a
|
|
880
|
+
// generic methodology handle (the only class of token Part 8 permits
|
|
881
|
+
// near a boundary), never room content.
|
|
882
|
+
//
|
|
883
|
+
// NOT the land-the-type-before-the-consumer idiom (unlike NESTED_WITHIN
|
|
884
|
+
// / DISCOVERED): this type's consumer (lib/core/navigation/reasoning-
|
|
885
|
+
// write.cjs) ships in the SAME task set that mints this type.
|
|
886
|
+
//
|
|
887
|
+
// Canon Part 4: every choice is graph data; USES_FRAMEWORK IS the
|
|
888
|
+
// graph-native artifact of methodology provenance (Canon Part 9: files
|
|
889
|
+
// preserve meaning, SQL remembers and navigates).
|
|
890
|
+
// Canon Part 8: properties are ENUM / scalar ONLY (a relation enum plus a
|
|
891
|
+
// framework slug); NEVER prose, NEVER a claim or artifact BODY. This is
|
|
892
|
+
// a LOCAL room.db edge; writeEdge takes (db, params) over a LOCAL room.db
|
|
893
|
+
// handle; USES_FRAMEWORK NEVER crosses to Brain. Cross-room aggregation
|
|
894
|
+
// is prevented structurally: writeEdge(db, params) only ever holds the
|
|
895
|
+
// one db handle its caller passed in, so it is physically incapable of
|
|
896
|
+
// opening or writing a second room's db (Phase 8 cross-room fence; no
|
|
897
|
+
// runtime assertion exists because no code path has been found or
|
|
898
|
+
// hypothesized where a handle is swapped mid-call -- see
|
|
899
|
+
// 273-RESEARCH.md D-04).
|
|
900
|
+
'USES_FRAMEWORK',
|
|
901
|
+
]));
|
|
902
|
+
|
|
903
|
+
function isPlainObject(v) {
|
|
904
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
// writeEdge(db, params) -- the 15th-style additive re-export on the
|
|
908
|
+
// navigation.cjs closed surface (see navigation.cjs header comment for the
|
|
909
|
+
// canonical re-export pattern alongside logMemoryEvent + firstCapturedLastTouchedBySection).
|
|
910
|
+
//
|
|
911
|
+
// Positional db (first arg, owned by caller via openRoomDb), params object
|
|
912
|
+
// (second arg) with: { source_id, target_id, edge_type, properties }.
|
|
913
|
+
//
|
|
914
|
+
// Returns { ok: true, edge_id, type, source, target, written } on success, or
|
|
915
|
+
// { ok: false, reason, detail? } on validation / write failure. Defensive --
|
|
916
|
+
// never throws on caller input. The underlying prepare/run is sync per the
|
|
917
|
+
// node:sqlite contract (matches the rest of the navigation module).
|
|
918
|
+
// Phase 224-01 (D-05) additive extension: writeEdge gains an OPTIONAL
|
|
919
|
+
// review_status param. When present it must be exactly 'proposed' or 'confirmed'
|
|
920
|
+
// (the derivation writer passes 'proposed'; a future human-confirm path passes
|
|
921
|
+
// 'confirmed'), else the write is rejected (reason: invalid-review-status).
|
|
922
|
+
// When ABSENT it binds NULL -- so every pre-224 caller is byte-compatible (their
|
|
923
|
+
// edges stay review_status NULL, the "not-a-proposal" state documented in the
|
|
924
|
+
// phase-224-edge-review-status migration header).
|
|
925
|
+
//
|
|
926
|
+
// THE UPSERT INVARIANT (Req 4 / the Ralph invariant): review_status is set at
|
|
927
|
+
// FIRST INSERT ONLY. The ON CONFLICT clause updates properties ONLY and NEVER
|
|
928
|
+
// touches review_status -- so a re-derivation never downgrades a 'confirmed'
|
|
929
|
+
// edge and never demotes a NULL legacy edge. No writer can promote or demote an
|
|
930
|
+
// existing row through this path; 'confirmed' stays a separate byUser path.
|
|
931
|
+
//
|
|
932
|
+
// Phase 224 review (WR-06) extension: the properties update is ALSO withheld
|
|
933
|
+
// when the existing row is 'confirmed' (DO UPDATE ... WHERE review_status IS
|
|
934
|
+
// NOT 'confirmed'). Phase 224's automatic background deriver upserts the same
|
|
935
|
+
// (source, target, type) key space humans ratify; without the guard a
|
|
936
|
+
// re-derivation replaced a confirmed edge's whole properties JSON (decision
|
|
937
|
+
// handles, TV-01 validity scalars) with {relation:'derived', ...}. The
|
|
938
|
+
// review_status invariant is thereby mirrored onto properties for confirmed
|
|
939
|
+
// rows. NULL (legacy) and 'proposed' rows keep the pre-224 update-on-conflict
|
|
940
|
+
// contract, byte-compatible with every pre-224 caller.
|
|
941
|
+
//
|
|
942
|
+
// Phase 273 (D-01/D-01a/D-01b/D-06) -- closes Critical C1 (silent-discard) and
|
|
943
|
+
// Critical C2 (schema-mismatch throw) named by the sqlite-graph-layer code
|
|
944
|
+
// review. C1: the WHERE-guarded UPDATE above can genuinely suppress a write
|
|
945
|
+
// (a confirmed edge's properties are intentionally NOT overwritten) but the
|
|
946
|
+
// pre-273 code returned ok:true either way, with zero signal that the write
|
|
947
|
+
// was a no-op. The additive `written` field closes that: true when
|
|
948
|
+
// run().changes > 0, false when the confirmed-guard suppressed the row, with
|
|
949
|
+
// `reason: 'suppressed_by_confirmed'` naming why. `ok` NEVER flips on
|
|
950
|
+
// suppression -- 77 call sites across 43 files read `.ok`, ~30 branch on it,
|
|
951
|
+
// and room-birth.cjs:948 rolls back an entire room birth on `!ok`; changing
|
|
952
|
+
// what `ok` means would be a 43-file regression, not a fix (D-01a).
|
|
953
|
+
//
|
|
954
|
+
// C2: a handle opened via lazygraph-ops.cjs::openGraph (the base schema) has
|
|
955
|
+
// no review_status column and no identity table for the Phase 224 migration
|
|
956
|
+
// to run against (D-01b -- a structural conclusion, not a preference: see
|
|
957
|
+
// edgesHasReviewStatus below). The pre-273 code always referenced
|
|
958
|
+
// review_status in its INSERT, so it threw "table edges has no column named
|
|
959
|
+
// review_status" against that handle instead of degrading. writeEdge now
|
|
960
|
+
// probes the schema (edgesHasReviewStatus) and branches: the wide 5-column
|
|
961
|
+
// insert with the confirmed-guard WHERE clause when the column exists, a
|
|
962
|
+
// narrow 4-column insert with NO WHERE guard when it does not (nothing can be
|
|
963
|
+
// "suppressed" referencing a column that is not there, so every write on that
|
|
964
|
+
// branch reports written:true). When a caller supplies review_status against
|
|
965
|
+
// the narrow schema, the gap is never silently dropped: D-06 requires an
|
|
966
|
+
// explicit `review_status_persisted: false` flag on the return so the caller
|
|
967
|
+
// can see the value did not land, mirroring the same "never mask a
|
|
968
|
+
// data-shape gap" lesson C1 itself teaches.
|
|
969
|
+
const VALID_REVIEW_STATUS = Object.freeze(new Set(['proposed', 'confirmed']));
|
|
970
|
+
|
|
971
|
+
// DEPRECATED_EDGE_TYPES -- Quick task 260903-gct, R16 of the ratified MOS
|
|
972
|
+
// Reasoning Constitution v3.1.0 section 2.2 (navigator sign-off 2026-09-03).
|
|
973
|
+
// This is a SOFT deprecation, not removal. RELATED_TO is live in production
|
|
974
|
+
// across 14 files including the production writers
|
|
975
|
+
// lib/core/navigation/typed-domain.cjs (its DOMAIN_EDGE_SUBSET, consumed by
|
|
976
|
+
// linkDomainToRelated) and scripts/huji-intake.cjs:410, plus test-suite
|
|
977
|
+
// writers (tests/helpers/fixture-room-219.cjs:207,
|
|
978
|
+
// tests/test-201-graph-refine-loop.cjs:81,
|
|
979
|
+
// tests/test-edges-domain-taxonomy-floor.cjs:120, which explicitly asserts
|
|
980
|
+
// rr.ok === true). Deleting RELATED_TO from ALLOWED_EDGE_TYPES would return
|
|
981
|
+
// invalid_edge_type to every one of those writers, and would additionally
|
|
982
|
+
// turn the tests/run-all-163.sh frozen-edge-set gate RED: that gate greps
|
|
983
|
+
// this file for the quoted literal 'RELATED_TO' (its DOMAIN_EDGES array,
|
|
984
|
+
// tests/run-all-163.sh lines 172-181).
|
|
985
|
+
//
|
|
986
|
+
// Shaped as a frozen Map from edge_type to its deprecation message, so a
|
|
987
|
+
// future second deprecation is a one-line addition and each type carries its
|
|
988
|
+
// own guidance.
|
|
989
|
+
//
|
|
990
|
+
// The RELATED_TO message is honest on three points: (1) it is deprecated ON
|
|
991
|
+
// WRITE per constitution v3.1.0 R16 and REMAINS allowlisted; (2) there is NO
|
|
992
|
+
// removal version -- the ruling says "deprecated on write", not "removed",
|
|
993
|
+
// so no target version is invented here (unlike room-ops.cjs's legitimate
|
|
994
|
+
// v1.14.0 citation, naming one here would be a fabricated commitment nobody
|
|
995
|
+
// ratified); (3) guidance names a SPECIFIC typed predicate to pick instead,
|
|
996
|
+
// since there is no single mechanical replacement: DECOMPOSED_INTO / PART_OF
|
|
997
|
+
// / TAGGED_WITH for domain-taxonomy structure, or SUPPORTS / REFINES /
|
|
998
|
+
// CONTRADICTS / SOURCED_FROM / DERIVED_FROM for a reasoning link.
|
|
999
|
+
const DEPRECATED_EDGE_TYPES = Object.freeze(new Map([
|
|
1000
|
+
['RELATED_TO',
|
|
1001
|
+
"edge_type 'RELATED_TO' is deprecated on write per MOS Reasoning "
|
|
1002
|
+
+ 'Constitution v3.1.0 R16. It REMAINS allowlisted -- no removal version '
|
|
1003
|
+
+ 'is set. Prefer a specific typed predicate instead: DECOMPOSED_INTO / '
|
|
1004
|
+
+ 'PART_OF / TAGGED_WITH for domain-taxonomy structure, or SUPPORTS / '
|
|
1005
|
+
+ 'REFINES / CONTRADICTS / SOURCED_FROM / DERIVED_FROM for a reasoning '
|
|
1006
|
+
+ 'link.'],
|
|
1007
|
+
]));
|
|
1008
|
+
|
|
1009
|
+
// _deprecationWarned / _warnDeprecatedEdgeOnce -- the explicit per-type
|
|
1010
|
+
// once-guard. Required, not optional (constitution v3.1.0 R16 discovered
|
|
1011
|
+
// facts F-08): writeEdge runs per-write, and room-ops.cjs's claim that
|
|
1012
|
+
// process.emitWarning "dedups by (name, code) per Node process
|
|
1013
|
+
// automatically" is UNVERIFIED and moot there anyway (that module's warning
|
|
1014
|
+
// fires once at module-load time, not per-call). Mirrors
|
|
1015
|
+
// brain-client.cjs::_warnLegacyOnce's module-level guard idiom (itself
|
|
1016
|
+
// modeled on checkFilePermissions._warned) and room-ops.cjs's stable
|
|
1017
|
+
// MOS_DEP_* code convention, so test environments can filter via
|
|
1018
|
+
// NODE_NO_WARNINGS or a process.on('warning') handler.
|
|
1019
|
+
const _deprecationWarned = new Set();
|
|
1020
|
+
function _warnDeprecatedEdgeOnce(edge_type) {
|
|
1021
|
+
if (_deprecationWarned.has(edge_type)) return;
|
|
1022
|
+
_deprecationWarned.add(edge_type);
|
|
1023
|
+
process.emitWarning(
|
|
1024
|
+
DEPRECATED_EDGE_TYPES.get(edge_type),
|
|
1025
|
+
{ type: 'DeprecationWarning', code: 'MOS_DEP_EDGE_' + edge_type }
|
|
1026
|
+
);
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
// edgesHasReviewStatus(db) -- Phase 273 (D-01b) schema probe. Mirrors
|
|
1030
|
+
// lib/core/node-insert.cjs::isMigratedSchema's SHAPE (a PRAGMA table_info
|
|
1031
|
+
// probe with a defensive false-on-failure default) without duplicating its
|
|
1032
|
+
// MEANING -- that helper probes the `nodes` table for a different marker
|
|
1033
|
+
// column; this one probes `edges` for `review_status`. Kept as a narrowly-
|
|
1034
|
+
// scoped sibling function, not folded into writeEdge's body, per the same
|
|
1035
|
+
// one-folder-one-job separation node-insert.cjs already established between
|
|
1036
|
+
// isMigratedSchema and insertNode. Recomputed fresh on every call (never
|
|
1037
|
+
// cached) -- the schema shape of a given handle does not change mid-process,
|
|
1038
|
+
// but a cached boolean would be one more piece of hand-maintained state this
|
|
1039
|
+
// chokepoint does not need.
|
|
1040
|
+
function edgesHasReviewStatus(db) {
|
|
1041
|
+
try {
|
|
1042
|
+
return db.prepare('PRAGMA table_info(edges)').all().some((c) => c && c.name === 'review_status');
|
|
1043
|
+
} catch (_e) {
|
|
1044
|
+
return false; // defensive default, matching node-insert.cjs::isMigratedSchema
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
function writeEdge(db, params) {
|
|
1049
|
+
if (!params || typeof params !== 'object') {
|
|
1050
|
+
return { ok: false, reason: 'invalid_params' };
|
|
1051
|
+
}
|
|
1052
|
+
const { source_id, target_id, edge_type, properties, review_status } = params;
|
|
1053
|
+
if (typeof source_id !== 'string' || source_id.length === 0) {
|
|
1054
|
+
return { ok: false, reason: 'invalid_source_id' };
|
|
1055
|
+
}
|
|
1056
|
+
if (typeof target_id !== 'string' || target_id.length === 0) {
|
|
1057
|
+
return { ok: false, reason: 'invalid_target_id' };
|
|
1058
|
+
}
|
|
1059
|
+
if (typeof edge_type !== 'string' || !ALLOWED_EDGE_TYPES.has(edge_type)) {
|
|
1060
|
+
return { ok: false, reason: 'invalid_edge_type', detail: String(edge_type).slice(0, 40) };
|
|
1061
|
+
}
|
|
1062
|
+
// R16 soft-deprecation probe (constitution v3.1.0 section 2.2). Placement
|
|
1063
|
+
// is load-bearing: AFTER the ALLOWED_EDGE_TYPES gate means a REJECTED type
|
|
1064
|
+
// (e.g. the misspelled RELATES_TO) never warns -- it stays a silent
|
|
1065
|
+
// fail-closed, which is the constitution's own correction. BEFORE the
|
|
1066
|
+
// insert means the warning describes the CALL and still fires even if the
|
|
1067
|
+
// write later throws.
|
|
1068
|
+
const deprecated = DEPRECATED_EDGE_TYPES.has(edge_type);
|
|
1069
|
+
if (deprecated) _warnDeprecatedEdgeOnce(edge_type);
|
|
1070
|
+
// Optional review_status: absent binds NULL; present must be in the enum.
|
|
1071
|
+
let reviewStatusValue = null;
|
|
1072
|
+
if (review_status !== undefined && review_status !== null) {
|
|
1073
|
+
if (typeof review_status !== 'string' || !VALID_REVIEW_STATUS.has(review_status)) {
|
|
1074
|
+
return { ok: false, reason: 'invalid_review_status', detail: String(review_status).slice(0, 40) };
|
|
1075
|
+
}
|
|
1076
|
+
reviewStatusValue = review_status;
|
|
1077
|
+
}
|
|
1078
|
+
// 'confirmed' is the HUMAN-trust state (Canon Part 9: only a human confirms;
|
|
1079
|
+
// the migration header reserves it for the explicit byUser confirmation
|
|
1080
|
+
// path). The chokepoint ENFORCES that here instead of leaving it to
|
|
1081
|
+
// convention: a first-insert 'confirmed' requires a non-empty byUser handle,
|
|
1082
|
+
// recorded as a confirmed_by scalar in properties (mirroring the confirmNode
|
|
1083
|
+
// discipline), so a background writer can never mint human-trust edges.
|
|
1084
|
+
if (reviewStatusValue === 'confirmed'
|
|
1085
|
+
&& (typeof params.byUser !== 'string' || params.byUser.trim().length === 0)) {
|
|
1086
|
+
return { ok: false, reason: 'confirmed_requires_by_user' };
|
|
1087
|
+
}
|
|
1088
|
+
const props = isPlainObject(properties) ? Object.assign({}, properties) : {};
|
|
1089
|
+
if (reviewStatusValue === 'confirmed') {
|
|
1090
|
+
props.confirmed_by = params.byUser.trim();
|
|
1091
|
+
}
|
|
1092
|
+
let propsJson;
|
|
1093
|
+
try {
|
|
1094
|
+
propsJson = JSON.stringify(props);
|
|
1095
|
+
} catch (_e) {
|
|
1096
|
+
return { ok: false, reason: 'properties_serialize_failed' };
|
|
1097
|
+
}
|
|
1098
|
+
const edgeId = 'edge:' + edge_type + ':' + Date.now() + ':' + crypto.randomBytes(4).toString('hex');
|
|
1099
|
+
const hasReviewStatus = edgesHasReviewStatus(db);
|
|
1100
|
+
let runResult;
|
|
1101
|
+
try {
|
|
1102
|
+
if (hasReviewStatus) {
|
|
1103
|
+
runResult = db.prepare(
|
|
1104
|
+
'INSERT INTO edges (source, target, type, properties, review_status) VALUES (?, ?, ?, ?, ?) ' +
|
|
1105
|
+
'ON CONFLICT(source, target, type) DO UPDATE SET properties = excluded.properties ' +
|
|
1106
|
+
"WHERE edges.review_status IS NOT 'confirmed'"
|
|
1107
|
+
).run(source_id, target_id, edge_type, propsJson, reviewStatusValue);
|
|
1108
|
+
} else {
|
|
1109
|
+
// C2 (Phase 273): base openGraph schema has no review_status column and
|
|
1110
|
+
// no identity table to run the Phase 224 migration against (D-01b).
|
|
1111
|
+
// Degrade gracefully: 4-column insert, no confirmed-guard WHERE clause
|
|
1112
|
+
// (the column it would reference does not exist here, so nothing can
|
|
1113
|
+
// be "suppressed" -- every write on this branch lands).
|
|
1114
|
+
runResult = db.prepare(
|
|
1115
|
+
'INSERT INTO edges (source, target, type, properties) VALUES (?, ?, ?, ?) ' +
|
|
1116
|
+
'ON CONFLICT(source, target, type) DO UPDATE SET properties = excluded.properties'
|
|
1117
|
+
).run(source_id, target_id, edge_type, propsJson);
|
|
1118
|
+
}
|
|
1119
|
+
} catch (e) {
|
|
1120
|
+
return { ok: false, reason: 'edge_write_failed', detail: String(e.message || '').slice(0, 80) };
|
|
1121
|
+
}
|
|
1122
|
+
const written = Number(runResult.changes) > 0;
|
|
1123
|
+
const result = {
|
|
1124
|
+
ok: true, edge_id: edgeId, type: edge_type, source: source_id, target: target_id,
|
|
1125
|
+
written,
|
|
1126
|
+
};
|
|
1127
|
+
if (!written) result.reason = 'suppressed_by_confirmed';
|
|
1128
|
+
if (reviewStatusValue !== null) {
|
|
1129
|
+
// D-06: when the caller supplied a review_status, always name whether it
|
|
1130
|
+
// actually landed in a real column -- never silently mask the base-schema
|
|
1131
|
+
// gap (false) and never leave the migrated-schema success (true) implicit.
|
|
1132
|
+
result.review_status_persisted = hasReviewStatus;
|
|
1133
|
+
}
|
|
1134
|
+
// R16 additive signal, same idiom as `written` (D-01) and
|
|
1135
|
+
// `review_status_persisted` (D-06): a machine-readable field a caller can
|
|
1136
|
+
// branch on without `ok` changing meaning. Do NOT touch `ok`, do NOT add a
|
|
1137
|
+
// failure branch, and do NOT add this field to any of the early `ok: false`
|
|
1138
|
+
// returns above (constitution v3.1.0 R16 discovered facts F-04: 77 call
|
|
1139
|
+
// sites across 43 files read `.ok`, ~30 branch on it, and
|
|
1140
|
+
// room-birth.cjs:948 rolls back an entire room birth on `!ok`; changing
|
|
1141
|
+
// what `ok` means would be a 43-file regression, not a fix). The return
|
|
1142
|
+
// field is the RELIABLE signal; the warning is the human one --
|
|
1143
|
+
// process.emitWarning with type DeprecationWarning is suppressed under
|
|
1144
|
+
// NODE_NO_WARNINGS or process.noDeprecation, and result.deprecated still
|
|
1145
|
+
// lands in every one of those cases.
|
|
1146
|
+
if (deprecated) result.deprecated = true;
|
|
1147
|
+
return result;
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
module.exports = { ALLOWED_EDGE_TYPES, DEPRECATED_EDGE_TYPES, writeEdge };
|