paths-engine 0.0.0-stage → 0.1.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 +600 -3
- package/dist/cli/commands/context.d.ts +3 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +89 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/gui.d.ts +5 -0
- package/dist/cli/commands/gui.d.ts.map +1 -0
- package/dist/cli/commands/gui.js +28 -0
- package/dist/cli/commands/gui.js.map +1 -0
- package/dist/cli/commands/identity.d.ts +3 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +83 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/ingest.d.ts +3 -0
- package/dist/cli/commands/ingest.d.ts.map +1 -0
- package/dist/cli/commands/ingest.js +75 -0
- package/dist/cli/commands/ingest.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +3 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +104 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/lineage.d.ts +3 -0
- package/dist/cli/commands/lineage.d.ts.map +1 -0
- package/dist/cli/commands/lineage.js +130 -0
- package/dist/cli/commands/lineage.js.map +1 -0
- package/dist/cli/commands/mcp-setup.d.ts +23 -0
- package/dist/cli/commands/mcp-setup.d.ts.map +1 -0
- package/dist/cli/commands/mcp-setup.js +190 -0
- package/dist/cli/commands/mcp-setup.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +8 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +230 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/session.d.ts +3 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +82 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +65 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +3 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +168 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/todo.d.ts +3 -0
- package/dist/cli/commands/todo.d.ts.map +1 -0
- package/dist/cli/commands/todo.js +116 -0
- package/dist/cli/commands/todo.js.map +1 -0
- package/dist/cli/file-reader.d.ts +3 -0
- package/dist/cli/file-reader.d.ts.map +1 -0
- package/dist/cli/file-reader.js +29 -0
- package/dist/cli/file-reader.js.map +1 -0
- package/dist/cli/formatters/context.d.ts +3 -0
- package/dist/cli/formatters/context.d.ts.map +1 -0
- package/dist/cli/formatters/context.js +58 -0
- package/dist/cli/formatters/context.js.map +1 -0
- package/dist/cli/formatters/errors.d.ts +2 -0
- package/dist/cli/formatters/errors.d.ts.map +1 -0
- package/dist/cli/formatters/errors.js +7 -0
- package/dist/cli/formatters/errors.js.map +1 -0
- package/dist/cli/formatters/status.d.ts +6 -0
- package/dist/cli/formatters/status.d.ts.map +1 -0
- package/dist/cli/formatters/status.js +79 -0
- package/dist/cli/formatters/status.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/compiler.d.ts +50 -0
- package/dist/core/compiler.d.ts.map +1 -0
- package/dist/core/compiler.js +424 -0
- package/dist/core/compiler.js.map +1 -0
- package/dist/core/db/case-mapper.d.ts +3 -0
- package/dist/core/db/case-mapper.d.ts.map +1 -0
- package/dist/core/db/case-mapper.js +21 -0
- package/dist/core/db/case-mapper.js.map +1 -0
- package/dist/core/db/embedding-repository.d.ts +14 -0
- package/dist/core/db/embedding-repository.d.ts.map +1 -0
- package/dist/core/db/embedding-repository.js +57 -0
- package/dist/core/db/embedding-repository.js.map +1 -0
- package/dist/core/db/external-event-repository.d.ts +13 -0
- package/dist/core/db/external-event-repository.d.ts.map +1 -0
- package/dist/core/db/external-event-repository.js +73 -0
- package/dist/core/db/external-event-repository.js.map +1 -0
- package/dist/core/db/identity-repository.d.ts +9 -0
- package/dist/core/db/identity-repository.d.ts.map +1 -0
- package/dist/core/db/identity-repository.js +37 -0
- package/dist/core/db/identity-repository.js.map +1 -0
- package/dist/core/db/index.d.ts +12 -0
- package/dist/core/db/index.d.ts.map +1 -0
- package/dist/core/db/index.js +33 -0
- package/dist/core/db/index.js.map +1 -0
- package/dist/core/db/knowledge-confirmation-repository.d.ts +12 -0
- package/dist/core/db/knowledge-confirmation-repository.d.ts.map +1 -0
- package/dist/core/db/knowledge-confirmation-repository.js +40 -0
- package/dist/core/db/knowledge-confirmation-repository.js.map +1 -0
- package/dist/core/db/knowledge-repository.d.ts +18 -0
- package/dist/core/db/knowledge-repository.d.ts.map +1 -0
- package/dist/core/db/knowledge-repository.js +77 -0
- package/dist/core/db/knowledge-repository.js.map +1 -0
- package/dist/core/db/lineage-repository.d.ts +14 -0
- package/dist/core/db/lineage-repository.d.ts.map +1 -0
- package/dist/core/db/lineage-repository.js +35 -0
- package/dist/core/db/lineage-repository.js.map +1 -0
- package/dist/core/db/node-repository.d.ts +33 -0
- package/dist/core/db/node-repository.d.ts.map +1 -0
- package/dist/core/db/node-repository.js +116 -0
- package/dist/core/db/node-repository.js.map +1 -0
- package/dist/core/db/path.d.ts +3 -0
- package/dist/core/db/path.d.ts.map +1 -0
- package/dist/core/db/path.js +57 -0
- package/dist/core/db/path.js.map +1 -0
- package/dist/core/db/plan-repository.d.ts +17 -0
- package/dist/core/db/plan-repository.d.ts.map +1 -0
- package/dist/core/db/plan-repository.js +56 -0
- package/dist/core/db/plan-repository.js.map +1 -0
- package/dist/core/db/project-repository.d.ts +11 -0
- package/dist/core/db/project-repository.d.ts.map +1 -0
- package/dist/core/db/project-repository.js +24 -0
- package/dist/core/db/project-repository.js.map +1 -0
- package/dist/core/db/rollup-repository.d.ts +10 -0
- package/dist/core/db/rollup-repository.d.ts.map +1 -0
- package/dist/core/db/rollup-repository.js +55 -0
- package/dist/core/db/rollup-repository.js.map +1 -0
- package/dist/core/db/schema.d.ts +4 -0
- package/dist/core/db/schema.d.ts.map +1 -0
- package/dist/core/db/schema.js +315 -0
- package/dist/core/db/schema.js.map +1 -0
- package/dist/core/db/store.d.ts +298 -0
- package/dist/core/db/store.d.ts.map +1 -0
- package/dist/core/db/store.js +1054 -0
- package/dist/core/db/store.js.map +1 -0
- package/dist/core/db/sync-repository.d.ts +23 -0
- package/dist/core/db/sync-repository.d.ts.map +1 -0
- package/dist/core/db/sync-repository.js +117 -0
- package/dist/core/db/sync-repository.js.map +1 -0
- package/dist/core/db/todo-repository.d.ts +14 -0
- package/dist/core/db/todo-repository.d.ts.map +1 -0
- package/dist/core/db/todo-repository.js +37 -0
- package/dist/core/db/todo-repository.js.map +1 -0
- package/dist/core/embedding/cosine.d.ts +5 -0
- package/dist/core/embedding/cosine.d.ts.map +1 -0
- package/dist/core/embedding/cosine.js +50 -0
- package/dist/core/embedding/cosine.js.map +1 -0
- package/dist/core/embedding/embedding.service.d.ts +27 -0
- package/dist/core/embedding/embedding.service.d.ts.map +1 -0
- package/dist/core/embedding/embedding.service.js +99 -0
- package/dist/core/embedding/embedding.service.js.map +1 -0
- package/dist/core/embedding/index.d.ts +3 -0
- package/dist/core/embedding/index.d.ts.map +1 -0
- package/dist/core/embedding/index.js +3 -0
- package/dist/core/embedding/index.js.map +1 -0
- package/dist/core/identity.d.ts +6 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +24 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/ingestion/generic-adapter.d.ts +5 -0
- package/dist/core/ingestion/generic-adapter.d.ts.map +1 -0
- package/dist/core/ingestion/generic-adapter.js +15 -0
- package/dist/core/ingestion/generic-adapter.js.map +1 -0
- package/dist/core/ingestion/git-adapter.d.ts +12 -0
- package/dist/core/ingestion/git-adapter.d.ts.map +1 -0
- package/dist/core/ingestion/git-adapter.js +31 -0
- package/dist/core/ingestion/git-adapter.js.map +1 -0
- package/dist/core/ingestion/github-adapter.d.ts +23 -0
- package/dist/core/ingestion/github-adapter.d.ts.map +1 -0
- package/dist/core/ingestion/github-adapter.js +55 -0
- package/dist/core/ingestion/github-adapter.js.map +1 -0
- package/dist/core/ingestion/index.d.ts +6 -0
- package/dist/core/ingestion/index.d.ts.map +1 -0
- package/dist/core/ingestion/index.js +6 -0
- package/dist/core/ingestion/index.js.map +1 -0
- package/dist/core/ingestion/ingestion.service.d.ts +25 -0
- package/dist/core/ingestion/ingestion.service.d.ts.map +1 -0
- package/dist/core/ingestion/ingestion.service.js +109 -0
- package/dist/core/ingestion/ingestion.service.js.map +1 -0
- package/dist/core/ingestion/types.d.ts +38 -0
- package/dist/core/ingestion/types.d.ts.map +1 -0
- package/dist/core/ingestion/types.js +2 -0
- package/dist/core/ingestion/types.js.map +1 -0
- package/dist/core/knowledge.d.ts +13 -0
- package/dist/core/knowledge.d.ts.map +1 -0
- package/dist/core/knowledge.js +101 -0
- package/dist/core/knowledge.js.map +1 -0
- package/dist/core/lineage.d.ts +11 -0
- package/dist/core/lineage.d.ts.map +1 -0
- package/dist/core/lineage.js +75 -0
- package/dist/core/lineage.js.map +1 -0
- package/dist/core/node.d.ts +27 -0
- package/dist/core/node.d.ts.map +1 -0
- package/dist/core/node.js +145 -0
- package/dist/core/node.js.map +1 -0
- package/dist/core/plan.d.ts +26 -0
- package/dist/core/plan.d.ts.map +1 -0
- package/dist/core/plan.js +109 -0
- package/dist/core/plan.js.map +1 -0
- package/dist/core/project.d.ts +10 -0
- package/dist/core/project.d.ts.map +1 -0
- package/dist/core/project.js +108 -0
- package/dist/core/project.js.map +1 -0
- package/dist/core/rollup.d.ts +7 -0
- package/dist/core/rollup.d.ts.map +1 -0
- package/dist/core/rollup.js +48 -0
- package/dist/core/rollup.js.map +1 -0
- package/dist/core/security/error-classifier.d.ts +35 -0
- package/dist/core/security/error-classifier.d.ts.map +1 -0
- package/dist/core/security/error-classifier.js +169 -0
- package/dist/core/security/error-classifier.js.map +1 -0
- package/dist/core/sync/bundle-auth.d.ts +23 -0
- package/dist/core/sync/bundle-auth.d.ts.map +1 -0
- package/dist/core/sync/bundle-auth.js +184 -0
- package/dist/core/sync/bundle-auth.js.map +1 -0
- package/dist/core/sync/device.d.ts +8 -0
- package/dist/core/sync/device.d.ts.map +1 -0
- package/dist/core/sync/device.js +32 -0
- package/dist/core/sync/device.js.map +1 -0
- package/dist/core/sync/hlc.d.ts +12 -0
- package/dist/core/sync/hlc.d.ts.map +1 -0
- package/dist/core/sync/hlc.js +83 -0
- package/dist/core/sync/hlc.js.map +1 -0
- package/dist/core/sync/index.d.ts +6 -0
- package/dist/core/sync/index.d.ts.map +1 -0
- package/dist/core/sync/index.js +5 -0
- package/dist/core/sync/index.js.map +1 -0
- package/dist/core/sync/sync.service.d.ts +29 -0
- package/dist/core/sync/sync.service.d.ts.map +1 -0
- package/dist/core/sync/sync.service.js +457 -0
- package/dist/core/sync/sync.service.js.map +1 -0
- package/dist/core/sync/types.d.ts +101 -0
- package/dist/core/sync/types.d.ts.map +1 -0
- package/dist/core/sync/types.js +2 -0
- package/dist/core/sync/types.js.map +1 -0
- package/dist/core/task-context-budget.d.ts +5 -0
- package/dist/core/task-context-budget.d.ts.map +1 -0
- package/dist/core/task-context-budget.js +11 -0
- package/dist/core/task-context-budget.js.map +1 -0
- package/dist/core/task-context-order.d.ts +6 -0
- package/dist/core/task-context-order.d.ts.map +1 -0
- package/dist/core/task-context-order.js +26 -0
- package/dist/core/task-context-order.js.map +1 -0
- package/dist/core/task-context-paths.d.ts +6 -0
- package/dist/core/task-context-paths.d.ts.map +1 -0
- package/dist/core/task-context-paths.js +59 -0
- package/dist/core/task-context-paths.js.map +1 -0
- package/dist/core/task-context.d.ts +21 -0
- package/dist/core/task-context.d.ts.map +1 -0
- package/dist/core/task-context.js +283 -0
- package/dist/core/task-context.js.map +1 -0
- package/dist/core/todo.d.ts +16 -0
- package/dist/core/todo.d.ts.map +1 -0
- package/dist/core/todo.js +110 -0
- package/dist/core/todo.js.map +1 -0
- package/dist/core/tokenizer.d.ts +3 -0
- package/dist/core/tokenizer.d.ts.map +1 -0
- package/dist/core/tokenizer.js +9 -0
- package/dist/core/tokenizer.js.map +1 -0
- package/dist/core/types/context.d.ts +50 -0
- package/dist/core/types/context.d.ts.map +1 -0
- package/dist/core/types/context.js +2 -0
- package/dist/core/types/context.js.map +1 -0
- package/dist/core/types/embedding.d.ts +25 -0
- package/dist/core/types/embedding.d.ts.map +1 -0
- package/dist/core/types/embedding.js +2 -0
- package/dist/core/types/embedding.js.map +1 -0
- package/dist/core/types/external-event.d.ts +29 -0
- package/dist/core/types/external-event.d.ts.map +1 -0
- package/dist/core/types/external-event.js +2 -0
- package/dist/core/types/external-event.js.map +1 -0
- package/dist/core/types/hlc.d.ts +12 -0
- package/dist/core/types/hlc.d.ts.map +1 -0
- package/dist/core/types/hlc.js +2 -0
- package/dist/core/types/hlc.js.map +1 -0
- package/dist/core/types/identity.d.ts +26 -0
- package/dist/core/types/identity.d.ts.map +1 -0
- package/dist/core/types/identity.js +2 -0
- package/dist/core/types/identity.js.map +1 -0
- package/dist/core/types/index.d.ts +15 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +15 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/installation-identity.d.ts +13 -0
- package/dist/core/types/installation-identity.d.ts.map +1 -0
- package/dist/core/types/installation-identity.js +2 -0
- package/dist/core/types/installation-identity.js.map +1 -0
- package/dist/core/types/knowledge-confirmation.d.ts +25 -0
- package/dist/core/types/knowledge-confirmation.d.ts.map +1 -0
- package/dist/core/types/knowledge-confirmation.js +2 -0
- package/dist/core/types/knowledge-confirmation.js.map +1 -0
- package/dist/core/types/knowledge.d.ts +50 -0
- package/dist/core/types/knowledge.d.ts.map +1 -0
- package/dist/core/types/knowledge.js +12 -0
- package/dist/core/types/knowledge.js.map +1 -0
- package/dist/core/types/lineage.d.ts +37 -0
- package/dist/core/types/lineage.d.ts.map +1 -0
- package/dist/core/types/lineage.js +2 -0
- package/dist/core/types/lineage.js.map +1 -0
- package/dist/core/types/node.d.ts +47 -0
- package/dist/core/types/node.d.ts.map +1 -0
- package/dist/core/types/node.js +2 -0
- package/dist/core/types/node.js.map +1 -0
- package/dist/core/types/plan.d.ts +60 -0
- package/dist/core/types/plan.d.ts.map +1 -0
- package/dist/core/types/plan.js +2 -0
- package/dist/core/types/plan.js.map +1 -0
- package/dist/core/types/project.d.ts +27 -0
- package/dist/core/types/project.d.ts.map +1 -0
- package/dist/core/types/project.js +2 -0
- package/dist/core/types/project.js.map +1 -0
- package/dist/core/types/status-json.d.ts +30 -0
- package/dist/core/types/status-json.d.ts.map +1 -0
- package/dist/core/types/status-json.js +2 -0
- package/dist/core/types/status-json.js.map +1 -0
- package/dist/core/types/sync-change.d.ts +49 -0
- package/dist/core/types/sync-change.d.ts.map +1 -0
- package/dist/core/types/sync-change.js +2 -0
- package/dist/core/types/sync-change.js.map +1 -0
- package/dist/core/types/task-context.d.ts +55 -0
- package/dist/core/types/task-context.d.ts.map +1 -0
- package/dist/core/types/task-context.js +2 -0
- package/dist/core/types/task-context.js.map +1 -0
- package/dist/core/types/todo.d.ts +33 -0
- package/dist/core/types/todo.d.ts.map +1 -0
- package/dist/core/types/todo.js +2 -0
- package/dist/core/types/todo.js.map +1 -0
- package/dist/gui/launcher.d.ts +22 -0
- package/dist/gui/launcher.d.ts.map +1 -0
- package/dist/gui/launcher.js +86 -0
- package/dist/gui/launcher.js.map +1 -0
- package/dist/gui/main/app-bridge.d.ts +21 -0
- package/dist/gui/main/app-bridge.d.ts.map +1 -0
- package/dist/gui/main/app-bridge.js +204 -0
- package/dist/gui/main/app-bridge.js.map +1 -0
- package/dist/gui/main/app-context-manager.d.ts +25 -0
- package/dist/gui/main/app-context-manager.d.ts.map +1 -0
- package/dist/gui/main/app-context-manager.js +141 -0
- package/dist/gui/main/app-context-manager.js.map +1 -0
- package/dist/gui/main/context.d.ts +32 -0
- package/dist/gui/main/context.d.ts.map +1 -0
- package/dist/gui/main/context.js +56 -0
- package/dist/gui/main/context.js.map +1 -0
- package/dist/gui/main/index.d.ts +2 -0
- package/dist/gui/main/index.d.ts.map +1 -0
- package/dist/gui/main/index.js +3 -0
- package/dist/gui/main/index.js.map +1 -0
- package/dist/gui/main/lifecycle.d.ts +45 -0
- package/dist/gui/main/lifecycle.d.ts.map +1 -0
- package/dist/gui/main/lifecycle.js +272 -0
- package/dist/gui/main/lifecycle.js.map +1 -0
- package/dist/gui/main/schemas.d.ts +105 -0
- package/dist/gui/main/schemas.d.ts.map +1 -0
- package/dist/gui/main/schemas.js +131 -0
- package/dist/gui/main/schemas.js.map +1 -0
- package/dist/gui/main/tray.d.ts +9 -0
- package/dist/gui/main/tray.d.ts.map +1 -0
- package/dist/gui/main/tray.js +70 -0
- package/dist/gui/main/tray.js.map +1 -0
- package/dist/gui/preload/api-interface.d.ts +59 -0
- package/dist/gui/preload/api-interface.d.ts.map +1 -0
- package/dist/gui/preload/api-interface.js +2 -0
- package/dist/gui/preload/api-interface.js.map +1 -0
- package/dist/gui/preload/preload.cjs +1 -0
- package/dist/gui/preload/preload.d.ts +3 -0
- package/dist/gui/preload/preload.d.ts.map +1 -0
- package/dist/gui/preload/preload.js +36 -0
- package/dist/gui/preload/preload.js.map +1 -0
- package/dist/gui/renderer/App.d.ts +3 -0
- package/dist/gui/renderer/App.d.ts.map +1 -0
- package/dist/gui/renderer/App.js +33 -0
- package/dist/gui/renderer/App.js.map +1 -0
- package/dist/gui/renderer/components/layout/AppShell.d.ts +15 -0
- package/dist/gui/renderer/components/layout/AppShell.d.ts.map +1 -0
- package/dist/gui/renderer/components/layout/AppShell.js +206 -0
- package/dist/gui/renderer/components/layout/AppShell.js.map +1 -0
- package/dist/gui/renderer/components/layout/NavItem.d.ts +12 -0
- package/dist/gui/renderer/components/layout/NavItem.d.ts.map +1 -0
- package/dist/gui/renderer/components/layout/NavItem.js +72 -0
- package/dist/gui/renderer/components/layout/NavItem.js.map +1 -0
- package/dist/gui/renderer/components/layout/PathsLogo.d.ts +9 -0
- package/dist/gui/renderer/components/layout/PathsLogo.d.ts.map +1 -0
- package/dist/gui/renderer/components/layout/PathsLogo.js +87 -0
- package/dist/gui/renderer/components/layout/PathsLogo.js.map +1 -0
- package/dist/gui/renderer/components/shared/Badge.d.ts +11 -0
- package/dist/gui/renderer/components/shared/Badge.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/Badge.js +150 -0
- package/dist/gui/renderer/components/shared/Badge.js.map +1 -0
- package/dist/gui/renderer/components/shared/EmptyState.d.ts +10 -0
- package/dist/gui/renderer/components/shared/EmptyState.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/EmptyState.js +59 -0
- package/dist/gui/renderer/components/shared/EmptyState.js.map +1 -0
- package/dist/gui/renderer/components/shared/ErrorBanner.d.ts +7 -0
- package/dist/gui/renderer/components/shared/ErrorBanner.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/ErrorBanner.js +33 -0
- package/dist/gui/renderer/components/shared/ErrorBanner.js.map +1 -0
- package/dist/gui/renderer/components/shared/ErrorBoundary.d.ts +18 -0
- package/dist/gui/renderer/components/shared/ErrorBoundary.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/ErrorBoundary.js +40 -0
- package/dist/gui/renderer/components/shared/ErrorBoundary.js.map +1 -0
- package/dist/gui/renderer/components/shared/GlassSelect.d.ts +17 -0
- package/dist/gui/renderer/components/shared/GlassSelect.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/GlassSelect.js +147 -0
- package/dist/gui/renderer/components/shared/GlassSelect.js.map +1 -0
- package/dist/gui/renderer/components/shared/LoadingSpinner.d.ts +7 -0
- package/dist/gui/renderer/components/shared/LoadingSpinner.d.ts.map +1 -0
- package/dist/gui/renderer/components/shared/LoadingSpinner.js +27 -0
- package/dist/gui/renderer/components/shared/LoadingSpinner.js.map +1 -0
- package/dist/gui/renderer/components/surfaces/Dashboard.d.ts +3 -0
- package/dist/gui/renderer/components/surfaces/Dashboard.d.ts.map +1 -0
- package/dist/gui/renderer/components/surfaces/Dashboard.js +123 -0
- package/dist/gui/renderer/components/surfaces/Dashboard.js.map +1 -0
- package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.d.ts +3 -0
- package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.d.ts.map +1 -0
- package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.js +202 -0
- package/dist/gui/renderer/components/surfaces/KnowledgeExplorer.js.map +1 -0
- package/dist/gui/renderer/components/surfaces/LineageManager.d.ts +3 -0
- package/dist/gui/renderer/components/surfaces/LineageManager.d.ts.map +1 -0
- package/dist/gui/renderer/components/surfaces/LineageManager.js +148 -0
- package/dist/gui/renderer/components/surfaces/LineageManager.js.map +1 -0
- package/dist/gui/renderer/components/surfaces/SessionTimeline.d.ts +3 -0
- package/dist/gui/renderer/components/surfaces/SessionTimeline.d.ts.map +1 -0
- package/dist/gui/renderer/components/surfaces/SessionTimeline.js +136 -0
- package/dist/gui/renderer/components/surfaces/SessionTimeline.js.map +1 -0
- package/dist/gui/renderer/components/surfaces/TodoBoard.d.ts +3 -0
- package/dist/gui/renderer/components/surfaces/TodoBoard.d.ts.map +1 -0
- package/dist/gui/renderer/components/surfaces/TodoBoard.js +128 -0
- package/dist/gui/renderer/components/surfaces/TodoBoard.js.map +1 -0
- package/dist/gui/renderer/context/paths-context.d.ts +19 -0
- package/dist/gui/renderer/context/paths-context.d.ts.map +1 -0
- package/dist/gui/renderer/context/paths-context.js +122 -0
- package/dist/gui/renderer/context/paths-context.js.map +1 -0
- package/dist/gui/renderer/context/theme-context.d.ts +11 -0
- package/dist/gui/renderer/context/theme-context.d.ts.map +1 -0
- package/dist/gui/renderer/context/theme-context.js +41 -0
- package/dist/gui/renderer/context/theme-context.js.map +1 -0
- package/dist/gui/renderer/hooks/use-api-query.d.ts +9 -0
- package/dist/gui/renderer/hooks/use-api-query.d.ts.map +1 -0
- package/dist/gui/renderer/hooks/use-api-query.js +60 -0
- package/dist/gui/renderer/hooks/use-api-query.js.map +1 -0
- package/dist/gui/renderer/hooks/use-lineage.d.ts +13 -0
- package/dist/gui/renderer/hooks/use-lineage.d.ts.map +1 -0
- package/dist/gui/renderer/hooks/use-lineage.js +15 -0
- package/dist/gui/renderer/hooks/use-lineage.js.map +1 -0
- package/dist/gui/renderer/index.d.ts +2 -0
- package/dist/gui/renderer/index.d.ts.map +1 -0
- package/dist/gui/renderer/index.js +2 -0
- package/dist/gui/renderer/index.js.map +1 -0
- package/dist/gui/shared/errors.d.ts +23 -0
- package/dist/gui/shared/errors.d.ts.map +1 -0
- package/dist/gui/shared/errors.js +10 -0
- package/dist/gui/shared/errors.js.map +1 -0
- package/dist/gui/shared/index.d.ts +4 -0
- package/dist/gui/shared/index.d.ts.map +1 -0
- package/dist/gui/shared/index.js +4 -0
- package/dist/gui/shared/index.js.map +1 -0
- package/dist/gui/shared/ipc-channels.d.ts +53 -0
- package/dist/gui/shared/ipc-channels.d.ts.map +1 -0
- package/dist/gui/shared/ipc-channels.js +63 -0
- package/dist/gui/shared/ipc-channels.js.map +1 -0
- package/dist/gui/shared/ipc-contracts.d.ts +176 -0
- package/dist/gui/shared/ipc-contracts.d.ts.map +1 -0
- package/dist/gui/shared/ipc-contracts.js +2 -0
- package/dist/gui/shared/ipc-contracts.js.map +1 -0
- package/dist/mcp/context.d.ts +55 -0
- package/dist/mcp/context.d.ts.map +1 -0
- package/dist/mcp/context.js +183 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/handler-utils.d.ts +22 -0
- package/dist/mcp/handler-utils.d.ts.map +1 -0
- package/dist/mcp/handler-utils.js +26 -0
- package/dist/mcp/handler-utils.js.map +1 -0
- package/dist/mcp/schemas.d.ts +688 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +278 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +88 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/abandon-plan.d.ts +4 -0
- package/dist/mcp/tools/abandon-plan.d.ts.map +1 -0
- package/dist/mcp/tools/abandon-plan.js +32 -0
- package/dist/mcp/tools/abandon-plan.js.map +1 -0
- package/dist/mcp/tools/add-todo.d.ts +4 -0
- package/dist/mcp/tools/add-todo.d.ts.map +1 -0
- package/dist/mcp/tools/add-todo.js +34 -0
- package/dist/mcp/tools/add-todo.js.map +1 -0
- package/dist/mcp/tools/complete-plan.d.ts +4 -0
- package/dist/mcp/tools/complete-plan.d.ts.map +1 -0
- package/dist/mcp/tools/complete-plan.js +32 -0
- package/dist/mcp/tools/complete-plan.js.map +1 -0
- package/dist/mcp/tools/complete-todo.d.ts +4 -0
- package/dist/mcp/tools/complete-todo.d.ts.map +1 -0
- package/dist/mcp/tools/complete-todo.js +51 -0
- package/dist/mcp/tools/complete-todo.js.map +1 -0
- package/dist/mcp/tools/continue-lineage.d.ts +4 -0
- package/dist/mcp/tools/continue-lineage.d.ts.map +1 -0
- package/dist/mcp/tools/continue-lineage.js +31 -0
- package/dist/mcp/tools/continue-lineage.js.map +1 -0
- package/dist/mcp/tools/create-plan.d.ts +4 -0
- package/dist/mcp/tools/create-plan.d.ts.map +1 -0
- package/dist/mcp/tools/create-plan.js +42 -0
- package/dist/mcp/tools/create-plan.js.map +1 -0
- package/dist/mcp/tools/get-active-plan.d.ts +4 -0
- package/dist/mcp/tools/get-active-plan.d.ts.map +1 -0
- package/dist/mcp/tools/get-active-plan.js +30 -0
- package/dist/mcp/tools/get-active-plan.js.map +1 -0
- package/dist/mcp/tools/get-lineage-history.d.ts +4 -0
- package/dist/mcp/tools/get-lineage-history.d.ts.map +1 -0
- package/dist/mcp/tools/get-lineage-history.js +38 -0
- package/dist/mcp/tools/get-lineage-history.js.map +1 -0
- package/dist/mcp/tools/get-lineages.d.ts +4 -0
- package/dist/mcp/tools/get-lineages.d.ts.map +1 -0
- package/dist/mcp/tools/get-lineages.js +30 -0
- package/dist/mcp/tools/get-lineages.js.map +1 -0
- package/dist/mcp/tools/get-project-context.d.ts +4 -0
- package/dist/mcp/tools/get-project-context.d.ts.map +1 -0
- package/dist/mcp/tools/get-project-context.js +38 -0
- package/dist/mcp/tools/get-project-context.js.map +1 -0
- package/dist/mcp/tools/get-task-context.d.ts +4 -0
- package/dist/mcp/tools/get-task-context.d.ts.map +1 -0
- package/dist/mcp/tools/get-task-context.js +42 -0
- package/dist/mcp/tools/get-task-context.js.map +1 -0
- package/dist/mcp/tools/ingest-event.d.ts +4 -0
- package/dist/mcp/tools/ingest-event.d.ts.map +1 -0
- package/dist/mcp/tools/ingest-event.js +71 -0
- package/dist/mcp/tools/ingest-event.js.map +1 -0
- package/dist/mcp/tools/list-plans.d.ts +4 -0
- package/dist/mcp/tools/list-plans.d.ts.map +1 -0
- package/dist/mcp/tools/list-plans.js +44 -0
- package/dist/mcp/tools/list-plans.js.map +1 -0
- package/dist/mcp/tools/list-todos.d.ts +4 -0
- package/dist/mcp/tools/list-todos.d.ts.map +1 -0
- package/dist/mcp/tools/list-todos.js +31 -0
- package/dist/mcp/tools/list-todos.js.map +1 -0
- package/dist/mcp/tools/log-session.d.ts +4 -0
- package/dist/mcp/tools/log-session.d.ts.map +1 -0
- package/dist/mcp/tools/log-session.js +35 -0
- package/dist/mcp/tools/log-session.js.map +1 -0
- package/dist/mcp/tools/open-gui.d.ts +14 -0
- package/dist/mcp/tools/open-gui.d.ts.map +1 -0
- package/dist/mcp/tools/open-gui.js +42 -0
- package/dist/mcp/tools/open-gui.js.map +1 -0
- package/dist/mcp/tools/save-knowledge.d.ts +4 -0
- package/dist/mcp/tools/save-knowledge.d.ts.map +1 -0
- package/dist/mcp/tools/save-knowledge.js +36 -0
- package/dist/mcp/tools/save-knowledge.js.map +1 -0
- package/dist/mcp/tools/search-knowledge.d.ts +4 -0
- package/dist/mcp/tools/search-knowledge.d.ts.map +1 -0
- package/dist/mcp/tools/search-knowledge.js +31 -0
- package/dist/mcp/tools/search-knowledge.js.map +1 -0
- package/dist/mcp/tools/search-nodes.d.ts +4 -0
- package/dist/mcp/tools/search-nodes.d.ts.map +1 -0
- package/dist/mcp/tools/search-nodes.js +33 -0
- package/dist/mcp/tools/search-nodes.js.map +1 -0
- package/dist/mcp/tools/start-lineage.d.ts +4 -0
- package/dist/mcp/tools/start-lineage.d.ts.map +1 -0
- package/dist/mcp/tools/start-lineage.js +31 -0
- package/dist/mcp/tools/start-lineage.js.map +1 -0
- package/dist/mcp/tools/sync-apply.d.ts +4 -0
- package/dist/mcp/tools/sync-apply.d.ts.map +1 -0
- package/dist/mcp/tools/sync-apply.js +23 -0
- package/dist/mcp/tools/sync-apply.js.map +1 -0
- package/dist/mcp/tools/sync-export.d.ts +4 -0
- package/dist/mcp/tools/sync-export.d.ts.map +1 -0
- package/dist/mcp/tools/sync-export.js +33 -0
- package/dist/mcp/tools/sync-export.js.map +1 -0
- package/dist/mcp/tools/sync-status.d.ts +4 -0
- package/dist/mcp/tools/sync-status.d.ts.map +1 -0
- package/dist/mcp/tools/sync-status.js +29 -0
- package/dist/mcp/tools/sync-status.js.map +1 -0
- package/dist/mcp/tools/update-identity.d.ts +4 -0
- package/dist/mcp/tools/update-identity.d.ts.map +1 -0
- package/dist/mcp/tools/update-identity.js +39 -0
- package/dist/mcp/tools/update-identity.js.map +1 -0
- package/dist/renderer/assets/index-Bs2j5Xf4.css +1 -0
- package/dist/renderer/assets/index-ovMIJ8mi.js +22 -0
- package/dist/renderer/index.html +17 -0
- package/package.json +77 -6
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { toCamel } from './case-mapper.js';
|
|
2
|
+
export class ExternalEventRepository {
|
|
3
|
+
store;
|
|
4
|
+
constructor(store) {
|
|
5
|
+
this.store = store;
|
|
6
|
+
}
|
|
7
|
+
mapToDomain(row) {
|
|
8
|
+
const camel = toCamel(row);
|
|
9
|
+
return {
|
|
10
|
+
...camel,
|
|
11
|
+
sourceSystem: row.source_system,
|
|
12
|
+
eventType: row.event_type,
|
|
13
|
+
canonicalEntityType: row.canonical_entity_type ?? null,
|
|
14
|
+
canonicalEntityId: row.canonical_entity_id ?? null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
createEvent(eventData) {
|
|
18
|
+
return this.store.transaction(() => {
|
|
19
|
+
const existing = this.store.findExternalEvent(eventData.projectId, eventData.sourceSystem, eventData.externalEventId);
|
|
20
|
+
if (existing) {
|
|
21
|
+
return this.mapToDomain(existing);
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const created = this.store.createExternalEventRow({
|
|
25
|
+
project_id: eventData.projectId,
|
|
26
|
+
external_event_id: eventData.externalEventId,
|
|
27
|
+
source_system: eventData.sourceSystem,
|
|
28
|
+
event_type: eventData.eventType,
|
|
29
|
+
source_record: eventData.sourceRecord,
|
|
30
|
+
occurred_at: eventData.occurredAt,
|
|
31
|
+
ingested_at: eventData.ingestedAt,
|
|
32
|
+
created_at: eventData.createdAt,
|
|
33
|
+
canonical_entity_type: eventData.canonicalEntityType ?? null,
|
|
34
|
+
canonical_entity_id: eventData.canonicalEntityId ?? null,
|
|
35
|
+
});
|
|
36
|
+
return this.mapToDomain(created);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
const isConstraint = error instanceof Error && error.message.includes('UNIQUE');
|
|
40
|
+
if (!isConstraint) {
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
const duplicate = this.store.findExternalEvent(eventData.projectId, eventData.sourceSystem, eventData.externalEventId);
|
|
44
|
+
if (duplicate) {
|
|
45
|
+
return this.mapToDomain(duplicate);
|
|
46
|
+
}
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
findByExternalId(projectId, sourceSystem, externalEventId) {
|
|
52
|
+
const row = this.store.findExternalEvent(projectId, sourceSystem, externalEventId);
|
|
53
|
+
if (!row) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return this.mapToDomain(row);
|
|
57
|
+
}
|
|
58
|
+
findById(id) {
|
|
59
|
+
const row = this.store.findExternalEventById(id);
|
|
60
|
+
if (!row) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return this.mapToDomain(row);
|
|
64
|
+
}
|
|
65
|
+
linkCanonical(id, canonicalEntityType, canonicalEntityId) {
|
|
66
|
+
this.store.linkExternalEventCanonical(id, canonicalEntityType, canonicalEntityId);
|
|
67
|
+
}
|
|
68
|
+
listByProject(projectId) {
|
|
69
|
+
const rows = this.store.listExternalEventsByProject(projectId);
|
|
70
|
+
return rows.map((r) => this.mapToDomain(r));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=external-event-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-event-repository.js","sourceRoot":"","sources":["../../../src/core/db/external-event-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { IdentityFields, UpdateIdentityInput } from '../types/identity.js';
|
|
3
|
+
export declare class IdentityRepository {
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(store: Store);
|
|
6
|
+
get(projectId: number): IdentityFields | null;
|
|
7
|
+
update(projectId: number, input: UpdateIdentityInput): IdentityFields;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=identity-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-repository.d.ts","sourceRoot":"","sources":["../../../src/core/db/identity-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAe,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAExF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAK7C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc;CA6BtE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { toCamel, toSnake } from './case-mapper.js';
|
|
2
|
+
export class IdentityRepository {
|
|
3
|
+
store;
|
|
4
|
+
constructor(store) {
|
|
5
|
+
this.store = store;
|
|
6
|
+
}
|
|
7
|
+
get(projectId) {
|
|
8
|
+
const row = this.store.getIdentityRow(projectId);
|
|
9
|
+
return row ? toCamel(row) : null;
|
|
10
|
+
}
|
|
11
|
+
update(projectId, input) {
|
|
12
|
+
const existing = this.store.getIdentityRow(projectId);
|
|
13
|
+
const existingFields = existing
|
|
14
|
+
? toCamel(existing)
|
|
15
|
+
: null;
|
|
16
|
+
const snakeInput = toSnake(input);
|
|
17
|
+
let hasChanged = false;
|
|
18
|
+
if (!existingFields) {
|
|
19
|
+
hasChanged = true;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
for (const [key, val] of Object.entries(input)) {
|
|
23
|
+
if (val !== undefined) {
|
|
24
|
+
const currentVal = existingFields[key];
|
|
25
|
+
if (val !== currentVal) {
|
|
26
|
+
hasChanged = true;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const updatedAt = hasChanged || !existing ? new Date().toISOString() : existing.updated_at;
|
|
33
|
+
const updatedRow = this.store.upsertIdentityRow(projectId, snakeInput, updatedAt);
|
|
34
|
+
return toCamel(updatedRow);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=identity-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-repository.js","sourceRoot":"","sources":["../../../src/core/db/identity-repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,GAAG,CAAC,SAAiB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAiB,GAAyC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,KAA0B;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,QAAQ;YAC7B,CAAC,CAAC,OAAO,CAAiB,QAA8C,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,UAAU,GAAG,OAAO,CAAC,KAAgC,CAE1D,CAAC;QAEF,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,cAAc,CAAC,GAA2B,CAAC,CAAC;oBAC/D,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;wBACvB,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAClF,OAAO,OAAO,CAAiB,UAAgD,CAAC,CAAC;IACnF,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
export { toCamel, toSnake } from './case-mapper.js';
|
|
3
|
+
export { resolveDbPath } from './path.js';
|
|
4
|
+
export { SCHEMA_STATEMENTS, applyMigrations } from './schema.js';
|
|
5
|
+
export type { Store } from './store.js';
|
|
6
|
+
export { SqliteStore } from './store.js';
|
|
7
|
+
export { ExternalEventRepository } from './external-event-repository.js';
|
|
8
|
+
export { EmbeddingRepository } from './embedding-repository.js';
|
|
9
|
+
export { SyncRepository } from './sync-repository.js';
|
|
10
|
+
export { PlanRepository } from './plan-repository.js';
|
|
11
|
+
export declare function initDb(dbPath: string): Database.Database;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAwBxD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { SCHEMA_STATEMENTS, applyMigrations } from './schema.js';
|
|
4
|
+
export { toCamel, toSnake } from './case-mapper.js';
|
|
5
|
+
export { resolveDbPath } from './path.js';
|
|
6
|
+
export { SCHEMA_STATEMENTS, applyMigrations } from './schema.js';
|
|
7
|
+
export { SqliteStore } from './store.js';
|
|
8
|
+
export { ExternalEventRepository } from './external-event-repository.js';
|
|
9
|
+
export { EmbeddingRepository } from './embedding-repository.js';
|
|
10
|
+
export { SyncRepository } from './sync-repository.js';
|
|
11
|
+
export { PlanRepository } from './plan-repository.js';
|
|
12
|
+
export function initDb(dbPath) {
|
|
13
|
+
const db = new Database(dbPath);
|
|
14
|
+
db.pragma('journal_mode = WAL');
|
|
15
|
+
db.pragma('foreign_keys = ON');
|
|
16
|
+
for (const statement of SCHEMA_STATEMENTS) {
|
|
17
|
+
db.exec(statement);
|
|
18
|
+
}
|
|
19
|
+
applyMigrations(db);
|
|
20
|
+
// Memory databases hold all continuity state in plaintext. Restrict the
|
|
21
|
+
// file to owner-only access on creation. Best-effort: platforms without
|
|
22
|
+
// POSIX permission bits ignore the failure.
|
|
23
|
+
if (dbPath !== ':memory:') {
|
|
24
|
+
try {
|
|
25
|
+
fs.chmodSync(dbPath, 0o600);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Ignore chmod failures (e.g. Windows ACL-only filesystems)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return db;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,EAAE,CAAC,CAAC;IAEpB,wEAAwE;IACxE,wEAAwE;IACxE,4CAA4C;IAC5C,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { KnowledgeConfirmation } from '../types/knowledge-confirmation.js';
|
|
3
|
+
export declare class KnowledgeConfirmationRepository {
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(store: Store);
|
|
6
|
+
create(knowledgeId: number, originNodeId: number | null, tool: string | null): KnowledgeConfirmation;
|
|
7
|
+
findByKnowledgeId(knowledgeId: number): KnowledgeConfirmation[];
|
|
8
|
+
countByKnowledgeId(knowledgeId: number): number;
|
|
9
|
+
countByKnowledgeIds(knowledgeIds: number[]): Map<number, number>;
|
|
10
|
+
private mapToDomain;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=knowledge-confirmation-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-confirmation-repository.d.ts","sourceRoot":"","sources":["../../../src/core/db/knowledge-confirmation-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAA4B,MAAM,oCAAoC,CAAC;AAErG,qBAAa,+BAA+B;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,MAAM,CACJ,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,qBAAqB;IASxB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAK/D,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI/C,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAchE,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class KnowledgeConfirmationRepository {
|
|
2
|
+
store;
|
|
3
|
+
constructor(store) {
|
|
4
|
+
this.store = store;
|
|
5
|
+
}
|
|
6
|
+
create(knowledgeId, originNodeId, tool) {
|
|
7
|
+
const row = this.store.createKnowledgeConfirmationRow(knowledgeId, originNodeId, tool);
|
|
8
|
+
return this.mapToDomain(row);
|
|
9
|
+
}
|
|
10
|
+
findByKnowledgeId(knowledgeId) {
|
|
11
|
+
const rows = this.store.findConfirmationsByKnowledgeId(knowledgeId);
|
|
12
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
13
|
+
}
|
|
14
|
+
countByKnowledgeId(knowledgeId) {
|
|
15
|
+
return this.store.countConfirmationsByKnowledgeId(knowledgeId);
|
|
16
|
+
}
|
|
17
|
+
countByKnowledgeIds(knowledgeIds) {
|
|
18
|
+
if (knowledgeIds.length === 0) {
|
|
19
|
+
return new Map();
|
|
20
|
+
}
|
|
21
|
+
const counts = new Map();
|
|
22
|
+
for (const id of knowledgeIds) {
|
|
23
|
+
counts.set(id, 0);
|
|
24
|
+
}
|
|
25
|
+
for (const row of this.store.countConfirmationsByKnowledgeIds(knowledgeIds)) {
|
|
26
|
+
counts.set(row.knowledge_id, Number(row.count));
|
|
27
|
+
}
|
|
28
|
+
return counts;
|
|
29
|
+
}
|
|
30
|
+
mapToDomain(row) {
|
|
31
|
+
return {
|
|
32
|
+
id: row.id,
|
|
33
|
+
knowledgeId: row.knowledge_id,
|
|
34
|
+
originNodeId: row.origin_node_id,
|
|
35
|
+
tool: row.tool,
|
|
36
|
+
confirmedAt: row.confirmed_at,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=knowledge-confirmation-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-confirmation-repository.js","sourceRoot":"","sources":["../../../src/core/db/knowledge-confirmation-repository.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IACb;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,MAAM,CACJ,WAAmB,EACnB,YAA2B,EAC3B,IAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CACnD,WAAW,EACX,YAAY,EACZ,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,mBAAmB,CAAC,YAAsB;QACxC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,GAA6B;QAC/C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { Knowledge } from '../types/knowledge.js';
|
|
3
|
+
export declare class KnowledgeRepository {
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(store: Store);
|
|
6
|
+
private mapToDomain;
|
|
7
|
+
createWithSupersede(projectId: number, category: string, fact: string, why: string, originNodeId: number | null, supersedesId: number | null): Knowledge;
|
|
8
|
+
markConflicted(id: number, reason: string): Knowledge;
|
|
9
|
+
linkOriginNode(id: number, originNodeId: number): void;
|
|
10
|
+
resolveConflict(id: number, resolvedBy: string, resolutionKnowledgeId: number | null, resolveAs: 'active' | 'superseded'): Knowledge;
|
|
11
|
+
findActiveByProjectId(projectId: number): Knowledge[];
|
|
12
|
+
findConflictedByProjectId(projectId: number): Knowledge[];
|
|
13
|
+
findAllByProjectId(projectId: number): Knowledge[];
|
|
14
|
+
searchByProjectId(projectId: number, query: string, limit?: number): Knowledge[];
|
|
15
|
+
findById(id: number): Knowledge | null;
|
|
16
|
+
findByOriginNodeIds(originNodeIds: readonly number[]): Knowledge[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=knowledge-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-repository.d.ts","sourceRoot":"","sources":["../../../src/core/db/knowledge-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAgB,SAAS,EAAsC,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,OAAO,CAAC,WAAW;IAiBnB,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,SAAS;IAmBZ,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAUrD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAItD,eAAe,CACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,qBAAqB,EAAE,MAAM,GAAG,IAAI,EACpC,SAAS,EAAE,QAAQ,GAAG,YAAY,GACjC,SAAS;IAgBZ,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAKrD,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAKzD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAKlD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAKhF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKtC,mBAAmB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE;CAKnE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { toCamel } from './case-mapper.js';
|
|
2
|
+
export class KnowledgeRepository {
|
|
3
|
+
store;
|
|
4
|
+
constructor(store) {
|
|
5
|
+
this.store = store;
|
|
6
|
+
}
|
|
7
|
+
mapToDomain(row) {
|
|
8
|
+
const camel = toCamel(row);
|
|
9
|
+
return {
|
|
10
|
+
...camel,
|
|
11
|
+
category: row.category,
|
|
12
|
+
status: row.status,
|
|
13
|
+
legacyReferenceCount: row.legacy_reference_count ?? 0,
|
|
14
|
+
conflictedAt: row.conflicted_at ?? null,
|
|
15
|
+
conflictedReason: row.conflicted_reason ?? null,
|
|
16
|
+
resolvedAt: row.resolved_at ?? null,
|
|
17
|
+
resolvedBy: row.resolved_by ?? null,
|
|
18
|
+
resolutionKnowledgeId: row.resolution_knowledge_id ?? null,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
createWithSupersede(projectId, category, fact, why, originNodeId, supersedesId) {
|
|
22
|
+
return this.store.transaction(() => {
|
|
23
|
+
const createdRow = this.store.createKnowledgeRow(projectId, category, fact, why, originNodeId, supersedesId);
|
|
24
|
+
if (supersedesId !== null) {
|
|
25
|
+
this.store.markKnowledgeSupersededRow(supersedesId);
|
|
26
|
+
}
|
|
27
|
+
return this.mapToDomain(createdRow);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
markConflicted(id, reason) {
|
|
31
|
+
const now = new Date().toISOString();
|
|
32
|
+
this.store.markKnowledgeConflictedRow(id, now, reason);
|
|
33
|
+
const updated = this.findById(id);
|
|
34
|
+
if (!updated) {
|
|
35
|
+
throw new Error(`Knowledge ${id} does not exist.`);
|
|
36
|
+
}
|
|
37
|
+
return updated;
|
|
38
|
+
}
|
|
39
|
+
linkOriginNode(id, originNodeId) {
|
|
40
|
+
this.store.linkKnowledgeToOriginNodeRow(id, originNodeId);
|
|
41
|
+
}
|
|
42
|
+
resolveConflict(id, resolvedBy, resolutionKnowledgeId, resolveAs) {
|
|
43
|
+
const now = new Date().toISOString();
|
|
44
|
+
this.store.resolveKnowledgeConflictRow(id, now, resolvedBy, resolutionKnowledgeId, resolveAs);
|
|
45
|
+
const updated = this.findById(id);
|
|
46
|
+
if (!updated) {
|
|
47
|
+
throw new Error(`Knowledge ${id} does not exist.`);
|
|
48
|
+
}
|
|
49
|
+
return updated;
|
|
50
|
+
}
|
|
51
|
+
findActiveByProjectId(projectId) {
|
|
52
|
+
const rows = this.store.findActiveKnowledgeByProjectId(projectId);
|
|
53
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
54
|
+
}
|
|
55
|
+
findConflictedByProjectId(projectId) {
|
|
56
|
+
const rows = this.store.findConflictedKnowledgeByProjectId(projectId);
|
|
57
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
58
|
+
}
|
|
59
|
+
findAllByProjectId(projectId) {
|
|
60
|
+
const rows = this.store.findAllKnowledgeByProjectId(projectId);
|
|
61
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
62
|
+
}
|
|
63
|
+
searchByProjectId(projectId, query, limit) {
|
|
64
|
+
const rows = this.store.searchKnowledge(projectId, query, limit);
|
|
65
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
66
|
+
}
|
|
67
|
+
findById(id) {
|
|
68
|
+
const row = this.store.getKnowledgeById(id);
|
|
69
|
+
return row ? this.mapToDomain(row) : null;
|
|
70
|
+
}
|
|
71
|
+
findByOriginNodeIds(originNodeIds) {
|
|
72
|
+
return this.store
|
|
73
|
+
.getKnowledgeByOriginNodeIds(originNodeIds)
|
|
74
|
+
.map((row) => this.mapToDomain(row));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=knowledge-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-repository.js","sourceRoot":"","sources":["../../../src/core/db/knowledge-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { Lineage } from '../types/lineage.js';
|
|
3
|
+
export declare class LineageRepository {
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(store: Store);
|
|
6
|
+
create(projectId: number, name: string): Lineage;
|
|
7
|
+
findByProjectId(projectId: number): Lineage[];
|
|
8
|
+
findById(id: number): Lineage | undefined;
|
|
9
|
+
findByNameAndProjectId(projectId: number, name: string): Lineage | undefined;
|
|
10
|
+
touch(id: number): void;
|
|
11
|
+
setCurrentLineage(projectId: number, lineageId: number): void;
|
|
12
|
+
getCurrentLineageId(projectId: number): number | null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=lineage-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage-repository.d.ts","sourceRoot":"","sources":["../../../src/core/db/lineage-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAc,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAKhD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE;IAK7C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKzC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAM5E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAItD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { toCamel } from './case-mapper.js';
|
|
2
|
+
export class LineageRepository {
|
|
3
|
+
store;
|
|
4
|
+
constructor(store) {
|
|
5
|
+
this.store = store;
|
|
6
|
+
}
|
|
7
|
+
create(projectId, name) {
|
|
8
|
+
const row = this.store.createLineageRow(projectId, name);
|
|
9
|
+
return toCamel(row);
|
|
10
|
+
}
|
|
11
|
+
findByProjectId(projectId) {
|
|
12
|
+
const rows = this.store.getLineagesByProjectId(projectId);
|
|
13
|
+
return rows.map((row) => toCamel(row));
|
|
14
|
+
}
|
|
15
|
+
findById(id) {
|
|
16
|
+
const row = this.store.getLineageById(id);
|
|
17
|
+
return row ? toCamel(row) : undefined;
|
|
18
|
+
}
|
|
19
|
+
findByNameAndProjectId(projectId, name) {
|
|
20
|
+
const normalizedTarget = name.trim().toLowerCase();
|
|
21
|
+
const lineages = this.findByProjectId(projectId);
|
|
22
|
+
return lineages.find((l) => l.name.trim().toLowerCase() === normalizedTarget);
|
|
23
|
+
}
|
|
24
|
+
touch(id) {
|
|
25
|
+
this.store.touchLineageRow(id);
|
|
26
|
+
}
|
|
27
|
+
setCurrentLineage(projectId, lineageId) {
|
|
28
|
+
this.store.setCurrentLineageId(projectId, lineageId);
|
|
29
|
+
}
|
|
30
|
+
getCurrentLineageId(projectId) {
|
|
31
|
+
const projectRow = this.store.getProjectById(projectId);
|
|
32
|
+
return projectRow?.current_lineage_id ?? null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=lineage-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage-repository.js","sourceRoot":"","sources":["../../../src/core/db/lineage-repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,MAAM,CAAC,SAAiB,EAAE,IAAY;QACpC,MAAM,GAAG,GAAe,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,OAAO,CAAU,GAAyC,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAU,GAAyC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAU,GAAyC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,CAAC;IAED,sBAAsB,CAAC,SAAiB,EAAE,IAAY;QACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,EAAU;QACd,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QACpD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,mBAAmB,CAAC,SAAiB;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,UAAU,EAAE,kBAAkB,IAAI,IAAI,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Store } from './store.js';
|
|
2
|
+
import { Node } from '../types/node.js';
|
|
3
|
+
export declare class NodeRepository {
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(store: Store);
|
|
6
|
+
transaction<T>(fn: () => T): T;
|
|
7
|
+
createWithTouch(lineageId: number, tool: string, summary: string, parentNodeId: number | null, filesTouched?: string[]): Node;
|
|
8
|
+
findSessionNodesByLineageId(lineageId: number, limit?: number): Node[];
|
|
9
|
+
findAllByLineageId(lineageId: number, limit?: number): Node[];
|
|
10
|
+
findByLineageId(lineageId: number, limit?: number): Node[];
|
|
11
|
+
findByTouchedFiles(projectId: number, filePaths: readonly string[], lineageId?: number, limit?: number): Node[];
|
|
12
|
+
findByLineageIds(lineageIds: number[], limitPerLineage?: number): Node[];
|
|
13
|
+
findSessionNodesByRange(lineageId: number, fromNodeId: number, toNodeId: number): Node[];
|
|
14
|
+
findLatestByLineageId(lineageId: number): Node | undefined;
|
|
15
|
+
findById(id: number): Node | undefined;
|
|
16
|
+
countByLineageId(lineageId: number): number;
|
|
17
|
+
countByLineageIds(lineageIds: number[]): Map<number, number>;
|
|
18
|
+
findLineageIdsByNodeIds(nodeIds: number[]): Map<number, number>;
|
|
19
|
+
search(projectId: number, query: string, lineageId?: number, limit?: number): NodeSearchResult[];
|
|
20
|
+
private mapToDomain;
|
|
21
|
+
private mapToSearchResult;
|
|
22
|
+
}
|
|
23
|
+
export interface NodeSearchResult {
|
|
24
|
+
id: number;
|
|
25
|
+
lineageId: number;
|
|
26
|
+
lineageName: string;
|
|
27
|
+
projectId: number;
|
|
28
|
+
tool: string;
|
|
29
|
+
summary: string;
|
|
30
|
+
filesTouched: string[] | null;
|
|
31
|
+
createdAt: string;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=node-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-repository.d.ts","sourceRoot":"","sources":["../../../src/core/db/node-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuB,MAAM,YAAY,CAAC;AAExD,OAAO,EAAW,IAAI,EAAY,MAAM,kBAAkB,CAAC;AAa3D,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI9B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,IAAI;IAeP,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE;IAKtE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE;IAK7D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE;IAI1D,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,EAAE;IAiBT,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE;IAKxE,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IAMxF,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAK1D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAKtC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI3C,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAc5D,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAY/D,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,gBAAgB,EAAE;IAKrB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;CAY1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { toCamel } from './case-mapper.js';
|
|
2
|
+
function parseFilesTouched(raw) {
|
|
3
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(raw);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class NodeRepository {
|
|
14
|
+
store;
|
|
15
|
+
constructor(store) {
|
|
16
|
+
this.store = store;
|
|
17
|
+
}
|
|
18
|
+
transaction(fn) {
|
|
19
|
+
return this.store.transaction(fn);
|
|
20
|
+
}
|
|
21
|
+
createWithTouch(lineageId, tool, summary, parentNodeId, filesTouched) {
|
|
22
|
+
const serializedFiles = filesTouched ? JSON.stringify(filesTouched) : undefined;
|
|
23
|
+
return this.store.transaction(() => {
|
|
24
|
+
const row = this.store.createNodeRow(lineageId, tool, summary, parentNodeId, serializedFiles);
|
|
25
|
+
this.store.touchLineageRow(lineageId);
|
|
26
|
+
return this.mapToDomain(row);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
findSessionNodesByLineageId(lineageId, limit) {
|
|
30
|
+
const rows = this.store.getSessionNodesByLineageId(lineageId, limit);
|
|
31
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
32
|
+
}
|
|
33
|
+
findAllByLineageId(lineageId, limit) {
|
|
34
|
+
const rows = this.store.getAllNodesByLineageId(lineageId, limit);
|
|
35
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
36
|
+
}
|
|
37
|
+
findByLineageId(lineageId, limit) {
|
|
38
|
+
return this.findSessionNodesByLineageId(lineageId, limit);
|
|
39
|
+
}
|
|
40
|
+
findByTouchedFiles(projectId, filePaths, lineageId, limit) {
|
|
41
|
+
const rows = this.store.getSessionNodesByTouchedFiles(projectId, filePaths, lineageId, limit);
|
|
42
|
+
const wanted = new Set(filePaths.map((file) => file.trim()).filter((file) => file.length > 0));
|
|
43
|
+
return rows
|
|
44
|
+
.map((row) => this.mapToDomain(row))
|
|
45
|
+
.filter((node) => (node.filesTouched ?? []).some((file) => wanted.has(file)));
|
|
46
|
+
}
|
|
47
|
+
findByLineageIds(lineageIds, limitPerLineage) {
|
|
48
|
+
const rows = this.store.getNodesByLineageIds(lineageIds, limitPerLineage);
|
|
49
|
+
return rows.map((row) => this.mapToDomain(row));
|
|
50
|
+
}
|
|
51
|
+
findSessionNodesByRange(lineageId, fromNodeId, toNodeId) {
|
|
52
|
+
const allSessionNodes = this.store.getSessionNodesByLineageId(lineageId);
|
|
53
|
+
const inRange = allSessionNodes.filter((row) => row.id >= fromNodeId && row.id <= toNodeId);
|
|
54
|
+
return inRange.map((row) => this.mapToDomain(row));
|
|
55
|
+
}
|
|
56
|
+
findLatestByLineageId(lineageId) {
|
|
57
|
+
const row = this.store.getLatestNodeByLineageId(lineageId);
|
|
58
|
+
return row ? this.mapToDomain(row) : undefined;
|
|
59
|
+
}
|
|
60
|
+
findById(id) {
|
|
61
|
+
const row = this.store.getNodeById(id);
|
|
62
|
+
return row ? this.mapToDomain(row) : undefined;
|
|
63
|
+
}
|
|
64
|
+
countByLineageId(lineageId) {
|
|
65
|
+
return this.store.countNodesByLineageId(lineageId);
|
|
66
|
+
}
|
|
67
|
+
countByLineageIds(lineageIds) {
|
|
68
|
+
if (lineageIds.length === 0) {
|
|
69
|
+
return new Map();
|
|
70
|
+
}
|
|
71
|
+
const counts = new Map();
|
|
72
|
+
for (const id of lineageIds) {
|
|
73
|
+
counts.set(id, 0);
|
|
74
|
+
}
|
|
75
|
+
for (const row of this.store.countNodesByLineageIds(lineageIds)) {
|
|
76
|
+
counts.set(row.lineage_id, Number(row.count));
|
|
77
|
+
}
|
|
78
|
+
return counts;
|
|
79
|
+
}
|
|
80
|
+
findLineageIdsByNodeIds(nodeIds) {
|
|
81
|
+
if (nodeIds.length === 0) {
|
|
82
|
+
return new Map();
|
|
83
|
+
}
|
|
84
|
+
const rows = this.store.findLineageIdsByNodeIds(nodeIds);
|
|
85
|
+
const map = new Map();
|
|
86
|
+
for (const row of rows) {
|
|
87
|
+
map.set(row.id, row.lineage_id);
|
|
88
|
+
}
|
|
89
|
+
return map;
|
|
90
|
+
}
|
|
91
|
+
search(projectId, query, lineageId, limit) {
|
|
92
|
+
const rows = this.store.searchNodes(projectId, query, lineageId, limit);
|
|
93
|
+
return rows.map((row) => this.mapToSearchResult(row));
|
|
94
|
+
}
|
|
95
|
+
mapToDomain(row) {
|
|
96
|
+
const domain = toCamel(row);
|
|
97
|
+
return {
|
|
98
|
+
...domain,
|
|
99
|
+
nodeType: (row.node_type ?? 'session'),
|
|
100
|
+
filesTouched: parseFilesTouched(row.files_touched),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
mapToSearchResult(row) {
|
|
104
|
+
return {
|
|
105
|
+
id: row.id,
|
|
106
|
+
lineageId: row.lineage_id,
|
|
107
|
+
lineageName: row.lineage_name,
|
|
108
|
+
projectId: row.project_id,
|
|
109
|
+
tool: row.tool,
|
|
110
|
+
summary: row.summary,
|
|
111
|
+
filesTouched: parseFilesTouched(row.files_touched),
|
|
112
|
+
createdAt: row.created_at,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=node-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-repository.js","sourceRoot":"","sources":["../../../src/core/db/node-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/core/db/path.ts"],"names":[],"mappings":"AA6BA,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAgB9C;AAED,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAezD"}
|