openplanr 0.9.0 → 1.0.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 (222) hide show
  1. package/README.md +142 -58
  2. package/dist/agents/index.d.ts +1 -5
  3. package/dist/agents/index.d.ts.map +1 -1
  4. package/dist/agents/index.js +1 -4
  5. package/dist/agents/index.js.map +1 -1
  6. package/dist/agents/task-parser.d.ts +4 -1
  7. package/dist/agents/task-parser.d.ts.map +1 -1
  8. package/dist/agents/task-parser.js +6 -3
  9. package/dist/agents/task-parser.js.map +1 -1
  10. package/dist/agents/utils.d.ts +0 -4
  11. package/dist/agents/utils.d.ts.map +1 -1
  12. package/dist/agents/utils.js +3 -24
  13. package/dist/agents/utils.js.map +1 -1
  14. package/dist/ai/codebase/context-builder.d.ts +22 -3
  15. package/dist/ai/codebase/context-builder.d.ts.map +1 -1
  16. package/dist/ai/codebase/context-builder.js +202 -14
  17. package/dist/ai/codebase/context-builder.js.map +1 -1
  18. package/dist/ai/codebase/file-reader.d.ts.map +1 -1
  19. package/dist/ai/codebase/file-reader.js +7 -3
  20. package/dist/ai/codebase/file-reader.js.map +1 -1
  21. package/dist/ai/codebase/index.d.ts +3 -1
  22. package/dist/ai/codebase/index.d.ts.map +1 -1
  23. package/dist/ai/codebase/index.js +3 -1
  24. package/dist/ai/codebase/index.js.map +1 -1
  25. package/dist/ai/codebase/pattern-rules.d.ts +28 -0
  26. package/dist/ai/codebase/pattern-rules.d.ts.map +1 -0
  27. package/dist/ai/codebase/pattern-rules.js +186 -0
  28. package/dist/ai/codebase/pattern-rules.js.map +1 -0
  29. package/dist/ai/codebase/rules-reader.d.ts +14 -0
  30. package/dist/ai/codebase/rules-reader.d.ts.map +1 -0
  31. package/dist/ai/codebase/rules-reader.js +25 -0
  32. package/dist/ai/codebase/rules-reader.js.map +1 -0
  33. package/dist/ai/codebase/stack-detector.d.ts.map +1 -1
  34. package/dist/ai/codebase/stack-detector.js +4 -1
  35. package/dist/ai/codebase/stack-detector.js.map +1 -1
  36. package/dist/ai/codebase/tree-generator.d.ts.map +1 -1
  37. package/dist/ai/codebase/tree-generator.js +5 -2
  38. package/dist/ai/codebase/tree-generator.js.map +1 -1
  39. package/dist/ai/errors.js +1 -1
  40. package/dist/ai/errors.js.map +1 -1
  41. package/dist/ai/prompts/prompt-builder.d.ts +12 -0
  42. package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
  43. package/dist/ai/prompts/prompt-builder.js +38 -3
  44. package/dist/ai/prompts/prompt-builder.js.map +1 -1
  45. package/dist/ai/prompts/system-prompts.d.ts +4 -2
  46. package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
  47. package/dist/ai/prompts/system-prompts.js +72 -12
  48. package/dist/ai/prompts/system-prompts.js.map +1 -1
  49. package/dist/ai/schemas/ai-response-schemas.d.ts +48 -2
  50. package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
  51. package/dist/ai/schemas/ai-response-schemas.js +19 -0
  52. package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
  53. package/dist/ai/types.d.ts +3 -1
  54. package/dist/ai/types.d.ts.map +1 -1
  55. package/dist/ai/types.js +2 -0
  56. package/dist/ai/types.js.map +1 -1
  57. package/dist/ai/validation/dependency-chains.d.ts +21 -0
  58. package/dist/ai/validation/dependency-chains.d.ts.map +1 -0
  59. package/dist/ai/validation/dependency-chains.js +114 -0
  60. package/dist/ai/validation/dependency-chains.js.map +1 -0
  61. package/dist/ai/validation/index.d.ts +3 -0
  62. package/dist/ai/validation/index.d.ts.map +1 -0
  63. package/dist/ai/validation/index.js +3 -0
  64. package/dist/ai/validation/index.js.map +1 -0
  65. package/dist/ai/validation/task-validator.d.ts +37 -0
  66. package/dist/ai/validation/task-validator.d.ts.map +1 -0
  67. package/dist/ai/validation/task-validator.js +89 -0
  68. package/dist/ai/validation/task-validator.js.map +1 -0
  69. package/dist/cli/commands/backlog.d.ts +10 -0
  70. package/dist/cli/commands/backlog.d.ts.map +1 -0
  71. package/dist/cli/commands/backlog.js +292 -0
  72. package/dist/cli/commands/backlog.js.map +1 -0
  73. package/dist/cli/commands/checklist.js +4 -4
  74. package/dist/cli/commands/checklist.js.map +1 -1
  75. package/dist/cli/commands/config.js +13 -13
  76. package/dist/cli/commands/config.js.map +1 -1
  77. package/dist/cli/commands/epic.d.ts.map +1 -1
  78. package/dist/cli/commands/epic.js +29 -23
  79. package/dist/cli/commands/epic.js.map +1 -1
  80. package/dist/cli/commands/estimate.d.ts.map +1 -1
  81. package/dist/cli/commands/estimate.js +40 -39
  82. package/dist/cli/commands/estimate.js.map +1 -1
  83. package/dist/cli/commands/export.js +6 -4
  84. package/dist/cli/commands/export.js.map +1 -1
  85. package/dist/cli/commands/feature.js +9 -9
  86. package/dist/cli/commands/feature.js.map +1 -1
  87. package/dist/cli/commands/github.d.ts.map +1 -1
  88. package/dist/cli/commands/github.js +30 -27
  89. package/dist/cli/commands/github.js.map +1 -1
  90. package/dist/cli/commands/plan.d.ts.map +1 -1
  91. package/dist/cli/commands/plan.js +27 -42
  92. package/dist/cli/commands/plan.js.map +1 -1
  93. package/dist/cli/commands/quick.d.ts.map +1 -1
  94. package/dist/cli/commands/quick.js +37 -107
  95. package/dist/cli/commands/quick.js.map +1 -1
  96. package/dist/cli/commands/refine.js +21 -21
  97. package/dist/cli/commands/refine.js.map +1 -1
  98. package/dist/cli/commands/search.d.ts.map +1 -1
  99. package/dist/cli/commands/search.js +18 -7
  100. package/dist/cli/commands/search.js.map +1 -1
  101. package/dist/cli/commands/sprint.d.ts +9 -0
  102. package/dist/cli/commands/sprint.d.ts.map +1 -0
  103. package/dist/cli/commands/sprint.js +519 -0
  104. package/dist/cli/commands/sprint.js.map +1 -0
  105. package/dist/cli/commands/status.d.ts.map +1 -1
  106. package/dist/cli/commands/status.js +77 -32
  107. package/dist/cli/commands/status.js.map +1 -1
  108. package/dist/cli/commands/story.js +15 -15
  109. package/dist/cli/commands/story.js.map +1 -1
  110. package/dist/cli/commands/sync.js +11 -7
  111. package/dist/cli/commands/sync.js.map +1 -1
  112. package/dist/cli/commands/task.d.ts +0 -2
  113. package/dist/cli/commands/task.d.ts.map +1 -1
  114. package/dist/cli/commands/task.js +14 -169
  115. package/dist/cli/commands/task.js.map +1 -1
  116. package/dist/cli/commands/template.d.ts +10 -0
  117. package/dist/cli/commands/template.d.ts.map +1 -0
  118. package/dist/cli/commands/template.js +269 -0
  119. package/dist/cli/commands/template.js.map +1 -0
  120. package/dist/cli/helpers/task-creation.d.ts +89 -0
  121. package/dist/cli/helpers/task-creation.d.ts.map +1 -0
  122. package/dist/cli/helpers/task-creation.js +140 -0
  123. package/dist/cli/helpers/task-creation.js.map +1 -0
  124. package/dist/cli/index.js +25 -2
  125. package/dist/cli/index.js.map +1 -1
  126. package/dist/models/schema.d.ts +2 -0
  127. package/dist/models/schema.d.ts.map +1 -1
  128. package/dist/models/schema.js +2 -0
  129. package/dist/models/schema.js.map +1 -1
  130. package/dist/models/types.d.ts +32 -1
  131. package/dist/models/types.d.ts.map +1 -1
  132. package/dist/services/artifact-gathering.d.ts +2 -0
  133. package/dist/services/artifact-gathering.d.ts.map +1 -1
  134. package/dist/services/artifact-gathering.js +26 -7
  135. package/dist/services/artifact-gathering.js.map +1 -1
  136. package/dist/services/artifact-service.d.ts +5 -5
  137. package/dist/services/artifact-service.d.ts.map +1 -1
  138. package/dist/services/artifact-service.js +4 -0
  139. package/dist/services/artifact-service.js.map +1 -1
  140. package/dist/services/config-service.d.ts.map +1 -1
  141. package/dist/services/config-service.js +2 -0
  142. package/dist/services/config-service.js.map +1 -1
  143. package/dist/services/credential-backends.d.ts.map +1 -1
  144. package/dist/services/credential-backends.js +15 -7
  145. package/dist/services/credential-backends.js.map +1 -1
  146. package/dist/services/credentials-service.d.ts.map +1 -1
  147. package/dist/services/credentials-service.js +6 -3
  148. package/dist/services/credentials-service.js.map +1 -1
  149. package/dist/services/github-service.d.ts +2 -2
  150. package/dist/services/github-service.d.ts.map +1 -1
  151. package/dist/services/github-service.js +9 -4
  152. package/dist/services/github-service.js.map +1 -1
  153. package/dist/services/template-service.d.ts +2 -1
  154. package/dist/services/template-service.d.ts.map +1 -1
  155. package/dist/services/template-service.js +2 -1
  156. package/dist/services/template-service.js.map +1 -1
  157. package/dist/templates/backlog/backlog-item.md.hbs +40 -0
  158. package/dist/templates/checklists/agile-checklist.md.hbs +1 -1
  159. package/dist/templates/quick/quick-task.md.hbs +1 -1
  160. package/dist/templates/rules/claude/CLAUDE.md.hbs +78 -35
  161. package/dist/templates/rules/codex/AGENTS.md.hbs +73 -17
  162. package/dist/templates/rules/cursor/2101-implement-task-list.mdc.hbs +66 -14
  163. package/dist/templates/sprints/sprint.md.hbs +42 -0
  164. package/dist/templates/task-templates/api-integration.json +45 -0
  165. package/dist/templates/task-templates/auth-flow.json +48 -0
  166. package/dist/templates/task-templates/database-migration.json +44 -0
  167. package/dist/templates/task-templates/react-component.json +45 -0
  168. package/dist/templates/task-templates/rest-endpoint.json +53 -0
  169. package/dist/templates/tasks/task-list.md.hbs +1 -1
  170. package/dist/utils/constants.d.ts +4 -0
  171. package/dist/utils/constants.d.ts.map +1 -1
  172. package/dist/utils/constants.js +4 -0
  173. package/dist/utils/constants.js.map +1 -1
  174. package/dist/utils/logger.d.ts +31 -1
  175. package/dist/utils/logger.d.ts.map +1 -1
  176. package/dist/utils/logger.js +92 -9
  177. package/dist/utils/logger.js.map +1 -1
  178. package/dist/utils/markdown.d.ts +3 -2
  179. package/dist/utils/markdown.d.ts.map +1 -1
  180. package/dist/utils/markdown.js +3 -1
  181. package/dist/utils/markdown.js.map +1 -1
  182. package/dist/utils/slugify.d.ts +8 -1
  183. package/dist/utils/slugify.d.ts.map +1 -1
  184. package/dist/utils/slugify.js +18 -2
  185. package/dist/utils/slugify.js.map +1 -1
  186. package/package.json +14 -3
  187. package/dist/agents/agent-factory.d.ts +0 -7
  188. package/dist/agents/agent-factory.d.ts.map +0 -1
  189. package/dist/agents/agent-factory.js +0 -22
  190. package/dist/agents/agent-factory.js.map +0 -1
  191. package/dist/agents/claude-agent.d.ts +0 -18
  192. package/dist/agents/claude-agent.d.ts.map +0 -1
  193. package/dist/agents/claude-agent.js +0 -183
  194. package/dist/agents/claude-agent.js.map +0 -1
  195. package/dist/agents/codex-agent.d.ts +0 -17
  196. package/dist/agents/codex-agent.d.ts.map +0 -1
  197. package/dist/agents/codex-agent.js +0 -124
  198. package/dist/agents/codex-agent.js.map +0 -1
  199. package/dist/agents/cursor-agent.d.ts +0 -14
  200. package/dist/agents/cursor-agent.d.ts.map +0 -1
  201. package/dist/agents/cursor-agent.js +0 -49
  202. package/dist/agents/cursor-agent.js.map +0 -1
  203. package/dist/agents/implementation-bridge.d.ts +0 -30
  204. package/dist/agents/implementation-bridge.d.ts.map +0 -1
  205. package/dist/agents/implementation-bridge.js +0 -256
  206. package/dist/agents/implementation-bridge.js.map +0 -1
  207. package/dist/agents/progress.d.ts +0 -62
  208. package/dist/agents/progress.d.ts.map +0 -1
  209. package/dist/agents/progress.js +0 -155
  210. package/dist/agents/progress.js.map +0 -1
  211. package/dist/agents/prompt-composer.d.ts +0 -30
  212. package/dist/agents/prompt-composer.d.ts.map +0 -1
  213. package/dist/agents/prompt-composer.js +0 -81
  214. package/dist/agents/prompt-composer.js.map +0 -1
  215. package/dist/agents/types.d.ts +0 -25
  216. package/dist/agents/types.d.ts.map +0 -1
  217. package/dist/agents/types.js +0 -8
  218. package/dist/agents/types.js.map +0 -1
  219. package/dist/utils/error-context.d.ts +0 -23
  220. package/dist/utils/error-context.d.ts.map +0 -1
  221. package/dist/utils/error-context.js +0 -94
  222. package/dist/utils/error-context.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ai-response-schemas.js","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-response-schemas.js","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export interface AIProviderConfig {
20
20
  baseUrl?: string;
21
21
  }
22
22
  export type AIProviderName = 'anthropic' | 'openai' | 'ollama';
23
- export type CodingAgentName = 'claude' | 'cursor' | 'codex';
23
+ export type { CodingAgentName } from '../models/types.js';
24
24
  /** Token usage returned by AI providers after a call. */
25
25
  export interface AIUsage {
26
26
  inputTokens: number;
@@ -44,6 +44,8 @@ export declare const TOKEN_BUDGETS: {
44
44
  /** Used by the `planr plan` pipeline for task generation per story. */
45
45
  readonly plan: 16384;
46
46
  readonly estimate: 4096;
47
+ readonly backlogPrioritize: 8192;
48
+ readonly sprintAutoSelect: 8192;
47
49
  };
48
50
  export interface AIProvider {
49
51
  readonly name: AIProviderName;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;IAOxB,uEAAuE;;;CAG/D,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/E;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E;;;OAGG;IACH,YAAY,IAAI,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAIhD,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;IAOxB,uEAAuE;;;;;CAK/D,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE/E;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E;;;OAGG;IACH,YAAY,IAAI,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAIhD,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrC,CAAC"}
package/dist/ai/types.js CHANGED
@@ -23,6 +23,8 @@ export const TOKEN_BUDGETS = {
23
23
  /** Used by the `planr plan` pipeline for task generation per story. */
24
24
  plan: 16384,
25
25
  estimate: 4096,
26
+ backlogPrioritize: 8192,
27
+ sprintAutoSelect: 8192,
26
28
  };
27
29
  export const DEFAULT_MODELS = {
28
30
  anthropic: 'claude-sonnet-4-20250514',
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,IAAI;IACZ,uEAAuE;IACvE,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,IAAI;CACN,CAAC;AAyBX,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,UAAU;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,IAAI;IACZ,uEAAuE;IACvE,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;CACd,CAAC;AAyBX,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,UAAU;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Detects file dependency chains from architecture files.
3
+ *
4
+ * When one file in a chain is modified, others likely need updating too.
5
+ * Chains are detected via import analysis: if file A imports from file B,
6
+ * they form a dependency hint.
7
+ */
8
+ export interface DependencyHint {
9
+ /** Files in this chain (relative paths). */
10
+ files: string[];
11
+ /** Human-readable explanation of why these files are linked. */
12
+ reason: string;
13
+ }
14
+ /**
15
+ * Detect dependency hints by analysing import statements across
16
+ * architecture files. If file A imports from file B, they form a chain.
17
+ *
18
+ * @param architectureFiles - Map of relative path → content from findArchitectureFiles
19
+ */
20
+ export declare function detectDependencyHints(architectureFiles: Map<string, string>): DependencyHint[];
21
+ //# sourceMappingURL=dependency-chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-chains.d.ts","sourceRoot":"","sources":["../../../src/ai/validation/dependency-chains.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE,CA+D9F"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Detects file dependency chains from architecture files.
3
+ *
4
+ * When one file in a chain is modified, others likely need updating too.
5
+ * Chains are detected via import analysis: if file A imports from file B,
6
+ * they form a dependency hint.
7
+ */
8
+ /**
9
+ * Detect dependency hints by analysing import statements across
10
+ * architecture files. If file A imports from file B, they form a chain.
11
+ *
12
+ * @param architectureFiles - Map of relative path → content from findArchitectureFiles
13
+ */
14
+ export function detectDependencyHints(architectureFiles) {
15
+ const archPaths = [...architectureFiles.keys()];
16
+ if (archPaths.length < 2)
17
+ return [];
18
+ // Build a map of which architecture files import which others
19
+ const importGraph = new Map();
20
+ for (const [filePath, content] of architectureFiles) {
21
+ const importedPaths = extractImportPaths(content);
22
+ for (const imp of importedPaths) {
23
+ const resolved = resolveImportToArchFile(imp, filePath, archPaths);
24
+ if (resolved) {
25
+ if (!importGraph.has(filePath))
26
+ importGraph.set(filePath, new Set());
27
+ const deps = importGraph.get(filePath);
28
+ if (deps)
29
+ deps.add(resolved);
30
+ }
31
+ }
32
+ }
33
+ // Find hub files (imported by 3+ others)
34
+ const importCounts = new Map();
35
+ for (const [importer, imports] of importGraph) {
36
+ for (const imported of imports) {
37
+ if (!importCounts.has(imported))
38
+ importCounts.set(imported, []);
39
+ const arr = importCounts.get(imported);
40
+ if (arr)
41
+ arr.push(importer);
42
+ }
43
+ }
44
+ const hints = [];
45
+ const seen = new Set();
46
+ // Hub chains: file imported by 3+ architecture files
47
+ for (const [hubFile, importers] of importCounts) {
48
+ if (importers.length >= 3) {
49
+ const chain = [hubFile, ...importers].sort();
50
+ const key = chain.join(',');
51
+ if (!seen.has(key)) {
52
+ seen.add(key);
53
+ hints.push({
54
+ files: chain,
55
+ reason: `${hubFile} is a central module imported by ${importers.join(', ')} — changes may require updates in all`,
56
+ });
57
+ }
58
+ }
59
+ }
60
+ // Pair chains: direct import relationships not already covered by hubs
61
+ for (const [importer, imports] of importGraph) {
62
+ for (const imported of imports) {
63
+ const pair = [importer, imported].sort();
64
+ const key = pair.join(',');
65
+ if (!seen.has(key)) {
66
+ seen.add(key);
67
+ hints.push({
68
+ files: pair,
69
+ reason: `${importer} imports from ${imported} — changes to one may require updates in the other`,
70
+ });
71
+ }
72
+ }
73
+ }
74
+ return hints;
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Helpers
78
+ // ---------------------------------------------------------------------------
79
+ /** Extract import paths from TypeScript/JavaScript source. */
80
+ function extractImportPaths(content) {
81
+ return [...content.matchAll(/(?:import|from)\s+['"]([^'"]+)['"]/g)].map((m) => m[1]);
82
+ }
83
+ /**
84
+ * Resolve an import path to one of the known architecture file paths.
85
+ * Handles relative imports and extension stripping.
86
+ */
87
+ function resolveImportToArchFile(importPath, fromFile, archPaths) {
88
+ // Only consider relative imports
89
+ if (!importPath.startsWith('.'))
90
+ return null;
91
+ // Strip .js/.ts extension
92
+ const stripped = importPath.replace(/\.\w+$/, '');
93
+ // Resolve relative to the importing file's directory
94
+ const fromDir = fromFile.split('/').slice(0, -1).join('/');
95
+ const parts = stripped.split('/');
96
+ const resolvedParts = fromDir ? fromDir.split('/') : [];
97
+ for (const part of parts) {
98
+ if (part === '.')
99
+ continue;
100
+ if (part === '..') {
101
+ resolvedParts.pop();
102
+ }
103
+ else {
104
+ resolvedParts.push(part);
105
+ }
106
+ }
107
+ const resolved = resolvedParts.join('/');
108
+ // Match against architecture paths (with or without extension)
109
+ return (archPaths.find((p) => {
110
+ const pBase = p.replace(/\.\w+$/, '');
111
+ return pBase === resolved;
112
+ }) ?? null);
113
+ }
114
+ //# sourceMappingURL=dependency-chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-chains.js","sourceRoot":"","sources":["../../../src/ai/validation/dependency-chains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { type DependencyHint, detectDependencyHints } from './dependency-chains.js';
2
+ export { parseSourceInventory, type RelevantFile, type ValidationResult, validateRelevantFiles, } from './task-validator.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { detectDependencyHints } from './dependency-chains.js';
2
+ export { parseSourceInventory, validateRelevantFiles, } from './task-validator.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EACL,oBAAoB,EAGpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Semantic validation for AI-generated task lists.
3
+ *
4
+ * Runs after Zod schema validation to catch codebase-awareness issues
5
+ * that structural validation cannot detect: wrong modify/create actions,
6
+ * missing dependency chain files, and hallucinated paths.
7
+ */
8
+ import type { DependencyHint } from './dependency-chains.js';
9
+ export interface ValidationResult {
10
+ warnings: string[];
11
+ }
12
+ export interface RelevantFile {
13
+ path: string;
14
+ reason: string;
15
+ action: 'modify' | 'create';
16
+ }
17
+ /**
18
+ * Validate AI-generated relevant files against the actual codebase.
19
+ *
20
+ * @param relevantFiles - Files from the AI response
21
+ * @param sourceInventory - Raw source inventory string from CodebaseContext
22
+ * @param dependencyHints - Auto-detected dependency chains
23
+ */
24
+ export declare function validateRelevantFiles(relevantFiles: RelevantFile[], sourceInventory: string, dependencyHints: DependencyHint[]): ValidationResult;
25
+ /**
26
+ * Parse the compact source inventory format into a Set of full file paths.
27
+ *
28
+ * Input format:
29
+ * ```
30
+ * src/services/: artifact-service.ts, config-service.ts, id-service.ts
31
+ * src/cli/commands/: quick.ts, task.ts, epic.ts
32
+ * ```
33
+ *
34
+ * Output: Set { "src/services/artifact-service.ts", "src/services/config-service.ts", ... }
35
+ */
36
+ export declare function parseSourceInventory(inventory: string): Set<string>;
37
+ //# sourceMappingURL=task-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-validator.d.ts","sourceRoot":"","sources":["../../../src/ai/validation/task-validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,YAAY,EAAE,EAC7B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,cAAc,EAAE,GAChC,gBAAgB,CAwClB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAoBnE"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Semantic validation for AI-generated task lists.
3
+ *
4
+ * Runs after Zod schema validation to catch codebase-awareness issues
5
+ * that structural validation cannot detect: wrong modify/create actions,
6
+ * missing dependency chain files, and hallucinated paths.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Public API
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Validate AI-generated relevant files against the actual codebase.
13
+ *
14
+ * @param relevantFiles - Files from the AI response
15
+ * @param sourceInventory - Raw source inventory string from CodebaseContext
16
+ * @param dependencyHints - Auto-detected dependency chains
17
+ */
18
+ export function validateRelevantFiles(relevantFiles, sourceInventory, dependencyHints) {
19
+ const warnings = [];
20
+ const existingFiles = parseSourceInventory(sourceInventory);
21
+ const referencedPaths = new Set(relevantFiles.map((f) => f.path));
22
+ for (const file of relevantFiles) {
23
+ const exists = existingFiles.has(file.path);
24
+ // Check 1: "modify" action but file not in inventory
25
+ if (file.action === 'modify' && !exists) {
26
+ warnings.push(`${file.path} marked as "modify" but not found in source inventory — may not exist`);
27
+ }
28
+ // Check 2: "create" action but file already exists
29
+ if (file.action === 'create' && exists) {
30
+ warnings.push(`${file.path} marked as "create" but already exists — should be "modify"`);
31
+ }
32
+ // Check 3: Path uses a directory not seen in inventory
33
+ const dir = file.path.split('/').slice(0, -1).join('/');
34
+ if (dir && !directoryExistsInInventory(dir, sourceInventory) && file.action === 'modify') {
35
+ warnings.push(`${file.path} references directory "${dir}" not found in source inventory`);
36
+ }
37
+ }
38
+ // Check 4: Dependency chain gaps
39
+ for (const hint of dependencyHints) {
40
+ const mentioned = hint.files.filter((f) => referencedPaths.has(f));
41
+ const missing = hint.files.filter((f) => !referencedPaths.has(f));
42
+ if (mentioned.length > 0 && missing.length > 0) {
43
+ warnings.push(`${mentioned.join(', ')} referenced but ${missing.join(', ')} not included — ${hint.reason}`);
44
+ }
45
+ }
46
+ return { warnings };
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // Helpers
50
+ // ---------------------------------------------------------------------------
51
+ /**
52
+ * Parse the compact source inventory format into a Set of full file paths.
53
+ *
54
+ * Input format:
55
+ * ```
56
+ * src/services/: artifact-service.ts, config-service.ts, id-service.ts
57
+ * src/cli/commands/: quick.ts, task.ts, epic.ts
58
+ * ```
59
+ *
60
+ * Output: Set { "src/services/artifact-service.ts", "src/services/config-service.ts", ... }
61
+ */
62
+ export function parseSourceInventory(inventory) {
63
+ const files = new Set();
64
+ for (const line of inventory.split('\n')) {
65
+ const colonIdx = line.indexOf(':');
66
+ if (colonIdx === -1)
67
+ continue;
68
+ const dir = line.slice(0, colonIdx).replace(/\/$/, '');
69
+ const fileList = line.slice(colonIdx + 1).trim();
70
+ if (!fileList)
71
+ continue;
72
+ for (const file of fileList.split(',')) {
73
+ const trimmed = file.trim();
74
+ if (trimmed) {
75
+ files.add(`${dir}/${trimmed}`);
76
+ }
77
+ }
78
+ }
79
+ return files;
80
+ }
81
+ /** Check if a directory prefix appears in the source inventory. */
82
+ function directoryExistsInInventory(dir, inventory) {
83
+ // Inventory lines start with "dir/:" — check if any line's dir matches or is a parent
84
+ return inventory.split('\n').some((line) => {
85
+ const lineDir = line.split(':')[0]?.replace(/\/$/, '').trim();
86
+ return lineDir === dir || lineDir?.startsWith(`${dir}/`) || dir.startsWith(`${lineDir}/`);
87
+ });
88
+ }
89
+ //# sourceMappingURL=task-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-validator.js","sourceRoot":"","sources":["../../../src/ai/validation/task-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `planr backlog` command group.
3
+ *
4
+ * Lightweight issue/TODO tracker with tags, priorities, and
5
+ * AI-powered prioritization. The intake funnel before work
6
+ * enters the agile hierarchy.
7
+ */
8
+ import type { Command } from 'commander';
9
+ export declare function registerBacklogCommand(program: Command): void;
10
+ //# sourceMappingURL=backlog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/backlog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAwRtD"}