devchain-cli 0.23.2 → 0.23.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drizzle/0083_retire_documents.sql +2 -0
- package/dist/drizzle/0084_retire_codebase_overview.sql +1 -0
- package/dist/drizzle/0085_clumsy_zodiak.sql +166 -0
- package/dist/drizzle/meta/0083_snapshot.json +7422 -0
- package/dist/drizzle/meta/0084_snapshot.json +7422 -0
- package/dist/drizzle/meta/0085_snapshot.json +7446 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +16278 -0
- package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts.map +1 -0
- package/dist/node_modules/@devchain/shared/schemas/project-replica.js +534 -0
- package/dist/node_modules/@devchain/shared/schemas/project-replica.js.map +1 -0
- package/dist/server/app.main.module.js +0 -4
- package/dist/server/app.main.module.js.map +1 -1
- package/dist/server/app.normal.module.js +0 -4
- package/dist/server/app.normal.module.js.map +1 -1
- package/dist/server/common/errors/error-types.d.ts +14 -0
- package/dist/server/common/errors/error-types.js +31 -1
- package/dist/server/common/errors/error-types.js.map +1 -1
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +1 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +48 -0
- package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -1
- package/dist/server/modules/epic-time/models/epic-time.models.d.ts +10 -0
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +4 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +43 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
- package/dist/server/modules/epics/services/epics.service.d.ts +17 -6
- package/dist/server/modules/epics/services/epics.service.js +92 -28
- package/dist/server/modules/epics/services/epics.service.js.map +1 -1
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +1 -0
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +31 -1
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/epics/utils/apply-description-edits.d.ts +21 -0
- package/dist/server/modules/epics/utils/apply-description-edits.js +81 -0
- package/dist/server/modules/epics/utils/apply-description-edits.js.map +1 -0
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.d.ts +14 -0
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.js +56 -0
- package/dist/server/modules/external-integrations/connections/stable-integration-connection.js.map +1 -0
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -1
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +51 -33
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +2 -2
- package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +1 -0
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +33 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +41 -48
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +24 -11
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -1
- package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
- package/dist/server/modules/mcp/constants.d.ts +0 -2
- package/dist/server/modules/mcp/constants.js +1 -11
- package/dist/server/modules/mcp/constants.js.map +1 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +325 -170
- package/dist/server/modules/mcp/dtos/mcp.dto.js +55 -48
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/agent-tools.js +8 -1
- package/dist/server/modules/mcp/services/handlers/agent-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/epic-tools.js +60 -3
- package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/skill-context.d.ts +2 -0
- package/dist/server/modules/mcp/services/handlers/skill-tools.d.ts +4 -0
- package/dist/server/modules/mcp/services/handlers/skill-tools.js +210 -15
- package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/instructions-resolver.d.ts +4 -13
- package/dist/server/modules/mcp/services/instructions-resolver.js +26 -166
- package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
- package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +8 -5
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js +51 -31
- package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +11 -7
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +1 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +1 -1
- package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +2 -4
- package/dist/server/modules/mcp/services/utils/resource-resolver.js +0 -59
- package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js +1 -1
- package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +2 -0
- package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +69 -21
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/index.js +0 -2
- package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +0 -2
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js +6 -0
- package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/skill.metadata.js +105 -3
- package/dist/server/modules/mcp/tool-descriptors/skill.metadata.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-import.d.ts +0 -33
- package/dist/server/modules/projects/helpers/project-import.js +0 -224
- package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
- package/dist/server/modules/projects/services/project-registry-import.service.d.ts +3 -6
- package/dist/server/modules/projects/services/project-registry-import.service.js +7 -28
- package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
- package/dist/server/modules/registry/controllers/registry.controller.js +3 -10
- package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
- package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +11 -3
- package/dist/server/modules/registry/services/registry-orchestration.service.js +6 -1
- package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +8 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +9 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +10 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +13 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +20 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +218 -888
- package/dist/server/modules/session-reader/parsers/bounded-line-read.d.ts +2 -0
- package/dist/server/modules/session-reader/parsers/bounded-line-read.js +66 -0
- package/dist/server/modules/session-reader/parsers/bounded-line-read.js.map +1 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +6 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +44 -13
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +22 -0
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +61 -16
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.d.ts +12 -0
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +103 -0
- package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -0
- package/dist/server/modules/session-reader/services/metrics-merge.d.ts +17 -0
- package/dist/server/modules/session-reader/services/metrics-merge.js +114 -0
- package/dist/server/modules/session-reader/services/metrics-merge.js.map +1 -0
- package/dist/server/modules/session-reader/services/session-cache.service.d.ts +33 -4
- package/dist/server/modules/session-reader/services/session-cache.service.js +157 -144
- package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js +0 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +16 -0
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +370 -69
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +4 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.js +32 -0
- package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
- package/dist/server/modules/sessions/services/message-pool.types.d.ts +23 -0
- package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +5 -2
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js +82 -4
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
- package/dist/server/modules/skills/adapters/github-skill-source.base.d.ts +1 -0
- package/dist/server/modules/skills/adapters/github-skill-source.base.js +29 -14
- package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.d.ts +1 -0
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +47 -9
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/dtos/community-sources.dto.d.ts +124 -0
- package/dist/server/modules/skills/dtos/community-sources.dto.js +5 -0
- package/dist/server/modules/skills/dtos/community-sources.dto.js.map +1 -1
- package/dist/server/modules/skills/dtos/local-sources.dto.d.ts +38 -0
- package/dist/server/modules/skills/dtos/local-sources.dto.js +2 -0
- package/dist/server/modules/skills/dtos/local-sources.dto.js.map +1 -1
- package/dist/server/modules/skills/dtos/skill.dto.d.ts +22 -0
- package/dist/server/modules/skills/dtos/skill.dto.js +13 -1
- package/dist/server/modules/skills/dtos/skill.dto.js.map +1 -1
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +2 -2
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
- package/dist/server/modules/skills/services/skills.service.d.ts +64 -0
- package/dist/server/modules/skills/services/skills.service.js +211 -29
- package/dist/server/modules/skills/services/skills.service.js.map +1 -1
- package/dist/server/modules/skills/skills.module.js +1 -0
- package/dist/server/modules/skills/skills.module.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +57 -219
- package/dist/server/modules/storage/db/schema.js +15 -27
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +15 -24
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +6 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +163 -32
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +11 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.js +17 -13
- package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project.delegate.js +1 -10
- package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +28 -8
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -9
- package/dist/server/modules/storage/local/local-storage.service.js +8 -22
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +14 -20
- package/dist/server/modules/storage/models/domain.models.js +2 -1
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -0
- package/dist/server/modules/subscribers/actions/delete-agent.action.js +9 -0
- package/dist/server/modules/subscribers/actions/delete-agent.action.js.map +1 -1
- package/dist/server/modules/subscribers/actions/epic-status-guard.d.ts +25 -0
- package/dist/server/modules/subscribers/actions/epic-status-guard.js +94 -0
- package/dist/server/modules/subscribers/actions/epic-status-guard.js.map +1 -0
- package/dist/server/modules/subscribers/actions/family-agent-targets.d.ts +1 -0
- package/dist/server/modules/subscribers/actions/family-agent-targets.js +1 -0
- package/dist/server/modules/subscribers/actions/family-agent-targets.js.map +1 -1
- package/dist/server/modules/subscribers/actions/terminate-session.action.js +13 -0
- package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
- package/dist/server/modules/terminal/services/human-prompt-state.service.d.ts +7 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js +26 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +3 -2
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
- package/dist/server/modules/terminal/utils/terminal-activity.js +8 -1
- package/dist/server/modules/terminal/utils/terminal-activity.js.map +1 -1
- package/dist/server/templates/teams-dev.json +295 -287
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-BnzvJiFh.js → ExternalRichEditor-hN7WihF_.js} +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-B6RB_uEX.js → ReviewDetailPage-1rhwlpY0.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-6iPnGQ1T.js → ReviewsPage-CzwQnlGJ.js} +1 -1
- package/dist/server/ui/assets/index--XE2vc98.css +32 -0
- package/dist/server/ui/assets/index-BDSngJhg.js +1197 -0
- package/dist/server/ui/assets/{useReviewSubscription-BfcypysB.js → useReviewSubscription-DdxeJTmK.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +295 -287
- package/package.json +19 -1
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js +0 -52
- package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.d.ts +0 -30
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js +0 -230
- package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.d.ts +0 -24
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js +0 -191
- package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.d.ts +0 -73
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js +0 -1133
- package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.d.ts +0 -14
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js +0 -114
- package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.d.ts +0 -8
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js +0 -200
- package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.d.ts +0 -11
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js +0 -164
- package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js +0 -166
- package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.d.ts +0 -21
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js +0 -253
- package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.d.ts +0 -24
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js +0 -98
- package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js +0 -155
- package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.d.ts +0 -19
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js +0 -88
- package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js +0 -173
- package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js +0 -171
- package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js +0 -158
- package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js +0 -222
- package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.d.ts +0 -4
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js +0 -72
- package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.d.ts +0 -6
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js +0 -37
- package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js +0 -108
- package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/index.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/types/index.js +0 -6
- package/dist/server/modules/codebase-overview-analyzer/types/index.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.d.ts +0 -231
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js +0 -3
- package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js +0 -13
- package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.d.ts +0 -54
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js +0 -27
- package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.d.ts +0 -12
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js +0 -3
- package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.d.ts +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.js +0 -5
- package/dist/server/modules/codebase-overview-analyzer/utils/constants.js.map +0 -1
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.d.ts +0 -2
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js +0 -17
- package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js.map +0 -1
- package/dist/server/modules/documents/controllers/documents.controller.d.ts +0 -12
- package/dist/server/modules/documents/controllers/documents.controller.js +0 -174
- package/dist/server/modules/documents/controllers/documents.controller.js.map +0 -1
- package/dist/server/modules/documents/documents.module.d.ts +0 -2
- package/dist/server/modules/documents/documents.module.js +0 -22
- package/dist/server/modules/documents/documents.module.js.map +0 -1
- package/dist/server/modules/mcp/services/handlers/document-context.d.ts +0 -8
- package/dist/server/modules/mcp/services/handlers/document-context.js +0 -3
- package/dist/server/modules/mcp/services/handlers/document-context.js.map +0 -1
- package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +0 -6
- package/dist/server/modules/mcp/services/handlers/document-tools.js +0 -109
- package/dist/server/modules/mcp/services/handlers/document-tools.js.map +0 -1
- package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +0 -10
- package/dist/server/modules/mcp/services/utils/document-link-resolver.js +0 -124
- package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.d.ts +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.js +0 -19
- package/dist/server/modules/mcp/tool-descriptors/document.bindings.js.map +0 -1
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.d.ts +0 -2
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.js +0 -96
- package/dist/server/modules/mcp/tool-descriptors/document.metadata.js.map +0 -1
- package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +0 -18
- package/dist/server/modules/storage/local/delegates/document.delegate.js +0 -275
- package/dist/server/modules/storage/local/delegates/document.delegate.js.map +0 -1
- package/dist/server/ui/assets/index-CV8ydm7w.css +0 -32
- package/dist/server/ui/assets/index-DgajOeEy.js +0 -1197
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type { PromptSummary as StoragePromptSummary } from '../../../storage/interfaces/storage.interface';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { Prompt, Status, Epic, EpicComment, Skill } from '../../../storage/models/domain.models';
|
|
3
|
+
import type { PromptSummary, PromptDetail, SkillListItem, GetSkillResponse, StatusSummary, EpicSummary, EpicListItem, EpicCommentSummary, EpicChildSummary, EpicParentSummary } from '../../dtos/mcp.dto';
|
|
4
4
|
export declare function mapStatusSummary(status: Status): StatusSummary;
|
|
5
5
|
export declare function mapEpicSummary(epic: Epic, agentNameById?: Map<string, string>): EpicSummary;
|
|
6
6
|
export declare function mapEpicChild(epic: Epic): EpicChildSummary;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function buildDescriptionPreview(description: string | null): {
|
|
8
|
+
descriptionPreview: string | null;
|
|
9
|
+
descriptionLength: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function mapEpicListItem(epic: Epic, agentNameById?: Map<string, string>, includeDescription?: boolean): EpicListItem;
|
|
12
|
+
export declare function mapEpicParent(epic: Epic, agentNameById: Map<string, string>, statusLabel?: string, includeDescription?: boolean): EpicParentSummary;
|
|
8
13
|
export declare function mapEpicComment(comment: EpicComment): EpicCommentSummary;
|
|
9
|
-
export declare function mapDocumentSummary(document: Document): DocumentSummary;
|
|
10
|
-
export declare function mapDocumentDetail(document: Document): DocumentDetail;
|
|
11
14
|
export declare function mapPromptSummary(prompt: StoragePromptSummary): PromptSummary;
|
|
12
15
|
export declare function mapPromptDetail(prompt: Prompt): PromptDetail;
|
|
13
16
|
export declare function mapSkillListItem(skill: Skill): SkillListItem;
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.mapStatusSummary = mapStatusSummary;
|
|
4
4
|
exports.mapEpicSummary = mapEpicSummary;
|
|
5
5
|
exports.mapEpicChild = mapEpicChild;
|
|
6
|
+
exports.buildDescriptionPreview = buildDescriptionPreview;
|
|
7
|
+
exports.mapEpicListItem = mapEpicListItem;
|
|
6
8
|
exports.mapEpicParent = mapEpicParent;
|
|
7
9
|
exports.mapEpicComment = mapEpicComment;
|
|
8
|
-
exports.mapDocumentSummary = mapDocumentSummary;
|
|
9
|
-
exports.mapDocumentDetail = mapDocumentDetail;
|
|
10
10
|
exports.mapPromptSummary = mapPromptSummary;
|
|
11
11
|
exports.mapPromptDetail = mapPromptDetail;
|
|
12
12
|
exports.mapSkillListItem = mapSkillListItem;
|
|
@@ -46,13 +46,39 @@ function mapEpicChild(epic) {
|
|
|
46
46
|
title: epic.title,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const EPIC_DESCRIPTION_PREVIEW_LIMIT = 300;
|
|
50
|
+
function buildDescriptionPreview(description) {
|
|
51
|
+
if (!description) {
|
|
52
|
+
return { descriptionPreview: null, descriptionLength: 0 };
|
|
53
|
+
}
|
|
54
|
+
if (description.length <= EPIC_DESCRIPTION_PREVIEW_LIMIT) {
|
|
55
|
+
return { descriptionPreview: description, descriptionLength: description.length };
|
|
56
|
+
}
|
|
57
|
+
const hardCut = description.slice(0, EPIC_DESCRIPTION_PREVIEW_LIMIT);
|
|
58
|
+
const boundary = hardCut.lastIndexOf(' ');
|
|
59
|
+
const cut = boundary > 0 ? hardCut.slice(0, boundary) : hardCut;
|
|
60
|
+
return { descriptionPreview: `${cut}…`, descriptionLength: description.length };
|
|
61
|
+
}
|
|
62
|
+
function mapEpicListItem(epic, agentNameById, includeDescription = false) {
|
|
63
|
+
const { description, ...rest } = mapEpicSummary(epic, agentNameById);
|
|
64
|
+
if (includeDescription) {
|
|
65
|
+
return { ...rest, description };
|
|
66
|
+
}
|
|
67
|
+
return { ...rest, ...buildDescriptionPreview(description) };
|
|
68
|
+
}
|
|
69
|
+
function mapEpicParent(epic, agentNameById, statusLabel, includeDescription = false) {
|
|
70
|
+
const summary = {
|
|
51
71
|
id: epic.id,
|
|
52
72
|
title: epic.title,
|
|
53
|
-
description: epic.description ?? null,
|
|
54
73
|
agentName: epic.agentId ? (agentNameById.get(epic.agentId) ?? null) : null,
|
|
55
74
|
};
|
|
75
|
+
if (statusLabel) {
|
|
76
|
+
summary.status = statusLabel;
|
|
77
|
+
}
|
|
78
|
+
if (includeDescription) {
|
|
79
|
+
summary.description = epic.description ?? null;
|
|
80
|
+
}
|
|
81
|
+
return summary;
|
|
56
82
|
}
|
|
57
83
|
function mapEpicComment(comment) {
|
|
58
84
|
return {
|
|
@@ -62,26 +88,6 @@ function mapEpicComment(comment) {
|
|
|
62
88
|
createdAt: comment.createdAt,
|
|
63
89
|
};
|
|
64
90
|
}
|
|
65
|
-
function mapDocumentSummary(document) {
|
|
66
|
-
return {
|
|
67
|
-
id: document.id,
|
|
68
|
-
projectId: document.projectId,
|
|
69
|
-
title: document.title,
|
|
70
|
-
slug: document.slug,
|
|
71
|
-
tags: document.tags,
|
|
72
|
-
archived: document.archived,
|
|
73
|
-
version: document.version,
|
|
74
|
-
updatedAt: document.updatedAt,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function mapDocumentDetail(document) {
|
|
78
|
-
const summary = mapDocumentSummary(document);
|
|
79
|
-
return {
|
|
80
|
-
...summary,
|
|
81
|
-
contentMd: document.contentMd,
|
|
82
|
-
createdAt: document.createdAt,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
91
|
function mapPromptSummary(prompt) {
|
|
86
92
|
return {
|
|
87
93
|
id: prompt.id,
|
|
@@ -95,15 +101,10 @@ function mapPromptSummary(prompt) {
|
|
|
95
101
|
};
|
|
96
102
|
}
|
|
97
103
|
function mapPromptDetail(prompt) {
|
|
98
|
-
const PREVIEW_LENGTH = 200;
|
|
99
|
-
const contentPreview = prompt.content.length > PREVIEW_LENGTH
|
|
100
|
-
? prompt.content.slice(0, PREVIEW_LENGTH) + '…'
|
|
101
|
-
: prompt.content;
|
|
102
104
|
return {
|
|
103
105
|
id: prompt.id,
|
|
104
106
|
projectId: prompt.projectId,
|
|
105
107
|
title: prompt.title,
|
|
106
|
-
contentPreview,
|
|
107
108
|
content: prompt.content,
|
|
108
109
|
tags: prompt.tags,
|
|
109
110
|
version: prompt.version,
|
|
@@ -119,6 +120,25 @@ function mapSkillListItem(skill) {
|
|
|
119
120
|
description,
|
|
120
121
|
};
|
|
121
122
|
}
|
|
123
|
+
const DUPLICATED_FRONTMATTER_KEYS = [
|
|
124
|
+
'name',
|
|
125
|
+
'description',
|
|
126
|
+
'license',
|
|
127
|
+
'compatibility',
|
|
128
|
+
'resources',
|
|
129
|
+
];
|
|
130
|
+
function filterFrontmatterForResponse(frontmatter) {
|
|
131
|
+
if (!frontmatter) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const filtered = {};
|
|
135
|
+
for (const [key, value] of Object.entries(frontmatter)) {
|
|
136
|
+
if (!DUPLICATED_FRONTMATTER_KEYS.includes(key)) {
|
|
137
|
+
filtered[key] = value;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return Object.keys(filtered).length > 0 ? filtered : null;
|
|
141
|
+
}
|
|
122
142
|
function mapSkillDetail(skill) {
|
|
123
143
|
return {
|
|
124
144
|
slug: skill.slug,
|
|
@@ -131,7 +151,7 @@ function mapSkillDetail(skill) {
|
|
|
131
151
|
license: skill.license,
|
|
132
152
|
compatibility: skill.compatibility,
|
|
133
153
|
status: skill.status,
|
|
134
|
-
frontmatter: skill.frontmatter,
|
|
154
|
+
frontmatter: filterFrontmatterForResponse(skill.frontmatter),
|
|
135
155
|
};
|
|
136
156
|
}
|
|
137
157
|
//# sourceMappingURL=dto-mappers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto-mappers.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/mappers/dto-mappers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"dto-mappers.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/mappers/dto-mappers.ts"],"names":[],"mappings":";;AAqBA,4CAOC;AAED,wCA0BC;AAED,oCAKC;AASD,0DAcC;AAOD,0CAUC;AAED,sCAkBC;AAED,wCAOC;AAED,4CAWC;AAED,0CAWC;AAED,4CASC;AA+BD,wCAcC;AAjMD,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,IAAU,EAAE,aAAmC;IAC5E,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnC,CAAC;IAGD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE/B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAEnD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAO3C,SAAgB,uBAAuB,CAAC,WAA0B;IAIhE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC;QACzD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IACpF,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,OAAO,EAAE,kBAAkB,EAAE,GAAG,GAAG,GAAG,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;AAClF,CAAC;AAOD,SAAgB,eAAe,CAC7B,IAAU,EACV,aAAmC,EACnC,kBAAkB,GAAG,KAAK;IAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,aAAa,CAC3B,IAAU,EACV,aAAkC,EAClC,WAAoB,EACpB,kBAAkB,GAAG,KAAK;IAE1B,MAAM,OAAO,GAAsB;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KAC3E,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;IAC/B,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,cAAc,CAAC,OAAoB;IACjD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAA4B;IAC3D,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAY;IAC3C,MAAM,WAAW,GACf,KAAK,CAAC,gBAAgB;QACtB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAsB;IACrD,MAAM;IACN,aAAa;IACb,SAAS;IACT,eAAe;IACf,WAAW;CACZ,CAAC;AAQF,SAAS,4BAA4B,CACnC,WAA2C;IAE3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAgB,cAAc,CAAC,KAAY;IACzC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,4BAA4B,CAAC,KAAK,CAAC,WAAW,CAAC;KAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { ReviewSuggestionApplier } from '../../reviews/services/review-suggestio
|
|
|
9
9
|
import { SessionsService } from '../../sessions/services/sessions.service';
|
|
10
10
|
import { SettingsService } from '../../settings/services/settings.service';
|
|
11
11
|
import { SkillsService } from '../../skills/services/skills.service';
|
|
12
|
+
import { SkillSourceLifecycleService } from '../../skills/services/skill-source-lifecycle.service';
|
|
12
13
|
import { type StorageService } from '../../storage/interfaces/storage.interface';
|
|
13
14
|
import { TeamsService } from '../../teams/services/teams.service';
|
|
14
15
|
import { TerminalIOService } from '../../terminal/services/terminal-io/terminal-io.service';
|
|
@@ -19,6 +20,6 @@ export interface ResolvedMcpToolBinding {
|
|
|
19
20
|
}
|
|
20
21
|
export declare class McpToolBindingRegistry {
|
|
21
22
|
private readonly bindings;
|
|
22
|
-
constructor(storage: StorageService, sessionsService?: SessionsService, epicsService?: EpicsService, epicRelationsService?: EpicRelationsService, settingsService?: SettingsService, guestsService?: GuestsService, skillsService?: SkillsService, reviewsService?: ReviewsService, reviewSuggestionApplier?: ReviewSuggestionApplier, teamsService?: TeamsService, terminalIO?: TerminalIOService, agentMessageDelivery?: AgentMessageDeliveryService, projectCommunicationService?: ProjectCommunicationService);
|
|
23
|
+
constructor(storage: StorageService, sessionsService?: SessionsService, epicsService?: EpicsService, epicRelationsService?: EpicRelationsService, settingsService?: SettingsService, guestsService?: GuestsService, skillsService?: SkillsService, skillSourceLifecycleService?: SkillSourceLifecycleService, reviewsService?: ReviewsService, reviewSuggestionApplier?: ReviewSuggestionApplier, teamsService?: TeamsService, terminalIO?: TerminalIOService, agentMessageDelivery?: AgentMessageDeliveryService, projectCommunicationService?: ProjectCommunicationService);
|
|
23
24
|
resolve(normalizedName: string): ResolvedMcpToolBinding | undefined;
|
|
24
25
|
}
|
|
@@ -24,18 +24,18 @@ const review_suggestion_applier_service_1 = require("../../reviews/services/revi
|
|
|
24
24
|
const sessions_service_1 = require("../../sessions/services/sessions.service");
|
|
25
25
|
const settings_service_1 = require("../../settings/services/settings.service");
|
|
26
26
|
const skills_service_1 = require("../../skills/services/skills.service");
|
|
27
|
+
const skill_source_lifecycle_service_1 = require("../../skills/services/skill-source-lifecycle.service");
|
|
27
28
|
const storage_interface_1 = require("../../storage/interfaces/storage.interface");
|
|
28
29
|
const teams_service_1 = require("../../teams/services/teams.service");
|
|
29
30
|
const terminal_io_service_1 = require("../../terminal/services/terminal-io/terminal-io.service");
|
|
30
31
|
const tool_descriptors_1 = require("../tool-descriptors");
|
|
31
32
|
const runtime_bindings_1 = require("../tool-descriptors/runtime-bindings");
|
|
32
33
|
const instructions_resolver_1 = require("./instructions-resolver");
|
|
33
|
-
const document_link_resolver_1 = require("./utils/document-link-resolver");
|
|
34
34
|
const session_context_resolver_1 = require("./utils/session-context-resolver");
|
|
35
35
|
let McpToolBindingRegistry = class McpToolBindingRegistry {
|
|
36
36
|
bindings;
|
|
37
|
-
constructor(storage, sessionsService, epicsService, epicRelationsService, settingsService, guestsService, skillsService, reviewsService, reviewSuggestionApplier, teamsService, terminalIO, agentMessageDelivery, projectCommunicationService) {
|
|
38
|
-
const instructionsResolver = new instructions_resolver_1.InstructionsResolver(storage
|
|
37
|
+
constructor(storage, sessionsService, epicsService, epicRelationsService, settingsService, guestsService, skillsService, skillSourceLifecycleService, reviewsService, reviewSuggestionApplier, teamsService, terminalIO, agentMessageDelivery, projectCommunicationService) {
|
|
38
|
+
const instructionsResolver = new instructions_resolver_1.InstructionsResolver(storage);
|
|
39
39
|
const sessionContextResolver = new session_context_resolver_1.SessionContextResolver(storage, sessionsService, guestsService, terminalIO);
|
|
40
40
|
const runtime = Object.freeze({
|
|
41
41
|
storage,
|
|
@@ -45,6 +45,7 @@ let McpToolBindingRegistry = class McpToolBindingRegistry {
|
|
|
45
45
|
settingsService,
|
|
46
46
|
guestsService,
|
|
47
47
|
skillsService,
|
|
48
|
+
skillSourceLifecycleService,
|
|
48
49
|
reviewsService,
|
|
49
50
|
reviewSuggestionApplier,
|
|
50
51
|
teamsService,
|
|
@@ -100,21 +101,24 @@ exports.McpToolBindingRegistry = McpToolBindingRegistry = __decorate([
|
|
|
100
101
|
__param(6, (0, common_1.Optional)()),
|
|
101
102
|
__param(6, (0, common_1.Inject)((0, common_1.forwardRef)(() => skills_service_1.SkillsService))),
|
|
102
103
|
__param(7, (0, common_1.Optional)()),
|
|
103
|
-
__param(7, (0, common_1.Inject)(
|
|
104
|
+
__param(7, (0, common_1.Inject)(skill_source_lifecycle_service_1.SkillSourceLifecycleService)),
|
|
104
105
|
__param(8, (0, common_1.Optional)()),
|
|
105
|
-
__param(8, (0, common_1.Inject)((0, common_1.forwardRef)(() =>
|
|
106
|
+
__param(8, (0, common_1.Inject)((0, common_1.forwardRef)(() => reviews_service_1.ReviewsService))),
|
|
106
107
|
__param(9, (0, common_1.Optional)()),
|
|
107
|
-
__param(9, (0, common_1.Inject)((0, common_1.forwardRef)(() =>
|
|
108
|
+
__param(9, (0, common_1.Inject)((0, common_1.forwardRef)(() => review_suggestion_applier_service_1.ReviewSuggestionApplier))),
|
|
108
109
|
__param(10, (0, common_1.Optional)()),
|
|
110
|
+
__param(10, (0, common_1.Inject)((0, common_1.forwardRef)(() => teams_service_1.TeamsService))),
|
|
109
111
|
__param(11, (0, common_1.Optional)()),
|
|
110
|
-
__param(11, (0, common_1.Inject)((0, common_1.forwardRef)(() => agent_message_delivery_service_1.AgentMessageDeliveryService))),
|
|
111
112
|
__param(12, (0, common_1.Optional)()),
|
|
113
|
+
__param(12, (0, common_1.Inject)((0, common_1.forwardRef)(() => agent_message_delivery_service_1.AgentMessageDeliveryService))),
|
|
114
|
+
__param(13, (0, common_1.Optional)()),
|
|
112
115
|
__metadata("design:paramtypes", [Object, sessions_service_1.SessionsService,
|
|
113
116
|
epics_service_1.EpicsService,
|
|
114
117
|
epic_relations_service_1.EpicRelationsService,
|
|
115
118
|
settings_service_1.SettingsService,
|
|
116
119
|
guests_service_1.GuestsService,
|
|
117
120
|
skills_service_1.SkillsService,
|
|
121
|
+
skill_source_lifecycle_service_1.SkillSourceLifecycleService,
|
|
118
122
|
reviews_service_1.ReviewsService,
|
|
119
123
|
review_suggestion_applier_service_1.ReviewSuggestionApplier,
|
|
120
124
|
teams_service_1.TeamsService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-binding.registry.js","sourceRoot":"","sources":["../../../../src/modules/mcp/services/mcp-tool-binding.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0E;AAE1E,gHAA0G;AAC1G,sEAAkE;AAClE,wFAAmF;AACnF,yEAAqE;AACrE,6GAAwG;AACxG,4EAAwE;AACxE,gHAAmG;AACnG,+EAA2E;AAC3E,+EAA2E;AAC3E,yEAAqE;AACrE,kFAAkG;AAClG,sEAAkE;AAClE,iGAA4F;AAC5F,0DAAkD;AAElD,2EAA6E;AAC7E,mEAA+D;AAC/D
|
|
1
|
+
{"version":3,"file":"mcp-tool-binding.registry.js","sourceRoot":"","sources":["../../../../src/modules/mcp/services/mcp-tool-binding.registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StorageService } from '../../../storage/interfaces/storage.interface';
|
|
2
2
|
import type { McpBindingRuntime } from '../../tool-descriptors/binding-types';
|
|
3
3
|
import { McpToolBindingRegistry } from '../mcp-tool-binding.registry';
|
|
4
|
-
export type McpToolBindingRegistryFixtureDependencies = Partial<Pick<McpBindingRuntime, 'sessionsService' | 'epicsService' | 'epicRelationsService' | 'settingsService' | 'guestsService' | 'skillsService' | 'reviewsService' | 'reviewSuggestionApplier' | 'teamsService' | 'terminalIO' | 'agentMessageDelivery' | 'projectCommunicationService'>>;
|
|
4
|
+
export type McpToolBindingRegistryFixtureDependencies = Partial<Pick<McpBindingRuntime, 'sessionsService' | 'epicsService' | 'epicRelationsService' | 'settingsService' | 'guestsService' | 'skillsService' | 'skillSourceLifecycleService' | 'reviewsService' | 'reviewSuggestionApplier' | 'teamsService' | 'terminalIO' | 'agentMessageDelivery' | 'projectCommunicationService'>>;
|
|
5
5
|
export declare function createMcpToolBindingRegistryFixture(storage: StorageService, dependencies?: McpToolBindingRegistryFixtureDependencies): McpToolBindingRegistry;
|
|
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createMcpToolBindingRegistryFixture = createMcpToolBindingRegistryFixture;
|
|
4
4
|
const mcp_tool_binding_registry_1 = require("../mcp-tool-binding.registry");
|
|
5
5
|
function createMcpToolBindingRegistryFixture(storage, dependencies = {}) {
|
|
6
|
-
return new mcp_tool_binding_registry_1.McpToolBindingRegistry(storage, dependencies.sessionsService, dependencies.epicsService, dependencies.epicRelationsService, dependencies.settingsService, dependencies.guestsService, dependencies.skillsService, dependencies.reviewsService, dependencies.reviewSuggestionApplier, dependencies.teamsService, dependencies.terminalIO, dependencies.agentMessageDelivery, dependencies.projectCommunicationService);
|
|
6
|
+
return new mcp_tool_binding_registry_1.McpToolBindingRegistry(storage, dependencies.sessionsService, dependencies.epicsService, dependencies.epicRelationsService, dependencies.settingsService, dependencies.guestsService, dependencies.skillsService, dependencies.skillSourceLifecycleService, dependencies.reviewsService, dependencies.reviewSuggestionApplier, dependencies.teamsService, dependencies.terminalIO, dependencies.agentMessageDelivery, dependencies.projectCommunicationService);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=mcp-tool-binding-registry.fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-binding-registry.fixture.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mcp-tool-binding-registry.fixture.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.ts"],"names":[],"mappings":";;AAuBA,kFAoBC;AAzCD,4EAAsE;AAqBtE,SAAgB,mCAAmC,CACjD,OAAuB,EACvB,eAA0D,EAAE;IAE5D,OAAO,IAAI,kDAAsB,CAC/B,OAAO,EACP,YAAY,CAAC,eAAe,EAC5B,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,oBAAoB,EACjC,YAAY,CAAC,eAAe,EAC5B,YAAY,CAAC,aAAa,EAC1B,YAAY,CAAC,aAAa,EAC1B,YAAY,CAAC,2BAA2B,EACxC,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,uBAAuB,EACpC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,oBAAoB,EACjC,YAAY,CAAC,2BAA2B,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PromptStorage } from '../../../storage/interfaces/storage.interface';
|
|
2
2
|
import type { McpResponse } from '../../dtos/mcp.dto';
|
|
3
3
|
export declare class ResourceResolver {
|
|
4
4
|
private readonly storage;
|
|
5
|
-
constructor(storage:
|
|
5
|
+
constructor(storage: PromptStorage);
|
|
6
6
|
resolve(uri: string): Promise<McpResponse>;
|
|
7
|
-
private resolveDocumentResource;
|
|
8
7
|
private resolvePromptResource;
|
|
9
|
-
private findProjectIdBySlug;
|
|
10
8
|
}
|
|
@@ -8,9 +8,6 @@ class ResourceResolver {
|
|
|
8
8
|
this.storage = storage;
|
|
9
9
|
}
|
|
10
10
|
async resolve(uri) {
|
|
11
|
-
if (uri.startsWith('doc://')) {
|
|
12
|
-
return this.resolveDocumentResource(uri);
|
|
13
|
-
}
|
|
14
11
|
if (uri.startsWith('prompt://')) {
|
|
15
12
|
return this.resolvePromptResource(uri);
|
|
16
13
|
}
|
|
@@ -22,51 +19,6 @@ class ResourceResolver {
|
|
|
22
19
|
},
|
|
23
20
|
};
|
|
24
21
|
}
|
|
25
|
-
async resolveDocumentResource(uri) {
|
|
26
|
-
const spec = uri.slice('doc://'.length);
|
|
27
|
-
const slashIndex = spec.indexOf('/');
|
|
28
|
-
if (slashIndex === -1) {
|
|
29
|
-
throw new Error(`Invalid document resource URI: ${uri}`);
|
|
30
|
-
}
|
|
31
|
-
const projectPart = spec.slice(0, slashIndex);
|
|
32
|
-
const slugPart = spec.slice(slashIndex + 1);
|
|
33
|
-
const projectSlug = decodeURIComponent(projectPart);
|
|
34
|
-
const documentSlug = decodeURIComponent(slugPart);
|
|
35
|
-
const projectIdCandidate = await this.findProjectIdBySlug(projectSlug);
|
|
36
|
-
if (projectIdCandidate === undefined) {
|
|
37
|
-
return {
|
|
38
|
-
success: false,
|
|
39
|
-
error: {
|
|
40
|
-
code: 'PROJECT_NOT_FOUND',
|
|
41
|
-
message: `Unknown project slug: ${projectSlug}`,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
const document = await this.storage.getDocument({
|
|
47
|
-
projectId: projectIdCandidate ?? null,
|
|
48
|
-
slug: documentSlug,
|
|
49
|
-
});
|
|
50
|
-
return {
|
|
51
|
-
success: true,
|
|
52
|
-
data: {
|
|
53
|
-
uri,
|
|
54
|
-
mimeType: 'text/markdown',
|
|
55
|
-
content: document.contentMd,
|
|
56
|
-
document: (0, dto_mappers_1.mapDocumentDetail)(document),
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return {
|
|
62
|
-
success: false,
|
|
63
|
-
error: {
|
|
64
|
-
code: 'DOCUMENT_NOT_FOUND',
|
|
65
|
-
message: `Document not found: ${documentSlug}`,
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
22
|
async resolvePromptResource(uri) {
|
|
71
23
|
const spec = uri.slice('prompt://'.length);
|
|
72
24
|
if (!spec) {
|
|
@@ -109,17 +61,6 @@ class ResourceResolver {
|
|
|
109
61
|
},
|
|
110
62
|
};
|
|
111
63
|
}
|
|
112
|
-
async findProjectIdBySlug(projectSlug) {
|
|
113
|
-
if (!projectSlug || projectSlug === 'global') {
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
const projects = await this.storage.listProjects({ limit: 1000, offset: 0 });
|
|
117
|
-
const match = projects.items.find((project) => project.name
|
|
118
|
-
.toLowerCase()
|
|
119
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
120
|
-
.replace(/(^-|-$)/g, '') === projectSlug);
|
|
121
|
-
return match?.id;
|
|
122
|
-
}
|
|
123
64
|
}
|
|
124
65
|
exports.ResourceResolver = ResourceResolver;
|
|
125
66
|
//# sourceMappingURL=resource-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/utils/resource-resolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/utils/resource-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ exports.agentMetadata = [
|
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: 'devchain_get_agent_by_name',
|
|
30
|
-
description: 'Returns a directory card for any agent in the project: description, profile name, provider config, team memberships with isLead, live presence with busy/idle since-when, and open assigned epics with status. Profile instructions are self-only;
|
|
30
|
+
description: 'Returns a directory card for any agent in the project: description, profile name, provider config, team memberships with isLead, live presence with busy/idle since-when, and open assigned epics with status. Profile instructions are self-only: on a self lookup the resolved instructions (instructionsResolved) replace the raw text; the raw instructions are also returned only when a [[prompt:...]] reference dropped surrounding prose or the resolution was truncated. Teams are an empty array when team data is unavailable.',
|
|
31
31
|
inputSchema: {
|
|
32
32
|
type: 'object',
|
|
33
33
|
required: ['sessionId', 'name'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.metadata.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tool-descriptors/agent.metadata.ts"],"names":[],"mappings":";;;AAAA,6CAIyB;AAGZ,QAAA,aAAa,GAAwB;IAChD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACzE,CAAC,EAAE;oBACD,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;iBACxE;aACF;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,YAAY,EAAE,gCAAsB;KACrC;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"agent.metadata.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tool-descriptors/agent.metadata.ts"],"names":[],"mappings":";;;AAAA,6CAIyB;AAGZ,QAAA,aAAa,GAAwB;IAChD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACzE,CAAC,EAAE;oBACD,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;iBACxE;aACF;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,YAAY,EAAE,gCAAsB;KACrC;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,2gBAA2gB;QAC7gB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;YAC/B,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;aACF;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,YAAY,EAAE,oCAA0B;KACzC;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,YAAY,EAAE,kCAAwB;KACvC;CACF,CAAC"}
|
|
@@ -9,6 +9,7 @@ import type { ReviewSuggestionApplier } from '../../reviews/services/review-sugg
|
|
|
9
9
|
import type { SessionsService } from '../../sessions/services/sessions.service';
|
|
10
10
|
import type { SettingsService } from '../../settings/services/settings.service';
|
|
11
11
|
import type { SkillsService } from '../../skills/services/skills.service';
|
|
12
|
+
import type { SkillSourceLifecycleService } from '../../skills/services/skill-source-lifecycle.service';
|
|
12
13
|
import type { StorageService } from '../../storage/interfaces/storage.interface';
|
|
13
14
|
import type { TeamsService } from '../../teams/services/teams.service';
|
|
14
15
|
import type { TerminalIOService } from '../../terminal/services/terminal-io/terminal-io.service';
|
|
@@ -23,6 +24,7 @@ export interface McpBindingRuntime {
|
|
|
23
24
|
readonly settingsService?: SettingsService;
|
|
24
25
|
readonly guestsService?: GuestsService;
|
|
25
26
|
readonly skillsService?: SkillsService;
|
|
27
|
+
readonly skillSourceLifecycleService?: SkillSourceLifecycleService;
|
|
26
28
|
readonly reviewsService?: ReviewsService;
|
|
27
29
|
readonly reviewSuggestionApplier?: ReviewSuggestionApplier;
|
|
28
30
|
readonly teamsService?: TeamsService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-types.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tool-descriptors/binding-types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"binding-types.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tool-descriptors/binding-types.ts"],"names":[],"mappings":";;AAiDA,0CAeC;AAfD,SAAgB,eAAe,CAC7B,aAAuD,EACvD,OAA2E;IAE3E,OAAO,MAAM,CAAC,MAAM,CAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAC9B,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI;QACJ,IAAI,EACF,CAAC,OAA0B,EAAuB,EAAE,CACpD,KAAK,EAAE,MAAe,EAAwB,EAAE,CAC9C,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC5C,CAAC,CACH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,10 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.epicMetadata = void 0;
|
|
4
4
|
const mcp_dto_1 = require("../dtos/mcp.dto");
|
|
5
|
+
const NEW_EPIC_RELATION_INPUT_SCHEMA = {
|
|
6
|
+
type: 'object',
|
|
7
|
+
required: ['relatedEpicId', 'relation'],
|
|
8
|
+
properties: {
|
|
9
|
+
relatedEpicId: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
pattern: '^[a-f0-9-]{8,36}$',
|
|
12
|
+
description: 'Related Epic UUID or 8+ character UUID prefix, resolved in the new Epic workspace',
|
|
13
|
+
},
|
|
14
|
+
relation: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
enum: ['related', 'blocks', 'blocked_by'],
|
|
17
|
+
description: 'Relation value relative to the new Epic',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
additionalProperties: false,
|
|
21
|
+
};
|
|
5
22
|
exports.epicMetadata = [
|
|
6
23
|
{
|
|
7
24
|
name: 'devchain_list_epics',
|
|
8
|
-
description:
|
|
25
|
+
description: "List epics for the project resolved from the session with optional filters. Each item carries a descriptionPreview (first ~300 characters) and descriptionLength instead of the full description; call devchain_get_epic_by_id for one epic's full text, or pass includeDescription: true to receive full descriptions in this list",
|
|
9
26
|
inputSchema: {
|
|
10
27
|
type: 'object',
|
|
11
28
|
required: ['sessionId'],
|
|
@@ -24,6 +41,10 @@ exports.epicMetadata = [
|
|
|
24
41
|
type: 'string',
|
|
25
42
|
description: 'Optional search query applied to epic titles and descriptions',
|
|
26
43
|
},
|
|
44
|
+
includeDescription: {
|
|
45
|
+
type: 'boolean',
|
|
46
|
+
description: 'When true, each item returns the full description instead of descriptionPreview and descriptionLength',
|
|
47
|
+
},
|
|
27
48
|
},
|
|
28
49
|
additionalProperties: false,
|
|
29
50
|
},
|
|
@@ -50,7 +71,7 @@ exports.epicMetadata = [
|
|
|
50
71
|
},
|
|
51
72
|
{
|
|
52
73
|
name: 'devchain_create_epic',
|
|
53
|
-
description: 'Create a new epic within the project resolved from the session',
|
|
74
|
+
description: 'Create a new epic within the project resolved from the session. Optional relation (single) or relations (1-20) are created atomically with the epic in one transaction; a failed create leaves no partial state',
|
|
54
75
|
inputSchema: {
|
|
55
76
|
type: 'object',
|
|
56
77
|
required: ['sessionId', 'title'],
|
|
@@ -84,22 +105,15 @@ exports.epicMetadata = [
|
|
|
84
105
|
description: 'Optional list of required skill slugs for this epic',
|
|
85
106
|
},
|
|
86
107
|
relation: {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
type: 'string',
|
|
97
|
-
enum: ['related', 'blocks', 'blocked_by'],
|
|
98
|
-
description: 'Relation value relative to the new Epic',
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
additionalProperties: false,
|
|
102
|
-
description: 'Optional single relation created atomically with the Epic',
|
|
108
|
+
...NEW_EPIC_RELATION_INPUT_SCHEMA,
|
|
109
|
+
description: 'Optional single relation created atomically with the Epic (kept for compatibility; mutually exclusive with relations)',
|
|
110
|
+
},
|
|
111
|
+
relations: {
|
|
112
|
+
type: 'array',
|
|
113
|
+
minItems: 1,
|
|
114
|
+
maxItems: 20,
|
|
115
|
+
items: NEW_EPIC_RELATION_INPUT_SCHEMA,
|
|
116
|
+
description: 'Optional relations (1-20) created atomically with the Epic in one transaction, written in input order (mutually exclusive with relation). Each target may appear once; a rolled-back create leaves no Epic, no relation, and no event. A new root Epic can hold only one eligible Related time route to same-project roots, so two such related entries fail with RELATION_ROUTE_CONFLICT naming both indexes; child-Epic and cross-project related entries never conflict',
|
|
103
117
|
},
|
|
104
118
|
},
|
|
105
119
|
additionalProperties: false,
|
|
@@ -108,7 +122,7 @@ exports.epicMetadata = [
|
|
|
108
122
|
},
|
|
109
123
|
{
|
|
110
124
|
name: 'devchain_get_epic_by_id',
|
|
111
|
-
description:
|
|
125
|
+
description: "Fetch a single epic, including comments and related hierarchy details. The parent is a summary ({ id, title, status, agentName }); pass includeParentDescription: true to also get the parent's full description for phase context, or call this tool with the parent id",
|
|
112
126
|
inputSchema: {
|
|
113
127
|
type: 'object',
|
|
114
128
|
required: ['sessionId', 'id'],
|
|
@@ -121,6 +135,10 @@ exports.epicMetadata = [
|
|
|
121
135
|
type: 'string',
|
|
122
136
|
description: 'Epic UUID or 8+ char hex prefix (a-f, 0-9, hyphens only; max 36 chars)',
|
|
123
137
|
},
|
|
138
|
+
includeParentDescription: {
|
|
139
|
+
type: 'boolean',
|
|
140
|
+
description: "When true, the parent summary also carries the parent epic's full description",
|
|
141
|
+
},
|
|
124
142
|
},
|
|
125
143
|
additionalProperties: false,
|
|
126
144
|
},
|
|
@@ -263,7 +281,7 @@ exports.epicMetadata = [
|
|
|
263
281
|
},
|
|
264
282
|
{
|
|
265
283
|
name: 'devchain_update_epic',
|
|
266
|
-
description: 'Update an epic with flexible field updates including status (by name), assignment (by agent name or clear), parent hierarchy, and tags. Uses optimistic locking via version. Tag-only examples: replace `{ sessionId, id, version, setTags: [...] }`, add `{ sessionId, id, version, addTags: [...] }`, remove `{ sessionId, id, version, removeTags: [...] }`.',
|
|
284
|
+
description: 'Update an epic with flexible field updates including status (by name), assignment (by agent name or clear), parent hierarchy, and tags. Uses optimistic locking via version. For small description changes, prefer descriptionEdits (literal find/replace, applied in order) or appendDescription over resending the full description; each find text must occur exactly once in the current description, so include enough surrounding context to make it unique. The response shows the context around each edited part, so a re-read is not needed; after VERSION_CONFLICT, re-read the epic (devchain_get_epic_by_id) and retry with the current version and text. Tag-only examples: replace `{ sessionId, id, version, setTags: [...] }`, add `{ sessionId, id, version, addTags: [...] }`, remove `{ sessionId, id, version, removeTags: [...] }`.',
|
|
267
285
|
inputSchema: {
|
|
268
286
|
type: 'object',
|
|
269
287
|
required: ['sessionId', 'id', 'version'],
|
|
@@ -278,7 +296,37 @@ exports.epicMetadata = [
|
|
|
278
296
|
},
|
|
279
297
|
version: { type: 'number', description: 'Current version for optimistic locking' },
|
|
280
298
|
title: { type: 'string', description: 'New epic title' },
|
|
281
|
-
description: {
|
|
299
|
+
description: {
|
|
300
|
+
type: 'string',
|
|
301
|
+
description: 'Full new epic description (mutually exclusive with descriptionEdits and appendDescription; prefer edits for small changes)',
|
|
302
|
+
},
|
|
303
|
+
descriptionEdits: {
|
|
304
|
+
type: 'array',
|
|
305
|
+
minItems: 1,
|
|
306
|
+
maxItems: 50,
|
|
307
|
+
items: {
|
|
308
|
+
type: 'object',
|
|
309
|
+
required: ['find', 'replace'],
|
|
310
|
+
properties: {
|
|
311
|
+
find: {
|
|
312
|
+
type: 'string',
|
|
313
|
+
minLength: 1,
|
|
314
|
+
description: 'Literal text to replace (no regex, no patterns); must occur exactly once in the current description — include enough surrounding context to make it unique',
|
|
315
|
+
},
|
|
316
|
+
replace: {
|
|
317
|
+
type: 'string',
|
|
318
|
+
description: 'Literal replacement text; $&, $1, and $$ have no special meaning and stay plain text',
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
additionalProperties: false,
|
|
322
|
+
},
|
|
323
|
+
description: 'Ordered literal find/replace edits applied to the current description (1-50 items, mutually exclusive with description); all edits apply atomically under the version lock',
|
|
324
|
+
},
|
|
325
|
+
appendDescription: {
|
|
326
|
+
type: 'string',
|
|
327
|
+
minLength: 1,
|
|
328
|
+
description: 'Text appended to the end of the current description (mutually exclusive with description); can combine with descriptionEdits',
|
|
329
|
+
},
|
|
282
330
|
statusName: {
|
|
283
331
|
type: 'string',
|
|
284
332
|
description: 'Status name (case-insensitive exact match)',
|