@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo-use-cases.js","sourceRoot":"","sources":["../../../src/application/context-memory/todo-use-cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Map Application — Data Transfer Objects
|
|
3
|
+
*
|
|
4
|
+
* Plain objects for crossing layer boundaries.
|
|
5
|
+
* Tools -> Use Cases (request DTOs), Use Cases -> Tools (response DTOs).
|
|
6
|
+
*
|
|
7
|
+
* SOLID: SRP — DTOs carry data, no logic
|
|
8
|
+
* DDD: Application layer boundary objects
|
|
9
|
+
*/
|
|
10
|
+
export interface DomainMapAnalyzeRequest {
|
|
11
|
+
/** Directory to analyze. */
|
|
12
|
+
readonly directory: string;
|
|
13
|
+
/** Override max file lines threshold (default: 500). */
|
|
14
|
+
readonly maxFileLines?: number;
|
|
15
|
+
/** Override max files to analyze (default: 200). */
|
|
16
|
+
readonly maxFiles?: number;
|
|
17
|
+
/** Force a specific analysis mode instead of auto-detection. */
|
|
18
|
+
readonly forceMode?: "greenfield" | "legacy";
|
|
19
|
+
/** LLM provider ID for legacy analysis (e.g. "anthropic", "openai"). */
|
|
20
|
+
readonly providerID?: string;
|
|
21
|
+
/** LLM model ID for legacy analysis (e.g. "claude-haiku-4-20250414"). */
|
|
22
|
+
readonly modelID?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DomainMapAnalyzeResponse {
|
|
25
|
+
readonly projectName: string;
|
|
26
|
+
readonly mode: "greenfield" | "legacy";
|
|
27
|
+
readonly primaryLanguage: string;
|
|
28
|
+
readonly filesAnalyzed: number;
|
|
29
|
+
readonly boundedContexts: readonly BoundedContextDto[];
|
|
30
|
+
readonly violations: readonly SrpViolationDto[];
|
|
31
|
+
readonly recommendedStructure: string;
|
|
32
|
+
readonly markdownReport: string;
|
|
33
|
+
readonly generatedAt: string;
|
|
34
|
+
}
|
|
35
|
+
export interface DomainMapViewRequest {
|
|
36
|
+
/** Directory whose domain map to retrieve. */
|
|
37
|
+
readonly directory: string;
|
|
38
|
+
}
|
|
39
|
+
export interface DomainMapViewResponse {
|
|
40
|
+
readonly available: boolean;
|
|
41
|
+
readonly markdownReport: string;
|
|
42
|
+
readonly generatedAt: string;
|
|
43
|
+
}
|
|
44
|
+
export interface BoundedContextDto {
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly responsibility: string;
|
|
47
|
+
readonly fileCount: number;
|
|
48
|
+
readonly entities: readonly string[];
|
|
49
|
+
readonly aggregates: readonly string[];
|
|
50
|
+
readonly dependencies: readonly string[];
|
|
51
|
+
}
|
|
52
|
+
export interface SrpViolationDto {
|
|
53
|
+
readonly file: string;
|
|
54
|
+
readonly lines: number;
|
|
55
|
+
readonly issue: string;
|
|
56
|
+
readonly suggestedSplit: readonly string[];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=dtos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtos.d.ts","sourceRoot":"","sources":["../../../src/application/domain-map/dtos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC7C,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Map Application — Data Transfer Objects
|
|
3
|
+
*
|
|
4
|
+
* Plain objects for crossing layer boundaries.
|
|
5
|
+
* Tools -> Use Cases (request DTOs), Use Cases -> Tools (response DTOs).
|
|
6
|
+
*
|
|
7
|
+
* SOLID: SRP — DTOs carry data, no logic
|
|
8
|
+
* DDD: Application layer boundary objects
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=dtos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtos.js","sourceRoot":"","sources":["../../../src/application/domain-map/dtos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Map Application — Use Cases
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the domain map analysis pipeline:
|
|
5
|
+
* 1. Scan project directory
|
|
6
|
+
* 2. Detect analysis mode (greenfield vs legacy)
|
|
7
|
+
* 3. Path A: Build map from directory structure
|
|
8
|
+
* Path B: LSP extraction + LLM semantic analysis
|
|
9
|
+
* 4. Detect SRP violations
|
|
10
|
+
* 5. Generate and render the domain map document
|
|
11
|
+
*
|
|
12
|
+
* SOLID: SRP — domain map analysis orchestration only
|
|
13
|
+
* SOLID: DIP — depends on domain port interfaces
|
|
14
|
+
* DDD: Application Service pattern
|
|
15
|
+
*/
|
|
16
|
+
import type { Result } from "../../domain/shared/value-objects.js";
|
|
17
|
+
import type { LspClientPort, LlmAnalysisPort, ProjectScannerPort } from "../../domain/domain-map/repositories.js";
|
|
18
|
+
import type { DomainMapAnalyzeRequest, DomainMapAnalyzeResponse, DomainMapViewRequest, DomainMapViewResponse } from "./dtos.js";
|
|
19
|
+
export interface DomainMapUseCasesDeps {
|
|
20
|
+
readonly lspClient: LspClientPort;
|
|
21
|
+
readonly llmAnalyzer: LlmAnalysisPort;
|
|
22
|
+
readonly projectScanner: ProjectScannerPort;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Application service for domain map analysis.
|
|
26
|
+
* Coordinates domain services with infrastructure adapters.
|
|
27
|
+
*/
|
|
28
|
+
export declare class DomainMapUseCases {
|
|
29
|
+
private readonly lsp;
|
|
30
|
+
private readonly llm;
|
|
31
|
+
private readonly scanner;
|
|
32
|
+
/** Cache of last generated map per directory. */
|
|
33
|
+
private readonly cache;
|
|
34
|
+
constructor(deps: DomainMapUseCasesDeps);
|
|
35
|
+
/**
|
|
36
|
+
* Analyze a project directory and produce a domain map.
|
|
37
|
+
* Full pipeline: scan → detect mode → analyze → violations → render.
|
|
38
|
+
*/
|
|
39
|
+
analyze(request: DomainMapAnalyzeRequest): Promise<Result<DomainMapAnalyzeResponse>>;
|
|
40
|
+
/**
|
|
41
|
+
* Retrieve the last generated domain map for a directory.
|
|
42
|
+
*/
|
|
43
|
+
view(request: DomainMapViewRequest): Promise<Result<DomainMapViewResponse>>;
|
|
44
|
+
/**
|
|
45
|
+
* Path B: Legacy analysis using LSP + LLM.
|
|
46
|
+
* Spawns LSP server, extracts structure, then uses LLM for semantic analysis.
|
|
47
|
+
*/
|
|
48
|
+
private analyzeLegacy;
|
|
49
|
+
/**
|
|
50
|
+
* Legacy analysis with LSP structural extraction + LLM semantic analysis.
|
|
51
|
+
*/
|
|
52
|
+
private analyzeLegacyWithLsp;
|
|
53
|
+
/**
|
|
54
|
+
* Legacy analysis without LSP — LLM-only with code samples.
|
|
55
|
+
* Used when no LSP server is available for the primary language.
|
|
56
|
+
*/
|
|
57
|
+
private analyzeLegacyWithoutLsp;
|
|
58
|
+
/**
|
|
59
|
+
* Collect representative code samples from the scanned files.
|
|
60
|
+
* Picks largest files first (most likely to have multiple concerns).
|
|
61
|
+
*/
|
|
62
|
+
private collectCodeSamples;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=use-cases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/domain-map/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAEf,kBAAkB,EAEnB,MAAM,yCAAyC,CAAC;AAkBjD,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EAGtB,MAAM,WAAW,CAAC;AAInB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;CAC7C;AAID;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;gBAElD,IAAI,EAAE,qBAAqB;IAMvC;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAmF5C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAkBzC;;;OAGG;YACW,aAAa;IA8B3B;;OAEG;YACW,oBAAoB;IAuDlC;;;OAGG;YACW,uBAAuB;IAuBrC;;;OAGG;YACW,kBAAkB;CAqBjC"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { ok, fail } from "../../domain/shared/value-objects.js";
|
|
2
|
+
import { DEFAULT_ANALYSIS_CONFIG } from "../../domain/domain-map/value-objects.js";
|
|
3
|
+
import { buildGreenfieldMap, buildStructuralGraph, detectAnalysisMode, detectSrpViolations, generateMapDocument, renderDocumentAsMarkdown, } from "../../domain/domain-map/services.js";
|
|
4
|
+
import { basename } from "node:path";
|
|
5
|
+
// ── Use Cases ─────────────────────────────────────────────────────────
|
|
6
|
+
/**
|
|
7
|
+
* Application service for domain map analysis.
|
|
8
|
+
* Coordinates domain services with infrastructure adapters.
|
|
9
|
+
*/
|
|
10
|
+
export class DomainMapUseCases {
|
|
11
|
+
lsp;
|
|
12
|
+
llm;
|
|
13
|
+
scanner;
|
|
14
|
+
/** Cache of last generated map per directory. */
|
|
15
|
+
cache = new Map();
|
|
16
|
+
constructor(deps) {
|
|
17
|
+
this.lsp = deps.lspClient;
|
|
18
|
+
this.llm = deps.llmAnalyzer;
|
|
19
|
+
this.scanner = deps.projectScanner;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Analyze a project directory and produce a domain map.
|
|
23
|
+
* Full pipeline: scan → detect mode → analyze → violations → render.
|
|
24
|
+
*/
|
|
25
|
+
async analyze(request) {
|
|
26
|
+
try {
|
|
27
|
+
// Build config from request overrides
|
|
28
|
+
const config = buildConfig(request);
|
|
29
|
+
// Step 1: Scan project
|
|
30
|
+
const scan = await this.scanner.scanProject(request.directory, config);
|
|
31
|
+
if (scan.files.length === 0) {
|
|
32
|
+
return fail("No source files found in directory");
|
|
33
|
+
}
|
|
34
|
+
// Step 2: Detect mode (or use forced mode)
|
|
35
|
+
const mode = request.forceMode ?? detectAnalysisMode(scan, config);
|
|
36
|
+
const projectName = basename(request.directory);
|
|
37
|
+
// Step 3: Analyze based on mode
|
|
38
|
+
let contexts;
|
|
39
|
+
let graph;
|
|
40
|
+
let recommendedStructure;
|
|
41
|
+
if (mode === "greenfield") {
|
|
42
|
+
// Path A: Fast directory-based inference
|
|
43
|
+
contexts = buildGreenfieldMap(scan, config);
|
|
44
|
+
graph = buildStructuralGraph(new Map(), []);
|
|
45
|
+
recommendedStructure =
|
|
46
|
+
contexts.length > 0
|
|
47
|
+
? "Project already follows DDD structure. Maintain current bounded context separation."
|
|
48
|
+
: "No clear bounded contexts detected. Consider organizing into domain/, application/, infrastructure/ layers.";
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Path B: LSP + LLM analysis
|
|
52
|
+
const modelPref = request.providerID !== undefined && request.modelID !== undefined
|
|
53
|
+
? { providerID: request.providerID, modelID: request.modelID }
|
|
54
|
+
: undefined;
|
|
55
|
+
const legacyResult = await this.analyzeLegacy(request.directory, scan, config, modelPref);
|
|
56
|
+
contexts = legacyResult.contexts;
|
|
57
|
+
graph = legacyResult.graph;
|
|
58
|
+
recommendedStructure = legacyResult.recommendedStructure;
|
|
59
|
+
}
|
|
60
|
+
// Step 4: Detect SRP violations
|
|
61
|
+
const violations = detectSrpViolations(scan.files, config);
|
|
62
|
+
// Step 5: Generate document
|
|
63
|
+
const doc = generateMapDocument(projectName, mode, scan.primaryLanguage, scan, contexts, graph, violations, recommendedStructure);
|
|
64
|
+
// Cache the result
|
|
65
|
+
this.cache.set(request.directory, doc);
|
|
66
|
+
// Step 6: Render and return
|
|
67
|
+
const markdownReport = renderDocumentAsMarkdown(doc);
|
|
68
|
+
return ok({
|
|
69
|
+
projectName: doc.projectName,
|
|
70
|
+
mode: doc.mode,
|
|
71
|
+
primaryLanguage: doc.language,
|
|
72
|
+
filesAnalyzed: doc.filesAnalyzed,
|
|
73
|
+
boundedContexts: doc.boundedContexts.map(toBoundedContextDto),
|
|
74
|
+
violations: doc.violations.map(toSrpViolationDto),
|
|
75
|
+
recommendedStructure: doc.recommendedStructure,
|
|
76
|
+
markdownReport,
|
|
77
|
+
generatedAt: doc.generatedAt,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return fail(`Analysis failed: ${String(error)}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Retrieve the last generated domain map for a directory.
|
|
86
|
+
*/
|
|
87
|
+
async view(request) {
|
|
88
|
+
const cached = this.cache.get(request.directory);
|
|
89
|
+
if (cached === undefined) {
|
|
90
|
+
return ok({
|
|
91
|
+
available: false,
|
|
92
|
+
markdownReport: "",
|
|
93
|
+
generatedAt: "",
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return ok({
|
|
97
|
+
available: true,
|
|
98
|
+
markdownReport: renderDocumentAsMarkdown(cached),
|
|
99
|
+
generatedAt: cached.generatedAt,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Path B: Legacy analysis using LSP + LLM.
|
|
104
|
+
* Spawns LSP server, extracts structure, then uses LLM for semantic analysis.
|
|
105
|
+
*/
|
|
106
|
+
async analyzeLegacy(directory, scan, config, modelPreference) {
|
|
107
|
+
const rootUri = `file://${directory}`;
|
|
108
|
+
const language = scan.primaryLanguage;
|
|
109
|
+
// Check if LSP is available for this language
|
|
110
|
+
const lspAvailable = await this.lsp.isAvailable(language);
|
|
111
|
+
if (lspAvailable) {
|
|
112
|
+
return this.analyzeLegacyWithLsp(rootUri, language, scan, config, modelPreference);
|
|
113
|
+
}
|
|
114
|
+
// Fallback: LLM-only analysis with code samples (no LSP)
|
|
115
|
+
return this.analyzeLegacyWithoutLsp(scan, modelPreference);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Legacy analysis with LSP structural extraction + LLM semantic analysis.
|
|
119
|
+
*/
|
|
120
|
+
async analyzeLegacyWithLsp(rootUri, language, scan, config, modelPreference) {
|
|
121
|
+
try {
|
|
122
|
+
// Stage 1: LSP structural extraction
|
|
123
|
+
await this.lsp.initialize(rootUri, language);
|
|
124
|
+
const fileSymbols = new Map();
|
|
125
|
+
const filesToAnalyze = scan.files.slice(0, config.maxFiles);
|
|
126
|
+
for (const file of filesToAnalyze) {
|
|
127
|
+
const fileUri = `file://${file.absolutePath}`;
|
|
128
|
+
try {
|
|
129
|
+
const symbols = await this.lsp.documentSymbols(fileUri);
|
|
130
|
+
if (symbols.length > 0) {
|
|
131
|
+
fileSymbols.set(file.relativePath, symbols);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// Skip files that fail LSP analysis
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const graph = buildStructuralGraph(fileSymbols, []);
|
|
139
|
+
// Stage 2: LLM semantic analysis
|
|
140
|
+
const codeSamples = await this.collectCodeSamples(scan);
|
|
141
|
+
const semantic = await this.llm.analyzeStructure(graph, codeSamples, modelPreference);
|
|
142
|
+
return {
|
|
143
|
+
contexts: semantic.boundedContexts,
|
|
144
|
+
graph,
|
|
145
|
+
recommendedStructure: semantic.recommendedStructure,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
await this.lsp.shutdown();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Legacy analysis without LSP — LLM-only with code samples.
|
|
154
|
+
* Used when no LSP server is available for the primary language.
|
|
155
|
+
*/
|
|
156
|
+
async analyzeLegacyWithoutLsp(scan, modelPreference) {
|
|
157
|
+
const emptyGraph = buildStructuralGraph(new Map(), []);
|
|
158
|
+
const codeSamples = await this.collectCodeSamples(scan);
|
|
159
|
+
const semantic = await this.llm.analyzeStructure(emptyGraph, codeSamples, modelPreference);
|
|
160
|
+
return {
|
|
161
|
+
contexts: semantic.boundedContexts,
|
|
162
|
+
graph: emptyGraph,
|
|
163
|
+
recommendedStructure: semantic.recommendedStructure,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Collect representative code samples from the scanned files.
|
|
168
|
+
* Picks largest files first (most likely to have multiple concerns).
|
|
169
|
+
*/
|
|
170
|
+
async collectCodeSamples(scan) {
|
|
171
|
+
// Sort by line count descending — largest files are most interesting
|
|
172
|
+
const sorted = [...scan.files].sort((a, b) => b.lineCount - a.lineCount);
|
|
173
|
+
const sampleFiles = sorted.slice(0, 10); // Max 10 samples
|
|
174
|
+
const samples = [];
|
|
175
|
+
for (const file of sampleFiles) {
|
|
176
|
+
const content = await this.scanner.readFile(file.absolutePath);
|
|
177
|
+
if (content !== null) {
|
|
178
|
+
samples.push({
|
|
179
|
+
filePath: file.relativePath,
|
|
180
|
+
content,
|
|
181
|
+
lineCount: file.lineCount,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return samples;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// ── Config Builder ────────────────────────────────────────────────────
|
|
189
|
+
/** Build AnalysisConfig from request overrides. */
|
|
190
|
+
function buildConfig(request) {
|
|
191
|
+
return {
|
|
192
|
+
maxFileLines: request.maxFileLines ?? DEFAULT_ANALYSIS_CONFIG.maxFileLines,
|
|
193
|
+
maxFiles: request.maxFiles ?? DEFAULT_ANALYSIS_CONFIG.maxFiles,
|
|
194
|
+
legacyThresholdLines: DEFAULT_ANALYSIS_CONFIG.legacyThresholdLines,
|
|
195
|
+
legacyRatio: DEFAULT_ANALYSIS_CONFIG.legacyRatio,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// ── DTO Mappers ───────────────────────────────────────────────────────
|
|
199
|
+
function toBoundedContextDto(ctx) {
|
|
200
|
+
return {
|
|
201
|
+
name: ctx.name,
|
|
202
|
+
responsibility: ctx.responsibility,
|
|
203
|
+
fileCount: ctx.files.length,
|
|
204
|
+
entities: ctx.entities,
|
|
205
|
+
aggregates: ctx.aggregates,
|
|
206
|
+
dependencies: ctx.dependencies,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function toSrpViolationDto(v) {
|
|
210
|
+
return {
|
|
211
|
+
file: v.file,
|
|
212
|
+
lines: v.lines,
|
|
213
|
+
issue: v.issue,
|
|
214
|
+
suggestedSplit: v.suggestedSplit,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=use-cases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-cases.js","sourceRoot":"","sources":["../../../src/application/domain-map/use-cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Management — Application DTOs
|
|
3
|
+
*
|
|
4
|
+
* Request/response data transfer objects for environment tools.
|
|
5
|
+
* Decouples tool input from domain layer types.
|
|
6
|
+
*
|
|
7
|
+
* SOLID: SRP - data transfer definitions only
|
|
8
|
+
*/
|
|
9
|
+
export interface EnvInitRequest {
|
|
10
|
+
readonly directory: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EnvInitResponse {
|
|
13
|
+
readonly primaryLanguage: string;
|
|
14
|
+
readonly frameworks: readonly string[];
|
|
15
|
+
readonly suggestedBaseImage: string | undefined;
|
|
16
|
+
readonly totalFiles: number;
|
|
17
|
+
readonly totalLines: number;
|
|
18
|
+
readonly summary: string;
|
|
19
|
+
}
|
|
20
|
+
export interface EnvCreateRequest {
|
|
21
|
+
readonly name: string;
|
|
22
|
+
readonly purpose: string;
|
|
23
|
+
readonly description: string;
|
|
24
|
+
readonly cardId?: string;
|
|
25
|
+
readonly baseImage?: string;
|
|
26
|
+
readonly setupCommands?: readonly string[];
|
|
27
|
+
readonly installCommands?: readonly string[];
|
|
28
|
+
readonly envVars?: Readonly<Record<string, string>>;
|
|
29
|
+
readonly mergeStrategy?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface EnvCreateResponse {
|
|
32
|
+
readonly envId: string;
|
|
33
|
+
readonly name: string;
|
|
34
|
+
readonly branchName: string;
|
|
35
|
+
readonly status: string;
|
|
36
|
+
readonly instructions: string;
|
|
37
|
+
}
|
|
38
|
+
export interface EnvListRequest {
|
|
39
|
+
readonly filter?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface EnvListResponse {
|
|
42
|
+
readonly count: number;
|
|
43
|
+
readonly summary: string;
|
|
44
|
+
}
|
|
45
|
+
export interface EnvStatusRequest {
|
|
46
|
+
readonly envId: string;
|
|
47
|
+
readonly action?: string;
|
|
48
|
+
readonly commitSha?: string;
|
|
49
|
+
readonly reason?: string;
|
|
50
|
+
readonly cardId?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface EnvStatusResponse {
|
|
53
|
+
readonly envId: string;
|
|
54
|
+
readonly status: string;
|
|
55
|
+
readonly summary: string;
|
|
56
|
+
}
|
|
57
|
+
export interface EnvMergeRequest {
|
|
58
|
+
readonly envId: string;
|
|
59
|
+
}
|
|
60
|
+
export interface EnvMergeResponse {
|
|
61
|
+
readonly envId: string;
|
|
62
|
+
readonly name: string;
|
|
63
|
+
readonly instructions: string;
|
|
64
|
+
}
|
|
65
|
+
export interface EnvDeleteRequest {
|
|
66
|
+
readonly envId: string;
|
|
67
|
+
}
|
|
68
|
+
export interface EnvDeleteResponse {
|
|
69
|
+
readonly envId: string;
|
|
70
|
+
readonly name: string;
|
|
71
|
+
readonly status: string;
|
|
72
|
+
readonly message: string;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=dtos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtos.d.ts","sourceRoot":"","sources":["../../../src/application/environment/dtos.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Management — Application DTOs
|
|
3
|
+
*
|
|
4
|
+
* Request/response data transfer objects for environment tools.
|
|
5
|
+
* Decouples tool input from domain layer types.
|
|
6
|
+
*
|
|
7
|
+
* SOLID: SRP - data transfer definitions only
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=dtos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtos.js","sourceRoot":"","sources":["../../../src/application/environment/dtos.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Management — Application Use Cases
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates environment lifecycle operations by coordinating
|
|
5
|
+
* domain services, scanner adapter, and kanban cross-context integration.
|
|
6
|
+
*
|
|
7
|
+
* The plugin manages metadata. The agent invokes container-use MCP
|
|
8
|
+
* tools directly for actual container operations.
|
|
9
|
+
*
|
|
10
|
+
* SOLID: SRP - use case orchestration only
|
|
11
|
+
* SOLID: DIP - depends on domain interfaces, not implementations
|
|
12
|
+
*/
|
|
13
|
+
import type { Result } from "../../domain/shared/value-objects.js";
|
|
14
|
+
import { EnvironmentDomainService } from "../../domain/environment/services.js";
|
|
15
|
+
import type { EnvironmentScannerPort } from "../../domain/environment/repositories.js";
|
|
16
|
+
import type { EnvInitRequest, EnvInitResponse, EnvCreateRequest, EnvCreateResponse, EnvListRequest, EnvListResponse, EnvStatusRequest, EnvStatusResponse, EnvMergeRequest, EnvMergeResponse, EnvDeleteRequest, EnvDeleteResponse } from "./dtos.js";
|
|
17
|
+
export declare class EnvironmentUseCases {
|
|
18
|
+
private readonly envService;
|
|
19
|
+
private readonly scanner;
|
|
20
|
+
private readonly workspaceId;
|
|
21
|
+
constructor(envService: EnvironmentDomainService, scanner: EnvironmentScannerPort, workspaceId: string);
|
|
22
|
+
init(request: EnvInitRequest): Promise<Result<EnvInitResponse>>;
|
|
23
|
+
create(request: EnvCreateRequest): Promise<Result<EnvCreateResponse>>;
|
|
24
|
+
list(request: EnvListRequest): Promise<Result<EnvListResponse>>;
|
|
25
|
+
status(request: EnvStatusRequest): Promise<Result<EnvStatusResponse>>;
|
|
26
|
+
merge(request: EnvMergeRequest): Promise<Result<EnvMergeResponse>>;
|
|
27
|
+
delete(request: EnvDeleteRequest): Promise<Result<EnvDeleteResponse>>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=use-cases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/environment/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EACL,wBAAwB,EAEzB,MAAM,sCAAsC,CAAC;AAS9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAInB,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM;IAKhC,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAsC/D,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IA2DrE,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAqB/D,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAiGrE,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAmBlE,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAwB5E"}
|