@soleri/core 2.10.0 → 2.12.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/dist/agency/agency-manager.d.ts +47 -0
- package/dist/agency/agency-manager.d.ts.map +1 -0
- package/dist/agency/agency-manager.js +281 -0
- package/dist/agency/agency-manager.js.map +1 -0
- package/dist/agency/index.d.ts +3 -0
- package/dist/agency/index.d.ts.map +1 -0
- package/dist/agency/index.js +2 -0
- package/dist/agency/index.js.map +1 -0
- package/dist/agency/types.d.ts +69 -0
- package/dist/agency/types.d.ts.map +1 -0
- package/dist/agency/types.js +5 -0
- package/dist/agency/types.js.map +1 -0
- package/dist/brain/brain.d.ts +0 -1
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +24 -0
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts +5 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +83 -0
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/brain/types.d.ts +21 -0
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/chat/agent-loop-types.d.ts +82 -0
- package/dist/chat/agent-loop-types.d.ts.map +1 -0
- package/dist/chat/agent-loop-types.js +8 -0
- package/dist/chat/agent-loop-types.js.map +1 -0
- package/dist/chat/agent-loop.d.ts +19 -0
- package/dist/chat/agent-loop.d.ts.map +1 -0
- package/dist/chat/agent-loop.js +261 -0
- package/dist/chat/agent-loop.js.map +1 -0
- package/dist/chat/auth-manager.d.ts +49 -0
- package/dist/chat/auth-manager.d.ts.map +1 -0
- package/dist/chat/auth-manager.js +152 -0
- package/dist/chat/auth-manager.js.map +1 -0
- package/dist/chat/browser-session.d.ts +86 -0
- package/dist/chat/browser-session.d.ts.map +1 -0
- package/dist/chat/browser-session.js +143 -0
- package/dist/chat/browser-session.js.map +1 -0
- package/dist/chat/cancellation.d.ts +54 -0
- package/dist/chat/cancellation.d.ts.map +1 -0
- package/dist/chat/cancellation.js +80 -0
- package/dist/chat/cancellation.js.map +1 -0
- package/dist/chat/chat-session.d.ts +86 -0
- package/dist/chat/chat-session.d.ts.map +1 -0
- package/dist/chat/chat-session.js +252 -0
- package/dist/chat/chat-session.js.map +1 -0
- package/dist/chat/file-handler.d.ts +63 -0
- package/dist/chat/file-handler.d.ts.map +1 -0
- package/dist/chat/file-handler.js +182 -0
- package/dist/chat/file-handler.js.map +1 -0
- package/dist/chat/fragment-buffer.d.ts +49 -0
- package/dist/chat/fragment-buffer.d.ts.map +1 -0
- package/dist/chat/fragment-buffer.js +130 -0
- package/dist/chat/fragment-buffer.js.map +1 -0
- package/dist/chat/index.d.ts +24 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +15 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/mcp-bridge.d.ts +60 -0
- package/dist/chat/mcp-bridge.d.ts.map +1 -0
- package/dist/chat/mcp-bridge.js +111 -0
- package/dist/chat/mcp-bridge.js.map +1 -0
- package/dist/chat/notifications.d.ts +82 -0
- package/dist/chat/notifications.d.ts.map +1 -0
- package/dist/chat/notifications.js +119 -0
- package/dist/chat/notifications.js.map +1 -0
- package/dist/chat/output-compressor.d.ts +30 -0
- package/dist/chat/output-compressor.d.ts.map +1 -0
- package/dist/chat/output-compressor.js +95 -0
- package/dist/chat/output-compressor.js.map +1 -0
- package/dist/chat/queue.d.ts +91 -0
- package/dist/chat/queue.d.ts.map +1 -0
- package/dist/chat/queue.js +146 -0
- package/dist/chat/queue.js.map +1 -0
- package/dist/chat/response-chunker.d.ts +29 -0
- package/dist/chat/response-chunker.d.ts.map +1 -0
- package/dist/chat/response-chunker.js +163 -0
- package/dist/chat/response-chunker.js.map +1 -0
- package/dist/chat/self-update.d.ts +62 -0
- package/dist/chat/self-update.d.ts.map +1 -0
- package/dist/chat/self-update.js +90 -0
- package/dist/chat/self-update.js.map +1 -0
- package/dist/chat/types.d.ts +105 -0
- package/dist/chat/types.d.ts.map +1 -0
- package/dist/chat/types.js +8 -0
- package/dist/chat/types.js.map +1 -0
- package/dist/chat/voice.d.ts +39 -0
- package/dist/chat/voice.d.ts.map +1 -0
- package/dist/chat/voice.js +80 -0
- package/dist/chat/voice.js.map +1 -0
- package/dist/claudemd/compose.d.ts +31 -0
- package/dist/claudemd/compose.d.ts.map +1 -0
- package/dist/claudemd/compose.js +105 -0
- package/dist/claudemd/compose.js.map +1 -0
- package/dist/claudemd/index.d.ts +5 -0
- package/dist/claudemd/index.d.ts.map +1 -0
- package/dist/claudemd/index.js +3 -0
- package/dist/claudemd/index.js.map +1 -0
- package/dist/claudemd/inject.d.ts +31 -0
- package/dist/claudemd/inject.d.ts.map +1 -0
- package/dist/claudemd/inject.js +157 -0
- package/dist/claudemd/inject.js.map +1 -0
- package/dist/claudemd/types.d.ts +41 -0
- package/dist/claudemd/types.d.ts.map +1 -0
- package/dist/claudemd/types.js +5 -0
- package/dist/claudemd/types.js.map +1 -0
- package/dist/context/context-engine.d.ts +31 -0
- package/dist/context/context-engine.d.ts.map +1 -0
- package/dist/context/context-engine.js +245 -0
- package/dist/context/context-engine.js.map +1 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +2 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/types.d.ts +54 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +5 -0
- package/dist/context/types.js.map +1 -0
- package/dist/enforcement/adapters/claude-code.d.ts +18 -0
- package/dist/enforcement/adapters/claude-code.d.ts.map +1 -0
- package/dist/enforcement/adapters/claude-code.js +106 -0
- package/dist/enforcement/adapters/claude-code.js.map +1 -0
- package/dist/enforcement/adapters/index.d.ts +2 -0
- package/dist/enforcement/adapters/index.d.ts.map +1 -0
- package/dist/enforcement/adapters/index.js +2 -0
- package/dist/enforcement/adapters/index.js.map +1 -0
- package/dist/enforcement/index.d.ts +4 -0
- package/dist/enforcement/index.d.ts.map +1 -0
- package/dist/enforcement/index.js +3 -0
- package/dist/enforcement/index.js.map +1 -0
- package/dist/enforcement/registry.d.ts +23 -0
- package/dist/enforcement/registry.d.ts.map +1 -0
- package/dist/enforcement/registry.js +63 -0
- package/dist/enforcement/registry.js.map +1 -0
- package/dist/enforcement/types.d.ts +51 -0
- package/dist/enforcement/types.d.ts.map +1 -0
- package/dist/enforcement/types.js +8 -0
- package/dist/enforcement/types.js.map +1 -0
- package/dist/facades/facade-factory.d.ts +10 -3
- package/dist/facades/facade-factory.d.ts.map +1 -1
- package/dist/facades/facade-factory.js +94 -5
- package/dist/facades/facade-factory.js.map +1 -1
- package/dist/facades/types.d.ts +15 -1
- package/dist/facades/types.d.ts.map +1 -1
- package/dist/facades/types.js +6 -0
- package/dist/facades/types.js.map +1 -1
- package/dist/health/health-registry.d.ts +40 -0
- package/dist/health/health-registry.d.ts.map +1 -0
- package/dist/health/health-registry.js +134 -0
- package/dist/health/health-registry.js.map +1 -0
- package/dist/health/index.d.ts +5 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +3 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/vault-integrity.d.ts +13 -0
- package/dist/health/vault-integrity.d.ts.map +1 -0
- package/dist/health/vault-integrity.js +49 -0
- package/dist/health/vault-integrity.js.map +1 -0
- package/dist/index.d.ts +67 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/dist/intake/intake-pipeline.d.ts +0 -7
- package/dist/intake/intake-pipeline.d.ts.map +1 -1
- package/dist/intake/intake-pipeline.js +1 -1
- package/dist/intake/intake-pipeline.js.map +1 -1
- package/dist/intelligence/loader.d.ts.map +1 -1
- package/dist/intelligence/loader.js +51 -5
- package/dist/intelligence/loader.js.map +1 -1
- package/dist/intelligence/types.d.ts +1 -0
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/migrations/index.d.ts +6 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +5 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migration-runner.d.ts +51 -0
- package/dist/migrations/migration-runner.d.ts.map +1 -0
- package/dist/migrations/migration-runner.js +141 -0
- package/dist/migrations/migration-runner.js.map +1 -0
- package/dist/packs/index.d.ts +10 -0
- package/dist/packs/index.d.ts.map +1 -0
- package/dist/packs/index.js +8 -0
- package/dist/packs/index.js.map +1 -0
- package/dist/packs/lockfile.d.ts +97 -0
- package/dist/packs/lockfile.d.ts.map +1 -0
- package/dist/packs/lockfile.js +129 -0
- package/dist/packs/lockfile.js.map +1 -0
- package/dist/packs/pack-installer.d.ts +41 -0
- package/dist/packs/pack-installer.d.ts.map +1 -0
- package/dist/packs/pack-installer.js +253 -0
- package/dist/packs/pack-installer.js.map +1 -0
- package/dist/packs/resolver.d.ts +51 -0
- package/dist/packs/resolver.d.ts.map +1 -0
- package/dist/packs/resolver.js +195 -0
- package/dist/packs/resolver.js.map +1 -0
- package/dist/packs/types.d.ts +186 -0
- package/dist/packs/types.d.ts.map +1 -0
- package/dist/packs/types.js +69 -0
- package/dist/packs/types.js.map +1 -0
- package/dist/persistence/postgres-provider.d.ts +42 -7
- package/dist/persistence/postgres-provider.d.ts.map +1 -1
- package/dist/persistence/postgres-provider.js +187 -46
- package/dist/persistence/postgres-provider.js.map +1 -1
- package/dist/playbooks/index.d.ts +2 -0
- package/dist/playbooks/index.d.ts.map +1 -1
- package/dist/playbooks/index.js +2 -0
- package/dist/playbooks/index.js.map +1 -1
- package/dist/playbooks/playbook-executor.d.ts +100 -0
- package/dist/playbooks/playbook-executor.d.ts.map +1 -0
- package/dist/playbooks/playbook-executor.js +207 -0
- package/dist/playbooks/playbook-executor.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +7 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-loader.d.ts +28 -0
- package/dist/plugins/plugin-loader.d.ts.map +1 -0
- package/dist/plugins/plugin-loader.js +150 -0
- package/dist/plugins/plugin-loader.js.map +1 -0
- package/dist/plugins/plugin-registry.d.ts +58 -0
- package/dist/plugins/plugin-registry.d.ts.map +1 -0
- package/dist/plugins/plugin-registry.js +157 -0
- package/dist/plugins/plugin-registry.js.map +1 -0
- package/dist/plugins/types.d.ts +180 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +48 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
- package/dist/runtime/admin-extra-ops.js +181 -8
- package/dist/runtime/admin-extra-ops.js.map +1 -1
- package/dist/runtime/capture-ops.d.ts.map +1 -1
- package/dist/runtime/capture-ops.js +106 -7
- package/dist/runtime/capture-ops.js.map +1 -1
- package/dist/runtime/deprecation.d.ts +33 -0
- package/dist/runtime/deprecation.d.ts.map +1 -0
- package/dist/runtime/deprecation.js +41 -0
- package/dist/runtime/deprecation.js.map +1 -0
- package/dist/runtime/domain-ops.d.ts.map +1 -1
- package/dist/runtime/domain-ops.js +21 -2
- package/dist/runtime/domain-ops.js.map +1 -1
- package/dist/runtime/facades/admin-facade.d.ts.map +1 -1
- package/dist/runtime/facades/admin-facade.js +12 -1
- package/dist/runtime/facades/admin-facade.js.map +1 -1
- package/dist/runtime/facades/agency-facade.d.ts +7 -0
- package/dist/runtime/facades/agency-facade.d.ts.map +1 -0
- package/dist/runtime/facades/agency-facade.js +103 -0
- package/dist/runtime/facades/agency-facade.js.map +1 -0
- package/dist/runtime/facades/brain-facade.d.ts.map +1 -1
- package/dist/runtime/facades/brain-facade.js +58 -0
- package/dist/runtime/facades/brain-facade.js.map +1 -1
- package/dist/runtime/facades/chat-facade.d.ts +7 -0
- package/dist/runtime/facades/chat-facade.d.ts.map +1 -0
- package/dist/runtime/facades/chat-facade.js +808 -0
- package/dist/runtime/facades/chat-facade.js.map +1 -0
- package/dist/runtime/facades/context-facade.d.ts +7 -0
- package/dist/runtime/facades/context-facade.d.ts.map +1 -0
- package/dist/runtime/facades/context-facade.js +45 -0
- package/dist/runtime/facades/context-facade.js.map +1 -0
- package/dist/runtime/facades/index.d.ts.map +1 -1
- package/dist/runtime/facades/index.js +18 -0
- package/dist/runtime/facades/index.js.map +1 -1
- package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
- package/dist/runtime/facades/vault-facade.js +247 -1
- package/dist/runtime/facades/vault-facade.js.map +1 -1
- package/dist/runtime/feature-flags.d.ts +18 -0
- package/dist/runtime/feature-flags.d.ts.map +1 -0
- package/dist/runtime/feature-flags.js +90 -0
- package/dist/runtime/feature-flags.js.map +1 -0
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +13 -0
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/pack-ops.d.ts +9 -0
- package/dist/runtime/pack-ops.d.ts.map +1 -0
- package/dist/runtime/pack-ops.js +76 -0
- package/dist/runtime/pack-ops.js.map +1 -0
- package/dist/runtime/playbook-ops.d.ts +3 -7
- package/dist/runtime/playbook-ops.d.ts.map +1 -1
- package/dist/runtime/playbook-ops.js +101 -10
- package/dist/runtime/playbook-ops.js.map +1 -1
- package/dist/runtime/plugin-ops.d.ts +9 -0
- package/dist/runtime/plugin-ops.d.ts.map +1 -0
- package/dist/runtime/plugin-ops.js +235 -0
- package/dist/runtime/plugin-ops.js.map +1 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +72 -5
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/telemetry-ops.d.ts +10 -0
- package/dist/runtime/telemetry-ops.d.ts.map +1 -0
- package/dist/runtime/telemetry-ops.js +53 -0
- package/dist/runtime/telemetry-ops.js.map +1 -0
- package/dist/runtime/types.d.ts +35 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-sharing-ops.d.ts +13 -0
- package/dist/runtime/vault-sharing-ops.d.ts.map +1 -0
- package/dist/runtime/vault-sharing-ops.js +345 -0
- package/dist/runtime/vault-sharing-ops.js.map +1 -0
- package/dist/streams/index.d.ts +1 -1
- package/dist/streams/index.d.ts.map +1 -1
- package/dist/streams/index.js +1 -1
- package/dist/streams/index.js.map +1 -1
- package/dist/streams/replayable-stream.d.ts +13 -1
- package/dist/streams/replayable-stream.d.ts.map +1 -1
- package/dist/streams/replayable-stream.js +27 -3
- package/dist/streams/replayable-stream.js.map +1 -1
- package/dist/text/similarity.d.ts +0 -1
- package/dist/text/similarity.d.ts.map +1 -1
- package/dist/text/similarity.js +1 -1
- package/dist/text/similarity.js.map +1 -1
- package/dist/transport/http-server.d.ts +56 -0
- package/dist/transport/http-server.d.ts.map +1 -0
- package/dist/transport/http-server.js +210 -0
- package/dist/transport/http-server.js.map +1 -0
- package/dist/transport/index.d.ts +11 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +10 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/lsp-server.d.ts +140 -0
- package/dist/transport/lsp-server.d.ts.map +1 -0
- package/dist/transport/lsp-server.js +239 -0
- package/dist/transport/lsp-server.js.map +1 -0
- package/dist/transport/rate-limiter.d.ts +35 -0
- package/dist/transport/rate-limiter.d.ts.map +1 -0
- package/dist/transport/rate-limiter.js +72 -0
- package/dist/transport/rate-limiter.js.map +1 -0
- package/dist/transport/session-manager.d.ts +49 -0
- package/dist/transport/session-manager.d.ts.map +1 -0
- package/dist/transport/session-manager.js +83 -0
- package/dist/transport/session-manager.js.map +1 -0
- package/dist/transport/token-auth.d.ts +29 -0
- package/dist/transport/token-auth.d.ts.map +1 -0
- package/dist/transport/token-auth.js +84 -0
- package/dist/transport/token-auth.js.map +1 -0
- package/dist/transport/types.d.ts +61 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +5 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/transport/ws-server.d.ts +78 -0
- package/dist/transport/ws-server.d.ts.map +1 -0
- package/dist/transport/ws-server.js +342 -0
- package/dist/transport/ws-server.js.map +1 -0
- package/dist/vault/git-vault-sync.d.ts +107 -0
- package/dist/vault/git-vault-sync.d.ts.map +1 -0
- package/dist/vault/git-vault-sync.js +251 -0
- package/dist/vault/git-vault-sync.js.map +1 -0
- package/dist/vault/knowledge-review.d.ts +67 -0
- package/dist/vault/knowledge-review.d.ts.map +1 -0
- package/dist/vault/knowledge-review.js +133 -0
- package/dist/vault/knowledge-review.js.map +1 -0
- package/dist/vault/obsidian-sync.d.ts +94 -0
- package/dist/vault/obsidian-sync.d.ts.map +1 -0
- package/dist/vault/obsidian-sync.js +247 -0
- package/dist/vault/obsidian-sync.js.map +1 -0
- package/dist/vault/scope-detector.d.ts +31 -0
- package/dist/vault/scope-detector.d.ts.map +1 -0
- package/dist/vault/scope-detector.js +182 -0
- package/dist/vault/scope-detector.js.map +1 -0
- package/dist/vault/vault-branching.d.ts +71 -0
- package/dist/vault/vault-branching.d.ts.map +1 -0
- package/dist/vault/vault-branching.js +180 -0
- package/dist/vault/vault-branching.js.map +1 -0
- package/dist/vault/vault-manager.d.ts +89 -0
- package/dist/vault/vault-manager.d.ts.map +1 -0
- package/dist/vault/vault-manager.js +199 -0
- package/dist/vault/vault-manager.js.map +1 -0
- package/dist/vault/vault-types.d.ts +30 -0
- package/dist/vault/vault-types.d.ts.map +1 -0
- package/dist/vault/vault-types.js +10 -0
- package/dist/vault/vault-types.js.map +1 -0
- package/dist/vault/vault.d.ts +10 -0
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +36 -3
- package/dist/vault/vault.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/admin-extra-ops.test.ts +31 -11
- package/src/__tests__/agency-manager.test.ts +374 -0
- package/src/__tests__/agent-loop.test.ts +256 -0
- package/src/__tests__/capture-ops.test.ts +275 -0
- package/src/__tests__/chat-differentiators.test.ts +251 -0
- package/src/__tests__/chat-enhanced.test.ts +390 -0
- package/src/__tests__/chat-transport.test.ts +665 -0
- package/src/__tests__/claudemd.test.ts +282 -0
- package/src/__tests__/context-engine.test.ts +256 -0
- package/src/__tests__/core-ops.test.ts +97 -5
- package/src/__tests__/deprecation.test.ts +78 -0
- package/src/__tests__/enforcement.test.ts +153 -0
- package/src/__tests__/facade-factory.test.ts +271 -0
- package/src/__tests__/feature-flags.test.ts +138 -0
- package/src/__tests__/git-vault-sync.test.ts +230 -0
- package/src/__tests__/health-registry.test.ts +173 -0
- package/src/__tests__/knowledge-review.test.ts +104 -0
- package/src/__tests__/lsp-transport.test.ts +442 -0
- package/src/__tests__/migration-runner.test.ts +170 -0
- package/src/__tests__/normalize.test.ts +10 -0
- package/src/__tests__/obsidian-sync.test.ts +354 -0
- package/src/__tests__/pack-lockfile.test.ts +261 -0
- package/src/__tests__/pack-ops.test.ts +146 -0
- package/src/__tests__/pack-system.test.ts +423 -0
- package/src/__tests__/playbook-executor.test.ts +249 -0
- package/src/__tests__/playbook-ops-execution.test.ts +189 -0
- package/src/__tests__/plugin-ops.test.ts +411 -0
- package/src/__tests__/plugin-system.test.ts +509 -0
- package/src/__tests__/postgres-provider.test.ts +64 -6
- package/src/__tests__/replayable-stream.test.ts +112 -1
- package/src/__tests__/scope-detector.test.ts +121 -0
- package/src/__tests__/session-lifecycle.test.ts +259 -0
- package/src/__tests__/transport.test.ts +758 -0
- package/src/__tests__/vault-branching.test.ts +274 -0
- package/src/__tests__/vault-connect.test.ts +179 -0
- package/src/__tests__/vault-integrity.test.ts +71 -0
- package/src/__tests__/vault-manager.test.ts +238 -0
- package/src/__tests__/vault-scaling.test.ts +281 -0
- package/src/__tests__/vault-sharing.test.ts +270 -0
- package/src/__tests__/ws-transport.test.ts +479 -0
- package/src/agency/agency-manager.ts +326 -0
- package/src/agency/index.ts +13 -0
- package/src/agency/types.ts +88 -0
- package/src/brain/brain.ts +27 -11
- package/src/brain/intelligence.ts +103 -0
- package/src/brain/types.ts +26 -0
- package/src/chat/agent-loop-types.ts +99 -0
- package/src/chat/agent-loop.ts +357 -0
- package/src/chat/auth-manager.ts +171 -0
- package/src/chat/browser-session.ts +188 -0
- package/src/chat/cancellation.ts +99 -0
- package/src/chat/chat-session.ts +283 -0
- package/src/chat/file-handler.ts +230 -0
- package/src/chat/fragment-buffer.ts +160 -0
- package/src/chat/index.ts +72 -0
- package/src/chat/mcp-bridge.ts +135 -0
- package/src/chat/notifications.ts +164 -0
- package/src/chat/output-compressor.ts +116 -0
- package/src/chat/queue.ts +208 -0
- package/src/chat/response-chunker.ts +200 -0
- package/src/chat/self-update.ts +117 -0
- package/src/chat/types.ts +126 -0
- package/src/chat/voice.ts +134 -0
- package/src/claudemd/compose.ts +142 -0
- package/src/claudemd/index.ts +17 -0
- package/src/claudemd/inject.ts +170 -0
- package/src/claudemd/types.ts +45 -0
- package/src/context/context-engine.ts +302 -0
- package/src/context/index.ts +11 -0
- package/src/context/types.ts +69 -0
- package/src/enforcement/adapters/claude-code.ts +135 -0
- package/src/enforcement/adapters/index.ts +1 -0
- package/src/enforcement/index.ts +10 -0
- package/src/enforcement/registry.ts +82 -0
- package/src/enforcement/types.ts +56 -0
- package/src/facades/facade-factory.ts +138 -5
- package/src/facades/types.ts +21 -0
- package/src/health/health-registry.ts +165 -0
- package/src/health/index.ts +11 -0
- package/src/health/vault-integrity.ts +66 -0
- package/src/index.ts +294 -2
- package/src/intake/intake-pipeline.ts +1 -1
- package/src/intelligence/loader.ts +58 -5
- package/src/intelligence/types.ts +1 -0
- package/src/migrations/index.ts +6 -0
- package/src/migrations/migration-runner.ts +185 -0
- package/src/packs/index.ts +20 -0
- package/src/packs/lockfile.ts +180 -0
- package/src/packs/pack-installer.ts +289 -0
- package/src/packs/resolver.ts +237 -0
- package/src/packs/types.ts +125 -0
- package/src/persistence/postgres-provider.ts +211 -58
- package/src/playbooks/index.ts +11 -0
- package/src/playbooks/playbook-executor.ts +301 -0
- package/src/plugins/index.ts +19 -0
- package/src/plugins/plugin-loader.ts +183 -0
- package/src/plugins/plugin-registry.ts +187 -0
- package/src/plugins/types.ts +119 -0
- package/src/runtime/admin-extra-ops.ts +193 -8
- package/src/runtime/capture-ops.ts +113 -8
- package/src/runtime/deprecation.ts +58 -0
- package/src/runtime/domain-ops.ts +21 -2
- package/src/runtime/facades/admin-facade.ts +16 -1
- package/src/runtime/facades/agency-facade.ts +111 -0
- package/src/runtime/facades/brain-facade.ts +60 -0
- package/src/runtime/facades/chat-facade.ts +918 -0
- package/src/runtime/facades/context-facade.ts +55 -0
- package/src/runtime/facades/index.ts +22 -1
- package/src/runtime/facades/vault-facade.ts +261 -1
- package/src/runtime/feature-flags.ts +101 -0
- package/src/runtime/orchestrate-ops.ts +13 -0
- package/src/runtime/pack-ops.ts +85 -0
- package/src/runtime/playbook-ops.ts +113 -9
- package/src/runtime/plugin-ops.ts +258 -0
- package/src/runtime/runtime.ts +84 -5
- package/src/runtime/telemetry-ops.ts +57 -0
- package/src/runtime/types.ts +35 -0
- package/src/runtime/vault-sharing-ops.ts +372 -0
- package/src/streams/index.ts +1 -1
- package/src/streams/replayable-stream.ts +34 -3
- package/src/text/similarity.ts +1 -1
- package/src/transport/http-server.ts +269 -0
- package/src/transport/index.ts +48 -0
- package/src/transport/lsp-server.ts +401 -0
- package/src/transport/rate-limiter.ts +97 -0
- package/src/transport/session-manager.ts +120 -0
- package/src/transport/token-auth.ts +96 -0
- package/src/transport/types.ts +66 -0
- package/src/transport/ws-server.ts +415 -0
- package/src/vault/git-vault-sync.ts +318 -0
- package/src/vault/knowledge-review.ts +221 -0
- package/src/vault/obsidian-sync.ts +346 -0
- package/src/vault/scope-detector.ts +219 -0
- package/src/vault/vault-branching.ts +264 -0
- package/src/vault/vault-manager.ts +237 -0
- package/src/vault/vault-types.ts +50 -0
- package/src/vault/vault.ts +41 -3
- package/src/governance/index.ts +0 -18
package/dist/runtime/runtime.js
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { homedir } from 'node:os';
|
|
11
|
-
import { Vault } from '../vault/vault.js';
|
|
12
11
|
import { Brain } from '../brain/brain.js';
|
|
13
12
|
import { BrainIntelligence } from '../brain/intelligence.js';
|
|
14
13
|
import { Planner } from '../planning/planner.js';
|
|
@@ -26,8 +25,19 @@ import { IntakePipeline } from '../intake/intake-pipeline.js';
|
|
|
26
25
|
import { Telemetry } from '../telemetry/telemetry.js';
|
|
27
26
|
import { ProjectRegistry } from '../project/project-registry.js';
|
|
28
27
|
import { TemplateManager } from '../prompts/template-manager.js';
|
|
29
|
-
import { existsSync } from 'node:fs';
|
|
28
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
30
29
|
import { createLogger } from '../logging/logger.js';
|
|
30
|
+
import { FeatureFlags } from './feature-flags.js';
|
|
31
|
+
import { HealthRegistry } from '../health/health-registry.js';
|
|
32
|
+
import { checkVaultIntegrity } from '../health/vault-integrity.js';
|
|
33
|
+
import { PlaybookExecutor } from '../playbooks/playbook-executor.js';
|
|
34
|
+
import { PluginRegistry } from '../plugins/plugin-registry.js';
|
|
35
|
+
import { PackInstaller } from '../packs/pack-installer.js';
|
|
36
|
+
import { VaultManager } from '../vault/vault-manager.js';
|
|
37
|
+
import { VaultBranching } from '../vault/vault-branching.js';
|
|
38
|
+
import { ContextEngine } from '../context/context-engine.js';
|
|
39
|
+
import { AgencyManager } from '../agency/agency-manager.js';
|
|
40
|
+
import { KnowledgeReview } from '../vault/knowledge-review.js';
|
|
31
41
|
/**
|
|
32
42
|
* Create a fully initialized agent runtime.
|
|
33
43
|
*
|
|
@@ -43,8 +53,20 @@ export function createAgentRuntime(config) {
|
|
|
43
53
|
const plansPath = config.plansPath ?? join(agentHome, 'plans.json');
|
|
44
54
|
// Logger — structured output to stderr
|
|
45
55
|
const logger = createLogger({ level: config.logLevel, prefix: `[${agentId}]` });
|
|
46
|
-
// Vault —
|
|
47
|
-
const
|
|
56
|
+
// Vault Manager — multi-tier vault orchestration
|
|
57
|
+
const vaultManager = new VaultManager({ agentId });
|
|
58
|
+
// Vault — persistent SQLite knowledge store (agent tier)
|
|
59
|
+
const vault = vaultManager.open('agent', vaultPath);
|
|
60
|
+
// Shared vault — cross-agent intelligence (lower priority than agent vault)
|
|
61
|
+
try {
|
|
62
|
+
const sharedVaultDir = join(homedir(), '.soleri');
|
|
63
|
+
mkdirSync(sharedVaultDir, { recursive: true });
|
|
64
|
+
const sharedVaultPath = config.sharedVaultPath ?? join(sharedVaultDir, 'vault.db');
|
|
65
|
+
vaultManager.connect('shared', sharedVaultPath, 0.6);
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
logger.warn(`Shared vault unavailable: ${err instanceof Error ? err.message : String(err)}`);
|
|
69
|
+
}
|
|
48
70
|
// Seed intelligence data if dataDir provided
|
|
49
71
|
if (config.dataDir) {
|
|
50
72
|
const entries = loadIntelligenceData(config.dataDir);
|
|
@@ -97,6 +119,40 @@ export function createAgentRuntime(config) {
|
|
|
97
119
|
vault.setSyncManager(syncManager);
|
|
98
120
|
// Intake Pipeline — PDF/book ingestion with LLM classification
|
|
99
121
|
const intakePipeline = new IntakePipeline(vault.getProvider(), vault, llmClient);
|
|
122
|
+
// Playbook Executor — in-memory step-by-step workflow sessions
|
|
123
|
+
const playbookExecutor = new PlaybookExecutor();
|
|
124
|
+
// Plugin Registry — dynamic facade loading
|
|
125
|
+
const pluginRegistry = new PluginRegistry();
|
|
126
|
+
// Pack Installer — knowledge pack management
|
|
127
|
+
const packInstaller = new PackInstaller(vault, pluginRegistry);
|
|
128
|
+
// Vault Branching — experiment with knowledge changes before merging
|
|
129
|
+
const vaultBranching = new VaultBranching(vault);
|
|
130
|
+
// Context Engine — entity extraction, knowledge retrieval, confidence scoring
|
|
131
|
+
const contextEngine = new ContextEngine(vault, brain, brainIntelligence, cognee);
|
|
132
|
+
// Agency Manager — proactive file watching, pattern surfacing (disabled by default)
|
|
133
|
+
const agencyManager = new AgencyManager(vault);
|
|
134
|
+
// Knowledge Review — team review workflows (submit/approve/reject)
|
|
135
|
+
const knowledgeReview = new KnowledgeReview(vault.getProvider());
|
|
136
|
+
// Health Registry — centralized subsystem status tracking
|
|
137
|
+
const health = new HealthRegistry();
|
|
138
|
+
health.register('vault', 'healthy');
|
|
139
|
+
health.register('brain', 'healthy');
|
|
140
|
+
health.register('cognee', cognee.getStatus()?.available ? 'healthy' : 'degraded');
|
|
141
|
+
health.register('llm', llmClient.isAvailable().openai || llmClient.isAvailable().anthropic ? 'healthy' : 'degraded');
|
|
142
|
+
health.register('planner', 'healthy');
|
|
143
|
+
// Vault integrity check on startup (non-fatal)
|
|
144
|
+
try {
|
|
145
|
+
const integrity = checkVaultIntegrity(vault.getProvider());
|
|
146
|
+
if (!integrity.schemaValid || !integrity.ftsValid) {
|
|
147
|
+
health.update('vault', 'degraded', integrity.errors.join('; '));
|
|
148
|
+
if (integrity.ftsRebuilt) {
|
|
149
|
+
logger.info('Vault FTS index rebuilt automatically');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Integrity check itself failed — vault may still work
|
|
155
|
+
}
|
|
100
156
|
return {
|
|
101
157
|
config,
|
|
102
158
|
logger,
|
|
@@ -117,11 +173,22 @@ export function createAgentRuntime(config) {
|
|
|
117
173
|
templateManager,
|
|
118
174
|
syncManager,
|
|
119
175
|
intakePipeline,
|
|
176
|
+
authPolicy: { mode: 'permissive', callerLevel: 'admin' },
|
|
177
|
+
flags: new FeatureFlags(join(agentHome, 'flags.json')),
|
|
178
|
+
health,
|
|
179
|
+
playbookExecutor,
|
|
180
|
+
pluginRegistry,
|
|
181
|
+
packInstaller,
|
|
182
|
+
vaultManager,
|
|
183
|
+
vaultBranching,
|
|
184
|
+
contextEngine,
|
|
185
|
+
agencyManager,
|
|
186
|
+
knowledgeReview,
|
|
120
187
|
createdAt: Date.now(),
|
|
121
188
|
close: () => {
|
|
122
189
|
syncManager.close();
|
|
123
190
|
cognee.resetPendingCognify();
|
|
124
|
-
|
|
191
|
+
vaultManager.close();
|
|
125
192
|
},
|
|
126
193
|
};
|
|
127
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extended telemetry ops — error aggregation and slow op detection.
|
|
3
|
+
*
|
|
4
|
+
* Complements admin_telemetry, admin_telemetry_recent, admin_telemetry_reset
|
|
5
|
+
* in admin-extra-ops with higher-level analysis.
|
|
6
|
+
*/
|
|
7
|
+
import type { OpDefinition } from '../facades/types.js';
|
|
8
|
+
import type { AgentRuntime } from './types.js';
|
|
9
|
+
export declare function createTelemetryOps(runtime: AgentRuntime): OpDefinition[];
|
|
10
|
+
//# sourceMappingURL=telemetry-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/telemetry-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CA6CxE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extended telemetry ops — error aggregation and slow op detection.
|
|
3
|
+
*
|
|
4
|
+
* Complements admin_telemetry, admin_telemetry_recent, admin_telemetry_reset
|
|
5
|
+
* in admin-extra-ops with higher-level analysis.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
export function createTelemetryOps(runtime) {
|
|
9
|
+
const { telemetry } = runtime;
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
name: 'telemetry_errors',
|
|
13
|
+
description: 'Get recent errors grouped by op name with error details.',
|
|
14
|
+
auth: 'read',
|
|
15
|
+
handler: async () => {
|
|
16
|
+
const stats = telemetry.getStats();
|
|
17
|
+
const recent = telemetry.getRecent(200);
|
|
18
|
+
const errors = recent.filter((c) => !c.success);
|
|
19
|
+
return {
|
|
20
|
+
errorCount: errors.length,
|
|
21
|
+
errorsByOp: stats.errorsByOp,
|
|
22
|
+
recentErrors: errors.slice(0, 20).map((e) => ({
|
|
23
|
+
op: e.op,
|
|
24
|
+
facade: e.facade,
|
|
25
|
+
error: e.error,
|
|
26
|
+
timestamp: e.timestamp,
|
|
27
|
+
})),
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'telemetry_slow_ops',
|
|
33
|
+
description: 'Get the slowest ops by average duration, filtered by threshold.',
|
|
34
|
+
auth: 'read',
|
|
35
|
+
schema: z.object({
|
|
36
|
+
threshold: z
|
|
37
|
+
.number()
|
|
38
|
+
.optional()
|
|
39
|
+
.default(100)
|
|
40
|
+
.describe('Minimum avg duration in ms to report'),
|
|
41
|
+
}),
|
|
42
|
+
handler: async (params) => {
|
|
43
|
+
const stats = telemetry.getStats();
|
|
44
|
+
const threshold = params.threshold ?? 100;
|
|
45
|
+
return {
|
|
46
|
+
slowOps: stats.slowestOps.filter((o) => o.avgMs >= threshold),
|
|
47
|
+
avgDurationMs: stats.avgDurationMs,
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=telemetry-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-ops.js","sourceRoot":"","sources":["../../src/runtime/telemetry-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,OAAO;QACL;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO;oBACL,UAAU,EAAE,MAAM,CAAC,MAAM;oBACzB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,iEAAiE;YAC9E,IAAI,EAAE,MAAe;YACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,SAAS,EAAE,CAAC;qBACT,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,OAAO,CAAC,GAAG,CAAC;qBACZ,QAAQ,CAAC,sCAAsC,CAAC;aACpD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,GAAG,CAAC;gBACtD,OAAO;oBACL,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC;oBAC7D,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -17,6 +17,17 @@ import type { CogneeSyncManager } from '../cognee/sync-manager.js';
|
|
|
17
17
|
import type { IntakePipeline } from '../intake/intake-pipeline.js';
|
|
18
18
|
import type { Logger } from '../logging/logger.js';
|
|
19
19
|
import type { LogLevel } from '../logging/types.js';
|
|
20
|
+
import type { AuthPolicy } from '../facades/types.js';
|
|
21
|
+
import type { FeatureFlags } from './feature-flags.js';
|
|
22
|
+
import type { HealthRegistry } from '../health/health-registry.js';
|
|
23
|
+
import type { PlaybookExecutor } from '../playbooks/playbook-executor.js';
|
|
24
|
+
import type { PluginRegistry } from '../plugins/plugin-registry.js';
|
|
25
|
+
import type { PackInstaller } from '../packs/pack-installer.js';
|
|
26
|
+
import type { VaultManager } from '../vault/vault-manager.js';
|
|
27
|
+
import type { VaultBranching } from '../vault/vault-branching.js';
|
|
28
|
+
import type { ContextEngine } from '../context/context-engine.js';
|
|
29
|
+
import type { AgencyManager } from '../agency/agency-manager.js';
|
|
30
|
+
import type { KnowledgeReview } from '../vault/knowledge-review.js';
|
|
20
31
|
/**
|
|
21
32
|
* Configuration for creating an agent runtime.
|
|
22
33
|
* Only `agentId` is required — everything else has sensible defaults.
|
|
@@ -34,6 +45,8 @@ export interface AgentRuntimeConfig {
|
|
|
34
45
|
templatesDir?: string;
|
|
35
46
|
/** Minimum log level. Default: 'info' (or SOLERI_LOG_LEVEL env var). */
|
|
36
47
|
logLevel?: LogLevel;
|
|
48
|
+
/** Path to shared global vault. Default: ~/.soleri/vault.db */
|
|
49
|
+
sharedVaultPath?: string;
|
|
37
50
|
}
|
|
38
51
|
/**
|
|
39
52
|
* Fully initialized agent runtime — all modules ready.
|
|
@@ -62,6 +75,28 @@ export interface AgentRuntime {
|
|
|
62
75
|
templateManager: TemplateManager;
|
|
63
76
|
syncManager: CogneeSyncManager;
|
|
64
77
|
intakePipeline: IntakePipeline;
|
|
78
|
+
/** Mutable auth policy — controls facade dispatch enforcement. */
|
|
79
|
+
authPolicy: AuthPolicy;
|
|
80
|
+
/** Feature flags — file-based + env var + runtime toggles. */
|
|
81
|
+
flags: FeatureFlags;
|
|
82
|
+
/** Centralized health registry — subsystem status tracking. */
|
|
83
|
+
health: HealthRegistry;
|
|
84
|
+
/** Playbook executor — in-memory step-by-step workflow sessions. */
|
|
85
|
+
playbookExecutor: PlaybookExecutor;
|
|
86
|
+
/** Plugin registry — dynamic facade loading without re-scaffold. */
|
|
87
|
+
pluginRegistry: PluginRegistry;
|
|
88
|
+
/** Pack installer — knowledge pack installation and management. */
|
|
89
|
+
packInstaller: PackInstaller;
|
|
90
|
+
/** Vault manager — multi-tier vault orchestration with cascading search. */
|
|
91
|
+
vaultManager: VaultManager;
|
|
92
|
+
/** Vault branching — experiment with knowledge changes before merging. */
|
|
93
|
+
vaultBranching: VaultBranching;
|
|
94
|
+
/** Context engine — entity extraction, knowledge retrieval, confidence scoring. */
|
|
95
|
+
contextEngine: ContextEngine;
|
|
96
|
+
/** Agency manager — proactive file watching, pattern surfacing, warning detection. */
|
|
97
|
+
agencyManager: AgencyManager;
|
|
98
|
+
/** Knowledge review — team review workflows (submit/approve/reject). */
|
|
99
|
+
knowledgeReview: KnowledgeReview;
|
|
65
100
|
/** Timestamp (ms since epoch) when this runtime was created. */
|
|
66
101
|
createdAt: number;
|
|
67
102
|
/** Close the vault database connection. Call on shutdown. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault Sharing Ops — knowledge scoping, export, sync, and review ops.
|
|
3
|
+
*
|
|
4
|
+
* Covers:
|
|
5
|
+
* - #105: Knowledge scoping (detect_scope, set_scope, scope-aware filtering)
|
|
6
|
+
* - #104: Vault export to shareable packs
|
|
7
|
+
* - #67: Vault push/pull git sync with conflict resolution
|
|
8
|
+
* - #65: Team review workflows (submit/approve/reject)
|
|
9
|
+
*/
|
|
10
|
+
import type { OpDefinition } from '../facades/types.js';
|
|
11
|
+
import type { AgentRuntime } from './types.js';
|
|
12
|
+
export declare function createVaultSharingOps(runtime: AgentRuntime): OpDefinition[];
|
|
13
|
+
//# sourceMappingURL=vault-sharing-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-sharing-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/vault-sharing-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAkW3E"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault Sharing Ops — knowledge scoping, export, sync, and review ops.
|
|
3
|
+
*
|
|
4
|
+
* Covers:
|
|
5
|
+
* - #105: Knowledge scoping (detect_scope, set_scope, scope-aware filtering)
|
|
6
|
+
* - #104: Vault export to shareable packs
|
|
7
|
+
* - #67: Vault push/pull git sync with conflict resolution
|
|
8
|
+
* - #65: Team review workflows (submit/approve/reject)
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { detectScope } from '../vault/scope-detector.js';
|
|
12
|
+
import { GitVaultSync } from '../vault/git-vault-sync.js';
|
|
13
|
+
export function createVaultSharingOps(runtime) {
|
|
14
|
+
const { vault, knowledgeReview } = runtime;
|
|
15
|
+
return [
|
|
16
|
+
// ─── Scoping (#105) ───────────────────────────────────────────
|
|
17
|
+
{
|
|
18
|
+
name: 'vault_detect_scope',
|
|
19
|
+
description: 'Auto-detect the appropriate scope tier (agent/project/team) for a knowledge entry using weighted heuristics on content, category, tags, and title.',
|
|
20
|
+
auth: 'read',
|
|
21
|
+
schema: z.object({
|
|
22
|
+
title: z.string().describe('Entry title'),
|
|
23
|
+
description: z.string().describe('Entry description'),
|
|
24
|
+
category: z.string().optional().describe('Entry category/domain'),
|
|
25
|
+
tags: z.array(z.string()).optional().describe('Entry tags'),
|
|
26
|
+
}),
|
|
27
|
+
handler: async (params) => {
|
|
28
|
+
const input = {
|
|
29
|
+
title: params.title,
|
|
30
|
+
description: params.description,
|
|
31
|
+
category: params.category,
|
|
32
|
+
tags: params.tags,
|
|
33
|
+
};
|
|
34
|
+
return detectScope(input);
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'vault_set_scope',
|
|
39
|
+
description: 'Manually set the scope tier for a vault entry. Overrides auto-detection.',
|
|
40
|
+
auth: 'write',
|
|
41
|
+
schema: z.object({
|
|
42
|
+
id: z.string().describe('Entry ID'),
|
|
43
|
+
tier: z.enum(['agent', 'project', 'team']).describe('Scope tier'),
|
|
44
|
+
}),
|
|
45
|
+
handler: async (params) => {
|
|
46
|
+
const id = params.id;
|
|
47
|
+
const tier = params.tier;
|
|
48
|
+
const entry = vault.get(id);
|
|
49
|
+
if (!entry)
|
|
50
|
+
return { error: `Entry '${id}' not found` };
|
|
51
|
+
vault.seed([{ ...entry, tier }]);
|
|
52
|
+
return { updated: true, id, tier };
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'vault_list_by_scope',
|
|
57
|
+
description: 'List vault entries filtered by scope tier, with optional domain/type filters.',
|
|
58
|
+
auth: 'read',
|
|
59
|
+
schema: z.object({
|
|
60
|
+
tier: z.enum(['agent', 'project', 'team']).describe('Scope tier to filter by'),
|
|
61
|
+
domain: z.string().optional(),
|
|
62
|
+
type: z.enum(['pattern', 'anti-pattern', 'rule', 'playbook']).optional(),
|
|
63
|
+
limit: z.number().optional(),
|
|
64
|
+
offset: z.number().optional(),
|
|
65
|
+
}),
|
|
66
|
+
handler: async (params) => {
|
|
67
|
+
const tier = params.tier;
|
|
68
|
+
const filters = ['tier = @tier'];
|
|
69
|
+
const fp = { tier };
|
|
70
|
+
if (params.domain) {
|
|
71
|
+
filters.push('domain = @domain');
|
|
72
|
+
fp.domain = params.domain;
|
|
73
|
+
}
|
|
74
|
+
if (params.type) {
|
|
75
|
+
filters.push('type = @type');
|
|
76
|
+
fp.type = params.type;
|
|
77
|
+
}
|
|
78
|
+
const limit = params.limit ?? 50;
|
|
79
|
+
const offset = params.offset ?? 0;
|
|
80
|
+
fp.limit = limit;
|
|
81
|
+
fp.offset = offset;
|
|
82
|
+
const wc = `WHERE ${filters.join(' AND ')}`;
|
|
83
|
+
const provider = vault.getProvider();
|
|
84
|
+
const rows = provider.all(`SELECT * FROM entries ${wc} ORDER BY domain, title LIMIT @limit OFFSET @offset`, fp);
|
|
85
|
+
// Map to entries using the same logic as vault.list
|
|
86
|
+
const entries = rows.map((row) => ({
|
|
87
|
+
id: row.id,
|
|
88
|
+
type: row.type,
|
|
89
|
+
domain: row.domain,
|
|
90
|
+
title: row.title,
|
|
91
|
+
severity: row.severity,
|
|
92
|
+
description: row.description,
|
|
93
|
+
tier: row.tier ?? 'agent',
|
|
94
|
+
tags: JSON.parse(row.tags || '[]'),
|
|
95
|
+
}));
|
|
96
|
+
return { entries, count: entries.length, tier };
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
// ─── Export to Pack (#104) ─────────────────────────────────────
|
|
100
|
+
{
|
|
101
|
+
name: 'vault_export_pack',
|
|
102
|
+
description: 'Export vault entries as a shareable intelligence pack. Filters by tier, domain, or tags. Returns IntelligenceBundle format.',
|
|
103
|
+
auth: 'read',
|
|
104
|
+
schema: z.object({
|
|
105
|
+
name: z.string().optional().describe('Pack name (default: agent ID)'),
|
|
106
|
+
version: z.string().optional().describe('Pack version (default: 1.0.0)'),
|
|
107
|
+
tier: z.enum(['agent', 'project', 'team']).optional().describe('Filter by scope tier'),
|
|
108
|
+
domain: z.string().optional().describe('Filter by domain'),
|
|
109
|
+
tags: z.array(z.string()).optional().describe('Filter by tags (OR match)'),
|
|
110
|
+
excludeIds: z.array(z.string()).optional().describe('Entry IDs to exclude'),
|
|
111
|
+
}),
|
|
112
|
+
handler: async (params) => {
|
|
113
|
+
const tier = params.tier;
|
|
114
|
+
const domain = params.domain;
|
|
115
|
+
const tags = params.tags;
|
|
116
|
+
const excludeIds = new Set(params.excludeIds ?? []);
|
|
117
|
+
// Get all matching entries
|
|
118
|
+
let entries = vault.list({ domain, tags, limit: 10000 });
|
|
119
|
+
// Filter by tier if specified
|
|
120
|
+
if (tier) {
|
|
121
|
+
entries = entries.filter((e) => e.tier === tier);
|
|
122
|
+
}
|
|
123
|
+
// Exclude specified IDs
|
|
124
|
+
if (excludeIds.size > 0) {
|
|
125
|
+
entries = entries.filter((e) => !excludeIds.has(e.id));
|
|
126
|
+
}
|
|
127
|
+
// Group by domain into bundles
|
|
128
|
+
const byDomain = new Map();
|
|
129
|
+
for (const entry of entries) {
|
|
130
|
+
const d = entry.domain;
|
|
131
|
+
if (!byDomain.has(d))
|
|
132
|
+
byDomain.set(d, []);
|
|
133
|
+
byDomain.get(d).push(entry);
|
|
134
|
+
}
|
|
135
|
+
const version = params.version ?? '1.0.0';
|
|
136
|
+
const bundles = [];
|
|
137
|
+
for (const [d, domainEntries] of byDomain) {
|
|
138
|
+
bundles.push({ domain: d, version, entries: domainEntries });
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
name: params.name ?? runtime.config.agentId,
|
|
142
|
+
version,
|
|
143
|
+
bundles,
|
|
144
|
+
totalEntries: entries.length,
|
|
145
|
+
domains: [...byDomain.keys()],
|
|
146
|
+
};
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'vault_import_pack',
|
|
151
|
+
description: 'Import an intelligence pack into the vault with content-hash dedup. Entries with duplicate content are skipped.',
|
|
152
|
+
auth: 'write',
|
|
153
|
+
schema: z.object({
|
|
154
|
+
bundles: z
|
|
155
|
+
.array(z.object({
|
|
156
|
+
domain: z.string(),
|
|
157
|
+
version: z.string(),
|
|
158
|
+
entries: z.array(z.record(z.unknown())),
|
|
159
|
+
}))
|
|
160
|
+
.describe('Array of IntelligenceBundle objects to import'),
|
|
161
|
+
tier: z
|
|
162
|
+
.enum(['agent', 'project', 'team'])
|
|
163
|
+
.optional()
|
|
164
|
+
.describe('Force all imported entries to this tier'),
|
|
165
|
+
}),
|
|
166
|
+
handler: async (params) => {
|
|
167
|
+
const bundles = params.bundles;
|
|
168
|
+
const forceTier = params.tier;
|
|
169
|
+
let imported = 0;
|
|
170
|
+
let duplicates = 0;
|
|
171
|
+
for (const bundle of bundles) {
|
|
172
|
+
const entries = bundle.entries.map((e) => ({
|
|
173
|
+
...e,
|
|
174
|
+
tier: forceTier ?? e.tier ?? 'project',
|
|
175
|
+
}));
|
|
176
|
+
const results = vault.seedDedup(entries);
|
|
177
|
+
for (const r of results) {
|
|
178
|
+
if (r.action === 'inserted')
|
|
179
|
+
imported++;
|
|
180
|
+
else
|
|
181
|
+
duplicates++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return { imported, duplicates, total: imported + duplicates };
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
// ─── Git Sync (#67) ───────────────────────────────────────────
|
|
188
|
+
{
|
|
189
|
+
name: 'vault_git_push',
|
|
190
|
+
description: 'Push all vault entries to a git-tracked directory. Each entry becomes a JSON file under domain subdirectories.',
|
|
191
|
+
auth: 'write',
|
|
192
|
+
schema: z.object({
|
|
193
|
+
repoDir: z.string().describe('Path to git-tracked vault directory'),
|
|
194
|
+
authorName: z.string().optional().describe('Git author name'),
|
|
195
|
+
authorEmail: z.string().optional().describe('Git author email'),
|
|
196
|
+
}),
|
|
197
|
+
handler: async (params) => {
|
|
198
|
+
const config = {
|
|
199
|
+
repoDir: params.repoDir,
|
|
200
|
+
authorName: params.authorName,
|
|
201
|
+
authorEmail: params.authorEmail,
|
|
202
|
+
};
|
|
203
|
+
const sync = new GitVaultSync(config);
|
|
204
|
+
await sync.init();
|
|
205
|
+
const { entries } = vault.exportAll();
|
|
206
|
+
return sync.syncAll(entries);
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: 'vault_git_pull',
|
|
211
|
+
description: 'Pull entries from a git-tracked directory into the vault. Reads JSON files and imports with conflict resolution.',
|
|
212
|
+
auth: 'write',
|
|
213
|
+
schema: z.object({
|
|
214
|
+
repoDir: z.string().describe('Path to git-tracked vault directory'),
|
|
215
|
+
onConflict: z
|
|
216
|
+
.enum(['git', 'vault'])
|
|
217
|
+
.optional()
|
|
218
|
+
.describe('Conflict resolution: "git" (default) overwrites vault, "vault" keeps existing'),
|
|
219
|
+
}),
|
|
220
|
+
handler: async (params) => {
|
|
221
|
+
const config = {
|
|
222
|
+
repoDir: params.repoDir,
|
|
223
|
+
autoCommit: false,
|
|
224
|
+
};
|
|
225
|
+
const sync = new GitVaultSync(config);
|
|
226
|
+
await sync.init();
|
|
227
|
+
return sync.pull(vault, {
|
|
228
|
+
onConflict: params.onConflict,
|
|
229
|
+
});
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: 'vault_git_sync',
|
|
234
|
+
description: 'Bidirectional sync between vault and git directory. Pushes vault entries to git and pulls git-only entries into vault.',
|
|
235
|
+
auth: 'write',
|
|
236
|
+
schema: z.object({
|
|
237
|
+
repoDir: z.string().describe('Path to git-tracked vault directory'),
|
|
238
|
+
onConflict: z
|
|
239
|
+
.enum(['git', 'vault'])
|
|
240
|
+
.optional()
|
|
241
|
+
.describe('Conflict resolution for entries that exist in both'),
|
|
242
|
+
authorName: z.string().optional(),
|
|
243
|
+
authorEmail: z.string().optional(),
|
|
244
|
+
}),
|
|
245
|
+
handler: async (params) => {
|
|
246
|
+
const config = {
|
|
247
|
+
repoDir: params.repoDir,
|
|
248
|
+
authorName: params.authorName,
|
|
249
|
+
authorEmail: params.authorEmail,
|
|
250
|
+
};
|
|
251
|
+
const sync = new GitVaultSync(config);
|
|
252
|
+
await sync.init();
|
|
253
|
+
return sync.sync(vault, {
|
|
254
|
+
onConflict: params.onConflict,
|
|
255
|
+
});
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
// ─── Review Workflows (#65) ───────────────────────────────────
|
|
259
|
+
{
|
|
260
|
+
name: 'vault_submit_review',
|
|
261
|
+
description: 'Submit a vault entry for team review. Transitions entry from draft → pending_review.',
|
|
262
|
+
auth: 'write',
|
|
263
|
+
schema: z.object({
|
|
264
|
+
entryId: z.string().describe('Entry ID to submit for review'),
|
|
265
|
+
submittedBy: z.string().optional().describe('Name/ID of the submitter'),
|
|
266
|
+
}),
|
|
267
|
+
handler: async (params) => {
|
|
268
|
+
try {
|
|
269
|
+
return knowledgeReview.submit({
|
|
270
|
+
entryId: params.entryId,
|
|
271
|
+
submittedBy: params.submittedBy,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch (err) {
|
|
275
|
+
return { error: err.message };
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: 'vault_approve',
|
|
281
|
+
description: 'Approve a pending vault entry. Transitions from pending_review → approved.',
|
|
282
|
+
auth: 'admin',
|
|
283
|
+
schema: z.object({
|
|
284
|
+
entryId: z.string().describe('Entry ID to approve'),
|
|
285
|
+
reviewedBy: z.string().optional().describe('Name/ID of the reviewer'),
|
|
286
|
+
comment: z.string().optional().describe('Review comment'),
|
|
287
|
+
}),
|
|
288
|
+
handler: async (params) => {
|
|
289
|
+
try {
|
|
290
|
+
return knowledgeReview.approve({
|
|
291
|
+
entryId: params.entryId,
|
|
292
|
+
reviewedBy: params.reviewedBy,
|
|
293
|
+
comment: params.comment,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
return { error: err.message };
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
name: 'vault_reject',
|
|
303
|
+
description: 'Reject a pending vault entry. Transitions from pending_review → rejected.',
|
|
304
|
+
auth: 'admin',
|
|
305
|
+
schema: z.object({
|
|
306
|
+
entryId: z.string().describe('Entry ID to reject'),
|
|
307
|
+
reviewedBy: z.string().optional().describe('Name/ID of the reviewer'),
|
|
308
|
+
comment: z.string().optional().describe('Reason for rejection'),
|
|
309
|
+
}),
|
|
310
|
+
handler: async (params) => {
|
|
311
|
+
try {
|
|
312
|
+
return knowledgeReview.reject({
|
|
313
|
+
entryId: params.entryId,
|
|
314
|
+
reviewedBy: params.reviewedBy,
|
|
315
|
+
comment: params.comment,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
return { error: err.message };
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: 'vault_pending_reviews',
|
|
325
|
+
description: 'List all vault entries pending team review.',
|
|
326
|
+
auth: 'read',
|
|
327
|
+
schema: z.object({
|
|
328
|
+
limit: z.number().optional().describe('Max entries to return'),
|
|
329
|
+
}),
|
|
330
|
+
handler: async (params) => {
|
|
331
|
+
const pending = knowledgeReview.listPending(params.limit ?? 50);
|
|
332
|
+
return { pending, count: pending.length };
|
|
333
|
+
},
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: 'vault_review_stats',
|
|
337
|
+
description: 'Get review workflow statistics — counts by status.',
|
|
338
|
+
auth: 'read',
|
|
339
|
+
handler: async () => {
|
|
340
|
+
return knowledgeReview.stats();
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
];
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=vault-sharing-ops.js.map
|