@planu/cli 0.42.1 → 0.43.1

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 (262) hide show
  1. package/dist/config/license-plans.json +2 -1
  2. package/dist/engine/actuals/consolidator.d.ts +3 -3
  3. package/dist/engine/actuals/consolidator.d.ts.map +1 -1
  4. package/dist/engine/actuals/consolidator.js +24 -2
  5. package/dist/engine/actuals/consolidator.js.map +1 -1
  6. package/dist/engine/actuals/index.d.ts +1 -0
  7. package/dist/engine/actuals/index.d.ts.map +1 -1
  8. package/dist/engine/actuals/index.js +1 -0
  9. package/dist/engine/actuals/index.js.map +1 -1
  10. package/dist/engine/actuals/progress-parser.d.ts +11 -0
  11. package/dist/engine/actuals/progress-parser.d.ts.map +1 -0
  12. package/dist/engine/actuals/progress-parser.js +84 -0
  13. package/dist/engine/actuals/progress-parser.js.map +1 -0
  14. package/dist/engine/actuals/wip-tracker.d.ts +2 -2
  15. package/dist/engine/actuals/wip-tracker.d.ts.map +1 -1
  16. package/dist/engine/actuals/wip-tracker.js +5 -6
  17. package/dist/engine/actuals/wip-tracker.js.map +1 -1
  18. package/dist/engine/analytics-detector/events.d.ts.map +1 -1
  19. package/dist/engine/analytics-detector/events.js +3 -4
  20. package/dist/engine/analytics-detector/events.js.map +1 -1
  21. package/dist/engine/ci-generator/planu-steps.js +1 -1
  22. package/dist/engine/ci-generator/planu-steps.js.map +1 -1
  23. package/dist/engine/docs-site-generator/spec-renderer.d.ts.map +1 -1
  24. package/dist/engine/docs-site-generator/spec-renderer.js +2 -1
  25. package/dist/engine/docs-site-generator/spec-renderer.js.map +1 -1
  26. package/dist/engine/execution-plan/agent-execution-plan.d.ts.map +1 -1
  27. package/dist/engine/execution-plan/agent-execution-plan.js +2 -0
  28. package/dist/engine/execution-plan/agent-execution-plan.js.map +1 -1
  29. package/dist/engine/living-spec-analyzer.d.ts +7 -0
  30. package/dist/engine/living-spec-analyzer.d.ts.map +1 -0
  31. package/dist/engine/living-spec-analyzer.js +362 -0
  32. package/dist/engine/living-spec-analyzer.js.map +1 -0
  33. package/dist/engine/llm-providers/cost-tracker.d.ts.map +1 -1
  34. package/dist/engine/llm-providers/cost-tracker.js +1 -0
  35. package/dist/engine/llm-providers/cost-tracker.js.map +1 -1
  36. package/dist/engine/llm-providers/load-balancer.d.ts.map +1 -1
  37. package/dist/engine/llm-providers/load-balancer.js +3 -0
  38. package/dist/engine/llm-providers/load-balancer.js.map +1 -1
  39. package/dist/engine/plugins/extensions/tool-extension.d.ts.map +1 -1
  40. package/dist/engine/plugins/extensions/tool-extension.js +1 -0
  41. package/dist/engine/plugins/extensions/tool-extension.js.map +1 -1
  42. package/dist/engine/plugins/lifecycle.d.ts.map +1 -1
  43. package/dist/engine/plugins/lifecycle.js +3 -4
  44. package/dist/engine/plugins/lifecycle.js.map +1 -1
  45. package/dist/engine/plugins/loader.d.ts.map +1 -1
  46. package/dist/engine/plugins/loader.js +3 -0
  47. package/dist/engine/plugins/loader.js.map +1 -1
  48. package/dist/engine/plugins/sandbox.d.ts.map +1 -1
  49. package/dist/engine/plugins/sandbox.js +3 -3
  50. package/dist/engine/plugins/sandbox.js.map +1 -1
  51. package/dist/engine/registry-updater.d.ts.map +1 -1
  52. package/dist/engine/registry-updater.js +3 -3
  53. package/dist/engine/registry-updater.js.map +1 -1
  54. package/dist/engine/safety/health-monitor.d.ts.map +1 -1
  55. package/dist/engine/safety/health-monitor.js +3 -0
  56. package/dist/engine/safety/health-monitor.js.map +1 -1
  57. package/dist/engine/safety/transaction.d.ts.map +1 -1
  58. package/dist/engine/safety/transaction.js +3 -0
  59. package/dist/engine/safety/transaction.js.map +1 -1
  60. package/dist/engine/source-resolver.d.ts +38 -0
  61. package/dist/engine/source-resolver.d.ts.map +1 -0
  62. package/dist/engine/source-resolver.js +179 -0
  63. package/dist/engine/source-resolver.js.map +1 -0
  64. package/dist/engine/spec-dependency-graph.d.ts +33 -0
  65. package/dist/engine/spec-dependency-graph.d.ts.map +1 -0
  66. package/dist/engine/spec-dependency-graph.js +243 -0
  67. package/dist/engine/spec-dependency-graph.js.map +1 -0
  68. package/dist/engine/spec-templates/custom-loader.d.ts.map +1 -1
  69. package/dist/engine/spec-templates/custom-loader.js +1 -0
  70. package/dist/engine/spec-templates/custom-loader.js.map +1 -1
  71. package/dist/i18n/index.d.ts +1 -1
  72. package/dist/i18n/index.d.ts.map +1 -1
  73. package/dist/i18n/index.js +1 -35
  74. package/dist/i18n/index.js.map +1 -1
  75. package/dist/index.js +6 -4
  76. package/dist/index.js.map +1 -1
  77. package/dist/prompts/index.d.ts +6 -0
  78. package/dist/prompts/index.d.ts.map +1 -0
  79. package/dist/prompts/index.js +121 -0
  80. package/dist/prompts/index.js.map +1 -0
  81. package/dist/resources/specs.d.ts.map +1 -1
  82. package/dist/resources/specs.js +11 -6
  83. package/dist/resources/specs.js.map +1 -1
  84. package/dist/storage/checkpoint-store.d.ts.map +1 -1
  85. package/dist/storage/checkpoint-store.js +3 -2
  86. package/dist/storage/checkpoint-store.js.map +1 -1
  87. package/dist/storage/file-mutex.d.ts +14 -0
  88. package/dist/storage/file-mutex.d.ts.map +1 -0
  89. package/dist/storage/file-mutex.js +39 -0
  90. package/dist/storage/file-mutex.js.map +1 -0
  91. package/dist/storage/spec-store.d.ts.map +1 -1
  92. package/dist/storage/spec-store.js +48 -39
  93. package/dist/storage/spec-store.js.map +1 -1
  94. package/dist/tools/activate-license.d.ts.map +1 -1
  95. package/dist/tools/activate-license.js +27 -18
  96. package/dist/tools/activate-license.js.map +1 -1
  97. package/dist/tools/analyze-spec-dependencies.d.ts +6 -0
  98. package/dist/tools/analyze-spec-dependencies.d.ts.map +1 -0
  99. package/dist/tools/analyze-spec-dependencies.js +72 -0
  100. package/dist/tools/analyze-spec-dependencies.js.map +1 -0
  101. package/dist/tools/check-readiness.d.ts.map +1 -1
  102. package/dist/tools/check-readiness.js +8 -0
  103. package/dist/tools/check-readiness.js.map +1 -1
  104. package/dist/tools/configure-llm-providers-handler.d.ts.map +1 -1
  105. package/dist/tools/configure-llm-providers-handler.js +25 -18
  106. package/dist/tools/configure-llm-providers-handler.js.map +1 -1
  107. package/dist/tools/context-budget.d.ts.map +1 -1
  108. package/dist/tools/context-budget.js +41 -14
  109. package/dist/tools/context-budget.js.map +1 -1
  110. package/dist/tools/create-spec/spec-builder.d.ts.map +1 -1
  111. package/dist/tools/create-spec/spec-builder.js +3 -2
  112. package/dist/tools/create-spec/spec-builder.js.map +1 -1
  113. package/dist/tools/delete-project.d.ts.map +1 -1
  114. package/dist/tools/delete-project.js +4 -3
  115. package/dist/tools/delete-project.js.map +1 -1
  116. package/dist/tools/delete-spec.d.ts.map +1 -1
  117. package/dist/tools/delete-spec.js +4 -3
  118. package/dist/tools/delete-spec.js.map +1 -1
  119. package/dist/tools/estimate.d.ts.map +1 -1
  120. package/dist/tools/estimate.js +1 -0
  121. package/dist/tools/estimate.js.map +1 -1
  122. package/dist/tools/event-contracts/handlers.d.ts.map +1 -1
  123. package/dist/tools/event-contracts/handlers.js +5 -7
  124. package/dist/tools/event-contracts/handlers.js.map +1 -1
  125. package/dist/tools/export-spec.js +1 -1
  126. package/dist/tools/export-spec.js.map +1 -1
  127. package/dist/tools/license-status.d.ts.map +1 -1
  128. package/dist/tools/license-status.js +33 -1
  129. package/dist/tools/license-status.js.map +1 -1
  130. package/dist/tools/list-specs.d.ts.map +1 -1
  131. package/dist/tools/list-specs.js +1 -0
  132. package/dist/tools/list-specs.js.map +1 -1
  133. package/dist/tools/llm-provider-status-handler.d.ts.map +1 -1
  134. package/dist/tools/llm-provider-status-handler.js +13 -8
  135. package/dist/tools/llm-provider-status-handler.js.map +1 -1
  136. package/dist/tools/manage-context/store.d.ts.map +1 -1
  137. package/dist/tools/manage-context/store.js +4 -5
  138. package/dist/tools/manage-context/store.js.map +1 -1
  139. package/dist/tools/manage-plugins-handler.d.ts.map +1 -1
  140. package/dist/tools/manage-plugins-handler.js +38 -12
  141. package/dist/tools/manage-plugins-handler.js.map +1 -1
  142. package/dist/tools/manage-trash.d.ts.map +1 -1
  143. package/dist/tools/manage-trash.js +9 -5
  144. package/dist/tools/manage-trash.js.map +1 -1
  145. package/dist/tools/reconcile-spec.d.ts.map +1 -1
  146. package/dist/tools/reconcile-spec.js +11 -1
  147. package/dist/tools/reconcile-spec.js.map +1 -1
  148. package/dist/tools/register-context-tools.d.ts.map +1 -1
  149. package/dist/tools/register-context-tools.js +2 -0
  150. package/dist/tools/register-context-tools.js.map +1 -1
  151. package/dist/tools/register-event-tools.d.ts.map +1 -1
  152. package/dist/tools/register-event-tools.js +1 -0
  153. package/dist/tools/register-event-tools.js.map +1 -1
  154. package/dist/tools/register-export-tools.d.ts.map +1 -1
  155. package/dist/tools/register-export-tools.js +1 -0
  156. package/dist/tools/register-export-tools.js.map +1 -1
  157. package/dist/tools/register-governance-tools.d.ts.map +1 -1
  158. package/dist/tools/register-governance-tools.js +1 -0
  159. package/dist/tools/register-governance-tools.js.map +1 -1
  160. package/dist/tools/register-learning-tools.d.ts.map +1 -1
  161. package/dist/tools/register-learning-tools.js +1 -0
  162. package/dist/tools/register-learning-tools.js.map +1 -1
  163. package/dist/tools/register-license-tools.d.ts.map +1 -1
  164. package/dist/tools/register-license-tools.js +2 -0
  165. package/dist/tools/register-license-tools.js.map +1 -1
  166. package/dist/tools/register-memory-tools.d.ts.map +1 -1
  167. package/dist/tools/register-memory-tools.js +2 -0
  168. package/dist/tools/register-memory-tools.js.map +1 -1
  169. package/dist/tools/register-migration-tools.d.ts.map +1 -1
  170. package/dist/tools/register-migration-tools.js +1 -0
  171. package/dist/tools/register-migration-tools.js.map +1 -1
  172. package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -1
  173. package/dist/tools/register-platform-tools/design-stack-tools.js +12 -0
  174. package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -1
  175. package/dist/tools/register-platform-tools/lifecycle-infra-tools.d.ts.map +1 -1
  176. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +7 -0
  177. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js.map +1 -1
  178. package/dist/tools/register-readiness-tools.d.ts.map +1 -1
  179. package/dist/tools/register-readiness-tools.js +2 -0
  180. package/dist/tools/register-readiness-tools.js.map +1 -1
  181. package/dist/tools/register-security-tools.d.ts.map +1 -1
  182. package/dist/tools/register-security-tools.js +1 -0
  183. package/dist/tools/register-security-tools.js.map +1 -1
  184. package/dist/tools/register-spec-tools/analysis-tools.d.ts.map +1 -1
  185. package/dist/tools/register-spec-tools/analysis-tools.js +18 -0
  186. package/dist/tools/register-spec-tools/analysis-tools.js.map +1 -1
  187. package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
  188. package/dist/tools/register-spec-tools/core-spec-tools.js +4 -1
  189. package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
  190. package/dist/tools/register-stack-tools.d.ts.map +1 -1
  191. package/dist/tools/register-stack-tools.js +3 -0
  192. package/dist/tools/register-stack-tools.js.map +1 -1
  193. package/dist/tools/safe-handler.d.ts +2 -1
  194. package/dist/tools/safe-handler.d.ts.map +1 -1
  195. package/dist/tools/safe-handler.js +51 -3
  196. package/dist/tools/safe-handler.js.map +1 -1
  197. package/dist/tools/sanitize-path.d.ts +13 -0
  198. package/dist/tools/sanitize-path.d.ts.map +1 -0
  199. package/dist/tools/sanitize-path.js +60 -0
  200. package/dist/tools/sanitize-path.js.map +1 -0
  201. package/dist/tools/schemas/index.d.ts +1 -0
  202. package/dist/tools/schemas/index.d.ts.map +1 -1
  203. package/dist/tools/schemas/index.js +1 -0
  204. package/dist/tools/schemas/index.js.map +1 -1
  205. package/dist/tools/schemas/output-schemas.d.ts +168 -0
  206. package/dist/tools/schemas/output-schemas.d.ts.map +1 -0
  207. package/dist/tools/schemas/output-schemas.js +182 -0
  208. package/dist/tools/schemas/output-schemas.js.map +1 -0
  209. package/dist/tools/schemas/spec.d.ts.map +1 -1
  210. package/dist/tools/schemas/spec.js +9 -1
  211. package/dist/tools/schemas/spec.js.map +1 -1
  212. package/dist/tools/spec-templates.d.ts.map +1 -1
  213. package/dist/tools/spec-templates.js +36 -26
  214. package/dist/tools/spec-templates.js.map +1 -1
  215. package/dist/tools/suggest-tooling/catalog-loader.d.ts.map +1 -1
  216. package/dist/tools/suggest-tooling/catalog-loader.js +1 -0
  217. package/dist/tools/suggest-tooling/catalog-loader.js.map +1 -1
  218. package/dist/tools/tool-group-handler.d.ts.map +1 -1
  219. package/dist/tools/tool-group-handler.js +16 -13
  220. package/dist/tools/tool-group-handler.js.map +1 -1
  221. package/dist/tools/tool-registry.d.ts +14 -0
  222. package/dist/tools/tool-registry.d.ts.map +1 -0
  223. package/dist/tools/tool-registry.js +36 -0
  224. package/dist/tools/tool-registry.js.map +1 -0
  225. package/dist/tools/update-status-actions.d.ts +6 -0
  226. package/dist/tools/update-status-actions.d.ts.map +1 -1
  227. package/dist/tools/update-status-actions.js +19 -2
  228. package/dist/tools/update-status-actions.js.map +1 -1
  229. package/dist/tools/update-status.d.ts.map +1 -1
  230. package/dist/tools/update-status.js +6 -1
  231. package/dist/tools/update-status.js.map +1 -1
  232. package/dist/tools/validate.d.ts.map +1 -1
  233. package/dist/tools/validate.js +1 -0
  234. package/dist/tools/validate.js.map +1 -1
  235. package/dist/transports/http-rate-limiter.d.ts +22 -0
  236. package/dist/transports/http-rate-limiter.d.ts.map +1 -0
  237. package/dist/transports/http-rate-limiter.js +42 -0
  238. package/dist/transports/http-rate-limiter.js.map +1 -0
  239. package/dist/transports/http-transport.d.ts.map +1 -1
  240. package/dist/transports/http-transport.js +21 -1
  241. package/dist/transports/http-transport.js.map +1 -1
  242. package/dist/types/actuals-tracking.d.ts +9 -1
  243. package/dist/types/actuals-tracking.d.ts.map +1 -1
  244. package/dist/types/common/primitives.d.ts +1 -0
  245. package/dist/types/common/primitives.d.ts.map +1 -1
  246. package/dist/types/index.d.ts +1 -0
  247. package/dist/types/index.d.ts.map +1 -1
  248. package/dist/types/index.js +1 -0
  249. package/dist/types/index.js.map +1 -1
  250. package/dist/types/source-resolution.d.ts +49 -0
  251. package/dist/types/source-resolution.d.ts.map +1 -0
  252. package/dist/types/source-resolution.js +10 -0
  253. package/dist/types/source-resolution.js.map +1 -0
  254. package/dist/types/spec/core.d.ts +48 -0
  255. package/dist/types/spec/core.d.ts.map +1 -1
  256. package/dist/types/spec/inputs.d.ts +1 -0
  257. package/dist/types/spec/inputs.d.ts.map +1 -1
  258. package/package.json +1 -1
  259. package/src/config/license-plans.json +2 -1
  260. package/src/i18n/messages/en.json +177 -4
  261. package/src/i18n/messages/es.json +177 -4
  262. package/src/i18n/messages/pt.json +177 -4
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { t } from '../../i18n/index.js';
3
3
  import { safeTracked, safeLicensed } from '../safe-handler.js';
4
- import { SupportedLocaleEnum, SpecStatusEnum, SpecTypeEnum, SpecScopeEnum, SpecTargetEnum, ExperienceLevelEnum, } from '../schemas/index.js';
4
+ import { SupportedLocaleEnum, SpecStatusEnum, SpecTypeEnum, SpecScopeEnum, SpecTargetEnum, ExperienceLevelEnum, ListSpecsOutputSchema, EstimateOutputSchema, ValidateOutputSchema, } from '../schemas/index.js';
5
5
  import { handleSetLocale } from '../set-locale.js';
6
6
  import { handleInitProject } from '../init-project.js';
7
7
  import { handleInitConstitution } from '../init-constitution.js';
@@ -123,6 +123,7 @@ export function registerCoreSpecTools(server) {
123
123
  status: SpecStatusEnum.optional().describe('Filter by spec status'),
124
124
  type: SpecTypeEnum.optional().describe('Filter by spec type'),
125
125
  },
126
+ outputSchema: ListSpecsOutputSchema,
126
127
  }, safeTracked('list_specs', async (args) => handleListSpecs(args)));
127
128
  // 7. update_status
128
129
  server.registerTool('update_status', {
@@ -159,6 +160,7 @@ export function registerCoreSpecTools(server) {
159
160
  specId: z.string().max(500).describe('Spec ID to estimate'),
160
161
  projectId: z.string().max(500).describe('Project ID'),
161
162
  },
163
+ outputSchema: EstimateOutputSchema,
162
164
  }, safeTracked('estimate', async (args) => handleEstimate(args)));
163
165
  // 9. reverse_engineer
164
166
  server.registerTool('reverse_engineer', {
@@ -179,6 +181,7 @@ export function registerCoreSpecTools(server) {
179
181
  specId: z.string().max(500).describe('Spec ID to validate'),
180
182
  projectId: z.string().max(500).describe('Project ID'),
181
183
  },
184
+ outputSchema: ValidateOutputSchema,
182
185
  }, safeTracked('validate', async (args) => handleValidate(args)));
183
186
  }
184
187
  //# sourceMappingURL=core-spec-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-spec-tools.js","sourceRoot":"","sources":["../../../src/tools/register-spec-tools/core-spec-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-spec-tools.js","sourceRoot":"","sources":["../../../src/tools/register-spec-tools/core-spec-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-stack-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-stack-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiF1D"}
1
+ {"version":3,"file":"register-stack-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-stack-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoF1D"}
@@ -7,6 +7,7 @@ export function registerStackTools(server) {
7
7
  // audit_stack — SPEC-041
8
8
  server.registerTool('audit_stack', {
9
9
  description: 'Audit all project dependencies, classify as up_to_date/outdated/vulnerable/unmaintained, and generate a StackHealthScore (0-100).',
10
+ annotations: { readOnlyHint: true },
10
11
  inputSchema: {
11
12
  projectId: z.string().max(500).describe('Project ID'),
12
13
  projectPath: z.string().max(4096).describe('Absolute path to the project root'),
@@ -29,6 +30,7 @@ export function registerStackTools(server) {
29
30
  // plan_upgrade — SPEC-041
30
31
  server.registerTool('plan_upgrade', {
31
32
  description: 'Generate a migration plan for upgrading a specific package, including breaking changes, estimated effort, and rollback procedure.',
33
+ annotations: { readOnlyHint: true },
32
34
  inputSchema: {
33
35
  projectId: z.string().max(500).describe('Project ID'),
34
36
  projectPath: z.string().max(4096).describe('Absolute path to the project root'),
@@ -52,6 +54,7 @@ export function registerStackTools(server) {
52
54
  // detect_deprecations — SPEC-041
53
55
  server.registerTool('detect_deprecations', {
54
56
  description: 'Scan project source files for deprecated API patterns (pattern-based, no network). Returns a deprecation report with tech-debt estimate.',
57
+ annotations: { readOnlyHint: true },
55
58
  inputSchema: {
56
59
  projectId: z.string().max(500).describe('Project ID'),
57
60
  projectPath: z.string().max(4096).describe('Absolute path to the project root'),
@@ -1 +1 @@
1
- {"version":3,"file":"register-stack-tools.js","sourceRoot":"","sources":["../../src/tools/register-stack-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-stack-tools.js","sourceRoot":"","sources":["../../src/tools/register-stack-tools.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { ToolResult } from '../types/index.js';
2
2
  /**
3
3
  * Wraps a tool handler so that any unhandled error is caught and returned as a
4
- * graceful MCP error response, preventing server crashes.
4
+ * graceful MCP error response, preventing server crashes. Also enforces a
5
+ * configurable execution timeout (default 60s, env PLANU_TOOL_TIMEOUT_MS).
5
6
  *
6
7
  * Usage — only for alwaysAllowed tools (activate_license, license_status, etc.):
7
8
  * server.registerTool('my_tool', schema, safe(async (args) => { ... }));
@@ -1 +1 @@
1
- {"version":3,"file":"safe-handler.d.ts","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAYlC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC"}
1
+ {"version":3,"file":"safe-handler.d.ts","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAqDpD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAalC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACxC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAElC"}
@@ -1,10 +1,57 @@
1
1
  // tools/safe-handler.ts — Generic error-boundary wrapper for MCP tool handlers.
2
2
  // Catches any unhandled error and returns a graceful MCP error response
3
- // instead of crashing the server.
3
+ // instead of crashing the server. Includes execution timeout via Promise.race.
4
4
  import { withLicenseGate, withUsageTracking } from './license-gate.js';
5
+ import { sanitizePath } from './sanitize-path.js';
6
+ /**
7
+ * Sanitizes path-like fields in tool args before passing to handler.
8
+ * Checks `projectPath` and `path` fields for directory traversal attacks.
9
+ */
10
+ function sanitizeArgs(args) {
11
+ if (args === null || typeof args !== 'object') {
12
+ return args;
13
+ }
14
+ const obj = args;
15
+ if (typeof obj.projectPath === 'string') {
16
+ obj.projectPath = sanitizePath(obj.projectPath);
17
+ }
18
+ if (typeof obj.path === 'string') {
19
+ obj.path = sanitizePath(obj.path);
20
+ }
21
+ return args;
22
+ }
23
+ /** Default timeout: 60 seconds. Override via PLANU_TOOL_TIMEOUT_MS env var. */
24
+ const DEFAULT_TIMEOUT_MS = 60_000;
25
+ function getTimeoutMs() {
26
+ const envVal = process.env.PLANU_TOOL_TIMEOUT_MS;
27
+ if (envVal === undefined || envVal === '') {
28
+ return DEFAULT_TIMEOUT_MS;
29
+ }
30
+ const parsed = Number(envVal);
31
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_TIMEOUT_MS;
32
+ }
33
+ /**
34
+ * Races a handler promise against a timeout. Returns a timeout error ToolResult
35
+ * if the handler exceeds the configured duration.
36
+ */
37
+ async function withTimeout(fn, ms) {
38
+ let timer;
39
+ const timeoutPromise = new Promise((_resolve, reject) => {
40
+ timer = setTimeout(() => {
41
+ reject(new Error(`Tool execution timed out after ${ms}ms`));
42
+ }, ms);
43
+ });
44
+ try {
45
+ return await Promise.race([fn(), timeoutPromise]);
46
+ }
47
+ finally {
48
+ clearTimeout(timer);
49
+ }
50
+ }
5
51
  /**
6
52
  * Wraps a tool handler so that any unhandled error is caught and returned as a
7
- * graceful MCP error response, preventing server crashes.
53
+ * graceful MCP error response, preventing server crashes. Also enforces a
54
+ * configurable execution timeout (default 60s, env PLANU_TOOL_TIMEOUT_MS).
8
55
  *
9
56
  * Usage — only for alwaysAllowed tools (activate_license, license_status, etc.):
10
57
  * server.registerTool('my_tool', schema, safe(async (args) => { ... }));
@@ -12,7 +59,8 @@ import { withLicenseGate, withUsageTracking } from './license-gate.js';
12
59
  export function safe(handler) {
13
60
  return async (args) => {
14
61
  try {
15
- return await handler(args);
62
+ const safeArgs = sanitizeArgs(args);
63
+ return await withTimeout(() => handler(safeArgs), getTimeoutMs());
16
64
  }
17
65
  catch (error) {
18
66
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"safe-handler.js","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wEAAwE;AACxE,kCAAkC;AAGlC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAClB,OAAyC;IAEzC,OAAO,KAAK,EAAE,IAAO,EAAuB,EAAE;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,OAAyC;IAEzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,OAAyC;IAEzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"safe-handler.js","sourceRoot":"","sources":["../../src/tools/safe-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Sanitizes an input path to prevent directory traversal attacks.
3
+ *
4
+ * - Normalizes and resolves the path to an absolute form
5
+ * - Rejects paths that still contain ".." after resolution
6
+ * - Rejects paths outside allowed directories (home, /tmp, cwd)
7
+ *
8
+ * @param inputPath - The untrusted path from an MCP client
9
+ * @returns The resolved, validated absolute path
10
+ * @throws Error if the path is unsafe or outside allowed directories
11
+ */
12
+ export declare function sanitizePath(inputPath: string): string;
13
+ //# sourceMappingURL=sanitize-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-path.d.ts","sourceRoot":"","sources":["../../src/tools/sanitize-path.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBtD"}
@@ -0,0 +1,60 @@
1
+ // tools/sanitize-path.ts — Path sanitization to prevent directory traversal attacks.
2
+ // Validates that resolved paths fall within allowed directory prefixes.
3
+ import { resolve, normalize } from 'node:path';
4
+ import { homedir, tmpdir } from 'node:os';
5
+ import { realpathSync } from 'node:fs';
6
+ /**
7
+ * Returns the list of allowed directory prefixes.
8
+ * Paths must start with one of these to be considered safe.
9
+ * Uses os.tmpdir() to handle macOS symlinks (/var/folders/... vs /tmp).
10
+ */
11
+ function getSafePrefixes() {
12
+ const prefixes = [homedir(), process.cwd()];
13
+ // Add both the logical and resolved tmpdir (macOS: /tmp → /private/tmp, tmpdir() → /var/folders/...)
14
+ try {
15
+ const tmp = tmpdir();
16
+ prefixes.push(tmp);
17
+ prefixes.push(realpathSync(tmp));
18
+ }
19
+ catch {
20
+ prefixes.push('/tmp');
21
+ }
22
+ // Always include /tmp (symlink to /private/tmp on macOS) and its realpath
23
+ prefixes.push('/tmp');
24
+ try {
25
+ prefixes.push(realpathSync('/tmp'));
26
+ }
27
+ catch {
28
+ // ignore if /tmp doesn't exist
29
+ }
30
+ return [...new Set(prefixes)];
31
+ }
32
+ /**
33
+ * Sanitizes an input path to prevent directory traversal attacks.
34
+ *
35
+ * - Normalizes and resolves the path to an absolute form
36
+ * - Rejects paths that still contain ".." after resolution
37
+ * - Rejects paths outside allowed directories (home, /tmp, cwd)
38
+ *
39
+ * @param inputPath - The untrusted path from an MCP client
40
+ * @returns The resolved, validated absolute path
41
+ * @throws Error if the path is unsafe or outside allowed directories
42
+ */
43
+ export function sanitizePath(inputPath) {
44
+ if (!inputPath || inputPath.trim() === '') {
45
+ throw new Error('Path must not be empty');
46
+ }
47
+ const resolved = resolve(normalize(inputPath));
48
+ // After resolve(), ".." segments should be eliminated on valid filesystems.
49
+ // If they persist, something is wrong.
50
+ if (resolved.includes('..')) {
51
+ throw new Error(`Unsafe path: resolved path still contains ".." segments: ${resolved}`);
52
+ }
53
+ const safePrefixes = getSafePrefixes();
54
+ const isSafe = safePrefixes.some((prefix) => resolved.startsWith(prefix));
55
+ if (!isSafe) {
56
+ throw new Error(`Path outside allowed directories: ${resolved}. Allowed prefixes: ${safePrefixes.join(', ')}`);
57
+ }
58
+ return resolved;
59
+ }
60
+ //# sourceMappingURL=sanitize-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-path.js","sourceRoot":"","sources":["../../src/tools/sanitize-path.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wEAAwE;AAExE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,qGAAqG;IACrG,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,uCAAuC;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,4DAA4D,QAAQ,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -12,5 +12,6 @@ export { WorkerStatusInputSchema, ConfigureWorkersInputSchema } from './workers-
12
12
  export { TokenUsagePeriodEnum, TokenUsageGroupByEnum } from './token-optimization.js';
13
13
  export { ConfigureLLMProvidersActionEnum, LoadBalancingStrategyEnum, } from './llm-provider-schemas.js';
14
14
  export { PluginActionEnum } from './plugins-schemas.js';
15
+ export { ListSpecsOutputSchema, EstimateOutputSchema, ValidateOutputSchema, CheckReadinessOutputSchema, LicenseStatusOutputSchema, } from './output-schemas.js';
15
16
  export { CreatePRFromSpecSchema, PRStatusSchema, ReviewPRSchema, CreateReleaseSchema, GenerateChangelogSchema, } from './github.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -13,5 +13,6 @@ export { WorkerStatusInputSchema, ConfigureWorkersInputSchema } from './workers-
13
13
  export { TokenUsagePeriodEnum, TokenUsageGroupByEnum } from './token-optimization.js';
14
14
  export { ConfigureLLMProvidersActionEnum, LoadBalancingStrategyEnum, } from './llm-provider-schemas.js';
15
15
  export { PluginActionEnum } from './plugins-schemas.js';
16
+ export { ListSpecsOutputSchema, EstimateOutputSchema, ValidateOutputSchema, CheckReadinessOutputSchema, LicenseStatusOutputSchema, } from './output-schemas.js';
16
17
  export { CreatePRFromSpecSchema, PRStatusSchema, ReviewPRSchema, CreateReleaseSchema, GenerateChangelogSchema, } from './github.js';
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { z } from 'zod';
2
+ export declare const ListSpecsOutputSchema: {
3
+ projectId: z.ZodString;
4
+ filters: z.ZodObject<{
5
+ status: z.ZodString;
6
+ type: z.ZodString;
7
+ }, z.core.$strip>;
8
+ count: z.ZodNumber;
9
+ totalCount: z.ZodNumber;
10
+ specs: z.ZodArray<z.ZodObject<{
11
+ id: z.ZodString;
12
+ title: z.ZodString;
13
+ type: z.ZodString;
14
+ scope: z.ZodString;
15
+ status: z.ZodString;
16
+ difficulty: z.ZodString;
17
+ risk: z.ZodString;
18
+ target: z.ZodString;
19
+ tags: z.ZodArray<z.ZodString>;
20
+ gitBranch: z.ZodOptional<z.ZodString>;
21
+ estimation: z.ZodObject<{
22
+ devHours: z.ZodNumber;
23
+ totalCostUsd: z.ZodNumber;
24
+ }, z.core.$strip>;
25
+ createdAt: z.ZodString;
26
+ updatedAt: z.ZodString;
27
+ lastModified: z.ZodString;
28
+ }, z.core.$strip>>;
29
+ summary: z.ZodObject<{
30
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
31
+ byType: z.ZodRecord<z.ZodString, z.ZodNumber>;
32
+ totalDevHours: z.ZodNumber;
33
+ totalReviewHours: z.ZodNumber;
34
+ totalCostUsd: z.ZodNumber;
35
+ }, z.core.$strip>;
36
+ teamSuggestion: z.ZodNullable<z.ZodObject<{
37
+ recommended: z.ZodBoolean;
38
+ reason: z.ZodString;
39
+ templateId: z.ZodString;
40
+ teamSize: z.ZodNumber;
41
+ specs: z.ZodArray<z.ZodString>;
42
+ toolCalls: z.ZodArray<z.ZodString>;
43
+ }, z.core.$strip>>;
44
+ message: z.ZodString;
45
+ };
46
+ export declare const EstimateOutputSchema: {
47
+ specId: z.ZodString;
48
+ difficulty: z.ZodString;
49
+ confidence: z.ZodString;
50
+ estimation: z.ZodObject<{
51
+ devHours: z.ZodNumber;
52
+ reviewHours: z.ZodNumber;
53
+ totalHours: z.ZodNumber;
54
+ recommendedModel: z.ZodString;
55
+ tokensOpus: z.ZodNumber;
56
+ tokensSonnet: z.ZodNumber;
57
+ apiCostUsd: z.ZodNumber;
58
+ humanCostUsd: z.ZodNumber;
59
+ totalCostUsd: z.ZodNumber;
60
+ tokenOptimization: z.ZodObject<{
61
+ estimatedSavings: z.ZodNumber;
62
+ suggestions: z.ZodArray<z.ZodString>;
63
+ }, z.core.$strip>;
64
+ }, z.core.$strip>;
65
+ tokenStrategy: z.ZodObject<{
66
+ operationMode: z.ZodString;
67
+ suggestedAiModel: z.ZodString;
68
+ modelRationale: z.ZodString;
69
+ }, z.core.$strip>;
70
+ reasoning: z.ZodArray<z.ZodString>;
71
+ similarSpecs: z.ZodArray<z.ZodObject<{
72
+ specId: z.ZodString;
73
+ similarity: z.ZodNumber;
74
+ }, z.core.$strip>>;
75
+ historyUsed: z.ZodBoolean;
76
+ };
77
+ export declare const ValidateOutputSchema: {
78
+ specId: z.ZodString;
79
+ title: z.ZodString;
80
+ score: z.ZodNumber;
81
+ fieldsImplemented: z.ZodNumber;
82
+ fieldsTotal: z.ZodNumber;
83
+ matches: z.ZodArray<z.ZodString>;
84
+ missing: z.ZodArray<z.ZodString>;
85
+ extra: z.ZodArray<z.ZodString>;
86
+ qualityIssues: z.ZodArray<z.ZodObject<{
87
+ file: z.ZodString;
88
+ line: z.ZodNumber;
89
+ severity: z.ZodString;
90
+ rule: z.ZodString;
91
+ message: z.ZodString;
92
+ suggestion: z.ZodOptional<z.ZodString>;
93
+ }, z.core.$strip>>;
94
+ implementationQualityScore: z.ZodObject<{
95
+ overall: z.ZodNumber;
96
+ gradeLetter: z.ZodString;
97
+ filesAudited: z.ZodNumber;
98
+ categories: z.ZodArray<z.ZodObject<{
99
+ category: z.ZodString;
100
+ score: z.ZodNumber;
101
+ weight: z.ZodNumber;
102
+ issueCount: z.ZodNumber;
103
+ worstSeverity: z.ZodString;
104
+ }, z.core.$strip>>;
105
+ }, z.core.$strip>;
106
+ definitionOfReady: z.ZodObject<{
107
+ isReady: z.ZodBoolean;
108
+ passed: z.ZodNumber;
109
+ required: z.ZodNumber;
110
+ items: z.ZodArray<z.ZodObject<{
111
+ id: z.ZodString;
112
+ description: z.ZodString;
113
+ status: z.ZodString;
114
+ }, z.core.$strip>>;
115
+ }, z.core.$strip>;
116
+ definitionOfDone: z.ZodObject<{
117
+ isDone: z.ZodBoolean;
118
+ passed: z.ZodNumber;
119
+ required: z.ZodNumber;
120
+ items: z.ZodArray<z.ZodObject<{
121
+ id: z.ZodString;
122
+ description: z.ZodString;
123
+ status: z.ZodString;
124
+ }, z.core.$strip>>;
125
+ }, z.core.$strip>;
126
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
127
+ };
128
+ export declare const CheckReadinessOutputSchema: {
129
+ specId: z.ZodString;
130
+ score: z.ZodNumber;
131
+ ready: z.ZodBoolean;
132
+ mode: z.ZodString;
133
+ issues: z.ZodObject<{
134
+ blockers: z.ZodArray<z.ZodString>;
135
+ warnings: z.ZodArray<z.ZodString>;
136
+ breakdown: z.ZodObject<{
137
+ hu: z.ZodOptional<z.ZodNumber>;
138
+ criteria: z.ZodOptional<z.ZodNumber>;
139
+ files: z.ZodOptional<z.ZodNumber>;
140
+ dependencies: z.ZodOptional<z.ZodNumber>;
141
+ }, z.core.$strip>;
142
+ }, z.core.$strip>;
143
+ recommendations: z.ZodArray<z.ZodString>;
144
+ };
145
+ export declare const LicenseStatusOutputSchema: {
146
+ version: z.ZodString;
147
+ plan: z.ZodString;
148
+ toolsAvailable: z.ZodNumber;
149
+ toolsTotal: z.ZodNumber;
150
+ limits: z.ZodObject<{
151
+ maxProjects: z.ZodNumber;
152
+ currentProjects: z.ZodNumber;
153
+ maxActiveSpecs: z.ZodNumber;
154
+ }, z.core.$strip>;
155
+ customer: z.ZodOptional<z.ZodObject<{
156
+ name: z.ZodString;
157
+ email: z.ZodString;
158
+ variant: z.ZodString;
159
+ activatedAt: z.ZodString;
160
+ lastValidatedAt: z.ZodString;
161
+ }, z.core.$strip>>;
162
+ activationSlots: z.ZodOptional<z.ZodObject<{
163
+ used: z.ZodNumber;
164
+ total: z.ZodNumber;
165
+ }, z.core.$strip>>;
166
+ upgradeUrl: z.ZodOptional<z.ZodString>;
167
+ };
168
+ //# sourceMappingURL=output-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/output-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CjC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgChC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DhC,CAAC;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAIF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;CA0BrC,CAAC"}