@runcore-sh/runcore 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -19
- package/brain-template/agents/README.md +20 -0
- package/brain-template/identity/README.md +20 -0
- package/brain-template/identity/brand.md +25 -0
- package/brain-template/identity/principles.md +21 -0
- package/brain-template/identity/tone-of-voice.md +23 -0
- package/brain-template/knowledge/notes/tier-gated-ui-spec.md +1 -1
- package/brain-template/metrics/README.md +13 -0
- package/brain-template/operations/goals.yaml +12 -0
- package/brain-template/operations/todos.md +17 -0
- package/brain-template/ops/README.md +13 -0
- package/brain-template/scheduling/README.md +2 -2
- package/brain-template/skills/README.md +23 -0
- package/brain-template/templates/README.md +9 -0
- package/brain-template/training/README.md +20 -0
- package/dictionary.json +2 -2
- package/dist/activity/log.d.ts +3 -0
- package/dist/activity/log.d.ts.map +1 -1
- package/dist/activity/log.js +12 -0
- package/dist/activity/log.js.map +1 -1
- package/dist/agents/autonomous.js +1 -0
- package/dist/agents/autonomous.js.map +1 -1
- package/dist/agents/commit.d.ts.map +1 -1
- package/dist/agents/commit.js +3 -10
- package/dist/agents/commit.js.map +1 -1
- package/dist/agents/dedup-guard.d.ts.map +1 -1
- package/dist/agents/dedup-guard.js +26 -23
- package/dist/agents/dedup-guard.js.map +1 -1
- package/dist/agents/feed.d.ts +69 -0
- package/dist/agents/feed.d.ts.map +1 -0
- package/dist/agents/feed.js +176 -0
- package/dist/agents/feed.js.map +1 -0
- package/dist/agents/governance.d.ts +14 -0
- package/dist/agents/governance.d.ts.map +1 -1
- package/dist/agents/governance.js +73 -1
- package/dist/agents/governance.js.map +1 -1
- package/dist/agents/governed-spawn.d.ts +12 -0
- package/dist/agents/governed-spawn.d.ts.map +1 -1
- package/dist/agents/governed-spawn.js +8 -2
- package/dist/agents/governed-spawn.js.map +1 -1
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/issue-reporter.d.ts +15 -0
- package/dist/agents/issue-reporter.d.ts.map +1 -0
- package/dist/agents/issue-reporter.js +123 -0
- package/dist/agents/issue-reporter.js.map +1 -0
- package/dist/agents/issues.d.ts +33 -0
- package/dist/agents/issues.d.ts.map +1 -0
- package/dist/agents/issues.js +141 -0
- package/dist/agents/issues.js.map +1 -0
- package/dist/agents/reflection.js +3 -3
- package/dist/agents/reflection.js.map +1 -1
- package/dist/agents/runtime/driver.d.ts.map +1 -1
- package/dist/agents/runtime/driver.js +1 -2
- package/dist/agents/runtime/driver.js.map +1 -1
- package/dist/agents/runtime/manager.d.ts.map +1 -1
- package/dist/agents/runtime/manager.js +1 -0
- package/dist/agents/runtime/manager.js.map +1 -1
- package/dist/agents/runtime/types.d.ts +2 -0
- package/dist/agents/runtime/types.d.ts.map +1 -1
- package/dist/agents/spawn.d.ts.map +1 -1
- package/dist/agents/spawn.js +20 -26
- package/dist/agents/spawn.js.map +1 -1
- package/dist/agents/store.d.ts.map +1 -1
- package/dist/agents/store.js +34 -1
- package/dist/agents/store.js.map +1 -1
- package/dist/agents/types.d.ts +27 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/identity.d.ts +3 -0
- package/dist/auth/identity.d.ts.map +1 -1
- package/dist/auth/identity.js +9 -1
- package/dist/auth/identity.js.map +1 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +4 -0
- package/dist/auth/middleware.js.map +1 -1
- package/dist/calibration/conversation.d.ts +46 -0
- package/dist/calibration/conversation.d.ts.map +1 -0
- package/dist/calibration/conversation.js +295 -0
- package/dist/calibration/conversation.js.map +1 -0
- package/dist/calibration/index.d.ts +5 -0
- package/dist/calibration/index.d.ts.map +1 -0
- package/dist/calibration/index.js +5 -0
- package/dist/calibration/index.js.map +1 -0
- package/dist/calibration/runner.d.ts +127 -0
- package/dist/calibration/runner.d.ts.map +1 -0
- package/dist/calibration/runner.js +307 -0
- package/dist/calibration/runner.js.map +1 -0
- package/dist/calibration/store.d.ts +49 -0
- package/dist/calibration/store.d.ts.map +1 -0
- package/dist/calibration/store.js +140 -0
- package/dist/calibration/store.js.map +1 -0
- package/dist/calibration/types.d.ts +93 -0
- package/dist/calibration/types.d.ts.map +1 -0
- package/dist/calibration/types.js +53 -0
- package/dist/calibration/types.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +17 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +28 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +181 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +76 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +93 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/dictionary/challenge.d.ts +66 -0
- package/dist/dictionary/challenge.d.ts.map +1 -0
- package/dist/dictionary/challenge.js +145 -0
- package/dist/dictionary/challenge.js.map +1 -0
- package/dist/dictionary/client.d.ts +32 -0
- package/dist/dictionary/client.d.ts.map +1 -0
- package/dist/dictionary/client.js +139 -0
- package/dist/dictionary/client.js.map +1 -0
- package/dist/dictionary/compatibility.d.ts +8 -0
- package/dist/dictionary/compatibility.d.ts.map +1 -0
- package/dist/dictionary/compatibility.js +56 -0
- package/dist/dictionary/compatibility.js.map +1 -0
- package/dist/dictionary/index.d.ts +22 -0
- package/dist/dictionary/index.d.ts.map +1 -0
- package/dist/dictionary/index.js +15 -0
- package/dist/dictionary/index.js.map +1 -0
- package/dist/dictionary/matcher.d.ts +18 -0
- package/dist/dictionary/matcher.d.ts.map +1 -0
- package/dist/dictionary/matcher.js +98 -0
- package/dist/dictionary/matcher.js.map +1 -0
- package/dist/dictionary/publisher.d.ts +17 -0
- package/dist/dictionary/publisher.d.ts.map +1 -0
- package/dist/dictionary/publisher.js +156 -0
- package/dist/dictionary/publisher.js.map +1 -0
- package/dist/dictionary/sync.d.ts +28 -0
- package/dist/dictionary/sync.d.ts.map +1 -0
- package/dist/dictionary/sync.js +268 -0
- package/dist/dictionary/sync.js.map +1 -0
- package/dist/dictionary/types.d.ts +75 -0
- package/dist/dictionary/types.d.ts.map +1 -0
- package/dist/dictionary/types.js +8 -0
- package/dist/dictionary/types.js.map +1 -0
- package/dist/dictionary/updater.d.ts +23 -0
- package/dist/dictionary/updater.d.ts.map +1 -0
- package/dist/dictionary/updater.js +84 -0
- package/dist/dictionary/updater.js.map +1 -0
- package/dist/dictionary/versioning.d.ts +15 -0
- package/dist/dictionary/versioning.d.ts.map +1 -0
- package/dist/dictionary/versioning.js +52 -0
- package/dist/dictionary/versioning.js.map +1 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +66 -0
- package/dist/errors.js.map +1 -0
- package/dist/events/event-bus.d.ts +37 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +261 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +71 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +7 -0
- package/dist/events/types.js.map +1 -0
- package/dist/feed/client.d.ts +34 -0
- package/dist/feed/client.d.ts.map +1 -0
- package/dist/feed/client.js +206 -0
- package/dist/feed/client.js.map +1 -0
- package/dist/feed/index.d.ts +61 -0
- package/dist/feed/index.d.ts.map +1 -0
- package/dist/feed/index.js +115 -0
- package/dist/feed/index.js.map +1 -0
- package/dist/feed/metrics.d.ts +51 -0
- package/dist/feed/metrics.d.ts.map +1 -0
- package/dist/feed/metrics.js +84 -0
- package/dist/feed/metrics.js.map +1 -0
- package/dist/feed/mixer.d.ts +89 -0
- package/dist/feed/mixer.d.ts.map +1 -0
- package/dist/feed/mixer.js +230 -0
- package/dist/feed/mixer.js.map +1 -0
- package/dist/feed/tiers.d.ts +15 -0
- package/dist/feed/tiers.d.ts.map +1 -0
- package/dist/feed/tiers.js +75 -0
- package/dist/feed/tiers.js.map +1 -0
- package/dist/feed/types.d.ts +76 -0
- package/dist/feed/types.d.ts.map +1 -0
- package/dist/feed/types.js +6 -0
- package/dist/feed/types.js.map +1 -0
- package/dist/files/registry.d.ts +77 -0
- package/dist/files/registry.d.ts.map +1 -0
- package/dist/files/registry.js +222 -0
- package/dist/files/registry.js.map +1 -0
- package/dist/google/plugin.d.ts +17 -0
- package/dist/google/plugin.d.ts.map +1 -0
- package/dist/google/plugin.js +169 -0
- package/dist/google/plugin.js.map +1 -0
- package/dist/health/checker.d.ts.map +1 -1
- package/dist/health/checker.js +14 -4
- package/dist/health/checker.js.map +1 -1
- package/dist/health/checks/openrouter.js +1 -1
- package/dist/health/checks/openrouter.js.map +1 -1
- package/dist/health/checks.d.ts +1 -1
- package/dist/health/checks.d.ts.map +1 -1
- package/dist/health/checks.js +9 -3
- package/dist/health/checks.js.map +1 -1
- package/dist/ledger/distance.d.ts +19 -0
- package/dist/ledger/distance.d.ts.map +1 -0
- package/dist/ledger/distance.js +70 -0
- package/dist/ledger/distance.js.map +1 -0
- package/dist/ledger/index.d.ts +8 -0
- package/dist/ledger/index.d.ts.map +1 -0
- package/dist/ledger/index.js +7 -0
- package/dist/ledger/index.js.map +1 -0
- package/dist/ledger/store.d.ts +27 -0
- package/dist/ledger/store.d.ts.map +1 -0
- package/dist/ledger/store.js +123 -0
- package/dist/ledger/store.js.map +1 -0
- package/dist/ledger/types.d.ts +109 -0
- package/dist/ledger/types.d.ts.map +1 -0
- package/dist/ledger/types.js +57 -0
- package/dist/ledger/types.js.map +1 -0
- package/dist/literacy.d.ts +50 -0
- package/dist/literacy.d.ts.map +1 -0
- package/dist/literacy.js +141 -0
- package/dist/literacy.js.map +1 -0
- package/dist/llm/complete.d.ts.map +1 -1
- package/dist/llm/complete.js +36 -3
- package/dist/llm/complete.js.map +1 -1
- package/dist/llm/fetch-guard.d.ts.map +1 -1
- package/dist/llm/fetch-guard.js +2 -0
- package/dist/llm/fetch-guard.js.map +1 -1
- package/dist/llm/membrane.d.ts +5 -0
- package/dist/llm/membrane.d.ts.map +1 -1
- package/dist/llm/membrane.js +48 -8
- package/dist/llm/membrane.js.map +1 -1
- package/dist/llm/nlp-detect.d.ts +17 -0
- package/dist/llm/nlp-detect.d.ts.map +1 -0
- package/dist/llm/nlp-detect.js +45 -0
- package/dist/llm/nlp-detect.js.map +1 -0
- package/dist/llm/ollama.d.ts +5 -0
- package/dist/llm/ollama.d.ts.map +1 -1
- package/dist/llm/ollama.js +39 -1
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openrouter.d.ts.map +1 -1
- package/dist/llm/openrouter.js +17 -1
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/providers/ollama.d.ts +7 -2
- package/dist/llm/providers/ollama.d.ts.map +1 -1
- package/dist/llm/providers/ollama.js +109 -17
- package/dist/llm/providers/ollama.js.map +1 -1
- package/dist/llm/providers/openrouter.js +1 -1
- package/dist/llm/providers/openrouter.js.map +1 -1
- package/dist/llm/sensitive-registry.d.ts +6 -0
- package/dist/llm/sensitive-registry.d.ts.map +1 -1
- package/dist/llm/sensitive-registry.js +60 -1
- package/dist/llm/sensitive-registry.js.map +1 -1
- package/dist/mcp-server.js +25 -18
- package/dist/mcp-server.js.map +1 -1
- package/dist/metrics/collector.d.ts +6 -0
- package/dist/metrics/collector.d.ts.map +1 -1
- package/dist/metrics/collector.js +150 -0
- package/dist/metrics/collector.js.map +1 -1
- package/dist/metrics/types.d.ts +1 -1
- package/dist/metrics/types.d.ts.map +1 -1
- package/dist/middleware/error-handler.d.ts +13 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +71 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/notifications/channels/adapter.d.ts +28 -0
- package/dist/notifications/channels/adapter.d.ts.map +1 -0
- package/dist/notifications/channels/adapter.js +55 -0
- package/dist/notifications/channels/adapter.js.map +1 -0
- package/dist/notifications/channels/index.d.ts +6 -0
- package/dist/notifications/channels/index.d.ts.map +1 -0
- package/dist/notifications/channels/index.js +6 -0
- package/dist/notifications/channels/index.js.map +1 -0
- package/dist/notifications/channels/log.d.ts +15 -0
- package/dist/notifications/channels/log.d.ts.map +1 -0
- package/dist/notifications/channels/log.js +29 -0
- package/dist/notifications/channels/log.js.map +1 -0
- package/dist/notifications/engine.d.ts +37 -0
- package/dist/notifications/engine.d.ts.map +1 -0
- package/dist/notifications/engine.js +198 -0
- package/dist/notifications/engine.js.map +1 -0
- package/dist/notifications/index.d.ts +12 -3
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +15 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/types.d.ts +97 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/notifications/types.js +14 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/onboarding/bootstrap.d.ts +51 -0
- package/dist/onboarding/bootstrap.d.ts.map +1 -0
- package/dist/onboarding/bootstrap.js +92 -0
- package/dist/onboarding/bootstrap.js.map +1 -0
- package/dist/onboarding/conversation.d.ts +131 -0
- package/dist/onboarding/conversation.d.ts.map +1 -0
- package/dist/onboarding/conversation.js +259 -0
- package/dist/onboarding/conversation.js.map +1 -0
- package/dist/onboarding/flow.d.ts +63 -0
- package/dist/onboarding/flow.d.ts.map +1 -0
- package/dist/onboarding/flow.js +287 -0
- package/dist/onboarding/flow.js.map +1 -0
- package/dist/onboarding/index.d.ts +17 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +23 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/onboarding/name-extraction.d.ts +42 -0
- package/dist/onboarding/name-extraction.d.ts.map +1 -0
- package/dist/onboarding/name-extraction.js +164 -0
- package/dist/onboarding/name-extraction.js.map +1 -0
- package/dist/onboarding/nerve-link.d.ts +23 -0
- package/dist/onboarding/nerve-link.d.ts.map +1 -0
- package/dist/onboarding/nerve-link.js +24 -0
- package/dist/onboarding/nerve-link.js.map +1 -0
- package/dist/onboarding/phases.d.ts +66 -0
- package/dist/onboarding/phases.d.ts.map +1 -0
- package/dist/onboarding/phases.js +167 -0
- package/dist/onboarding/phases.js.map +1 -0
- package/dist/onboarding/safe-word.d.ts +39 -0
- package/dist/onboarding/safe-word.d.ts.map +1 -0
- package/dist/onboarding/safe-word.js +90 -0
- package/dist/onboarding/safe-word.js.map +1 -0
- package/dist/onboarding/types.d.ts +124 -0
- package/dist/onboarding/types.d.ts.map +1 -0
- package/dist/onboarding/types.js +46 -0
- package/dist/onboarding/types.js.map +1 -0
- package/dist/openloop/resolution-scanner.d.ts +1 -1
- package/dist/openloop/resolution-scanner.d.ts.map +1 -1
- package/dist/openloop/resolution-scanner.js +4 -14
- package/dist/openloop/resolution-scanner.js.map +1 -1
- package/dist/plugins/index.d.ts +24 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +91 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/status.d.ts +10 -0
- package/dist/plugins/status.d.ts.map +1 -0
- package/dist/plugins/status.js +12 -0
- package/dist/plugins/status.js.map +1 -0
- package/dist/posture/index.d.ts +2 -2
- package/dist/posture/index.d.ts.map +1 -1
- package/dist/posture/index.js +1 -1
- package/dist/posture/index.js.map +1 -1
- package/dist/posture/types.d.ts +34 -0
- package/dist/posture/types.d.ts.map +1 -1
- package/dist/posture/types.js +28 -0
- package/dist/posture/types.js.map +1 -1
- package/dist/pulse/activation-event.d.ts +5 -4
- package/dist/pulse/activation-event.d.ts.map +1 -1
- package/dist/pulse/activation-event.js +31 -8
- package/dist/pulse/activation-event.js.map +1 -1
- package/dist/pulse/activation-log.d.ts.map +1 -1
- package/dist/pulse/activation-log.js.map +1 -1
- package/dist/pulse/index.d.ts +3 -0
- package/dist/pulse/index.d.ts.map +1 -1
- package/dist/pulse/index.js +4 -0
- package/dist/pulse/index.js.map +1 -1
- package/dist/pulse/tier.d.ts +67 -0
- package/dist/pulse/tier.d.ts.map +1 -0
- package/dist/pulse/tier.js +104 -0
- package/dist/pulse/tier.js.map +1 -0
- package/dist/pulse/work.d.ts +66 -0
- package/dist/pulse/work.d.ts.map +1 -0
- package/dist/pulse/work.js +117 -0
- package/dist/pulse/work.js.map +1 -0
- package/dist/runtime-lock.d.ts +51 -0
- package/dist/runtime-lock.d.ts.map +1 -0
- package/dist/runtime-lock.js +147 -0
- package/dist/runtime-lock.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1244 -188
- package/dist/server.js.map +1 -1
- package/dist/services/whatsapp.js +1 -1
- package/dist/services/whatsapp.js.map +1 -1
- package/dist/settings.d.ts +15 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +48 -1
- package/dist/settings.js.map +1 -1
- package/dist/skills/index.d.ts +2 -2
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +2 -2
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/registry.d.ts +53 -142
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +249 -611
- package/dist/skills/registry.js.map +1 -1
- package/dist/stream/emitter.d.ts +36 -0
- package/dist/stream/emitter.d.ts.map +1 -0
- package/dist/stream/emitter.js +177 -0
- package/dist/stream/emitter.js.map +1 -0
- package/dist/stream/index.d.ts +4 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +3 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/types.d.ts +100 -0
- package/dist/stream/types.d.ts.map +1 -0
- package/dist/stream/types.js +19 -0
- package/dist/stream/types.js.map +1 -0
- package/dist/threads/index.d.ts +3 -0
- package/dist/threads/index.d.ts.map +1 -0
- package/dist/threads/index.js +2 -0
- package/dist/threads/index.js.map +1 -0
- package/dist/threads/store.d.ts +36 -0
- package/dist/threads/store.d.ts.map +1 -0
- package/dist/threads/store.js +171 -0
- package/dist/threads/store.js.map +1 -0
- package/dist/threads/types.d.ts +16 -0
- package/dist/threads/types.d.ts.map +1 -0
- package/dist/threads/types.js +6 -0
- package/dist/threads/types.js.map +1 -0
- package/dist/tick/index.d.ts +10 -0
- package/dist/tick/index.d.ts.map +1 -0
- package/dist/tick/index.js +8 -0
- package/dist/tick/index.js.map +1 -0
- package/dist/tick/runner.d.ts +56 -0
- package/dist/tick/runner.d.ts.map +1 -0
- package/dist/tick/runner.js +235 -0
- package/dist/tick/runner.js.map +1 -0
- package/dist/tick/types.d.ts +73 -0
- package/dist/tick/types.d.ts.map +1 -0
- package/dist/tick/types.js +8 -0
- package/dist/tick/types.js.map +1 -0
- package/dist/tier/types.js +3 -3
- package/dist/tier/types.js.map +1 -1
- package/dist/ui-sync.d.ts +34 -0
- package/dist/ui-sync.d.ts.map +1 -0
- package/dist/ui-sync.js +108 -0
- package/dist/ui-sync.js.map +1 -0
- package/dist/utils/git.d.ts +12 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +44 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/volumes/index.d.ts +3 -0
- package/dist/volumes/index.d.ts.map +1 -0
- package/dist/volumes/index.js +2 -0
- package/dist/volumes/index.js.map +1 -0
- package/dist/volumes/manager.d.ts +83 -0
- package/dist/volumes/manager.d.ts.map +1 -0
- package/dist/volumes/manager.js +462 -0
- package/dist/volumes/manager.js.map +1 -0
- package/dist/volumes/types.d.ts +66 -0
- package/dist/volumes/types.d.ts.map +1 -0
- package/dist/volumes/types.js +8 -0
- package/dist/volumes/types.js.map +1 -0
- package/package.json +8 -5
- package/public/avatar/Hey-Dash_en_windows_v4_0_0.zip +0 -0
- package/public/avatar/README.md +43 -0
- package/public/avatar/cache/06fa55aececcc478.mp4 +0 -0
- package/public/avatar/cache/07a65738ba170827.mp4 +0 -0
- package/public/avatar/cache/08b6f4880f59a385.mp4 +0 -0
- package/public/avatar/cache/0ef9e0e78d715af4.mp4 +0 -0
- package/public/avatar/cache/0fa85e9e8f444a8b.mp4 +0 -0
- package/public/avatar/cache/1185fd491f413406.mp4 +0 -0
- package/public/avatar/cache/1b374d5390258fea.mp4 +0 -0
- package/public/avatar/cache/1e2367029b92f8aa.mp4 +0 -0
- package/public/avatar/cache/272c004a41087de5.mp4 +0 -0
- package/public/avatar/cache/2a0f3ff34d92521a.mp4 +0 -0
- package/public/avatar/cache/307a6f70859aeab8.mp4 +0 -0
- package/public/avatar/cache/332384e088ca214b.mp4 +0 -0
- package/public/avatar/cache/39fc4e81574d14ed.mp4 +0 -0
- package/public/avatar/cache/4a5c6051c1ef6a71.mp4 +0 -0
- package/public/avatar/cache/51f4aa76398c8c29.mp4 +0 -0
- package/public/avatar/cache/5d9a960bbf71732c.mp4 +0 -0
- package/public/avatar/cache/5e0954401e15af89.mp4 +0 -0
- package/public/avatar/cache/884ae6717fcacdd5.mp4 +0 -0
- package/public/avatar/cache/8ea0b7220d139615.mp4 +0 -0
- package/public/avatar/cache/9b9c4f7b8508eecc.mp4 +0 -0
- package/public/avatar/cache/9be1030ec2aa2b01.mp4 +0 -0
- package/public/avatar/cache/b35f7a3d558f22cb.mp4 +0 -0
- package/public/avatar/cache/be89f49970672374.mp4 +0 -0
- package/public/avatar/cache/c11fdc99479492b6.mp4 +0 -0
- package/public/avatar/cache/c900811e3382ac6d.mp4 +0 -0
- package/public/avatar/cache/d42a73667acf5716.mp4 +0 -0
- package/public/avatar/cache/e539f247a8908603.mp4 +0 -0
- package/public/avatar/cache/e78fceae2373b7c1.mp4 +0 -0
- package/public/avatar/cache/ec95af57d33b3f07.mp4 +0 -0
- package/public/avatar/cache/eeb8d775f40dbe2c.mp4 +0 -0
- package/public/avatar/dash_headhshot_v1.png +0 -0
- package/public/avatar/idle.mp4 +0 -0
- package/public/avatar/photo.png +0 -0
- package/public/board.html +6 -0
- package/public/browser.html +6 -2
- package/public/demo-data/Family Photos/2024/christmas-dinner.txt +13 -0
- package/public/demo-data/Family Photos/2025/summer-cookout.txt +13 -0
- package/public/demo-data/Financial/Insurance/auto-policy.txt +26 -0
- package/public/demo-data/Financial/Insurance/homeowners-policy.txt +20 -0
- package/public/demo-data/Financial/Taxes/property-tax-2025.txt +18 -0
- package/public/demo-data/Financial/Taxes/w2-2025.txt +18 -0
- package/public/demo-data/Health Records/lab-results-2026.txt +26 -0
- package/public/demo-data/Health Records/prescription-list.txt +24 -0
- package/public/demo-data/Health Records/vaccination-record.csv +8 -0
- package/public/demo-data/Legal/Estate/beneficiary-contacts.csv +4 -0
- package/public/demo-data/Legal/Estate/will-summary.txt +22 -0
- package/public/demo-data/Recipes/christmas-cookies.md +25 -0
- package/public/demo-data/Recipes/grandmas-chili.md +30 -0
- package/public/demo-data/Work/Contracts/lawn-service-2026.txt +23 -0
- package/public/demo-data/Work/Projects/project-status.md +19 -0
- package/public/demo-data/passwords.txt +13 -0
- package/public/demo-ingest.html +388 -0
- package/public/help.html +4 -1
- package/public/icon-192.png +0 -0
- package/public/icon-512.png +0 -0
- package/public/index.html +2641 -574
- package/public/library.html +51 -29
- package/public/manifest.json +21 -0
- package/public/nerve/icon-192.svg +6 -0
- package/public/nerve/icon-512.svg +6 -0
- package/public/nerve/index.html +698 -0
- package/public/nerve/manifest.json +24 -0
- package/public/nerve/sw.js +84 -0
- package/public/observatory.html +5 -1
- package/public/ops.html +33 -3
- package/public/pulse.html +3 -0
- package/public/registry.html +6 -2
- package/public/roadmap.html +7 -2
- package/public/sw.js +65 -0
- package/brain-template/registry.md +0 -566
- package/brain-template/rest_api-integration.md +0 -522
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixer.js","sourceRoot":"","sources":["../../src/feed/mixer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier detection and feature gating.
|
|
3
|
+
* Reads tier from local config; never phones home to validate.
|
|
4
|
+
*/
|
|
5
|
+
import type { FeedTier, FeedSignalType, TierCapabilities } from "./types.js";
|
|
6
|
+
export declare function getTierCapabilities(tier: FeedTier): TierCapabilities;
|
|
7
|
+
/** Check if a tier meets the minimum required tier. */
|
|
8
|
+
export declare function tierMeetsMinimum(current: FeedTier, minimum: FeedTier): boolean;
|
|
9
|
+
/** Filter feed items to only those the current tier can access. */
|
|
10
|
+
export declare function filterByTier<T extends {
|
|
11
|
+
minTier: FeedTier;
|
|
12
|
+
}>(items: T[], currentTier: FeedTier): T[];
|
|
13
|
+
/** Check if a specific signal type is available at the given tier. */
|
|
14
|
+
export declare function isSignalAvailable(signalType: FeedSignalType, tier: FeedTier): boolean;
|
|
15
|
+
//# sourceMappingURL=tiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/feed/tiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6D7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAEpE;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAE9E;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,GAAG,CAAC,EAAE,CAEpG;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAErF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier detection and feature gating.
|
|
3
|
+
* Reads tier from local config; never phones home to validate.
|
|
4
|
+
*/
|
|
5
|
+
const FREE_SIGNALS = [
|
|
6
|
+
"dictionary_update",
|
|
7
|
+
"security_patch",
|
|
8
|
+
"release_notes",
|
|
9
|
+
"community_signal",
|
|
10
|
+
"protocol_update",
|
|
11
|
+
"compost",
|
|
12
|
+
];
|
|
13
|
+
const PAID_SIGNALS = [
|
|
14
|
+
...FREE_SIGNALS,
|
|
15
|
+
"pattern_intelligence",
|
|
16
|
+
"curated_model",
|
|
17
|
+
"deep_dictionary",
|
|
18
|
+
"federation_signal",
|
|
19
|
+
"early_access",
|
|
20
|
+
];
|
|
21
|
+
const TIER_MAP = {
|
|
22
|
+
free: {
|
|
23
|
+
tier: "free",
|
|
24
|
+
signalTypes: FREE_SIGNALS,
|
|
25
|
+
relayPriority: "standard",
|
|
26
|
+
envelopeTtlDays: 30,
|
|
27
|
+
maxHosts: 1,
|
|
28
|
+
sseEnabled: false,
|
|
29
|
+
priceMonthly: 0,
|
|
30
|
+
},
|
|
31
|
+
personal: {
|
|
32
|
+
tier: "personal",
|
|
33
|
+
signalTypes: PAID_SIGNALS,
|
|
34
|
+
relayPriority: "priority",
|
|
35
|
+
envelopeTtlDays: 90,
|
|
36
|
+
maxHosts: 5,
|
|
37
|
+
sseEnabled: true,
|
|
38
|
+
priceMonthly: 900, // $9/month
|
|
39
|
+
},
|
|
40
|
+
family: {
|
|
41
|
+
tier: "family",
|
|
42
|
+
signalTypes: PAID_SIGNALS,
|
|
43
|
+
relayPriority: "priority",
|
|
44
|
+
envelopeTtlDays: 90,
|
|
45
|
+
maxHosts: 20,
|
|
46
|
+
sseEnabled: true,
|
|
47
|
+
priceMonthly: 1900, // $19/month
|
|
48
|
+
},
|
|
49
|
+
host: {
|
|
50
|
+
tier: "host",
|
|
51
|
+
signalTypes: PAID_SIGNALS,
|
|
52
|
+
relayPriority: "priority",
|
|
53
|
+
envelopeTtlDays: 180,
|
|
54
|
+
maxHosts: Infinity,
|
|
55
|
+
sseEnabled: true,
|
|
56
|
+
priceMonthly: 4900, // $49/month
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
const TIER_ORDER = ["free", "personal", "family", "host"];
|
|
60
|
+
export function getTierCapabilities(tier) {
|
|
61
|
+
return TIER_MAP[tier];
|
|
62
|
+
}
|
|
63
|
+
/** Check if a tier meets the minimum required tier. */
|
|
64
|
+
export function tierMeetsMinimum(current, minimum) {
|
|
65
|
+
return TIER_ORDER.indexOf(current) >= TIER_ORDER.indexOf(minimum);
|
|
66
|
+
}
|
|
67
|
+
/** Filter feed items to only those the current tier can access. */
|
|
68
|
+
export function filterByTier(items, currentTier) {
|
|
69
|
+
return items.filter(item => tierMeetsMinimum(currentTier, item.minTier));
|
|
70
|
+
}
|
|
71
|
+
/** Check if a specific signal type is available at the given tier. */
|
|
72
|
+
export function isSignalAvailable(signalType, tier) {
|
|
73
|
+
return TIER_MAP[tier].signalTypes.includes(signalType);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=tiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/feed/tiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,YAAY,GAAqB;IACrC,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,SAAS;CACV,CAAC;AAEF,MAAM,YAAY,GAAqB;IACrC,GAAG,YAAY;IACf,sBAAsB;IACtB,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;CACf,CAAC;AAEF,MAAM,QAAQ,GAAuC;IACnD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,CAAC;KAChB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,GAAG,EAAK,WAAW;KAClC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI,EAAI,YAAY;KACnC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,GAAG;QACpB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI,EAAI,YAAY;KACnC;CACF,CAAC;AAEF,MAAM,UAAU,GAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEtE,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,OAAiB;IACnE,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAkC,KAAU,EAAE,WAAqB;IAC7F,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,UAA0B,EAAE,IAAc;IAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feed types — public/paid signal streams from runcore.sh
|
|
3
|
+
* mixed locally with private brain data.
|
|
4
|
+
*/
|
|
5
|
+
/** Subscription tier levels. */
|
|
6
|
+
export type FeedTier = "free" | "personal" | "family" | "host";
|
|
7
|
+
/** Categories of feed signal. */
|
|
8
|
+
export type FeedSignalType = "dictionary_update" | "security_patch" | "release_notes" | "community_signal" | "protocol_update" | "pattern_intelligence" | "curated_model" | "deep_dictionary" | "federation_signal" | "early_access" | "compost";
|
|
9
|
+
/** A single item from the feed stream. */
|
|
10
|
+
export interface FeedItem {
|
|
11
|
+
id: string;
|
|
12
|
+
type: FeedSignalType;
|
|
13
|
+
/** Minimum tier required to receive this item. */
|
|
14
|
+
minTier: FeedTier;
|
|
15
|
+
/** ISO timestamp from runcore.sh. */
|
|
16
|
+
publishedAt: string;
|
|
17
|
+
/** ISO timestamp when received locally. */
|
|
18
|
+
receivedAt: string;
|
|
19
|
+
/** Human-readable title. */
|
|
20
|
+
title: string;
|
|
21
|
+
/** The signal payload — structure varies by type. */
|
|
22
|
+
payload: Record<string, unknown>;
|
|
23
|
+
/** TTL in seconds; 0 = never expires. */
|
|
24
|
+
ttl: number;
|
|
25
|
+
}
|
|
26
|
+
/** Result of mixing a feed item with local brain context. */
|
|
27
|
+
export interface MixedInsight {
|
|
28
|
+
/** The feed item that triggered this insight. */
|
|
29
|
+
feedItemId: string;
|
|
30
|
+
feedSignalType: FeedSignalType;
|
|
31
|
+
/** The locally-generated insight text. */
|
|
32
|
+
insight: string;
|
|
33
|
+
/** Relevance score 0-1 (how applicable to this brain). */
|
|
34
|
+
relevance: number;
|
|
35
|
+
/** Which local data contributed (type only, never content). */
|
|
36
|
+
localSources: string[];
|
|
37
|
+
/** ISO timestamp of mix computation. */
|
|
38
|
+
mixedAt: string;
|
|
39
|
+
}
|
|
40
|
+
/** Feed client configuration. */
|
|
41
|
+
export interface FeedConfig {
|
|
42
|
+
/** runcore.sh feed endpoint URL. */
|
|
43
|
+
feedUrl: string;
|
|
44
|
+
/** Host registration fingerprint for auth. */
|
|
45
|
+
hostFingerprint?: string;
|
|
46
|
+
/** Current subscription tier. */
|
|
47
|
+
tier: FeedTier;
|
|
48
|
+
/** Poll interval in ms for batch mode. Default 3600000 (1 hour). */
|
|
49
|
+
pollIntervalMs?: number;
|
|
50
|
+
/** Max items to cache locally. Default 500. */
|
|
51
|
+
maxCachedItems?: number;
|
|
52
|
+
/** Whether to use SSE for real-time updates (paid tiers). */
|
|
53
|
+
useSSE?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** Tier capability map — what each tier unlocks. */
|
|
56
|
+
export interface TierCapabilities {
|
|
57
|
+
tier: FeedTier;
|
|
58
|
+
signalTypes: FeedSignalType[];
|
|
59
|
+
relayPriority: "standard" | "priority";
|
|
60
|
+
envelopeTtlDays: number;
|
|
61
|
+
maxHosts: number;
|
|
62
|
+
sseEnabled: boolean;
|
|
63
|
+
/** Monthly price in USD cents. 0 = free tier. */
|
|
64
|
+
priceMonthly: number;
|
|
65
|
+
}
|
|
66
|
+
/** Feed health/status for metrics. */
|
|
67
|
+
export interface FeedStatus {
|
|
68
|
+
connected: boolean;
|
|
69
|
+
tier: FeedTier;
|
|
70
|
+
lastReceivedAt: string | null;
|
|
71
|
+
itemsCached: number;
|
|
72
|
+
insightsGenerated: number;
|
|
73
|
+
/** Average relevance of recent mixed insights. */
|
|
74
|
+
avgRelevance: number;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/feed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,iCAAiC;AACjC,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,GACtB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,cAAc,GACd,SAAS,CAAC;AAEd,0CAA0C;AAC1C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,QAAQ,CAAC;IAClB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iCAAiC;AACjC,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/feed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File registry — lightweight file tracking backed by append-only JSONL.
|
|
3
|
+
*
|
|
4
|
+
* Provides a simplified interface over `brain/files/registry.jsonl` for
|
|
5
|
+
* tracking uploaded/managed files. Follows Core's append-only rule:
|
|
6
|
+
* entries are never modified or deleted, only appended.
|
|
7
|
+
*
|
|
8
|
+
* For the full file store with events, versioning, and visibility controls,
|
|
9
|
+
* see `store.ts`. This module is a focused subset for file registration
|
|
10
|
+
* and lookup.
|
|
11
|
+
*/
|
|
12
|
+
export interface FileRecord {
|
|
13
|
+
id: string;
|
|
14
|
+
filename: string;
|
|
15
|
+
storagePath: string;
|
|
16
|
+
mimeType: string;
|
|
17
|
+
sizeBytes: number;
|
|
18
|
+
checksum: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
tags?: string[];
|
|
22
|
+
source?: string;
|
|
23
|
+
status: "active" | "archived";
|
|
24
|
+
/** Which volume this file physically lives on. Default: "primary". */
|
|
25
|
+
volume?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Input for registering a new file (system-generated fields omitted). */
|
|
28
|
+
export type FileRecordInput = Omit<FileRecord, "id" | "createdAt" | "updatedAt">;
|
|
29
|
+
export declare class FileRegistry {
|
|
30
|
+
private cache;
|
|
31
|
+
private readonly registryPath;
|
|
32
|
+
constructor(brainDir?: string);
|
|
33
|
+
private ensureFile;
|
|
34
|
+
private load;
|
|
35
|
+
private append;
|
|
36
|
+
/**
|
|
37
|
+
* Register a new file. System-generated fields (id, createdAt, updatedAt)
|
|
38
|
+
* are populated automatically.
|
|
39
|
+
*/
|
|
40
|
+
register(input: FileRecordInput): Promise<FileRecord>;
|
|
41
|
+
/**
|
|
42
|
+
* List records with optional filtering by status and/or source.
|
|
43
|
+
*/
|
|
44
|
+
list(opts?: {
|
|
45
|
+
status?: string;
|
|
46
|
+
source?: string;
|
|
47
|
+
}): Promise<FileRecord[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get a single record by ID.
|
|
50
|
+
*/
|
|
51
|
+
get(id: string): Promise<FileRecord | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Archive a file by ID. Appends a new entry with status "archived"
|
|
54
|
+
* (append-only — the original line is never modified or deleted).
|
|
55
|
+
*/
|
|
56
|
+
archive(id: string): Promise<FileRecord | null>;
|
|
57
|
+
/**
|
|
58
|
+
* Update tags or source on a file record. Appends a new line (append-only).
|
|
59
|
+
*/
|
|
60
|
+
update(id: string, patch: {
|
|
61
|
+
tags?: string[];
|
|
62
|
+
source?: string;
|
|
63
|
+
}): Promise<FileRecord | null>;
|
|
64
|
+
/**
|
|
65
|
+
* Get all unique tags (virtual folders) across all active records.
|
|
66
|
+
*/
|
|
67
|
+
getFolders(): Promise<string[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Fuzzy search across filename and tags. Returns records whose filename
|
|
70
|
+
* or any tag contains the query string (case-insensitive).
|
|
71
|
+
*/
|
|
72
|
+
search(query: string): Promise<FileRecord[]>;
|
|
73
|
+
}
|
|
74
|
+
/** Compute SHA-256 hex digest for a buffer. */
|
|
75
|
+
export declare function computeChecksum(data: Buffer): string;
|
|
76
|
+
export declare const fileRegistry: FileRegistry;
|
|
77
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/files/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAejF,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,QAAQ,GAAE,MAAkB;YAM1B,UAAU;YASV,IAAI;YAyBJ,MAAM;IAMpB;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IA6B3D;;OAEG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgB9E;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKjD;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAyBrD;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiBjG;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAcrC;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAmBnD;AAID,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAYD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File registry — lightweight file tracking backed by append-only JSONL.
|
|
3
|
+
*
|
|
4
|
+
* Provides a simplified interface over `brain/files/registry.jsonl` for
|
|
5
|
+
* tracking uploaded/managed files. Follows Core's append-only rule:
|
|
6
|
+
* entries are never modified or deleted, only appended.
|
|
7
|
+
*
|
|
8
|
+
* For the full file store with events, versioning, and visibility controls,
|
|
9
|
+
* see `store.ts`. This module is a focused subset for file registration
|
|
10
|
+
* and lookup.
|
|
11
|
+
*/
|
|
12
|
+
import { readFile, appendFile, mkdir } from "node:fs/promises";
|
|
13
|
+
import { join, dirname } from "node:path";
|
|
14
|
+
import { randomUUID, createHash } from "node:crypto";
|
|
15
|
+
import { createLogger } from "../utils/logger.js";
|
|
16
|
+
import { logActivity } from "../activity/log.js";
|
|
17
|
+
import { BRAIN_DIR } from "../lib/paths.js";
|
|
18
|
+
const log = createLogger("files.registry");
|
|
19
|
+
// ── Schema header ────────────────────────────────────────────────────────────
|
|
20
|
+
const REGISTRY_SCHEMA = JSON.stringify({
|
|
21
|
+
_schema: "file_record",
|
|
22
|
+
version: 1,
|
|
23
|
+
fields: [
|
|
24
|
+
"id", "filename", "storagePath", "mimeType", "sizeBytes",
|
|
25
|
+
"checksum", "createdAt", "updatedAt", "tags", "source", "status",
|
|
26
|
+
],
|
|
27
|
+
});
|
|
28
|
+
// ── Registry class ───────────────────────────────────────────────────────────
|
|
29
|
+
export class FileRegistry {
|
|
30
|
+
cache = null;
|
|
31
|
+
registryPath;
|
|
32
|
+
constructor(brainDir = BRAIN_DIR) {
|
|
33
|
+
this.registryPath = join(brainDir, "files", "registry.jsonl");
|
|
34
|
+
}
|
|
35
|
+
// ── File I/O helpers ─────────────────────────────────────────────────────
|
|
36
|
+
async ensureFile() {
|
|
37
|
+
try {
|
|
38
|
+
await readFile(this.registryPath, "utf-8");
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
await mkdir(dirname(this.registryPath), { recursive: true });
|
|
42
|
+
await appendFile(this.registryPath, REGISTRY_SCHEMA + "\n", "utf-8");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async load() {
|
|
46
|
+
if (this.cache)
|
|
47
|
+
return this.cache;
|
|
48
|
+
await this.ensureFile();
|
|
49
|
+
log.debug("loading file registry", { filePath: this.registryPath });
|
|
50
|
+
const raw = await readFile(this.registryPath, "utf-8");
|
|
51
|
+
const lines = raw.split("\n").filter((l) => l.trim().length > 0);
|
|
52
|
+
const map = new Map();
|
|
53
|
+
for (const line of lines) {
|
|
54
|
+
try {
|
|
55
|
+
const obj = JSON.parse(line);
|
|
56
|
+
if (obj._schema)
|
|
57
|
+
continue;
|
|
58
|
+
map.set(obj.id, obj);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// skip malformed lines
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
this.cache = map;
|
|
66
|
+
log.info("file registry loaded", { recordCount: map.size });
|
|
67
|
+
return map;
|
|
68
|
+
}
|
|
69
|
+
async append(record) {
|
|
70
|
+
await appendFile(this.registryPath, JSON.stringify(record) + "\n", "utf-8");
|
|
71
|
+
}
|
|
72
|
+
// ── Public API ───────────────────────────────────────────────────────────
|
|
73
|
+
/**
|
|
74
|
+
* Register a new file. System-generated fields (id, createdAt, updatedAt)
|
|
75
|
+
* are populated automatically.
|
|
76
|
+
*/
|
|
77
|
+
async register(input) {
|
|
78
|
+
const map = await this.load();
|
|
79
|
+
const now = new Date().toISOString();
|
|
80
|
+
const record = {
|
|
81
|
+
...input,
|
|
82
|
+
id: randomUUID(),
|
|
83
|
+
createdAt: now,
|
|
84
|
+
updatedAt: now,
|
|
85
|
+
};
|
|
86
|
+
map.set(record.id, record);
|
|
87
|
+
await this.append(record);
|
|
88
|
+
logActivity({
|
|
89
|
+
source: "system",
|
|
90
|
+
summary: `File registered: ${record.filename} (${formatBytes(record.sizeBytes)})`,
|
|
91
|
+
detail: `id=${record.id} mime=${record.mimeType} source=${record.source ?? "unknown"}`,
|
|
92
|
+
});
|
|
93
|
+
log.info("file registered", {
|
|
94
|
+
id: record.id,
|
|
95
|
+
filename: record.filename,
|
|
96
|
+
mimeType: record.mimeType,
|
|
97
|
+
});
|
|
98
|
+
return record;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* List records with optional filtering by status and/or source.
|
|
102
|
+
*/
|
|
103
|
+
async list(opts) {
|
|
104
|
+
const map = await this.load();
|
|
105
|
+
let results = [...map.values()];
|
|
106
|
+
if (opts?.status) {
|
|
107
|
+
results = results.filter((r) => r.status === opts.status);
|
|
108
|
+
}
|
|
109
|
+
if (opts?.source) {
|
|
110
|
+
results = results.filter((r) => r.source === opts.source);
|
|
111
|
+
}
|
|
112
|
+
// Sort newest first
|
|
113
|
+
results.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
114
|
+
return results;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get a single record by ID.
|
|
118
|
+
*/
|
|
119
|
+
async get(id) {
|
|
120
|
+
const map = await this.load();
|
|
121
|
+
return map.get(id) ?? null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Archive a file by ID. Appends a new entry with status "archived"
|
|
125
|
+
* (append-only — the original line is never modified or deleted).
|
|
126
|
+
*/
|
|
127
|
+
async archive(id) {
|
|
128
|
+
const map = await this.load();
|
|
129
|
+
const existing = map.get(id);
|
|
130
|
+
if (!existing)
|
|
131
|
+
return null;
|
|
132
|
+
if (existing.status === "archived")
|
|
133
|
+
return existing;
|
|
134
|
+
const updated = {
|
|
135
|
+
...existing,
|
|
136
|
+
status: "archived",
|
|
137
|
+
updatedAt: new Date().toISOString(),
|
|
138
|
+
};
|
|
139
|
+
map.set(id, updated);
|
|
140
|
+
await this.append(updated);
|
|
141
|
+
logActivity({
|
|
142
|
+
source: "system",
|
|
143
|
+
summary: `File archived: ${updated.filename}`,
|
|
144
|
+
detail: `id=${id}`,
|
|
145
|
+
});
|
|
146
|
+
log.info("file archived", { id, filename: existing.filename });
|
|
147
|
+
return updated;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Update tags or source on a file record. Appends a new line (append-only).
|
|
151
|
+
*/
|
|
152
|
+
async update(id, patch) {
|
|
153
|
+
const map = await this.load();
|
|
154
|
+
const existing = map.get(id);
|
|
155
|
+
if (!existing)
|
|
156
|
+
return null;
|
|
157
|
+
const updated = {
|
|
158
|
+
...existing,
|
|
159
|
+
...patch,
|
|
160
|
+
updatedAt: new Date().toISOString(),
|
|
161
|
+
};
|
|
162
|
+
map.set(id, updated);
|
|
163
|
+
await this.append(updated);
|
|
164
|
+
log.info("file updated", { id, changes: Object.keys(patch) });
|
|
165
|
+
return updated;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get all unique tags (virtual folders) across all active records.
|
|
169
|
+
*/
|
|
170
|
+
async getFolders() {
|
|
171
|
+
const map = await this.load();
|
|
172
|
+
const folders = new Set();
|
|
173
|
+
for (const record of map.values()) {
|
|
174
|
+
if (record.status === "archived")
|
|
175
|
+
continue;
|
|
176
|
+
for (const tag of record.tags ?? []) {
|
|
177
|
+
if (tag.startsWith("folder:")) {
|
|
178
|
+
folders.add(tag.slice(7));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return [...folders].sort();
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Fuzzy search across filename and tags. Returns records whose filename
|
|
186
|
+
* or any tag contains the query string (case-insensitive).
|
|
187
|
+
*/
|
|
188
|
+
async search(query) {
|
|
189
|
+
const map = await this.load();
|
|
190
|
+
const q = query.toLowerCase();
|
|
191
|
+
const results = [];
|
|
192
|
+
for (const record of map.values()) {
|
|
193
|
+
if (record.status === "archived")
|
|
194
|
+
continue;
|
|
195
|
+
const filenameMatch = record.filename.toLowerCase().includes(q);
|
|
196
|
+
const tagMatch = record.tags?.some((t) => t.toLowerCase().includes(q)) ?? false;
|
|
197
|
+
if (filenameMatch || tagMatch) {
|
|
198
|
+
results.push(record);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
results.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
202
|
+
return results;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
206
|
+
/** Compute SHA-256 hex digest for a buffer. */
|
|
207
|
+
export function computeChecksum(data) {
|
|
208
|
+
return createHash("sha256").update(data).digest("hex");
|
|
209
|
+
}
|
|
210
|
+
/** Format byte count for human display. */
|
|
211
|
+
function formatBytes(bytes) {
|
|
212
|
+
if (bytes < 1024)
|
|
213
|
+
return `${bytes} B`;
|
|
214
|
+
if (bytes < 1024 * 1024)
|
|
215
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
216
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
217
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
218
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
219
|
+
}
|
|
220
|
+
// ── Singleton ────────────────────────────────────────────────────────────────
|
|
221
|
+
export const fileRegistry = new FileRegistry();
|
|
222
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/files/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google plugin wrapper.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the existing Google OAuth, Calendar, Gmail, and Tasks integrations
|
|
5
|
+
* behind the standard Plugin interface so the PluginRegistry can manage
|
|
6
|
+
* the lifecycle uniformly.
|
|
7
|
+
*
|
|
8
|
+
* This is a WRAPPER — it delegates to existing code in google/auth.ts,
|
|
9
|
+
* google/calendar-timer.ts, google/gmail-timer.ts, and google/tasks-timer.ts.
|
|
10
|
+
*/
|
|
11
|
+
import type { Plugin } from "../types/plugin.js";
|
|
12
|
+
/**
|
|
13
|
+
* Create a Google plugin instance.
|
|
14
|
+
* Use with the PluginRegistry: `registry.register(createGooglePlugin(), ctx)`
|
|
15
|
+
*/
|
|
16
|
+
export declare function createGooglePlugin(): Plugin;
|
|
17
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/google/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,MAAM,EAWP,MAAM,oBAAoB,CAAC;AAmM5B;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|