@soleri/core 2.12.0 → 8.0.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/data/flows/build.flow.yaml +128 -0
- package/data/flows/deliver.flow.yaml +110 -0
- package/data/flows/design.flow.yaml +108 -0
- package/data/flows/enhance.flow.yaml +90 -0
- package/data/flows/explore.flow.yaml +84 -0
- package/data/flows/fix.flow.yaml +90 -0
- package/data/flows/plan.flow.yaml +87 -0
- package/data/flows/review.flow.yaml +90 -0
- package/dist/agency/agency-manager.d.ts +27 -1
- package/dist/agency/agency-manager.d.ts.map +1 -1
- package/dist/agency/agency-manager.js +180 -9
- package/dist/agency/agency-manager.js.map +1 -1
- package/dist/agency/default-rules.d.ts +7 -0
- package/dist/agency/default-rules.d.ts.map +1 -0
- package/dist/agency/default-rules.js +79 -0
- package/dist/agency/default-rules.js.map +1 -0
- package/dist/agency/types.d.ts +48 -0
- package/dist/agency/types.d.ts.map +1 -1
- package/dist/brain/brain.d.ts +17 -2
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +118 -8
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +16 -2
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/brain/knowledge-synthesizer.d.ts +37 -0
- package/dist/brain/knowledge-synthesizer.d.ts.map +1 -0
- package/dist/brain/knowledge-synthesizer.js +161 -0
- package/dist/brain/knowledge-synthesizer.js.map +1 -0
- package/dist/brain/learning-radar.d.ts +96 -0
- package/dist/brain/learning-radar.d.ts.map +1 -0
- package/dist/brain/learning-radar.js +202 -0
- package/dist/brain/learning-radar.js.map +1 -0
- package/dist/brain/types.d.ts +15 -0
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/capabilities/chain-mapping.d.ts +21 -0
- package/dist/capabilities/chain-mapping.d.ts.map +1 -0
- package/dist/capabilities/chain-mapping.js +86 -0
- package/dist/capabilities/chain-mapping.js.map +1 -0
- package/dist/capabilities/index.d.ts +10 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +8 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +95 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +227 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/capabilities/types.d.ts +106 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +12 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/context/context-engine.d.ts.map +1 -1
- package/dist/context/context-engine.js +82 -17
- package/dist/context/context-engine.js.map +1 -1
- package/dist/context/types.d.ts +5 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/control/intent-router.d.ts +12 -1
- package/dist/control/intent-router.d.ts.map +1 -1
- package/dist/control/intent-router.js +126 -2
- package/dist/control/intent-router.js.map +1 -1
- package/dist/control/types.d.ts +17 -0
- package/dist/control/types.d.ts.map +1 -1
- package/dist/curator/classifier.d.ts +18 -0
- package/dist/curator/classifier.d.ts.map +1 -0
- package/dist/curator/classifier.js +61 -0
- package/dist/curator/classifier.js.map +1 -0
- package/dist/curator/quality-gate.d.ts +29 -0
- package/dist/curator/quality-gate.d.ts.map +1 -0
- package/dist/curator/quality-gate.js +88 -0
- package/dist/curator/quality-gate.js.map +1 -0
- package/dist/domain-packs/index.d.ts +8 -0
- package/dist/domain-packs/index.d.ts.map +1 -0
- package/dist/domain-packs/index.js +8 -0
- package/dist/domain-packs/index.js.map +1 -0
- package/dist/domain-packs/inject-rules.d.ts +24 -0
- package/dist/domain-packs/inject-rules.d.ts.map +1 -0
- package/dist/domain-packs/inject-rules.js +65 -0
- package/dist/domain-packs/inject-rules.js.map +1 -0
- package/dist/domain-packs/knowledge-installer.d.ts +27 -0
- package/dist/domain-packs/knowledge-installer.d.ts.map +1 -0
- package/dist/domain-packs/knowledge-installer.js +89 -0
- package/dist/domain-packs/knowledge-installer.js.map +1 -0
- package/dist/domain-packs/loader.d.ts +28 -0
- package/dist/domain-packs/loader.d.ts.map +1 -0
- package/dist/domain-packs/loader.js +105 -0
- package/dist/domain-packs/loader.js.map +1 -0
- package/dist/domain-packs/pack-runtime.d.ts +80 -0
- package/dist/domain-packs/pack-runtime.d.ts.map +1 -0
- package/dist/domain-packs/pack-runtime.js +36 -0
- package/dist/domain-packs/pack-runtime.js.map +1 -0
- package/dist/domain-packs/skills-installer.d.ts +21 -0
- package/dist/domain-packs/skills-installer.d.ts.map +1 -0
- package/dist/domain-packs/skills-installer.js +38 -0
- package/dist/domain-packs/skills-installer.js.map +1 -0
- package/dist/domain-packs/token-resolver.d.ts +37 -0
- package/dist/domain-packs/token-resolver.d.ts.map +1 -0
- package/dist/domain-packs/token-resolver.js +109 -0
- package/dist/domain-packs/token-resolver.js.map +1 -0
- package/dist/domain-packs/types.d.ts +91 -0
- package/dist/domain-packs/types.d.ts.map +1 -0
- package/dist/domain-packs/types.js +122 -0
- package/dist/domain-packs/types.js.map +1 -0
- package/dist/engine/bin/soleri-engine.d.ts +12 -0
- package/dist/engine/bin/soleri-engine.d.ts.map +1 -0
- package/dist/engine/bin/soleri-engine.js +184 -0
- package/dist/engine/bin/soleri-engine.js.map +1 -0
- package/dist/engine/core-ops.d.ts +27 -0
- package/dist/engine/core-ops.d.ts.map +1 -0
- package/dist/engine/core-ops.js +159 -0
- package/dist/engine/core-ops.js.map +1 -0
- package/dist/engine/index.d.ts +19 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +17 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/register-engine.d.ts +54 -0
- package/dist/engine/register-engine.d.ts.map +1 -0
- package/dist/engine/register-engine.js +270 -0
- package/dist/engine/register-engine.js.map +1 -0
- package/dist/engine/test-helpers.d.ts +30 -0
- package/dist/engine/test-helpers.d.ts.map +1 -0
- package/dist/engine/test-helpers.js +59 -0
- package/dist/engine/test-helpers.js.map +1 -0
- package/dist/events/event-bus.d.ts +30 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +51 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/flows/chain-runner.d.ts +46 -0
- package/dist/flows/chain-runner.d.ts.map +1 -0
- package/dist/flows/chain-runner.js +271 -0
- package/dist/flows/chain-runner.js.map +1 -0
- package/dist/flows/chain-types.d.ts +103 -0
- package/dist/flows/chain-types.d.ts.map +1 -0
- package/dist/flows/chain-types.js +23 -0
- package/dist/flows/chain-types.js.map +1 -0
- package/dist/flows/context-router.d.ts +39 -0
- package/dist/flows/context-router.d.ts.map +1 -0
- package/dist/flows/context-router.js +206 -0
- package/dist/flows/context-router.js.map +1 -0
- package/dist/flows/dispatch-registry.d.ts +24 -0
- package/dist/flows/dispatch-registry.d.ts.map +1 -0
- package/dist/flows/dispatch-registry.js +70 -0
- package/dist/flows/dispatch-registry.js.map +1 -0
- package/dist/flows/epilogue.d.ts +24 -0
- package/dist/flows/epilogue.d.ts.map +1 -0
- package/dist/flows/epilogue.js +52 -0
- package/dist/flows/epilogue.js.map +1 -0
- package/dist/flows/executor.d.ts +25 -0
- package/dist/flows/executor.d.ts.map +1 -0
- package/dist/flows/executor.js +153 -0
- package/dist/flows/executor.js.map +1 -0
- package/dist/flows/gate-evaluator.d.ts +26 -0
- package/dist/flows/gate-evaluator.d.ts.map +1 -0
- package/dist/flows/gate-evaluator.js +162 -0
- package/dist/flows/gate-evaluator.js.map +1 -0
- package/dist/flows/index.d.ts +14 -0
- package/dist/flows/index.d.ts.map +1 -0
- package/dist/flows/index.js +20 -0
- package/dist/flows/index.js.map +1 -0
- package/dist/flows/loader.d.ts +17 -0
- package/dist/flows/loader.d.ts.map +1 -0
- package/dist/flows/loader.js +61 -0
- package/dist/flows/loader.js.map +1 -0
- package/dist/flows/plan-builder.d.ts +40 -0
- package/dist/flows/plan-builder.d.ts.map +1 -0
- package/dist/flows/plan-builder.js +213 -0
- package/dist/flows/plan-builder.js.map +1 -0
- package/dist/flows/probes.d.ts +11 -0
- package/dist/flows/probes.d.ts.map +1 -0
- package/dist/flows/probes.js +62 -0
- package/dist/flows/probes.js.map +1 -0
- package/dist/flows/types.d.ts +950 -0
- package/dist/flows/types.d.ts.map +1 -0
- package/dist/flows/types.js +105 -0
- package/dist/flows/types.js.map +1 -0
- package/dist/health/doctor-checks.d.ts +15 -0
- package/dist/health/doctor-checks.d.ts.map +1 -0
- package/dist/health/doctor-checks.js +98 -0
- package/dist/health/doctor-checks.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/intake/text-ingester.d.ts +52 -0
- package/dist/intake/text-ingester.d.ts.map +1 -0
- package/dist/intake/text-ingester.js +181 -0
- package/dist/intake/text-ingester.js.map +1 -0
- package/dist/intelligence/loader.d.ts +19 -0
- package/dist/intelligence/loader.d.ts.map +1 -1
- package/dist/intelligence/loader.js +35 -0
- package/dist/intelligence/loader.js.map +1 -1
- package/dist/intelligence/types.d.ts +1 -0
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/llm/llm-client.d.ts.map +1 -1
- package/dist/llm/llm-client.js +37 -1
- package/dist/llm/llm-client.js.map +1 -1
- package/dist/llm/oauth-discovery.d.ts +26 -0
- package/dist/llm/oauth-discovery.d.ts.map +1 -0
- package/dist/llm/oauth-discovery.js +149 -0
- package/dist/llm/oauth-discovery.js.map +1 -0
- package/dist/packs/types.d.ts +58 -19
- package/dist/packs/types.d.ts.map +1 -1
- package/dist/packs/types.js +14 -0
- package/dist/packs/types.js.map +1 -1
- package/dist/planning/evidence-collector.d.ts +41 -0
- package/dist/planning/evidence-collector.d.ts.map +1 -0
- package/dist/planning/evidence-collector.js +194 -0
- package/dist/planning/evidence-collector.js.map +1 -0
- package/dist/planning/planner.d.ts +4 -0
- package/dist/planning/planner.d.ts.map +1 -1
- package/dist/planning/planner.js +11 -0
- package/dist/planning/planner.js.map +1 -1
- package/dist/playbooks/generic/onboarding.d.ts +9 -0
- package/dist/playbooks/generic/onboarding.d.ts.map +1 -0
- package/dist/playbooks/generic/onboarding.js +74 -0
- package/dist/playbooks/generic/onboarding.js.map +1 -0
- package/dist/playbooks/playbook-registry.d.ts.map +1 -1
- package/dist/playbooks/playbook-registry.js +2 -0
- package/dist/playbooks/playbook-registry.js.map +1 -1
- package/dist/queue/job-queue.d.ts +92 -0
- package/dist/queue/job-queue.d.ts.map +1 -0
- package/dist/queue/job-queue.js +180 -0
- package/dist/queue/job-queue.js.map +1 -0
- package/dist/queue/pipeline-runner.d.ts +62 -0
- package/dist/queue/pipeline-runner.d.ts.map +1 -0
- package/dist/queue/pipeline-runner.js +126 -0
- package/dist/queue/pipeline-runner.js.map +1 -0
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
- package/dist/runtime/admin-extra-ops.js +15 -9
- package/dist/runtime/admin-extra-ops.js.map +1 -1
- package/dist/runtime/admin-ops.js +4 -4
- package/dist/runtime/admin-ops.js.map +1 -1
- package/dist/runtime/admin-setup-ops.d.ts +20 -0
- package/dist/runtime/admin-setup-ops.d.ts.map +1 -0
- package/dist/runtime/admin-setup-ops.js +583 -0
- package/dist/runtime/admin-setup-ops.js.map +1 -0
- package/dist/runtime/capture-ops.d.ts.map +1 -1
- package/dist/runtime/capture-ops.js +33 -1
- package/dist/runtime/capture-ops.js.map +1 -1
- package/dist/runtime/chain-ops.d.ts +9 -0
- package/dist/runtime/chain-ops.d.ts.map +1 -0
- package/dist/runtime/chain-ops.js +107 -0
- package/dist/runtime/chain-ops.js.map +1 -0
- package/dist/runtime/claude-md-helpers.d.ts +65 -0
- package/dist/runtime/claude-md-helpers.d.ts.map +1 -0
- package/dist/runtime/claude-md-helpers.js +173 -0
- package/dist/runtime/claude-md-helpers.js.map +1 -0
- package/dist/runtime/curator-extra-ops.d.ts +3 -2
- package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
- package/dist/runtime/curator-extra-ops.js +81 -3
- package/dist/runtime/curator-extra-ops.js.map +1 -1
- package/dist/runtime/domain-ops.d.ts +21 -5
- package/dist/runtime/domain-ops.d.ts.map +1 -1
- package/dist/runtime/domain-ops.js +64 -6
- package/dist/runtime/domain-ops.js.map +1 -1
- package/dist/runtime/facades/admin-facade.d.ts.map +1 -1
- package/dist/runtime/facades/admin-facade.js +4 -0
- package/dist/runtime/facades/admin-facade.js.map +1 -1
- package/dist/runtime/facades/agency-facade.d.ts.map +1 -1
- package/dist/runtime/facades/agency-facade.js +64 -0
- package/dist/runtime/facades/agency-facade.js.map +1 -1
- package/dist/runtime/facades/brain-facade.d.ts.map +1 -1
- package/dist/runtime/facades/brain-facade.js +122 -1
- package/dist/runtime/facades/brain-facade.js.map +1 -1
- package/dist/runtime/facades/cognee-facade.d.ts.map +1 -1
- package/dist/runtime/facades/cognee-facade.js +3 -1
- package/dist/runtime/facades/cognee-facade.js.map +1 -1
- package/dist/runtime/facades/control-facade.d.ts.map +1 -1
- package/dist/runtime/facades/control-facade.js +42 -0
- package/dist/runtime/facades/control-facade.js.map +1 -1
- package/dist/runtime/facades/index.d.ts.map +1 -1
- package/dist/runtime/facades/index.js +10 -6
- package/dist/runtime/facades/index.js.map +1 -1
- package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
- package/dist/runtime/facades/memory-facade.js +20 -2
- package/dist/runtime/facades/memory-facade.js.map +1 -1
- package/dist/runtime/facades/plan-facade.d.ts.map +1 -1
- package/dist/runtime/facades/plan-facade.js +2 -0
- package/dist/runtime/facades/plan-facade.js.map +1 -1
- package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
- package/dist/runtime/facades/vault-facade.js +27 -5
- package/dist/runtime/facades/vault-facade.js.map +1 -1
- package/dist/runtime/intake-ops.d.ts +7 -5
- package/dist/runtime/intake-ops.d.ts.map +1 -1
- package/dist/runtime/intake-ops.js +98 -5
- package/dist/runtime/intake-ops.js.map +1 -1
- package/dist/runtime/memory-extra-ops.d.ts +6 -3
- package/dist/runtime/memory-extra-ops.d.ts.map +1 -1
- package/dist/runtime/memory-extra-ops.js +292 -4
- package/dist/runtime/memory-extra-ops.js.map +1 -1
- package/dist/runtime/orchestrate-ops.d.ts +8 -7
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +217 -61
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
- package/dist/runtime/planning-extra-ops.js +85 -0
- package/dist/runtime/planning-extra-ops.js.map +1 -1
- package/dist/runtime/playbook-ops.js +1 -1
- package/dist/runtime/playbook-ops.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +165 -18
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/session-briefing.d.ts +23 -0
- package/dist/runtime/session-briefing.d.ts.map +1 -0
- package/dist/runtime/session-briefing.js +140 -0
- package/dist/runtime/session-briefing.js.map +1 -0
- package/dist/runtime/types.d.ts +29 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-linking-ops.d.ts +13 -0
- package/dist/runtime/vault-linking-ops.d.ts.map +1 -0
- package/dist/runtime/vault-linking-ops.js +365 -0
- package/dist/runtime/vault-linking-ops.js.map +1 -0
- package/dist/vault/linking.d.ts +46 -0
- package/dist/vault/linking.d.ts.map +1 -0
- package/dist/vault/linking.js +275 -0
- package/dist/vault/linking.js.map +1 -0
- package/dist/vault/vault-types.d.ts +37 -0
- package/dist/vault/vault-types.d.ts.map +1 -1
- package/dist/vault/vault.d.ts +37 -0
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +152 -9
- package/dist/vault/vault.js.map +1 -1
- package/package.json +4 -1
- package/src/__tests__/admin-extra-ops.test.ts +1 -1
- package/src/__tests__/admin-ops.test.ts +2 -1
- package/src/__tests__/admin-setup-ops.test.ts +355 -0
- package/src/__tests__/async-infrastructure.test.ts +307 -0
- package/src/__tests__/cognee-client-gaps.test.ts +474 -0
- package/src/__tests__/cognee-hybrid-search.test.ts +492 -0
- package/src/__tests__/cognee-sync-manager-deep.test.ts +654 -0
- package/src/__tests__/cognee-sync-manager.test.ts +1 -0
- package/src/__tests__/core-ops.test.ts +9 -61
- package/src/__tests__/curator-extra-ops.test.ts +6 -2
- package/src/__tests__/curator-pipeline-e2e.test.ts +358 -0
- package/src/__tests__/domain-packs.test.ts +421 -0
- package/src/__tests__/flows.test.ts +604 -0
- package/src/__tests__/memory-extra-ops.test.ts +2 -2
- package/src/__tests__/planning-extra-ops.test.ts +2 -2
- package/src/__tests__/playbook-registry.test.ts +2 -2
- package/src/__tests__/playbook-seeder.test.ts +8 -8
- package/src/__tests__/playbook.test.ts +5 -5
- package/src/__tests__/second-brain-features.test.ts +583 -0
- package/src/__tests__/token-resolver.test.ts +79 -0
- package/src/agency/agency-manager.ts +217 -9
- package/src/agency/default-rules.ts +83 -0
- package/src/agency/types.ts +61 -0
- package/src/brain/brain.ts +110 -8
- package/src/brain/intelligence.ts +21 -2
- package/src/brain/knowledge-synthesizer.ts +218 -0
- package/src/brain/learning-radar.ts +340 -0
- package/src/brain/types.ts +16 -0
- package/src/capabilities/chain-mapping.ts +93 -0
- package/src/capabilities/index.ts +21 -0
- package/src/capabilities/registry.ts +290 -0
- package/src/capabilities/types.ts +143 -0
- package/src/context/context-engine.ts +114 -15
- package/src/context/types.ts +5 -0
- package/src/control/intent-router.ts +153 -2
- package/src/control/types.ts +10 -0
- package/src/curator/classifier.ts +88 -0
- package/src/curator/quality-gate.ts +129 -0
- package/src/domain-packs/index.ts +27 -0
- package/src/domain-packs/inject-rules.ts +74 -0
- package/src/domain-packs/knowledge-installer.ts +116 -0
- package/src/domain-packs/loader.ts +124 -0
- package/src/domain-packs/pack-runtime.ts +99 -0
- package/src/domain-packs/skills-installer.ts +56 -0
- package/src/domain-packs/token-resolver.ts +126 -0
- package/src/domain-packs/types.ts +229 -0
- package/src/engine/__tests__/register-engine.test.ts +104 -0
- package/src/engine/bin/soleri-engine.ts +218 -0
- package/src/engine/core-ops.ts +178 -0
- package/src/engine/index.ts +19 -0
- package/src/engine/register-engine.ts +385 -0
- package/src/engine/test-helpers.ts +83 -0
- package/src/events/event-bus.ts +58 -0
- package/src/flows/chain-runner.ts +369 -0
- package/src/flows/chain-types.ts +57 -0
- package/src/flows/context-router.ts +257 -0
- package/src/flows/dispatch-registry.ts +80 -0
- package/src/flows/epilogue.ts +65 -0
- package/src/flows/executor.ts +182 -0
- package/src/flows/gate-evaluator.ts +171 -0
- package/src/flows/index.ts +52 -0
- package/src/flows/loader.ts +63 -0
- package/src/flows/plan-builder.ts +250 -0
- package/src/flows/probes.ts +70 -0
- package/src/flows/types.ts +217 -0
- package/src/health/doctor-checks.ts +115 -0
- package/src/index.ts +68 -1
- package/src/intake/text-ingester.ts +234 -0
- package/src/intelligence/loader.ts +38 -0
- package/src/intelligence/types.ts +1 -0
- package/src/llm/llm-client.ts +38 -1
- package/src/llm/oauth-discovery.ts +169 -0
- package/src/packs/types.ts +19 -0
- package/src/planning/evidence-collector.ts +247 -0
- package/src/planning/planner.ts +11 -0
- package/src/playbooks/generic/onboarding.ts +79 -0
- package/src/playbooks/playbook-registry.ts +2 -0
- package/src/queue/job-queue.ts +281 -0
- package/src/queue/pipeline-runner.ts +149 -0
- package/src/runtime/admin-extra-ops.ts +14 -8
- package/src/runtime/admin-ops.ts +4 -4
- package/src/runtime/admin-setup-ops.ts +664 -0
- package/src/runtime/capture-ops.ts +40 -1
- package/src/runtime/chain-ops.ts +121 -0
- package/src/runtime/claude-md-helpers.ts +236 -0
- package/src/runtime/curator-extra-ops.ts +86 -3
- package/src/runtime/domain-ops.ts +71 -5
- package/src/runtime/facades/admin-facade.ts +4 -0
- package/src/runtime/facades/agency-facade.ts +68 -0
- package/src/runtime/facades/brain-facade.ts +142 -1
- package/src/runtime/facades/cognee-facade.ts +3 -1
- package/src/runtime/facades/control-facade.ts +45 -0
- package/src/runtime/facades/index.ts +12 -6
- package/src/runtime/facades/memory-facade.ts +20 -2
- package/src/runtime/facades/plan-facade.ts +2 -0
- package/src/runtime/facades/vault-facade.ts +30 -5
- package/src/runtime/intake-ops.ts +107 -5
- package/src/runtime/memory-extra-ops.ts +312 -4
- package/src/runtime/orchestrate-ops.ts +261 -65
- package/src/runtime/planning-extra-ops.ts +94 -0
- package/src/runtime/playbook-ops.ts +1 -1
- package/src/runtime/runtime.ts +164 -19
- package/src/runtime/session-briefing.ts +161 -0
- package/src/runtime/types.ts +29 -2
- package/src/runtime/vault-linking-ops.ts +452 -0
- package/src/vault/linking.ts +333 -0
- package/src/vault/vault-types.ts +46 -0
- package/src/vault/vault.ts +173 -11
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge Synthesizer — turn vault knowledge into structured content.
|
|
3
|
+
*
|
|
4
|
+
* Searches vault for relevant entries, builds context, calls LLM to synthesize
|
|
5
|
+
* into one of 4 formats: brief, outline, talking-points, post-draft.
|
|
6
|
+
*
|
|
7
|
+
* Graceful degradation: if no LLM, returns raw entries without synthesis.
|
|
8
|
+
*/
|
|
9
|
+
// ─── Prompts ─────────────────────────────────────────────────────────
|
|
10
|
+
const FORMAT_PROMPTS = {
|
|
11
|
+
brief: 'Produce a concise executive brief (5-10 bullet points). Start with a one-line summary. ' +
|
|
12
|
+
'Group findings by theme. End with open questions or knowledge gaps.',
|
|
13
|
+
outline: 'Produce a structured article/document outline with numbered sections. ' +
|
|
14
|
+
'Each section should reference which vault entries support it. ' +
|
|
15
|
+
'Mark sections where knowledge is thin as [GAP].',
|
|
16
|
+
'talking-points': 'Produce bullet-point talking points for a presentation or discussion. ' +
|
|
17
|
+
'Each point should be self-contained and quotable. ' +
|
|
18
|
+
'Include a "Questions to anticipate" section at the end.',
|
|
19
|
+
'post-draft': 'Draft a short-form post (200-300 words) suitable for LinkedIn or a blog. ' +
|
|
20
|
+
'Conversational tone, one key insight, actionable takeaway. ' +
|
|
21
|
+
'End with a question to prompt engagement.',
|
|
22
|
+
};
|
|
23
|
+
const AUDIENCE_CONTEXT = {
|
|
24
|
+
technical: 'The audience is software engineers and architects. Use precise technical language.',
|
|
25
|
+
executive: 'The audience is non-technical leadership. Focus on impact, decisions, and outcomes. Avoid jargon.',
|
|
26
|
+
general: 'The audience is mixed. Be clear and accessible while maintaining accuracy.',
|
|
27
|
+
};
|
|
28
|
+
// ─── Class ───────────────────────────────────────────────────────────
|
|
29
|
+
export class KnowledgeSynthesizer {
|
|
30
|
+
brain;
|
|
31
|
+
llm;
|
|
32
|
+
constructor(brain, llm) {
|
|
33
|
+
this.brain = brain;
|
|
34
|
+
this.llm = llm;
|
|
35
|
+
}
|
|
36
|
+
async synthesize(query, opts) {
|
|
37
|
+
const maxEntries = opts.maxEntries ?? 10;
|
|
38
|
+
const audience = opts.audience ?? 'general';
|
|
39
|
+
// 1. Search vault for relevant entries
|
|
40
|
+
const results = await this.brain.intelligentSearch(query, { limit: maxEntries });
|
|
41
|
+
const sources = results.map((r) => ({
|
|
42
|
+
id: r.entry.id,
|
|
43
|
+
title: r.entry.title,
|
|
44
|
+
score: r.score,
|
|
45
|
+
}));
|
|
46
|
+
// Coverage: how many entries scored above 0.3 vs how many we asked for
|
|
47
|
+
const strongMatches = results.filter((r) => r.score > 0.3).length;
|
|
48
|
+
const coverage = maxEntries > 0 ? Math.min(Math.round((strongMatches / maxEntries) * 100), 100) : 0;
|
|
49
|
+
// 2. If no LLM, return raw entries without synthesis
|
|
50
|
+
if (!this.llm || results.length === 0) {
|
|
51
|
+
return {
|
|
52
|
+
query,
|
|
53
|
+
format: opts.format,
|
|
54
|
+
content: results.length === 0
|
|
55
|
+
? `No vault entries found for "${query}".`
|
|
56
|
+
: formatRawEntries(results),
|
|
57
|
+
sources,
|
|
58
|
+
coverage,
|
|
59
|
+
gaps: results.length === 0 ? [`No knowledge found for: ${query}`] : [],
|
|
60
|
+
entriesConsulted: results.length,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// 3. Build context from entries
|
|
64
|
+
const context = buildContext(results);
|
|
65
|
+
// 4. LLM synthesis call
|
|
66
|
+
const systemPrompt = buildSystemPrompt(opts.format, audience);
|
|
67
|
+
const userPrompt = buildUserPrompt(query, context, opts.format);
|
|
68
|
+
let llmOutput;
|
|
69
|
+
try {
|
|
70
|
+
const result = await this.llm.complete({
|
|
71
|
+
provider: 'openai',
|
|
72
|
+
model: 'gpt-4o-mini',
|
|
73
|
+
systemPrompt,
|
|
74
|
+
userPrompt,
|
|
75
|
+
temperature: 0.3,
|
|
76
|
+
maxTokens: 1500,
|
|
77
|
+
caller: 'knowledge-synthesizer',
|
|
78
|
+
task: 'synthesize',
|
|
79
|
+
});
|
|
80
|
+
llmOutput = result.text;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// LLM failed — return raw entries
|
|
84
|
+
return {
|
|
85
|
+
query,
|
|
86
|
+
format: opts.format,
|
|
87
|
+
content: formatRawEntries(results),
|
|
88
|
+
sources,
|
|
89
|
+
coverage,
|
|
90
|
+
gaps: [],
|
|
91
|
+
entriesConsulted: results.length,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// 5. Extract gaps from LLM output
|
|
95
|
+
const gaps = extractGaps(llmOutput);
|
|
96
|
+
return {
|
|
97
|
+
query,
|
|
98
|
+
format: opts.format,
|
|
99
|
+
content: llmOutput,
|
|
100
|
+
sources,
|
|
101
|
+
coverage,
|
|
102
|
+
gaps,
|
|
103
|
+
entriesConsulted: results.length,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
108
|
+
function buildContext(results) {
|
|
109
|
+
return results
|
|
110
|
+
.map((r, i) => {
|
|
111
|
+
const entry = r.entry;
|
|
112
|
+
let text = `[${i + 1}] ${entry.title} (${entry.type}, ${entry.severity})\n`;
|
|
113
|
+
text += ` ${entry.description}`;
|
|
114
|
+
if (entry.why)
|
|
115
|
+
text += `\n Why: ${entry.why}`;
|
|
116
|
+
if (entry.context)
|
|
117
|
+
text += `\n Context: ${entry.context}`;
|
|
118
|
+
if (entry.tags.length > 0)
|
|
119
|
+
text += `\n Tags: ${entry.tags.join(', ')}`;
|
|
120
|
+
return text;
|
|
121
|
+
})
|
|
122
|
+
.join('\n\n');
|
|
123
|
+
}
|
|
124
|
+
function buildSystemPrompt(format, audience) {
|
|
125
|
+
return ('You are a knowledge synthesizer. You take structured vault entries (patterns, anti-patterns, rules) ' +
|
|
126
|
+
'and produce clear, actionable content.\n\n' +
|
|
127
|
+
FORMAT_PROMPTS[format] +
|
|
128
|
+
'\n\n' +
|
|
129
|
+
AUDIENCE_CONTEXT[audience] +
|
|
130
|
+
'\n\n' +
|
|
131
|
+
'Rules:\n' +
|
|
132
|
+
'- Only use information from the provided vault entries. Do not invent facts.\n' +
|
|
133
|
+
'- Reference entries by their [number] when making claims.\n' +
|
|
134
|
+
"- If the entries don't cover an important subtopic, note it as a GAP.\n" +
|
|
135
|
+
'- Be concise. Every sentence should earn its place.');
|
|
136
|
+
}
|
|
137
|
+
function buildUserPrompt(query, context, format) {
|
|
138
|
+
return (`Topic: ${query}\n\n` +
|
|
139
|
+
`Format: ${format}\n\n` +
|
|
140
|
+
`Vault entries:\n${context}\n\n` +
|
|
141
|
+
'Synthesize the above entries into the requested format. ' +
|
|
142
|
+
'Include a "Knowledge Gaps" section at the end listing topics not covered by the entries.');
|
|
143
|
+
}
|
|
144
|
+
function formatRawEntries(results) {
|
|
145
|
+
if (results.length === 0)
|
|
146
|
+
return 'No entries found.';
|
|
147
|
+
return results
|
|
148
|
+
.map((r) => `- **${r.entry.title}** (${r.entry.type}, score: ${r.score.toFixed(2)}): ${r.entry.description}`)
|
|
149
|
+
.join('\n');
|
|
150
|
+
}
|
|
151
|
+
function extractGaps(llmOutput) {
|
|
152
|
+
// Look for a "Knowledge Gaps" or "Gaps" or "[GAP]" section
|
|
153
|
+
const gapSection = llmOutput.match(/(?:knowledge\s+gaps?|gaps?|open\s+questions?)[\s:]*\n([\s\S]*?)(?:\n##|\n\*\*|$)/i);
|
|
154
|
+
if (!gapSection)
|
|
155
|
+
return [];
|
|
156
|
+
return gapSection[1]
|
|
157
|
+
.split('\n')
|
|
158
|
+
.map((line) => line.replace(/^[-*•\d.)\s]+/, '').trim())
|
|
159
|
+
.filter((line) => line.length > 5);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=knowledge-synthesizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-synthesizer.js","sourceRoot":"","sources":["../../src/brain/knowledge-synthesizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Radar — automatic pattern detection from agent sessions.
|
|
3
|
+
*
|
|
4
|
+
* Analyzes signals (corrections, search misses, explicit captures, workarounds)
|
|
5
|
+
* and queues knowledge candidates by confidence level:
|
|
6
|
+
* >= 0.8 → auto-capture silently
|
|
7
|
+
* 0.4-0.8 → queue for end-of-session review
|
|
8
|
+
* < 0.4 → log to metrics only
|
|
9
|
+
*
|
|
10
|
+
* Zero-friction: never interrupts the user. All analysis is pull-based.
|
|
11
|
+
*/
|
|
12
|
+
import type { Vault } from '../vault/vault.js';
|
|
13
|
+
import type { Brain } from './brain.js';
|
|
14
|
+
export type SignalType = 'correction' | 'search_miss' | 'explicit_capture' | 'pattern_success' | 'workaround' | 'repeated_question';
|
|
15
|
+
export type CandidateStatus = 'pending' | 'captured' | 'dismissed' | 'logged';
|
|
16
|
+
export interface RadarSignal {
|
|
17
|
+
type: SignalType;
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
/** Override suggested entry type. Default inferred from signal type. */
|
|
21
|
+
suggestedType?: 'pattern' | 'anti-pattern';
|
|
22
|
+
/** Override confidence. Default computed from signal type. */
|
|
23
|
+
confidence?: number;
|
|
24
|
+
/** Original query that triggered this signal (for search_miss, repeated_question). */
|
|
25
|
+
sourceQuery?: string;
|
|
26
|
+
/** Additional context (e.g., what the user said, what was corrected). */
|
|
27
|
+
context?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface RadarCandidate {
|
|
30
|
+
id: number;
|
|
31
|
+
signalType: SignalType;
|
|
32
|
+
title: string;
|
|
33
|
+
description: string;
|
|
34
|
+
suggestedType: string;
|
|
35
|
+
confidence: number;
|
|
36
|
+
status: CandidateStatus;
|
|
37
|
+
sourceQuery: string | null;
|
|
38
|
+
context: string | null;
|
|
39
|
+
createdAt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface RadarStats {
|
|
42
|
+
totalAnalyzed: number;
|
|
43
|
+
autoCaptured: number;
|
|
44
|
+
queued: number;
|
|
45
|
+
dismissed: number;
|
|
46
|
+
logged: number;
|
|
47
|
+
knowledgeGaps: number;
|
|
48
|
+
}
|
|
49
|
+
export interface FlushResult {
|
|
50
|
+
captured: number;
|
|
51
|
+
capturedIds: number[];
|
|
52
|
+
failed: number;
|
|
53
|
+
}
|
|
54
|
+
export declare class LearningRadar {
|
|
55
|
+
private provider;
|
|
56
|
+
private vault;
|
|
57
|
+
private brain;
|
|
58
|
+
constructor(vault: Vault, brain: Brain);
|
|
59
|
+
private initializeTable;
|
|
60
|
+
/**
|
|
61
|
+
* Analyze a signal and classify it by confidence.
|
|
62
|
+
* High confidence → auto-capture. Medium → queue. Low → log only.
|
|
63
|
+
*/
|
|
64
|
+
analyze(signal: RadarSignal): RadarCandidate | null;
|
|
65
|
+
/**
|
|
66
|
+
* Get all pending candidates (medium confidence, queued for review).
|
|
67
|
+
*/
|
|
68
|
+
getCandidates(limit?: number): RadarCandidate[];
|
|
69
|
+
/**
|
|
70
|
+
* Get a single candidate by ID.
|
|
71
|
+
*/
|
|
72
|
+
getCandidate(id: number): RadarCandidate | null;
|
|
73
|
+
/**
|
|
74
|
+
* Approve a pending candidate — capture it to vault.
|
|
75
|
+
*/
|
|
76
|
+
approve(candidateId: number): {
|
|
77
|
+
captured: boolean;
|
|
78
|
+
entryId?: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Dismiss a pending candidate — mark it as not worth capturing.
|
|
82
|
+
*/
|
|
83
|
+
dismiss(candidateId: number): {
|
|
84
|
+
dismissed: boolean;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Flush: auto-capture all pending candidates above a confidence threshold.
|
|
88
|
+
*/
|
|
89
|
+
flush(minConfidence?: number): FlushResult;
|
|
90
|
+
/**
|
|
91
|
+
* Get radar statistics.
|
|
92
|
+
*/
|
|
93
|
+
getStats(): RadarStats;
|
|
94
|
+
private captureCandidate;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=learning-radar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-radar.d.ts","sourceRoot":"","sources":["../../src/brain/learning-radar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IAC3C,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AA2BD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAOtC,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAsCnD;;OAEG;IACH,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,cAAc,EAAE;IAQnD;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAO/C;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAiBrE;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE;IAQpD;;OAEG;IACH,KAAK,CAAC,aAAa,GAAE,MAAwB,GAAG,WAAW;IA6B3D;;OAEG;IACH,QAAQ,IAAI,UAAU;IA2BtB,OAAO,CAAC,gBAAgB;CA2BzB"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Radar — automatic pattern detection from agent sessions.
|
|
3
|
+
*
|
|
4
|
+
* Analyzes signals (corrections, search misses, explicit captures, workarounds)
|
|
5
|
+
* and queues knowledge candidates by confidence level:
|
|
6
|
+
* >= 0.8 → auto-capture silently
|
|
7
|
+
* 0.4-0.8 → queue for end-of-session review
|
|
8
|
+
* < 0.4 → log to metrics only
|
|
9
|
+
*
|
|
10
|
+
* Zero-friction: never interrupts the user. All analysis is pull-based.
|
|
11
|
+
*/
|
|
12
|
+
// ─── Constants ───────────────────────────────────────────────────────
|
|
13
|
+
const HIGH_CONFIDENCE = 0.8;
|
|
14
|
+
const MEDIUM_CONFIDENCE = 0.4;
|
|
15
|
+
const DEFAULT_CONFIDENCE = {
|
|
16
|
+
explicit_capture: 0.95,
|
|
17
|
+
correction: 0.75,
|
|
18
|
+
workaround: 0.65,
|
|
19
|
+
search_miss: 0.5,
|
|
20
|
+
pattern_success: 0.4,
|
|
21
|
+
repeated_question: 0.6,
|
|
22
|
+
};
|
|
23
|
+
const DEFAULT_TYPE = {
|
|
24
|
+
explicit_capture: 'pattern',
|
|
25
|
+
correction: 'anti-pattern',
|
|
26
|
+
workaround: 'pattern',
|
|
27
|
+
search_miss: 'pattern',
|
|
28
|
+
pattern_success: 'pattern',
|
|
29
|
+
repeated_question: 'pattern',
|
|
30
|
+
};
|
|
31
|
+
// ─── Class ───────────────────────────────────────────────────────────
|
|
32
|
+
export class LearningRadar {
|
|
33
|
+
provider;
|
|
34
|
+
vault;
|
|
35
|
+
brain;
|
|
36
|
+
constructor(vault, brain) {
|
|
37
|
+
this.vault = vault;
|
|
38
|
+
this.brain = brain;
|
|
39
|
+
this.provider = vault.getProvider();
|
|
40
|
+
this.initializeTable();
|
|
41
|
+
}
|
|
42
|
+
initializeTable() {
|
|
43
|
+
this.provider.execSql(`
|
|
44
|
+
CREATE TABLE IF NOT EXISTS radar_candidates (
|
|
45
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
46
|
+
signal_type TEXT NOT NULL,
|
|
47
|
+
title TEXT NOT NULL,
|
|
48
|
+
description TEXT NOT NULL,
|
|
49
|
+
suggested_type TEXT NOT NULL DEFAULT 'pattern',
|
|
50
|
+
confidence REAL NOT NULL,
|
|
51
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
52
|
+
source_query TEXT,
|
|
53
|
+
context TEXT,
|
|
54
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
CREATE INDEX IF NOT EXISTS idx_radar_status ON radar_candidates(status);
|
|
58
|
+
`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Analyze a signal and classify it by confidence.
|
|
62
|
+
* High confidence → auto-capture. Medium → queue. Low → log only.
|
|
63
|
+
*/
|
|
64
|
+
analyze(signal) {
|
|
65
|
+
const confidence = signal.confidence ?? DEFAULT_CONFIDENCE[signal.type] ?? 0.5;
|
|
66
|
+
const suggestedType = signal.suggestedType ?? DEFAULT_TYPE[signal.type] ?? 'pattern';
|
|
67
|
+
let status;
|
|
68
|
+
if (confidence >= HIGH_CONFIDENCE) {
|
|
69
|
+
status = 'captured';
|
|
70
|
+
}
|
|
71
|
+
else if (confidence >= MEDIUM_CONFIDENCE) {
|
|
72
|
+
status = 'pending';
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
status = 'logged';
|
|
76
|
+
}
|
|
77
|
+
const result = this.provider.run(`INSERT INTO radar_candidates (signal_type, title, description, suggested_type, confidence, status, source_query, context)
|
|
78
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
79
|
+
signal.type,
|
|
80
|
+
signal.title,
|
|
81
|
+
signal.description,
|
|
82
|
+
suggestedType,
|
|
83
|
+
confidence,
|
|
84
|
+
status,
|
|
85
|
+
signal.sourceQuery ?? null,
|
|
86
|
+
signal.context ?? null,
|
|
87
|
+
]);
|
|
88
|
+
const id = Number(result.lastInsertRowid);
|
|
89
|
+
// Auto-capture high confidence signals immediately
|
|
90
|
+
if (status === 'captured') {
|
|
91
|
+
this.captureCandidate(id, signal.title, signal.description, suggestedType, signal.type);
|
|
92
|
+
}
|
|
93
|
+
return this.getCandidate(id);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get all pending candidates (medium confidence, queued for review).
|
|
97
|
+
*/
|
|
98
|
+
getCandidates(limit = 20) {
|
|
99
|
+
const rows = this.provider.all('SELECT * FROM radar_candidates WHERE status = ? ORDER BY confidence DESC LIMIT ?', ['pending', limit]);
|
|
100
|
+
return rows.map(rowToCandidate);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get a single candidate by ID.
|
|
104
|
+
*/
|
|
105
|
+
getCandidate(id) {
|
|
106
|
+
const row = this.provider.get('SELECT * FROM radar_candidates WHERE id = ?', [
|
|
107
|
+
id,
|
|
108
|
+
]);
|
|
109
|
+
return row ? rowToCandidate(row) : null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Approve a pending candidate — capture it to vault.
|
|
113
|
+
*/
|
|
114
|
+
approve(candidateId) {
|
|
115
|
+
const candidate = this.getCandidate(candidateId);
|
|
116
|
+
if (!candidate || candidate.status !== 'pending') {
|
|
117
|
+
return { captured: false };
|
|
118
|
+
}
|
|
119
|
+
const entryId = this.captureCandidate(candidateId, candidate.title, candidate.description, candidate.suggestedType, candidate.signalType);
|
|
120
|
+
return { captured: true, entryId };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Dismiss a pending candidate — mark it as not worth capturing.
|
|
124
|
+
*/
|
|
125
|
+
dismiss(candidateId) {
|
|
126
|
+
const result = this.provider.run("UPDATE radar_candidates SET status = 'dismissed' WHERE id = ? AND status = 'pending'", [candidateId]);
|
|
127
|
+
return { dismissed: result.changes > 0 };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Flush: auto-capture all pending candidates above a confidence threshold.
|
|
131
|
+
*/
|
|
132
|
+
flush(minConfidence = HIGH_CONFIDENCE) {
|
|
133
|
+
const rows = this.provider.all('SELECT * FROM radar_candidates WHERE status = ? AND confidence >= ? ORDER BY confidence DESC', ['pending', minConfidence]);
|
|
134
|
+
let captured = 0;
|
|
135
|
+
let failed = 0;
|
|
136
|
+
const capturedIds = [];
|
|
137
|
+
for (const row of rows) {
|
|
138
|
+
try {
|
|
139
|
+
this.captureCandidate(row.id, row.title, row.description, row.suggested_type, row.signal_type);
|
|
140
|
+
captured++;
|
|
141
|
+
capturedIds.push(row.id);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
failed++;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { captured, capturedIds, failed };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get radar statistics.
|
|
151
|
+
*/
|
|
152
|
+
getStats() {
|
|
153
|
+
const total = this.provider.get('SELECT COUNT(*) as count FROM radar_candidates').count;
|
|
154
|
+
const statusRows = this.provider.all('SELECT status, COUNT(*) as count FROM radar_candidates GROUP BY status');
|
|
155
|
+
const byStatus = {};
|
|
156
|
+
for (const row of statusRows)
|
|
157
|
+
byStatus[row.status] = row.count;
|
|
158
|
+
const gaps = this.provider.get("SELECT COUNT(*) as count FROM radar_candidates WHERE signal_type = 'search_miss' OR signal_type = 'repeated_question'").count;
|
|
159
|
+
return {
|
|
160
|
+
totalAnalyzed: total,
|
|
161
|
+
autoCaptured: byStatus['captured'] ?? 0,
|
|
162
|
+
queued: byStatus['pending'] ?? 0,
|
|
163
|
+
dismissed: byStatus['dismissed'] ?? 0,
|
|
164
|
+
logged: byStatus['logged'] ?? 0,
|
|
165
|
+
knowledgeGaps: gaps,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// ─── Internal ──────────────────────────────────────────────────────
|
|
169
|
+
captureCandidate(candidateId, title, description, suggestedType, signalType) {
|
|
170
|
+
const id = `radar-${signalType}-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
171
|
+
const entryType = suggestedType === 'anti-pattern' ? 'anti-pattern' : 'pattern';
|
|
172
|
+
this.brain.enrichAndCapture({
|
|
173
|
+
id,
|
|
174
|
+
type: entryType,
|
|
175
|
+
domain: 'general',
|
|
176
|
+
title,
|
|
177
|
+
description,
|
|
178
|
+
severity: 'suggestion',
|
|
179
|
+
tags: ['radar-detected', signalType],
|
|
180
|
+
origin: 'agent',
|
|
181
|
+
});
|
|
182
|
+
this.provider.run("UPDATE radar_candidates SET status = 'captured' WHERE id = ?", [
|
|
183
|
+
candidateId,
|
|
184
|
+
]);
|
|
185
|
+
return id;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function rowToCandidate(row) {
|
|
189
|
+
return {
|
|
190
|
+
id: row.id,
|
|
191
|
+
signalType: row.signal_type,
|
|
192
|
+
title: row.title,
|
|
193
|
+
description: row.description,
|
|
194
|
+
suggestedType: row.suggested_type,
|
|
195
|
+
confidence: row.confidence,
|
|
196
|
+
status: row.status,
|
|
197
|
+
sourceQuery: row.source_query,
|
|
198
|
+
context: row.context,
|
|
199
|
+
createdAt: row.created_at,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=learning-radar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-radar.js","sourceRoot":"","sources":["../../src/brain/learning-radar.ts"],"names":[],"mappings":"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"}
|
package/dist/brain/types.d.ts
CHANGED
|
@@ -27,6 +27,21 @@ export interface SearchOptions {
|
|
|
27
27
|
severity?: string;
|
|
28
28
|
limit?: number;
|
|
29
29
|
tags?: string[];
|
|
30
|
+
/** 'full' returns RankedResult[] with complete entries (default). 'scan' returns ScanResult[] — lightweight titles + scores for two-pass retrieval. */
|
|
31
|
+
mode?: 'full' | 'scan';
|
|
32
|
+
}
|
|
33
|
+
/** Lightweight search result for scan mode — titles + scores without full entry body. */
|
|
34
|
+
export interface ScanResult {
|
|
35
|
+
id: string;
|
|
36
|
+
title: string;
|
|
37
|
+
score: number;
|
|
38
|
+
type: string;
|
|
39
|
+
domain: string;
|
|
40
|
+
severity: string;
|
|
41
|
+
tags: string[];
|
|
42
|
+
snippet: string;
|
|
43
|
+
/** Estimated tokens if this entry were loaded in full. */
|
|
44
|
+
tokenEstimate: number;
|
|
30
45
|
}
|
|
31
46
|
export interface CaptureResult {
|
|
32
47
|
captured: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/brain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/brain/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain-to-capability mapping — v1 to v2 bridge.
|
|
3
|
+
*
|
|
4
|
+
* Maps Soleri's existing 26 v1 chain names (from data/flows/*.flow.yaml)
|
|
5
|
+
* to capability IDs in domain.action format.
|
|
6
|
+
*
|
|
7
|
+
* Used during migration: flows with chains: [] are auto-translated to
|
|
8
|
+
* capability references. Remove this file when all flows use needs: []
|
|
9
|
+
* exclusively.
|
|
10
|
+
*
|
|
11
|
+
* @see docs/architecture/capability-packs.md — "Chain-to-capability mapping"
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Translate a v1 chain name to a v2 capability ID.
|
|
15
|
+
*
|
|
16
|
+
* @param chain - The chain name from a flow YAML `chains:` field
|
|
17
|
+
* @returns The corresponding capability ID in domain.action format, or
|
|
18
|
+
* undefined if no mapping exists
|
|
19
|
+
*/
|
|
20
|
+
export declare function chainToCapability(chain: string): string | undefined;
|
|
21
|
+
//# sourceMappingURL=chain-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-mapping.d.ts","sourceRoot":"","sources":["../../src/capabilities/chain-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain-to-capability mapping — v1 to v2 bridge.
|
|
3
|
+
*
|
|
4
|
+
* Maps Soleri's existing 26 v1 chain names (from data/flows/*.flow.yaml)
|
|
5
|
+
* to capability IDs in domain.action format.
|
|
6
|
+
*
|
|
7
|
+
* Used during migration: flows with chains: [] are auto-translated to
|
|
8
|
+
* capability references. Remove this file when all flows use needs: []
|
|
9
|
+
* exclusively.
|
|
10
|
+
*
|
|
11
|
+
* @see docs/architecture/capability-packs.md — "Chain-to-capability mapping"
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Exhaustive map of every chain name used across Soleri's 8 flow YAML files.
|
|
15
|
+
*
|
|
16
|
+
* Sources:
|
|
17
|
+
* build.flow.yaml — vault-search, memory-search, component-search,
|
|
18
|
+
* recommend-design-system, architecture-search,
|
|
19
|
+
* brain-recommend, component-workflow,
|
|
20
|
+
* validate-component, validate-tokens
|
|
21
|
+
* deliver.flow.yaml — validate-component, validate-tokens,
|
|
22
|
+
* design-rules-check, test-coverage-check,
|
|
23
|
+
* performance-audit, delivery-checklist
|
|
24
|
+
* design.flow.yaml — vault-search, memory-search, cognee-design-search,
|
|
25
|
+
* recommend-design-system, recommend-style,
|
|
26
|
+
* recommend-palette, recommend-typography,
|
|
27
|
+
* get-stack-guidelines, brain-recommend
|
|
28
|
+
* enhance.flow.yaml — vault-search, memory-search, architecture-search,
|
|
29
|
+
* brain-recommend, validate-component, validate-tokens
|
|
30
|
+
* explore.flow.yaml — vault-search, memory-search, brain-strengths,
|
|
31
|
+
* brain-recommend, playbook-search
|
|
32
|
+
* fix.flow.yaml — vault-search-antipatterns, memory-search,
|
|
33
|
+
* error-pattern-search, brain-recommend,
|
|
34
|
+
* validate-component, validate-tokens
|
|
35
|
+
* plan.flow.yaml — vault-search, memory-search, brain-recommend,
|
|
36
|
+
* architecture-search, plan-create
|
|
37
|
+
* review.flow.yaml — validate-component, validate-tokens,
|
|
38
|
+
* design-rules-check, vault-search, contrast-check,
|
|
39
|
+
* accessibility-audit, review-report
|
|
40
|
+
*/
|
|
41
|
+
const CHAIN_TO_CAPABILITY = {
|
|
42
|
+
// Vault & Knowledge
|
|
43
|
+
'vault-search': 'vault.search',
|
|
44
|
+
'vault-search-antipatterns': 'vault.search',
|
|
45
|
+
'memory-search': 'memory.search',
|
|
46
|
+
'playbook-search': 'vault.playbook',
|
|
47
|
+
// Brain
|
|
48
|
+
'brain-recommend': 'brain.recommend',
|
|
49
|
+
'brain-strengths': 'brain.strengths',
|
|
50
|
+
// Components
|
|
51
|
+
'component-search': 'component.search',
|
|
52
|
+
'component-workflow': 'component.workflow',
|
|
53
|
+
'validate-component': 'component.validate',
|
|
54
|
+
// Design
|
|
55
|
+
'contrast-check': 'color.validate',
|
|
56
|
+
'validate-tokens': 'token.check',
|
|
57
|
+
'design-rules-check': 'design.rules',
|
|
58
|
+
'recommend-design-system': 'design.recommend',
|
|
59
|
+
'recommend-palette': 'design.palette',
|
|
60
|
+
'recommend-style': 'design.style',
|
|
61
|
+
'recommend-typography': 'design.typography',
|
|
62
|
+
'get-stack-guidelines': 'stack.guidelines',
|
|
63
|
+
// Architecture
|
|
64
|
+
'architecture-search': 'architecture.search',
|
|
65
|
+
'cognee-design-search': 'cognee.search',
|
|
66
|
+
// Planning
|
|
67
|
+
'plan-create': 'plan.create',
|
|
68
|
+
// Review & Quality
|
|
69
|
+
'review-report': 'review.report',
|
|
70
|
+
'accessibility-audit': 'a11y.audit',
|
|
71
|
+
'performance-audit': 'perf.audit',
|
|
72
|
+
'test-coverage-check': 'test.coverage',
|
|
73
|
+
'error-pattern-search': 'debug.patterns',
|
|
74
|
+
'delivery-checklist': 'deliver.checklist',
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Translate a v1 chain name to a v2 capability ID.
|
|
78
|
+
*
|
|
79
|
+
* @param chain - The chain name from a flow YAML `chains:` field
|
|
80
|
+
* @returns The corresponding capability ID in domain.action format, or
|
|
81
|
+
* undefined if no mapping exists
|
|
82
|
+
*/
|
|
83
|
+
export function chainToCapability(chain) {
|
|
84
|
+
return CHAIN_TO_CAPABILITY[chain];
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=chain-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-mapping.js","sourceRoot":"","sources":["../../src/capabilities/chain-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,mBAAmB,GAA2B;IAClD,oBAAoB;IACpB,cAAc,EAAE,cAAc;IAC9B,2BAA2B,EAAE,cAAc;IAC3C,eAAe,EAAE,eAAe;IAChC,iBAAiB,EAAE,gBAAgB;IAEnC,QAAQ;IACR,iBAAiB,EAAE,iBAAiB;IACpC,iBAAiB,EAAE,iBAAiB;IAEpC,aAAa;IACb,kBAAkB,EAAE,kBAAkB;IACtC,oBAAoB,EAAE,oBAAoB;IAC1C,oBAAoB,EAAE,oBAAoB;IAE1C,SAAS;IACT,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,aAAa;IAChC,oBAAoB,EAAE,cAAc;IACpC,yBAAyB,EAAE,kBAAkB;IAC7C,mBAAmB,EAAE,gBAAgB;IACrC,iBAAiB,EAAE,cAAc;IACjC,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,kBAAkB;IAE1C,eAAe;IACf,qBAAqB,EAAE,qBAAqB;IAC5C,sBAAsB,EAAE,eAAe;IAEvC,WAAW;IACX,aAAa,EAAE,aAAa;IAE5B,mBAAmB;IACnB,eAAe,EAAE,eAAe;IAChC,qBAAqB,EAAE,YAAY;IACnC,mBAAmB,EAAE,YAAY;IACjC,qBAAqB,EAAE,eAAe;IACtC,sBAAsB,EAAE,gBAAgB;IACxC,oBAAoB,EAAE,mBAAmB;CAC1C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|