nodedex 0.1.0
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/adapters/claude-code-watcher.mjs +336 -0
- package/adapters/hermes-statedb-watcher.mjs +234 -0
- package/adapters/nodedex-capture-core.mjs +129 -0
- package/adapters/nodedex-capture.mjs +169 -0
- package/dist/agent-protocol.d.ts +7 -0
- package/dist/agent-protocol.d.ts.map +1 -0
- package/dist/agent-protocol.js +38 -0
- package/dist/agent-protocol.js.map +1 -0
- package/dist/api-server.d.ts +5 -0
- package/dist/api-server.d.ts.map +1 -0
- package/dist/api-server.js +351 -0
- package/dist/api-server.js.map +1 -0
- package/dist/boot-env.d.ts +2 -0
- package/dist/boot-env.d.ts.map +1 -0
- package/dist/boot-env.js +12 -0
- package/dist/boot-env.js.map +1 -0
- package/dist/engine/__tests__/search-core.test.d.ts +2 -0
- package/dist/engine/__tests__/search-core.test.d.ts.map +1 -0
- package/dist/engine/__tests__/search-core.test.js +139 -0
- package/dist/engine/__tests__/search-core.test.js.map +1 -0
- package/dist/engine/ai-provider.d.ts +45 -0
- package/dist/engine/ai-provider.d.ts.map +1 -0
- package/dist/engine/ai-provider.js +5 -0
- package/dist/engine/ai-provider.js.map +1 -0
- package/dist/engine/embeddings.d.ts +51 -0
- package/dist/engine/embeddings.d.ts.map +1 -0
- package/dist/engine/embeddings.js +89 -0
- package/dist/engine/embeddings.js.map +1 -0
- package/dist/engine/providers/__tests__/failure-policy.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/failure-policy.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/failure-policy.test.js +134 -0
- package/dist/engine/providers/__tests__/failure-policy.test.js.map +1 -0
- package/dist/engine/providers/__tests__/model-caps.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/model-caps.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/model-caps.test.js +38 -0
- package/dist/engine/providers/__tests__/model-caps.test.js.map +1 -0
- package/dist/engine/providers/__tests__/openai-structured.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/openai-structured.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/openai-structured.test.js +73 -0
- package/dist/engine/providers/__tests__/openai-structured.test.js.map +1 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.js +108 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.js.map +1 -0
- package/dist/engine/providers/anthropic.d.ts +17 -0
- package/dist/engine/providers/anthropic.d.ts.map +1 -0
- package/dist/engine/providers/anthropic.js +125 -0
- package/dist/engine/providers/anthropic.js.map +1 -0
- package/dist/engine/providers/failure-policy.d.ts +56 -0
- package/dist/engine/providers/failure-policy.d.ts.map +1 -0
- package/dist/engine/providers/failure-policy.js +120 -0
- package/dist/engine/providers/failure-policy.js.map +1 -0
- package/dist/engine/providers/gemini.d.ts +22 -0
- package/dist/engine/providers/gemini.d.ts.map +1 -0
- package/dist/engine/providers/gemini.js +180 -0
- package/dist/engine/providers/gemini.js.map +1 -0
- package/dist/engine/providers/index.d.ts +8 -0
- package/dist/engine/providers/index.d.ts.map +1 -0
- package/dist/engine/providers/index.js +67 -0
- package/dist/engine/providers/index.js.map +1 -0
- package/dist/engine/providers/local.d.ts +12 -0
- package/dist/engine/providers/local.d.ts.map +1 -0
- package/dist/engine/providers/local.js +46 -0
- package/dist/engine/providers/local.js.map +1 -0
- package/dist/engine/providers/model-caps.d.ts +6 -0
- package/dist/engine/providers/model-caps.d.ts.map +1 -0
- package/dist/engine/providers/model-caps.js +49 -0
- package/dist/engine/providers/model-caps.js.map +1 -0
- package/dist/engine/providers/openai.d.ts +30 -0
- package/dist/engine/providers/openai.d.ts.map +1 -0
- package/dist/engine/providers/openai.js +309 -0
- package/dist/engine/providers/openai.js.map +1 -0
- package/dist/engine/providers/usage-ledger.d.ts +69 -0
- package/dist/engine/providers/usage-ledger.d.ts.map +1 -0
- package/dist/engine/providers/usage-ledger.js +209 -0
- package/dist/engine/providers/usage-ledger.js.map +1 -0
- package/dist/engine/search-core.d.ts +40 -0
- package/dist/engine/search-core.d.ts.map +1 -0
- package/dist/engine/search-core.js +109 -0
- package/dist/engine/search-core.js.map +1 -0
- package/dist/engine/vector-math.d.ts +5 -0
- package/dist/engine/vector-math.d.ts.map +1 -0
- package/dist/engine/vector-math.js +25 -0
- package/dist/engine/vector-math.js.map +1 -0
- package/dist/home-env.d.ts +26 -0
- package/dist/home-env.d.ts.map +1 -0
- package/dist/home-env.js +87 -0
- package/dist/home-env.js.map +1 -0
- package/dist/mcp-server.d.ts +13 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +79 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/middleware/auth.d.ts +23 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +104 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/auto-recall.d.ts +7 -0
- package/dist/middleware/auto-recall.d.ts.map +1 -0
- package/dist/middleware/auto-recall.js +257 -0
- package/dist/middleware/auto-recall.js.map +1 -0
- package/dist/middleware/auto-reflect.d.ts +4 -0
- package/dist/middleware/auto-reflect.d.ts.map +1 -0
- package/dist/middleware/auto-reflect.js +5 -0
- package/dist/middleware/auto-reflect.js.map +1 -0
- package/dist/middleware/reflect/apply-flag-verdict.d.ts +27 -0
- package/dist/middleware/reflect/apply-flag-verdict.d.ts.map +1 -0
- package/dist/middleware/reflect/apply-flag-verdict.js +57 -0
- package/dist/middleware/reflect/apply-flag-verdict.js.map +1 -0
- package/dist/middleware/reflect/arc-entity-resolve.d.ts +29 -0
- package/dist/middleware/reflect/arc-entity-resolve.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-entity-resolve.js +356 -0
- package/dist/middleware/reflect/arc-entity-resolve.js.map +1 -0
- package/dist/middleware/reflect/arc-inactivity-timer.d.ts +47 -0
- package/dist/middleware/reflect/arc-inactivity-timer.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-inactivity-timer.js +175 -0
- package/dist/middleware/reflect/arc-inactivity-timer.js.map +1 -0
- package/dist/middleware/reflect/arc-pipeline.d.ts +33 -0
- package/dist/middleware/reflect/arc-pipeline.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-pipeline.js +498 -0
- package/dist/middleware/reflect/arc-pipeline.js.map +1 -0
- package/dist/middleware/reflect/comprehend-pergroup.d.ts +100 -0
- package/dist/middleware/reflect/comprehend-pergroup.d.ts.map +1 -0
- package/dist/middleware/reflect/comprehend-pergroup.js +610 -0
- package/dist/middleware/reflect/comprehend-pergroup.js.map +1 -0
- package/dist/middleware/reflect/comprehend.d.ts +237 -0
- package/dist/middleware/reflect/comprehend.d.ts.map +1 -0
- package/dist/middleware/reflect/comprehend.js +706 -0
- package/dist/middleware/reflect/comprehend.js.map +1 -0
- package/dist/middleware/reflect/config.d.ts +34 -0
- package/dist/middleware/reflect/config.d.ts.map +1 -0
- package/dist/middleware/reflect/config.js +131 -0
- package/dist/middleware/reflect/config.js.map +1 -0
- package/dist/middleware/reflect/context.d.ts +138 -0
- package/dist/middleware/reflect/context.d.ts.map +1 -0
- package/dist/middleware/reflect/context.js +619 -0
- package/dist/middleware/reflect/context.js.map +1 -0
- package/dist/middleware/reflect/cost-breakdown.d.ts +69 -0
- package/dist/middleware/reflect/cost-breakdown.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-breakdown.js +63 -0
- package/dist/middleware/reflect/cost-breakdown.js.map +1 -0
- package/dist/middleware/reflect/cost-guard.d.ts +102 -0
- package/dist/middleware/reflect/cost-guard.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-guard.js +243 -0
- package/dist/middleware/reflect/cost-guard.js.map +1 -0
- package/dist/middleware/reflect/cost-pricing.d.ts +54 -0
- package/dist/middleware/reflect/cost-pricing.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-pricing.js +148 -0
- package/dist/middleware/reflect/cost-pricing.js.map +1 -0
- package/dist/middleware/reflect/cross-group-link.d.ts +61 -0
- package/dist/middleware/reflect/cross-group-link.d.ts.map +1 -0
- package/dist/middleware/reflect/cross-group-link.js +212 -0
- package/dist/middleware/reflect/cross-group-link.js.map +1 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.d.ts +70 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.d.ts.map +1 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.js +0 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.js.map +1 -0
- package/dist/middleware/reflect/describe-roots.d.ts +58 -0
- package/dist/middleware/reflect/describe-roots.d.ts.map +1 -0
- package/dist/middleware/reflect/describe-roots.js +266 -0
- package/dist/middleware/reflect/describe-roots.js.map +1 -0
- package/dist/middleware/reflect/flag-reviewer-startup.d.ts +16 -0
- package/dist/middleware/reflect/flag-reviewer-startup.d.ts.map +1 -0
- package/dist/middleware/reflect/flag-reviewer-startup.js +107 -0
- package/dist/middleware/reflect/flag-reviewer-startup.js.map +1 -0
- package/dist/middleware/reflect/flag-reviewer.d.ts +69 -0
- package/dist/middleware/reflect/flag-reviewer.d.ts.map +1 -0
- package/dist/middleware/reflect/flag-reviewer.js +520 -0
- package/dist/middleware/reflect/flag-reviewer.js.map +1 -0
- package/dist/middleware/reflect/inline-dedup.d.ts +26 -0
- package/dist/middleware/reflect/inline-dedup.d.ts.map +1 -0
- package/dist/middleware/reflect/inline-dedup.js +131 -0
- package/dist/middleware/reflect/inline-dedup.js.map +1 -0
- package/dist/middleware/reflect/justify-decisions.d.ts +37 -0
- package/dist/middleware/reflect/justify-decisions.d.ts.map +1 -0
- package/dist/middleware/reflect/justify-decisions.js +159 -0
- package/dist/middleware/reflect/justify-decisions.js.map +1 -0
- package/dist/middleware/reflect/nl-accept.d.ts +35 -0
- package/dist/middleware/reflect/nl-accept.d.ts.map +1 -0
- package/dist/middleware/reflect/nl-accept.js +167 -0
- package/dist/middleware/reflect/nl-accept.js.map +1 -0
- package/dist/middleware/reflect/pass0.d.ts +20 -0
- package/dist/middleware/reflect/pass0.d.ts.map +1 -0
- package/dist/middleware/reflect/pass0.js +423 -0
- package/dist/middleware/reflect/pass0.js.map +1 -0
- package/dist/middleware/reflect/pass1.d.ts +17 -0
- package/dist/middleware/reflect/pass1.d.ts.map +1 -0
- package/dist/middleware/reflect/pass1.js +241 -0
- package/dist/middleware/reflect/pass1.js.map +1 -0
- package/dist/middleware/reflect/pass2-quarantine.d.ts +129 -0
- package/dist/middleware/reflect/pass2-quarantine.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-quarantine.js +272 -0
- package/dist/middleware/reflect/pass2-quarantine.js.map +1 -0
- package/dist/middleware/reflect/pass2-seams.d.ts +205 -0
- package/dist/middleware/reflect/pass2-seams.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-seams.js +279 -0
- package/dist/middleware/reflect/pass2-seams.js.map +1 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.d.ts +37 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.js +531 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.js.map +1 -0
- package/dist/middleware/reflect/pass2.d.ts +17 -0
- package/dist/middleware/reflect/pass2.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2.js +324 -0
- package/dist/middleware/reflect/pass2.js.map +1 -0
- package/dist/middleware/reflect/pass2a.d.ts +141 -0
- package/dist/middleware/reflect/pass2a.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2a.js +404 -0
- package/dist/middleware/reflect/pass2a.js.map +1 -0
- package/dist/middleware/reflect/pass2b.d.ts +108 -0
- package/dist/middleware/reflect/pass2b.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2b.js +480 -0
- package/dist/middleware/reflect/pass2b.js.map +1 -0
- package/dist/middleware/reflect/pass2c.d.ts +113 -0
- package/dist/middleware/reflect/pass2c.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2c.js +360 -0
- package/dist/middleware/reflect/pass2c.js.map +1 -0
- package/dist/middleware/reflect/pass3-batch.d.ts +62 -0
- package/dist/middleware/reflect/pass3-batch.d.ts.map +1 -0
- package/dist/middleware/reflect/pass3-batch.js +139 -0
- package/dist/middleware/reflect/pass3-batch.js.map +1 -0
- package/dist/middleware/reflect/pass3.d.ts +23 -0
- package/dist/middleware/reflect/pass3.d.ts.map +1 -0
- package/dist/middleware/reflect/pass3.js +371 -0
- package/dist/middleware/reflect/pass3.js.map +1 -0
- package/dist/middleware/reflect/pass4-slice.d.ts +25 -0
- package/dist/middleware/reflect/pass4-slice.d.ts.map +1 -0
- package/dist/middleware/reflect/pass4-slice.js +315 -0
- package/dist/middleware/reflect/pass4-slice.js.map +1 -0
- package/dist/middleware/reflect/pass4.d.ts +30 -0
- package/dist/middleware/reflect/pass4.d.ts.map +1 -0
- package/dist/middleware/reflect/pass4.js +193 -0
- package/dist/middleware/reflect/pass4.js.map +1 -0
- package/dist/middleware/reflect/pass5.d.ts +22 -0
- package/dist/middleware/reflect/pass5.d.ts.map +1 -0
- package/dist/middleware/reflect/pass5.js +178 -0
- package/dist/middleware/reflect/pass5.js.map +1 -0
- package/dist/middleware/reflect/pass_judge.d.ts +44 -0
- package/dist/middleware/reflect/pass_judge.d.ts.map +1 -0
- package/dist/middleware/reflect/pass_judge.js +263 -0
- package/dist/middleware/reflect/pass_judge.js.map +1 -0
- package/dist/middleware/reflect/pipeline-flags.d.ts +140 -0
- package/dist/middleware/reflect/pipeline-flags.d.ts.map +1 -0
- package/dist/middleware/reflect/pipeline-flags.js +314 -0
- package/dist/middleware/reflect/pipeline-flags.js.map +1 -0
- package/dist/middleware/reflect/pipeline.d.ts +237 -0
- package/dist/middleware/reflect/pipeline.d.ts.map +1 -0
- package/dist/middleware/reflect/pipeline.js +3114 -0
- package/dist/middleware/reflect/pipeline.js.map +1 -0
- package/dist/middleware/reflect/promptOverride.d.ts +14 -0
- package/dist/middleware/reflect/promptOverride.d.ts.map +1 -0
- package/dist/middleware/reflect/promptOverride.js +28 -0
- package/dist/middleware/reflect/promptOverride.js.map +1 -0
- package/dist/middleware/reflect/provenance-check.d.ts +48 -0
- package/dist/middleware/reflect/provenance-check.d.ts.map +1 -0
- package/dist/middleware/reflect/provenance-check.js +180 -0
- package/dist/middleware/reflect/provenance-check.js.map +1 -0
- package/dist/middleware/reflect/provenance-reviewer.d.ts +52 -0
- package/dist/middleware/reflect/provenance-reviewer.d.ts.map +1 -0
- package/dist/middleware/reflect/provenance-reviewer.js +253 -0
- package/dist/middleware/reflect/provenance-reviewer.js.map +1 -0
- package/dist/middleware/reflect/prune-collapsed-types.d.ts +11 -0
- package/dist/middleware/reflect/prune-collapsed-types.d.ts.map +1 -0
- package/dist/middleware/reflect/prune-collapsed-types.js +32 -0
- package/dist/middleware/reflect/prune-collapsed-types.js.map +1 -0
- package/dist/middleware/reflect/recognize-root.d.ts +75 -0
- package/dist/middleware/reflect/recognize-root.d.ts.map +1 -0
- package/dist/middleware/reflect/recognize-root.js +204 -0
- package/dist/middleware/reflect/recognize-root.js.map +1 -0
- package/dist/middleware/reflect/render-agent-flag.d.ts +25 -0
- package/dist/middleware/reflect/render-agent-flag.d.ts.map +1 -0
- package/dist/middleware/reflect/render-agent-flag.js +39 -0
- package/dist/middleware/reflect/render-agent-flag.js.map +1 -0
- package/dist/middleware/reflect/retrieve-graph-slice.d.ts +54 -0
- package/dist/middleware/reflect/retrieve-graph-slice.d.ts.map +1 -0
- package/dist/middleware/reflect/retrieve-graph-slice.js +173 -0
- package/dist/middleware/reflect/retrieve-graph-slice.js.map +1 -0
- package/dist/middleware/reflect/root-relatedness.d.ts +31 -0
- package/dist/middleware/reflect/root-relatedness.d.ts.map +1 -0
- package/dist/middleware/reflect/root-relatedness.js +92 -0
- package/dist/middleware/reflect/root-relatedness.js.map +1 -0
- package/dist/middleware/reflect/schema-heal.d.ts +22 -0
- package/dist/middleware/reflect/schema-heal.d.ts.map +1 -0
- package/dist/middleware/reflect/schema-heal.js +119 -0
- package/dist/middleware/reflect/schema-heal.js.map +1 -0
- package/dist/middleware/reflect/schema-validator.d.ts +85 -0
- package/dist/middleware/reflect/schema-validator.d.ts.map +1 -0
- package/dist/middleware/reflect/schema-validator.js +196 -0
- package/dist/middleware/reflect/schema-validator.js.map +1 -0
- package/dist/middleware/reflect/stage-audit-graph.d.ts +115 -0
- package/dist/middleware/reflect/stage-audit-graph.d.ts.map +1 -0
- package/dist/middleware/reflect/stage-audit-graph.js +563 -0
- package/dist/middleware/reflect/stage-audit-graph.js.map +1 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.d.ts +87 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.d.ts.map +1 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.js +256 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.js.map +1 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts +15 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts.map +1 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.js +91 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.js.map +1 -0
- package/dist/middleware/reflect/types.d.ts +261 -0
- package/dist/middleware/reflect/types.d.ts.map +1 -0
- package/dist/middleware/reflect/types.js +3 -0
- package/dist/middleware/reflect/types.js.map +1 -0
- package/dist/middleware/reflect/v2-integrate.d.ts +120 -0
- package/dist/middleware/reflect/v2-integrate.d.ts.map +1 -0
- package/dist/middleware/reflect/v2-integrate.js +388 -0
- package/dist/middleware/reflect/v2-integrate.js.map +1 -0
- package/dist/middleware/reflect/v2-judge.d.ts +44 -0
- package/dist/middleware/reflect/v2-judge.d.ts.map +1 -0
- package/dist/middleware/reflect/v2-judge.js +191 -0
- package/dist/middleware/reflect/v2-judge.js.map +1 -0
- package/dist/relation-sets.d.ts +2 -0
- package/dist/relation-sets.d.ts.map +1 -0
- package/dist/relation-sets.js +35 -0
- package/dist/relation-sets.js.map +1 -0
- package/dist/routes/__tests__/flags.test.d.ts +2 -0
- package/dist/routes/__tests__/flags.test.d.ts.map +1 -0
- package/dist/routes/__tests__/flags.test.js +257 -0
- package/dist/routes/__tests__/flags.test.js.map +1 -0
- package/dist/routes/__tests__/models-catalog.test.d.ts +2 -0
- package/dist/routes/__tests__/models-catalog.test.d.ts.map +1 -0
- package/dist/routes/__tests__/models-catalog.test.js +130 -0
- package/dist/routes/__tests__/models-catalog.test.js.map +1 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.d.ts +2 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.d.ts.map +1 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.js +38 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.js.map +1 -0
- package/dist/routes/__tests__/spend-pause-drain.test.d.ts +2 -0
- package/dist/routes/__tests__/spend-pause-drain.test.d.ts.map +1 -0
- package/dist/routes/__tests__/spend-pause-drain.test.js +38 -0
- package/dist/routes/__tests__/spend-pause-drain.test.js.map +1 -0
- package/dist/routes/admin.d.ts +49 -0
- package/dist/routes/admin.d.ts.map +1 -0
- package/dist/routes/admin.js +471 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/blocks.d.ts +4 -0
- package/dist/routes/blocks.d.ts.map +1 -0
- package/dist/routes/blocks.js +893 -0
- package/dist/routes/blocks.js.map +1 -0
- package/dist/routes/chat-proxy.d.ts +5 -0
- package/dist/routes/chat-proxy.d.ts.map +1 -0
- package/dist/routes/chat-proxy.js +225 -0
- package/dist/routes/chat-proxy.js.map +1 -0
- package/dist/routes/conversations.d.ts +4 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +139 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/flags.d.ts +4 -0
- package/dist/routes/flags.d.ts.map +1 -0
- package/dist/routes/flags.js +151 -0
- package/dist/routes/flags.js.map +1 -0
- package/dist/routes/inject.d.ts +4 -0
- package/dist/routes/inject.d.ts.map +1 -0
- package/dist/routes/inject.js +183 -0
- package/dist/routes/inject.js.map +1 -0
- package/dist/routes/mcp-http.d.ts +5 -0
- package/dist/routes/mcp-http.d.ts.map +1 -0
- package/dist/routes/mcp-http.js +94 -0
- package/dist/routes/mcp-http.js.map +1 -0
- package/dist/routes/quarantine.d.ts +4 -0
- package/dist/routes/quarantine.d.ts.map +1 -0
- package/dist/routes/quarantine.js +66 -0
- package/dist/routes/quarantine.js.map +1 -0
- package/dist/routes/recall.d.ts +5 -0
- package/dist/routes/recall.d.ts.map +1 -0
- package/dist/routes/recall.js +573 -0
- package/dist/routes/recall.js.map +1 -0
- package/dist/routes/reflect.d.ts +5 -0
- package/dist/routes/reflect.d.ts.map +1 -0
- package/dist/routes/reflect.js +231 -0
- package/dist/routes/reflect.js.map +1 -0
- package/dist/routes/session.d.ts +4 -0
- package/dist/routes/session.d.ts.map +1 -0
- package/dist/routes/session.js +418 -0
- package/dist/routes/session.js.map +1 -0
- package/dist/routes/state.d.ts +116 -0
- package/dist/routes/state.d.ts.map +1 -0
- package/dist/routes/state.js +621 -0
- package/dist/routes/state.js.map +1 -0
- package/dist/routes/usage.d.ts +3 -0
- package/dist/routes/usage.d.ts.map +1 -0
- package/dist/routes/usage.js +141 -0
- package/dist/routes/usage.js.map +1 -0
- package/dist/routes/workspace.d.ts +5 -0
- package/dist/routes/workspace.d.ts.map +1 -0
- package/dist/routes/workspace.js +435 -0
- package/dist/routes/workspace.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +298 -0
- package/dist/server.js.map +1 -0
- package/dist/store/__tests__/backup.test.d.ts +2 -0
- package/dist/store/__tests__/backup.test.d.ts.map +1 -0
- package/dist/store/__tests__/backup.test.js +53 -0
- package/dist/store/__tests__/backup.test.js.map +1 -0
- package/dist/store/__tests__/quality.test.d.ts +2 -0
- package/dist/store/__tests__/quality.test.d.ts.map +1 -0
- package/dist/store/__tests__/quality.test.js +75 -0
- package/dist/store/__tests__/quality.test.js.map +1 -0
- package/dist/store/backup.d.ts +14 -0
- package/dist/store/backup.d.ts.map +1 -0
- package/dist/store/backup.js +95 -0
- package/dist/store/backup.js.map +1 -0
- package/dist/store/database.d.ts +407 -0
- package/dist/store/database.d.ts.map +1 -0
- package/dist/store/database.js +2004 -0
- package/dist/store/database.js.map +1 -0
- package/dist/store/quality.d.ts +25 -0
- package/dist/store/quality.d.ts.map +1 -0
- package/dist/store/quality.js +48 -0
- package/dist/store/quality.js.map +1 -0
- package/dist/tools/__tests__/assemble-block-chains.test.d.ts +2 -0
- package/dist/tools/__tests__/assemble-block-chains.test.d.ts.map +1 -0
- package/dist/tools/__tests__/assemble-block-chains.test.js +118 -0
- package/dist/tools/__tests__/assemble-block-chains.test.js.map +1 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts +2 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts.map +1 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.js +68 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.js.map +1 -0
- package/dist/tools/__tests__/flag-surface.test.d.ts +2 -0
- package/dist/tools/__tests__/flag-surface.test.d.ts.map +1 -0
- package/dist/tools/__tests__/flag-surface.test.js +130 -0
- package/dist/tools/__tests__/flag-surface.test.js.map +1 -0
- package/dist/tools/core.d.ts +5 -0
- package/dist/tools/core.d.ts.map +1 -0
- package/dist/tools/core.js +962 -0
- package/dist/tools/core.js.map +1 -0
- package/dist/tools/derive.d.ts +5 -0
- package/dist/tools/derive.d.ts.map +1 -0
- package/dist/tools/derive.js +182 -0
- package/dist/tools/derive.js.map +1 -0
- package/dist/tools/flag-surface.d.ts +26 -0
- package/dist/tools/flag-surface.d.ts.map +1 -0
- package/dist/tools/flag-surface.js +59 -0
- package/dist/tools/flag-surface.js.map +1 -0
- package/dist/tools/helpers.d.ts +99 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +243 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/projects.d.ts +5 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +175 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/system.d.ts +5 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +1361 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/tools/tasks.d.ts +5 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +289 -0
- package/dist/tools/tasks.js.map +1 -0
- package/package.json +69 -0
- package/scripts/nodedex-entry.mjs +396 -0
- package/tui-dist/App.js +185 -0
- package/tui-dist/api.js +197 -0
- package/tui-dist/cli.js +53 -0
- package/tui-dist/components.js +63 -0
- package/tui-dist/config.js +242 -0
- package/tui-dist/connect-snippets.js +98 -0
- package/tui-dist/feed.js +51 -0
- package/tui-dist/health.js +465 -0
- package/tui-dist/hooks.js +23 -0
- package/tui-dist/memory.js +220 -0
- package/tui-dist/onboarding.js +498 -0
- package/tui-dist/review.js +193 -0
- package/tui-dist/servers.js +556 -0
- package/tui-dist/smoke.js +15 -0
- package/tui-dist/theme.js +106 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// memory.tsx — THE view. The graph as an explorer: roots on the left, the
|
|
3
|
+
// selected block's STORY on the right (essence, unique facts, its chain, its
|
|
4
|
+
// edges) — and the edges are walkable: focus the right pane, pick a relation or
|
|
5
|
+
// chain member, enter jumps to it. Browse + Chains from v2 merged into one.
|
|
6
|
+
//
|
|
7
|
+
// Navigation model (same keys everywhere):
|
|
8
|
+
// ←/→ = pane focus · ↑/↓ = move in the focused pane · enter = open/jump
|
|
9
|
+
// esc = up one level (blocks→roots · jump-trail back · close search)
|
|
10
|
+
// / = search overlay (the same three-signal /api/search agents use; hits carry
|
|
11
|
+
// root context + superseded/weak-match flags)
|
|
12
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
13
|
+
import { Box, Text, useInput } from "ink";
|
|
14
|
+
import { Section, Row, Keys, Panel, windowSlice } from "./components.js";
|
|
15
|
+
import { theme, typeColorOf, typeGlyphOf, trunc, relTime } from "./theme.js";
|
|
16
|
+
import { useTermSize } from "./hooks.js";
|
|
17
|
+
import { fetchTree, fetchProjectBlocks, fetchBlockDetail, fetchChainMembers, searchMemory, } from "./api.js";
|
|
18
|
+
export function MemoryTab({ isActive, onCapture }) {
|
|
19
|
+
const { rows: termRows, columns: cols } = useTermSize();
|
|
20
|
+
const listCap = Math.max(6, termRows - 12);
|
|
21
|
+
// ── left pane: roots → blocks ──────────────────────────────────────────────
|
|
22
|
+
const [roots, setRoots] = useState([]);
|
|
23
|
+
const [blocks, setBlocks] = useState([]);
|
|
24
|
+
const [level, setLevel] = useState("roots");
|
|
25
|
+
const [rootSel, setRootSel] = useState(0);
|
|
26
|
+
const [blockSel, setBlockSel] = useState(0);
|
|
27
|
+
const [openRoot, setOpenRoot] = useState(null);
|
|
28
|
+
// ── right pane: the story ──────────────────────────────────────────────────
|
|
29
|
+
const [detail, setDetail] = useState(null);
|
|
30
|
+
const [chain, setChain] = useState([]);
|
|
31
|
+
const [rightSel, setRightSel] = useState(0);
|
|
32
|
+
const [focus, setFocus] = useState("left");
|
|
33
|
+
const [trail, setTrail] = useState([]); // jump history (block ids) for esc-back
|
|
34
|
+
// ── search overlay ─────────────────────────────────────────────────────────
|
|
35
|
+
const [searching, setSearching] = useState(false);
|
|
36
|
+
const [q, setQ] = useState("");
|
|
37
|
+
const [results, setResults] = useState([]);
|
|
38
|
+
const [resSel, setResSel] = useState(0);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
let alive = true;
|
|
41
|
+
fetchTree().then((t) => { if (alive)
|
|
42
|
+
setRoots(t); });
|
|
43
|
+
return () => { alive = false; };
|
|
44
|
+
}, []);
|
|
45
|
+
useEffect(() => { onCapture(searching); }, [searching, onCapture]);
|
|
46
|
+
// Load the story for a block id (shared by list-select, search, edge-jump).
|
|
47
|
+
const inspect = useCallback((id) => {
|
|
48
|
+
if (!id) {
|
|
49
|
+
setDetail(null);
|
|
50
|
+
setChain([]);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
fetchBlockDetail(id).then(async (d) => {
|
|
54
|
+
setDetail(d);
|
|
55
|
+
setRightSel(0);
|
|
56
|
+
if (d?.chain_id)
|
|
57
|
+
setChain(await fetchChainMembers(d.chain_id));
|
|
58
|
+
else
|
|
59
|
+
setChain([]);
|
|
60
|
+
});
|
|
61
|
+
}, []);
|
|
62
|
+
// Selection in the left pane drives the right pane (debounced light).
|
|
63
|
+
const selectedBlock = level === "blocks" ? blocks[blockSel] : undefined;
|
|
64
|
+
const inspectTimer = useRef(null);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (inspectTimer.current)
|
|
67
|
+
clearTimeout(inspectTimer.current);
|
|
68
|
+
inspectTimer.current = setTimeout(() => inspect(selectedBlock?.id ?? null), 120);
|
|
69
|
+
return () => { if (inspectTimer.current)
|
|
70
|
+
clearTimeout(inspectTimer.current); };
|
|
71
|
+
}, [selectedBlock?.id, inspect]);
|
|
72
|
+
// Debounced search.
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
if (!searching)
|
|
75
|
+
return;
|
|
76
|
+
const t = setTimeout(() => { void searchMemory(q, 8).then((r) => { setResults(r); setResSel(0); }); }, 150);
|
|
77
|
+
return () => clearTimeout(t);
|
|
78
|
+
}, [q, searching]);
|
|
79
|
+
const openRootBlocks = useCallback((root) => {
|
|
80
|
+
setOpenRoot(root);
|
|
81
|
+
setLevel("blocks");
|
|
82
|
+
setBlockSel(0);
|
|
83
|
+
void fetchProjectBlocks(root.label).then((b) => setBlocks(b));
|
|
84
|
+
}, []);
|
|
85
|
+
// Everything the right pane can jump to, in display order.
|
|
86
|
+
const jumpables = useMemo(() => {
|
|
87
|
+
if (!detail)
|
|
88
|
+
return [];
|
|
89
|
+
const out = [];
|
|
90
|
+
for (const m of chain)
|
|
91
|
+
if (m.id !== detail.id)
|
|
92
|
+
out.push({ id: m.id, label: m.label, kind: "chain", via: m.flow_role || "member", type: m.type });
|
|
93
|
+
for (const e of detail.outgoing ?? [])
|
|
94
|
+
if (e.target_id)
|
|
95
|
+
out.push({ id: e.target_id, label: e.target_label || e.target_id, kind: "out", via: e.type });
|
|
96
|
+
for (const e of detail.incoming ?? [])
|
|
97
|
+
if (e.source_id)
|
|
98
|
+
out.push({ id: e.source_id, label: e.source_label || e.source_id, kind: "in", via: e.type });
|
|
99
|
+
return out;
|
|
100
|
+
}, [detail, chain]);
|
|
101
|
+
useInput((input, k) => {
|
|
102
|
+
if (searching) {
|
|
103
|
+
if (k.escape) {
|
|
104
|
+
setSearching(false);
|
|
105
|
+
setQ("");
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (k.return) {
|
|
109
|
+
const hit = results[resSel];
|
|
110
|
+
if (hit) {
|
|
111
|
+
setTrail((t) => (detail ? [...t, detail.id] : t));
|
|
112
|
+
inspect(hit.id);
|
|
113
|
+
setFocus("right");
|
|
114
|
+
}
|
|
115
|
+
setSearching(false);
|
|
116
|
+
setQ("");
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (k.upArrow) {
|
|
120
|
+
setResSel((s) => Math.max(0, s - 1));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (k.downArrow) {
|
|
124
|
+
setResSel((s) => Math.min(results.length - 1, s + 1));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (k.backspace || k.delete) {
|
|
128
|
+
setQ((s) => s.slice(0, -1));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (input && !k.ctrl && !k.meta && !k.tab)
|
|
132
|
+
setQ((s) => s + input);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (input === "/") {
|
|
136
|
+
setSearching(true);
|
|
137
|
+
setResults([]);
|
|
138
|
+
setResSel(0);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (k.leftArrow) {
|
|
142
|
+
setFocus("left");
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (k.rightArrow) {
|
|
146
|
+
if (detail)
|
|
147
|
+
setFocus("right");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (focus === "left") {
|
|
151
|
+
if (level === "roots") {
|
|
152
|
+
if (k.upArrow)
|
|
153
|
+
setRootSel((s) => Math.max(0, s - 1));
|
|
154
|
+
else if (k.downArrow)
|
|
155
|
+
setRootSel((s) => Math.min(roots.length - 1, s + 1));
|
|
156
|
+
else if (k.return && roots[rootSel])
|
|
157
|
+
openRootBlocks(roots[rootSel]);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
if (k.upArrow)
|
|
161
|
+
setBlockSel((s) => Math.max(0, s - 1));
|
|
162
|
+
else if (k.downArrow)
|
|
163
|
+
setBlockSel((s) => Math.min(blocks.length - 1, s + 1));
|
|
164
|
+
else if (k.return && detail)
|
|
165
|
+
setFocus("right");
|
|
166
|
+
else if (k.escape) {
|
|
167
|
+
setLevel("roots");
|
|
168
|
+
setOpenRoot(null);
|
|
169
|
+
setBlocks([]);
|
|
170
|
+
setDetail(null);
|
|
171
|
+
setChain([]);
|
|
172
|
+
setTrail([]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// right pane focused — walk the story
|
|
178
|
+
if (k.upArrow)
|
|
179
|
+
setRightSel((s) => Math.max(0, s - 1));
|
|
180
|
+
else if (k.downArrow)
|
|
181
|
+
setRightSel((s) => Math.min(jumpables.length - 1, s + 1));
|
|
182
|
+
else if (k.return) {
|
|
183
|
+
const j = jumpables[rightSel];
|
|
184
|
+
if (j && detail) {
|
|
185
|
+
setTrail((t) => [...t, detail.id]);
|
|
186
|
+
inspect(j.id);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else if (k.escape) {
|
|
190
|
+
const back = trail[trail.length - 1];
|
|
191
|
+
if (back) {
|
|
192
|
+
setTrail((t) => t.slice(0, -1));
|
|
193
|
+
inspect(back);
|
|
194
|
+
}
|
|
195
|
+
else
|
|
196
|
+
setFocus("left");
|
|
197
|
+
}
|
|
198
|
+
}, { isActive: isActive && true });
|
|
199
|
+
// ── render ─────────────────────────────────────────────────────────────────
|
|
200
|
+
const leftW = Math.min(38, Math.max(28, Math.floor(cols * 0.32)));
|
|
201
|
+
const essW = Math.max(30, cols - leftW - 8);
|
|
202
|
+
const supersededBy = (detail?.incoming ?? []).find((e) => e.type === "superseded_by");
|
|
203
|
+
// Sliding viewports — the cursor stays visible past the fold in every list.
|
|
204
|
+
const rootsWin = windowSlice(roots, rootSel, listCap);
|
|
205
|
+
const blocksWin = windowSlice(blocks, blockSel, listCap);
|
|
206
|
+
const jumpWin = windowSlice(jumpables, rightSel, Math.max(4, listCap - 10));
|
|
207
|
+
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexGrow: 1, children: [_jsx(Box, { flexDirection: "column", width: leftW, marginRight: 2, children: level === "roots" ? (_jsxs(Section, { title: "roots", hot: focus === "left", right: _jsx(Text, { color: theme.dim, children: `${roots.length}` }), children: [roots.length === 0 ? _jsx(Text, { color: theme.dim, children: "empty graph \u2014 memory appears as your agents work" }) : null, rootsWin.above > 0 ? _jsx(Text, { color: theme.dim, children: ` ↑ ${rootsWin.above} more` }) : null, rootsWin.visible.map((r, i) => {
|
|
208
|
+
const idx = rootsWin.start + i;
|
|
209
|
+
return (_jsxs(Row, { selected: idx === rootSel, focused: focus === "left", children: [_jsx(Text, { color: typeColorOf("project"), children: "⌂ " }), _jsx(Text, { color: idx === rootSel ? theme.value : theme.label, children: trunc(r.label, leftW - 10) }), _jsx(Text, { color: theme.dim, children: ` ${r.children_count ?? ""}` })] }, r.id));
|
|
210
|
+
}), rootsWin.below > 0 ? _jsx(Text, { color: theme.dim, children: ` ↓ ${rootsWin.below} more` }) : null] })) : (_jsxs(Section, { title: trunc(openRoot?.label ?? "blocks", leftW - 8), hot: focus === "left", right: _jsx(Text, { color: theme.dim, children: `${blocks.length}` }), children: [blocksWin.above > 0 ? _jsx(Text, { color: theme.dim, children: ` ↑ ${blocksWin.above} more` }) : null, blocksWin.visible.map((b, i) => {
|
|
211
|
+
const idx = blocksWin.start + i;
|
|
212
|
+
return (_jsxs(Row, { selected: idx === blockSel, focused: focus === "left", children: [_jsx(Text, { color: typeColorOf(b.type), children: `${typeGlyphOf(b.type)} ` }), _jsx(Text, { color: idx === blockSel ? theme.value : theme.label, children: trunc(b.label.replace(`${openRoot?.label ?? ""}_`, ""), leftW - 8) })] }, b.id));
|
|
213
|
+
}), blocksWin.below > 0 ? _jsx(Text, { color: theme.dim, children: ` ↓ ${blocksWin.below} more` }) : null] })) }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: !detail ? (_jsx(Box, { flexDirection: "column", children: _jsx(Section, { title: "memory", children: _jsx(Text, { color: theme.dim, children: level === "roots" ? "open a root (enter) to browse its blocks" : "select a block — its story shows here" }) }) })) : (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsx(Text, { color: typeColorOf(detail.type), bold: true, children: `${typeGlyphOf(detail.type)} ${detail.label}` }) }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: typeColorOf(detail.type), children: detail.type }), _jsx(Text, { color: theme.dim, children: detail.created_at ? ` · ${relTime(detail.created_at)} ago` : "" }), supersededBy ? (_jsx(Text, { color: theme.warn, children: ` ⚠ SUPERSEDED → ${trunc(supersededBy.source_label ?? "", 40)}` })) : null] }), _jsx(Box, { marginBottom: 1, width: essW, children: _jsx(Text, { color: theme.value, wrap: "wrap", children: detail.essence || "(no essence)" }) }), detail.content?.unique && Object.keys(detail.content.unique).length > 0 ? (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: Object.entries(detail.content.unique).slice(0, 6).map(([k, v]) => (_jsxs(Box, { children: [_jsx(Box, { width: 16, children: _jsx(Text, { color: theme.label, children: trunc(k, 15) }) }), _jsx(Text, { color: theme.value, children: trunc(String(v), essW - 18) })] }, k))) })) : null, jumpables.length > 0 ? (_jsxs(Section, { title: chain.length > 0 ? `⛓ chain + edges` : "edges", hot: focus === "right", children: [jumpWin.above > 0 ? _jsx(Text, { color: theme.dim, children: ` ↑ ${jumpWin.above} more` }) : null, jumpWin.visible.map((j, i) => {
|
|
214
|
+
const idx = jumpWin.start + i;
|
|
215
|
+
return (_jsxs(Row, { selected: idx === rightSel, focused: focus === "right", children: [_jsx(Box, { width: 14, children: _jsx(Text, { color: theme.dim, children: j.kind === "in" ? `← ${trunc(j.via, 11)}` : j.kind === "out" ? `→ ${trunc(j.via, 11)}` : `⛓ ${trunc(j.via, 11)}` }) }), j.type ? _jsx(Text, { color: typeColorOf(j.type), children: `${typeGlyphOf(j.type)} ` }) : null, _jsx(Text, { color: idx === rightSel && focus === "right" ? theme.value : theme.label, children: trunc(j.label, essW - 20) })] }, `${j.kind}-${j.id}-${idx}`));
|
|
216
|
+
}), jumpWin.below > 0 ? _jsx(Text, { color: theme.dim, children: ` ↓ ${jumpWin.below} more` }) : null] })) : null] })) })] }), searching ? (_jsxs(Panel, { title: "search memory", hot: true, children: [_jsxs(Box, { children: [_jsx(Text, { color: theme.accent, children: "/ " }), _jsx(Text, { color: theme.value, children: q }), _jsx(Text, { color: theme.accent, children: "\u258F" })] }), results.length > 0 && results[0].weak_match ? (_jsx(Text, { color: theme.warn, children: "\u26A0 weak matches only \u2014 memory likely has nothing on this; showing the nearest blocks" })) : null, results.map((r, i) => (_jsxs(Row, { selected: i === resSel, children: [_jsx(Text, { color: typeColorOf(r.type), children: `${typeGlyphOf(r.type)} ` }), _jsx(Text, { color: i === resSel ? theme.value : theme.label, children: trunc(r.label, 44) }), r.superseded_by ? _jsx(Text, { color: theme.warn, children: " ⚠ superseded" }) : null, r.root_label ? _jsx(Text, { color: theme.dim, children: ` ⌂ ${trunc(r.root_label, 22)}` }) : null, _jsx(Text, { color: theme.dim, children: ` ${trunc(r.essence, Math.max(10, cols - 96))}` })] }, r.id))), results.length > 0 && results[resSel]?.root_essence ? (_jsx(Text, { color: theme.dim, children: ` ⌂ ${trunc(results[resSel].root_label ?? "", 24)} — ${trunc(results[resSel].root_essence, Math.max(20, cols - 40))}` })) : null, q && results.length === 0 ? _jsx(Text, { color: theme.dim, children: "no hits" }) : null] })) : (_jsx(Keys, { items: [
|
|
217
|
+
["↑↓", "move"], ["←→", "pane"], ["enter", focus === "left" ? (level === "roots" ? "open root" : "walk story") : "jump"],
|
|
218
|
+
["esc", "back"], ["/", "search"],
|
|
219
|
+
] }))] }));
|
|
220
|
+
}
|