@mc1global/opencode-jarvis 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/LICENSE +10 -0
- package/README.md +171 -0
- package/dist/application/context-memory/dtos.d.ts +100 -0
- package/dist/application/context-memory/dtos.d.ts.map +1 -0
- package/dist/application/context-memory/dtos.js +11 -0
- package/dist/application/context-memory/dtos.js.map +1 -0
- package/dist/application/context-memory/note-use-cases.d.ts +22 -0
- package/dist/application/context-memory/note-use-cases.d.ts.map +1 -0
- package/dist/application/context-memory/note-use-cases.js +76 -0
- package/dist/application/context-memory/note-use-cases.js.map +1 -0
- package/dist/application/context-memory/session-use-cases.d.ts +23 -0
- package/dist/application/context-memory/session-use-cases.d.ts.map +1 -0
- package/dist/application/context-memory/session-use-cases.js +63 -0
- package/dist/application/context-memory/session-use-cases.js.map +1 -0
- package/dist/application/context-memory/todo-use-cases.d.ts +25 -0
- package/dist/application/context-memory/todo-use-cases.d.ts.map +1 -0
- package/dist/application/context-memory/todo-use-cases.js +100 -0
- package/dist/application/context-memory/todo-use-cases.js.map +1 -0
- package/dist/application/domain-map/dtos.d.ts +58 -0
- package/dist/application/domain-map/dtos.d.ts.map +1 -0
- package/dist/application/domain-map/dtos.js +11 -0
- package/dist/application/domain-map/dtos.js.map +1 -0
- package/dist/application/domain-map/use-cases.d.ts +64 -0
- package/dist/application/domain-map/use-cases.d.ts.map +1 -0
- package/dist/application/domain-map/use-cases.js +217 -0
- package/dist/application/domain-map/use-cases.js.map +1 -0
- package/dist/application/environment/dtos.d.ts +74 -0
- package/dist/application/environment/dtos.d.ts.map +1 -0
- package/dist/application/environment/dtos.js +10 -0
- package/dist/application/environment/dtos.js.map +1 -0
- package/dist/application/environment/use-cases.d.ts +29 -0
- package/dist/application/environment/use-cases.d.ts.map +1 -0
- package/dist/application/environment/use-cases.js +232 -0
- package/dist/application/environment/use-cases.js.map +1 -0
- package/dist/application/governance/validation-use-cases.d.ts +45 -0
- package/dist/application/governance/validation-use-cases.d.ts.map +1 -0
- package/dist/application/governance/validation-use-cases.js +51 -0
- package/dist/application/governance/validation-use-cases.js.map +1 -0
- package/dist/application/kanban/board-use-cases.d.ts +45 -0
- package/dist/application/kanban/board-use-cases.d.ts.map +1 -0
- package/dist/application/kanban/board-use-cases.js +124 -0
- package/dist/application/kanban/board-use-cases.js.map +1 -0
- package/dist/application/kanban/card-use-cases.d.ts +32 -0
- package/dist/application/kanban/card-use-cases.d.ts.map +1 -0
- package/dist/application/kanban/card-use-cases.js +204 -0
- package/dist/application/kanban/card-use-cases.js.map +1 -0
- package/dist/application/kanban/dtos.d.ts +165 -0
- package/dist/application/kanban/dtos.d.ts.map +1 -0
- package/dist/application/kanban/dtos.js +11 -0
- package/dist/application/kanban/dtos.js.map +1 -0
- package/dist/application/kanban/sprint-use-cases.d.ts +34 -0
- package/dist/application/kanban/sprint-use-cases.d.ts.map +1 -0
- package/dist/application/kanban/sprint-use-cases.js +243 -0
- package/dist/application/kanban/sprint-use-cases.js.map +1 -0
- package/dist/application/rag/dtos.d.ts +113 -0
- package/dist/application/rag/dtos.d.ts.map +1 -0
- package/dist/application/rag/dtos.js +11 -0
- package/dist/application/rag/dtos.js.map +1 -0
- package/dist/application/rag/oracle-use-cases.d.ts +30 -0
- package/dist/application/rag/oracle-use-cases.d.ts.map +1 -0
- package/dist/application/rag/oracle-use-cases.js +91 -0
- package/dist/application/rag/oracle-use-cases.js.map +1 -0
- package/dist/application/rag/use-cases.d.ts +34 -0
- package/dist/application/rag/use-cases.d.ts.map +1 -0
- package/dist/application/rag/use-cases.js +234 -0
- package/dist/application/rag/use-cases.js.map +1 -0
- package/dist/application/token-metrics/dtos.d.ts +126 -0
- package/dist/application/token-metrics/dtos.d.ts.map +1 -0
- package/dist/application/token-metrics/dtos.js +11 -0
- package/dist/application/token-metrics/dtos.js.map +1 -0
- package/dist/application/token-metrics/tracking-use-cases.d.ts +33 -0
- package/dist/application/token-metrics/tracking-use-cases.d.ts.map +1 -0
- package/dist/application/token-metrics/tracking-use-cases.js +220 -0
- package/dist/application/token-metrics/tracking-use-cases.js.map +1 -0
- package/dist/application/vault/dtos.d.ts +91 -0
- package/dist/application/vault/dtos.d.ts.map +1 -0
- package/dist/application/vault/dtos.js +11 -0
- package/dist/application/vault/dtos.js.map +1 -0
- package/dist/application/vault/use-cases.d.ts +30 -0
- package/dist/application/vault/use-cases.d.ts.map +1 -0
- package/dist/application/vault/use-cases.js +307 -0
- package/dist/application/vault/use-cases.js.map +1 -0
- package/dist/application/vault/vault-manager.d.ts +47 -0
- package/dist/application/vault/vault-manager.d.ts.map +1 -0
- package/dist/application/vault/vault-manager.js +272 -0
- package/dist/application/vault/vault-manager.js.map +1 -0
- package/dist/application/workspace-registry/dtos.d.ts +91 -0
- package/dist/application/workspace-registry/dtos.d.ts.map +1 -0
- package/dist/application/workspace-registry/dtos.js +11 -0
- package/dist/application/workspace-registry/dtos.js.map +1 -0
- package/dist/application/workspace-registry/use-cases.d.ts +29 -0
- package/dist/application/workspace-registry/use-cases.d.ts.map +1 -0
- package/dist/application/workspace-registry/use-cases.js +249 -0
- package/dist/application/workspace-registry/use-cases.js.map +1 -0
- package/dist/domain/context-memory/entities.d.ts +123 -0
- package/dist/domain/context-memory/entities.d.ts.map +1 -0
- package/dist/domain/context-memory/entities.js +229 -0
- package/dist/domain/context-memory/entities.js.map +1 -0
- package/dist/domain/context-memory/repositories.d.ts +46 -0
- package/dist/domain/context-memory/repositories.d.ts.map +1 -0
- package/dist/domain/context-memory/repositories.js +2 -0
- package/dist/domain/context-memory/repositories.js.map +1 -0
- package/dist/domain/context-memory/services.d.ts +62 -0
- package/dist/domain/context-memory/services.d.ts.map +1 -0
- package/dist/domain/context-memory/services.js +162 -0
- package/dist/domain/context-memory/services.js.map +1 -0
- package/dist/domain/context-memory/value-objects.d.ts +65 -0
- package/dist/domain/context-memory/value-objects.d.ts.map +1 -0
- package/dist/domain/context-memory/value-objects.js +105 -0
- package/dist/domain/context-memory/value-objects.js.map +1 -0
- package/dist/domain/domain-map/repositories.d.ts +126 -0
- package/dist/domain/domain-map/repositories.d.ts.map +1 -0
- package/dist/domain/domain-map/repositories.js +2 -0
- package/dist/domain/domain-map/repositories.js.map +1 -0
- package/dist/domain/domain-map/services.d.ts +108 -0
- package/dist/domain/domain-map/services.d.ts.map +1 -0
- package/dist/domain/domain-map/services.js +335 -0
- package/dist/domain/domain-map/services.js.map +1 -0
- package/dist/domain/domain-map/value-objects.d.ts +186 -0
- package/dist/domain/domain-map/value-objects.d.ts.map +1 -0
- package/dist/domain/domain-map/value-objects.js +215 -0
- package/dist/domain/domain-map/value-objects.js.map +1 -0
- package/dist/domain/environment/entities.d.ts +93 -0
- package/dist/domain/environment/entities.d.ts.map +1 -0
- package/dist/domain/environment/entities.js +207 -0
- package/dist/domain/environment/entities.js.map +1 -0
- package/dist/domain/environment/renderers.d.ts +30 -0
- package/dist/domain/environment/renderers.d.ts.map +1 -0
- package/dist/domain/environment/renderers.js +139 -0
- package/dist/domain/environment/renderers.js.map +1 -0
- package/dist/domain/environment/repositories.d.ts +73 -0
- package/dist/domain/environment/repositories.d.ts.map +1 -0
- package/dist/domain/environment/repositories.js +16 -0
- package/dist/domain/environment/repositories.js.map +1 -0
- package/dist/domain/environment/services.d.ts +62 -0
- package/dist/domain/environment/services.d.ts.map +1 -0
- package/dist/domain/environment/services.js +282 -0
- package/dist/domain/environment/services.js.map +1 -0
- package/dist/domain/environment/value-objects.d.ts +127 -0
- package/dist/domain/environment/value-objects.d.ts.map +1 -0
- package/dist/domain/environment/value-objects.js +179 -0
- package/dist/domain/environment/value-objects.js.map +1 -0
- package/dist/domain/governance/policies.d.ts +42 -0
- package/dist/domain/governance/policies.d.ts.map +1 -0
- package/dist/domain/governance/policies.js +304 -0
- package/dist/domain/governance/policies.js.map +1 -0
- package/dist/domain/governance/services.d.ts +38 -0
- package/dist/domain/governance/services.d.ts.map +1 -0
- package/dist/domain/governance/services.js +42 -0
- package/dist/domain/governance/services.js.map +1 -0
- package/dist/domain/kanban/entities.d.ts +105 -0
- package/dist/domain/kanban/entities.d.ts.map +1 -0
- package/dist/domain/kanban/entities.js +211 -0
- package/dist/domain/kanban/entities.js.map +1 -0
- package/dist/domain/kanban/grooming.d.ts +40 -0
- package/dist/domain/kanban/grooming.d.ts.map +1 -0
- package/dist/domain/kanban/grooming.js +50 -0
- package/dist/domain/kanban/grooming.js.map +1 -0
- package/dist/domain/kanban/repositories.d.ts +41 -0
- package/dist/domain/kanban/repositories.d.ts.map +1 -0
- package/dist/domain/kanban/repositories.js +2 -0
- package/dist/domain/kanban/repositories.js.map +1 -0
- package/dist/domain/kanban/services.d.ts +49 -0
- package/dist/domain/kanban/services.d.ts.map +1 -0
- package/dist/domain/kanban/services.js +154 -0
- package/dist/domain/kanban/services.js.map +1 -0
- package/dist/domain/kanban/sprint.d.ts +103 -0
- package/dist/domain/kanban/sprint.d.ts.map +1 -0
- package/dist/domain/kanban/sprint.js +192 -0
- package/dist/domain/kanban/sprint.js.map +1 -0
- package/dist/domain/kanban/value-objects.d.ts +91 -0
- package/dist/domain/kanban/value-objects.d.ts.map +1 -0
- package/dist/domain/kanban/value-objects.js +167 -0
- package/dist/domain/kanban/value-objects.js.map +1 -0
- package/dist/domain/rag/repositories.d.ts +152 -0
- package/dist/domain/rag/repositories.d.ts.map +1 -0
- package/dist/domain/rag/repositories.js +2 -0
- package/dist/domain/rag/repositories.js.map +1 -0
- package/dist/domain/rag/services.d.ts +57 -0
- package/dist/domain/rag/services.d.ts.map +1 -0
- package/dist/domain/rag/services.js +224 -0
- package/dist/domain/rag/services.js.map +1 -0
- package/dist/domain/rag/value-objects.d.ts +118 -0
- package/dist/domain/rag/value-objects.d.ts.map +1 -0
- package/dist/domain/rag/value-objects.js +114 -0
- package/dist/domain/rag/value-objects.js.map +1 -0
- package/dist/domain/shared/value-objects.d.ts +56 -0
- package/dist/domain/shared/value-objects.d.ts.map +1 -0
- package/dist/domain/shared/value-objects.js +89 -0
- package/dist/domain/shared/value-objects.js.map +1 -0
- package/dist/domain/token-metrics/entities.d.ts +90 -0
- package/dist/domain/token-metrics/entities.d.ts.map +1 -0
- package/dist/domain/token-metrics/entities.js +115 -0
- package/dist/domain/token-metrics/entities.js.map +1 -0
- package/dist/domain/token-metrics/repositories.d.ts +93 -0
- package/dist/domain/token-metrics/repositories.d.ts.map +1 -0
- package/dist/domain/token-metrics/repositories.js +2 -0
- package/dist/domain/token-metrics/repositories.js.map +1 -0
- package/dist/domain/token-metrics/value-objects.d.ts +81 -0
- package/dist/domain/token-metrics/value-objects.d.ts.map +1 -0
- package/dist/domain/token-metrics/value-objects.js +144 -0
- package/dist/domain/token-metrics/value-objects.js.map +1 -0
- package/dist/domain/vault/canvas.d.ts +70 -0
- package/dist/domain/vault/canvas.d.ts.map +1 -0
- package/dist/domain/vault/canvas.js +70 -0
- package/dist/domain/vault/canvas.js.map +1 -0
- package/dist/domain/vault/document.d.ts +71 -0
- package/dist/domain/vault/document.d.ts.map +1 -0
- package/dist/domain/vault/document.js +244 -0
- package/dist/domain/vault/document.js.map +1 -0
- package/dist/domain/vault/repositories.d.ts +35 -0
- package/dist/domain/vault/repositories.d.ts.map +1 -0
- package/dist/domain/vault/repositories.js +2 -0
- package/dist/domain/vault/repositories.js.map +1 -0
- package/dist/domain/vault/section.d.ts +33 -0
- package/dist/domain/vault/section.d.ts.map +1 -0
- package/dist/domain/vault/section.js +39 -0
- package/dist/domain/vault/section.js.map +1 -0
- package/dist/domain/vault/services.d.ts +48 -0
- package/dist/domain/vault/services.d.ts.map +1 -0
- package/dist/domain/vault/services.js +249 -0
- package/dist/domain/vault/services.js.map +1 -0
- package/dist/domain/vault/table.d.ts +58 -0
- package/dist/domain/vault/table.d.ts.map +1 -0
- package/dist/domain/vault/table.js +204 -0
- package/dist/domain/vault/table.js.map +1 -0
- package/dist/domain/vault/timeline.d.ts +53 -0
- package/dist/domain/vault/timeline.d.ts.map +1 -0
- package/dist/domain/vault/timeline.js +214 -0
- package/dist/domain/vault/timeline.js.map +1 -0
- package/dist/domain/vault/value-objects.d.ts +45 -0
- package/dist/domain/vault/value-objects.d.ts.map +1 -0
- package/dist/domain/vault/value-objects.js +89 -0
- package/dist/domain/vault/value-objects.js.map +1 -0
- package/dist/domain/workspace-registry/entities.d.ts +57 -0
- package/dist/domain/workspace-registry/entities.d.ts.map +1 -0
- package/dist/domain/workspace-registry/entities.js +148 -0
- package/dist/domain/workspace-registry/entities.js.map +1 -0
- package/dist/domain/workspace-registry/repositories.d.ts +57 -0
- package/dist/domain/workspace-registry/repositories.d.ts.map +1 -0
- package/dist/domain/workspace-registry/repositories.js +12 -0
- package/dist/domain/workspace-registry/repositories.js.map +1 -0
- package/dist/domain/workspace-registry/services.d.ts +56 -0
- package/dist/domain/workspace-registry/services.d.ts.map +1 -0
- package/dist/domain/workspace-registry/services.js +283 -0
- package/dist/domain/workspace-registry/services.js.map +1 -0
- package/dist/domain/workspace-registry/value-objects.d.ts +113 -0
- package/dist/domain/workspace-registry/value-objects.d.ts.map +1 -0
- package/dist/domain/workspace-registry/value-objects.js +235 -0
- package/dist/domain/workspace-registry/value-objects.js.map +1 -0
- package/dist/hooks/context-compacting.d.ts +35 -0
- package/dist/hooks/context-compacting.d.ts.map +1 -0
- package/dist/hooks/context-compacting.js +48 -0
- package/dist/hooks/context-compacting.js.map +1 -0
- package/dist/hooks/event-handlers.d.ts +39 -0
- package/dist/hooks/event-handlers.d.ts.map +1 -0
- package/dist/hooks/event-handlers.js +75 -0
- package/dist/hooks/event-handlers.js.map +1 -0
- package/dist/hooks/guardrails.d.ts +33 -0
- package/dist/hooks/guardrails.d.ts.map +1 -0
- package/dist/hooks/guardrails.js +22 -0
- package/dist/hooks/guardrails.js.map +1 -0
- package/dist/hooks/shell-env.d.ts +28 -0
- package/dist/hooks/shell-env.d.ts.map +1 -0
- package/dist/hooks/shell-env.js +17 -0
- package/dist/hooks/shell-env.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +349 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/context-memory/note-repository.d.ts +26 -0
- package/dist/infrastructure/context-memory/note-repository.d.ts.map +1 -0
- package/dist/infrastructure/context-memory/note-repository.js +87 -0
- package/dist/infrastructure/context-memory/note-repository.js.map +1 -0
- package/dist/infrastructure/context-memory/search-repository.d.ts +20 -0
- package/dist/infrastructure/context-memory/search-repository.d.ts.map +1 -0
- package/dist/infrastructure/context-memory/search-repository.js +44 -0
- package/dist/infrastructure/context-memory/search-repository.js.map +1 -0
- package/dist/infrastructure/context-memory/session-repository.d.ts +26 -0
- package/dist/infrastructure/context-memory/session-repository.d.ts.map +1 -0
- package/dist/infrastructure/context-memory/session-repository.js +79 -0
- package/dist/infrastructure/context-memory/session-repository.js.map +1 -0
- package/dist/infrastructure/context-memory/todo-repository.d.ts +26 -0
- package/dist/infrastructure/context-memory/todo-repository.d.ts.map +1 -0
- package/dist/infrastructure/context-memory/todo-repository.js +105 -0
- package/dist/infrastructure/context-memory/todo-repository.js.map +1 -0
- package/dist/infrastructure/database/sqlite-adapter.d.ts +60 -0
- package/dist/infrastructure/database/sqlite-adapter.d.ts.map +1 -0
- package/dist/infrastructure/database/sqlite-adapter.js +93 -0
- package/dist/infrastructure/database/sqlite-adapter.js.map +1 -0
- package/dist/infrastructure/domain-map/llm-analyzer.d.ts +60 -0
- package/dist/infrastructure/domain-map/llm-analyzer.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/llm-analyzer.js +249 -0
- package/dist/infrastructure/domain-map/llm-analyzer.js.map +1 -0
- package/dist/infrastructure/domain-map/lsp-adapter.d.ts +61 -0
- package/dist/infrastructure/domain-map/lsp-adapter.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/lsp-adapter.js +210 -0
- package/dist/infrastructure/domain-map/lsp-adapter.js.map +1 -0
- package/dist/infrastructure/domain-map/lsp-configs.d.ts +53 -0
- package/dist/infrastructure/domain-map/lsp-configs.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/lsp-configs.js +274 -0
- package/dist/infrastructure/domain-map/lsp-configs.js.map +1 -0
- package/dist/infrastructure/domain-map/lsp-json-rpc.d.ts +132 -0
- package/dist/infrastructure/domain-map/lsp-json-rpc.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/lsp-json-rpc.js +320 -0
- package/dist/infrastructure/domain-map/lsp-json-rpc.js.map +1 -0
- package/dist/infrastructure/domain-map/project-scanner.d.ts +43 -0
- package/dist/infrastructure/domain-map/project-scanner.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/project-scanner.js +193 -0
- package/dist/infrastructure/domain-map/project-scanner.js.map +1 -0
- package/dist/infrastructure/environment/environment-repository.d.ts +33 -0
- package/dist/infrastructure/environment/environment-repository.d.ts.map +1 -0
- package/dist/infrastructure/environment/environment-repository.js +161 -0
- package/dist/infrastructure/environment/environment-repository.js.map +1 -0
- package/dist/infrastructure/environment/scanner-adapter.d.ts +23 -0
- package/dist/infrastructure/environment/scanner-adapter.d.ts.map +1 -0
- package/dist/infrastructure/environment/scanner-adapter.js +102 -0
- package/dist/infrastructure/environment/scanner-adapter.js.map +1 -0
- package/dist/infrastructure/kanban/card-repository.d.ts +41 -0
- package/dist/infrastructure/kanban/card-repository.d.ts.map +1 -0
- package/dist/infrastructure/kanban/card-repository.js +185 -0
- package/dist/infrastructure/kanban/card-repository.js.map +1 -0
- package/dist/infrastructure/kanban/sprint-repository.d.ts +40 -0
- package/dist/infrastructure/kanban/sprint-repository.d.ts.map +1 -0
- package/dist/infrastructure/kanban/sprint-repository.js +186 -0
- package/dist/infrastructure/kanban/sprint-repository.js.map +1 -0
- package/dist/infrastructure/rag/file-discovery.d.ts +19 -0
- package/dist/infrastructure/rag/file-discovery.d.ts.map +1 -0
- package/dist/infrastructure/rag/file-discovery.js +201 -0
- package/dist/infrastructure/rag/file-discovery.js.map +1 -0
- package/dist/infrastructure/rag/ollama-embeddings.d.ts +18 -0
- package/dist/infrastructure/rag/ollama-embeddings.d.ts.map +1 -0
- package/dist/infrastructure/rag/ollama-embeddings.js +54 -0
- package/dist/infrastructure/rag/ollama-embeddings.js.map +1 -0
- package/dist/infrastructure/rag/text-splitter.d.ts +19 -0
- package/dist/infrastructure/rag/text-splitter.d.ts.map +1 -0
- package/dist/infrastructure/rag/text-splitter.js +38 -0
- package/dist/infrastructure/rag/text-splitter.js.map +1 -0
- package/dist/infrastructure/rag/vectra-adapter.d.ts +38 -0
- package/dist/infrastructure/rag/vectra-adapter.d.ts.map +1 -0
- package/dist/infrastructure/rag/vectra-adapter.js +275 -0
- package/dist/infrastructure/rag/vectra-adapter.js.map +1 -0
- package/dist/infrastructure/token-metrics/token-metrics-repository.d.ts +29 -0
- package/dist/infrastructure/token-metrics/token-metrics-repository.d.ts.map +1 -0
- package/dist/infrastructure/token-metrics/token-metrics-repository.js +254 -0
- package/dist/infrastructure/token-metrics/token-metrics-repository.js.map +1 -0
- package/dist/infrastructure/vault/markdown-parser.d.ts +35 -0
- package/dist/infrastructure/vault/markdown-parser.d.ts.map +1 -0
- package/dist/infrastructure/vault/markdown-parser.js +145 -0
- package/dist/infrastructure/vault/markdown-parser.js.map +1 -0
- package/dist/infrastructure/vault/vault-fs-adapter.d.ts +17 -0
- package/dist/infrastructure/vault/vault-fs-adapter.d.ts.map +1 -0
- package/dist/infrastructure/vault/vault-fs-adapter.js +105 -0
- package/dist/infrastructure/vault/vault-fs-adapter.js.map +1 -0
- package/dist/infrastructure/workspace-registry/dependency-repository.d.ts +27 -0
- package/dist/infrastructure/workspace-registry/dependency-repository.d.ts.map +1 -0
- package/dist/infrastructure/workspace-registry/dependency-repository.js +89 -0
- package/dist/infrastructure/workspace-registry/dependency-repository.js.map +1 -0
- package/dist/infrastructure/workspace-registry/workspace-repository.d.ts +28 -0
- package/dist/infrastructure/workspace-registry/workspace-repository.d.ts.map +1 -0
- package/dist/infrastructure/workspace-registry/workspace-repository.js +108 -0
- package/dist/infrastructure/workspace-registry/workspace-repository.js.map +1 -0
- package/dist/tools/agent-tools.d.ts +14 -0
- package/dist/tools/agent-tools.d.ts.map +1 -0
- package/dist/tools/agent-tools.js +238 -0
- package/dist/tools/agent-tools.js.map +1 -0
- package/dist/tools/context-memory-tools.d.ts +16 -0
- package/dist/tools/context-memory-tools.d.ts.map +1 -0
- package/dist/tools/context-memory-tools.js +242 -0
- package/dist/tools/context-memory-tools.js.map +1 -0
- package/dist/tools/data-tools.d.ts +3 -0
- package/dist/tools/data-tools.d.ts.map +1 -0
- package/dist/tools/data-tools.js +383 -0
- package/dist/tools/data-tools.js.map +1 -0
- package/dist/tools/domain-map-tools.d.ts +41 -0
- package/dist/tools/domain-map-tools.d.ts.map +1 -0
- package/dist/tools/domain-map-tools.js +134 -0
- package/dist/tools/domain-map-tools.js.map +1 -0
- package/dist/tools/environment-tools.d.ts +85 -0
- package/dist/tools/environment-tools.d.ts.map +1 -0
- package/dist/tools/environment-tools.js +223 -0
- package/dist/tools/environment-tools.js.map +1 -0
- package/dist/tools/governance-tools.d.ts +7 -0
- package/dist/tools/governance-tools.d.ts.map +1 -0
- package/dist/tools/governance-tools.js +73 -0
- package/dist/tools/governance-tools.js.map +1 -0
- package/dist/tools/kanban-board-tools.d.ts +11 -0
- package/dist/tools/kanban-board-tools.d.ts.map +1 -0
- package/dist/tools/kanban-board-tools.js +354 -0
- package/dist/tools/kanban-board-tools.js.map +1 -0
- package/dist/tools/kanban-card-tools.d.ts +11 -0
- package/dist/tools/kanban-card-tools.d.ts.map +1 -0
- package/dist/tools/kanban-card-tools.js +407 -0
- package/dist/tools/kanban-card-tools.js.map +1 -0
- package/dist/tools/rag-tools.d.ts +10 -0
- package/dist/tools/rag-tools.d.ts.map +1 -0
- package/dist/tools/rag-tools.js +279 -0
- package/dist/tools/rag-tools.js.map +1 -0
- package/dist/tools/token-metrics-tools.d.ts +98 -0
- package/dist/tools/token-metrics-tools.d.ts.map +1 -0
- package/dist/tools/token-metrics-tools.js +287 -0
- package/dist/tools/token-metrics-tools.js.map +1 -0
- package/dist/tools/vault-manage-tool.d.ts +7 -0
- package/dist/tools/vault-manage-tool.d.ts.map +1 -0
- package/dist/tools/vault-manage-tool.js +193 -0
- package/dist/tools/vault-manage-tool.js.map +1 -0
- package/dist/tools/vault-tools.d.ts +7 -0
- package/dist/tools/vault-tools.d.ts.map +1 -0
- package/dist/tools/vault-tools.js +348 -0
- package/dist/tools/vault-tools.js.map +1 -0
- package/dist/tools/workspace-registry-tools.d.ts +93 -0
- package/dist/tools/workspace-registry-tools.d.ts.map +1 -0
- package/dist/tools/workspace-registry-tools.js +217 -0
- package/dist/tools/workspace-registry-tools.js.map +1 -0
- package/package.json +59 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { mkdirSync } from "node:fs";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
// Shared Domain
|
|
4
|
+
import { WorkspaceId } from "./domain/shared/value-objects.js";
|
|
5
|
+
// Infrastructure
|
|
6
|
+
import { SqliteAdapter } from "./infrastructure/database/sqlite-adapter.js";
|
|
7
|
+
// Context Memory Repositories
|
|
8
|
+
import { SqliteSessionRepository } from "./infrastructure/context-memory/session-repository.js";
|
|
9
|
+
import { SqliteTodoRepository } from "./infrastructure/context-memory/todo-repository.js";
|
|
10
|
+
import { SqliteNoteRepository } from "./infrastructure/context-memory/note-repository.js";
|
|
11
|
+
import { createSimpleSearchRepo } from "./infrastructure/context-memory/search-repository.js";
|
|
12
|
+
// Kanban Repositories
|
|
13
|
+
import { SqliteCardRepository } from "./infrastructure/kanban/card-repository.js";
|
|
14
|
+
import { SqliteSprintRepository, SqliteEpicRepository, } from "./infrastructure/kanban/sprint-repository.js";
|
|
15
|
+
// Context Memory Domain Services
|
|
16
|
+
import { SessionDomainService, TodoDomainService, NoteDomainService, ContextSearchService, } from "./domain/context-memory/services.js";
|
|
17
|
+
// Kanban Domain Services
|
|
18
|
+
import { CardDomainService } from "./domain/kanban/services.js";
|
|
19
|
+
// Governance Domain
|
|
20
|
+
import { DEFAULT_POLICIES } from "./domain/governance/policies.js";
|
|
21
|
+
import { PolicyValidationService } from "./domain/governance/services.js";
|
|
22
|
+
// Context Memory Application
|
|
23
|
+
import { SessionUseCases } from "./application/context-memory/session-use-cases.js";
|
|
24
|
+
import { TodoUseCases } from "./application/context-memory/todo-use-cases.js";
|
|
25
|
+
import { NoteUseCases } from "./application/context-memory/note-use-cases.js";
|
|
26
|
+
// Kanban Application
|
|
27
|
+
import { CardUseCases } from "./application/kanban/card-use-cases.js";
|
|
28
|
+
import { SprintUseCases, EpicUseCases, } from "./application/kanban/sprint-use-cases.js";
|
|
29
|
+
import { BoardUseCases } from "./application/kanban/board-use-cases.js";
|
|
30
|
+
// Governance Application
|
|
31
|
+
import { GovernanceUseCases } from "./application/governance/validation-use-cases.js";
|
|
32
|
+
// Token Metrics
|
|
33
|
+
import { SqliteTokenMetricsRepository } from "./infrastructure/token-metrics/token-metrics-repository.js";
|
|
34
|
+
import { TokenMetricsUseCases } from "./application/token-metrics/tracking-use-cases.js";
|
|
35
|
+
// Vault
|
|
36
|
+
import { VaultFsAdapter } from "./infrastructure/vault/vault-fs-adapter.js";
|
|
37
|
+
import { VaultUseCases } from "./application/vault/use-cases.js";
|
|
38
|
+
import { VaultManager } from "./application/vault/vault-manager.js";
|
|
39
|
+
// RAG Infrastructure (native TypeScript, replaces Python bridge)
|
|
40
|
+
import { VectraVectorRepository } from "./infrastructure/rag/vectra-adapter.js";
|
|
41
|
+
import { OllamaEmbeddingProvider } from "./infrastructure/rag/ollama-embeddings.js";
|
|
42
|
+
import { LangchainTextSplitter } from "./infrastructure/rag/text-splitter.js";
|
|
43
|
+
import { FileSystemDiscovery } from "./infrastructure/rag/file-discovery.js";
|
|
44
|
+
import { DEFAULT_RAG_CONFIG } from "./domain/rag/value-objects.js";
|
|
45
|
+
// RAG Application
|
|
46
|
+
import { RagUseCases } from "./application/rag/use-cases.js";
|
|
47
|
+
import { OracleUseCases } from "./application/rag/oracle-use-cases.js";
|
|
48
|
+
// Domain Map Infrastructure
|
|
49
|
+
import { LspClientAdapter } from "./infrastructure/domain-map/lsp-adapter.js";
|
|
50
|
+
import { LlmSemanticAnalyzer } from "./infrastructure/domain-map/llm-analyzer.js";
|
|
51
|
+
import { FileProjectScanner } from "./infrastructure/domain-map/project-scanner.js";
|
|
52
|
+
// Domain Map Application
|
|
53
|
+
import { DomainMapUseCases } from "./application/domain-map/use-cases.js";
|
|
54
|
+
// Workspace Registry Infrastructure
|
|
55
|
+
import { SqliteWorkspaceRegistryRepository } from "./infrastructure/workspace-registry/workspace-repository.js";
|
|
56
|
+
import { SqliteWorkspaceDependencyRepository } from "./infrastructure/workspace-registry/dependency-repository.js";
|
|
57
|
+
// Workspace Registry Domain
|
|
58
|
+
import { WorkspaceRegistryService } from "./domain/workspace-registry/services.js";
|
|
59
|
+
import { resolveJarvisHome } from "./domain/workspace-registry/value-objects.js";
|
|
60
|
+
// Workspace Registry Application
|
|
61
|
+
import { WorkspaceRegistryUseCases } from "./application/workspace-registry/use-cases.js";
|
|
62
|
+
// Environment Infrastructure
|
|
63
|
+
import { SqliteEnvironmentRepository } from "./infrastructure/environment/environment-repository.js";
|
|
64
|
+
import { EnvironmentScannerAdapter } from "./infrastructure/environment/scanner-adapter.js";
|
|
65
|
+
// Environment Domain
|
|
66
|
+
import { EnvironmentDomainService } from "./domain/environment/services.js";
|
|
67
|
+
// Environment Application
|
|
68
|
+
import { EnvironmentUseCases } from "./application/environment/use-cases.js";
|
|
69
|
+
// Tools
|
|
70
|
+
import { createContextMemoryTools } from "./tools/context-memory-tools.js";
|
|
71
|
+
import { createKanbanCardTools } from "./tools/kanban-card-tools.js";
|
|
72
|
+
import { createKanbanBoardTools } from "./tools/kanban-board-tools.js";
|
|
73
|
+
import { createGovernanceTools } from "./tools/governance-tools.js";
|
|
74
|
+
import { createRagTools } from "./tools/rag-tools.js";
|
|
75
|
+
import { createDataTools } from "./tools/data-tools.js";
|
|
76
|
+
import { createAgentTools } from "./tools/agent-tools.js";
|
|
77
|
+
import { createVaultTools } from "./tools/vault-tools.js";
|
|
78
|
+
import { createVaultManageTool } from "./tools/vault-manage-tool.js";
|
|
79
|
+
import { createDomainMapTools } from "./tools/domain-map-tools.js";
|
|
80
|
+
import { createWorkspaceRegistryTools } from "./tools/workspace-registry-tools.js";
|
|
81
|
+
import { createEnvironmentTools } from "./tools/environment-tools.js";
|
|
82
|
+
import { createTokenMetricsTools } from "./tools/token-metrics-tools.js";
|
|
83
|
+
// Hooks
|
|
84
|
+
import { createCompactingHook } from "./hooks/context-compacting.js";
|
|
85
|
+
import { createShellEnvHook } from "./hooks/shell-env.js";
|
|
86
|
+
import { createGuardrailsHook } from "./hooks/guardrails.js";
|
|
87
|
+
import { createEventHook } from "./hooks/event-handlers.js";
|
|
88
|
+
/**
|
|
89
|
+
* Derive workspace name from directory path.
|
|
90
|
+
* Uses the last segment of the path, uppercased.
|
|
91
|
+
* e.g., "/Users/dev/projects/my-app" -> "MY-APP"
|
|
92
|
+
*/
|
|
93
|
+
function getWorkspace(directory) {
|
|
94
|
+
const name = basename(directory);
|
|
95
|
+
return name.toUpperCase();
|
|
96
|
+
}
|
|
97
|
+
export const JarvisPlugin = async (input) => {
|
|
98
|
+
// ── Infrastructure Setup ──────────────────────────────────────────
|
|
99
|
+
const jarvisDir = join(input.directory, ".jarvis");
|
|
100
|
+
mkdirSync(jarvisDir, { recursive: true });
|
|
101
|
+
const dbPath = join(jarvisDir, "jarvis.db");
|
|
102
|
+
const db = new SqliteAdapter({ path: dbPath });
|
|
103
|
+
// Central workspace registry database (~/.jarvis/registry.db)
|
|
104
|
+
const jarvisHome = resolveJarvisHome();
|
|
105
|
+
mkdirSync(jarvisHome, { recursive: true });
|
|
106
|
+
const registryDbPath = join(jarvisHome, "registry.db");
|
|
107
|
+
const registryDb = new SqliteAdapter({ path: registryDbPath });
|
|
108
|
+
// ── Repository Layer ──────────────────────────────────────────────
|
|
109
|
+
// Context Memory
|
|
110
|
+
const sessionRepo = new SqliteSessionRepository(db);
|
|
111
|
+
const todoRepo = new SqliteTodoRepository(db);
|
|
112
|
+
const noteRepo = new SqliteNoteRepository(db);
|
|
113
|
+
const searchRepo = createSimpleSearchRepo(todoRepo, noteRepo);
|
|
114
|
+
// Kanban
|
|
115
|
+
const cardRepo = new SqliteCardRepository(db);
|
|
116
|
+
const sprintRepo = new SqliteSprintRepository(db);
|
|
117
|
+
const epicRepo = new SqliteEpicRepository(db);
|
|
118
|
+
// Token Metrics
|
|
119
|
+
const tokenMetricsRepo = new SqliteTokenMetricsRepository(db);
|
|
120
|
+
// Workspace Registry (central registry.db, separate from per-project db)
|
|
121
|
+
const workspaceRegistryRepo = new SqliteWorkspaceRegistryRepository(registryDb);
|
|
122
|
+
const workspaceDependencyRepo = new SqliteWorkspaceDependencyRepository(registryDb);
|
|
123
|
+
// Environment (per-project db, scoped to current workspace)
|
|
124
|
+
const wsId = WorkspaceId.create(getWorkspace(input.directory));
|
|
125
|
+
const environmentRepo = new SqliteEnvironmentRepository(db, wsId);
|
|
126
|
+
// Vault (filesystem-based, no SQLite)
|
|
127
|
+
const vaultRoot = join(jarvisDir, "..", "obsidian-vault");
|
|
128
|
+
const vaultRepo = new VaultFsAdapter(vaultRoot);
|
|
129
|
+
// ── Domain Service Layer ──────────────────────────────────────────
|
|
130
|
+
// Context Memory
|
|
131
|
+
const sessionService = new SessionDomainService(sessionRepo);
|
|
132
|
+
const todoService = new TodoDomainService(todoRepo);
|
|
133
|
+
const noteService = new NoteDomainService(noteRepo);
|
|
134
|
+
const searchService = new ContextSearchService(searchRepo);
|
|
135
|
+
// Kanban
|
|
136
|
+
const cardService = new CardDomainService(cardRepo);
|
|
137
|
+
// Governance
|
|
138
|
+
const validationService = new PolicyValidationService(DEFAULT_POLICIES);
|
|
139
|
+
// Workspace Registry
|
|
140
|
+
const workspaceRegistryService = new WorkspaceRegistryService(workspaceRegistryRepo, workspaceDependencyRepo);
|
|
141
|
+
// Environment
|
|
142
|
+
const environmentService = new EnvironmentDomainService(environmentRepo);
|
|
143
|
+
// ── Application Use Case Layer ────────────────────────────────────
|
|
144
|
+
// Context Memory
|
|
145
|
+
const sessionUseCases = new SessionUseCases(sessionService);
|
|
146
|
+
const todoUseCases = new TodoUseCases(todoService, todoRepo);
|
|
147
|
+
const noteUseCases = new NoteUseCases(noteService, searchService);
|
|
148
|
+
// Kanban
|
|
149
|
+
const cardUseCases = new CardUseCases(cardRepo, cardService);
|
|
150
|
+
const sprintUseCases = new SprintUseCases(sprintRepo);
|
|
151
|
+
const epicUseCases = new EpicUseCases(epicRepo);
|
|
152
|
+
const boardUseCases = new BoardUseCases(cardRepo, cardService);
|
|
153
|
+
// Governance
|
|
154
|
+
const governanceUseCases = new GovernanceUseCases(validationService);
|
|
155
|
+
// Token Metrics
|
|
156
|
+
const tokenMetricsUseCases = new TokenMetricsUseCases(tokenMetricsRepo);
|
|
157
|
+
// Vault
|
|
158
|
+
const vaultUseCases = new VaultUseCases(vaultRepo);
|
|
159
|
+
const vaultManager = new VaultManager(vaultRepo, vaultUseCases);
|
|
160
|
+
// Workspace Registry
|
|
161
|
+
const workspaceRegistryUseCases = new WorkspaceRegistryUseCases(workspaceRegistryService);
|
|
162
|
+
// Environment (use cases created after projectScanner, see below)
|
|
163
|
+
// ── Tools ─────────────────────────────────────────────────────────
|
|
164
|
+
const contextMemoryTools = createContextMemoryTools({
|
|
165
|
+
sessionUseCases,
|
|
166
|
+
todoUseCases,
|
|
167
|
+
noteUseCases,
|
|
168
|
+
getWorkspace,
|
|
169
|
+
});
|
|
170
|
+
const kanbanCardTools = createKanbanCardTools({
|
|
171
|
+
cardUseCases,
|
|
172
|
+
sprintUseCases,
|
|
173
|
+
epicUseCases,
|
|
174
|
+
getWorkspace,
|
|
175
|
+
});
|
|
176
|
+
const kanbanBoardTools = createKanbanBoardTools({
|
|
177
|
+
sprintUseCases,
|
|
178
|
+
epicUseCases,
|
|
179
|
+
boardUseCases,
|
|
180
|
+
getWorkspace,
|
|
181
|
+
});
|
|
182
|
+
const governanceTools = createGovernanceTools({
|
|
183
|
+
governanceUseCases,
|
|
184
|
+
});
|
|
185
|
+
// RAG Infrastructure (native TypeScript — Vectra + Ollama + TextSplitters)
|
|
186
|
+
const ragPersistRoot = join(jarvisDir, "rag");
|
|
187
|
+
mkdirSync(ragPersistRoot, { recursive: true });
|
|
188
|
+
const embeddingProvider = new OllamaEmbeddingProvider(DEFAULT_RAG_CONFIG.ollamaUrl, DEFAULT_RAG_CONFIG.embeddingModel, 768);
|
|
189
|
+
const vectorRepository = new VectraVectorRepository(ragPersistRoot, DEFAULT_RAG_CONFIG.embeddingModel);
|
|
190
|
+
const textSplitter = new LangchainTextSplitter();
|
|
191
|
+
const fileDiscovery = new FileSystemDiscovery();
|
|
192
|
+
const ragUseCases = new RagUseCases({
|
|
193
|
+
embeddingProvider,
|
|
194
|
+
vectorRepository,
|
|
195
|
+
textSplitter,
|
|
196
|
+
fileDiscovery,
|
|
197
|
+
});
|
|
198
|
+
const oracleUseCases = new OracleUseCases({
|
|
199
|
+
embeddingProvider,
|
|
200
|
+
vectorRepository,
|
|
201
|
+
textSplitter,
|
|
202
|
+
fileDiscovery,
|
|
203
|
+
});
|
|
204
|
+
const ragTools = createRagTools({
|
|
205
|
+
ragUseCases,
|
|
206
|
+
oracleUseCases,
|
|
207
|
+
getWorkspace,
|
|
208
|
+
});
|
|
209
|
+
// Data Tools (pure TypeScript, no bridge needed)
|
|
210
|
+
const dataTools = createDataTools();
|
|
211
|
+
// Vault Tools (filesystem-based Obsidian vault operations)
|
|
212
|
+
const vaultTools = createVaultTools({
|
|
213
|
+
vaultUseCases,
|
|
214
|
+
});
|
|
215
|
+
// Vault Manager Tool (smart facade for context-aware vault operations)
|
|
216
|
+
const vaultManageTool = createVaultManageTool({
|
|
217
|
+
vaultManager,
|
|
218
|
+
});
|
|
219
|
+
// Agent Communication Tools (inter-session via OpenCode SDK client)
|
|
220
|
+
const agentTools = createAgentTools({
|
|
221
|
+
client: input.client,
|
|
222
|
+
cardUseCases,
|
|
223
|
+
sprintUseCases,
|
|
224
|
+
epicUseCases,
|
|
225
|
+
});
|
|
226
|
+
// Domain Map Infrastructure + Application + Tools
|
|
227
|
+
const lspClient = new LspClientAdapter();
|
|
228
|
+
const projectScanner = new FileProjectScanner();
|
|
229
|
+
// LLM analyzer prompt function — delegates to OpenCode SDK session.prompt().
|
|
230
|
+
// Creates a temporary session, sends the analysis prompt, extracts the
|
|
231
|
+
// LLM text response, and cleans up the session. Supports model override
|
|
232
|
+
// so users can choose a cost-effective model for large codebase analysis.
|
|
233
|
+
const llmPromptFn = async (prompt, model) => {
|
|
234
|
+
const createResult = await input.client.session.create({
|
|
235
|
+
body: { title: "[jarvis] domain-map-analysis" },
|
|
236
|
+
});
|
|
237
|
+
if (!createResult.data) {
|
|
238
|
+
throw new Error("Failed to create analysis session");
|
|
239
|
+
}
|
|
240
|
+
const sessionId = createResult.data.id;
|
|
241
|
+
try {
|
|
242
|
+
const promptResult = await input.client.session.prompt({
|
|
243
|
+
path: { id: sessionId },
|
|
244
|
+
body: {
|
|
245
|
+
system: "You are a Domain-Driven Design expert analyzing a codebase. " +
|
|
246
|
+
"Respond ONLY with valid JSON matching the schema in the prompt. " +
|
|
247
|
+
"Do not include markdown fences around the JSON. " +
|
|
248
|
+
"Do not use any tools.",
|
|
249
|
+
...(model !== undefined
|
|
250
|
+
? {
|
|
251
|
+
model: { providerID: model.providerID, modelID: model.modelID },
|
|
252
|
+
}
|
|
253
|
+
: {}),
|
|
254
|
+
parts: [{ type: "text", text: prompt }],
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
if (!promptResult.data) {
|
|
258
|
+
throw new Error("LLM analysis returned no data");
|
|
259
|
+
}
|
|
260
|
+
const textParts = promptResult.data.parts.filter((p) => p.type === "text");
|
|
261
|
+
if (textParts.length === 0) {
|
|
262
|
+
throw new Error("LLM analysis returned no text parts");
|
|
263
|
+
}
|
|
264
|
+
return textParts.map((p) => p.text).join("");
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
await input.client.session
|
|
268
|
+
.delete({ path: { id: sessionId } })
|
|
269
|
+
.catch(() => { });
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
const llmAnalyzer = new LlmSemanticAnalyzer(llmPromptFn);
|
|
273
|
+
const domainMapUseCases = new DomainMapUseCases({
|
|
274
|
+
lspClient,
|
|
275
|
+
llmAnalyzer,
|
|
276
|
+
projectScanner,
|
|
277
|
+
});
|
|
278
|
+
const domainMapTools = createDomainMapTools({
|
|
279
|
+
domainMapUseCases,
|
|
280
|
+
workspaceRegistryUseCases,
|
|
281
|
+
getWorkspace,
|
|
282
|
+
});
|
|
283
|
+
// Workspace Registry Tools
|
|
284
|
+
const workspaceRegistryTools = createWorkspaceRegistryTools({
|
|
285
|
+
workspaceRegistryUseCases,
|
|
286
|
+
});
|
|
287
|
+
// Environment Management (uses projectScanner via adapter)
|
|
288
|
+
const environmentScanner = new EnvironmentScannerAdapter(projectScanner);
|
|
289
|
+
const environmentUseCases = new EnvironmentUseCases(environmentService, environmentScanner, getWorkspace(input.directory));
|
|
290
|
+
const environmentTools = createEnvironmentTools({
|
|
291
|
+
environmentUseCases,
|
|
292
|
+
});
|
|
293
|
+
// Token Metrics Tools (usage tracking, reports, cost estimation)
|
|
294
|
+
const tokenMetricsTools = createTokenMetricsTools({
|
|
295
|
+
tokenMetricsUseCases,
|
|
296
|
+
getWorkspace,
|
|
297
|
+
directory: input.directory,
|
|
298
|
+
});
|
|
299
|
+
// ── Auto-Registration ─────────────────────────────────────────────
|
|
300
|
+
// Register current workspace in the central registry on plugin boot.
|
|
301
|
+
// Fire-and-forget — does not block plugin startup.
|
|
302
|
+
const wsName = getWorkspace(input.directory);
|
|
303
|
+
workspaceRegistryUseCases.autoRegister(wsName, input.directory).catch(() => {
|
|
304
|
+
// Silently ignore auto-registration errors (e.g. corrupt registry.db)
|
|
305
|
+
});
|
|
306
|
+
// ── Hooks ─────────────────────────────────────────────────────────
|
|
307
|
+
const compactingHook = createCompactingHook({
|
|
308
|
+
sessionUseCases,
|
|
309
|
+
todoUseCases,
|
|
310
|
+
noteUseCases,
|
|
311
|
+
getWorkspace,
|
|
312
|
+
directory: input.directory,
|
|
313
|
+
});
|
|
314
|
+
const shellEnvHook = createShellEnvHook({
|
|
315
|
+
sessionUseCases,
|
|
316
|
+
getWorkspace,
|
|
317
|
+
dbPath,
|
|
318
|
+
});
|
|
319
|
+
const guardrailsHook = createGuardrailsHook({
|
|
320
|
+
validationService,
|
|
321
|
+
});
|
|
322
|
+
const eventHook = createEventHook({
|
|
323
|
+
tokenMetricsUseCases,
|
|
324
|
+
workspace: getWorkspace(input.directory),
|
|
325
|
+
});
|
|
326
|
+
// ── Compose Hooks Object ──────────────────────────────────────────
|
|
327
|
+
return {
|
|
328
|
+
tool: {
|
|
329
|
+
...contextMemoryTools,
|
|
330
|
+
...kanbanCardTools,
|
|
331
|
+
...kanbanBoardTools,
|
|
332
|
+
...governanceTools,
|
|
333
|
+
...ragTools,
|
|
334
|
+
...dataTools,
|
|
335
|
+
...agentTools,
|
|
336
|
+
...vaultTools,
|
|
337
|
+
...vaultManageTool,
|
|
338
|
+
...domainMapTools,
|
|
339
|
+
...workspaceRegistryTools,
|
|
340
|
+
...environmentTools,
|
|
341
|
+
...tokenMetricsTools,
|
|
342
|
+
},
|
|
343
|
+
"experimental.session.compacting": compactingHook,
|
|
344
|
+
"shell.env": shellEnvHook,
|
|
345
|
+
"tool.execute.before": guardrailsHook,
|
|
346
|
+
event: eventHook,
|
|
347
|
+
};
|
|
348
|
+
};
|
|
349
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Note Repository
|
|
3
|
+
*
|
|
4
|
+
* Implements NoteRepository interface from domain layer.
|
|
5
|
+
* Maps Note entities to/from SQLite rows.
|
|
6
|
+
* Note IDs are auto-increment integers assigned by SQLite.
|
|
7
|
+
*
|
|
8
|
+
* SOLID: SRP - persistence for Note entity only
|
|
9
|
+
* SOLID: DIP - implements domain interface
|
|
10
|
+
*/
|
|
11
|
+
import type { SqliteAdapter } from "../database/sqlite-adapter.js";
|
|
12
|
+
import type { NoteRepository } from "../../domain/context-memory/repositories.js";
|
|
13
|
+
import { Note } from "../../domain/context-memory/entities.js";
|
|
14
|
+
import { SessionId } from "../../domain/context-memory/value-objects.js";
|
|
15
|
+
import { WorkspaceId } from "../../domain/shared/value-objects.js";
|
|
16
|
+
export declare class SqliteNoteRepository implements NoteRepository {
|
|
17
|
+
private readonly db;
|
|
18
|
+
constructor(db: SqliteAdapter);
|
|
19
|
+
save(note: Note): Promise<Note>;
|
|
20
|
+
findByWorkspace(workspace: WorkspaceId): Promise<readonly Note[]>;
|
|
21
|
+
findBySession(sessionId: SessionId): Promise<readonly Note[]>;
|
|
22
|
+
findRecent(workspace: WorkspaceId, limit: number): Promise<readonly Note[]>;
|
|
23
|
+
search(query: string, workspace: WorkspaceId): Promise<readonly Note[]>;
|
|
24
|
+
private toDomain;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=note-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/note-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAE/D,OAAO,EAGL,SAAS,EACV,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,WAAW,EAAa,MAAM,sCAAsC,CAAC;AAgC9E,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAIxC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/B,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQjE,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQ7D,UAAU,CACd,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAQrB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,WAAW,GACrB,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAU3B,OAAO,CAAC,QAAQ;CAejB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Note } from "../../domain/context-memory/entities.js";
|
|
2
|
+
import { NoteId, NoteType, SessionId, } from "../../domain/context-memory/value-objects.js";
|
|
3
|
+
import { WorkspaceId, Timestamp } from "../../domain/shared/value-objects.js";
|
|
4
|
+
const SCHEMA_KEY = "context_memory_notes";
|
|
5
|
+
const DDL = `
|
|
6
|
+
CREATE TABLE IF NOT EXISTS notes (
|
|
7
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
8
|
+
content TEXT NOT NULL,
|
|
9
|
+
type TEXT NOT NULL DEFAULT 'note',
|
|
10
|
+
workspace TEXT NOT NULL,
|
|
11
|
+
session_id TEXT,
|
|
12
|
+
tags TEXT NOT NULL DEFAULT '',
|
|
13
|
+
created_at TEXT NOT NULL,
|
|
14
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id)
|
|
15
|
+
);
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_note_workspace ON notes(workspace);
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_note_type ON notes(type);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_note_session_id ON notes(session_id);
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_note_created_at ON notes(created_at);
|
|
20
|
+
`;
|
|
21
|
+
export class SqliteNoteRepository {
|
|
22
|
+
db;
|
|
23
|
+
constructor(db) {
|
|
24
|
+
this.db = db;
|
|
25
|
+
this.db.ensureSchema(SCHEMA_KEY, DDL);
|
|
26
|
+
}
|
|
27
|
+
async save(note) {
|
|
28
|
+
// INSERT new note, get auto-increment ID
|
|
29
|
+
const sql = `
|
|
30
|
+
INSERT INTO notes (content, type, workspace, session_id, tags, created_at)
|
|
31
|
+
VALUES (@content, @type, @workspace, @session_id, @tags, @created_at)
|
|
32
|
+
`;
|
|
33
|
+
const result = this.db.execute(sql, {
|
|
34
|
+
content: note.content,
|
|
35
|
+
type: note.type,
|
|
36
|
+
workspace: note.workspace.value,
|
|
37
|
+
session_id: note.sessionId?.value ?? null,
|
|
38
|
+
tags: note.tags.join(","),
|
|
39
|
+
created_at: note.createdAt.toISO(),
|
|
40
|
+
});
|
|
41
|
+
// Reconstitute with the real auto-increment ID
|
|
42
|
+
const realId = Number(result.lastInsertRowid);
|
|
43
|
+
return Note.reconstitute({
|
|
44
|
+
id: NoteId.create(realId),
|
|
45
|
+
content: note.content,
|
|
46
|
+
type: note.type,
|
|
47
|
+
workspace: note.workspace,
|
|
48
|
+
...(note.sessionId !== undefined ? { sessionId: note.sessionId } : {}),
|
|
49
|
+
tags: note.tags,
|
|
50
|
+
createdAt: note.createdAt,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async findByWorkspace(workspace) {
|
|
54
|
+
const rows = this.db.queryAll("SELECT * FROM notes WHERE workspace = @workspace ORDER BY created_at DESC", { workspace: workspace.value });
|
|
55
|
+
return rows.map((row) => this.toDomain(row));
|
|
56
|
+
}
|
|
57
|
+
async findBySession(sessionId) {
|
|
58
|
+
const rows = this.db.queryAll("SELECT * FROM notes WHERE session_id = @session_id ORDER BY created_at DESC", { session_id: sessionId.value });
|
|
59
|
+
return rows.map((row) => this.toDomain(row));
|
|
60
|
+
}
|
|
61
|
+
async findRecent(workspace, limit) {
|
|
62
|
+
const rows = this.db.queryAll("SELECT * FROM notes WHERE workspace = @workspace ORDER BY created_at DESC LIMIT @limit", { workspace: workspace.value, limit });
|
|
63
|
+
return rows.map((row) => this.toDomain(row));
|
|
64
|
+
}
|
|
65
|
+
async search(query, workspace) {
|
|
66
|
+
const rows = this.db.queryAll(`SELECT * FROM notes
|
|
67
|
+
WHERE workspace = @workspace AND content LIKE @pattern
|
|
68
|
+
ORDER BY created_at DESC`, { workspace: workspace.value, pattern: `%${query}%` });
|
|
69
|
+
return rows.map((row) => this.toDomain(row));
|
|
70
|
+
}
|
|
71
|
+
toDomain(row) {
|
|
72
|
+
const tags = row.tags.length > 0 ? row.tags.split(",") : [];
|
|
73
|
+
const props = {
|
|
74
|
+
id: NoteId.create(row.id),
|
|
75
|
+
content: row.content,
|
|
76
|
+
type: row.type,
|
|
77
|
+
workspace: WorkspaceId.from(row.workspace),
|
|
78
|
+
...(row.session_id !== null
|
|
79
|
+
? { sessionId: SessionId.from(row.session_id) }
|
|
80
|
+
: {}),
|
|
81
|
+
tags,
|
|
82
|
+
createdAt: Timestamp.fromISO(row.created_at),
|
|
83
|
+
};
|
|
84
|
+
return Note.reconstitute(props);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=note-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/note-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Search Repository
|
|
3
|
+
*
|
|
4
|
+
* Implements ContextSearchRepository by combining search across
|
|
5
|
+
* TodoRepository and NoteRepository with basic relevance scoring.
|
|
6
|
+
*
|
|
7
|
+
* A proper FTS implementation can replace this later.
|
|
8
|
+
*
|
|
9
|
+
* SOLID: SRP - combined search persistence only
|
|
10
|
+
* SOLID: DIP - implements domain interface
|
|
11
|
+
*/
|
|
12
|
+
import type { ContextSearchRepository } from "../../domain/context-memory/repositories.js";
|
|
13
|
+
import type { TodoRepository } from "../../domain/context-memory/repositories.js";
|
|
14
|
+
import type { NoteRepository } from "../../domain/context-memory/repositories.js";
|
|
15
|
+
/**
|
|
16
|
+
* Creates a ContextSearchRepository that searches both todos and notes.
|
|
17
|
+
* Merges results with a hardcoded relevance score of 0.8.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSimpleSearchRepo(todoRepo: TodoRepository, noteRepo: NoteRepository): ContextSearchRepository;
|
|
20
|
+
//# sourceMappingURL=search-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/search-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAIlF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACvB,uBAAuB,CAgCzB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Search Repository
|
|
3
|
+
*
|
|
4
|
+
* Implements ContextSearchRepository by combining search across
|
|
5
|
+
* TodoRepository and NoteRepository with basic relevance scoring.
|
|
6
|
+
*
|
|
7
|
+
* A proper FTS implementation can replace this later.
|
|
8
|
+
*
|
|
9
|
+
* SOLID: SRP - combined search persistence only
|
|
10
|
+
* SOLID: DIP - implements domain interface
|
|
11
|
+
*/
|
|
12
|
+
// ── Simple Search Repository ─────────────────────────────────────────
|
|
13
|
+
/**
|
|
14
|
+
* Creates a ContextSearchRepository that searches both todos and notes.
|
|
15
|
+
* Merges results with a hardcoded relevance score of 0.8.
|
|
16
|
+
*/
|
|
17
|
+
export function createSimpleSearchRepo(todoRepo, noteRepo) {
|
|
18
|
+
return {
|
|
19
|
+
async searchAll(query, workspace) {
|
|
20
|
+
const results = [];
|
|
21
|
+
const todos = await todoRepo.search(query, workspace);
|
|
22
|
+
for (const todo of todos) {
|
|
23
|
+
results.push({
|
|
24
|
+
sourceType: "todo",
|
|
25
|
+
sourceId: todo.id.value,
|
|
26
|
+
content: todo.content,
|
|
27
|
+
relevance: 0.8,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const notes = await noteRepo.search(query, workspace);
|
|
31
|
+
for (const note of notes) {
|
|
32
|
+
results.push({
|
|
33
|
+
sourceType: "note",
|
|
34
|
+
sourceId: note.id.value,
|
|
35
|
+
content: note.content,
|
|
36
|
+
relevance: 0.8,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
results.sort((a, b) => b.relevance - a.relevance);
|
|
40
|
+
return results;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=search-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/search-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAwB,EACxB,QAAwB;IAExB,OAAO;QACL,KAAK,CAAC,SAAS,CACb,KAAa,EACb,SAAsB;YAEtB,MAAM,OAAO,GAA0B,EAAE,CAAC;YAE1C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Session Repository
|
|
3
|
+
*
|
|
4
|
+
* Implements SessionRepository interface from domain layer.
|
|
5
|
+
* Maps Session entities to/from SQLite rows.
|
|
6
|
+
*
|
|
7
|
+
* SOLID: SRP - persistence for Session aggregate only
|
|
8
|
+
* SOLID: DIP - implements domain interface
|
|
9
|
+
* SOLID: LSP - fully substitutable for SessionRepository
|
|
10
|
+
*/
|
|
11
|
+
import type { SqliteAdapter } from "../database/sqlite-adapter.js";
|
|
12
|
+
import type { SessionRepository } from "../../domain/context-memory/repositories.js";
|
|
13
|
+
import { Session } from "../../domain/context-memory/entities.js";
|
|
14
|
+
import { SessionId } from "../../domain/context-memory/value-objects.js";
|
|
15
|
+
import { WorkspaceId } from "../../domain/shared/value-objects.js";
|
|
16
|
+
export declare class SqliteSessionRepository implements SessionRepository {
|
|
17
|
+
private readonly db;
|
|
18
|
+
constructor(db: SqliteAdapter);
|
|
19
|
+
save(session: Session): Promise<void>;
|
|
20
|
+
findById(id: SessionId): Promise<Session | null>;
|
|
21
|
+
findByWorkspace(workspace: WorkspaceId): Promise<readonly Session[]>;
|
|
22
|
+
findActive(workspace: WorkspaceId): Promise<Session | null>;
|
|
23
|
+
delete(id: SessionId): Promise<void>;
|
|
24
|
+
private toDomain;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=session-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-repository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/context-memory/session-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAElE,OAAO,EACL,SAAS,EAEV,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,WAAW,EAAa,MAAM,sCAAsC,CAAC;AAgC9E,qBAAa,uBAAwB,YAAW,iBAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAIxC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAQhD,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC;IAQpE,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAU3D,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,QAAQ;CAejB"}
|