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,172 @@
|
|
|
1
|
+
export type DurableObjectKind = "view" | "screen" | "action" | "tool" | "workflow" | "run" | "trace" | "artifact" | "outcome" | "approval" | "memory" | "device" | "account" | "peer" | "context_packet" | "task" | "message";
|
|
2
|
+
export type SyncScope = "metadata_only" | "receipts_and_traces" | "memory_and_artifacts" | "full_account_sync";
|
|
3
|
+
export type SyncOperationType = "upsert_object" | "link_object" | "record_receipt" | "record_artifact" | "record_outcome" | "record_memory" | "approval_event" | "register_peer" | "publish_context" | "ack_context" | "invalidate_context" | "send_peer_message" | "task_handoff";
|
|
4
|
+
export type SharedContextProduct = "nodebench" | "ta_studio";
|
|
5
|
+
export type SharedContextSurface = "web" | "browser" | "runner" | "evaluator" | "packet_engine" | "qa_runner" | "monitor" | "local_runtime" | "api";
|
|
6
|
+
export type SharedContextRole = "researcher" | "compiler" | "judge" | "explorer" | "replay" | "environment_builder" | "runner" | "observer" | "monitor" | "router";
|
|
7
|
+
export type SharedContextPacketType = "entity_packet" | "issue_packet" | "workflow_packet" | "trace_packet" | "judge_packet" | "environment_packet" | "failure_packet" | "state_snapshot_packet" | "verdict_packet" | "scenario_packet" | "change_packet";
|
|
8
|
+
export type SharedContextMessageClass = "request" | "response" | "context_offer" | "context_pull" | "task_handoff" | "status_update" | "verdict" | "escalation" | "invalidation";
|
|
9
|
+
export type SharedContextTaskStatus = "proposed" | "accepted" | "rejected" | "completed" | "escalated";
|
|
10
|
+
export interface SharedContextPeerSummary {
|
|
11
|
+
currentTask?: string;
|
|
12
|
+
focusEntity?: string;
|
|
13
|
+
focusWorkflow?: string;
|
|
14
|
+
currentState?: string;
|
|
15
|
+
confidence?: number;
|
|
16
|
+
lastUpdate?: string;
|
|
17
|
+
availableArtifacts?: string[];
|
|
18
|
+
permissionScope?: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface SharedContextPeer {
|
|
21
|
+
peerId: string;
|
|
22
|
+
product: SharedContextProduct;
|
|
23
|
+
tenantId?: string | null;
|
|
24
|
+
workspaceId?: string | null;
|
|
25
|
+
surface: SharedContextSurface;
|
|
26
|
+
role: SharedContextRole;
|
|
27
|
+
capabilities: string[];
|
|
28
|
+
contextScopes: string[];
|
|
29
|
+
status: "active" | "idle" | "stale";
|
|
30
|
+
summary: SharedContextPeerSummary;
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
32
|
+
lastHeartbeatAt: string;
|
|
33
|
+
}
|
|
34
|
+
export interface SharedContextPacket {
|
|
35
|
+
contextId: string;
|
|
36
|
+
contextType: SharedContextPacketType;
|
|
37
|
+
producerPeerId: string;
|
|
38
|
+
tenantId?: string | null;
|
|
39
|
+
workspaceId?: string | null;
|
|
40
|
+
scope: string[];
|
|
41
|
+
subject: string;
|
|
42
|
+
summary: string;
|
|
43
|
+
claims: string[];
|
|
44
|
+
evidenceRefs: string[];
|
|
45
|
+
stateSnapshot?: Record<string, unknown>;
|
|
46
|
+
timeWindow?: {
|
|
47
|
+
from?: string;
|
|
48
|
+
to?: string;
|
|
49
|
+
};
|
|
50
|
+
freshness?: {
|
|
51
|
+
status?: "fresh" | "warming" | "stale";
|
|
52
|
+
expiresAt?: string;
|
|
53
|
+
trustTier?: "internal" | "verified" | "directional";
|
|
54
|
+
};
|
|
55
|
+
permissions?: {
|
|
56
|
+
visibility?: "internal" | "workspace" | "tenant";
|
|
57
|
+
allowedRoles?: string[];
|
|
58
|
+
};
|
|
59
|
+
confidence?: number;
|
|
60
|
+
lineage?: {
|
|
61
|
+
parentContextIds?: string[];
|
|
62
|
+
sourceRunId?: string;
|
|
63
|
+
sourceTraceId?: string;
|
|
64
|
+
supersedes?: string;
|
|
65
|
+
};
|
|
66
|
+
invalidates?: string[];
|
|
67
|
+
nextActions?: string[];
|
|
68
|
+
version: number;
|
|
69
|
+
status: "active" | "superseded" | "invalidated";
|
|
70
|
+
metadata?: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
export interface SharedContextTask {
|
|
73
|
+
taskId: string;
|
|
74
|
+
taskType: string;
|
|
75
|
+
proposerPeerId: string;
|
|
76
|
+
assigneePeerId: string;
|
|
77
|
+
status: SharedContextTaskStatus;
|
|
78
|
+
taskSpec: Record<string, unknown>;
|
|
79
|
+
inputContextIds: string[];
|
|
80
|
+
outputContextId?: string | null;
|
|
81
|
+
reason?: string | null;
|
|
82
|
+
createdAt: string;
|
|
83
|
+
updatedAt: string;
|
|
84
|
+
}
|
|
85
|
+
export interface SyncQueueOperation {
|
|
86
|
+
id: string;
|
|
87
|
+
objectId: string | null;
|
|
88
|
+
objectKind: DurableObjectKind | string;
|
|
89
|
+
opType: SyncOperationType | string;
|
|
90
|
+
payload: Record<string, unknown>;
|
|
91
|
+
payloadHash: string;
|
|
92
|
+
createdAt: string;
|
|
93
|
+
}
|
|
94
|
+
export interface SyncBridgePairDevicePayload {
|
|
95
|
+
pairingCode?: string;
|
|
96
|
+
deviceToken?: string;
|
|
97
|
+
deviceId: string;
|
|
98
|
+
deviceName: string;
|
|
99
|
+
platform?: string;
|
|
100
|
+
appVersion?: string;
|
|
101
|
+
requestedScopes?: SyncScope[];
|
|
102
|
+
workspaceId?: string;
|
|
103
|
+
metadata?: Record<string, unknown>;
|
|
104
|
+
}
|
|
105
|
+
export interface SyncBridgePairedPayload {
|
|
106
|
+
deviceToken: string;
|
|
107
|
+
deviceId: string;
|
|
108
|
+
userId: string;
|
|
109
|
+
workspaceId?: string;
|
|
110
|
+
scopesGranted: SyncScope[];
|
|
111
|
+
pairedAt: string;
|
|
112
|
+
syncEnabled: boolean;
|
|
113
|
+
}
|
|
114
|
+
export interface SyncBridgeSyncBatchPayload {
|
|
115
|
+
deviceId: string;
|
|
116
|
+
operations: SyncQueueOperation[];
|
|
117
|
+
}
|
|
118
|
+
export interface SyncBridgeSyncAckPayload {
|
|
119
|
+
acceptedIds: string[];
|
|
120
|
+
rejected: Array<{
|
|
121
|
+
id: string;
|
|
122
|
+
reason: string;
|
|
123
|
+
}>;
|
|
124
|
+
serverWatermark: string;
|
|
125
|
+
}
|
|
126
|
+
export interface SyncBridgeApprovalEventPayload {
|
|
127
|
+
approvalId: string;
|
|
128
|
+
action: "approved" | "rejected" | "revoked";
|
|
129
|
+
actorUserId?: string;
|
|
130
|
+
detail?: string;
|
|
131
|
+
metadata?: Record<string, unknown>;
|
|
132
|
+
}
|
|
133
|
+
export interface SyncBridgeErrorPayload {
|
|
134
|
+
code: string;
|
|
135
|
+
message: string;
|
|
136
|
+
retryable?: boolean;
|
|
137
|
+
}
|
|
138
|
+
export interface PairingGrant {
|
|
139
|
+
pairingCode: string;
|
|
140
|
+
userId: string;
|
|
141
|
+
workspaceId?: string;
|
|
142
|
+
scopes: SyncScope[];
|
|
143
|
+
expiresAt: string;
|
|
144
|
+
metadata?: Record<string, unknown>;
|
|
145
|
+
}
|
|
146
|
+
export interface AccountSyncSnapshot {
|
|
147
|
+
userId: string;
|
|
148
|
+
workspaceId?: string;
|
|
149
|
+
connectedDevices: Array<{
|
|
150
|
+
deviceId: string;
|
|
151
|
+
deviceName: string;
|
|
152
|
+
platform?: string;
|
|
153
|
+
pairedAt: string;
|
|
154
|
+
lastSeenAt: string;
|
|
155
|
+
scopesGranted: SyncScope[];
|
|
156
|
+
}>;
|
|
157
|
+
recentOperations: Array<{
|
|
158
|
+
id: string;
|
|
159
|
+
deviceId: string;
|
|
160
|
+
objectId: string | null;
|
|
161
|
+
objectKind: string;
|
|
162
|
+
opType: string;
|
|
163
|
+
acceptedAt: string;
|
|
164
|
+
}>;
|
|
165
|
+
}
|
|
166
|
+
export interface SyncBridgeEnvelope {
|
|
167
|
+
type: "pair_device" | "paired" | "sync_batch" | "sync_ack" | "approval_event" | "error" | "ping" | "pong";
|
|
168
|
+
id: string;
|
|
169
|
+
timestamp: string;
|
|
170
|
+
payload: SyncBridgePairDevicePayload | SyncBridgePairedPayload | SyncBridgeSyncBatchPayload | SyncBridgeSyncAckPayload | SyncBridgeApprovalEventPayload | SyncBridgeErrorPayload | Record<string, never>;
|
|
171
|
+
}
|
|
172
|
+
export declare function createSyncEnvelope<T extends SyncBridgeEnvelope["payload"]>(type: SyncBridgeEnvelope["type"], payload: T): SyncBridgeEnvelope;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/sync/protocol.ts"],"names":[],"mappings":"AA4RA,MAAM,UAAU,kBAAkB,CAChC,IAAgC,EAChC,OAAU;IAEV,OAAO;QACL,IAAI;QACJ,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sessionMemory.ts — Session-scoped action/failure memory for agent learning.
|
|
3
|
+
*
|
|
4
|
+
* Ported from TA Studio's SessionMemory + LearningStore pattern.
|
|
5
|
+
* Records every action and failure in a session, generates reflection
|
|
6
|
+
* prompts for retry, and persists recovery strategies across sessions.
|
|
7
|
+
*
|
|
8
|
+
* Storage: SQLite (shared with founderEpisodeStore).
|
|
9
|
+
*/
|
|
10
|
+
export interface ActionRecord {
|
|
11
|
+
actionId: string;
|
|
12
|
+
episodeId: string;
|
|
13
|
+
stepIndex: number;
|
|
14
|
+
toolName: string;
|
|
15
|
+
input: string;
|
|
16
|
+
output: string;
|
|
17
|
+
success: boolean;
|
|
18
|
+
durationMs: number;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
}
|
|
21
|
+
export interface FailureRecord {
|
|
22
|
+
failureId: string;
|
|
23
|
+
episodeId: string;
|
|
24
|
+
stepIndex: number;
|
|
25
|
+
toolName: string;
|
|
26
|
+
failureType: string;
|
|
27
|
+
rootCause: string;
|
|
28
|
+
recoveryStrategy: string;
|
|
29
|
+
recoverySuccessful: boolean | null;
|
|
30
|
+
timestamp: string;
|
|
31
|
+
}
|
|
32
|
+
export interface RecoveryStrategy {
|
|
33
|
+
strategyId: string;
|
|
34
|
+
failureType: string;
|
|
35
|
+
toolName: string;
|
|
36
|
+
strategy: string;
|
|
37
|
+
successCount: number;
|
|
38
|
+
failureCount: number;
|
|
39
|
+
lastUsed: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function initSessionMemoryTables(): void;
|
|
42
|
+
export declare function recordAction(action: Omit<ActionRecord, "actionId">): ActionRecord;
|
|
43
|
+
export declare function recordFailure(failure: Omit<FailureRecord, "failureId">): FailureRecord;
|
|
44
|
+
export declare function recordRecoveryOutcome(failureType: string, toolName: string, strategy: string, succeeded: boolean): void;
|
|
45
|
+
export declare function getReflectionPrompt(failureType: string, toolName: string): string;
|
|
46
|
+
export declare function getSessionActions(episodeId: string): ActionRecord[];
|
|
47
|
+
export declare function getSessionFailures(episodeId: string): FailureRecord[];
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sessionMemory.ts — Session-scoped action/failure memory for agent learning.
|
|
3
|
+
*
|
|
4
|
+
* Ported from TA Studio's SessionMemory + LearningStore pattern.
|
|
5
|
+
* Records every action and failure in a session, generates reflection
|
|
6
|
+
* prompts for retry, and persists recovery strategies across sessions.
|
|
7
|
+
*
|
|
8
|
+
* Storage: SQLite (shared with founderEpisodeStore).
|
|
9
|
+
*/
|
|
10
|
+
import { getDb, genId } from "../db.js";
|
|
11
|
+
// ─── Schema init ─────────────────────────────────────────────────
|
|
12
|
+
const MAX_ACTIONS_PER_EPISODE = 200;
|
|
13
|
+
const MAX_RECOVERY_STRATEGIES = 100;
|
|
14
|
+
const TRUNCATE_LIMIT = 2048;
|
|
15
|
+
function truncate(s, limit = TRUNCATE_LIMIT) {
|
|
16
|
+
return s.length > limit ? s.slice(0, limit - 3) + "..." : s;
|
|
17
|
+
}
|
|
18
|
+
export function initSessionMemoryTables() {
|
|
19
|
+
const db = getDb();
|
|
20
|
+
db.exec(`
|
|
21
|
+
CREATE TABLE IF NOT EXISTS session_actions (
|
|
22
|
+
action_id TEXT PRIMARY KEY,
|
|
23
|
+
episode_id TEXT NOT NULL,
|
|
24
|
+
step_index INTEGER NOT NULL,
|
|
25
|
+
tool_name TEXT NOT NULL,
|
|
26
|
+
input TEXT NOT NULL,
|
|
27
|
+
output TEXT NOT NULL,
|
|
28
|
+
success INTEGER NOT NULL,
|
|
29
|
+
duration_ms INTEGER NOT NULL,
|
|
30
|
+
timestamp TEXT NOT NULL
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
CREATE TABLE IF NOT EXISTS session_failures (
|
|
34
|
+
failure_id TEXT PRIMARY KEY,
|
|
35
|
+
episode_id TEXT NOT NULL,
|
|
36
|
+
step_index INTEGER NOT NULL,
|
|
37
|
+
tool_name TEXT NOT NULL,
|
|
38
|
+
failure_type TEXT NOT NULL,
|
|
39
|
+
root_cause TEXT NOT NULL,
|
|
40
|
+
recovery_strategy TEXT NOT NULL,
|
|
41
|
+
recovery_successful INTEGER,
|
|
42
|
+
timestamp TEXT NOT NULL
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
CREATE TABLE IF NOT EXISTS recovery_strategies (
|
|
46
|
+
strategy_id TEXT PRIMARY KEY,
|
|
47
|
+
failure_type TEXT NOT NULL,
|
|
48
|
+
tool_name TEXT NOT NULL,
|
|
49
|
+
strategy TEXT NOT NULL,
|
|
50
|
+
success_count INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
failure_count INTEGER NOT NULL DEFAULT 0,
|
|
52
|
+
last_used TEXT NOT NULL
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
CREATE INDEX IF NOT EXISTS idx_actions_episode ON session_actions(episode_id);
|
|
56
|
+
CREATE INDEX IF NOT EXISTS idx_failures_episode ON session_failures(episode_id);
|
|
57
|
+
CREATE INDEX IF NOT EXISTS idx_recovery_type ON recovery_strategies(failure_type, tool_name);
|
|
58
|
+
`);
|
|
59
|
+
}
|
|
60
|
+
// ─── Record actions ──────────────────────────────────────────────
|
|
61
|
+
export function recordAction(action) {
|
|
62
|
+
const db = getDb();
|
|
63
|
+
initSessionMemoryTables();
|
|
64
|
+
const actionId = genId("action");
|
|
65
|
+
// Enforce bounded memory: evict oldest actions if over limit
|
|
66
|
+
const countStmt = db.prepare("SELECT COUNT(*) as cnt FROM session_actions WHERE episode_id = ?");
|
|
67
|
+
const count = countStmt.get(action.episodeId)?.cnt ?? 0;
|
|
68
|
+
if (count >= MAX_ACTIONS_PER_EPISODE) {
|
|
69
|
+
db.prepare("DELETE FROM session_actions WHERE action_id IN (SELECT action_id FROM session_actions WHERE episode_id = ? ORDER BY timestamp ASC LIMIT 10)").run(action.episodeId);
|
|
70
|
+
}
|
|
71
|
+
db.prepare(`
|
|
72
|
+
INSERT INTO session_actions (action_id, episode_id, step_index, tool_name, input, output, success, duration_ms, timestamp)
|
|
73
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
74
|
+
`).run(actionId, action.episodeId, action.stepIndex, action.toolName, truncate(action.input), truncate(action.output), action.success ? 1 : 0, action.durationMs, action.timestamp);
|
|
75
|
+
return { ...action, actionId };
|
|
76
|
+
}
|
|
77
|
+
// ─── Record failures ─────────────────────────────────────────────
|
|
78
|
+
export function recordFailure(failure) {
|
|
79
|
+
const db = getDb();
|
|
80
|
+
initSessionMemoryTables();
|
|
81
|
+
const failureId = genId("failure");
|
|
82
|
+
db.prepare(`
|
|
83
|
+
INSERT INTO session_failures (failure_id, episode_id, step_index, tool_name, failure_type, root_cause, recovery_strategy, recovery_successful, timestamp)
|
|
84
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
85
|
+
`).run(failureId, failure.episodeId, failure.stepIndex, failure.toolName, failure.failureType, failure.rootCause, failure.recoveryStrategy, failure.recoverySuccessful == null ? null : failure.recoverySuccessful ? 1 : 0, failure.timestamp);
|
|
86
|
+
return { ...failure, failureId };
|
|
87
|
+
}
|
|
88
|
+
// ─── Recovery strategy persistence ───────────────────────────────
|
|
89
|
+
export function recordRecoveryOutcome(failureType, toolName, strategy, succeeded) {
|
|
90
|
+
const db = getDb();
|
|
91
|
+
initSessionMemoryTables();
|
|
92
|
+
const existing = db.prepare("SELECT strategy_id, success_count, failure_count FROM recovery_strategies WHERE failure_type = ? AND tool_name = ? AND strategy = ?").get(failureType, toolName, strategy);
|
|
93
|
+
if (existing) {
|
|
94
|
+
if (succeeded) {
|
|
95
|
+
db.prepare("UPDATE recovery_strategies SET success_count = success_count + 1, last_used = ? WHERE strategy_id = ?")
|
|
96
|
+
.run(new Date().toISOString(), existing.strategy_id);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
db.prepare("UPDATE recovery_strategies SET failure_count = failure_count + 1, last_used = ? WHERE strategy_id = ?")
|
|
100
|
+
.run(new Date().toISOString(), existing.strategy_id);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// Enforce bounded: evict lowest success rate if over limit
|
|
105
|
+
const countRow = db.prepare("SELECT COUNT(*) as cnt FROM recovery_strategies").get();
|
|
106
|
+
if ((countRow?.cnt ?? 0) >= MAX_RECOVERY_STRATEGIES) {
|
|
107
|
+
db.prepare("DELETE FROM recovery_strategies WHERE strategy_id IN (SELECT strategy_id FROM recovery_strategies ORDER BY (CAST(success_count AS REAL) / MAX(success_count + failure_count, 1)) ASC LIMIT 5)").run();
|
|
108
|
+
}
|
|
109
|
+
db.prepare(`
|
|
110
|
+
INSERT INTO recovery_strategies (strategy_id, failure_type, tool_name, strategy, success_count, failure_count, last_used)
|
|
111
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
112
|
+
`).run(genId("recovery"), failureType, toolName, strategy, succeeded ? 1 : 0, succeeded ? 0 : 1, new Date().toISOString());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// ─── Reflection prompt generation ────────────────────────────────
|
|
116
|
+
export function getReflectionPrompt(failureType, toolName) {
|
|
117
|
+
const db = getDb();
|
|
118
|
+
initSessionMemoryTables();
|
|
119
|
+
// Get proven recovery strategies for this failure type
|
|
120
|
+
const strategies = db.prepare("SELECT strategy, success_count, failure_count FROM recovery_strategies WHERE failure_type = ? AND tool_name = ? AND success_count > 0 ORDER BY success_count DESC LIMIT 3").all(failureType, toolName);
|
|
121
|
+
if (strategies.length === 0) {
|
|
122
|
+
return `No known recovery strategies for ${failureType} on ${toolName}. Try a different approach.`;
|
|
123
|
+
}
|
|
124
|
+
const lines = strategies.map((s, i) => `${i + 1}. "${s.strategy}" (succeeded ${s.success_count}x, failed ${s.failure_count}x)`);
|
|
125
|
+
return `Known recovery strategies for ${failureType} on ${toolName}:\n${lines.join("\n")}\nUse the most successful strategy, or try a new approach if all have been exhausted.`;
|
|
126
|
+
}
|
|
127
|
+
// ─── Query helpers ────────────────────────────────────────────────
|
|
128
|
+
export function getSessionActions(episodeId) {
|
|
129
|
+
const db = getDb();
|
|
130
|
+
initSessionMemoryTables();
|
|
131
|
+
return db.prepare("SELECT * FROM session_actions WHERE episode_id = ? ORDER BY step_index ASC").all(episodeId);
|
|
132
|
+
}
|
|
133
|
+
export function getSessionFailures(episodeId) {
|
|
134
|
+
const db = getDb();
|
|
135
|
+
initSessionMemoryTables();
|
|
136
|
+
return db.prepare("SELECT * FROM session_failures WHERE episode_id = ? ORDER BY step_index ASC").all(episodeId);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=sessionMemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionMemory.js","sourceRoot":"","sources":["../../src/sync/sessionMemory.ts"],"names":[],"mappings":"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"}
|