@planu/cli 0.36.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/dist/config/license-plans.json +2 -1
  2. package/dist/engine/reverse-engineer/api-detector.d.ts +3 -0
  3. package/dist/engine/reverse-engineer/api-detector.d.ts.map +1 -0
  4. package/dist/engine/reverse-engineer/api-detector.js +170 -0
  5. package/dist/engine/reverse-engineer/api-detector.js.map +1 -0
  6. package/dist/engine/reverse-engineer/complexity-analyzer.d.ts +3 -0
  7. package/dist/engine/reverse-engineer/complexity-analyzer.d.ts.map +1 -0
  8. package/dist/engine/reverse-engineer/complexity-analyzer.js +230 -0
  9. package/dist/engine/reverse-engineer/complexity-analyzer.js.map +1 -0
  10. package/dist/engine/reverse-engineer/config-analyzer.d.ts +3 -0
  11. package/dist/engine/reverse-engineer/config-analyzer.d.ts.map +1 -0
  12. package/dist/engine/reverse-engineer/config-analyzer.js +247 -0
  13. package/dist/engine/reverse-engineer/config-analyzer.js.map +1 -0
  14. package/dist/engine/reverse-engineer/dependency-graph.d.ts +3 -0
  15. package/dist/engine/reverse-engineer/dependency-graph.d.ts.map +1 -0
  16. package/dist/engine/reverse-engineer/dependency-graph.js +197 -0
  17. package/dist/engine/reverse-engineer/dependency-graph.js.map +1 -0
  18. package/dist/engine/reverse-engineer/index.d.ts +7 -0
  19. package/dist/engine/reverse-engineer/index.d.ts.map +1 -0
  20. package/dist/engine/reverse-engineer/index.js +7 -0
  21. package/dist/engine/reverse-engineer/index.js.map +1 -0
  22. package/dist/engine/reverse-engineer/orchestrator.d.ts +5 -0
  23. package/dist/engine/reverse-engineer/orchestrator.d.ts.map +1 -0
  24. package/dist/engine/reverse-engineer/orchestrator.js +200 -0
  25. package/dist/engine/reverse-engineer/orchestrator.js.map +1 -0
  26. package/dist/engine/reverse-engineer/test-analyzer.d.ts +4 -0
  27. package/dist/engine/reverse-engineer/test-analyzer.d.ts.map +1 -0
  28. package/dist/engine/reverse-engineer/test-analyzer.js +130 -0
  29. package/dist/engine/reverse-engineer/test-analyzer.js.map +1 -0
  30. package/dist/engine/safety/atomic-writer.d.ts +22 -0
  31. package/dist/engine/safety/atomic-writer.d.ts.map +1 -0
  32. package/dist/engine/safety/atomic-writer.js +89 -0
  33. package/dist/engine/safety/atomic-writer.js.map +1 -0
  34. package/dist/engine/safety/circuit-breaker.d.ts +14 -0
  35. package/dist/engine/safety/circuit-breaker.d.ts.map +1 -0
  36. package/dist/engine/safety/circuit-breaker.js +63 -0
  37. package/dist/engine/safety/circuit-breaker.js.map +1 -0
  38. package/dist/engine/safety/file-mutex.d.ts +13 -0
  39. package/dist/engine/safety/file-mutex.d.ts.map +1 -0
  40. package/dist/engine/safety/file-mutex.js +108 -0
  41. package/dist/engine/safety/file-mutex.js.map +1 -0
  42. package/dist/engine/safety/health-monitor.d.ts +4 -0
  43. package/dist/engine/safety/health-monitor.d.ts.map +1 -0
  44. package/dist/engine/safety/health-monitor.js +95 -0
  45. package/dist/engine/safety/health-monitor.js.map +1 -0
  46. package/dist/engine/safety/index.d.ts +7 -0
  47. package/dist/engine/safety/index.d.ts.map +1 -0
  48. package/dist/engine/safety/index.js +8 -0
  49. package/dist/engine/safety/index.js.map +1 -0
  50. package/dist/engine/safety/path-sanitizer.d.ts +17 -0
  51. package/dist/engine/safety/path-sanitizer.d.ts.map +1 -0
  52. package/dist/engine/safety/path-sanitizer.js +36 -0
  53. package/dist/engine/safety/path-sanitizer.js.map +1 -0
  54. package/dist/engine/safety/transaction.d.ts +18 -0
  55. package/dist/engine/safety/transaction.d.ts.map +1 -0
  56. package/dist/engine/safety/transaction.js +70 -0
  57. package/dist/engine/safety/transaction.js.map +1 -0
  58. package/dist/engine/spec-kit-exporter.d.ts +6 -0
  59. package/dist/engine/spec-kit-exporter.d.ts.map +1 -0
  60. package/dist/engine/spec-kit-exporter.js +227 -0
  61. package/dist/engine/spec-kit-exporter.js.map +1 -0
  62. package/dist/engine/spec-migrator.d.ts +9 -0
  63. package/dist/engine/spec-migrator.d.ts.map +1 -1
  64. package/dist/engine/spec-migrator.js +70 -0
  65. package/dist/engine/spec-migrator.js.map +1 -1
  66. package/dist/engine/webhook/server.d.ts +4 -10
  67. package/dist/engine/webhook/server.d.ts.map +1 -1
  68. package/dist/engine/webhook/server.js +78 -24
  69. package/dist/engine/webhook/server.js.map +1 -1
  70. package/dist/index.js +4 -3
  71. package/dist/index.js.map +1 -1
  72. package/dist/storage/base-store.d.ts.map +1 -1
  73. package/dist/storage/base-store.js +3 -2
  74. package/dist/storage/base-store.js.map +1 -1
  75. package/dist/storage/trash-store.d.ts +10 -0
  76. package/dist/storage/trash-store.d.ts.map +1 -1
  77. package/dist/storage/trash-store.js +74 -0
  78. package/dist/storage/trash-store.js.map +1 -1
  79. package/dist/tools/check-config-health.d.ts.map +1 -1
  80. package/dist/tools/check-config-health.js +2 -1
  81. package/dist/tools/check-config-health.js.map +1 -1
  82. package/dist/tools/create-spec/spec-builder.js +1 -1
  83. package/dist/tools/create-spec/spec-builder.js.map +1 -1
  84. package/dist/tools/export-spec.d.ts +3 -0
  85. package/dist/tools/export-spec.d.ts.map +1 -0
  86. package/dist/tools/export-spec.js +110 -0
  87. package/dist/tools/export-spec.js.map +1 -0
  88. package/dist/tools/generate-teammate-prompt.d.ts.map +1 -1
  89. package/dist/tools/generate-teammate-prompt.js +7 -4
  90. package/dist/tools/generate-teammate-prompt.js.map +1 -1
  91. package/dist/tools/init-project/handler.d.ts.map +1 -1
  92. package/dist/tools/init-project/handler.js +11 -1
  93. package/dist/tools/init-project/handler.js.map +1 -1
  94. package/dist/tools/init-project/result-builder.d.ts.map +1 -1
  95. package/dist/tools/init-project/result-builder.js +1 -0
  96. package/dist/tools/init-project/result-builder.js.map +1 -1
  97. package/dist/tools/plan-team-distribution.d.ts.map +1 -1
  98. package/dist/tools/plan-team-distribution.js +6 -2
  99. package/dist/tools/plan-team-distribution.js.map +1 -1
  100. package/dist/tools/register-agent-tools.d.ts.map +1 -1
  101. package/dist/tools/register-agent-tools.js +32 -14
  102. package/dist/tools/register-agent-tools.js.map +1 -1
  103. package/dist/tools/register-changelog-tools.d.ts.map +1 -1
  104. package/dist/tools/register-changelog-tools.js +6 -2
  105. package/dist/tools/register-changelog-tools.js.map +1 -1
  106. package/dist/tools/register-ci-tools.d.ts.map +1 -1
  107. package/dist/tools/register-ci-tools.js +12 -3
  108. package/dist/tools/register-ci-tools.js.map +1 -1
  109. package/dist/tools/register-context-tools.d.ts.map +1 -1
  110. package/dist/tools/register-context-tools.js +32 -11
  111. package/dist/tools/register-context-tools.js.map +1 -1
  112. package/dist/tools/register-coverage-tools.d.ts.map +1 -1
  113. package/dist/tools/register-coverage-tools.js +2 -1
  114. package/dist/tools/register-coverage-tools.js.map +1 -1
  115. package/dist/tools/register-delete-tools.d.ts.map +1 -1
  116. package/dist/tools/register-delete-tools.js +9 -8
  117. package/dist/tools/register-delete-tools.js.map +1 -1
  118. package/dist/tools/register-event-tools.d.ts.map +1 -1
  119. package/dist/tools/register-event-tools.js +69 -33
  120. package/dist/tools/register-event-tools.js.map +1 -1
  121. package/dist/tools/register-export-tools.d.ts +3 -0
  122. package/dist/tools/register-export-tools.d.ts.map +1 -0
  123. package/dist/tools/register-export-tools.js +21 -0
  124. package/dist/tools/register-export-tools.js.map +1 -0
  125. package/dist/tools/register-facilitator-tools.d.ts.map +1 -1
  126. package/dist/tools/register-facilitator-tools.js +10 -2
  127. package/dist/tools/register-facilitator-tools.js.map +1 -1
  128. package/dist/tools/register-governance-tools.d.ts.map +1 -1
  129. package/dist/tools/register-governance-tools.js +4 -1
  130. package/dist/tools/register-governance-tools.js.map +1 -1
  131. package/dist/tools/register-hooks-tools.d.ts.map +1 -1
  132. package/dist/tools/register-hooks-tools.js +45 -18
  133. package/dist/tools/register-hooks-tools.js.map +1 -1
  134. package/dist/tools/register-ide-tools.js +1 -1
  135. package/dist/tools/register-ide-tools.js.map +1 -1
  136. package/dist/tools/register-learning-tools.d.ts.map +1 -1
  137. package/dist/tools/register-learning-tools.js +7 -1
  138. package/dist/tools/register-learning-tools.js.map +1 -1
  139. package/dist/tools/register-license-tools.d.ts.map +1 -1
  140. package/dist/tools/register-license-tools.js +6 -1
  141. package/dist/tools/register-license-tools.js.map +1 -1
  142. package/dist/tools/register-llm-provider-tools.d.ts.map +1 -1
  143. package/dist/tools/register-llm-provider-tools.js +13 -9
  144. package/dist/tools/register-llm-provider-tools.js.map +1 -1
  145. package/dist/tools/register-memory-tools.d.ts.map +1 -1
  146. package/dist/tools/register-memory-tools.js +17 -6
  147. package/dist/tools/register-memory-tools.js.map +1 -1
  148. package/dist/tools/register-migration-tools.d.ts.map +1 -1
  149. package/dist/tools/register-migration-tools.js +8 -1
  150. package/dist/tools/register-migration-tools.js.map +1 -1
  151. package/dist/tools/register-orchestrator-tools.d.ts.map +1 -1
  152. package/dist/tools/register-orchestrator-tools.js +15 -14
  153. package/dist/tools/register-orchestrator-tools.js.map +1 -1
  154. package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -1
  155. package/dist/tools/register-platform-tools/design-stack-tools.js +62 -35
  156. package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -1
  157. package/dist/tools/register-platform-tools/lifecycle-infra-tools.d.ts.map +1 -1
  158. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +72 -36
  159. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js.map +1 -1
  160. package/dist/tools/register-readiness-tools.js +4 -4
  161. package/dist/tools/register-readiness-tools.js.map +1 -1
  162. package/dist/tools/register-runtime-security-tools.js +1 -1
  163. package/dist/tools/register-runtime-security-tools.js.map +1 -1
  164. package/dist/tools/register-scope-tools.d.ts.map +1 -1
  165. package/dist/tools/register-scope-tools.js +26 -6
  166. package/dist/tools/register-scope-tools.js.map +1 -1
  167. package/dist/tools/register-search-tools.js +2 -2
  168. package/dist/tools/register-search-tools.js.map +1 -1
  169. package/dist/tools/register-security-tools.d.ts.map +1 -1
  170. package/dist/tools/register-security-tools.js +4 -3
  171. package/dist/tools/register-security-tools.js.map +1 -1
  172. package/dist/tools/register-spec-tools/analysis-tools.d.ts.map +1 -1
  173. package/dist/tools/register-spec-tools/analysis-tools.js +36 -25
  174. package/dist/tools/register-spec-tools/analysis-tools.js.map +1 -1
  175. package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
  176. package/dist/tools/register-spec-tools/core-spec-tools.js +42 -25
  177. package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
  178. package/dist/tools/register-stack-tools.d.ts.map +1 -1
  179. package/dist/tools/register-stack-tools.js +18 -10
  180. package/dist/tools/register-stack-tools.js.map +1 -1
  181. package/dist/tools/register-team-tools.d.ts.map +1 -1
  182. package/dist/tools/register-team-tools.js +17 -9
  183. package/dist/tools/register-team-tools.js.map +1 -1
  184. package/dist/tools/register-template-tools.d.ts.map +1 -1
  185. package/dist/tools/register-template-tools.js +13 -2
  186. package/dist/tools/register-template-tools.js.map +1 -1
  187. package/dist/tools/register-transform-tools.d.ts.map +1 -1
  188. package/dist/tools/register-transform-tools.js +3 -2
  189. package/dist/tools/register-transform-tools.js.map +1 -1
  190. package/dist/tools/register-workspace-tools.d.ts.map +1 -1
  191. package/dist/tools/register-workspace-tools.js +8 -3
  192. package/dist/tools/register-workspace-tools.js.map +1 -1
  193. package/dist/tools/reverse-engineer/handler.d.ts.map +1 -1
  194. package/dist/tools/reverse-engineer/handler.js +156 -128
  195. package/dist/tools/reverse-engineer/handler.js.map +1 -1
  196. package/dist/tools/schemas/github.d.ts.map +1 -1
  197. package/dist/tools/schemas/github.js +18 -9
  198. package/dist/tools/schemas/github.js.map +1 -1
  199. package/dist/tools/schemas/ide-config.js +1 -1
  200. package/dist/tools/schemas/ide-config.js.map +1 -1
  201. package/dist/tools/schemas/plugins-schemas.d.ts.map +1 -1
  202. package/dist/tools/schemas/plugins-schemas.js +15 -4
  203. package/dist/tools/schemas/plugins-schemas.js.map +1 -1
  204. package/dist/tools/schemas/registry.d.ts.map +1 -1
  205. package/dist/tools/schemas/registry.js +27 -10
  206. package/dist/tools/schemas/registry.js.map +1 -1
  207. package/dist/tools/schemas/session.d.ts.map +1 -1
  208. package/dist/tools/schemas/session.js +5 -3
  209. package/dist/tools/schemas/session.js.map +1 -1
  210. package/dist/tools/schemas/workers-schema.d.ts.map +1 -1
  211. package/dist/tools/schemas/workers-schema.js +16 -9
  212. package/dist/tools/schemas/workers-schema.js.map +1 -1
  213. package/dist/tools/validate-team-results.d.ts.map +1 -1
  214. package/dist/tools/validate-team-results.js +9 -3
  215. package/dist/tools/validate-team-results.js.map +1 -1
  216. package/dist/transports/http-transport.d.ts +7 -0
  217. package/dist/transports/http-transport.d.ts.map +1 -0
  218. package/dist/transports/http-transport.js +170 -0
  219. package/dist/transports/http-transport.js.map +1 -0
  220. package/dist/transports/index.d.ts +4 -0
  221. package/dist/transports/index.d.ts.map +1 -0
  222. package/dist/transports/index.js +4 -0
  223. package/dist/transports/index.js.map +1 -0
  224. package/dist/transports/transport-factory.d.ts +5 -0
  225. package/dist/transports/transport-factory.d.ts.map +1 -0
  226. package/dist/transports/transport-factory.js +48 -0
  227. package/dist/transports/transport-factory.js.map +1 -0
  228. package/dist/types/estimation.d.ts +1 -1
  229. package/dist/types/estimation.d.ts.map +1 -1
  230. package/dist/types/export.d.ts +24 -0
  231. package/dist/types/export.d.ts.map +1 -0
  232. package/dist/types/export.js +3 -0
  233. package/dist/types/export.js.map +1 -0
  234. package/dist/types/index.d.ts +5 -0
  235. package/dist/types/index.d.ts.map +1 -1
  236. package/dist/types/index.js +5 -0
  237. package/dist/types/index.js.map +1 -1
  238. package/dist/types/project/planu-config.d.ts +4 -0
  239. package/dist/types/project/planu-config.d.ts.map +1 -1
  240. package/dist/types/reverse-engineer.d.ts +90 -0
  241. package/dist/types/reverse-engineer.d.ts.map +1 -0
  242. package/dist/types/reverse-engineer.js +3 -0
  243. package/dist/types/reverse-engineer.js.map +1 -0
  244. package/dist/types/safe-schemas.d.ts +12 -0
  245. package/dist/types/safe-schemas.d.ts.map +1 -0
  246. package/dist/types/safe-schemas.js +27 -0
  247. package/dist/types/safe-schemas.js.map +1 -0
  248. package/dist/types/safety.d.ts +66 -0
  249. package/dist/types/safety.d.ts.map +1 -0
  250. package/dist/types/safety.js +3 -0
  251. package/dist/types/safety.js.map +1 -0
  252. package/dist/types/transport.d.ts +14 -0
  253. package/dist/types/transport.d.ts.map +1 -0
  254. package/dist/types/transport.js +2 -0
  255. package/dist/types/transport.js.map +1 -0
  256. package/package.json +11 -2
  257. package/src/config/license-plans.json +2 -1
@@ -18,7 +18,7 @@ export const IdeConfigScopeEnum = z
18
18
  .describe('Config scope: project | global');
19
19
  export const generateIdeConfigSchema = z.object({
20
20
  ide: IdeTargetEnum,
21
- projectPath: z.string().optional().default('.').describe('Project root path'),
21
+ projectPath: z.string().max(4096).optional().default('.').describe('Project root path'),
22
22
  scope: IdeConfigScopeEnum.optional()
23
23
  .default('project')
24
24
  .describe('Config scope: project | global'),
@@ -1 +1 @@
1
- {"version":3,"file":"ide-config.js","sourceRoot":"","sources":["../../../src/tools/schemas/ide-config.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,IAAI,CAAC;IACJ,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,SAAS;IACT,MAAM;CACP,CAAC;KACD,QAAQ,CACP,6GAA6G,CAC9G,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,GAAG,EAAE,aAAa;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7E,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE;SACjC,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC/F,CAAC,CAAC"}
1
+ {"version":3,"file":"ide-config.js","sourceRoot":"","sources":["../../../src/tools/schemas/ide-config.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,IAAI,CAAC;IACJ,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,SAAS;IACT,MAAM;CACP,CAAC;KACD,QAAQ,CACP,6GAA6G,CAC9G,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,GAAG,EAAE,aAAa;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACvF,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE;SACjC,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC/F,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins-schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/plugins-schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;EAEmD,CAAC;AAEjF,eAAO,MAAM,uBAAuB;;;;;EAEkC,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAW/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAOhC,CAAC"}
1
+ {"version":3,"file":"plugins-schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/plugins-schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;EAEmD,CAAC;AAEjF,eAAO,MAAM,uBAAuB;;;;;EAEkC,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAiB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAYhC,CAAC"}
@@ -10,20 +10,31 @@ export const ManagePluginsSchema = {
10
10
  action: PluginActionEnum,
11
11
  pluginId: z
12
12
  .string()
13
+ .max(500)
13
14
  .optional()
14
15
  .describe('Plugin ID — required for activate, deactivate, uninstall, info'),
15
16
  pluginPath: z
16
17
  .string()
18
+ .max(4096)
17
19
  .optional()
18
20
  .describe('Filesystem path to plugin source — required for install'),
19
- projectPath: z.string().optional().describe('Project root path (defaults to current directory)'),
21
+ projectPath: z
22
+ .string()
23
+ .max(4096)
24
+ .optional()
25
+ .describe('Project root path (defaults to current directory)'),
20
26
  };
21
27
  export const ScaffoldPluginSchema = {
22
- name: z.string().describe('Plugin name (lowercase, hyphens allowed, e.g. "my-plugin")'),
23
- description: z.string().describe('Short description of what the plugin does'),
28
+ name: z.string().max(500).describe('Plugin name (lowercase, hyphens allowed, e.g. "my-plugin")'),
29
+ description: z.string().max(10_000).describe('Short description of what the plugin does'),
24
30
  extensions: z
25
31
  .array(PluginExtensionTypeEnum)
32
+ .max(100)
26
33
  .describe('Extension types to scaffold: tools | workers | analyzers | templates'),
27
- outputDir: z.string().optional().describe('Output directory (defaults to current directory)'),
34
+ outputDir: z
35
+ .string()
36
+ .max(4096)
37
+ .optional()
38
+ .describe('Output directory (defaults to current directory)'),
28
39
  };
29
40
  //# sourceMappingURL=plugins-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins-schemas.js","sourceRoot":"","sources":["../../../src/tools/schemas/plugins-schemas.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KACxE,QAAQ,CAAC,mEAAmE,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACpD,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACjG,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC7E,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,uBAAuB,CAAC;SAC9B,QAAQ,CAAC,sEAAsE,CAAC;IACnF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CAC9F,CAAC"}
1
+ {"version":3,"file":"plugins-schemas.js","sourceRoot":"","sources":["../../../src/tools/schemas/plugins-schemas.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KACxE,QAAQ,CAAC,mEAAmE,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACpD,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACzF,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,uBAAuB,CAAC;SAC9B,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,sEAAsE,CAAC;IACnF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;CAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,qDAAqD;AACrD,eAAO,MAAM,uBAAuB;;;iBAalC,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2C/B,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,qDAAqD;AACrD,eAAO,MAAM,uBAAuB;;;iBAelC,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkD/B,CAAC"}
@@ -2,10 +2,18 @@
2
2
  import { z } from 'zod';
3
3
  /** Schema for a framework pattern object (correct, deprecated, or mistake). */
4
4
  const FrameworkPatternSchema = z.object({
5
- pattern: z.string().describe('Descripcion del patron'),
6
- example: z.string().optional().describe('Ejemplo de codigo ilustrativo'),
7
- since: z.string().optional().describe('Version desde la que aplica (solo correctPatterns)'),
8
- replacedBy: z.string().optional().describe('Reemplazo para patrones obsoletos o errores'),
5
+ pattern: z.string().max(10_000).describe('Descripcion del patron'),
6
+ example: z.string().max(10_000).optional().describe('Ejemplo de codigo ilustrativo'),
7
+ since: z
8
+ .string()
9
+ .max(500)
10
+ .optional()
11
+ .describe('Version desde la que aplica (solo correctPatterns)'),
12
+ replacedBy: z
13
+ .string()
14
+ .max(10_000)
15
+ .optional()
16
+ .describe('Reemplazo para patrones obsoletos o errores'),
9
17
  severity: z.enum(['error', 'warning']).optional().describe('Severidad: error | warning'),
10
18
  });
11
19
  /** Input schema for the check_spec_accuracy tool. */
@@ -13,9 +21,11 @@ export const CheckSpecAccuracySchema = z.object({
13
21
  specContent: z
14
22
  .string()
15
23
  .min(1)
24
+ .max(1_000_000)
16
25
  .describe('Contenido de la spec o fragmento a validar (texto de HU.md o criterios de aceptacion)'),
17
26
  frameworks: z
18
- .array(z.string())
27
+ .array(z.string().max(500))
28
+ .max(100)
19
29
  .optional()
20
30
  .describe('Frameworks especificos a verificar (e.g. ["nextjs", "react"]). Si se omite, se detectan automaticamente del texto'),
21
31
  });
@@ -24,37 +34,44 @@ export const UpdateRegistrySchema = z.object({
24
34
  framework: z
25
35
  .string()
26
36
  .min(1)
37
+ .max(500)
27
38
  .describe('ID unico del framework en snake_case minusculas (e.g. "my-internal-framework")'),
28
39
  displayName: z
29
40
  .string()
30
41
  .min(1)
42
+ .max(500)
31
43
  .describe('Nombre legible del framework (e.g. "My Internal Framework")'),
32
44
  ecosystem: z
33
45
  .string()
46
+ .max(500)
34
47
  .describe('Ecosistema del framework: typescript | python | go | rust | java | swift | php | ruby | csharp | dart | other'),
35
48
  frameworkVersion: z
36
49
  .string()
37
50
  .min(1)
51
+ .max(500)
38
52
  .describe('Version de referencia del framework (e.g. "2.x", "1.0.0")'),
39
53
  correctPatterns: z
40
54
  .array(FrameworkPatternSchema)
41
55
  .min(1)
56
+ .max(1000)
42
57
  .describe('Patrones correctos y recomendados. Minimo 1 requerido'),
43
58
  deprecatedPatterns: z
44
59
  .array(z.object({
45
- pattern: z.string().describe('Patron obsoleto'),
46
- replacedBy: z.string().describe('Reemplazo recomendado'),
60
+ pattern: z.string().max(10_000).describe('Patron obsoleto'),
61
+ replacedBy: z.string().max(10_000).describe('Reemplazo recomendado'),
47
62
  severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
48
63
  }))
64
+ .max(1000)
49
65
  .optional()
50
66
  .describe('Patrones obsoletos con su reemplazo recomendado'),
51
67
  commonMistakes: z
52
68
  .array(z.object({
53
- pattern: z.string().describe('Descripcion del error comun'),
54
- example: z.string().optional().describe('Ejemplo del error'),
55
- replacedBy: z.string().optional().describe('La forma correcta'),
69
+ pattern: z.string().max(10_000).describe('Descripcion del error comun'),
70
+ example: z.string().max(10_000).optional().describe('Ejemplo del error'),
71
+ replacedBy: z.string().max(10_000).optional().describe('La forma correcta'),
56
72
  severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
57
73
  }))
74
+ .max(1000)
58
75
  .optional()
59
76
  .describe('Errores comunes o alucinaciones frecuentes de LLMs para este framework'),
60
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAEe,CAAC;AAE9C,eAAO,MAAM,oBAAoB;;;CAMvB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;CAStB,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAEe,CAAC;AAE9C,eAAO,MAAM,oBAAoB;;;CAOvB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;CAUtB,CAAC"}
@@ -4,20 +4,22 @@ export const SessionFormatEnum = z
4
4
  .enum(['markdown', 'json'])
5
5
  .describe('Export format: markdown | json');
6
6
  export const RestoreSessionSchema = {
7
- projectPath: z.string().describe('Absolute path to the project root'),
7
+ projectPath: z.string().max(4096).describe('Absolute path to the project root'),
8
8
  sessionId: z
9
9
  .string()
10
+ .max(500)
10
11
  .optional()
11
12
  .describe('Session ID to restore. If omitted, restores the most recent session'),
12
13
  };
13
14
  export const ListSessionsSchema = {
14
- projectPath: z.string().describe('Absolute path to the project root'),
15
+ projectPath: z.string().max(4096).describe('Absolute path to the project root'),
15
16
  limit: z.number().optional().describe('Max sessions to return (default 10)'),
16
17
  };
17
18
  export const ExportSessionSchema = {
18
- projectPath: z.string().describe('Absolute path to the project root'),
19
+ projectPath: z.string().max(4096).describe('Absolute path to the project root'),
19
20
  sessionId: z
20
21
  .string()
22
+ .max(500)
21
23
  .optional()
22
24
  .describe('Session ID to export. If omitted, exports the most recent session'),
23
25
  format: SessionFormatEnum.optional().describe('Export format: markdown | json (default markdown)'),
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CAC1E,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,mDAAmD,CACpD;CACO,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/tools/schemas/session.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC/E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;CAC1E,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpE,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC/E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,mDAAmD,CACpD;CACO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workers-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/workers-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;iBAkB9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBASjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;iBASlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;iBAiBtC,CAAC"}
1
+ {"version":3,"file":"workers-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/workers-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;iBAoB9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAYjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;iBAUlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;iBAkBtC,CAAC"}
@@ -8,11 +8,13 @@ export const WorkerTriggerSchema = z.object({
8
8
  .enum(['file-change', 'event', 'schedule'])
9
9
  .describe('Trigger type: file-change | event | schedule'),
10
10
  patterns: z
11
- .array(z.string().describe('Glob pattern like **/*.ts'))
11
+ .array(z.string().max(4096).describe('Glob pattern like **/*.ts'))
12
+ .max(100)
12
13
  .optional()
13
14
  .describe('Glob patterns for file-change triggers'),
14
15
  events: z
15
- .array(z.string().describe('Event name like post-create-spec'))
16
+ .array(z.string().max(500).describe('Event name like post-create-spec'))
17
+ .max(100)
16
18
  .optional()
17
19
  .describe('Event names for event triggers'),
18
20
  intervalMs: z
@@ -23,40 +25,45 @@ export const WorkerTriggerSchema = z.object({
23
25
  .describe('Interval in ms for schedule triggers'),
24
26
  });
25
27
  export const WorkerDefinitionSchema = z.object({
26
- name: z.string().min(1).describe('Unique worker name'),
27
- description: z.string().describe('Human-readable description of what the worker does'),
28
+ name: z.string().min(1).max(500).describe('Unique worker name'),
29
+ description: z
30
+ .string()
31
+ .max(10_000)
32
+ .describe('Human-readable description of what the worker does'),
28
33
  trigger: WorkerTriggerSchema.describe('When this worker should be triggered'),
29
- handler: z.string().describe('Path to handler module'),
34
+ handler: z.string().max(4096).describe('Path to handler module'),
30
35
  priority: z.number().int().min(1).max(10).describe('Priority 1-10, higher = more important'),
31
36
  cooldownMs: z.number().int().min(0).describe('Minimum milliseconds between executions'),
32
37
  enabled: z.boolean().describe('Whether the worker is active'),
33
38
  tier: z.enum(['free', 'pro']).describe('License tier: free | pro'),
34
39
  });
35
40
  export const WorkerRegistrySchema = z.object({
36
- workers: z.array(WorkerDefinitionSchema).describe('List of worker definitions'),
41
+ workers: z.array(WorkerDefinitionSchema).max(1000).describe('List of worker definitions'),
37
42
  });
38
43
  // ---------------------------------------------------------------------------
39
44
  // Tool input schemas
40
45
  // ---------------------------------------------------------------------------
41
46
  export const WorkerStatusInputSchema = z.object({
42
- projectId: z.string().min(1).describe('Project identifier'),
47
+ projectId: z.string().min(1).max(500).describe('Project identifier'),
43
48
  workerName: z
44
49
  .string()
50
+ .max(500)
45
51
  .optional()
46
52
  .describe('Optional worker name to get detailed status. ' +
47
53
  'Available: test-gaps | security-audit | optimization | code-map | documentation | dependency-health'),
48
54
  });
49
55
  export const ConfigureWorkersInputSchema = z.object({
50
- projectId: z.string().min(1).describe('Project identifier'),
56
+ projectId: z.string().min(1).max(500).describe('Project identifier'),
51
57
  workerName: z
52
58
  .string()
53
59
  .min(1)
60
+ .max(500)
54
61
  .describe('Worker to configure: test-gaps | security-audit | optimization | code-map | documentation | dependency-health'),
55
62
  action: z
56
63
  .enum(['enable', 'disable', 'set-cooldown', 'set-priority', 'add-pattern', 'remove-pattern'])
57
64
  .describe('Configuration action: enable | disable | set-cooldown | set-priority | add-pattern | remove-pattern'),
58
65
  value: z
59
- .union([z.string(), z.number()])
66
+ .union([z.string().max(4096), z.number()])
60
67
  .optional()
61
68
  .describe('Value for the action (ms for cooldown, 1-10 for priority, glob for patterns)'),
62
69
  });
@@ -1 +1 @@
1
- {"version":3,"file":"workers-schema.js","sourceRoot":"","sources":["../../../src/tools/schemas/workers-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers-schema.js","sourceRoot":"","sources":["../../../src/tools/schemas/workers-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-team-results.d.ts","sourceRoot":"","sources":["../../src/tools/validate-team-results.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AA0CH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
1
+ {"version":3,"file":"validate-team-results.d.ts","sourceRoot":"","sources":["../../src/tools/validate-team-results.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,yBAAyB;;;;iBAUpC,CAAC;AA0CH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
@@ -3,9 +3,15 @@ import { specStore } from '../storage/index.js';
3
3
  import { validateTeamResults } from '../engine/team-planner/index.js';
4
4
  import { readFile } from 'node:fs/promises';
5
5
  export const validateTeamResultsSchema = z.object({
6
- projectId: z.string().describe('Project identifier'),
7
- specIds: z.array(z.string()).describe('Spec IDs that were distributed across the team'),
8
- teammateNames: z.array(z.string()).describe('Names of teammates whose results to validate'),
6
+ projectId: z.string().max(500).describe('Project identifier'),
7
+ specIds: z
8
+ .array(z.string().max(500))
9
+ .max(100)
10
+ .describe('Spec IDs that were distributed across the team'),
11
+ teammateNames: z
12
+ .array(z.string().max(500))
13
+ .max(100)
14
+ .describe('Names of teammates whose results to validate'),
9
15
  });
10
16
  // ---------------------------------------------------------------------------
11
17
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"validate-team-results.js","sourceRoot":"","sources":["../../src/tools/validate-team-results.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-team-results.js","sourceRoot":"","sources":["../../src/tools/validate-team-results.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type Server } from 'node:http';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import type { TransportConfig, SessionEntry } from '../types/index.js';
4
+ declare const sessions: Map<string, SessionEntry>;
5
+ export declare function createHttpTransport(mcpServer: McpServer, config: TransportConfig): Promise<Server>;
6
+ export { sessions };
7
+ //# sourceMappingURL=http-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../src/transports/http-transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2D,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAGjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKvE,QAAA,MAAM,QAAQ,2BAAkC,CAAC;AAiIjD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CA4DjB;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,170 @@
1
+ // http-transport.ts — HTTP transport using SDK's StreamableHTTPServerTransport.
2
+ import { createServer } from 'node:http';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
5
+ import { PLANU_VERSION } from '../config/version.js';
6
+ const MAX_BODY_BYTES = 5 * 1024 * 1024; // 5MB
7
+ const SHUTDOWN_GRACE_MS = 5_000;
8
+ const sessions = new Map();
9
+ function setSecurityHeaders(res) {
10
+ res.setHeader('X-Content-Type-Options', 'nosniff');
11
+ }
12
+ function setCorsHeaders(res, corsOrigin) {
13
+ res.setHeader('Access-Control-Allow-Origin', corsOrigin);
14
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
15
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, mcp-session-id');
16
+ res.setHeader('Access-Control-Expose-Headers', 'mcp-session-id');
17
+ }
18
+ function handleHealth(res) {
19
+ setSecurityHeaders(res);
20
+ res.writeHead(200, { 'Content-Type': 'application/json' });
21
+ res.end(JSON.stringify({ status: 'ok', version: PLANU_VERSION }));
22
+ }
23
+ async function readBody(req) {
24
+ return new Promise((resolve, reject) => {
25
+ const chunks = [];
26
+ let size = 0;
27
+ req.on('data', (chunk) => {
28
+ size += chunk.length;
29
+ if (size > MAX_BODY_BYTES) {
30
+ req.destroy();
31
+ reject(new Error('Body too large'));
32
+ return;
33
+ }
34
+ chunks.push(chunk);
35
+ });
36
+ req.on('end', () => {
37
+ resolve(Buffer.concat(chunks));
38
+ });
39
+ req.on('error', reject);
40
+ });
41
+ }
42
+ async function handleMcpRequest(req, res, mcpServer, corsOrigin) {
43
+ setSecurityHeaders(res);
44
+ if (corsOrigin) {
45
+ setCorsHeaders(res, corsOrigin);
46
+ }
47
+ const sessionId = req.headers['mcp-session-id'];
48
+ if (req.method === 'GET') {
49
+ res.setHeader('Cache-Control', 'no-store');
50
+ if (sessionId) {
51
+ const entry = sessions.get(sessionId);
52
+ if (entry) {
53
+ await entry.transport.handleRequest(req, res);
54
+ return;
55
+ }
56
+ }
57
+ res.writeHead(400, { 'Content-Type': 'application/json' });
58
+ res.end(JSON.stringify({ error: 'Missing or invalid session ID' }));
59
+ return;
60
+ }
61
+ if (req.method === 'DELETE') {
62
+ if (sessionId) {
63
+ const entry = sessions.get(sessionId);
64
+ if (entry) {
65
+ await entry.transport.close();
66
+ sessions.delete(sessionId);
67
+ res.writeHead(200, { 'Content-Type': 'application/json' });
68
+ res.end(JSON.stringify({ status: 'session closed' }));
69
+ return;
70
+ }
71
+ }
72
+ res.writeHead(404, { 'Content-Type': 'application/json' });
73
+ res.end(JSON.stringify({ error: 'Session not found' }));
74
+ return;
75
+ }
76
+ if (req.method === 'POST') {
77
+ let body;
78
+ try {
79
+ body = await readBody(req);
80
+ }
81
+ catch {
82
+ res.writeHead(413, { 'Content-Type': 'application/json' });
83
+ res.end(JSON.stringify({ error: 'Request body too large (max 5MB)' }));
84
+ return;
85
+ }
86
+ const parsedBody = JSON.parse(body.toString('utf8'));
87
+ // Existing session
88
+ if (sessionId) {
89
+ const entry = sessions.get(sessionId);
90
+ if (entry) {
91
+ await entry.transport.handleRequest(req, res, parsedBody);
92
+ return;
93
+ }
94
+ }
95
+ // New session — create transport and connect a new server instance
96
+ const transport = new StreamableHTTPServerTransport({
97
+ sessionIdGenerator: () => randomUUID(),
98
+ });
99
+ transport.onclose = () => {
100
+ const sid = transport.sessionId;
101
+ if (sid) {
102
+ sessions.delete(sid);
103
+ }
104
+ };
105
+ await mcpServer.connect(transport);
106
+ await transport.handleRequest(req, res, parsedBody);
107
+ const newSessionId = transport.sessionId;
108
+ if (newSessionId) {
109
+ sessions.set(newSessionId, { transport, server: mcpServer });
110
+ }
111
+ return;
112
+ }
113
+ res.writeHead(405, { 'Content-Type': 'application/json' });
114
+ res.end(JSON.stringify({ error: 'Method not allowed' }));
115
+ }
116
+ export async function createHttpTransport(mcpServer, config) {
117
+ const httpServer = createServer((req, res) => {
118
+ void (async () => {
119
+ const url = req.url ?? '/';
120
+ if (req.method === 'OPTIONS' && config.corsOrigin) {
121
+ setSecurityHeaders(res);
122
+ setCorsHeaders(res, config.corsOrigin);
123
+ res.writeHead(204);
124
+ res.end();
125
+ return;
126
+ }
127
+ if (url === '/health' && req.method === 'GET') {
128
+ handleHealth(res);
129
+ return;
130
+ }
131
+ if (url === '/mcp') {
132
+ await handleMcpRequest(req, res, mcpServer, config.corsOrigin);
133
+ return;
134
+ }
135
+ setSecurityHeaders(res);
136
+ res.writeHead(404, { 'Content-Type': 'application/json' });
137
+ res.end(JSON.stringify({ error: 'Not found' }));
138
+ })();
139
+ });
140
+ const shutdownGracefully = async () => {
141
+ console.error('[Planu] Shutting down...');
142
+ const closePromises = [];
143
+ for (const [id, entry] of sessions) {
144
+ closePromises.push(entry.transport.close());
145
+ sessions.delete(id);
146
+ }
147
+ await Promise.allSettled(closePromises);
148
+ await new Promise((resolve) => {
149
+ const timer = setTimeout(() => {
150
+ resolve();
151
+ }, SHUTDOWN_GRACE_MS);
152
+ httpServer.close(() => {
153
+ clearTimeout(timer);
154
+ resolve();
155
+ });
156
+ });
157
+ console.error('[Planu] Shutdown complete');
158
+ process.exit(0);
159
+ };
160
+ process.on('SIGINT', () => void shutdownGracefully());
161
+ process.on('SIGTERM', () => void shutdownGracefully());
162
+ return new Promise((resolve) => {
163
+ httpServer.listen(config.port, config.host, () => {
164
+ console.error(`Planu MCP server listening on http://${config.host}:${config.port}`);
165
+ resolve(httpServer);
166
+ });
167
+ });
168
+ }
169
+ export { sessions };
170
+ //# sourceMappingURL=http-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../src/transports/http-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { selectTransport, parseTransportConfig } from './transport-factory.js';
2
+ export type { TransportConfig } from '../types/index.js';
3
+ export { createHttpTransport } from './http-transport.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // transports barrel export
2
+ export { selectTransport, parseTransportConfig } from './transport-factory.js';
3
+ export { createHttpTransport } from './http-transport.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { TransportConfig } from '../types/index.js';
3
+ export declare function parseTransportConfig(args: string[]): TransportConfig;
4
+ export declare function selectTransport(server: McpServer, args: string[]): Promise<void>;
5
+ //# sourceMappingURL=transport-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-factory.d.ts","sourceRoot":"","sources":["../../src/transports/transport-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBzD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAuBpE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtF"}
@@ -0,0 +1,48 @@
1
+ // transport-factory.ts — Parses CLI flags and selects the appropriate MCP transport.
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { createHttpTransport } from './http-transport.js';
4
+ const VALID_TRANSPORTS = ['stdio', 'http'];
5
+ const DEFAULT_PORT = 3100;
6
+ const DEFAULT_HOST = '127.0.0.1';
7
+ function getFlag(args, name) {
8
+ const prefix = `--${name}=`;
9
+ for (let i = 0; i < args.length; i++) {
10
+ const arg = args[i];
11
+ if (arg?.startsWith(prefix)) {
12
+ return arg.slice(prefix.length);
13
+ }
14
+ if (arg === `--${name}` && i + 1 < args.length) {
15
+ return args[i + 1];
16
+ }
17
+ }
18
+ return undefined;
19
+ }
20
+ export function parseTransportConfig(args) {
21
+ const transportValue = getFlag(args, 'transport') ?? 'stdio';
22
+ if (!VALID_TRANSPORTS.includes(transportValue)) {
23
+ console.error(`[Planu] Unknown transport "${transportValue}". Valid options: ${VALID_TRANSPORTS.join(', ')}`);
24
+ process.exit(1);
25
+ }
26
+ const portStr = getFlag(args, 'port');
27
+ const port = portStr ? Number(portStr) : DEFAULT_PORT;
28
+ if (Number.isNaN(port) || port < 1 || port > 65535) {
29
+ console.error(`[Planu] Invalid port "${portStr}". Must be 1–65535.`);
30
+ process.exit(1);
31
+ }
32
+ return {
33
+ transport: transportValue,
34
+ port,
35
+ host: getFlag(args, 'host') ?? DEFAULT_HOST,
36
+ corsOrigin: getFlag(args, 'cors-origin'),
37
+ };
38
+ }
39
+ export async function selectTransport(server, args) {
40
+ const config = parseTransportConfig(args);
41
+ if (config.transport === 'stdio') {
42
+ const transport = new StdioServerTransport();
43
+ await server.connect(transport);
44
+ return;
45
+ }
46
+ await createHttpTransport(server, config);
47
+ }
48
+ //# sourceMappingURL=transport-factory.js.map