nodebench-mcp 2.70.0 → 3.0.1
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/README.md +95 -41
- package/dist/agents/alertRouter.d.ts +38 -0
- package/dist/agents/alertRouter.js +151 -0
- package/dist/agents/alertRouter.js.map +1 -0
- package/dist/agents/entityMemory.d.ts +40 -0
- package/dist/agents/entityMemory.js +64 -0
- package/dist/agents/entityMemory.js.map +1 -0
- package/dist/agents/subAgents.d.ts +35 -0
- package/dist/agents/subAgents.js +62 -0
- package/dist/agents/subAgents.js.map +1 -0
- package/dist/benchmarks/benchmarkRunner.js +14 -0
- package/dist/benchmarks/benchmarkRunner.js.map +1 -1
- package/dist/benchmarks/chainEval.js +107 -0
- package/dist/benchmarks/chainEval.js.map +1 -1
- package/dist/benchmarks/llmJudgeEval.js +85 -0
- package/dist/benchmarks/llmJudgeEval.js.map +1 -1
- package/dist/benchmarks/searchQualityEval.js +118 -5
- package/dist/benchmarks/searchQualityEval.js.map +1 -1
- package/dist/cli/search.d.ts +13 -0
- package/dist/cli/search.js +130 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/dashboard/operatingDashboardHtml.js +2 -1
- package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
- package/dist/dashboard/operatingServer.js +3 -2
- package/dist/dashboard/operatingServer.js.map +1 -1
- package/dist/db.d.ts +6 -2
- package/dist/db.js +521 -6
- package/dist/db.js.map +1 -1
- package/dist/index.js +349 -67
- package/dist/index.js.map +1 -1
- package/dist/packageInfo.d.ts +3 -0
- package/dist/packageInfo.js +32 -0
- package/dist/packageInfo.js.map +1 -0
- package/dist/profiler/behaviorStore.d.ts +97 -0
- package/dist/profiler/behaviorStore.js +276 -0
- package/dist/profiler/behaviorStore.js.map +1 -0
- package/dist/profiler/eventCollector.d.ts +119 -0
- package/dist/profiler/eventCollector.js +267 -0
- package/dist/profiler/eventCollector.js.map +1 -0
- package/dist/profiler/index.d.ts +15 -0
- package/dist/profiler/index.js +16 -0
- package/dist/profiler/index.js.map +1 -0
- package/dist/profiler/mcpProxy.d.ts +49 -0
- package/dist/profiler/mcpProxy.js +123 -0
- package/dist/profiler/mcpProxy.js.map +1 -0
- package/dist/profiler/modelRouter.d.ts +30 -0
- package/dist/profiler/modelRouter.js +99 -0
- package/dist/profiler/modelRouter.js.map +1 -0
- package/dist/profiler/otelReceiver.d.ts +17 -0
- package/dist/profiler/otelReceiver.js +62 -0
- package/dist/profiler/otelReceiver.js.map +1 -0
- package/dist/profiler/proofEngine.d.ts +41 -0
- package/dist/profiler/proofEngine.js +93 -0
- package/dist/profiler/proofEngine.js.map +1 -0
- package/dist/profiler/workflowTemplates.d.ts +41 -0
- package/dist/profiler/workflowTemplates.js +95 -0
- package/dist/profiler/workflowTemplates.js.map +1 -0
- package/dist/providers/localMemoryProvider.js +3 -2
- package/dist/providers/localMemoryProvider.js.map +1 -1
- package/dist/runtimeConfig.d.ts +11 -0
- package/dist/runtimeConfig.js +27 -0
- package/dist/runtimeConfig.js.map +1 -0
- package/dist/sandboxApi.js +2 -1
- package/dist/sandboxApi.js.map +1 -1
- package/dist/security/auditLog.js +8 -3
- package/dist/security/auditLog.js.map +1 -1
- package/dist/subconscious/blocks.d.ts +43 -0
- package/dist/subconscious/blocks.js +158 -0
- package/dist/subconscious/blocks.js.map +1 -0
- package/dist/subconscious/classifier.d.ts +22 -0
- package/dist/subconscious/classifier.js +118 -0
- package/dist/subconscious/classifier.js.map +1 -0
- package/dist/subconscious/graphEngine.d.ts +65 -0
- package/dist/subconscious/graphEngine.js +234 -0
- package/dist/subconscious/graphEngine.js.map +1 -0
- package/dist/subconscious/index.d.ts +19 -0
- package/dist/subconscious/index.js +20 -0
- package/dist/subconscious/index.js.map +1 -0
- package/dist/subconscious/tools.d.ts +5 -0
- package/dist/subconscious/tools.js +255 -0
- package/dist/subconscious/tools.js.map +1 -0
- package/dist/subconscious/whisperPolicy.d.ts +20 -0
- package/dist/subconscious/whisperPolicy.js +171 -0
- package/dist/subconscious/whisperPolicy.js.map +1 -0
- package/dist/sweep/engine.d.ts +27 -0
- package/dist/sweep/engine.js +244 -0
- package/dist/sweep/engine.js.map +1 -0
- package/dist/sweep/index.d.ts +9 -0
- package/dist/sweep/index.js +8 -0
- package/dist/sweep/index.js.map +1 -0
- package/dist/sweep/sources/github_trending.d.ts +6 -0
- package/dist/sweep/sources/github_trending.js +37 -0
- package/dist/sweep/sources/github_trending.js.map +1 -0
- package/dist/sweep/sources/hackernews.d.ts +7 -0
- package/dist/sweep/sources/hackernews.js +57 -0
- package/dist/sweep/sources/hackernews.js.map +1 -0
- package/dist/sweep/sources/openbb_finance.d.ts +9 -0
- package/dist/sweep/sources/openbb_finance.js +46 -0
- package/dist/sweep/sources/openbb_finance.js.map +1 -0
- package/dist/sweep/sources/producthunt.d.ts +6 -0
- package/dist/sweep/sources/producthunt.js +41 -0
- package/dist/sweep/sources/producthunt.js.map +1 -0
- package/dist/sweep/sources/web_signals.d.ts +7 -0
- package/dist/sweep/sources/web_signals.js +63 -0
- package/dist/sweep/sources/web_signals.js.map +1 -0
- package/dist/sweep/sources/yahoo_finance.d.ts +6 -0
- package/dist/sweep/sources/yahoo_finance.js +47 -0
- package/dist/sweep/sources/yahoo_finance.js.map +1 -0
- package/dist/sweep/types.d.ts +50 -0
- package/dist/sweep/types.js +9 -0
- package/dist/sweep/types.js.map +1 -0
- package/dist/sync/founderEpisodeStore.d.ts +98 -0
- package/dist/sync/founderEpisodeStore.js +230 -0
- package/dist/sync/founderEpisodeStore.js.map +1 -0
- package/dist/sync/hyperloopArchive.d.ts +51 -0
- package/dist/sync/hyperloopArchive.js +153 -0
- package/dist/sync/hyperloopArchive.js.map +1 -0
- package/dist/sync/hyperloopEval.d.ts +123 -0
- package/dist/sync/hyperloopEval.js +389 -0
- package/dist/sync/hyperloopEval.js.map +1 -0
- package/dist/sync/protocol.d.ts +172 -0
- package/dist/sync/protocol.js +9 -0
- package/dist/sync/protocol.js.map +1 -0
- package/dist/sync/sessionMemory.d.ts +47 -0
- package/dist/sync/sessionMemory.js +138 -0
- package/dist/sync/sessionMemory.js.map +1 -0
- package/dist/sync/store.d.ts +384 -0
- package/dist/sync/store.js +1435 -0
- package/dist/sync/store.js.map +1 -0
- package/dist/sync/syncBridgeClient.d.ts +30 -0
- package/dist/sync/syncBridgeClient.js +172 -0
- package/dist/sync/syncBridgeClient.js.map +1 -0
- package/dist/tools/autonomousDeliveryTools.d.ts +2 -0
- package/dist/tools/autonomousDeliveryTools.js +1104 -0
- package/dist/tools/autonomousDeliveryTools.js.map +1 -0
- package/dist/tools/boilerplateTools.js +10 -9
- package/dist/tools/boilerplateTools.js.map +1 -1
- package/dist/tools/claudeCodeIngestTools.d.ts +10 -0
- package/dist/tools/claudeCodeIngestTools.js +347 -0
- package/dist/tools/claudeCodeIngestTools.js.map +1 -0
- package/dist/tools/coreWorkflowTools.d.ts +2 -0
- package/dist/tools/coreWorkflowTools.js +488 -0
- package/dist/tools/coreWorkflowTools.js.map +1 -0
- package/dist/tools/deltaTools.d.ts +15 -0
- package/dist/tools/deltaTools.js +1522 -0
- package/dist/tools/deltaTools.js.map +1 -0
- package/dist/tools/documentationTools.js +2 -1
- package/dist/tools/documentationTools.js.map +1 -1
- package/dist/tools/entityLookupTools.d.ts +14 -0
- package/dist/tools/entityLookupTools.js +159 -0
- package/dist/tools/entityLookupTools.js.map +1 -0
- package/dist/tools/entityTemporalTools.d.ts +12 -0
- package/dist/tools/entityTemporalTools.js +330 -0
- package/dist/tools/entityTemporalTools.js.map +1 -0
- package/dist/tools/founderLocalPipeline.d.ts +215 -0
- package/dist/tools/founderLocalPipeline.js +1516 -2
- package/dist/tools/founderLocalPipeline.js.map +1 -1
- package/dist/tools/founderOperatingModel.d.ts +120 -0
- package/dist/tools/founderOperatingModel.js +469 -0
- package/dist/tools/founderOperatingModel.js.map +1 -0
- package/dist/tools/founderOperatingModelTools.d.ts +2 -0
- package/dist/tools/founderOperatingModelTools.js +169 -0
- package/dist/tools/founderOperatingModelTools.js.map +1 -0
- package/dist/tools/founderStrategicOpsTools.d.ts +2 -0
- package/dist/tools/founderStrategicOpsTools.js +1310 -0
- package/dist/tools/founderStrategicOpsTools.js.map +1 -0
- package/dist/tools/graphifyTools.d.ts +19 -0
- package/dist/tools/graphifyTools.js +375 -0
- package/dist/tools/graphifyTools.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/monteCarloTools.d.ts +16 -0
- package/dist/tools/monteCarloTools.js +225 -0
- package/dist/tools/monteCarloTools.js.map +1 -0
- package/dist/tools/packetCompilerTools.d.ts +12 -0
- package/dist/tools/packetCompilerTools.js +322 -0
- package/dist/tools/packetCompilerTools.js.map +1 -0
- package/dist/tools/planSynthesisTools.d.ts +15 -0
- package/dist/tools/planSynthesisTools.js +455 -0
- package/dist/tools/planSynthesisTools.js.map +1 -0
- package/dist/tools/profilerTools.d.ts +20 -0
- package/dist/tools/profilerTools.js +364 -0
- package/dist/tools/profilerTools.js.map +1 -0
- package/dist/tools/progressiveDiscoveryTools.js +2 -1
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/savingsTools.d.ts +11 -0
- package/dist/tools/savingsTools.js +155 -0
- package/dist/tools/savingsTools.js.map +1 -0
- package/dist/tools/scenarioCompilerTools.d.ts +14 -0
- package/dist/tools/scenarioCompilerTools.js +290 -0
- package/dist/tools/scenarioCompilerTools.js.map +1 -0
- package/dist/tools/sharedContextTools.d.ts +2 -0
- package/dist/tools/sharedContextTools.js +423 -0
- package/dist/tools/sharedContextTools.js.map +1 -0
- package/dist/tools/sitemapTools.d.ts +15 -0
- package/dist/tools/sitemapTools.js +560 -0
- package/dist/tools/sitemapTools.js.map +1 -0
- package/dist/tools/sweepTools.d.ts +9 -0
- package/dist/tools/sweepTools.js +112 -0
- package/dist/tools/sweepTools.js.map +1 -0
- package/dist/tools/syncBridgeTools.d.ts +2 -0
- package/dist/tools/syncBridgeTools.js +258 -0
- package/dist/tools/syncBridgeTools.js.map +1 -0
- package/dist/tools/toolRegistry.js +1223 -45
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/tools/workspaceTools.d.ts +19 -0
- package/dist/tools/workspaceTools.js +762 -0
- package/dist/tools/workspaceTools.js.map +1 -0
- package/dist/toolsetRegistry.js +162 -3
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +39 -38
- package/rules/nodebench-agentic-reliability.md +32 -0
- package/rules/nodebench-analyst-diagnostic.md +25 -0
- package/rules/nodebench-auto-qa.md +31 -0
- package/rules/nodebench-completion-traceability.md +22 -0
- package/rules/nodebench-flywheel-continuous.md +25 -0
- package/rules/nodebench-pre-release-review.md +24 -0
- package/rules/nodebench-qa-dogfood.md +26 -0
- package/rules/nodebench-scenario-testing.md +30 -0
- package/rules/nodebench-self-direction.md +23 -0
- package/rules/nodebench-self-judge-loop.md +24 -0
- package/scripts/install.sh +215 -0
- package/dist/__tests__/analytics.test.d.ts +0 -11
- package/dist/__tests__/analytics.test.js +0 -546
- package/dist/__tests__/analytics.test.js.map +0 -1
- package/dist/__tests__/architectComplex.test.d.ts +0 -1
- package/dist/__tests__/architectComplex.test.js +0 -373
- package/dist/__tests__/architectComplex.test.js.map +0 -1
- package/dist/__tests__/architectSmoke.test.d.ts +0 -1
- package/dist/__tests__/architectSmoke.test.js +0 -92
- package/dist/__tests__/architectSmoke.test.js.map +0 -1
- package/dist/__tests__/audit-registry.d.ts +0 -1
- package/dist/__tests__/audit-registry.js +0 -60
- package/dist/__tests__/audit-registry.js.map +0 -1
- package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
- package/dist/__tests__/batchAutopilot.test.js +0 -218
- package/dist/__tests__/batchAutopilot.test.js.map +0 -1
- package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
- package/dist/__tests__/cliSubcommands.test.js +0 -138
- package/dist/__tests__/cliSubcommands.test.js.map +0 -1
- package/dist/__tests__/comparativeBench.test.d.ts +0 -1
- package/dist/__tests__/comparativeBench.test.js +0 -722
- package/dist/__tests__/comparativeBench.test.js.map +0 -1
- package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
- package/dist/__tests__/critterCalibrationEval.js +0 -370
- package/dist/__tests__/critterCalibrationEval.js.map +0 -1
- package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
- package/dist/__tests__/dynamicLoading.test.js +0 -280
- package/dist/__tests__/dynamicLoading.test.js.map +0 -1
- package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
- package/dist/__tests__/embeddingProvider.test.js +0 -86
- package/dist/__tests__/embeddingProvider.test.js.map +0 -1
- package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
- package/dist/__tests__/evalDatasetBench.test.js +0 -738
- package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
- package/dist/__tests__/evalHarness.test.d.ts +0 -1
- package/dist/__tests__/evalHarness.test.js +0 -1107
- package/dist/__tests__/evalHarness.test.js.map +0 -1
- package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
- package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
- package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
- package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
- package/dist/__tests__/forecastingDogfood.test.js +0 -284
- package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
- package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
- package/dist/__tests__/forecastingScoring.test.js +0 -202
- package/dist/__tests__/forecastingScoring.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
- package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
- package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
- package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
- package/dist/__tests__/helpers/answerMatch.js +0 -267
- package/dist/__tests__/helpers/answerMatch.js.map +0 -1
- package/dist/__tests__/helpers/textLlm.d.ts +0 -25
- package/dist/__tests__/helpers/textLlm.js +0 -214
- package/dist/__tests__/helpers/textLlm.js.map +0 -1
- package/dist/__tests__/localDashboard.test.d.ts +0 -1
- package/dist/__tests__/localDashboard.test.js +0 -226
- package/dist/__tests__/localDashboard.test.js.map +0 -1
- package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
- package/dist/__tests__/multiHopDogfood.test.js +0 -303
- package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
- package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
- package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
- package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
- package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
- package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
- package/dist/__tests__/openclawDogfood.test.js +0 -535
- package/dist/__tests__/openclawDogfood.test.js.map +0 -1
- package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
- package/dist/__tests__/openclawMessaging.test.js +0 -232
- package/dist/__tests__/openclawMessaging.test.js.map +0 -1
- package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
- package/dist/__tests__/presetRealWorldBench.test.js +0 -859
- package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
- package/dist/__tests__/tools.test.d.ts +0 -1
- package/dist/__tests__/tools.test.js +0 -3201
- package/dist/__tests__/tools.test.js.map +0 -1
- package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
- package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
- package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
- package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
- package/dist/__tests__/traceabilityDogfood.test.js +0 -241
- package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
- package/dist/__tests__/webmcpTools.test.d.ts +0 -7
- package/dist/__tests__/webmcpTools.test.js +0 -195
- package/dist/__tests__/webmcpTools.test.js.map +0 -1
- package/dist/benchmarks/testProviderBus.d.ts +0 -7
- package/dist/benchmarks/testProviderBus.js +0 -272
- package/dist/benchmarks/testProviderBus.js.map +0 -1
- package/dist/hooks/postCompaction.d.ts +0 -14
- package/dist/hooks/postCompaction.js +0 -51
- package/dist/hooks/postCompaction.js.map +0 -1
- package/dist/security/__tests__/security.test.d.ts +0 -8
- package/dist/security/__tests__/security.test.js +0 -295
- package/dist/security/__tests__/security.test.js.map +0 -1
- package/dist/tools/documentTools.d.ts +0 -5
- package/dist/tools/documentTools.js +0 -524
- package/dist/tools/documentTools.js.map +0 -1
- package/dist/tools/financialTools.d.ts +0 -10
- package/dist/tools/financialTools.js +0 -403
- package/dist/tools/financialTools.js.map +0 -1
- package/dist/tools/memoryTools.d.ts +0 -5
- package/dist/tools/memoryTools.js +0 -137
- package/dist/tools/memoryTools.js.map +0 -1
- package/dist/tools/planningTools.d.ts +0 -5
- package/dist/tools/planningTools.js +0 -147
- package/dist/tools/planningTools.js.map +0 -1
- package/dist/tools/searchTools.d.ts +0 -5
- package/dist/tools/searchTools.js +0 -145
- package/dist/tools/searchTools.js.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Classifier — classifies user prompts into task types
|
|
3
|
+
* to determine which memory blocks are relevant for whisper injection.
|
|
4
|
+
*
|
|
5
|
+
* Port of Parselyfi's entity_context_extraction_agent pattern,
|
|
6
|
+
* but lightweight (keyword-based, no LLM call for classification).
|
|
7
|
+
*/
|
|
8
|
+
// ── Block Mapping ──────────────────────────────────────────────────────────
|
|
9
|
+
const BLOCK_MAP = {
|
|
10
|
+
code: ["agent_preferences", "current_wedge", "validated_workflows"],
|
|
11
|
+
strategy: [
|
|
12
|
+
"founder_identity", "company_identity", "current_wedge",
|
|
13
|
+
"top_priorities", "open_contradictions",
|
|
14
|
+
],
|
|
15
|
+
research: ["entity_watchlist", "recent_important_changes"],
|
|
16
|
+
delegation: ["validated_workflows", "packet_lineage", "agent_preferences"],
|
|
17
|
+
diligence: ["readiness_gaps", "company_identity", "packet_lineage"],
|
|
18
|
+
unknown: ["current_wedge"],
|
|
19
|
+
};
|
|
20
|
+
// ── Keyword Patterns ───────────────────────────────────────────────────────
|
|
21
|
+
const PATTERNS = [
|
|
22
|
+
{
|
|
23
|
+
classification: "code",
|
|
24
|
+
keywords: /\b(implement|build|code|fix|bug|refactor|test|debug|compile|deploy|typescript|function|component|endpoint|route|api|import|export|npm|git|commit|push|pr|pull request|merge|lint|type[- ]?check)\b/i,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
classification: "diligence",
|
|
28
|
+
keywords: /\b(investor|diligence|due diligence|banking|bank|fundraise|series [a-d]|pitch|deck|readiness|compliance|audit|soc2|legal|term sheet|valuation|cap table|runway)\b/i,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
classification: "strategy",
|
|
32
|
+
keywords: /\b(strategy|wedge|positioning|roadmap|priorities|direction|pivot|moat|differentiat|competitive advantage|mission|vision|market fit|icp|buyer|distribution|pricing|go.?to.?market|gtm)\b/i,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
classification: "delegation",
|
|
36
|
+
keywords: /\b(delegate|dispatch|agent|task|packet|assign|orchestrat|automat|background|worker|swarm|teammate|pipeline|workflow)\b/i,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
classification: "research",
|
|
40
|
+
keywords: /\b(research|search|look up|find|competitor|market|entity|company|investigate|analyze|compare|benchmark|signal|trend|news|watchlist)\b/i,
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
// ── Lightweight NER ────────────────────────────────────────────────────────
|
|
44
|
+
// Matches capitalized multi-word names that look like entities
|
|
45
|
+
const ENTITY_PATTERN = /\b([A-Z][a-z]+(?:\s+[A-Z][a-z]+)*(?:\s+(?:Inc|LLC|Corp|Ltd|AI|Labs|Co)\.?)?)\b/g;
|
|
46
|
+
// Common false positives to filter
|
|
47
|
+
const ENTITY_STOPWORDS = new Set([
|
|
48
|
+
"The", "This", "That", "These", "Those", "What", "When", "Where", "Why",
|
|
49
|
+
"How", "Which", "Please", "Can", "Could", "Would", "Should", "Let",
|
|
50
|
+
"Make", "Build", "Create", "Update", "Delete", "Add", "Remove", "Fix",
|
|
51
|
+
"Run", "Start", "Stop", "Check", "Test", "Help", "Show", "Tell",
|
|
52
|
+
"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday",
|
|
53
|
+
"January", "February", "March", "April", "May", "June", "July",
|
|
54
|
+
"August", "September", "October", "November", "December",
|
|
55
|
+
]);
|
|
56
|
+
// ── Classifier ────────────────────────────────────────────────────��────────
|
|
57
|
+
export function classifyPrompt(prompt) {
|
|
58
|
+
const scores = {
|
|
59
|
+
code: 0, strategy: 0, research: 0, delegation: 0, diligence: 0, unknown: 0,
|
|
60
|
+
};
|
|
61
|
+
for (const pattern of PATTERNS) {
|
|
62
|
+
const matches = prompt.match(pattern.keywords);
|
|
63
|
+
if (matches) {
|
|
64
|
+
scores[pattern.classification] += matches.length;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Find the winning classification
|
|
68
|
+
let best = "unknown";
|
|
69
|
+
let bestScore = 0;
|
|
70
|
+
for (const [cls, score] of Object.entries(scores)) {
|
|
71
|
+
if (cls !== "unknown" && score > bestScore) {
|
|
72
|
+
best = cls;
|
|
73
|
+
bestScore = score;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Confidence: normalized by total keyword matches
|
|
77
|
+
const totalMatches = Object.values(scores).reduce((a, b) => a + b, 0);
|
|
78
|
+
const confidence = totalMatches > 0 ? bestScore / totalMatches : 0;
|
|
79
|
+
// Extract entities
|
|
80
|
+
const entities = extractEntities(prompt);
|
|
81
|
+
return {
|
|
82
|
+
classification: best,
|
|
83
|
+
confidence: Math.min(1, confidence),
|
|
84
|
+
relevantBlocks: BLOCK_MAP[best],
|
|
85
|
+
entities,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function extractEntities(text) {
|
|
89
|
+
const matches = text.matchAll(ENTITY_PATTERN);
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
const entities = [];
|
|
92
|
+
for (const match of matches) {
|
|
93
|
+
const name = match[1].trim();
|
|
94
|
+
if (name.length < 3)
|
|
95
|
+
continue;
|
|
96
|
+
if (ENTITY_STOPWORDS.has(name))
|
|
97
|
+
continue;
|
|
98
|
+
if (seen.has(name.toLowerCase()))
|
|
99
|
+
continue;
|
|
100
|
+
seen.add(name.toLowerCase());
|
|
101
|
+
entities.push(name);
|
|
102
|
+
}
|
|
103
|
+
return entities;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Quick check: is this prompt trivial enough to skip whispering?
|
|
107
|
+
* Typo fixes, git operations, simple one-liners.
|
|
108
|
+
*/
|
|
109
|
+
export function isTrivialPrompt(prompt) {
|
|
110
|
+
if (prompt.length < 30)
|
|
111
|
+
return true;
|
|
112
|
+
if (/^(git |npm |npx |ls |cd |cat |pwd)/i.test(prompt.trim()))
|
|
113
|
+
return true;
|
|
114
|
+
if (/^fix (typo|spelling|whitespace|indent)/i.test(prompt.trim()))
|
|
115
|
+
return true;
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=classifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/subconscious/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph Engine — knowledge graph operations on existing object_nodes + object_edges tables.
|
|
3
|
+
*
|
|
4
|
+
* Reuses the existing schema (no new tables). Adds BFS traversal,
|
|
5
|
+
* entity resolution, and contradiction detection.
|
|
6
|
+
*
|
|
7
|
+
* Entity types follow Parselyfi's LINKUP_COMPANY_SCHEMA pattern:
|
|
8
|
+
* company, person, initiative, packet, decision, event, concept, requirement.
|
|
9
|
+
*/
|
|
10
|
+
export type EntityType = "company" | "person" | "initiative" | "packet" | "decision" | "event" | "concept" | "requirement";
|
|
11
|
+
export type RelationType = "related_to" | "caused_by" | "supports" | "contradicts" | "follows" | "references" | "part_of" | "derived_from" | "competes_with" | "leads" | "offers" | "announced";
|
|
12
|
+
export interface GraphEntity {
|
|
13
|
+
id: string;
|
|
14
|
+
kind: EntityType;
|
|
15
|
+
label: string;
|
|
16
|
+
source: string;
|
|
17
|
+
status: "active" | "archived";
|
|
18
|
+
properties: Record<string, unknown>;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GraphEdge {
|
|
23
|
+
id: string;
|
|
24
|
+
fromId: string;
|
|
25
|
+
toId: string;
|
|
26
|
+
edgeType: RelationType;
|
|
27
|
+
confidence: number;
|
|
28
|
+
metadata: Record<string, unknown>;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
}
|
|
31
|
+
export interface TraversalResult {
|
|
32
|
+
entity: GraphEntity;
|
|
33
|
+
hopDistance: number;
|
|
34
|
+
path: GraphEdge[];
|
|
35
|
+
reachedVia: RelationType;
|
|
36
|
+
confidence: number;
|
|
37
|
+
}
|
|
38
|
+
export interface GraphSummary {
|
|
39
|
+
totalEntities: number;
|
|
40
|
+
totalEdges: number;
|
|
41
|
+
entitiesByType: Record<string, number>;
|
|
42
|
+
edgesByType: Record<string, number>;
|
|
43
|
+
recentEntities: Array<{
|
|
44
|
+
label: string;
|
|
45
|
+
kind: string;
|
|
46
|
+
updatedAt: string;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export declare function upsertEntity(label: string, kind: EntityType, source: string, properties?: Record<string, unknown>): GraphEntity;
|
|
50
|
+
export declare function findEntity(label: string, kind?: EntityType): GraphEntity | null;
|
|
51
|
+
export declare function searchEntities(query: string, limit?: number): GraphEntity[];
|
|
52
|
+
export declare function resolveEntity(nameOrId: string): GraphEntity | null;
|
|
53
|
+
export declare function addEdge(fromId: string, toId: string, edgeType: RelationType, confidence?: number, metadata?: Record<string, unknown>): GraphEdge | null;
|
|
54
|
+
export declare function getEdgesFrom(entityId: string, relationFilter?: RelationType[]): GraphEdge[];
|
|
55
|
+
export declare function getEdgesTo(entityId: string, relationFilter?: RelationType[]): GraphEdge[];
|
|
56
|
+
export declare function traverseGraph(startEntityId: string, maxDepth?: number, relationFilter?: RelationType[]): TraversalResult[];
|
|
57
|
+
/**
|
|
58
|
+
* Find all entities connected by "contradicts" edges within N hops.
|
|
59
|
+
*/
|
|
60
|
+
export declare function findContradictions(entityId: string, maxDepth?: number): TraversalResult[];
|
|
61
|
+
/**
|
|
62
|
+
* Trace derivation chain: derived_from → part_of → caused_by
|
|
63
|
+
*/
|
|
64
|
+
export declare function traceLineage(entityId: string, maxDepth?: number): TraversalResult[];
|
|
65
|
+
export declare function getGraphSummary(): GraphSummary;
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph Engine — knowledge graph operations on existing object_nodes + object_edges tables.
|
|
3
|
+
*
|
|
4
|
+
* Reuses the existing schema (no new tables). Adds BFS traversal,
|
|
5
|
+
* entity resolution, and contradiction detection.
|
|
6
|
+
*
|
|
7
|
+
* Entity types follow Parselyfi's LINKUP_COMPANY_SCHEMA pattern:
|
|
8
|
+
* company, person, initiative, packet, decision, event, concept, requirement.
|
|
9
|
+
*/
|
|
10
|
+
import { getDb, genId } from "../db.js";
|
|
11
|
+
// ── Entity CRUD ────────────────────────────────────────────────────────────
|
|
12
|
+
export function upsertEntity(label, kind, source, properties = {}) {
|
|
13
|
+
const db = getDb();
|
|
14
|
+
const id = genId("ent");
|
|
15
|
+
// Check if entity with same label + kind exists
|
|
16
|
+
const existing = db
|
|
17
|
+
.prepare("SELECT * FROM object_nodes WHERE label = ? AND kind = ?")
|
|
18
|
+
.get(label, kind);
|
|
19
|
+
if (existing) {
|
|
20
|
+
// Merge properties
|
|
21
|
+
const existingProps = JSON.parse(existing.metadata_json || "{}");
|
|
22
|
+
const mergedProps = { ...existingProps, ...properties };
|
|
23
|
+
const mentionCount = (existingProps._mentionCount || 0) + 1;
|
|
24
|
+
mergedProps._mentionCount = mentionCount;
|
|
25
|
+
db.prepare(`UPDATE object_nodes SET metadata_json = ?, updated_at = datetime('now') WHERE id = ?`).run(JSON.stringify(mergedProps), existing.id);
|
|
26
|
+
return rowToEntity(db.prepare("SELECT * FROM object_nodes WHERE id = ?").get(existing.id));
|
|
27
|
+
}
|
|
28
|
+
// Create new
|
|
29
|
+
properties._mentionCount = 1;
|
|
30
|
+
db.prepare(`INSERT INTO object_nodes (id, kind, label, source, status, metadata_json)
|
|
31
|
+
VALUES (?, ?, ?, ?, 'active', ?)`).run(id, kind, label, source, JSON.stringify(properties));
|
|
32
|
+
return rowToEntity(db.prepare("SELECT * FROM object_nodes WHERE id = ?").get(id));
|
|
33
|
+
}
|
|
34
|
+
export function findEntity(label, kind) {
|
|
35
|
+
const db = getDb();
|
|
36
|
+
let row;
|
|
37
|
+
if (kind) {
|
|
38
|
+
row = db
|
|
39
|
+
.prepare("SELECT * FROM object_nodes WHERE label = ? AND kind = ?")
|
|
40
|
+
.get(label, kind);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
row = db
|
|
44
|
+
.prepare("SELECT * FROM object_nodes WHERE label = ? ORDER BY updated_at DESC LIMIT 1")
|
|
45
|
+
.get(label);
|
|
46
|
+
}
|
|
47
|
+
return row ? rowToEntity(row) : null;
|
|
48
|
+
}
|
|
49
|
+
export function searchEntities(query, limit = 10) {
|
|
50
|
+
const db = getDb();
|
|
51
|
+
// Try FTS5 first
|
|
52
|
+
try {
|
|
53
|
+
const rows = db
|
|
54
|
+
.prepare(`SELECT n.* FROM object_nodes_fts fts
|
|
55
|
+
JOIN object_nodes n ON n.rowid = fts.rowid
|
|
56
|
+
WHERE object_nodes_fts MATCH ?
|
|
57
|
+
ORDER BY rank
|
|
58
|
+
LIMIT ?`)
|
|
59
|
+
.all(query, limit);
|
|
60
|
+
return rows.map(rowToEntity);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Fallback to LIKE
|
|
64
|
+
const rows = db
|
|
65
|
+
.prepare(`SELECT * FROM object_nodes
|
|
66
|
+
WHERE label LIKE ? OR metadata_json LIKE ?
|
|
67
|
+
ORDER BY updated_at DESC
|
|
68
|
+
LIMIT ?`)
|
|
69
|
+
.all(`%${query}%`, `%${query}%`, limit);
|
|
70
|
+
return rows.map(rowToEntity);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export function resolveEntity(nameOrId) {
|
|
74
|
+
const db = getDb();
|
|
75
|
+
// Try by ID
|
|
76
|
+
let row = db.prepare("SELECT * FROM object_nodes WHERE id = ?").get(nameOrId);
|
|
77
|
+
if (row)
|
|
78
|
+
return rowToEntity(row);
|
|
79
|
+
// Try by exact label
|
|
80
|
+
row = db
|
|
81
|
+
.prepare("SELECT * FROM object_nodes WHERE label = ? ORDER BY updated_at DESC LIMIT 1")
|
|
82
|
+
.get(nameOrId);
|
|
83
|
+
if (row)
|
|
84
|
+
return rowToEntity(row);
|
|
85
|
+
// Try fuzzy
|
|
86
|
+
const results = searchEntities(nameOrId, 1);
|
|
87
|
+
return results.length > 0 ? results[0] : null;
|
|
88
|
+
}
|
|
89
|
+
// ── Edge CRUD ──────────────────────────────────────────────────────────────
|
|
90
|
+
export function addEdge(fromId, toId, edgeType, confidence = 0.8, metadata = {}) {
|
|
91
|
+
const db = getDb();
|
|
92
|
+
const id = genId("edge");
|
|
93
|
+
try {
|
|
94
|
+
db.prepare(`INSERT OR IGNORE INTO object_edges (id, from_id, to_id, edge_type, confidence, metadata_json)
|
|
95
|
+
VALUES (?, ?, ?, ?, ?, ?)`).run(id, fromId, toId, edgeType, confidence, JSON.stringify(metadata));
|
|
96
|
+
const row = db.prepare("SELECT * FROM object_edges WHERE id = ?").get(id);
|
|
97
|
+
return row ? rowToEdge(row) : null;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function getEdgesFrom(entityId, relationFilter) {
|
|
104
|
+
const db = getDb();
|
|
105
|
+
if (relationFilter && relationFilter.length > 0) {
|
|
106
|
+
const placeholders = relationFilter.map(() => "?").join(",");
|
|
107
|
+
return db
|
|
108
|
+
.prepare(`SELECT * FROM object_edges WHERE from_id = ? AND edge_type IN (${placeholders})`)
|
|
109
|
+
.all(entityId, ...relationFilter).map(rowToEdge);
|
|
110
|
+
}
|
|
111
|
+
return db.prepare("SELECT * FROM object_edges WHERE from_id = ?").all(entityId).map(rowToEdge);
|
|
112
|
+
}
|
|
113
|
+
export function getEdgesTo(entityId, relationFilter) {
|
|
114
|
+
const db = getDb();
|
|
115
|
+
if (relationFilter && relationFilter.length > 0) {
|
|
116
|
+
const placeholders = relationFilter.map(() => "?").join(",");
|
|
117
|
+
return db
|
|
118
|
+
.prepare(`SELECT * FROM object_edges WHERE to_id = ? AND edge_type IN (${placeholders})`)
|
|
119
|
+
.all(entityId, ...relationFilter).map(rowToEdge);
|
|
120
|
+
}
|
|
121
|
+
return db.prepare("SELECT * FROM object_edges WHERE to_id = ?").all(entityId).map(rowToEdge);
|
|
122
|
+
}
|
|
123
|
+
// ── BFS Graph Traversal ────────────────────────────────────────────────────
|
|
124
|
+
export function traverseGraph(startEntityId, maxDepth = 2, relationFilter) {
|
|
125
|
+
const visited = new Set();
|
|
126
|
+
const queue = [
|
|
127
|
+
{ entityId: startEntityId, depth: 0, path: [] },
|
|
128
|
+
];
|
|
129
|
+
const results = [];
|
|
130
|
+
const db = getDb();
|
|
131
|
+
while (queue.length > 0) {
|
|
132
|
+
const { entityId, depth, path } = queue.shift();
|
|
133
|
+
if (depth > maxDepth || visited.has(entityId))
|
|
134
|
+
continue;
|
|
135
|
+
visited.add(entityId);
|
|
136
|
+
// Get both outgoing and incoming edges
|
|
137
|
+
const outEdges = getEdgesFrom(entityId, relationFilter);
|
|
138
|
+
const inEdges = getEdgesTo(entityId, relationFilter);
|
|
139
|
+
const allEdges = [
|
|
140
|
+
...outEdges.map((e) => ({ edge: e, neighborId: e.toId })),
|
|
141
|
+
...inEdges.map((e) => ({ edge: e, neighborId: e.fromId })),
|
|
142
|
+
];
|
|
143
|
+
for (const { edge, neighborId } of allEdges) {
|
|
144
|
+
if (visited.has(neighborId))
|
|
145
|
+
continue;
|
|
146
|
+
const newPath = [...path, edge];
|
|
147
|
+
const entityRow = db
|
|
148
|
+
.prepare("SELECT * FROM object_nodes WHERE id = ?")
|
|
149
|
+
.get(neighborId);
|
|
150
|
+
if (!entityRow)
|
|
151
|
+
continue;
|
|
152
|
+
results.push({
|
|
153
|
+
entity: rowToEntity(entityRow),
|
|
154
|
+
hopDistance: depth + 1,
|
|
155
|
+
path: newPath,
|
|
156
|
+
reachedVia: edge.edgeType,
|
|
157
|
+
confidence: newPath.reduce((acc, e) => acc * e.confidence, 1),
|
|
158
|
+
});
|
|
159
|
+
if (depth + 1 < maxDepth) {
|
|
160
|
+
queue.push({ entityId: neighborId, depth: depth + 1, path: newPath });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return results.sort((a, b) => b.confidence - a.confidence);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Find all entities connected by "contradicts" edges within N hops.
|
|
168
|
+
*/
|
|
169
|
+
export function findContradictions(entityId, maxDepth = 2) {
|
|
170
|
+
return traverseGraph(entityId, maxDepth, ["contradicts"]);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Trace derivation chain: derived_from → part_of → caused_by
|
|
174
|
+
*/
|
|
175
|
+
export function traceLineage(entityId, maxDepth = 5) {
|
|
176
|
+
return traverseGraph(entityId, maxDepth, ["derived_from", "part_of", "caused_by"]);
|
|
177
|
+
}
|
|
178
|
+
// ── Summary ────────────────────────────────────────────────────────────────
|
|
179
|
+
export function getGraphSummary() {
|
|
180
|
+
const db = getDb();
|
|
181
|
+
const totalEntities = db.prepare("SELECT COUNT(*) as c FROM object_nodes").get().c;
|
|
182
|
+
const totalEdges = db.prepare("SELECT COUNT(*) as c FROM object_edges").get().c;
|
|
183
|
+
const kindCounts = db
|
|
184
|
+
.prepare("SELECT kind, COUNT(*) as c FROM object_nodes GROUP BY kind")
|
|
185
|
+
.all();
|
|
186
|
+
const entitiesByType = {};
|
|
187
|
+
for (const row of kindCounts)
|
|
188
|
+
entitiesByType[row.kind] = row.c;
|
|
189
|
+
const edgeTypeCounts = db
|
|
190
|
+
.prepare("SELECT edge_type, COUNT(*) as c FROM object_edges GROUP BY edge_type")
|
|
191
|
+
.all();
|
|
192
|
+
const edgesByType = {};
|
|
193
|
+
for (const row of edgeTypeCounts)
|
|
194
|
+
edgesByType[row.edge_type] = row.c;
|
|
195
|
+
const recent = db
|
|
196
|
+
.prepare("SELECT label, kind, updated_at FROM object_nodes ORDER BY updated_at DESC LIMIT 10")
|
|
197
|
+
.all();
|
|
198
|
+
return {
|
|
199
|
+
totalEntities,
|
|
200
|
+
totalEdges,
|
|
201
|
+
entitiesByType,
|
|
202
|
+
edgesByType,
|
|
203
|
+
recentEntities: recent.map((r) => ({
|
|
204
|
+
label: r.label,
|
|
205
|
+
kind: r.kind,
|
|
206
|
+
updatedAt: r.updated_at,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// ── Helpers ────────────────────────────────────────────────────────────────
|
|
211
|
+
function rowToEntity(row) {
|
|
212
|
+
return {
|
|
213
|
+
id: row.id,
|
|
214
|
+
kind: row.kind,
|
|
215
|
+
label: row.label,
|
|
216
|
+
source: row.source,
|
|
217
|
+
status: row.status,
|
|
218
|
+
properties: JSON.parse(row.metadata_json || "{}"),
|
|
219
|
+
createdAt: row.created_at,
|
|
220
|
+
updatedAt: row.updated_at,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function rowToEdge(row) {
|
|
224
|
+
return {
|
|
225
|
+
id: row.id,
|
|
226
|
+
fromId: row.from_id,
|
|
227
|
+
toId: row.to_id,
|
|
228
|
+
edgeType: row.edge_type,
|
|
229
|
+
confidence: row.confidence,
|
|
230
|
+
metadata: JSON.parse(row.metadata_json || "{}"),
|
|
231
|
+
createdAt: row.created_at,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=graphEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphEngine.js","sourceRoot":"","sources":["../../src/subconscious/graphEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NodeBench Subconscious — background intelligence agent.
|
|
3
|
+
*
|
|
4
|
+
* Watches founder/coding sessions, maintains company truth memory blocks,
|
|
5
|
+
* builds a knowledge graph of entities + relationships, and whispers
|
|
6
|
+
* packet-aware guidance back into Claude Code and NodeBench surfaces.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - 12 typed memory blocks (blocks.ts)
|
|
10
|
+
* - Prompt classifier (classifier.ts)
|
|
11
|
+
* - Knowledge graph on existing object_nodes + object_edges (graphEngine.ts)
|
|
12
|
+
* - Whisper policy with suppression rules (whisperPolicy.ts)
|
|
13
|
+
* - 10 MCP tools (tools.ts)
|
|
14
|
+
*/
|
|
15
|
+
export { subconsciousTools } from "./tools.js";
|
|
16
|
+
export { type BlockType, type SubconsciousBlock, ALL_BLOCK_TYPES, getBlock, getAllBlocks, updateBlock, getStaleBlocks, getBlockSummary, ensureBlocksExist, } from "./blocks.js";
|
|
17
|
+
export { type PromptClassification, type ClassificationResult, classifyPrompt, extractEntities, isTrivialPrompt, } from "./classifier.js";
|
|
18
|
+
export { type EntityType, type RelationType, type GraphEntity, type GraphEdge, type TraversalResult, upsertEntity, findEntity, searchEntities, resolveEntity, addEdge, traverseGraph, findContradictions, traceLineage, getGraphSummary, } from "./graphEngine.js";
|
|
19
|
+
export { type SubconsciousMode, type WhisperResult, generateWhisper, } from "./whisperPolicy.js";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NodeBench Subconscious — background intelligence agent.
|
|
3
|
+
*
|
|
4
|
+
* Watches founder/coding sessions, maintains company truth memory blocks,
|
|
5
|
+
* builds a knowledge graph of entities + relationships, and whispers
|
|
6
|
+
* packet-aware guidance back into Claude Code and NodeBench surfaces.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - 12 typed memory blocks (blocks.ts)
|
|
10
|
+
* - Prompt classifier (classifier.ts)
|
|
11
|
+
* - Knowledge graph on existing object_nodes + object_edges (graphEngine.ts)
|
|
12
|
+
* - Whisper policy with suppression rules (whisperPolicy.ts)
|
|
13
|
+
* - 10 MCP tools (tools.ts)
|
|
14
|
+
*/
|
|
15
|
+
export { subconsciousTools } from "./tools.js";
|
|
16
|
+
export { ALL_BLOCK_TYPES, getBlock, getAllBlocks, updateBlock, getStaleBlocks, getBlockSummary, ensureBlocksExist, } from "./blocks.js";
|
|
17
|
+
export { classifyPrompt, extractEntities, isTrivialPrompt, } from "./classifier.js";
|
|
18
|
+
export { upsertEntity, findEntity, searchEntities, resolveEntity, addEdge, traverseGraph, findContradictions, traceLineage, getGraphSummary, } from "./graphEngine.js";
|
|
19
|
+
export { generateWhisper, } from "./whisperPolicy.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subconscious/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAGL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAGL,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAML,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|