sensorium-mcp 3.0.103 → 3.1.0-board.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/Install-Sensorium.ps1 +113 -20
- package/README.md +25 -0
- package/dist/config/agent-settings.d.ts +82 -0
- package/dist/config/agent-settings.d.ts.map +1 -0
- package/dist/config/agent-settings.js +261 -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/detail-grant.d.ts +39 -0
- package/dist/config/detail-grant.d.ts.map +1 -0
- package/dist/config/detail-grant.js +61 -0
- package/dist/config/detail-grant.js.map +1 -0
- package/dist/config/index.d.ts +17 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +59 -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 +48 -0
- package/dist/config/misc-settings.d.ts.map +1 -0
- package/dist/config/misc-settings.js +168 -0
- package/dist/config/misc-settings.js.map +1 -0
- package/dist/config/settings-store.d.ts +49 -0
- package/dist/config/settings-store.d.ts.map +1 -0
- package/dist/config/settings-store.js +203 -0
- package/dist/config/settings-store.js.map +1 -0
- package/dist/dashboard/log-parser.d.ts +3 -0
- package/dist/dashboard/log-parser.d.ts.map +1 -1
- package/dist/dashboard/log-parser.js +49 -5
- 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/board.d.ts +67 -0
- package/dist/dashboard/routes/board.d.ts.map +1 -0
- package/dist/dashboard/routes/board.js +612 -0
- package/dist/dashboard/routes/board.js.map +1 -0
- package/dist/dashboard/routes/claude.d.ts.map +1 -1
- package/dist/dashboard/routes/claude.js +14 -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 +32 -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 +2 -0
- package/dist/dashboard/routes/settings.d.ts.map +1 -1
- package/dist/dashboard/routes/settings.js +29 -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 +125 -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 +44 -500
- package/dist/dashboard/routes/threads.js.map +1 -1
- package/dist/dashboard/routes/types.d.ts +6 -0
- 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 +55 -10
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/spa.html +12 -12
- package/dist/data/board/board-schema.d.ts +22 -0
- package/dist/data/board/board-schema.d.ts.map +1 -0
- package/dist/data/board/board-schema.js +103 -0
- package/dist/data/board/board-schema.js.map +1 -0
- package/dist/data/board/board-types.d.ts +117 -0
- package/dist/data/board/board-types.d.ts.map +1 -0
- package/dist/data/board/board-types.js +9 -0
- package/dist/data/board/board-types.js.map +1 -0
- package/dist/data/board/card.repository.d.ts +64 -0
- package/dist/data/board/card.repository.d.ts.map +1 -0
- package/dist/data/board/card.repository.js +272 -0
- package/dist/data/board/card.repository.js.map +1 -0
- package/dist/data/board/comment.repository.d.ts +12 -0
- package/dist/data/board/comment.repository.d.ts.map +1 -0
- package/dist/data/board/comment.repository.js +31 -0
- package/dist/data/board/comment.repository.js.map +1 -0
- package/dist/data/board/lane.repository.d.ts +18 -0
- package/dist/data/board/lane.repository.d.ts.map +1 -0
- package/dist/data/board/lane.repository.js +44 -0
- package/dist/data/board/lane.repository.js.map +1 -0
- package/dist/data/board/profile-defaults.d.ts +19 -0
- package/dist/data/board/profile-defaults.d.ts.map +1 -0
- package/dist/data/board/profile-defaults.js +118 -0
- package/dist/data/board/profile-defaults.js.map +1 -0
- 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 +8 -1
- package/dist/data/memory/bootstrap.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.js +76 -28
- package/dist/data/memory/bootstrap.js.map +1 -1
- package/dist/data/memory/consolidation.d.ts +9 -4
- package/dist/data/memory/consolidation.d.ts.map +1 -1
- package/dist/data/memory/consolidation.js +38 -17
- 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 +27 -14
- package/dist/data/memory/index.d.ts.map +1 -1
- package/dist/data/memory/index.js +27 -14
- package/dist/data/memory/index.js.map +1 -1
- package/dist/data/memory/migration-runner.d.ts +25 -2
- package/dist/data/memory/migration-runner.d.ts.map +1 -1
- package/dist/data/memory/migration-runner.js +110 -16
- 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 +35 -521
- package/dist/data/memory/narrative.js.map +1 -1
- package/dist/data/memory/note-archival.d.ts +42 -0
- package/dist/data/memory/note-archival.d.ts.map +1 -0
- package/dist/data/memory/note-archival.js +77 -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 +32 -332
- package/dist/data/memory/reflection.js.map +1 -1
- package/dist/data/memory/schema-ddl.d.ts +2 -2
- package/dist/data/memory/schema-ddl.d.ts.map +1 -1
- package/dist/data/memory/schema-ddl.js +13 -11
- 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 +8 -2
- package/dist/data/memory/schema.js.map +1 -1
- package/dist/data/memory/semantic-notes.d.ts +120 -0
- package/dist/data/memory/semantic-notes.d.ts.map +1 -0
- package/dist/data/memory/semantic-notes.js +330 -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 +158 -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 +91 -37
- package/dist/data/memory/thread-registry.js.map +1 -1
- package/dist/data/memory/topic-shift.js +3 -3
- 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 +135 -38
- package/dist/index.js.map +1 -1
- package/dist/integrations/openai/chat.d.ts +7 -1
- package/dist/integrations/openai/chat.d.ts.map +1 -1
- package/dist/integrations/openai/chat.js +24 -7
- package/dist/integrations/openai/chat.js.map +1 -1
- package/dist/integrations/openai/speech.d.ts +5 -2
- package/dist/integrations/openai/speech.d.ts.map +1 -1
- package/dist/integrations/openai/speech.js +7 -4
- 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/integrations/telegram/types.d.ts +9 -0
- package/dist/integrations/telegram/types.d.ts.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/{logger.js → lib/logger.js} +98 -52
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/markdown.d.ts +13 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/{markdown.js → lib/markdown.js} +58 -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/usage-metering/index.d.ts +13 -0
- package/dist/lib/usage-metering/index.d.ts.map +1 -0
- package/dist/lib/usage-metering/index.js +10 -0
- package/dist/lib/usage-metering/index.js.map +1 -0
- package/dist/lib/usage-metering/meter.d.ts +34 -0
- package/dist/lib/usage-metering/meter.d.ts.map +1 -0
- package/dist/lib/usage-metering/meter.js +28 -0
- package/dist/lib/usage-metering/meter.js.map +1 -0
- package/dist/lib/usage-metering/pricing.d.ts +39 -0
- package/dist/lib/usage-metering/pricing.d.ts.map +1 -0
- package/dist/lib/usage-metering/pricing.js +49 -0
- package/dist/lib/usage-metering/pricing.js.map +1 -0
- package/dist/lib/usage-metering/sink.d.ts +24 -0
- package/dist/lib/usage-metering/sink.d.ts.map +1 -0
- package/dist/lib/usage-metering/sink.js +56 -0
- package/dist/lib/usage-metering/sink.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 +176 -84
- package/dist/server/factory.js.map +1 -1
- package/dist/{http-server.d.ts → server/http-server.d.ts} +6 -3
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/{http-server.js → server/http-server.js} +92 -24
- 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 +4 -4
- package/dist/services/agent-spawn.service.d.ts.map +1 -1
- package/dist/services/agent-spawn.service.js +30 -14
- 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 +13 -4
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/board/board-signals.d.ts +25 -0
- package/dist/services/board/board-signals.d.ts.map +1 -0
- package/dist/services/board/board-signals.js +83 -0
- package/dist/services/board/board-signals.js.map +1 -0
- package/dist/services/board/card-briefing.d.ts +17 -0
- package/dist/services/board/card-briefing.d.ts.map +1 -0
- package/dist/services/board/card-briefing.js +86 -0
- package/dist/services/board/card-briefing.js.map +1 -0
- package/dist/services/board/orchestrator.service.d.ts +55 -0
- package/dist/services/board/orchestrator.service.d.ts.map +1 -0
- package/dist/services/board/orchestrator.service.js +198 -0
- package/dist/services/board/orchestrator.service.js.map +1 -0
- package/dist/services/board/release-worker.d.ts +32 -0
- package/dist/services/board/release-worker.d.ts.map +1 -0
- package/dist/services/board/release-worker.js +49 -0
- package/dist/services/board/release-worker.js.map +1 -0
- package/dist/services/board/report-capture.d.ts +48 -0
- package/dist/services/board/report-capture.d.ts.map +1 -0
- package/dist/services/board/report-capture.js +172 -0
- package/dist/services/board/report-capture.js.map +1 -0
- package/dist/services/board/worker-spawn.d.ts +30 -0
- package/dist/services/board/worker-spawn.d.ts.map +1 -0
- package/dist/services/board/worker-spawn.js +90 -0
- package/dist/services/board/worker-spawn.js.map +1 -0
- package/dist/services/broker-client.d.ts +181 -0
- package/dist/services/broker-client.d.ts.map +1 -0
- package/dist/services/broker-client.js +323 -0
- package/dist/services/broker-client.js.map +1 -0
- package/dist/services/claude-spawn.service.d.ts +1 -1
- package/dist/services/claude-spawn.service.d.ts.map +1 -1
- package/dist/services/claude-spawn.service.js +138 -55
- package/dist/services/claude-spawn.service.js.map +1 -1
- package/dist/services/codex-spawn.service.d.ts +1 -1
- package/dist/services/codex-spawn.service.d.ts.map +1 -1
- package/dist/services/codex-spawn.service.js +54 -47
- 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 +99 -352
- package/dist/services/consolidation.service.js.map +1 -1
- package/dist/services/copilot-spawn.service.d.ts +1 -1
- package/dist/services/copilot-spawn.service.d.ts.map +1 -1
- package/dist/services/copilot-spawn.service.js +105 -59
- 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 +10 -9
- package/dist/services/dispatcher/broker.d.ts.map +1 -1
- package/dist/services/dispatcher/broker.js +67 -47
- 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 +112 -53
- 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/flight-recorder.service.d.ts +37 -0
- package/dist/services/flight-recorder.service.d.ts.map +1 -0
- package/dist/services/flight-recorder.service.js +211 -0
- package/dist/services/flight-recorder.service.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 +10 -1
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +303 -43
- 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 +179 -0
- package/dist/services/memory-pruning.service.js.map +1 -0
- package/dist/services/passive-notice.service.d.ts +39 -0
- package/dist/services/passive-notice.service.d.ts.map +1 -0
- package/dist/services/passive-notice.service.js +274 -0
- package/dist/services/passive-notice.service.js.map +1 -0
- package/dist/services/process.service.d.ts +43 -9
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +184 -309
- 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} +2 -23
- package/dist/services/scheduler.d.ts.map +1 -0
- package/dist/{scheduler.js → services/scheduler.js} +72 -19
- package/dist/services/scheduler.js.map +1 -0
- package/dist/services/self-update.service.d.ts +26 -5
- package/dist/services/self-update.service.d.ts.map +1 -1
- package/dist/services/self-update.service.js +208 -95
- package/dist/services/self-update.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts +67 -17
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +403 -50
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/spawn-exit-watcher.d.ts +32 -0
- package/dist/services/spawn-exit-watcher.d.ts.map +1 -0
- package/dist/services/spawn-exit-watcher.js +102 -0
- package/dist/services/spawn-exit-watcher.js.map +1 -0
- 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 +19 -1
- package/dist/services/thread-health.service.d.ts.map +1 -1
- package/dist/services/thread-health.service.js +101 -17
- 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 +26 -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 +21 -3
- package/dist/services/worker-cleanup.service.d.ts.map +1 -1
- package/dist/services/worker-cleanup.service.js +343 -90
- 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} +9 -60
- package/dist/sessions/mcp-registry.d.ts.map +1 -0
- package/dist/{sessions.js → sessions/mcp-registry.js} +13 -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 +24 -17
- 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 +4 -3
- 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 +3 -3
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +177 -45
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +3 -3
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +111 -40
- 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 +51 -32
- 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 +47 -29
- 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 +58 -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 +25 -13
- 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 +18 -9
- package/dist/tools/wait/media-processor.js.map +1 -1
- package/dist/tools/wait/message-delivery.d.ts +15 -5
- package/dist/tools/wait/message-delivery.d.ts.map +1 -1
- package/dist/tools/wait/message-delivery.js +138 -38
- 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 +101 -24
- 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 +12 -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/templates/swarm.default.md +4 -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 +0 -158
- 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 +0 -26
- 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/{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
package/Install-Sensorium.ps1
CHANGED
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
.SYNOPSIS
|
|
4
4
|
Install or update sensorium-supervisor from GitHub Releases.
|
|
5
5
|
.DESCRIPTION
|
|
6
|
-
Downloads the
|
|
7
|
-
(
|
|
8
|
-
|
|
6
|
+
Downloads the sensorium-supervisor release binary from GitHub Releases
|
|
7
|
+
(repo: andriyshevchenko/sensorium-mcp) and places it in
|
|
8
|
+
~/.remote-copilot-mcp/bin/ as sensorium-supervisor.exe.
|
|
9
|
+
|
|
10
|
+
The release channel follows the SAME switch as the MCP server: the tag in
|
|
11
|
+
MCPStartCommand ("npx -y sensorium-mcp@<tag>"). @latest -> supervisor-latest
|
|
12
|
+
(stable, built from main); @refactor -> supervisor-refactor (built from the
|
|
13
|
+
refactor branch). One edit to install.config.json flips both node + supervisor.
|
|
9
14
|
|
|
10
15
|
All configuration is read from ~/.remote-copilot-mcp/install.config.json.
|
|
11
16
|
Edit that file to change settings. Defaults are written on first run.
|
|
@@ -13,13 +18,20 @@
|
|
|
13
18
|
.\Install-Sensorium.ps1
|
|
14
19
|
#>
|
|
15
20
|
|
|
21
|
+
param(
|
|
22
|
+
# Internal: used when the script re-invokes itself via `securevault run` so the
|
|
23
|
+
# release fetch + download happens inside a child process with the profile's
|
|
24
|
+
# token injected as an env var. Not intended for direct use.
|
|
25
|
+
[switch]$SyncReleaseOnly
|
|
26
|
+
)
|
|
27
|
+
|
|
16
28
|
$ErrorActionPreference = "Stop"
|
|
17
29
|
|
|
18
30
|
# ── Constants ────────────────────────────────────────────────────────────────
|
|
19
31
|
$GithubRepo = "andriyshevchenko/sensorium-mcp"
|
|
20
|
-
$ReleaseTag = "supervisor-latest"
|
|
21
32
|
$AssetName = "sensorium-supervisor-windows-amd64.exe"
|
|
22
33
|
$InstalledBinaryName = "sensorium-supervisor.exe"
|
|
34
|
+
# $ReleaseTag is resolved from the MCPStartCommand channel after config load.
|
|
23
35
|
|
|
24
36
|
$DataDir = Join-Path $env:USERPROFILE ".remote-copilot-mcp"
|
|
25
37
|
$BinDir = Join-Path $DataDir "bin"
|
|
@@ -67,6 +79,15 @@ $SecureVaultProfile = $Config["SecureVaultProfile"]
|
|
|
67
79
|
$UpdateMode = $Config["UpdateMode"]
|
|
68
80
|
$EffectiveMCPStartCommand = $Config["MCPStartCommand"]
|
|
69
81
|
|
|
82
|
+
# Resolve the supervisor release channel from the same tag the node server
|
|
83
|
+
# follows: the "@<tag>" in MCPStartCommand. Only @refactor uses the branch
|
|
84
|
+
# build; everything else (incl. @latest, a bare version pin, or no tag) stays
|
|
85
|
+
# on the stable supervisor-latest release. This keeps the stable rollback path
|
|
86
|
+
# intact — pointing the config back at @latest restores the main supervisor.
|
|
87
|
+
$mcpTag = if ($EffectiveMCPStartCommand -match 'sensorium-mcp@([A-Za-z0-9._-]+)') { $Matches[1] } else { "latest" }
|
|
88
|
+
$ReleaseTag = if ($mcpTag -eq "refactor") { "supervisor-refactor" } else { "supervisor-latest" }
|
|
89
|
+
Write-Host "Supervisor channel: $ReleaseTag (from MCP tag '$mcpTag')" -ForegroundColor Cyan
|
|
90
|
+
|
|
70
91
|
# Validate config values
|
|
71
92
|
if ($UpdateMode -notin @("production", "development")) {
|
|
72
93
|
Write-Host "[WARN] Invalid UpdateMode '$UpdateMode' in config — falling back to 'production'" -ForegroundColor Yellow
|
|
@@ -87,15 +108,43 @@ function Stop-SupervisorProcess {
|
|
|
87
108
|
}
|
|
88
109
|
}
|
|
89
110
|
|
|
111
|
+
function Get-GithubAuthHeaders {
|
|
112
|
+
param([string]$Accept = "application/vnd.github+json")
|
|
113
|
+
|
|
114
|
+
$headers = @{
|
|
115
|
+
"User-Agent" = "Install-Sensorium.ps1"
|
|
116
|
+
"Accept" = $Accept
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
# Dedicated env var so it never collides with `gh` CLI's own GH_TOKEN/GITHUB_TOKEN,
|
|
120
|
+
# which may be logged into a different (e.g. corporate) account.
|
|
121
|
+
$token = $env:SENSORIUM_GH_TOKEN
|
|
122
|
+
if ([string]::IsNullOrWhiteSpace($token)) {
|
|
123
|
+
$token = $env:GH_TOKEN
|
|
124
|
+
}
|
|
125
|
+
if ([string]::IsNullOrWhiteSpace($token)) {
|
|
126
|
+
$token = $env:GITHUB_TOKEN
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (-not [string]::IsNullOrWhiteSpace($token)) {
|
|
130
|
+
$headers["Authorization"] = "Bearer $token"
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return $headers
|
|
134
|
+
}
|
|
135
|
+
|
|
90
136
|
function Get-ReleaseAssetInfo {
|
|
91
137
|
$apiUrl = "https://api.github.com/repos/$GithubRepo/releases/tags/$ReleaseTag"
|
|
92
138
|
Write-Host "Fetching release info from GitHub..."
|
|
93
139
|
|
|
94
|
-
$headers =
|
|
140
|
+
$headers = Get-GithubAuthHeaders
|
|
95
141
|
try {
|
|
96
142
|
$release = Invoke-RestMethod -Uri $apiUrl -Headers $headers -ErrorAction Stop
|
|
97
143
|
}
|
|
98
144
|
catch {
|
|
145
|
+
if ($_.Exception.Response -and [int]$_.Exception.Response.StatusCode -in @(401, 403, 404)) {
|
|
146
|
+
throw "Failed to fetch GitHub release info ($($_.Exception.Response.StatusCode)). If the repo is private, set `$env:SENSORIUM_GH_TOKEN to a personal access token with read access to '$GithubRepo'. Original error: $_"
|
|
147
|
+
}
|
|
99
148
|
throw "Failed to fetch GitHub release info: $_"
|
|
100
149
|
}
|
|
101
150
|
|
|
@@ -111,7 +160,6 @@ function Get-ReleaseAssetInfo {
|
|
|
111
160
|
AssetName = $asset.name
|
|
112
161
|
AssetSize = [int64]$asset.size
|
|
113
162
|
AssetUpdatedAt = $asset.updated_at
|
|
114
|
-
DownloadUrl = $asset.browser_download_url
|
|
115
163
|
}
|
|
116
164
|
}
|
|
117
165
|
|
|
@@ -174,15 +222,22 @@ function Get-BinaryAsset {
|
|
|
174
222
|
[pscustomobject]$AssetInfo
|
|
175
223
|
)
|
|
176
224
|
|
|
177
|
-
|
|
178
|
-
|
|
225
|
+
# For private repos, `browser_download_url` only works unauthenticated when the repo is
|
|
226
|
+
# public. Use the authenticated assets API endpoint (with an octet-stream Accept header)
|
|
227
|
+
# so a personal access token in $env:SENSORIUM_GH_TOKEN can pull private-repo releases.
|
|
228
|
+
$downloadUrl = "https://api.github.com/repos/$GithubRepo/releases/assets/$($AssetInfo.AssetId)"
|
|
229
|
+
$headers = Get-GithubAuthHeaders -Accept "application/octet-stream"
|
|
230
|
+
Write-Host "Downloading $($AssetInfo.AssetName) ..."
|
|
179
231
|
|
|
180
232
|
$tmpFile = "$Destination.tmp"
|
|
181
233
|
try {
|
|
182
|
-
Invoke-WebRequest -Uri $downloadUrl -OutFile $tmpFile -UseBasicParsing -ErrorAction Stop
|
|
234
|
+
Invoke-WebRequest -Uri $downloadUrl -Headers $headers -OutFile $tmpFile -UseBasicParsing -ErrorAction Stop
|
|
183
235
|
}
|
|
184
236
|
catch {
|
|
185
237
|
if (Test-Path $tmpFile) { Remove-Item $tmpFile -Force }
|
|
238
|
+
if ($_.Exception.Response -and [int]$_.Exception.Response.StatusCode -in @(401, 403, 404)) {
|
|
239
|
+
throw "Download failed ($($_.Exception.Response.StatusCode)). If the repo is private, set `$env:SENSORIUM_GH_TOKEN to a personal access token with read access to '$GithubRepo'. Original error: $_"
|
|
240
|
+
}
|
|
186
241
|
throw "Download failed: $_"
|
|
187
242
|
}
|
|
188
243
|
|
|
@@ -260,7 +315,7 @@ function Start-Supervisor {
|
|
|
260
315
|
if ($useSecureVault) {
|
|
261
316
|
Write-Host "Starting sensorium-supervisor via SecureVault (profile: $SecureVaultProfile)..."
|
|
262
317
|
try {
|
|
263
|
-
securevault run "`"$Binary`"" --profile $SecureVaultProfile --
|
|
318
|
+
securevault run "`"$Binary`"" --profile $SecureVaultProfile --detach
|
|
264
319
|
}
|
|
265
320
|
catch {
|
|
266
321
|
Write-Host "[ERROR] SecureVault launch failed: $($_.Exception.Message)" -ForegroundColor Red
|
|
@@ -281,7 +336,16 @@ function Start-Supervisor {
|
|
|
281
336
|
Write-Host "Starting sensorium-supervisor (secrets from .env)..."
|
|
282
337
|
Start-Process -FilePath $Binary -WindowStyle Hidden
|
|
283
338
|
}
|
|
284
|
-
|
|
339
|
+
|
|
340
|
+
# Poll briefly instead of a single fixed sleep — the detached launch chain
|
|
341
|
+
# (securevault's node process -> shell -> the actual .exe) can take longer
|
|
342
|
+
# than a couple seconds to actually spawn the binary, especially on a cold
|
|
343
|
+
# start. Avoids a spurious "process not found" right after a real launch.
|
|
344
|
+
$deadline = (Get-Date).AddSeconds(10)
|
|
345
|
+
while ((Get-Date) -lt $deadline) {
|
|
346
|
+
if (Get-Process -Name "sensorium-supervisor" -ErrorAction SilentlyContinue) { break }
|
|
347
|
+
Start-Sleep -Milliseconds 500
|
|
348
|
+
}
|
|
285
349
|
}
|
|
286
350
|
|
|
287
351
|
function Show-Status {
|
|
@@ -300,6 +364,43 @@ function Show-Status {
|
|
|
300
364
|
}
|
|
301
365
|
}
|
|
302
366
|
|
|
367
|
+
function Invoke-DirectReleaseSync {
|
|
368
|
+
$assetInfo = Get-ReleaseAssetInfo
|
|
369
|
+
$binaryUpToDate = Test-BinaryUpToDate -Destination $Binary -MetadataPath $BinaryMetadata -AssetInfo $assetInfo
|
|
370
|
+
|
|
371
|
+
if ($binaryUpToDate) {
|
|
372
|
+
Write-Host "Installed binary already matches release asset '$($assetInfo.AssetName)' - skipping download." -ForegroundColor Green
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
Get-BinaryAsset -Destination $Binary -MetadataPath $BinaryMetadata -AssetInfo $assetInfo
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
function Sync-ReleaseBinary {
|
|
380
|
+
$useSecureVault = (-not [string]::IsNullOrWhiteSpace($SecureVaultProfile)) -and (Test-SecureVaultAvailable)
|
|
381
|
+
|
|
382
|
+
if (-not $useSecureVault) {
|
|
383
|
+
Invoke-DirectReleaseSync
|
|
384
|
+
return
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
# Re-invoke this same script through SecureVault so the profile's GitHub token
|
|
388
|
+
# (mapped to env var SENSORIUM_GH_TOKEN) is injected only inside this child
|
|
389
|
+
# process — the outer script/session never sees it.
|
|
390
|
+
Write-Host "Fetching release via SecureVault (profile: $SecureVaultProfile)..."
|
|
391
|
+
securevault run pwsh -NoProfile -File "`"$PSCommandPath`"" -SyncReleaseOnly --profile $SecureVaultProfile
|
|
392
|
+
if ($LASTEXITCODE -ne 0) {
|
|
393
|
+
throw "SecureVault-driven release sync failed (exit $LASTEXITCODE). Ensure profile '$SecureVaultProfile' maps a GitHub PAT to env var SENSORIUM_GH_TOKEN."
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
if ($SyncReleaseOnly) {
|
|
398
|
+
# Running as the SecureVault-spawned child: the profile's token is already in the
|
|
399
|
+
# environment. Do the fetch/download directly (no re-entrant SecureVault call).
|
|
400
|
+
Invoke-DirectReleaseSync
|
|
401
|
+
return
|
|
402
|
+
}
|
|
403
|
+
|
|
303
404
|
# ── Main ─────────────────────────────────────────────────────────────────────
|
|
304
405
|
$alreadyExists = Test-Path $Binary
|
|
305
406
|
|
|
@@ -325,15 +426,7 @@ if ($alreadyExists) {
|
|
|
325
426
|
New-Item -ItemType Directory -Path $BinDir -Force | Out-Null
|
|
326
427
|
|
|
327
428
|
# Step 3 — fetch release metadata and download only when needed
|
|
328
|
-
|
|
329
|
-
$binaryUpToDate = Test-BinaryUpToDate -Destination $Binary -MetadataPath $BinaryMetadata -AssetInfo $assetInfo
|
|
330
|
-
|
|
331
|
-
if ($binaryUpToDate) {
|
|
332
|
-
Write-Host "Installed binary already matches release asset '$($assetInfo.AssetName)' - skipping download." -ForegroundColor Green
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
Get-BinaryAsset -Destination $Binary -MetadataPath $BinaryMetadata -AssetInfo $assetInfo
|
|
336
|
-
}
|
|
429
|
+
Sync-ReleaseBinary
|
|
337
430
|
|
|
338
431
|
# Step 4 — install launcher and start
|
|
339
432
|
Install-StartupLauncher
|
package/README.md
CHANGED
|
@@ -210,6 +210,31 @@ When disabled, episodes are still stored locally but not sent to OpenAI.
|
|
|
210
210
|
|
|
211
211
|
## Architecture
|
|
212
212
|
|
|
213
|
+
### Source layout
|
|
214
|
+
|
|
215
|
+
`src/` is organized as a layered tree. Imports flow strictly downward (a module
|
|
216
|
+
may import only from its own layer or lower), enforced by an ESLint import
|
|
217
|
+
fence. `src/index.ts` is the only module outside the fence — the entry point
|
|
218
|
+
that wires everything together via dynamic imports.
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
bottom → top
|
|
222
|
+
lib → config → integrations → data, llm → sessions → services → tools, dashboard → server
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
| Layer | Contents |
|
|
226
|
+
|---|---|
|
|
227
|
+
| `lib/` | logger, shared types, utils, markdown conversion |
|
|
228
|
+
| `config/` | env parsing, settings store, paths |
|
|
229
|
+
| `integrations/` | external clients: Telegram Bot API, OpenAI |
|
|
230
|
+
| `data/`, `llm/` | SQLite memory (episodes → semantic notes → narratives); LLM prompts + JSON parsing |
|
|
231
|
+
| `sessions/` | name→thread mapping, MCP session registry |
|
|
232
|
+
| `services/` | orchestration: keeper, process/spawn, dispatcher, scheduler, consolidation, self-update |
|
|
233
|
+
| `tools/`, `dashboard/` | MCP tool handlers, dashboard API + SPA |
|
|
234
|
+
| `server/` | HTTP/SSE and stdio transports, server factory |
|
|
235
|
+
|
|
236
|
+
### Data directory
|
|
237
|
+
|
|
213
238
|
```
|
|
214
239
|
~/.remote-copilot-mcp/
|
|
215
240
|
memory.db <- SQLite: episodes, semantic notes, voice signatures, thread registry
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent client settings — agent type selection, default models, Copilot
|
|
3
|
+
* BYOK provider config, per-agent custom spawn env vars, and Claude spawn
|
|
4
|
+
* overrides (CLI path, OAuth token, git-bash path, concurrency cap).
|
|
5
|
+
*/
|
|
6
|
+
export type AgentType = "copilot" | "claude" | "codex" | "openai_codex" | "fable";
|
|
7
|
+
/** The single source of truth for the default agent type when none is configured. */
|
|
8
|
+
export declare const DEFAULT_AGENT_TYPE: AgentType;
|
|
9
|
+
export declare const VALID_AGENT_TYPES: readonly string[];
|
|
10
|
+
export declare function isValidAgentType(v: unknown): v is AgentType;
|
|
11
|
+
export declare function getAgentType(): AgentType;
|
|
12
|
+
export declare function setAgentType(type: AgentType): void;
|
|
13
|
+
export declare function getFableModel(): string;
|
|
14
|
+
export declare function getDefaultThreadModel(): string;
|
|
15
|
+
export declare function getDefaultWorkerModel(): string;
|
|
16
|
+
export declare function updateDefaultThreadModel(model: string): void;
|
|
17
|
+
export declare function updateDefaultWorkerModel(model: string): void;
|
|
18
|
+
export type CopilotProviderType = "openai" | "azure" | "anthropic";
|
|
19
|
+
/**
|
|
20
|
+
* "Bring Your Own Key" provider config for the Copilot CLI. When enabled and a
|
|
21
|
+
* baseUrl + apiKey are present, the Copilot child is spawned pointing at a
|
|
22
|
+
* custom OpenAI-compatible endpoint (OpenRouter, DeepSeek, Kimi, …) instead of
|
|
23
|
+
* GitHub-hosted models. GitHub authentication is not used in this mode.
|
|
24
|
+
*/
|
|
25
|
+
export interface CopilotByokConfig {
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
providerType: CopilotProviderType;
|
|
28
|
+
baseUrl: string;
|
|
29
|
+
apiKey: string;
|
|
30
|
+
/** Optional COPILOT_PROVIDER_MODEL_ID — well-known base model for tool-calling config. */
|
|
31
|
+
modelId: string;
|
|
32
|
+
/** Optional COPILOT_PROVIDER_WIRE_MODEL — actual model id sent on the wire. */
|
|
33
|
+
wireModel: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function isValidCopilotProviderType(v: unknown): v is CopilotProviderType;
|
|
36
|
+
/** Model passed to the Copilot CLI via --model / COPILOT_MODEL (native or BYOK). */
|
|
37
|
+
export declare function getCopilotModel(): string;
|
|
38
|
+
export declare function setCopilotModel(model: string): void;
|
|
39
|
+
/** Reasoning effort written to the Copilot CLI's settings.json (low/medium/high). */
|
|
40
|
+
export declare function getCopilotEffortLevel(): string;
|
|
41
|
+
export declare function setCopilotEffortLevel(level: string): void;
|
|
42
|
+
/** Context window tier written to the Copilot CLI's settings.json (normal/long_context). */
|
|
43
|
+
export declare function getCopilotContextTier(): string;
|
|
44
|
+
export declare function setCopilotContextTier(tier: string): void;
|
|
45
|
+
export declare function getCopilotByokConfig(): CopilotByokConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Merge a partial patch into the stored BYOK config and persist. The merged
|
|
48
|
+
* result is re-validated through normalizeByokConfig so the settings file can
|
|
49
|
+
* never hold an invalid providerType or non-string field, even though the input
|
|
50
|
+
* originates from the dashboard.
|
|
51
|
+
*/
|
|
52
|
+
export declare function setCopilotByokConfig(patch: Partial<CopilotByokConfig>): CopilotByokConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Assemble the environment variables that configure the Copilot CLI's model and
|
|
55
|
+
* (optionally) a custom BYOK provider. Values here are meant to override any
|
|
56
|
+
* inherited process.env at spawn time.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getCopilotSpawnEnv(): Record<string, string>;
|
|
59
|
+
export declare function getClaudeCustomEnvVars(): Record<string, string>;
|
|
60
|
+
export declare function setClaudeCustomEnvVars(vars: Record<string, string>): void;
|
|
61
|
+
export declare function getCopilotCustomEnvVars(): Record<string, string>;
|
|
62
|
+
export declare function setCopilotCustomEnvVars(vars: Record<string, string>): void;
|
|
63
|
+
/** Explicit path to the Claude CLI binary (settings only — env is read at the call site). */
|
|
64
|
+
export declare function getClaudeCliPath(): string | undefined;
|
|
65
|
+
export declare function setClaudeCliPath(path: string): void;
|
|
66
|
+
/** Long-lived Claude setup token used in place of the broken OAuth refresh flow. */
|
|
67
|
+
export declare function getClaudeOauthToken(): string | undefined;
|
|
68
|
+
export declare function setClaudeOauthToken(token: string): void;
|
|
69
|
+
/** Path to git-bash (Windows) passed to Claude via CLAUDE_CODE_GIT_BASH_PATH. */
|
|
70
|
+
export declare function getClaudeGitBashPath(): string | undefined;
|
|
71
|
+
export declare function setClaudeGitBashPath(path: string): void;
|
|
72
|
+
/** Maximum number of concurrent spawned threads. */
|
|
73
|
+
export declare function getMaxConcurrentThreads(): number;
|
|
74
|
+
export declare function setMaxConcurrentThreads(count: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Whether Claude Code's native auto-memory (MEMORY.md read/write) runs in spawned
|
|
77
|
+
* threads. Off by default — it conflicts with Sensorium's own memory system. Toggleable
|
|
78
|
+
* from the dashboard's Claude tab; applied to each thread's settings.json at spawn.
|
|
79
|
+
*/
|
|
80
|
+
export declare function getClaudeAutoMemoryEnabled(): boolean;
|
|
81
|
+
export declare function setClaudeAutoMemoryEnabled(enabled: boolean): void;
|
|
82
|
+
//# sourceMappingURL=agent-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-settings.d.ts","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent client settings — agent type selection, default models, Copilot
|
|
3
|
+
* BYOK provider config, per-agent custom spawn env vars, and Claude spawn
|
|
4
|
+
* overrides (CLI path, OAuth token, git-bash path, concurrency cap).
|
|
5
|
+
*/
|
|
6
|
+
import { readSettings, updateSettings } from "./settings-store.js";
|
|
7
|
+
/** The single source of truth for the default agent type when none is configured. */
|
|
8
|
+
export const DEFAULT_AGENT_TYPE = "claude";
|
|
9
|
+
export const VALID_AGENT_TYPES = [
|
|
10
|
+
"copilot",
|
|
11
|
+
"claude",
|
|
12
|
+
"codex",
|
|
13
|
+
"openai_codex",
|
|
14
|
+
"fable",
|
|
15
|
+
];
|
|
16
|
+
export function isValidAgentType(v) {
|
|
17
|
+
return typeof v === "string" && VALID_AGENT_TYPES.includes(v);
|
|
18
|
+
}
|
|
19
|
+
export function getAgentType() {
|
|
20
|
+
const t = readSettings().agentType;
|
|
21
|
+
return isValidAgentType(t) ? t : DEFAULT_AGENT_TYPE;
|
|
22
|
+
}
|
|
23
|
+
export function setAgentType(type) {
|
|
24
|
+
updateSettings((s) => {
|
|
25
|
+
s.agentType = type;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// ─── Default model settings ──────────────────────────────────────────────────
|
|
29
|
+
const DEFAULT_THREAD_MODEL = "claude-opus-4-6";
|
|
30
|
+
const DEFAULT_WORKER_MODEL = "claude-sonnet-4-6";
|
|
31
|
+
// Model for the experimental "fable" agent type — a Claude-CLI thread pinned to
|
|
32
|
+
// a distinct (premium) model. Overridable via settings.fableModel.
|
|
33
|
+
const DEFAULT_FABLE_MODEL = "claude-fable-5";
|
|
34
|
+
export function getFableModel() {
|
|
35
|
+
const v = readSettings().fableModel;
|
|
36
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_FABLE_MODEL;
|
|
37
|
+
}
|
|
38
|
+
export function getDefaultThreadModel() {
|
|
39
|
+
const v = readSettings().defaultThreadModel;
|
|
40
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_THREAD_MODEL;
|
|
41
|
+
}
|
|
42
|
+
export function getDefaultWorkerModel() {
|
|
43
|
+
const v = readSettings().defaultWorkerModel;
|
|
44
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_WORKER_MODEL;
|
|
45
|
+
}
|
|
46
|
+
export function updateDefaultThreadModel(model) {
|
|
47
|
+
updateSettings((s) => {
|
|
48
|
+
s.defaultThreadModel = model;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function updateDefaultWorkerModel(model) {
|
|
52
|
+
updateSettings((s) => {
|
|
53
|
+
s.defaultWorkerModel = model;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// ─── Copilot provider (BYOK / OpenRouter) settings ──────────────────────────
|
|
57
|
+
const DEFAULT_COPILOT_MODEL = "claude-opus-4-6";
|
|
58
|
+
const DEFAULT_COPILOT_EFFORT_LEVEL = "high";
|
|
59
|
+
const DEFAULT_COPILOT_CONTEXT_TIER = "long_context";
|
|
60
|
+
const DEFAULT_COPILOT_BYOK = {
|
|
61
|
+
enabled: false,
|
|
62
|
+
providerType: "openai",
|
|
63
|
+
baseUrl: "",
|
|
64
|
+
apiKey: "",
|
|
65
|
+
modelId: "",
|
|
66
|
+
wireModel: "",
|
|
67
|
+
};
|
|
68
|
+
export function isValidCopilotProviderType(v) {
|
|
69
|
+
return v === "openai" || v === "azure" || v === "anthropic";
|
|
70
|
+
}
|
|
71
|
+
/** Model passed to the Copilot CLI via --model / COPILOT_MODEL (native or BYOK). */
|
|
72
|
+
export function getCopilotModel() {
|
|
73
|
+
const v = readSettings().copilotModel;
|
|
74
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_COPILOT_MODEL;
|
|
75
|
+
}
|
|
76
|
+
export function setCopilotModel(model) {
|
|
77
|
+
updateSettings((s) => {
|
|
78
|
+
s.copilotModel = model;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** Reasoning effort written to the Copilot CLI's settings.json (low/medium/high). */
|
|
82
|
+
export function getCopilotEffortLevel() {
|
|
83
|
+
const v = readSettings().copilotEffortLevel;
|
|
84
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_COPILOT_EFFORT_LEVEL;
|
|
85
|
+
}
|
|
86
|
+
export function setCopilotEffortLevel(level) {
|
|
87
|
+
updateSettings((s) => {
|
|
88
|
+
s.copilotEffortLevel = level;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/** Context window tier written to the Copilot CLI's settings.json (normal/long_context). */
|
|
92
|
+
export function getCopilotContextTier() {
|
|
93
|
+
const v = readSettings().copilotContextTier;
|
|
94
|
+
return typeof v === "string" && v.length > 0 ? v : DEFAULT_COPILOT_CONTEXT_TIER;
|
|
95
|
+
}
|
|
96
|
+
export function setCopilotContextTier(tier) {
|
|
97
|
+
updateSettings((s) => {
|
|
98
|
+
s.copilotContextTier = tier;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/** Coerce an untrusted value into a fully-valid CopilotByokConfig, filling defaults. */
|
|
102
|
+
function normalizeByokConfig(raw) {
|
|
103
|
+
if (!raw || typeof raw !== "object")
|
|
104
|
+
return { ...DEFAULT_COPILOT_BYOK };
|
|
105
|
+
const e = raw;
|
|
106
|
+
return {
|
|
107
|
+
enabled: typeof e.enabled === "boolean" ? e.enabled : false,
|
|
108
|
+
providerType: isValidCopilotProviderType(e.providerType) ? e.providerType : "openai",
|
|
109
|
+
baseUrl: typeof e.baseUrl === "string" ? e.baseUrl : "",
|
|
110
|
+
apiKey: typeof e.apiKey === "string" ? e.apiKey : "",
|
|
111
|
+
modelId: typeof e.modelId === "string" ? e.modelId : "",
|
|
112
|
+
wireModel: typeof e.wireModel === "string" ? e.wireModel : "",
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function getCopilotByokConfig() {
|
|
116
|
+
return normalizeByokConfig(readSettings().copilotByok);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Merge a partial patch into the stored BYOK config and persist. The merged
|
|
120
|
+
* result is re-validated through normalizeByokConfig so the settings file can
|
|
121
|
+
* never hold an invalid providerType or non-string field, even though the input
|
|
122
|
+
* originates from the dashboard.
|
|
123
|
+
*/
|
|
124
|
+
export function setCopilotByokConfig(patch) {
|
|
125
|
+
const next = normalizeByokConfig({ ...getCopilotByokConfig(), ...patch });
|
|
126
|
+
updateSettings((s) => {
|
|
127
|
+
s.copilotByok = next;
|
|
128
|
+
});
|
|
129
|
+
return next;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Assemble the environment variables that configure the Copilot CLI's model and
|
|
133
|
+
* (optionally) a custom BYOK provider. Values here are meant to override any
|
|
134
|
+
* inherited process.env at spawn time.
|
|
135
|
+
*/
|
|
136
|
+
export function getCopilotSpawnEnv() {
|
|
137
|
+
const model = getCopilotModel();
|
|
138
|
+
const env = { COPILOT_MODEL: model };
|
|
139
|
+
const byok = getCopilotByokConfig();
|
|
140
|
+
if (byok.enabled && byok.baseUrl && byok.apiKey) {
|
|
141
|
+
env.COPILOT_PROVIDER_BASE_URL = byok.baseUrl;
|
|
142
|
+
env.COPILOT_PROVIDER_TYPE = byok.providerType;
|
|
143
|
+
env.COPILOT_PROVIDER_API_KEY = byok.apiKey;
|
|
144
|
+
env.COPILOT_PROVIDER_MODEL_ID = byok.modelId || model;
|
|
145
|
+
env.COPILOT_PROVIDER_WIRE_MODEL = byok.wireModel || model;
|
|
146
|
+
}
|
|
147
|
+
return env;
|
|
148
|
+
}
|
|
149
|
+
// ─── Custom spawn env vars (per agent) ──────────────────────────────────────
|
|
150
|
+
//
|
|
151
|
+
// Operator-supplied env vars merged into the respective agent's spawn env. They
|
|
152
|
+
// are stored per agent so a var set for Claude is never injected into Copilot
|
|
153
|
+
// (and vice-versa). Locked built-ins always win over these, and the spawn path
|
|
154
|
+
// strips any ENV_DENYLIST key so a custom var can't smuggle a secret/cross-agent
|
|
155
|
+
// value past the denylist.
|
|
156
|
+
/** Coerce untrusted input into a clean string→string map (trimmed non-empty keys). */
|
|
157
|
+
function normalizeCustomEnvVars(raw) {
|
|
158
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
159
|
+
return {};
|
|
160
|
+
const out = {};
|
|
161
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
162
|
+
const key = typeof k === "string" ? k.trim() : "";
|
|
163
|
+
if (key && typeof v === "string")
|
|
164
|
+
out[key] = v;
|
|
165
|
+
}
|
|
166
|
+
return out;
|
|
167
|
+
}
|
|
168
|
+
export function getClaudeCustomEnvVars() {
|
|
169
|
+
return normalizeCustomEnvVars(readSettings().claudeCustomEnvVars);
|
|
170
|
+
}
|
|
171
|
+
export function setClaudeCustomEnvVars(vars) {
|
|
172
|
+
updateSettings((s) => {
|
|
173
|
+
s.claudeCustomEnvVars = normalizeCustomEnvVars(vars);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
export function getCopilotCustomEnvVars() {
|
|
177
|
+
return normalizeCustomEnvVars(readSettings().copilotCustomEnvVars);
|
|
178
|
+
}
|
|
179
|
+
export function setCopilotCustomEnvVars(vars) {
|
|
180
|
+
updateSettings((s) => {
|
|
181
|
+
s.copilotCustomEnvVars = normalizeCustomEnvVars(vars);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
// ─── Claude spawn settings ──────────────────────────────────────────────────
|
|
185
|
+
//
|
|
186
|
+
// Overrides for values previously only discoverable from the environment or via
|
|
187
|
+
// auto-detection. Precedence is always env var → dashboard setting → autodetect,
|
|
188
|
+
// so setting an env var keeps the exact prior behavior and an unset setting is a
|
|
189
|
+
// no-op. Returns undefined when neither env nor setting supplies a value, letting
|
|
190
|
+
// the caller fall back to its existing auto-detection logic.
|
|
191
|
+
const DEFAULT_MAX_CONCURRENT_THREADS = 20;
|
|
192
|
+
function readStringSetting(key) {
|
|
193
|
+
const v = readSettings()[key];
|
|
194
|
+
return typeof v === "string" && v.length > 0 ? v : undefined;
|
|
195
|
+
}
|
|
196
|
+
/** Explicit path to the Claude CLI binary (settings only — env is read at the call site). */
|
|
197
|
+
export function getClaudeCliPath() {
|
|
198
|
+
return readStringSetting("claudeCliPath");
|
|
199
|
+
}
|
|
200
|
+
export function setClaudeCliPath(path) {
|
|
201
|
+
updateSettings((s) => {
|
|
202
|
+
if (path)
|
|
203
|
+
s.claudeCliPath = path;
|
|
204
|
+
else
|
|
205
|
+
delete s.claudeCliPath;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/** Long-lived Claude setup token used in place of the broken OAuth refresh flow. */
|
|
209
|
+
export function getClaudeOauthToken() {
|
|
210
|
+
return readStringSetting("claudeOauthToken");
|
|
211
|
+
}
|
|
212
|
+
export function setClaudeOauthToken(token) {
|
|
213
|
+
updateSettings((s) => {
|
|
214
|
+
if (token)
|
|
215
|
+
s.claudeOauthToken = token;
|
|
216
|
+
else
|
|
217
|
+
delete s.claudeOauthToken;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/** Path to git-bash (Windows) passed to Claude via CLAUDE_CODE_GIT_BASH_PATH. */
|
|
221
|
+
export function getClaudeGitBashPath() {
|
|
222
|
+
return readStringSetting("claudeGitBashPath");
|
|
223
|
+
}
|
|
224
|
+
export function setClaudeGitBashPath(path) {
|
|
225
|
+
updateSettings((s) => {
|
|
226
|
+
if (path)
|
|
227
|
+
s.claudeGitBashPath = path;
|
|
228
|
+
else
|
|
229
|
+
delete s.claudeGitBashPath;
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/** Maximum number of concurrent spawned threads. */
|
|
233
|
+
export function getMaxConcurrentThreads() {
|
|
234
|
+
const v = readSettings().maxConcurrentThreads;
|
|
235
|
+
if (typeof v === "number" && Number.isFinite(v) && v >= 1)
|
|
236
|
+
return Math.round(v);
|
|
237
|
+
return DEFAULT_MAX_CONCURRENT_THREADS;
|
|
238
|
+
}
|
|
239
|
+
export function setMaxConcurrentThreads(count) {
|
|
240
|
+
const clamped = Math.max(1, Math.round(count));
|
|
241
|
+
if (!Number.isFinite(clamped))
|
|
242
|
+
return;
|
|
243
|
+
updateSettings((s) => {
|
|
244
|
+
s.maxConcurrentThreads = clamped;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Whether Claude Code's native auto-memory (MEMORY.md read/write) runs in spawned
|
|
249
|
+
* threads. Off by default — it conflicts with Sensorium's own memory system. Toggleable
|
|
250
|
+
* from the dashboard's Claude tab; applied to each thread's settings.json at spawn.
|
|
251
|
+
*/
|
|
252
|
+
export function getClaudeAutoMemoryEnabled() {
|
|
253
|
+
const v = readSettings().claudeAutoMemoryEnabled;
|
|
254
|
+
return typeof v === "boolean" ? v : false;
|
|
255
|
+
}
|
|
256
|
+
export function setClaudeAutoMemoryEnabled(enabled) {
|
|
257
|
+
updateSettings((s) => {
|
|
258
|
+
s.claudeAutoMemoryEnabled = enabled;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=agent-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-settings.js","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom agent templates (reusable spawn presets).
|
|
3
|
+
*
|
|
4
|
+
* A template captures everything needed to stamp out a fresh root thread:
|
|
5
|
+
* client, working directory, an optional identity/system prompt, and optional
|
|
6
|
+
* per-thread MCP servers. Stored as an array in settings.json (no DB schema
|
|
7
|
+
* change). The dashboard "Agents" tab manages them; a Start action spawns a
|
|
8
|
+
* normal root thread from a template. Templates never touch running threads.
|
|
9
|
+
*/
|
|
10
|
+
import { type AgentType } from "./agent-settings.js";
|
|
11
|
+
import { type ThreadMcpServer } from "./mcp-settings.js";
|
|
12
|
+
export interface AgentTemplate {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
client: AgentType;
|
|
16
|
+
workingDirectory: string;
|
|
17
|
+
systemPrompt?: string;
|
|
18
|
+
mcpServers?: Record<string, ThreadMcpServer>;
|
|
19
|
+
}
|
|
20
|
+
/** All stored agent templates (malformed entries dropped). */
|
|
21
|
+
export declare function getAgentTemplates(): AgentTemplate[];
|
|
22
|
+
/** Single template by id, or null. */
|
|
23
|
+
export declare function getAgentTemplate(id: string): AgentTemplate | null;
|
|
24
|
+
/**
|
|
25
|
+
* Upsert a template. A blank id creates a new one (server-assigned id); an
|
|
26
|
+
* existing id replaces in place. Validates required fields and the MCP map;
|
|
27
|
+
* throws on violation so the dashboard can surface a 400.
|
|
28
|
+
*/
|
|
29
|
+
export declare function saveAgentTemplate(input: {
|
|
30
|
+
id?: string;
|
|
31
|
+
name: string;
|
|
32
|
+
client: string;
|
|
33
|
+
workingDirectory: string;
|
|
34
|
+
systemPrompt?: string | null;
|
|
35
|
+
mcpServers?: Record<string, ThreadMcpServer> | null;
|
|
36
|
+
}): AgentTemplate;
|
|
37
|
+
/** Remove a template by id. Returns true if one was removed. */
|
|
38
|
+
export declare function deleteAgentTemplate(id: string): boolean;
|
|
39
|
+
//# sourceMappingURL=agent-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-templates.d.ts","sourceRoot":"","sources":["../../src/config/agent-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAuC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAuBD,8DAA8D;AAC9D,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CASnD;AAED,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC;CACrD,GAAG,aAAa,CA2BhB;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQvD"}
|