sensorium-mcp 3.0.103 → 3.1.0-refactor.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 +25 -0
- package/dist/config/agent-settings.d.ts +69 -0
- package/dist/config/agent-settings.d.ts.map +1 -0
- package/dist/config/agent-settings.js +225 -0
- package/dist/config/agent-settings.js.map +1 -0
- package/dist/config/agent-templates.d.ts +39 -0
- package/dist/config/agent-templates.d.ts.map +1 -0
- package/dist/config/agent-templates.js +105 -0
- package/dist/config/agent-templates.js.map +1 -0
- package/dist/config/index.d.ts +16 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +58 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/keep-alive-settings.d.ts +29 -0
- package/dist/config/keep-alive-settings.d.ts.map +1 -0
- package/dist/config/keep-alive-settings.js +100 -0
- package/dist/config/keep-alive-settings.js.map +1 -0
- package/dist/config/mcp-settings.d.ts +59 -0
- package/dist/config/mcp-settings.d.ts.map +1 -0
- package/dist/config/mcp-settings.js +196 -0
- package/dist/config/mcp-settings.js.map +1 -0
- package/dist/config/misc-settings.d.ts +46 -0
- package/dist/config/misc-settings.d.ts.map +1 -0
- package/dist/config/misc-settings.js +146 -0
- package/dist/config/misc-settings.js.map +1 -0
- package/dist/config/settings-store.d.ts +10 -0
- package/dist/config/settings-store.d.ts.map +1 -0
- package/dist/config/settings-store.js +65 -0
- package/dist/config/settings-store.js.map +1 -0
- package/dist/dashboard/log-parser.d.ts.map +1 -1
- package/dist/dashboard/log-parser.js +12 -2
- package/dist/dashboard/log-parser.js.map +1 -1
- package/dist/dashboard/presets.d.ts +1 -1
- package/dist/dashboard/presets.d.ts.map +1 -1
- package/dist/dashboard/presets.js +1 -1
- package/dist/dashboard/presets.js.map +1 -1
- package/dist/dashboard/routes/agent-templates.d.ts.map +1 -1
- package/dist/dashboard/routes/agent-templates.js +13 -8
- package/dist/dashboard/routes/agent-templates.js.map +1 -1
- package/dist/dashboard/routes/claude.d.ts.map +1 -1
- package/dist/dashboard/routes/claude.js +6 -3
- package/dist/dashboard/routes/claude.js.map +1 -1
- package/dist/dashboard/routes/copilot.d.ts.map +1 -1
- package/dist/dashboard/routes/copilot.js +16 -7
- package/dist/dashboard/routes/copilot.js.map +1 -1
- package/dist/dashboard/routes/data.d.ts.map +1 -1
- package/dist/dashboard/routes/data.js +43 -15
- package/dist/dashboard/routes/data.js.map +1 -1
- package/dist/dashboard/routes/env-vars.d.ts.map +1 -1
- package/dist/dashboard/routes/env-vars.js.map +1 -1
- package/dist/dashboard/routes/mcp-servers.d.ts.map +1 -1
- package/dist/dashboard/routes/mcp-servers.js +11 -5
- package/dist/dashboard/routes/mcp-servers.js.map +1 -1
- package/dist/dashboard/routes/prompts.d.ts.map +1 -1
- package/dist/dashboard/routes/prompts.js +2 -2
- package/dist/dashboard/routes/prompts.js.map +1 -1
- package/dist/dashboard/routes/settings.d.ts.map +1 -1
- package/dist/dashboard/routes/settings.js +5 -3
- package/dist/dashboard/routes/settings.js.map +1 -1
- package/dist/dashboard/routes/skills.d.ts.map +1 -1
- package/dist/dashboard/routes/skills.js +4 -4
- package/dist/dashboard/routes/skills.js.map +1 -1
- package/dist/dashboard/routes/snapshots.d.ts.map +1 -1
- package/dist/dashboard/routes/snapshots.js +18 -11
- package/dist/dashboard/routes/snapshots.js.map +1 -1
- package/dist/dashboard/routes/templates.d.ts.map +1 -1
- package/dist/dashboard/routes/templates.js +6 -3
- package/dist/dashboard/routes/templates.js.map +1 -1
- package/dist/dashboard/routes/threads-create.d.ts +22 -0
- package/dist/dashboard/routes/threads-create.d.ts.map +1 -0
- package/dist/dashboard/routes/threads-create.js +225 -0
- package/dist/dashboard/routes/threads-create.js.map +1 -0
- package/dist/dashboard/routes/threads-helpers.d.ts +28 -0
- package/dist/dashboard/routes/threads-helpers.d.ts.map +1 -0
- package/dist/dashboard/routes/threads-helpers.js +138 -0
- package/dist/dashboard/routes/threads-helpers.js.map +1 -0
- package/dist/dashboard/routes/threads-read.d.ts +26 -0
- package/dist/dashboard/routes/threads-read.d.ts.map +1 -0
- package/dist/dashboard/routes/threads-read.js +118 -0
- package/dist/dashboard/routes/threads-read.js.map +1 -0
- package/dist/dashboard/routes/threads.d.ts +5 -44
- package/dist/dashboard/routes/threads.d.ts.map +1 -1
- package/dist/dashboard/routes/threads.js +40 -496
- package/dist/dashboard/routes/threads.js.map +1 -1
- package/dist/dashboard/routes/types.d.ts.map +1 -1
- package/dist/dashboard/routes/types.js.map +1 -1
- package/dist/dashboard/routes.d.ts.map +1 -1
- package/dist/dashboard/routes.js +9 -5
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/data/daily-marker.d.ts.map +1 -1
- package/dist/data/daily-marker.js +1 -1
- package/dist/data/daily-marker.js.map +1 -1
- package/dist/data/file-storage.d.ts.map +1 -1
- package/dist/data/file-storage.js +40 -16
- package/dist/data/file-storage.js.map +1 -1
- package/dist/data/interfaces.d.ts +23 -2
- package/dist/data/interfaces.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.d.ts +1 -1
- package/dist/data/memory/bootstrap.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.js +32 -13
- package/dist/data/memory/bootstrap.js.map +1 -1
- package/dist/data/memory/consolidation.d.ts.map +1 -1
- package/dist/data/memory/consolidation.js +17 -8
- package/dist/data/memory/consolidation.js.map +1 -1
- package/dist/data/memory/db-types.d.ts +4 -0
- package/dist/data/memory/db-types.d.ts.map +1 -0
- package/dist/data/memory/db-types.js +2 -0
- package/dist/data/memory/db-types.js.map +1 -0
- package/dist/data/memory/episodes.d.ts.map +1 -1
- package/dist/data/memory/episodes.js +3 -5
- package/dist/data/memory/episodes.js.map +1 -1
- package/dist/data/memory/index.d.ts +28 -14
- package/dist/data/memory/index.d.ts.map +1 -1
- package/dist/data/memory/index.js +28 -14
- package/dist/data/memory/index.js.map +1 -1
- package/dist/data/memory/migration-runner.d.ts +1 -1
- package/dist/data/memory/migration-runner.d.ts.map +1 -1
- package/dist/data/memory/migration-runner.js +23 -15
- package/dist/data/memory/migration-runner.js.map +1 -1
- package/dist/data/memory/narrative-lint.d.ts +12 -0
- package/dist/data/memory/narrative-lint.d.ts.map +1 -0
- package/dist/data/memory/narrative-lint.js +117 -0
- package/dist/data/memory/narrative-lint.js.map +1 -0
- package/dist/data/memory/narrative-resolutions.d.ts +26 -0
- package/dist/data/memory/narrative-resolutions.d.ts.map +1 -0
- package/dist/data/memory/narrative-resolutions.js +81 -0
- package/dist/data/memory/narrative-resolutions.js.map +1 -0
- package/dist/data/memory/narrative-sources.d.ts +19 -0
- package/dist/data/memory/narrative-sources.d.ts.map +1 -0
- package/dist/data/memory/narrative-sources.js +150 -0
- package/dist/data/memory/narrative-sources.js.map +1 -0
- package/dist/data/memory/narrative-store.d.ts +11 -0
- package/dist/data/memory/narrative-store.d.ts.map +1 -0
- package/dist/data/memory/narrative-store.js +80 -0
- package/dist/data/memory/narrative-store.js.map +1 -0
- package/dist/data/memory/narrative-types.d.ts +15 -0
- package/dist/data/memory/narrative-types.d.ts.map +1 -0
- package/dist/data/memory/narrative-types.js +3 -0
- package/dist/data/memory/narrative-types.js.map +1 -0
- package/dist/data/memory/narrative.d.ts +5 -2
- package/dist/data/memory/narrative.d.ts.map +1 -1
- package/dist/data/memory/narrative.js +31 -521
- package/dist/data/memory/narrative.js.map +1 -1
- package/dist/data/memory/note-archival.d.ts +17 -0
- package/dist/data/memory/note-archival.d.ts.map +1 -0
- package/dist/data/memory/note-archival.js +48 -0
- package/dist/data/memory/note-archival.js.map +1 -0
- package/dist/data/memory/note-embeddings.d.ts +27 -0
- package/dist/data/memory/note-embeddings.d.ts.map +1 -0
- package/dist/data/memory/note-embeddings.js +98 -0
- package/dist/data/memory/note-embeddings.js.map +1 -0
- package/dist/data/memory/reflection-dedup.d.ts +17 -0
- package/dist/data/memory/reflection-dedup.d.ts.map +1 -0
- package/dist/data/memory/reflection-dedup.js +55 -0
- package/dist/data/memory/reflection-dedup.js.map +1 -0
- package/dist/data/memory/reflection-gates.d.ts +40 -0
- package/dist/data/memory/reflection-gates.d.ts.map +1 -0
- package/dist/data/memory/reflection-gates.js +220 -0
- package/dist/data/memory/reflection-gates.js.map +1 -0
- package/dist/data/memory/reflection-sources.d.ts +13 -0
- package/dist/data/memory/reflection-sources.d.ts.map +1 -0
- package/dist/data/memory/reflection-sources.js +115 -0
- package/dist/data/memory/reflection-sources.js.map +1 -0
- package/dist/data/memory/reflection.d.ts +5 -35
- package/dist/data/memory/reflection.d.ts.map +1 -1
- package/dist/data/memory/reflection.js +25 -329
- package/dist/data/memory/reflection.js.map +1 -1
- package/dist/data/memory/schema-ddl.d.ts +1 -1
- package/dist/data/memory/schema-ddl.d.ts.map +1 -1
- package/dist/data/memory/schema-ddl.js +5 -3
- package/dist/data/memory/schema-ddl.js.map +1 -1
- package/dist/data/memory/schema-guard.d.ts +1 -1
- package/dist/data/memory/schema-guard.d.ts.map +1 -1
- package/dist/data/memory/schema-guard.js +5 -4
- package/dist/data/memory/schema-guard.js.map +1 -1
- package/dist/data/memory/schema.d.ts +2 -2
- package/dist/data/memory/schema.d.ts.map +1 -1
- package/dist/data/memory/schema.js +4 -2
- package/dist/data/memory/schema.js.map +1 -1
- package/dist/data/memory/{semantic.d.ts → semantic-notes.d.ts} +6 -72
- package/dist/data/memory/semantic-notes.d.ts.map +1 -0
- package/dist/data/memory/semantic-notes.js +249 -0
- package/dist/data/memory/semantic-notes.js.map +1 -0
- package/dist/data/memory/semantic-search.d.ts +29 -0
- package/dist/data/memory/semantic-search.d.ts.map +1 -0
- package/dist/data/memory/semantic-search.js +156 -0
- package/dist/data/memory/semantic-search.js.map +1 -0
- package/dist/data/memory/synthesis.d.ts.map +1 -1
- package/dist/data/memory/synthesis.js +15 -7
- package/dist/data/memory/synthesis.js.map +1 -1
- package/dist/data/memory/thread-registry.d.ts +2 -2
- package/dist/data/memory/thread-registry.d.ts.map +1 -1
- package/dist/data/memory/thread-registry.js +74 -36
- package/dist/data/memory/thread-registry.js.map +1 -1
- package/dist/data/memory/topic-index.d.ts +20 -0
- package/dist/data/memory/topic-index.d.ts.map +1 -0
- package/dist/data/memory/topic-index.js +91 -0
- package/dist/data/memory/topic-index.js.map +1 -0
- package/dist/data/memory/topic-shift.js +1 -1
- package/dist/data/memory/topic-shift.js.map +1 -1
- package/dist/data/memory/utils.d.ts +0 -5
- package/dist/data/memory/utils.d.ts.map +1 -1
- package/dist/data/memory/utils.js +0 -94
- package/dist/data/memory/utils.js.map +1 -1
- package/dist/data/sent-message.repository.js +2 -2
- package/dist/data/sent-message.repository.js.map +1 -1
- package/dist/data/templates.js +2 -2
- package/dist/data/templates.js.map +1 -1
- package/dist/index.js +21 -19
- package/dist/index.js.map +1 -1
- package/dist/integrations/openai/chat.d.ts.map +1 -1
- package/dist/integrations/openai/chat.js +5 -5
- package/dist/integrations/openai/chat.js.map +1 -1
- package/dist/integrations/openai/speech.d.ts +1 -1
- package/dist/integrations/openai/speech.d.ts.map +1 -1
- package/dist/integrations/openai/speech.js +1 -3
- package/dist/integrations/openai/speech.js.map +1 -1
- package/dist/integrations/openai/video.d.ts.map +1 -1
- package/dist/integrations/openai/video.js +21 -10
- package/dist/integrations/openai/video.js.map +1 -1
- package/dist/integrations/openai/vision.d.ts.map +1 -1
- package/dist/integrations/openai/vision.js.map +1 -1
- package/dist/integrations/openai/voice-emotion.d.ts.map +1 -1
- package/dist/integrations/openai/voice-emotion.js +2 -2
- package/dist/integrations/openai/voice-emotion.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/{logger.js → lib/logger.js} +77 -50
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/{markdown.js → lib/markdown.js} +13 -5
- package/dist/lib/markdown.js.map +1 -0
- package/dist/{types.d.ts → lib/types.d.ts} +0 -1
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/{utils.js → lib/utils.js} +29 -9
- package/dist/lib/utils.js.map +1 -0
- package/dist/llm/json.d.ts +14 -0
- package/dist/llm/json.d.ts.map +1 -0
- package/dist/llm/json.js +112 -0
- package/dist/llm/json.js.map +1 -0
- package/dist/llm/prompts/narrative.d.ts +7 -0
- package/dist/llm/prompts/narrative.d.ts.map +1 -0
- package/dist/llm/prompts/narrative.js +124 -0
- package/dist/llm/prompts/narrative.js.map +1 -0
- package/dist/llm/prompts/reflection.d.ts +6 -0
- package/dist/llm/prompts/reflection.d.ts.map +1 -0
- package/dist/llm/prompts/reflection.js +77 -0
- package/dist/llm/prompts/reflection.js.map +1 -0
- package/dist/server/factory.d.ts +2 -2
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +152 -73
- package/dist/server/factory.js.map +1 -1
- package/dist/{http-server.d.ts → server/http-server.d.ts} +2 -2
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/{http-server.js → server/http-server.js} +38 -17
- package/dist/server/http-server.js.map +1 -0
- package/dist/{stdio-server.d.ts → server/stdio-server.d.ts} +1 -1
- package/dist/server/stdio-server.d.ts.map +1 -0
- package/dist/{stdio-server.js → server/stdio-server.js} +25 -11
- package/dist/server/stdio-server.js.map +1 -0
- package/dist/services/agent-spawn.service.d.ts +1 -1
- package/dist/services/agent-spawn.service.d.ts.map +1 -1
- package/dist/services/agent-spawn.service.js +17 -7
- package/dist/services/agent-spawn.service.js.map +1 -1
- package/dist/services/background-runner.d.ts +2 -2
- package/dist/services/background-runner.d.ts.map +1 -1
- package/dist/services/background-runner.js +8 -3
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/claude-spawn.service.d.ts.map +1 -1
- package/dist/services/claude-spawn.service.js +61 -52
- package/dist/services/claude-spawn.service.js.map +1 -1
- package/dist/services/codex-spawn.service.d.ts.map +1 -1
- package/dist/services/codex-spawn.service.js +52 -40
- package/dist/services/codex-spawn.service.js.map +1 -1
- package/dist/services/consolidation-prompts.d.ts +26 -0
- package/dist/services/consolidation-prompts.d.ts.map +1 -0
- package/dist/services/consolidation-prompts.js +144 -0
- package/dist/services/consolidation-prompts.js.map +1 -0
- package/dist/services/consolidation.service.d.ts +1 -5
- package/dist/services/consolidation.service.d.ts.map +1 -1
- package/dist/services/consolidation.service.js +53 -322
- package/dist/services/consolidation.service.js.map +1 -1
- package/dist/services/copilot-spawn.service.d.ts.map +1 -1
- package/dist/services/copilot-spawn.service.js +47 -57
- package/dist/services/copilot-spawn.service.js.map +1 -1
- package/dist/{daily-session.d.ts → services/daily-session.d.ts} +1 -1
- package/dist/services/daily-session.d.ts.map +1 -0
- package/dist/{daily-session.js → services/daily-session.js} +15 -14
- package/dist/services/daily-session.js.map +1 -0
- package/dist/services/dispatcher/broker.d.ts +0 -6
- package/dist/services/dispatcher/broker.d.ts.map +1 -1
- package/dist/services/dispatcher/broker.js +46 -38
- package/dist/services/dispatcher/broker.js.map +1 -1
- package/dist/services/dispatcher/index.d.ts +1 -1
- package/dist/services/dispatcher/index.d.ts.map +1 -1
- package/dist/services/dispatcher/index.js +1 -1
- package/dist/services/dispatcher/index.js.map +1 -1
- package/dist/services/dispatcher/lock.d.ts.map +1 -1
- package/dist/services/dispatcher/lock.js +24 -9
- package/dist/services/dispatcher/lock.js.map +1 -1
- package/dist/services/dispatcher/poller.d.ts +1 -1
- package/dist/services/dispatcher/poller.d.ts.map +1 -1
- package/dist/services/dispatcher/poller.js +74 -49
- package/dist/services/dispatcher/poller.js.map +1 -1
- package/dist/services/drive.d.ts.map +1 -0
- package/dist/{drive.js → services/drive.js} +1 -1
- package/dist/services/drive.js.map +1 -0
- package/dist/services/intent.d.ts.map +1 -0
- package/dist/{intent.js → services/intent.js} +78 -23
- package/dist/services/intent.js.map +1 -0
- package/dist/services/keep-alive-sync.service.d.ts +11 -0
- package/dist/services/keep-alive-sync.service.d.ts.map +1 -0
- package/dist/services/keep-alive-sync.service.js +47 -0
- package/dist/services/keep-alive-sync.service.js.map +1 -0
- package/dist/services/keeper.service.d.ts +1 -1
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +31 -18
- package/dist/services/keeper.service.js.map +1 -1
- package/dist/services/maintenance-signal.js +1 -1
- package/dist/services/maintenance-signal.js.map +1 -1
- package/dist/services/mcp-config.service.d.ts.map +1 -1
- package/dist/services/mcp-config.service.js +19 -6
- package/dist/services/mcp-config.service.js.map +1 -1
- package/dist/services/memory-briefing.service.d.ts.map +1 -1
- package/dist/services/memory-briefing.service.js +13 -7
- package/dist/services/memory-briefing.service.js.map +1 -1
- package/dist/services/memory-pruning.service.d.ts +12 -0
- package/dist/services/memory-pruning.service.d.ts.map +1 -0
- package/dist/services/memory-pruning.service.js +177 -0
- package/dist/services/memory-pruning.service.js.map +1 -0
- package/dist/services/process.service.d.ts +7 -2
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +233 -103
- package/dist/services/process.service.js.map +1 -1
- package/dist/services/reconnect-snapshot.service.d.ts.map +1 -1
- package/dist/services/reconnect-snapshot.service.js +3 -3
- package/dist/services/reconnect-snapshot.service.js.map +1 -1
- package/dist/{scheduler.d.ts → services/scheduler.d.ts} +1 -23
- package/dist/services/scheduler.d.ts.map +1 -0
- package/dist/{scheduler.js → services/scheduler.js} +6 -8
- package/dist/services/scheduler.js.map +1 -0
- package/dist/services/self-update.service.d.ts +15 -5
- package/dist/services/self-update.service.d.ts.map +1 -1
- package/dist/services/self-update.service.js +85 -41
- package/dist/services/self-update.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts +40 -16
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +163 -36
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/{telegram.d.ts → services/telegram.d.ts} +3 -3
- package/dist/services/telegram.d.ts.map +1 -0
- package/dist/{telegram.js → services/telegram.js} +16 -8
- package/dist/services/telegram.js.map +1 -0
- package/dist/services/thread-config.service.d.ts +25 -0
- package/dist/services/thread-config.service.d.ts.map +1 -0
- package/dist/services/thread-config.service.js +73 -0
- package/dist/services/thread-config.service.js.map +1 -0
- package/dist/services/thread-health.service.d.ts.map +1 -1
- package/dist/services/thread-health.service.js +23 -9
- package/dist/services/thread-health.service.js.map +1 -1
- package/dist/services/thread-lifecycle.service.d.ts.map +1 -1
- package/dist/services/thread-lifecycle.service.js +21 -7
- package/dist/services/thread-lifecycle.service.js.map +1 -1
- package/dist/services/topic.service.d.ts.map +1 -1
- package/dist/services/topic.service.js +17 -6
- package/dist/services/topic.service.js.map +1 -1
- package/dist/services/worker-cleanup.service.d.ts +3 -2
- package/dist/services/worker-cleanup.service.d.ts.map +1 -1
- package/dist/services/worker-cleanup.service.js +31 -19
- package/dist/services/worker-cleanup.service.js.map +1 -1
- package/dist/sessions/dashboard-registry.d.ts +38 -0
- package/dist/sessions/dashboard-registry.d.ts.map +1 -0
- package/dist/sessions/dashboard-registry.js +84 -0
- package/dist/sessions/dashboard-registry.js.map +1 -0
- package/dist/{sessions.d.ts → sessions/mcp-registry.d.ts} +3 -60
- package/dist/sessions/mcp-registry.d.ts.map +1 -0
- package/dist/{sessions.js → sessions/mcp-registry.js} +5 -214
- package/dist/sessions/mcp-registry.js.map +1 -0
- package/dist/sessions/session-store.d.ts +17 -0
- package/dist/sessions/session-store.d.ts.map +1 -0
- package/dist/sessions/session-store.js +69 -0
- package/dist/sessions/session-store.js.map +1 -0
- package/dist/sessions/topic-registry.d.ts +14 -0
- package/dist/sessions/topic-registry.d.ts.map +1 -0
- package/dist/sessions/topic-registry.js +67 -0
- package/dist/sessions/topic-registry.js.map +1 -0
- package/dist/tools/definitions.d.ts +1 -9
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/defs/memory-defs.d.ts +1 -1
- package/dist/tools/defs/memory-defs.d.ts.map +1 -1
- package/dist/tools/defs/memory-defs.js +1 -1
- package/dist/tools/defs/memory-defs.js.map +1 -1
- package/dist/tools/defs/session-defs.d.ts +1 -1
- package/dist/tools/defs/session-defs.d.ts.map +1 -1
- package/dist/tools/defs/session-defs.js +3 -14
- package/dist/tools/defs/session-defs.js.map +1 -1
- package/dist/tools/defs/skill-defs.d.ts +1 -1
- package/dist/tools/defs/skill-defs.d.ts.map +1 -1
- package/dist/tools/defs/types.d.ts +11 -0
- package/dist/tools/defs/types.d.ts.map +1 -0
- package/dist/{chat-ui/src → tools/defs}/types.js.map +1 -1
- package/dist/tools/defs/utility-defs.d.ts +1 -1
- package/dist/tools/defs/utility-defs.d.ts.map +1 -1
- package/dist/tools/defs/utility-defs.js.map +1 -1
- package/dist/tools/defs/wait-defs.d.ts +1 -1
- package/dist/tools/defs/wait-defs.d.ts.map +1 -1
- package/dist/tools/delegate-tool.d.ts +2 -2
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +57 -37
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +2 -2
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +108 -37
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/{response-builders.d.ts → tools/response-builders.d.ts} +2 -2
- package/dist/tools/response-builders.d.ts.map +1 -0
- package/dist/{response-builders.js → tools/response-builders.js} +151 -30
- package/dist/tools/response-builders.js.map +1 -0
- package/dist/tools/session-tools.d.ts +5 -14
- package/dist/tools/session-tools.d.ts.map +1 -1
- package/dist/tools/session-tools.js +17 -12
- package/dist/tools/session-tools.js.map +1 -1
- package/dist/tools/shared-agent-utils.d.ts +1 -1
- package/dist/tools/shared-agent-utils.d.ts.map +1 -1
- package/dist/tools/shared-agent-utils.js +2 -4
- package/dist/tools/shared-agent-utils.js.map +1 -1
- package/dist/tools/skill-tools.d.ts +1 -1
- package/dist/tools/skill-tools.d.ts.map +1 -1
- package/dist/tools/skill-tools.js +12 -7
- package/dist/tools/skill-tools.js.map +1 -1
- package/dist/tools/start-session-tool.d.ts +3 -3
- package/dist/tools/start-session-tool.d.ts.map +1 -1
- package/dist/tools/start-session-tool.js +35 -25
- package/dist/tools/start-session-tool.js.map +1 -1
- package/dist/tools/utility-tools.d.ts +3 -3
- package/dist/tools/utility-tools.d.ts.map +1 -1
- package/dist/tools/utility-tools.js +46 -28
- package/dist/tools/utility-tools.js.map +1 -1
- package/dist/tools/wait/auto-forward.d.ts +1 -1
- package/dist/tools/wait/auto-forward.d.ts.map +1 -1
- package/dist/tools/wait/auto-forward.js +6 -4
- package/dist/tools/wait/auto-forward.js.map +1 -1
- package/dist/tools/wait/context.d.ts +45 -0
- package/dist/tools/wait/context.d.ts.map +1 -0
- package/dist/tools/wait/context.js +5 -0
- package/dist/tools/wait/context.js.map +1 -0
- package/dist/tools/wait/drive-handler.d.ts +2 -2
- package/dist/tools/wait/drive-handler.d.ts.map +1 -1
- package/dist/tools/wait/drive-handler.js +24 -12
- package/dist/tools/wait/drive-handler.js.map +1 -1
- package/dist/tools/wait/index.d.ts +2 -1
- package/dist/tools/wait/index.d.ts.map +1 -1
- package/dist/tools/wait/index.js.map +1 -1
- package/dist/tools/wait/media-processor.d.ts +4 -4
- package/dist/tools/wait/media-processor.d.ts.map +1 -1
- package/dist/tools/wait/media-processor.js +17 -8
- package/dist/tools/wait/media-processor.js.map +1 -1
- package/dist/tools/wait/message-delivery.d.ts +5 -5
- package/dist/tools/wait/message-delivery.d.ts.map +1 -1
- package/dist/tools/wait/message-delivery.js +78 -37
- package/dist/tools/wait/message-delivery.js.map +1 -1
- package/dist/tools/wait/message-processing.d.ts +2 -2
- package/dist/tools/wait/message-processing.d.ts.map +1 -1
- package/dist/tools/wait/message-processing.js +95 -37
- package/dist/tools/wait/message-processing.js.map +1 -1
- package/dist/tools/wait/poll-loop.d.ts +2 -41
- package/dist/tools/wait/poll-loop.d.ts.map +1 -1
- package/dist/tools/wait/poll-loop.js +75 -23
- package/dist/tools/wait/poll-loop.js.map +1 -1
- package/dist/tools/wait/reaction-handler.d.ts +3 -3
- package/dist/tools/wait/reaction-handler.d.ts.map +1 -1
- package/dist/tools/wait/reaction-handler.js +6 -6
- package/dist/tools/wait/reaction-handler.js.map +1 -1
- package/dist/tools/wait/task-handler.d.ts +1 -1
- package/dist/tools/wait/task-handler.d.ts.map +1 -1
- package/dist/tools/wait/task-handler.js +5 -4
- package/dist/tools/wait/task-handler.js.map +1 -1
- package/package.json +11 -2
- package/templates/code-review.default.md +1 -1
- package/templates/fire-and-forget.default.md +1 -1
- package/templates/handoff.default.md +1 -1
- package/templates/sensorium-repair.default.md +1 -1
- package/templates/sleep.default.md +1 -1
- package/dist/chat-ui/src/main.d.ts +0 -2
- package/dist/chat-ui/src/main.d.ts.map +0 -1
- package/dist/chat-ui/src/main.js +0 -4
- package/dist/chat-ui/src/main.js.map +0 -1
- package/dist/chat-ui/src/markdown.d.ts +0 -2
- package/dist/chat-ui/src/markdown.d.ts.map +0 -1
- package/dist/chat-ui/src/markdown.js +0 -39
- package/dist/chat-ui/src/markdown.js.map +0 -1
- package/dist/chat-ui/src/mock-data.d.ts +0 -4
- package/dist/chat-ui/src/mock-data.d.ts.map +0 -1
- package/dist/chat-ui/src/mock-data.js +0 -230
- package/dist/chat-ui/src/mock-data.js.map +0 -1
- package/dist/chat-ui/src/types.d.ts +0 -47
- package/dist/chat-ui/src/types.d.ts.map +0 -1
- package/dist/chat-ui/vite.config.d.ts +0 -3
- package/dist/chat-ui/vite.config.d.ts.map +0 -1
- package/dist/chat-ui/vite.config.js +0 -14
- package/dist/chat-ui/vite.config.js.map +0 -1
- package/dist/config.d.ts +0 -228
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -841
- package/dist/config.js.map +0 -1
- package/dist/daily-session.d.ts.map +0 -1
- package/dist/daily-session.js.map +0 -1
- package/dist/dashboard.d.ts +0 -10
- package/dist/dashboard.d.ts.map +0 -1
- package/dist/dashboard.js +0 -10
- package/dist/dashboard.js.map +0 -1
- package/dist/data/memory/semantic.d.ts.map +0 -1
- package/dist/data/memory/semantic.js +0 -588
- package/dist/data/memory/semantic.js.map +0 -1
- package/dist/dispatcher.d.ts +0 -9
- package/dist/dispatcher.d.ts.map +0 -1
- package/dist/dispatcher.js +0 -9
- package/dist/dispatcher.js.map +0 -1
- package/dist/drive.d.ts.map +0 -1
- package/dist/drive.js.map +0 -1
- package/dist/http-server.d.ts.map +0 -1
- package/dist/http-server.js.map +0 -1
- package/dist/intent.d.ts.map +0 -1
- package/dist/intent.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/memory.d.ts +0 -9
- package/dist/memory.d.ts.map +0 -1
- package/dist/memory.js +0 -9
- package/dist/memory.js.map +0 -1
- package/dist/openai.d.ts +0 -13
- package/dist/openai.d.ts.map +0 -1
- package/dist/openai.js +0 -17
- package/dist/openai.js.map +0 -1
- package/dist/response-builders.d.ts.map +0 -1
- package/dist/response-builders.js.map +0 -1
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js.map +0 -1
- package/dist/sessions.d.ts.map +0 -1
- package/dist/sessions.js.map +0 -1
- package/dist/stdio-server.d.ts.map +0 -1
- package/dist/stdio-server.js.map +0 -1
- package/dist/telegram.d.ts.map +0 -1
- package/dist/telegram.js.map +0 -1
- package/dist/tool-definitions.d.ts +0 -2
- package/dist/tool-definitions.d.ts.map +0 -1
- package/dist/tool-definitions.js +0 -2
- package/dist/tool-definitions.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
- /package/dist/{logger.d.ts → lib/logger.d.ts} +0 -0
- /package/dist/{markdown.d.ts → lib/markdown.d.ts} +0 -0
- /package/dist/{types.js → lib/types.js} +0 -0
- /package/dist/{utils.d.ts → lib/utils.d.ts} +0 -0
- /package/dist/{drive.d.ts → services/drive.d.ts} +0 -0
- /package/dist/{intent.d.ts → services/intent.d.ts} +0 -0
- /package/dist/{chat-ui/src → tools/defs}/types.js +0 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflection quality gates — pure checks that reject vague, meta, or
|
|
3
|
+
* non-actionable insights, plus the structured-field parser.
|
|
4
|
+
*/
|
|
5
|
+
const MIN_INSIGHT_LENGTH = 50;
|
|
6
|
+
const VAGUE_PATTERNS = [
|
|
7
|
+
/\bthe agent tends to\b/i,
|
|
8
|
+
/\bI tend to\b/i,
|
|
9
|
+
/\bthe agent demonstrates\b/i,
|
|
10
|
+
/\bthe agent frequently\b/i,
|
|
11
|
+
/\bshould consider\b/i,
|
|
12
|
+
/\bthis (is|was) (a |an )?(good|important|useful)\b/i,
|
|
13
|
+
/\bin general\b/i,
|
|
14
|
+
/\boverall\b.*\b(good|well|effective)\b/i,
|
|
15
|
+
/\bthe key (insight|takeaway|lesson) is\b/i,
|
|
16
|
+
/\bit('s| is) important to\b/i,
|
|
17
|
+
/\bthis (led|leads) to\b(?!\s+\w{4,})/i,
|
|
18
|
+
/\bgoing forward\b/i,
|
|
19
|
+
/\bmoving forward\b/i,
|
|
20
|
+
/\ba? ?valuable (lesson|experience|insight)\b/i,
|
|
21
|
+
/\bI (learned|realized|recognized|acknowledged) that\b/i,
|
|
22
|
+
/\bthis (highlights|underscores|demonstrates)\b/i,
|
|
23
|
+
/\bsignificant (progress|strides|developments?|evolution)\b/i,
|
|
24
|
+
/\bnotable improvements?\b/i,
|
|
25
|
+
/\bvarious features\b/i,
|
|
26
|
+
/\bseveral enhancements\b/i,
|
|
27
|
+
/\bI regularly (review|conduct|perform|check)\b/i,
|
|
28
|
+
/\bI frequently (create|manage|handle)\b/i,
|
|
29
|
+
];
|
|
30
|
+
const BANNED_TOPIC_PATTERNS = [
|
|
31
|
+
/\bmemory (system|audit|cleanup|quality|consolidat)/i,
|
|
32
|
+
/\bconsolidation (process|pipeline|prompt)\b/i,
|
|
33
|
+
/\breflection (quality|pipeline|system)\b/i,
|
|
34
|
+
/\bdeduplication\b/i,
|
|
35
|
+
/\bnote (archival|cleanup|expir)/i,
|
|
36
|
+
/\bI (conducted|scheduled|implemented) a (memory|cleanup|audit)\b/i,
|
|
37
|
+
];
|
|
38
|
+
/** Check if an insight passes the quality gate (actionable, specific, non-vague, non-meta). */
|
|
39
|
+
export function passesQualityGate(content, confidence) {
|
|
40
|
+
if (content.length < MIN_INSIGHT_LENGTH) {
|
|
41
|
+
return { pass: false, reason: "too short" };
|
|
42
|
+
}
|
|
43
|
+
if (confidence < 0.3) {
|
|
44
|
+
return { pass: false, reason: "confidence too low" };
|
|
45
|
+
}
|
|
46
|
+
for (const pattern of VAGUE_PATTERNS) {
|
|
47
|
+
if (pattern.test(content)) {
|
|
48
|
+
return { pass: false, reason: `matches vague pattern: ${pattern.source}` };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (const pattern of BANNED_TOPIC_PATTERNS) {
|
|
52
|
+
if (pattern.test(content)) {
|
|
53
|
+
return { pass: false, reason: `banned topic: ${pattern.source}` };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { pass: true };
|
|
57
|
+
}
|
|
58
|
+
/** Parse reflection content into structured fields. Returns null if parsing fails. */
|
|
59
|
+
export function parseReflectionFields(content) {
|
|
60
|
+
const decisionMatch = content.match(/Decision:\s*(.+?)(?:\s*Context:|$)/s);
|
|
61
|
+
const contextMatch = content.match(/Context:\s*(.+?)(?:\s*Outcome:|$)/s);
|
|
62
|
+
const outcomeMatch = content.match(/Outcome:\s*(.+?)(?:\s*Root cause:|$)/s);
|
|
63
|
+
const rootCauseMatch = content.match(/Root cause:\s*(.+?)(?:\s*Lesson:|$)/s);
|
|
64
|
+
const lessonMatch = content.match(/Lesson:\s*(.+?)(?:\s*$)/s);
|
|
65
|
+
if (!decisionMatch || !lessonMatch)
|
|
66
|
+
return null;
|
|
67
|
+
return {
|
|
68
|
+
decision: decisionMatch[1]?.trim() ?? "",
|
|
69
|
+
context: contextMatch?.[1]?.trim() ?? "",
|
|
70
|
+
outcome: outcomeMatch?.[1]?.trim() ?? "",
|
|
71
|
+
root_cause: rootCauseMatch?.[1]?.trim() ?? "",
|
|
72
|
+
lesson: lessonMatch[1]?.trim() ?? "",
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// A concrete anchor is a specific, project-referencing token: a code identifier,
|
|
76
|
+
// file/path, version, acronym, or number. Generic prose maxims ("Always
|
|
77
|
+
// communicate clearly", "Break tasks into steps") contain none of these and carry
|
|
78
|
+
// no reusable, project-specific value — they are the dominant reflection noise.
|
|
79
|
+
const ANCHOR_PATTERNS = [
|
|
80
|
+
/`[^`]+`/, // backticked code
|
|
81
|
+
/\b\w+\.(ts|js|tsx|jsx|cs|py|json|sql|md|ya?ml|sh|db)\b/i, // filename
|
|
82
|
+
/[/\\]\w/, // path segment
|
|
83
|
+
/\b[a-z][a-z0-9]*[A-Z][a-zA-Z0-9]*\b/, // camelCase identifier
|
|
84
|
+
/\b[A-Z][a-z0-9]+[A-Z][a-zA-Z0-9]*\b/, // PascalCase identifier
|
|
85
|
+
/\b[a-z0-9]+_[a-z0-9]+\b/, // snake_case identifier
|
|
86
|
+
/\bv?\d+\.\d+/, // version / decimal (5.2.2, v1.2)
|
|
87
|
+
];
|
|
88
|
+
// All-caps tokens that are filler, not project anchors — excluded from the acronym rule.
|
|
89
|
+
const NON_ANCHOR_ACRONYMS = new Set([
|
|
90
|
+
"OK",
|
|
91
|
+
"TODO",
|
|
92
|
+
"ASAP",
|
|
93
|
+
"FYI",
|
|
94
|
+
"AKA",
|
|
95
|
+
"ETA",
|
|
96
|
+
"YES",
|
|
97
|
+
"NO",
|
|
98
|
+
"AI",
|
|
99
|
+
"IT",
|
|
100
|
+
"OKAY",
|
|
101
|
+
"PM",
|
|
102
|
+
"IMO",
|
|
103
|
+
]);
|
|
104
|
+
/** True if the text names something specific rather than being an abstract platitude. */
|
|
105
|
+
export function hasConcreteAnchor(text) {
|
|
106
|
+
if (ANCHOR_PATTERNS.some((p) => p.test(text)))
|
|
107
|
+
return true;
|
|
108
|
+
const acronyms = text.match(/\b[A-Z]{2,}\b/g);
|
|
109
|
+
return Boolean(acronyms && acronyms.some((a) => !NON_ANCHOR_ACRONYMS.has(a)));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Validate structural integrity of parsed insight fields.
|
|
113
|
+
*
|
|
114
|
+
* `requireAnchor` gates the lesson on a concrete anchor (identifier/file/version).
|
|
115
|
+
* It defaults ON for the generation path (reject new platitudes). The existing-notes
|
|
116
|
+
* cleanup sweep passes it OFF so tightening the anchor rule never retroactively
|
|
117
|
+
* expires historical reflections — legacy cleanup is a separate, backed-up step.
|
|
118
|
+
*/
|
|
119
|
+
export function passesStructuralGate(insight, options = {}) {
|
|
120
|
+
const { requireAnchor = true } = options;
|
|
121
|
+
// Check root_cause is meaningfully different from outcome (skip for very short fields)
|
|
122
|
+
const outcomeWords = new Set(insight.outcome
|
|
123
|
+
.toLowerCase()
|
|
124
|
+
.replace(/[.,:;!?]/g, "")
|
|
125
|
+
.split(/\s+/)
|
|
126
|
+
.filter((w) => w.length > 3));
|
|
127
|
+
const rootWords = new Set(insight.root_cause
|
|
128
|
+
.toLowerCase()
|
|
129
|
+
.replace(/[.,:;!?]/g, "")
|
|
130
|
+
.split(/\s+/)
|
|
131
|
+
.filter((w) => w.length > 3));
|
|
132
|
+
if (outcomeWords.size >= 3) {
|
|
133
|
+
const overlap = [...outcomeWords].filter((w) => rootWords.has(w)).length;
|
|
134
|
+
const overlapRatio = overlap / outcomeWords.size;
|
|
135
|
+
if (overlapRatio > 0.6) {
|
|
136
|
+
return { pass: false, reason: "root_cause restates outcome" };
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Check lesson starts with a verb (actionable)
|
|
140
|
+
const lessonStart = insight.lesson.trim().split(/\s/)[0]?.toLowerCase() ?? "";
|
|
141
|
+
const actionVerbs = [
|
|
142
|
+
"always",
|
|
143
|
+
"never",
|
|
144
|
+
"before",
|
|
145
|
+
"after",
|
|
146
|
+
"when",
|
|
147
|
+
"if",
|
|
148
|
+
"check",
|
|
149
|
+
"verify",
|
|
150
|
+
"ensure",
|
|
151
|
+
"use",
|
|
152
|
+
"avoid",
|
|
153
|
+
"run",
|
|
154
|
+
"test",
|
|
155
|
+
"add",
|
|
156
|
+
"remove",
|
|
157
|
+
"set",
|
|
158
|
+
"create",
|
|
159
|
+
"implement",
|
|
160
|
+
"review",
|
|
161
|
+
"validate",
|
|
162
|
+
"confirm",
|
|
163
|
+
"monitor",
|
|
164
|
+
"track",
|
|
165
|
+
"log",
|
|
166
|
+
"document",
|
|
167
|
+
"separate",
|
|
168
|
+
"isolate",
|
|
169
|
+
"prefer",
|
|
170
|
+
"prioritize",
|
|
171
|
+
"consider",
|
|
172
|
+
"evaluate",
|
|
173
|
+
"compare",
|
|
174
|
+
"measure",
|
|
175
|
+
"schedule",
|
|
176
|
+
"watch",
|
|
177
|
+
"build",
|
|
178
|
+
"configure",
|
|
179
|
+
"enable",
|
|
180
|
+
"define",
|
|
181
|
+
"wrap",
|
|
182
|
+
"cache",
|
|
183
|
+
"query",
|
|
184
|
+
"disable",
|
|
185
|
+
"expose",
|
|
186
|
+
"update",
|
|
187
|
+
"read",
|
|
188
|
+
"write",
|
|
189
|
+
"fetch",
|
|
190
|
+
"parse",
|
|
191
|
+
"handle",
|
|
192
|
+
"keep",
|
|
193
|
+
"limit",
|
|
194
|
+
"require",
|
|
195
|
+
"include",
|
|
196
|
+
"exclude",
|
|
197
|
+
"apply",
|
|
198
|
+
"deploy",
|
|
199
|
+
"migrate",
|
|
200
|
+
"start",
|
|
201
|
+
"stop",
|
|
202
|
+
];
|
|
203
|
+
if (!actionVerbs.some((v) => lessonStart.startsWith(v))) {
|
|
204
|
+
return { pass: false, reason: "lesson does not start with an action verb" };
|
|
205
|
+
}
|
|
206
|
+
// Check minimum field lengths (more strict than the 10-char check elsewhere)
|
|
207
|
+
if (insight.root_cause.length < 30) {
|
|
208
|
+
return { pass: false, reason: "root_cause too shallow (< 30 chars)" };
|
|
209
|
+
}
|
|
210
|
+
if (insight.lesson.length < 20) {
|
|
211
|
+
return { pass: false, reason: "lesson too short (< 20 chars)" };
|
|
212
|
+
}
|
|
213
|
+
// Lesson must name something concrete. A generic maxim with no file, component,
|
|
214
|
+
// version, identifier, or number is a platitude, not a project-specific lesson.
|
|
215
|
+
if (requireAnchor && !hasConcreteAnchor(insight.lesson)) {
|
|
216
|
+
return { pass: false, reason: "lesson has no concrete anchor (generic platitude)" };
|
|
217
|
+
}
|
|
218
|
+
return { pass: true };
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=reflection-gates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflection-gates.js","sourceRoot":"","sources":["../../../src/data/memory/reflection-gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflection source data — episode gathering, narrative building, and
|
|
3
|
+
* keyword extraction for the reflection pipeline.
|
|
4
|
+
*/
|
|
5
|
+
import type { Database } from "./schema.js";
|
|
6
|
+
import { type Episode } from "./episodes.js";
|
|
7
|
+
/** Build a time-ordered narrative from a list of episodes. */
|
|
8
|
+
export declare function buildNarrative(episodes: Episode[]): string;
|
|
9
|
+
/** Gather consolidated episodes: last N recent + random sample of older ones. */
|
|
10
|
+
export declare function gatherEpisodes(db: Database, threadId: number, maxRecent: number, oldSampleSize: number): Episode[];
|
|
11
|
+
/** Extract up to 5 meaningful keywords from free-text content. */
|
|
12
|
+
export declare function extractKeywords(text: string): string[];
|
|
13
|
+
//# sourceMappingURL=reflection-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflection-sources.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,eAAe,CAAC;AAS3D,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAO1D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,EAAE,CA+BX;AA2DD,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflection source data — episode gathering, narrative building, and
|
|
3
|
+
* keyword extraction for the reflection pipeline.
|
|
4
|
+
*/
|
|
5
|
+
import { rowToEpisode } from "./episodes.js";
|
|
6
|
+
/** Extract text from an episode's content object. */
|
|
7
|
+
function episodeText(ep) {
|
|
8
|
+
const c = ep.content;
|
|
9
|
+
if (typeof c === "string")
|
|
10
|
+
return c;
|
|
11
|
+
return c.text ?? c.caption ?? JSON.stringify(c);
|
|
12
|
+
}
|
|
13
|
+
/** Build a time-ordered narrative from a list of episodes. */
|
|
14
|
+
export function buildNarrative(episodes) {
|
|
15
|
+
return episodes
|
|
16
|
+
.sort((a, b) => a.timestamp.localeCompare(b.timestamp))
|
|
17
|
+
.map((ep) => `[${ep.episodeId}] (${ep.type}/${ep.modality}, ${ep.timestamp}) ${episodeText(ep)}`)
|
|
18
|
+
.join("\n");
|
|
19
|
+
}
|
|
20
|
+
/** Gather consolidated episodes: last N recent + random sample of older ones. */
|
|
21
|
+
export function gatherEpisodes(db, threadId, maxRecent, oldSampleSize) {
|
|
22
|
+
// Recent consolidated episodes
|
|
23
|
+
const recentRows = db
|
|
24
|
+
.prepare(`SELECT * FROM episodes
|
|
25
|
+
WHERE thread_id = ? AND consolidated = 1
|
|
26
|
+
ORDER BY timestamp DESC
|
|
27
|
+
LIMIT ?`)
|
|
28
|
+
.all(threadId, maxRecent);
|
|
29
|
+
const recentIds = new Set(recentRows.map((r) => r.episode_id));
|
|
30
|
+
// Random sample of older consolidated episodes from the past 7 days
|
|
31
|
+
// (excluding the ones already in the recent set)
|
|
32
|
+
const olderRows = db
|
|
33
|
+
.prepare(`SELECT * FROM episodes
|
|
34
|
+
WHERE thread_id = ? AND consolidated = 1
|
|
35
|
+
AND timestamp >= datetime('now', '-7 days')
|
|
36
|
+
ORDER BY RANDOM()
|
|
37
|
+
LIMIT ?`)
|
|
38
|
+
.all(threadId, oldSampleSize + recentRows.length);
|
|
39
|
+
const olderFiltered = olderRows
|
|
40
|
+
.filter((r) => !recentIds.has(r.episode_id))
|
|
41
|
+
.slice(0, oldSampleSize);
|
|
42
|
+
const allRows = [...recentRows, ...olderFiltered];
|
|
43
|
+
return allRows.map(rowToEpisode);
|
|
44
|
+
}
|
|
45
|
+
// ─── Keyword extraction ──────────────────────────────────────────────────────
|
|
46
|
+
const STOP_WORDS = new Set([
|
|
47
|
+
"this",
|
|
48
|
+
"that",
|
|
49
|
+
"with",
|
|
50
|
+
"from",
|
|
51
|
+
"have",
|
|
52
|
+
"been",
|
|
53
|
+
"will",
|
|
54
|
+
"would",
|
|
55
|
+
"could",
|
|
56
|
+
"should",
|
|
57
|
+
"about",
|
|
58
|
+
"there",
|
|
59
|
+
"their",
|
|
60
|
+
"which",
|
|
61
|
+
"when",
|
|
62
|
+
"what",
|
|
63
|
+
"were",
|
|
64
|
+
"they",
|
|
65
|
+
"than",
|
|
66
|
+
"then",
|
|
67
|
+
"also",
|
|
68
|
+
"just",
|
|
69
|
+
"more",
|
|
70
|
+
"some",
|
|
71
|
+
"into",
|
|
72
|
+
"over",
|
|
73
|
+
"after",
|
|
74
|
+
"before",
|
|
75
|
+
"other",
|
|
76
|
+
"very",
|
|
77
|
+
"your",
|
|
78
|
+
"here",
|
|
79
|
+
"does",
|
|
80
|
+
"because",
|
|
81
|
+
"instead",
|
|
82
|
+
"agent",
|
|
83
|
+
"operator",
|
|
84
|
+
"the",
|
|
85
|
+
"and",
|
|
86
|
+
"for",
|
|
87
|
+
"are",
|
|
88
|
+
"but",
|
|
89
|
+
"not",
|
|
90
|
+
"you",
|
|
91
|
+
"all",
|
|
92
|
+
"can",
|
|
93
|
+
"had",
|
|
94
|
+
"her",
|
|
95
|
+
"was",
|
|
96
|
+
"one",
|
|
97
|
+
"our",
|
|
98
|
+
"out",
|
|
99
|
+
]);
|
|
100
|
+
/** Extract up to 5 meaningful keywords from free-text content. */
|
|
101
|
+
export function extractKeywords(text) {
|
|
102
|
+
const words = text
|
|
103
|
+
.toLowerCase()
|
|
104
|
+
.replace(/[^a-z0-9\s]/g, " ")
|
|
105
|
+
.split(/\s+/)
|
|
106
|
+
.filter((w) => w.length > 3 && !STOP_WORDS.has(w));
|
|
107
|
+
const freq = new Map();
|
|
108
|
+
for (const w of words)
|
|
109
|
+
freq.set(w, (freq.get(w) ?? 0) + 1);
|
|
110
|
+
return [...freq.entries()]
|
|
111
|
+
.sort((a, b) => b[1] - a[1])
|
|
112
|
+
.slice(0, 5)
|
|
113
|
+
.map(([w]) => w);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=reflection-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflection-sources.js","sourceRoot":"","sources":["../../../src/data/memory/reflection-sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
* finds causal chains, recurring patterns, counterfactuals, and
|
|
7
7
|
* self-assessments across episodes. It runs post-consolidation when
|
|
8
8
|
* enough episodes exist, rate-limited to once per 4 hours.
|
|
9
|
+
*
|
|
10
|
+
* Split into: reflection-gates (quality/structural gates + field parsing),
|
|
11
|
+
* reflection-dedup (embedding-based duplicate checks), reflection-sources
|
|
12
|
+
* (episode gathering, narrative building, keyword extraction). This module
|
|
13
|
+
* keeps the orchestrating pipeline and buffer maintenance.
|
|
9
14
|
*/
|
|
10
15
|
import type { Database } from "./schema.js";
|
|
11
16
|
interface ReflectionInsight {
|
|
@@ -19,41 +24,6 @@ interface ReflectionResult {
|
|
|
19
24
|
processedEpisodeCount: number;
|
|
20
25
|
duration: number;
|
|
21
26
|
}
|
|
22
|
-
/** Check if an insight passes the quality gate (actionable, specific, non-vague, non-meta). */
|
|
23
|
-
export declare function passesQualityGate(content: string, confidence: number): {
|
|
24
|
-
pass: boolean;
|
|
25
|
-
reason?: string;
|
|
26
|
-
};
|
|
27
|
-
/** Parse reflection content into structured fields. Returns null if parsing fails. */
|
|
28
|
-
export declare function parseReflectionFields(content: string): {
|
|
29
|
-
decision: string;
|
|
30
|
-
context: string;
|
|
31
|
-
outcome: string;
|
|
32
|
-
root_cause: string;
|
|
33
|
-
lesson: string;
|
|
34
|
-
} | null;
|
|
35
|
-
/** True if the text names something specific rather than being an abstract platitude. */
|
|
36
|
-
export declare function hasConcreteAnchor(text: string): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Validate structural integrity of parsed insight fields.
|
|
39
|
-
*
|
|
40
|
-
* `requireAnchor` gates the lesson on a concrete anchor (identifier/file/version).
|
|
41
|
-
* It defaults ON for the generation path (reject new platitudes). The existing-notes
|
|
42
|
-
* cleanup sweep passes it OFF so tightening the anchor rule never retroactively
|
|
43
|
-
* expires historical reflections — legacy cleanup is a separate, backed-up step.
|
|
44
|
-
*/
|
|
45
|
-
export declare function passesStructuralGate(insight: {
|
|
46
|
-
decision: string;
|
|
47
|
-
context: string;
|
|
48
|
-
outcome: string;
|
|
49
|
-
root_cause: string;
|
|
50
|
-
lesson: string;
|
|
51
|
-
}, options?: {
|
|
52
|
-
requireAnchor?: boolean;
|
|
53
|
-
}): {
|
|
54
|
-
pass: boolean;
|
|
55
|
-
reason?: string;
|
|
56
|
-
};
|
|
57
27
|
/**
|
|
58
28
|
* Run the reflection pipeline on recent consolidated episodes.
|
|
59
29
|
* Generates deeper insights beyond simple fact/preference extraction.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../../src/data/memory/reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwB5C,UAAU,iBAAiB;IACzB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+ED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,gBAAgB,CAAC,CA4B3B"}
|