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.
Files changed (325) hide show
  1. package/dist/drizzle/0083_retire_documents.sql +2 -0
  2. package/dist/drizzle/0084_retire_codebase_overview.sql +1 -0
  3. package/dist/drizzle/0085_clumsy_zodiak.sql +166 -0
  4. package/dist/drizzle/meta/0083_snapshot.json +7422 -0
  5. package/dist/drizzle/meta/0084_snapshot.json +7422 -0
  6. package/dist/drizzle/meta/0085_snapshot.json +7446 -0
  7. package/dist/drizzle/meta/_journal.json +21 -0
  8. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +16278 -0
  9. package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts.map +1 -0
  10. package/dist/node_modules/@devchain/shared/schemas/project-replica.js +534 -0
  11. package/dist/node_modules/@devchain/shared/schemas/project-replica.js.map +1 -0
  12. package/dist/server/app.main.module.js +0 -4
  13. package/dist/server/app.main.module.js.map +1 -1
  14. package/dist/server/app.normal.module.js +0 -4
  15. package/dist/server/app.normal.module.js.map +1 -1
  16. package/dist/server/common/errors/error-types.d.ts +14 -0
  17. package/dist/server/common/errors/error-types.js +31 -1
  18. package/dist/server/common/errors/error-types.js.map +1 -1
  19. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +1 -0
  20. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +48 -0
  21. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -1
  22. package/dist/server/modules/epic-time/models/epic-time.models.d.ts +10 -0
  23. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +4 -1
  24. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +43 -1
  25. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
  26. package/dist/server/modules/epics/services/epics.service.d.ts +17 -6
  27. package/dist/server/modules/epics/services/epics.service.js +92 -28
  28. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  29. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +1 -0
  30. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +31 -1
  31. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  32. package/dist/server/modules/epics/utils/apply-description-edits.d.ts +21 -0
  33. package/dist/server/modules/epics/utils/apply-description-edits.js +81 -0
  34. package/dist/server/modules/epics/utils/apply-description-edits.js.map +1 -0
  35. package/dist/server/modules/external-integrations/connections/stable-integration-connection.d.ts +14 -0
  36. package/dist/server/modules/external-integrations/connections/stable-integration-connection.js +56 -0
  37. package/dist/server/modules/external-integrations/connections/stable-integration-connection.js.map +1 -0
  38. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -1
  39. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +51 -33
  40. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  41. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +2 -2
  42. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
  43. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +1 -0
  44. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +33 -1
  45. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
  46. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +1 -1
  47. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +41 -48
  48. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  49. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +24 -11
  50. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  51. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -1
  52. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
  53. package/dist/server/modules/mcp/constants.d.ts +0 -2
  54. package/dist/server/modules/mcp/constants.js +1 -11
  55. package/dist/server/modules/mcp/constants.js.map +1 -1
  56. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +325 -170
  57. package/dist/server/modules/mcp/dtos/mcp.dto.js +55 -48
  58. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  59. package/dist/server/modules/mcp/services/handlers/agent-tools.js +8 -1
  60. package/dist/server/modules/mcp/services/handlers/agent-tools.js.map +1 -1
  61. package/dist/server/modules/mcp/services/handlers/epic-tools.js +60 -3
  62. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
  63. package/dist/server/modules/mcp/services/handlers/skill-context.d.ts +2 -0
  64. package/dist/server/modules/mcp/services/handlers/skill-tools.d.ts +4 -0
  65. package/dist/server/modules/mcp/services/handlers/skill-tools.js +210 -15
  66. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
  67. package/dist/server/modules/mcp/services/instructions-resolver.d.ts +4 -13
  68. package/dist/server/modules/mcp/services/instructions-resolver.js +26 -166
  69. package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
  70. package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +8 -5
  71. package/dist/server/modules/mcp/services/mappers/dto-mappers.js +51 -31
  72. package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -1
  73. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
  74. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +11 -7
  75. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  76. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +1 -1
  77. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +1 -1
  78. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +1 -1
  79. package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +2 -4
  80. package/dist/server/modules/mcp/services/utils/resource-resolver.js +0 -59
  81. package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -1
  82. package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js +1 -1
  83. package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js.map +1 -1
  84. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +2 -0
  85. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  86. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +69 -21
  87. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
  88. package/dist/server/modules/mcp/tool-descriptors/index.js +0 -2
  89. package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
  90. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +0 -2
  91. package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
  92. package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js +6 -0
  93. package/dist/server/modules/mcp/tool-descriptors/skill.bindings.js.map +1 -1
  94. package/dist/server/modules/mcp/tool-descriptors/skill.metadata.js +105 -3
  95. package/dist/server/modules/mcp/tool-descriptors/skill.metadata.js.map +1 -1
  96. package/dist/server/modules/projects/helpers/project-import.d.ts +0 -33
  97. package/dist/server/modules/projects/helpers/project-import.js +0 -224
  98. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  99. package/dist/server/modules/projects/services/project-registry-import.service.d.ts +3 -6
  100. package/dist/server/modules/projects/services/project-registry-import.service.js +7 -28
  101. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  102. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  103. package/dist/server/modules/registry/controllers/registry.controller.js +3 -10
  104. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  105. package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +11 -3
  106. package/dist/server/modules/registry/services/registry-orchestration.service.js +6 -1
  107. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  108. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +8 -0
  109. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +9 -0
  110. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  111. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +10 -0
  112. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +13 -0
  113. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  114. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +20 -1
  115. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  116. package/dist/server/modules/session-reader/data/pricing.json +218 -888
  117. package/dist/server/modules/session-reader/parsers/bounded-line-read.d.ts +2 -0
  118. package/dist/server/modules/session-reader/parsers/bounded-line-read.js +66 -0
  119. package/dist/server/modules/session-reader/parsers/bounded-line-read.js.map +1 -0
  120. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +6 -0
  121. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +44 -13
  122. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
  123. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +22 -0
  124. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +61 -16
  125. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
  126. package/dist/server/modules/session-reader/services/bounded-anchor-proof.d.ts +12 -0
  127. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js +103 -0
  128. package/dist/server/modules/session-reader/services/bounded-anchor-proof.js.map +1 -0
  129. package/dist/server/modules/session-reader/services/metrics-merge.d.ts +17 -0
  130. package/dist/server/modules/session-reader/services/metrics-merge.js +114 -0
  131. package/dist/server/modules/session-reader/services/metrics-merge.js.map +1 -0
  132. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +33 -4
  133. package/dist/server/modules/session-reader/services/session-cache.service.js +157 -144
  134. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  135. package/dist/server/modules/session-reader/services/session-reader.service.js +0 -1
  136. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  137. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +16 -0
  138. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +370 -69
  139. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  140. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +4 -1
  141. package/dist/server/modules/sessions/controllers/sessions.controller.js +32 -0
  142. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  143. package/dist/server/modules/sessions/services/message-pool.types.d.ts +23 -0
  144. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +5 -2
  145. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +82 -4
  146. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  147. package/dist/server/modules/skills/adapters/github-skill-source.base.d.ts +1 -0
  148. package/dist/server/modules/skills/adapters/github-skill-source.base.js +29 -14
  149. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  150. package/dist/server/modules/skills/adapters/local-skill-source.adapter.d.ts +1 -0
  151. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +47 -9
  152. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  153. package/dist/server/modules/skills/dtos/community-sources.dto.d.ts +124 -0
  154. package/dist/server/modules/skills/dtos/community-sources.dto.js +5 -0
  155. package/dist/server/modules/skills/dtos/community-sources.dto.js.map +1 -1
  156. package/dist/server/modules/skills/dtos/local-sources.dto.d.ts +38 -0
  157. package/dist/server/modules/skills/dtos/local-sources.dto.js +2 -0
  158. package/dist/server/modules/skills/dtos/local-sources.dto.js.map +1 -1
  159. package/dist/server/modules/skills/dtos/skill.dto.d.ts +22 -0
  160. package/dist/server/modules/skills/dtos/skill.dto.js +13 -1
  161. package/dist/server/modules/skills/dtos/skill.dto.js.map +1 -1
  162. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +2 -2
  163. package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
  164. package/dist/server/modules/skills/services/skills.service.d.ts +64 -0
  165. package/dist/server/modules/skills/services/skills.service.js +211 -29
  166. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  167. package/dist/server/modules/skills/skills.module.js +1 -0
  168. package/dist/server/modules/skills/skills.module.js.map +1 -1
  169. package/dist/server/modules/storage/db/schema.d.ts +57 -219
  170. package/dist/server/modules/storage/db/schema.js +15 -27
  171. package/dist/server/modules/storage/db/schema.js.map +1 -1
  172. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +15 -24
  173. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  174. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +6 -1
  175. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +163 -32
  176. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
  177. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +11 -1
  178. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  179. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +1 -1
  180. package/dist/server/modules/storage/local/delegates/integration.delegate.js +17 -13
  181. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  182. package/dist/server/modules/storage/local/delegates/project.delegate.js +1 -10
  183. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  184. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +2 -1
  185. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +28 -8
  186. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  187. package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -9
  188. package/dist/server/modules/storage/local/local-storage.service.js +8 -22
  189. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  190. package/dist/server/modules/storage/models/domain.models.d.ts +14 -20
  191. package/dist/server/modules/storage/models/domain.models.js +2 -1
  192. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  193. package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -0
  194. package/dist/server/modules/subscribers/actions/delete-agent.action.js +9 -0
  195. package/dist/server/modules/subscribers/actions/delete-agent.action.js.map +1 -1
  196. package/dist/server/modules/subscribers/actions/epic-status-guard.d.ts +25 -0
  197. package/dist/server/modules/subscribers/actions/epic-status-guard.js +94 -0
  198. package/dist/server/modules/subscribers/actions/epic-status-guard.js.map +1 -0
  199. package/dist/server/modules/subscribers/actions/family-agent-targets.d.ts +1 -0
  200. package/dist/server/modules/subscribers/actions/family-agent-targets.js +1 -0
  201. package/dist/server/modules/subscribers/actions/family-agent-targets.js.map +1 -1
  202. package/dist/server/modules/subscribers/actions/terminate-session.action.js +13 -0
  203. package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
  204. package/dist/server/modules/terminal/services/human-prompt-state.service.d.ts +7 -0
  205. package/dist/server/modules/terminal/services/human-prompt-state.service.js +26 -0
  206. package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
  207. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +3 -2
  208. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
  209. package/dist/server/modules/terminal/utils/terminal-activity.js +8 -1
  210. package/dist/server/modules/terminal/utils/terminal-activity.js.map +1 -1
  211. package/dist/server/templates/teams-dev.json +295 -287
  212. package/dist/server/tsconfig.tsbuildinfo +1 -1
  213. package/dist/server/ui/assets/{ExternalRichEditor-BnzvJiFh.js → ExternalRichEditor-hN7WihF_.js} +1 -1
  214. package/dist/server/ui/assets/{ReviewDetailPage-B6RB_uEX.js → ReviewDetailPage-1rhwlpY0.js} +1 -1
  215. package/dist/server/ui/assets/{ReviewsPage-6iPnGQ1T.js → ReviewsPage-CzwQnlGJ.js} +1 -1
  216. package/dist/server/ui/assets/index--XE2vc98.css +32 -0
  217. package/dist/server/ui/assets/index-BDSngJhg.js +1197 -0
  218. package/dist/server/ui/assets/{useReviewSubscription-BfcypysB.js → useReviewSubscription-DdxeJTmK.js} +1 -1
  219. package/dist/server/ui/index.html +2 -2
  220. package/dist/templates/teams-dev.json +295 -287
  221. package/package.json +19 -1
  222. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.d.ts +0 -2
  223. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js +0 -52
  224. package/dist/server/modules/codebase-overview-analyzer/codebase-overview-analyzer.module.js.map +0 -1
  225. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.d.ts +0 -30
  226. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js +0 -230
  227. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js.map +0 -1
  228. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.d.ts +0 -24
  229. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js +0 -191
  230. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js.map +0 -1
  231. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.d.ts +0 -73
  232. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js +0 -1133
  233. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js.map +0 -1
  234. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.d.ts +0 -14
  235. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js +0 -114
  236. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.js.map +0 -1
  237. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.d.ts +0 -8
  238. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js +0 -200
  239. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.js.map +0 -1
  240. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.d.ts +0 -11
  241. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js +0 -164
  242. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.js.map +0 -1
  243. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.d.ts +0 -2
  244. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js +0 -166
  245. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.js.map +0 -1
  246. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.d.ts +0 -21
  247. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js +0 -253
  248. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js.map +0 -1
  249. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.d.ts +0 -24
  250. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js +0 -98
  251. package/dist/server/modules/codebase-overview-analyzer/services/identity-resolver.service.js.map +0 -1
  252. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.d.ts +0 -2
  253. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js +0 -155
  254. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.js.map +0 -1
  255. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.d.ts +0 -19
  256. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js +0 -88
  257. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js.map +0 -1
  258. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.d.ts +0 -2
  259. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js +0 -173
  260. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.js.map +0 -1
  261. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.d.ts +0 -2
  262. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js +0 -171
  263. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.js.map +0 -1
  264. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.d.ts +0 -2
  265. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js +0 -158
  266. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.js.map +0 -1
  267. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.d.ts +0 -2
  268. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js +0 -222
  269. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.js.map +0 -1
  270. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.d.ts +0 -4
  271. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js +0 -72
  272. package/dist/server/modules/codebase-overview-analyzer/services/scope-auto-detector.service.js.map +0 -1
  273. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.d.ts +0 -6
  274. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js +0 -37
  275. package/dist/server/modules/codebase-overview-analyzer/services/scope-resolver.service.js.map +0 -1
  276. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.d.ts +0 -2
  277. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js +0 -108
  278. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.js.map +0 -1
  279. package/dist/server/modules/codebase-overview-analyzer/types/index.d.ts +0 -2
  280. package/dist/server/modules/codebase-overview-analyzer/types/index.js +0 -6
  281. package/dist/server/modules/codebase-overview-analyzer/types/index.js.map +0 -1
  282. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.d.ts +0 -231
  283. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js +0 -3
  284. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js.map +0 -1
  285. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.d.ts +0 -2
  286. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js +0 -13
  287. package/dist/server/modules/codebase-overview-analyzer/types/scope-defaults.js.map +0 -1
  288. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.d.ts +0 -54
  289. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js +0 -27
  290. package/dist/server/modules/codebase-overview-analyzer/types/scope.schema.js.map +0 -1
  291. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.d.ts +0 -12
  292. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js +0 -3
  293. package/dist/server/modules/codebase-overview-analyzer/types/scope.types.js.map +0 -1
  294. package/dist/server/modules/codebase-overview-analyzer/utils/constants.d.ts +0 -1
  295. package/dist/server/modules/codebase-overview-analyzer/utils/constants.js +0 -5
  296. package/dist/server/modules/codebase-overview-analyzer/utils/constants.js.map +0 -1
  297. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.d.ts +0 -2
  298. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js +0 -17
  299. package/dist/server/modules/codebase-overview-analyzer/utils/path-matcher.js.map +0 -1
  300. package/dist/server/modules/documents/controllers/documents.controller.d.ts +0 -12
  301. package/dist/server/modules/documents/controllers/documents.controller.js +0 -174
  302. package/dist/server/modules/documents/controllers/documents.controller.js.map +0 -1
  303. package/dist/server/modules/documents/documents.module.d.ts +0 -2
  304. package/dist/server/modules/documents/documents.module.js +0 -22
  305. package/dist/server/modules/documents/documents.module.js.map +0 -1
  306. package/dist/server/modules/mcp/services/handlers/document-context.d.ts +0 -8
  307. package/dist/server/modules/mcp/services/handlers/document-context.js +0 -3
  308. package/dist/server/modules/mcp/services/handlers/document-context.js.map +0 -1
  309. package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +0 -6
  310. package/dist/server/modules/mcp/services/handlers/document-tools.js +0 -109
  311. package/dist/server/modules/mcp/services/handlers/document-tools.js.map +0 -1
  312. package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +0 -10
  313. package/dist/server/modules/mcp/services/utils/document-link-resolver.js +0 -124
  314. package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +0 -1
  315. package/dist/server/modules/mcp/tool-descriptors/document.bindings.d.ts +0 -1
  316. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js +0 -19
  317. package/dist/server/modules/mcp/tool-descriptors/document.bindings.js.map +0 -1
  318. package/dist/server/modules/mcp/tool-descriptors/document.metadata.d.ts +0 -2
  319. package/dist/server/modules/mcp/tool-descriptors/document.metadata.js +0 -96
  320. package/dist/server/modules/mcp/tool-descriptors/document.metadata.js.map +0 -1
  321. package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +0 -18
  322. package/dist/server/modules/storage/local/delegates/document.delegate.js +0 -275
  323. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +0 -1
  324. package/dist/server/ui/assets/index-CV8ydm7w.css +0 -32
  325. 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 { Document, Prompt, Status, Epic, EpicComment, Skill } from '../../../storage/models/domain.models';
3
- import type { DocumentDetail, DocumentSummary, PromptSummary, PromptDetail, SkillListItem, GetSkillResponse, StatusSummary, EpicSummary, EpicCommentSummary, EpicChildSummary, EpicParentSummary } from '../../dtos/mcp.dto';
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 mapEpicParent(epic: Epic, agentNameById: Map<string, string>): EpicParentSummary;
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
- function mapEpicParent(epic, agentNameById) {
50
- return {
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":"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"}
1
+ {"version":3,"file":"dto-mappers.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/mappers/dto-mappers.ts"],"names":[],"mappings":"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"}
@@ -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, (document, cache, maxDepth, maxBytes) => (0, document_link_resolver_1.buildInlineResolution)(storage, document, cache, maxDepth, maxBytes));
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)((0, common_1.forwardRef)(() => reviews_service_1.ReviewsService))),
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)(() => review_suggestion_applier_service_1.ReviewSuggestionApplier))),
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)(() => teams_service_1.TeamsService))),
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":"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"}
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":";;AAsBA,kFAmBC;AAvCD,4EAAsE;AAoBtE,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,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
+ {"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 { DocumentStorage, PromptStorage, ProjectStorage } from '../../../storage/interfaces/storage.interface';
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: DocumentStorage & PromptStorage & ProjectStorage);
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":"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"}
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; they are returned only when looking up yourself. Teams are an empty array when team data is unavailable.',
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,6VAA6V;QAC/V,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"}
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":";;AA+CA,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"}
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: 'List epics for the project resolved from the session with optional filters',
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
- type: 'object',
88
- required: ['relatedEpicId', 'relation'],
89
- properties: {
90
- relatedEpicId: {
91
- type: 'string',
92
- pattern: '^[a-f0-9-]{8,36}$',
93
- description: 'Related Epic UUID or 8+ character UUID prefix, resolved in the new Epic workspace',
94
- },
95
- relation: {
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: 'Fetch a single epic, including comments and related hierarchy details',
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: { type: 'string', description: 'New epic 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)',