@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,834 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2026 Mindrian. BSL 1.1.
|
|
4
|
+
*
|
|
5
|
+
* Phase 219-05 -- explore-chain: the REQ-4 explored-stage analysis chain.
|
|
6
|
+
*
|
|
7
|
+
* An EXPLICIT [Explore] on a QUALIFIED opportunity runs deep research +
|
|
8
|
+
* diffusion/timing + analogical reasoning + web validation, then files a
|
|
9
|
+
* Minto-shaped explored artifact. The canon mandate this implements:
|
|
10
|
+
* "opportunities are conceptual... they must be researched and explored to be
|
|
11
|
+
* turned into well-defined problems." The output target is a WELL-DEFINED
|
|
12
|
+
* problem statement, never a candidate one-liner.
|
|
13
|
+
*
|
|
14
|
+
* D-06 (locked): composition rides the SHIPPED chain machinery ONLY --
|
|
15
|
+
* command-resolver.composeWorkflow maps framework NAMES to registry
|
|
16
|
+
* commands (command:null + optional:true honest degrade, never fabricated),
|
|
17
|
+
* and chain-executor.runChain is the ONE shared gated loop (posture from
|
|
18
|
+
* recipe-maps via the loop's defaults; the autonomous_safe prefix runs;
|
|
19
|
+
* material steps HALT at the gate, Canon Part 3). ZERO hardcoded /mos:
|
|
20
|
+
* slugs live in this file -- the four leg FRAMEWORK NAMES below were
|
|
21
|
+
* resolved against data/command-registry.json framework_index at build
|
|
22
|
+
* time (2026-07-13) and stay names, never command strings:
|
|
23
|
+
* deep_research -> "Hypothesis-Driven Problem Solving"
|
|
24
|
+
* diffusion_timing -> "Adoption-Capacity Theory"
|
|
25
|
+
* analogies -> "Four Lenses of Innovation" (the find-analogies
|
|
26
|
+
* command in its CURRENT Track-1-unrewired form; the
|
|
27
|
+
* chain contract does not change when Track 1 rewires
|
|
28
|
+
* internals, D-07)
|
|
29
|
+
* web_validation -> "Jobs to Be Done (JTBD)"
|
|
30
|
+
*
|
|
31
|
+
* D-07 (locked): the web legs ride the FROZEN deep_research reach with
|
|
32
|
+
* GENERIC handles only, through the framework-runner's existing egress
|
|
33
|
+
* chokepoint reached via the caller-supplied onStep -- NEVER a raw fetch in
|
|
34
|
+
* the chain (grep-gated: zero fetch(, zero node:https requires here).
|
|
35
|
+
*
|
|
36
|
+
* D-16 item 3 (offline degrade): web-leg unavailability (opts.forceOffline
|
|
37
|
+
* test seam / an unavailable reach signaled by the host) swaps the web
|
|
38
|
+
* legs' source to research-filing.queryRoomCorpus with the step provenance
|
|
39
|
+
* "web: absent (room-corpus degrade)" -- never a crash, never a silent
|
|
40
|
+
* skip. D-19: the run envelope carries research_mode + per-provider
|
|
41
|
+
* {status, reason, counts, freshness} composed on the source-lens-driver
|
|
42
|
+
* seam; forced-offline composes 'web_degraded_local_fallback'; a COLD
|
|
43
|
+
* corpus composes 'insufficient_evidence', never ok:true+empty.
|
|
44
|
+
*
|
|
45
|
+
* D-20 (engine-breaks manual rung): when a chain step's ENGINE is unavailable
|
|
46
|
+
* (probe-fail beyond the graceful rungs, crash, missing substrate; test
|
|
47
|
+
* seam MINDRIAN_FORCE_ENGINE_ABSENT=1), the chain HALTS at a gate OFFERING
|
|
48
|
+
* llm-manual execution (the model performs the analysis via the frozen
|
|
49
|
+
* deep_research reach + native web tools, same Part 8 handles). NEVER the
|
|
50
|
+
* default, NEVER a silent substitution (the corepower lesson). A manual run
|
|
51
|
+
* (opts.manualMode === true -- the navigator ACCEPTED the offer at the
|
|
52
|
+
* gate) stamps engine_mode 'llm_manual_baseline' through the run trace and
|
|
53
|
+
* every filed artifact's frontmatter; manual output is EXCLUDED from
|
|
54
|
+
* calibration sets by that marker.
|
|
55
|
+
*
|
|
56
|
+
* NEVER AUTO-FIRES (REQ-4, T-219-18, navigator cost control): this module is
|
|
57
|
+
* invoked ONLY from the explicit commands/explore-opportunity.md surface.
|
|
58
|
+
* qualify-opportunity.cjs carries zero wiring to this module (test-pinned
|
|
59
|
+
* by a comment-filtered source scan in tests/test-219-explore-chain.cjs).
|
|
60
|
+
*
|
|
61
|
+
* Part 3: filing is MATERIAL. The chain always halts at the file_explored
|
|
62
|
+
* gate; filing happens ONLY when the navigator's onHalt verb approves
|
|
63
|
+
* ('approve' | 'file'). Any other verb ends the run with nothing filed.
|
|
64
|
+
*
|
|
65
|
+
* NO em-dashes anywhere in this file (CLAUDE.md HARD RULE).
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
const { composeWorkflow } = require('../../workflow/command-resolver.cjs');
|
|
69
|
+
const { runChain, makeGateFn } = require('../chain-executor.cjs');
|
|
70
|
+
const { openRoomDb, closeRoomDb } = require('../room-db.cjs');
|
|
71
|
+
const researchFiling = require('./research-filing.cjs');
|
|
72
|
+
// Phase 265-18 (RADAR-26): the in-process Promise.all fan-out this plan uses
|
|
73
|
+
// for the concurrent tail mirrors lib/core/bono/cell-fanout.cjs's shipped
|
|
74
|
+
// idiom (the navigator-confirmed final design). resolveFanoutCap is the SAME
|
|
75
|
+
// clamp cell-fanout reuses from the futures orchestrator; requiring it here
|
|
76
|
+
// is a second reuse of the ONE clamp, not a new cap.
|
|
77
|
+
const { resolveFanoutCap } = require('../futures/orchestrator.cjs');
|
|
78
|
+
|
|
79
|
+
// The four analysis legs (framework NAMES -- resolved via the registry at run
|
|
80
|
+
// time through composeWorkflow; see the D-06 header note). web:true legs are
|
|
81
|
+
// the deep_research-reach riders the offline degrade swaps.
|
|
82
|
+
const FRAMEWORK_LEGS = Object.freeze([
|
|
83
|
+
Object.freeze({ leg: 'deep_research', framework: 'Hypothesis-Driven Problem Solving', web: true }),
|
|
84
|
+
Object.freeze({ leg: 'diffusion_timing', framework: 'Adoption-Capacity Theory', web: false }),
|
|
85
|
+
Object.freeze({ leg: 'analogies', framework: 'Four Lenses of Innovation', web: false }),
|
|
86
|
+
Object.freeze({ leg: 'web_validation', framework: 'Jobs to Be Done (JTBD)', web: true }),
|
|
87
|
+
]);
|
|
88
|
+
|
|
89
|
+
// The material filing step. Its command is DELIBERATELY unknown to the
|
|
90
|
+
// command registry, so the default posture authority (recipe-maps
|
|
91
|
+
// postureForCommand via the loop) returns the withhold-default and the
|
|
92
|
+
// DEFAULT makeGateFn halts it -- the Part 3 material gate with zero custom
|
|
93
|
+
// gate logic on the happy path.
|
|
94
|
+
const FILING_STEP = Object.freeze({
|
|
95
|
+
leg: 'file_explored',
|
|
96
|
+
command: 'file-explored-artifact',
|
|
97
|
+
material: true,
|
|
98
|
+
framework: null,
|
|
99
|
+
web: false,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// D-20 vocabulary (mirrors qualify-opportunity.cjs OFFER semantics).
|
|
103
|
+
const OFFER_VERB = 'LLM manual run (high effort)';
|
|
104
|
+
const MANUAL_ENGINE_MODE = 'llm_manual_baseline';
|
|
105
|
+
|
|
106
|
+
// The navigator verbs that approve the material filing step at the gate.
|
|
107
|
+
const APPROVE_VERBS = Object.freeze(['approve', 'file']);
|
|
108
|
+
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Phase 265-18 (RADAR-26): the probe-first cost guard.
|
|
111
|
+
//
|
|
112
|
+
// chain-executor.cjs's quality_early_stop (lib/core/chain-executor.cjs line
|
|
113
|
+
// 164 declares LOW_QUALITY = 'low'; the halt test itself is `if (quality ===
|
|
114
|
+
// LOW_QUALITY)` at chain-executor.cjs line ~648 in the sync path and ~905 in
|
|
115
|
+
// the async _runChainResilient path -- both read the SAME normalized
|
|
116
|
+
// `quality` local, computed as `(typeof result.quality === 'string') ?
|
|
117
|
+
// result.quality : null`) gave the sequential chain a real cost property: a
|
|
118
|
+
// cold deep_research leg (quality:'low') ended the chain right there, so
|
|
119
|
+
// diffusion_timing, analogies and web_validation never ran and nothing was
|
|
120
|
+
// spent on them. Parallel dispatch removes the "early" there is to stop at
|
|
121
|
+
// -- once three legs fire together there is no mid-fan step left to
|
|
122
|
+
// short-circuit. Rather than dropping the property this guard MOVES it one
|
|
123
|
+
// step earlier: probe deep_research ALONE first, apply the EXACT SAME
|
|
124
|
+
// quality test the executor applies (see probeClears below), and fan the
|
|
125
|
+
// remaining three out concurrently ONLY when the probe clears. A cold corpus
|
|
126
|
+
// still costs exactly one leg, never four -- the identical cost outcome the
|
|
127
|
+
// sequential chain produced, reached one step earlier so the concurrent win
|
|
128
|
+
// is real. If chain-executor.cjs's quality_early_stop test ever changes,
|
|
129
|
+
// probeClears below must change with it -- it is a deliberate mirror, not an
|
|
130
|
+
// independent guard.
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
const PROBE_LEG = 'deep_research';
|
|
133
|
+
const COST_MODES = Object.freeze(['cost-conscious', 'all-legs']);
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* resolveExploreCostPolicy(env, opts) -> { mode, parallel, probeLeg, fanLegs, reason }
|
|
137
|
+
*
|
|
138
|
+
* PURE: no fs, no network, no clock (opts and env are plain data in, a plain
|
|
139
|
+
* object out). Resolution order, highest precedence first:
|
|
140
|
+
* 1. opts.costMode, when it is a member of COST_MODES.
|
|
141
|
+
* 2. env.EXPLORE_COST_MODE, when it is a member of COST_MODES.
|
|
142
|
+
* 3. Default 'cost-conscious'.
|
|
143
|
+
* An unrecognized EXPLORE_COST_MODE value falls back to 'cost-conscious' and
|
|
144
|
+
* says so in `reason` -- a typo must never select the more expensive path.
|
|
145
|
+
*
|
|
146
|
+
* `parallel` resolves independently: opts.parallel, then
|
|
147
|
+
* env.EXPLORE_PARALLEL !== '0', default true. EXPLORE_PARALLEL=0 is the
|
|
148
|
+
* operator escape hatch that forces the pre-existing sequential runChain
|
|
149
|
+
* path (the manual half of the fallback story).
|
|
150
|
+
*/
|
|
151
|
+
function resolveExploreCostPolicy(env, opts) {
|
|
152
|
+
const e = isPlainObject(env) ? env : {};
|
|
153
|
+
const o = isPlainObject(opts) ? opts : {};
|
|
154
|
+
|
|
155
|
+
let mode = 'cost-conscious';
|
|
156
|
+
let reason = 'default cost-conscious (no opts.costMode, no EXPLORE_COST_MODE set)';
|
|
157
|
+
if (typeof o.costMode === 'string' && COST_MODES.indexOf(o.costMode) !== -1) {
|
|
158
|
+
mode = o.costMode;
|
|
159
|
+
reason = 'opts.costMode=' + o.costMode;
|
|
160
|
+
} else if (typeof e.EXPLORE_COST_MODE === 'string' && COST_MODES.indexOf(e.EXPLORE_COST_MODE) !== -1) {
|
|
161
|
+
mode = e.EXPLORE_COST_MODE;
|
|
162
|
+
reason = 'env.EXPLORE_COST_MODE=' + e.EXPLORE_COST_MODE;
|
|
163
|
+
} else if (typeof e.EXPLORE_COST_MODE === 'string' && e.EXPLORE_COST_MODE.length > 0) {
|
|
164
|
+
reason = 'env.EXPLORE_COST_MODE=' + e.EXPLORE_COST_MODE
|
|
165
|
+
+ ' was not recognized, defaulted to cost-conscious';
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
let parallel = true;
|
|
169
|
+
if (typeof o.parallel === 'boolean') {
|
|
170
|
+
parallel = o.parallel;
|
|
171
|
+
} else if (typeof e.EXPLORE_PARALLEL === 'string') {
|
|
172
|
+
parallel = e.EXPLORE_PARALLEL !== '0';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const allLegs = FRAMEWORK_LEGS.map((f) => f.leg);
|
|
176
|
+
const otherLegs = allLegs.filter((leg) => leg !== PROBE_LEG);
|
|
177
|
+
|
|
178
|
+
return {
|
|
179
|
+
mode: mode,
|
|
180
|
+
parallel: parallel,
|
|
181
|
+
probeLeg: mode === 'cost-conscious' ? PROBE_LEG : null,
|
|
182
|
+
fanLegs: mode === 'cost-conscious' ? otherLegs : allLegs,
|
|
183
|
+
reason: reason,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* probeClears(stepResult) -> boolean
|
|
189
|
+
*
|
|
190
|
+
* Mirrors chain-executor.cjs's quality_early_stop test EXACTLY (see the
|
|
191
|
+
* header comment above PROBE_LEG for the line numbers mirrored): normalize
|
|
192
|
+
* `quality` the same way runChain does (`typeof result.quality === 'string'
|
|
193
|
+
* ? result.quality : null`), then the probe clears unless that normalized
|
|
194
|
+
* value is the LOW_QUALITY string 'low'. If chain-executor.cjs's test ever
|
|
195
|
+
* changes, this helper must change with it.
|
|
196
|
+
*/
|
|
197
|
+
function probeClears(stepResult) {
|
|
198
|
+
const r = isPlainObject(stepResult) ? stepResult : {};
|
|
199
|
+
const quality = (typeof r.quality === 'string') ? r.quality : null;
|
|
200
|
+
return quality !== 'low';
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function isPlainObject(v) {
|
|
204
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// D-20 engine-availability seam: the forced test seam + an explicit host
|
|
208
|
+
// signal (the host knows the engine legs failed beyond the graceful rungs).
|
|
209
|
+
function engineAbsent(opts) {
|
|
210
|
+
if (process.env.MINDRIAN_FORCE_ENGINE_ABSENT === '1') return true;
|
|
211
|
+
return isPlainObject(opts) && opts.engineAbsent === true;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* composeExploreChain() -> { steps, workflow }
|
|
216
|
+
*
|
|
217
|
+
* D-06: framework names -> composeWorkflow -> ordered steps (honest
|
|
218
|
+
* command:null + optional:true degrade preserved verbatim), plus the material
|
|
219
|
+
* filing step appended. Pure; no db, no fs.
|
|
220
|
+
*/
|
|
221
|
+
function composeExploreChain() {
|
|
222
|
+
const workflow = composeWorkflow(FRAMEWORK_LEGS.map((f) => f.framework));
|
|
223
|
+
const steps = workflow.map((s, i) => ({
|
|
224
|
+
step: s.step,
|
|
225
|
+
framework: s.framework,
|
|
226
|
+
command: s.command,
|
|
227
|
+
optional: s.optional,
|
|
228
|
+
leg: FRAMEWORK_LEGS[i].leg,
|
|
229
|
+
web: FRAMEWORK_LEGS[i].web,
|
|
230
|
+
}));
|
|
231
|
+
steps.push(Object.assign({ step: steps.length + 1, optional: false }, FILING_STEP));
|
|
232
|
+
return { steps: steps, workflow: workflow };
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Read an opportunity node's props (read-only; open/close per call).
|
|
236
|
+
function readOpportunity(roomDir, nodeId) {
|
|
237
|
+
const db = openRoomDb(roomDir);
|
|
238
|
+
try {
|
|
239
|
+
const row = db.prepare('SELECT id, type, properties FROM nodes WHERE id = ?').get(nodeId);
|
|
240
|
+
if (!row) return null;
|
|
241
|
+
let props = {};
|
|
242
|
+
try { props = JSON.parse(row.properties || '{}'); } catch (_e) { props = {}; }
|
|
243
|
+
return { id: row.id, type: row.type, props: isPlainObject(props) ? props : {} };
|
|
244
|
+
} catch (_e) {
|
|
245
|
+
return null;
|
|
246
|
+
} finally {
|
|
247
|
+
closeRoomDb(db);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Evidence-id fallback chain: explicit opts -> the node's DERIVED_FROM edge
|
|
252
|
+
// targets -> the latest stage_history evidence_ids. Read-only.
|
|
253
|
+
function resolveEvidenceIds(roomDir, nodeId, props, explicit) {
|
|
254
|
+
if (Array.isArray(explicit) && explicit.length > 0) return explicit.slice();
|
|
255
|
+
const db = openRoomDb(roomDir);
|
|
256
|
+
try {
|
|
257
|
+
const rows = db.prepare("SELECT target FROM edges WHERE source = ? AND type = 'DERIVED_FROM'").all(nodeId);
|
|
258
|
+
if (rows.length > 0) return rows.map((r) => r.target);
|
|
259
|
+
} catch (_e) { /* fall through */ } finally {
|
|
260
|
+
closeRoomDb(db);
|
|
261
|
+
}
|
|
262
|
+
const history = Array.isArray(props.stage_history) ? props.stage_history : [];
|
|
263
|
+
for (let i = history.length - 1; i >= 0; i -= 1) {
|
|
264
|
+
const e = history[i];
|
|
265
|
+
if (e && Array.isArray(e.evidence_ids) && e.evidence_ids.length > 0) return e.evidence_ids.slice();
|
|
266
|
+
}
|
|
267
|
+
return [];
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Collect url-cited sources from the web legs' trace outputs.
|
|
271
|
+
function collectCitations(trace) {
|
|
272
|
+
const seen = new Set();
|
|
273
|
+
const citations = [];
|
|
274
|
+
for (const entry of trace) {
|
|
275
|
+
const out = entry && entry.chain_output;
|
|
276
|
+
if (!isPlainObject(out) || !Array.isArray(out.findings)) continue;
|
|
277
|
+
for (const f of out.findings) {
|
|
278
|
+
if (!isPlainObject(f) || typeof f.url !== 'string' || f.url.length === 0) continue;
|
|
279
|
+
if (seen.has(f.url)) continue;
|
|
280
|
+
seen.add(f.url);
|
|
281
|
+
citations.push({
|
|
282
|
+
url: f.url,
|
|
283
|
+
accessed: typeof f.accessed === 'string' && f.accessed.length >= 10
|
|
284
|
+
? f.accessed.slice(0, 10)
|
|
285
|
+
: new Date().toISOString().slice(0, 10),
|
|
286
|
+
title: typeof f.title === 'string' ? f.title : '',
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return citations;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Compose the research corpus body from the chain trace (leg summaries +
|
|
294
|
+
// finding titles -- real prose the post-filing extractor can mine).
|
|
295
|
+
function composeResearchBody(trace, provenanceLines) {
|
|
296
|
+
const lines = [];
|
|
297
|
+
for (const entry of trace) {
|
|
298
|
+
const out = entry && entry.chain_output;
|
|
299
|
+
if (!isPlainObject(out)) continue;
|
|
300
|
+
const legName = (entry.step && entry.step.leg ? entry.step.leg : 'leg').replace(/_/g, ' ');
|
|
301
|
+
lines.push('## ' + legName);
|
|
302
|
+
lines.push('');
|
|
303
|
+
if (typeof out.summary === 'string' && out.summary.length > 0) {
|
|
304
|
+
lines.push(out.summary);
|
|
305
|
+
lines.push('');
|
|
306
|
+
}
|
|
307
|
+
if (Array.isArray(out.findings)) {
|
|
308
|
+
for (const f of out.findings) {
|
|
309
|
+
if (!isPlainObject(f)) continue;
|
|
310
|
+
const title = typeof f.title === 'string' ? f.title : '';
|
|
311
|
+
const url = typeof f.url === 'string' ? f.url : '';
|
|
312
|
+
const summary = typeof f.summary === 'string' ? f.summary : '';
|
|
313
|
+
lines.push('- ' + [title, summary, url].filter((s) => s.length > 0).join(' :: '));
|
|
314
|
+
}
|
|
315
|
+
lines.push('');
|
|
316
|
+
}
|
|
317
|
+
if (Array.isArray(out.results) && out.results.length > 0) {
|
|
318
|
+
for (const r of out.results) {
|
|
319
|
+
if (!isPlainObject(r)) continue;
|
|
320
|
+
lines.push('- room-corpus: ' + String(r.path || r.node_id || ''));
|
|
321
|
+
}
|
|
322
|
+
lines.push('');
|
|
323
|
+
}
|
|
324
|
+
if (typeof out.provenance === 'string' && out.provenance.length > 0) {
|
|
325
|
+
lines.push('provenance: ' + out.provenance);
|
|
326
|
+
lines.push('');
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
for (const p of provenanceLines) {
|
|
330
|
+
lines.push(p);
|
|
331
|
+
}
|
|
332
|
+
return lines.join('\n').trim();
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// ---------------------------------------------------------------------------
|
|
336
|
+
// Phase 265-18 (RADAR-26): the probe-first concurrent runner + the dispatch
|
|
337
|
+
// decision (parallel pre-pass vs the original sequential runChain path).
|
|
338
|
+
// Both take everything they need as parameters (no closure over roomDir /
|
|
339
|
+
// options) so they are directly unit-testable with a stubbed onStep and no
|
|
340
|
+
// real room (tests/test-265-explore-parallel.cjs).
|
|
341
|
+
// ---------------------------------------------------------------------------
|
|
342
|
+
|
|
343
|
+
// Normalize an onStep-shaped result into a trace entry the SAME shape
|
|
344
|
+
// runChain's own trace entries carry ({ step, chain_output, quality }).
|
|
345
|
+
function _toTraceEntry(step, result) {
|
|
346
|
+
const r = isPlainObject(result) ? result : {};
|
|
347
|
+
return {
|
|
348
|
+
step: step,
|
|
349
|
+
chain_output: r.chain_output !== undefined ? r.chain_output : null,
|
|
350
|
+
quality: (typeof r.quality === 'string') ? r.quality : null,
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// Fan a set of steps out CONCURRENTLY via Promise.all (mirrors the shipped
|
|
355
|
+
// lib/core/bono/cell-fanout.cjs Promise.all idiom, the navigator-confirmed
|
|
356
|
+
// final design; see the require comment at the top of this file). Promise.all,
|
|
357
|
+
// NOT allSettled: a rejection propagates exactly as the sequential path's
|
|
358
|
+
// await did, so a swallowed rejection never hides a failed leg (the
|
|
359
|
+
// silent-success class this repo's threat register exists to catch).
|
|
360
|
+
// resolveFanoutCap clamps N even though N is at most 3 here -- the SAME
|
|
361
|
+
// clamp cell-fanout reuses from lib/core/futures/orchestrator.cjs, not a new
|
|
362
|
+
// cap.
|
|
363
|
+
//
|
|
364
|
+
// Promise.all resolves the returned array in the SAME order as `fanSteps`
|
|
365
|
+
// (input order), NOT completion order, so building the trace directly from
|
|
366
|
+
// this call preserves FRAMEWORK_LEGS order without any post-hoc sort.
|
|
367
|
+
function runFanConcurrently(fanSteps, wrappedOnStep, previousOutput) {
|
|
368
|
+
const cap = resolveFanoutCap({ fanout: fanSteps.length });
|
|
369
|
+
const bounded = fanSteps.slice(0, cap);
|
|
370
|
+
return Promise.all(bounded.map(function (step) {
|
|
371
|
+
return Promise.resolve(wrappedOnStep(step, previousOutput)).then(function (result) {
|
|
372
|
+
return _toTraceEntry(step, result);
|
|
373
|
+
});
|
|
374
|
+
}));
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* runAnalysisLegsParallel(analysisSteps, ctx) -> Promise<{ trace, short_circuited }>
|
|
379
|
+
*
|
|
380
|
+
* ctx: { wrappedOnStep, policy } (policy from resolveExploreCostPolicy).
|
|
381
|
+
*
|
|
382
|
+
* cost-conscious mode: probes `policy.probeLeg` (deep_research) ALONE via
|
|
383
|
+
* wrappedOnStep. If probeClears(result) is false, returns immediately with a
|
|
384
|
+
* trace containing ONLY the probe entry and `short_circuited` set -- the
|
|
385
|
+
* other three legs are NEVER dispatched (the load-bearing cost-guard
|
|
386
|
+
* property: nothing is spent beyond the probe). When the probe clears, the
|
|
387
|
+
* remaining legs fan out concurrently.
|
|
388
|
+
*
|
|
389
|
+
* all-legs mode: no probe -- every leg in `analysisSteps` fans out
|
|
390
|
+
* concurrently, unconditionally.
|
|
391
|
+
*/
|
|
392
|
+
async function runAnalysisLegsParallel(analysisSteps, ctx) {
|
|
393
|
+
const wrappedOnStep = ctx.wrappedOnStep;
|
|
394
|
+
const policy = ctx.policy;
|
|
395
|
+
const steps = Array.isArray(analysisSteps) ? analysisSteps : [];
|
|
396
|
+
|
|
397
|
+
if (policy.mode === 'cost-conscious') {
|
|
398
|
+
const probeStep = steps.find((s) => s.leg === policy.probeLeg) || steps[0];
|
|
399
|
+
const remaining = steps.filter((s) => s !== probeStep);
|
|
400
|
+
|
|
401
|
+
const probeResult = await wrappedOnStep(probeStep, null);
|
|
402
|
+
const probeEntry = _toTraceEntry(probeStep, probeResult);
|
|
403
|
+
|
|
404
|
+
if (!probeClears(probeResult)) {
|
|
405
|
+
return {
|
|
406
|
+
trace: [probeEntry],
|
|
407
|
+
short_circuited: { leg: probeStep.leg, reason: 'probe_quality_low' },
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
const fanTrace = await runFanConcurrently(remaining, wrappedOnStep, probeEntry.chain_output);
|
|
412
|
+
return { trace: [probeEntry].concat(fanTrace), short_circuited: null };
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// all-legs mode: no probe; fan every leg concurrently, unconditionally.
|
|
416
|
+
const fanTrace = await runFanConcurrently(steps, wrappedOnStep, null);
|
|
417
|
+
return { trace: fanTrace, short_circuited: null };
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// Decorate a halt with the D-20 OFFER, mirroring the pre-265-18 decoration
|
|
421
|
+
// exactly (never on the file_explored step -- that gate always halts on
|
|
422
|
+
// posture, not on engine absence).
|
|
423
|
+
function _decorateOffer(run, offer) {
|
|
424
|
+
if (run.haltedAt && offer && run.haltedAt.step && run.haltedAt.step.leg !== 'file_explored') {
|
|
425
|
+
run.haltedAt.offer = offer;
|
|
426
|
+
}
|
|
427
|
+
return run;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* runExploreDispatch(steps, analysisSteps, filingSteps, opts) ->
|
|
432
|
+
* Promise<{ run, dispatch }>
|
|
433
|
+
*
|
|
434
|
+
* The dispatch decision this plan adds. opts: { wrappedOnStep, gateFn,
|
|
435
|
+
* onHalt, roomDir, journal, retries, sleep, maxSteps, policy, absent,
|
|
436
|
+
* manual, offer }.
|
|
437
|
+
*
|
|
438
|
+
* - absent && !manual: the D-20 engine-absent OFFER must fire on the FIRST
|
|
439
|
+
* engine-backed step before anything executes. Takes the ORIGINAL
|
|
440
|
+
* sequential runChain(steps, ...) path unconditionally, so the OFFER
|
|
441
|
+
* semantics stay byte-identical. dispatch: {mode:'sequential',
|
|
442
|
+
* reason:'engine_absent'}.
|
|
443
|
+
* - !policy.parallel (EXPLORE_PARALLEL=0): the operator escape hatch, same
|
|
444
|
+
* original sequential path. dispatch: {mode:'sequential',
|
|
445
|
+
* reason:'parallel_disabled'}.
|
|
446
|
+
* - otherwise: runs the probe-first parallel pre-pass, then the filing step
|
|
447
|
+
* ALONE through runChain with the SAME gateFn/onHalt/roomDir/journal/
|
|
448
|
+
* retries/sleep/maxSteps it always received, merging the pre-pass trace
|
|
449
|
+
* ahead of the filing trace. On a probe short-circuit, the run halts with
|
|
450
|
+
* reason 'quality_early_stop' (the exact reason the sequential chain used)
|
|
451
|
+
* and filing NEVER runs. ANY throw from the pre-pass falls back to the
|
|
452
|
+
* ORIGINAL sequential runChain(steps, ...) path, dispatch:
|
|
453
|
+
* {mode:'sequential', reason:'parallel_failed:<message>'} -- never silent.
|
|
454
|
+
*/
|
|
455
|
+
async function runExploreDispatch(steps, analysisSteps, filingSteps, opts) {
|
|
456
|
+
const sequentialOpts = {
|
|
457
|
+
onStep: opts.wrappedOnStep,
|
|
458
|
+
onHalt: opts.onHalt,
|
|
459
|
+
gateFn: opts.gateFn,
|
|
460
|
+
roomDir: opts.roomDir,
|
|
461
|
+
journal: opts.journal === true,
|
|
462
|
+
retries: typeof opts.retries === 'number' ? opts.retries : 0,
|
|
463
|
+
sleep: typeof opts.sleep === 'function' ? opts.sleep : undefined,
|
|
464
|
+
maxSteps: typeof opts.maxSteps === 'number' ? opts.maxSteps : undefined,
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
if (opts.absent && !opts.manual) {
|
|
468
|
+
const run = await runChain(steps, sequentialOpts);
|
|
469
|
+
return { run: _decorateOffer(run, opts.offer), dispatch: { mode: 'sequential', reason: 'engine_absent' } };
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
if (!opts.policy.parallel) {
|
|
473
|
+
const run = await runChain(steps, sequentialOpts);
|
|
474
|
+
return { run: _decorateOffer(run, opts.offer), dispatch: { mode: 'sequential', reason: 'parallel_disabled' } };
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
try {
|
|
478
|
+
const prePass = await runAnalysisLegsParallel(analysisSteps, {
|
|
479
|
+
wrappedOnStep: opts.wrappedOnStep,
|
|
480
|
+
policy: opts.policy,
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
if (prePass.short_circuited) {
|
|
484
|
+
const probeEntry = prePass.trace[0];
|
|
485
|
+
const run = {
|
|
486
|
+
trace: prePass.trace,
|
|
487
|
+
completed: false,
|
|
488
|
+
haltedAt: { step: probeEntry.step, reason: 'quality_early_stop', quality: probeEntry.quality },
|
|
489
|
+
partial: false,
|
|
490
|
+
};
|
|
491
|
+
return {
|
|
492
|
+
run: _decorateOffer(run, opts.offer),
|
|
493
|
+
dispatch: { mode: 'parallel', probe: opts.policy.probeLeg, short_circuited: true },
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
const filingRun = await runChain(filingSteps, sequentialOpts);
|
|
498
|
+
const run = {
|
|
499
|
+
trace: prePass.trace.concat(filingRun.trace),
|
|
500
|
+
completed: filingRun.completed,
|
|
501
|
+
haltedAt: filingRun.haltedAt,
|
|
502
|
+
partial: filingRun.partial === true,
|
|
503
|
+
};
|
|
504
|
+
return {
|
|
505
|
+
run: _decorateOffer(run, opts.offer),
|
|
506
|
+
dispatch: { mode: 'parallel', probe: opts.policy.probeLeg, short_circuited: false },
|
|
507
|
+
};
|
|
508
|
+
} catch (e) {
|
|
509
|
+
const run = await runChain(steps, sequentialOpts);
|
|
510
|
+
const message = String((e && e.message) || e || 'unknown').slice(0, 200);
|
|
511
|
+
return {
|
|
512
|
+
run: _decorateOffer(run, opts.offer),
|
|
513
|
+
dispatch: { mode: 'sequential', reason: 'parallel_failed:' + message },
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* exploreOpportunity(roomDir, opportunityNodeId, opts) -> Promise<envelope>
|
|
520
|
+
*
|
|
521
|
+
* The ONE explore entry point, invoked ONLY from the explicit
|
|
522
|
+
* commands/explore-opportunity.md surface (never auto-fired on Qualify).
|
|
523
|
+
*
|
|
524
|
+
* opts:
|
|
525
|
+
* onStep(step, prev) REQUIRED host leg executor: dispatches each analysis
|
|
526
|
+
* leg's command through the framework-runner's existing
|
|
527
|
+
* egress chokepoint (D-07); returns
|
|
528
|
+
* { chain_output, quality }.
|
|
529
|
+
* onHalt(step, ctx) the Tri-Context gate verb collector. At the material
|
|
530
|
+
* file_explored gate, 'approve' | 'file' proceeds to
|
|
531
|
+
* filing; anything else ends the run with nothing filed.
|
|
532
|
+
* Under the D-20 engine-absent halt, ctx.offer carries
|
|
533
|
+
* the llm-manual OFFER.
|
|
534
|
+
* forceOffline D-16 item 3 test seam: swap the web legs to
|
|
535
|
+
* queryRoomCorpus (provenance "web: absent
|
|
536
|
+
* (room-corpus degrade)").
|
|
537
|
+
* manualMode D-20: the navigator ACCEPTED the llm-manual offer;
|
|
538
|
+
* legs execute via onStep (the model's own work) and
|
|
539
|
+
* every output is stamped engine_mode
|
|
540
|
+
* 'llm_manual_baseline'. Never a default.
|
|
541
|
+
* engineAbsent host signal mirroring MINDRIAN_FORCE_ENGINE_ABSENT.
|
|
542
|
+
* topicHandles generic research handles (default: derived from the
|
|
543
|
+
* node's name + lens).
|
|
544
|
+
* evidenceIds graph evidence node ids for the >=2 typed evidence
|
|
545
|
+
* edges (fallback: DERIVED_FROM targets, then the
|
|
546
|
+
* latest stage_history evidence_ids).
|
|
547
|
+
* sessionId, actor, minto, maxSteps, retries, journal, sleep
|
|
548
|
+
* costMode, parallel Phase 265-18 (RADAR-26) overrides for
|
|
549
|
+
* resolveExploreCostPolicy (opts.costMode beats
|
|
550
|
+
* EXPLORE_COST_MODE; opts.parallel beats
|
|
551
|
+
* EXPLORE_PARALLEL). See runExploreDispatch below.
|
|
552
|
+
*
|
|
553
|
+
* Returns { ok, trace, completed, haltedAt, research_mode, providers,
|
|
554
|
+
* engine_mode, filed, dispatch } -- never throws. `dispatch` is
|
|
555
|
+
* Phase 265-18 (RADAR-26): {mode:'parallel'|'sequential', reason, ...} --
|
|
556
|
+
* which path actually ran and why. Never silent.
|
|
557
|
+
*/
|
|
558
|
+
async function exploreOpportunity(roomDir, opportunityNodeId, opts) {
|
|
559
|
+
const options = isPlainObject(opts) ? opts : {};
|
|
560
|
+
try {
|
|
561
|
+
if (typeof roomDir !== 'string' || roomDir.length === 0
|
|
562
|
+
|| typeof opportunityNodeId !== 'string' || opportunityNodeId.length === 0) {
|
|
563
|
+
return { ok: false, reason: 'invalid_params' };
|
|
564
|
+
}
|
|
565
|
+
if (typeof options.onStep !== 'function') {
|
|
566
|
+
return { ok: false, reason: 'no_onStep_callback' };
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
const node = readOpportunity(roomDir, opportunityNodeId);
|
|
570
|
+
if (!node) return { ok: false, reason: 'opportunity_not_found', node_id: opportunityNodeId };
|
|
571
|
+
const lifecycle = typeof node.props.lifecycle === 'string' ? node.props.lifecycle : null;
|
|
572
|
+
// The chain consumes a QUALIFIED opportunity (re-exploring an explored one
|
|
573
|
+
// updates in place via the problem_hash dedup). A candidate NEVER explores
|
|
574
|
+
// implicitly -- qualification is the human gate that precedes this surface.
|
|
575
|
+
if (lifecycle !== 'qualified' && lifecycle !== 'explored') {
|
|
576
|
+
return { ok: false, reason: 'not_qualified', lifecycle: lifecycle, node_id: opportunityNodeId };
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
const name = typeof node.props.name === 'string' && node.props.name.length > 0
|
|
580
|
+
? node.props.name : opportunityNodeId;
|
|
581
|
+
const topicHandles = (Array.isArray(options.topicHandles) && options.topicHandles.length > 0)
|
|
582
|
+
? options.topicHandles.filter((t) => typeof t === 'string' && t.length > 0)
|
|
583
|
+
: [name].concat(typeof node.props.lens === 'string' ? [node.props.lens] : []);
|
|
584
|
+
const sessionId = (typeof options.sessionId === 'string' && options.sessionId.length > 0)
|
|
585
|
+
? options.sessionId : 'explore-chain';
|
|
586
|
+
const actor = (typeof options.actor === 'string' && options.actor.length > 0)
|
|
587
|
+
? options.actor : 'navigator';
|
|
588
|
+
|
|
589
|
+
const absent = engineAbsent(options);
|
|
590
|
+
const manual = options.manualMode === true;
|
|
591
|
+
const forceOffline = options.forceOffline === true;
|
|
592
|
+
// D-20: manual mode is honored ONLY via the explicit opt (the navigator's
|
|
593
|
+
// acceptance of the OFFER at the gate) -- never inferred, never a default.
|
|
594
|
+
const runEngineMode = manual ? MANUAL_ENGINE_MODE : 'engine';
|
|
595
|
+
|
|
596
|
+
const { steps } = composeExploreChain();
|
|
597
|
+
// Phase 265-18 (RADAR-26): split once so the probe-first pre-pass can run
|
|
598
|
+
// the four analysis legs and the material filing step through separate
|
|
599
|
+
// runChain-shaped dispatches (see runExploreDispatch below).
|
|
600
|
+
const analysisSteps = steps.filter((s) => s.leg !== 'file_explored');
|
|
601
|
+
const filingSteps = steps.filter((s) => s.leg === 'file_explored');
|
|
602
|
+
const costPolicy = resolveExploreCostPolicy(process.env, {
|
|
603
|
+
parallel: typeof options.parallel === 'boolean' ? options.parallel : undefined,
|
|
604
|
+
costMode: typeof options.costMode === 'string' ? options.costMode : undefined,
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
// ---- the D-19 envelope accumulators ----
|
|
608
|
+
let webResearchMode = null; // set by the offline degrade / host envelope
|
|
609
|
+
let providers = [];
|
|
610
|
+
|
|
611
|
+
// ---- the wrapped onStep: offline degrade + engine_mode stamping ----
|
|
612
|
+
const hostOnStep = options.onStep;
|
|
613
|
+
function wrappedOnStep(step, prev) {
|
|
614
|
+
if (step.web && forceOffline) {
|
|
615
|
+
// D-16 item 3: the web leg's SOURCE swaps to the room's own research
|
|
616
|
+
// corpus. Honest provenance; a cold corpus stays typed and EMPTY.
|
|
617
|
+
const corpus = researchFiling.queryRoomCorpus(roomDir, topicHandles);
|
|
618
|
+
if (step.leg === 'deep_research') {
|
|
619
|
+
webResearchMode = corpus.research_mode;
|
|
620
|
+
providers = providers.concat(Array.isArray(corpus.providers) ? corpus.providers : []);
|
|
621
|
+
}
|
|
622
|
+
return {
|
|
623
|
+
chain_output: {
|
|
624
|
+
leg: step.leg,
|
|
625
|
+
source: 'room-corpus',
|
|
626
|
+
provenance: corpus.provenance,
|
|
627
|
+
research_mode: corpus.research_mode,
|
|
628
|
+
providers: corpus.providers,
|
|
629
|
+
results: corpus.results,
|
|
630
|
+
engine_mode: runEngineMode,
|
|
631
|
+
},
|
|
632
|
+
// A cold corpus is LOW quality: the loop's quality_early_stop ends
|
|
633
|
+
// the chain honestly instead of composing analysis from nothing.
|
|
634
|
+
quality: corpus.results.length > 0 ? 'medium' : 'low',
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
const out = hostOnStep(step, prev) || {};
|
|
638
|
+
const co = isPlainObject(out.chain_output) ? out.chain_output : null;
|
|
639
|
+
if (co) {
|
|
640
|
+
co.engine_mode = runEngineMode;
|
|
641
|
+
if (step.leg === 'deep_research') {
|
|
642
|
+
if (typeof co.research_mode === 'string') webResearchMode = co.research_mode;
|
|
643
|
+
if (Array.isArray(co.providers)) providers = providers.concat(co.providers);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
return out;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
// ---- the gate: default makeGateFn semantics + the D-20 engine-absent
|
|
650
|
+
// halt. The material filing step halts via the DEFAULT posture
|
|
651
|
+
// withhold-default (its command is unknown to the registry); the
|
|
652
|
+
// engine-absent branch halts the FIRST engine-backed step so the OFFER is
|
|
653
|
+
// presented BEFORE anything executes silently. ----
|
|
654
|
+
const baseGate = makeGateFn({});
|
|
655
|
+
function gateFn(step, posture, prior) {
|
|
656
|
+
if (absent && !manual && step.leg !== 'file_explored') return 'halt';
|
|
657
|
+
return baseGate(step, posture, prior);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
// ---- the halt handler: decorate with the D-20 OFFER when relevant ----
|
|
661
|
+
const hostOnHalt = typeof options.onHalt === 'function' ? options.onHalt : null;
|
|
662
|
+
const offer = (absent && !manual)
|
|
663
|
+
? {
|
|
664
|
+
verb: OFFER_VERB,
|
|
665
|
+
engine_mode: MANUAL_ENGINE_MODE,
|
|
666
|
+
note: 'Engine unavailable for this step. OFFER: the model performs the analysis '
|
|
667
|
+
+ 'manually via the frozen deep_research reach + native web tools (same Part 8 '
|
|
668
|
+
+ 'handles). Output is labeled engine_mode ' + MANUAL_ENGINE_MODE
|
|
669
|
+
+ ' and EXCLUDED from calibration sets. Never the default, never silent.',
|
|
670
|
+
}
|
|
671
|
+
: null;
|
|
672
|
+
function onHalt(step, contexts) {
|
|
673
|
+
const ctx = Object.assign({}, contexts || {});
|
|
674
|
+
if (offer && step.leg !== 'file_explored') ctx.offer = offer;
|
|
675
|
+
if (!hostOnHalt) return 'defer';
|
|
676
|
+
try { return hostOnHalt(step, ctx); } catch (_e) { return 'defer'; }
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
// ---- Phase 265-18 (RADAR-26): the dispatch decision. Probe-first
|
|
680
|
+
// parallel pre-pass when the policy and the engine allow it; the
|
|
681
|
+
// ORIGINAL sequential runChain(steps, ...) path (byte-identical to the
|
|
682
|
+
// pre-265-18 behavior) on the engine-absent OFFER, the operator escape
|
|
683
|
+
// hatch, or ANY throw from the parallel path. dispatch always names
|
|
684
|
+
// which path ran and why -- see runExploreDispatch's own doc comment. ----
|
|
685
|
+
const { run, dispatch } = await runExploreDispatch(steps, analysisSteps, filingSteps, {
|
|
686
|
+
wrappedOnStep: wrappedOnStep,
|
|
687
|
+
gateFn: gateFn,
|
|
688
|
+
onHalt: onHalt,
|
|
689
|
+
roomDir: roomDir,
|
|
690
|
+
journal: options.journal,
|
|
691
|
+
retries: options.retries,
|
|
692
|
+
sleep: options.sleep,
|
|
693
|
+
maxSteps: options.maxSteps,
|
|
694
|
+
policy: costPolicy,
|
|
695
|
+
absent: absent,
|
|
696
|
+
manual: manual,
|
|
697
|
+
offer: offer,
|
|
698
|
+
});
|
|
699
|
+
|
|
700
|
+
// ---- compose the run-level D-19 envelope ----
|
|
701
|
+
let researchMode = webResearchMode;
|
|
702
|
+
if (!researchMode) {
|
|
703
|
+
const deepLeg = run.trace.find((t) => t.step && t.step.leg === 'deep_research' && t.chain_output);
|
|
704
|
+
const hasFindings = !!(deepLeg && Array.isArray(deepLeg.chain_output.findings)
|
|
705
|
+
&& deepLeg.chain_output.findings.length > 0);
|
|
706
|
+
researchMode = deepLeg ? (hasFindings ? 'normal' : 'insufficient_evidence') : null;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
// ---- the material filing: ONLY on the navigator's approve verb at the
|
|
710
|
+
// file_explored gate (Part 3; D-17; D-16 items 1+2; D-21 nesting). ----
|
|
711
|
+
let filed = null;
|
|
712
|
+
const haltedAtFiling = !!(run.haltedAt && run.haltedAt.step && run.haltedAt.step.leg === 'file_explored');
|
|
713
|
+
const approved = haltedAtFiling && APPROVE_VERBS.indexOf(String(run.haltedAt.verb || '').toLowerCase()) !== -1;
|
|
714
|
+
if (approved) {
|
|
715
|
+
const citations = collectCitations(run.trace);
|
|
716
|
+
const provenanceLines = [];
|
|
717
|
+
if (forceOffline) provenanceLines.push('', researchFiling.OFFLINE_PROVENANCE);
|
|
718
|
+
const body = 'Opportunity: ' + name + '\n\n'
|
|
719
|
+
+ composeResearchBody(run.trace, provenanceLines);
|
|
720
|
+
|
|
721
|
+
// (1) D-16 item 1: the research corpus artifact.
|
|
722
|
+
const research = researchFiling.fileResearchArtifact(roomDir, {
|
|
723
|
+
topicHandles: topicHandles,
|
|
724
|
+
body: body,
|
|
725
|
+
sources: citations.map((c) => ({ url: c.url, accessed: c.accessed })),
|
|
726
|
+
engineMode: runEngineMode === MANUAL_ENGINE_MODE ? MANUAL_ENGINE_MODE : undefined,
|
|
727
|
+
researchMode: researchMode && researchMode !== 'normal' ? researchMode : undefined,
|
|
728
|
+
});
|
|
729
|
+
if (!research.ok) {
|
|
730
|
+
return Object.assign(run, {
|
|
731
|
+
ok: false, reason: 'research_filing_failed', detail: research.reason,
|
|
732
|
+
research_mode: researchMode, providers: providers, engine_mode: runEngineMode, filed: null,
|
|
733
|
+
dispatch: dispatch,
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
// (2) the Minto explored artifact (Task 4 writer): nested filing +
|
|
738
|
+
// evidence edges + the D-17 explored transition. Its own extraction is
|
|
739
|
+
// deferred to the ONE combined scoped pass below.
|
|
740
|
+
const evidenceIds = resolveEvidenceIds(roomDir, opportunityNodeId, node.props, options.evidenceIds);
|
|
741
|
+
// eslint-disable-next-line global-require
|
|
742
|
+
const exploredArtifact = require('./explored-artifact.cjs');
|
|
743
|
+
const db = openRoomDb(roomDir);
|
|
744
|
+
let explored;
|
|
745
|
+
try {
|
|
746
|
+
explored = await exploredArtifact.composeExploredArtifact({
|
|
747
|
+
roomDir: roomDir,
|
|
748
|
+
db: db,
|
|
749
|
+
opportunityNodeId: opportunityNodeId,
|
|
750
|
+
chainTrace: run.trace,
|
|
751
|
+
citations: citations,
|
|
752
|
+
sessionId: sessionId,
|
|
753
|
+
actor: actor,
|
|
754
|
+
engineMode: runEngineMode,
|
|
755
|
+
evidenceIds: evidenceIds,
|
|
756
|
+
researchArtifactNodeId: research.node_id,
|
|
757
|
+
minto: isPlainObject(options.minto) ? options.minto : null,
|
|
758
|
+
postFilingExtraction: false, // ONE combined scoped pass below (D-05)
|
|
759
|
+
});
|
|
760
|
+
} finally {
|
|
761
|
+
closeRoomDb(db);
|
|
762
|
+
}
|
|
763
|
+
if (!explored || explored.ok !== true) {
|
|
764
|
+
return Object.assign(run, {
|
|
765
|
+
ok: false,
|
|
766
|
+
reason: 'explored_filing_failed',
|
|
767
|
+
detail: explored && (explored.reason || 'invariant_violations'),
|
|
768
|
+
violations: explored && explored.violations,
|
|
769
|
+
research_mode: researchMode, providers: providers, engine_mode: runEngineMode,
|
|
770
|
+
filed: { research: research, explored: null },
|
|
771
|
+
dispatch: dispatch,
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
// (3) D-16 item 2: ONE scoped post-filing extraction over BOTH new
|
|
776
|
+
// artifacts (never a full-room re-extract), after the write handle
|
|
777
|
+
// closed (218 D-05 single-writer discipline).
|
|
778
|
+
const extraction = await researchFiling.runPostFilingExtraction(
|
|
779
|
+
roomDir, sessionId, [research.relPath, explored.relPath]
|
|
780
|
+
);
|
|
781
|
+
|
|
782
|
+
filed = { research: research, explored: explored, extraction: extraction };
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
const envelope = {
|
|
786
|
+
ok: true,
|
|
787
|
+
trace: run.trace,
|
|
788
|
+
completed: run.completed,
|
|
789
|
+
haltedAt: run.haltedAt,
|
|
790
|
+
partial: run.partial === true,
|
|
791
|
+
research_mode: researchMode,
|
|
792
|
+
providers: providers,
|
|
793
|
+
engine_mode: runEngineMode,
|
|
794
|
+
filed: filed,
|
|
795
|
+
dispatch: dispatch,
|
|
796
|
+
};
|
|
797
|
+
// Phase 221-04 (D-02 seam alignment, ADDITIVE): the full typed
|
|
798
|
+
// stage-envelope view + the annex-6 disclosure ride alongside every
|
|
799
|
+
// landed 219-05 field (nothing renamed, nothing removed). Lazy require +
|
|
800
|
+
// degrade-to-landed-shape (the driverSeam defensive idiom).
|
|
801
|
+
try {
|
|
802
|
+
// eslint-disable-next-line global-require
|
|
803
|
+
const rs = require('../recovery/result-semantics.cjs');
|
|
804
|
+
envelope.stage_envelopes = rs.envelopesFromProviders(providers);
|
|
805
|
+
envelope.disclosure = rs.composeRecoveryResult({
|
|
806
|
+
envelopes: envelope.stage_envelopes,
|
|
807
|
+
dispatch: null,
|
|
808
|
+
recovery: null,
|
|
809
|
+
ctx: { requestedScope: topicHandles, base_research_mode: researchMode },
|
|
810
|
+
}).disclosure;
|
|
811
|
+
} catch (_e) { /* additive only */ }
|
|
812
|
+
return envelope;
|
|
813
|
+
} catch (e) {
|
|
814
|
+
return { ok: false, reason: 'explore_threw', detail: String(e && e.message || '').slice(0, 120) };
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
module.exports = {
|
|
819
|
+
exploreOpportunity,
|
|
820
|
+
composeExploreChain,
|
|
821
|
+
FRAMEWORK_LEGS,
|
|
822
|
+
OFFER_VERB,
|
|
823
|
+
MANUAL_ENGINE_MODE,
|
|
824
|
+
APPROVE_VERBS,
|
|
825
|
+
// Phase 265-18 (RADAR-26): the probe-first cost guard + the concurrent
|
|
826
|
+
// runner (exported primarily for direct testability with a stubbed onStep
|
|
827
|
+
// and no real room; exploreOpportunity is the intended production caller).
|
|
828
|
+
resolveExploreCostPolicy,
|
|
829
|
+
probeClears,
|
|
830
|
+
PROBE_LEG,
|
|
831
|
+
COST_MODES,
|
|
832
|
+
runAnalysisLegsParallel,
|
|
833
|
+
runExploreDispatch,
|
|
834
|
+
};
|