@planu/cli 0.78.0 → 0.79.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 (93) hide show
  1. package/dist/cli/commands/serve.d.ts.map +1 -1
  2. package/dist/cli/commands/serve.js +1 -1
  3. package/dist/cli/commands/serve.js.map +1 -1
  4. package/dist/config/contradiction-patterns.json +83 -0
  5. package/dist/config/estimation-tables.json +49 -0
  6. package/dist/config/license-plans.json +5 -1
  7. package/dist/engine/ci-generator/local-script.d.ts +8 -0
  8. package/dist/engine/ci-generator/local-script.d.ts.map +1 -0
  9. package/dist/engine/ci-generator/local-script.js +177 -0
  10. package/dist/engine/ci-generator/local-script.js.map +1 -0
  11. package/dist/engine/ci-generator/planu-steps.d.ts.map +1 -1
  12. package/dist/engine/ci-generator/planu-steps.js +37 -22
  13. package/dist/engine/ci-generator/planu-steps.js.map +1 -1
  14. package/dist/engine/config-loader.d.ts +73 -0
  15. package/dist/engine/config-loader.d.ts.map +1 -0
  16. package/dist/engine/config-loader.js +246 -0
  17. package/dist/engine/config-loader.js.map +1 -0
  18. package/dist/engine/config-schemas.d.ts +64 -0
  19. package/dist/engine/config-schemas.d.ts.map +1 -0
  20. package/dist/engine/config-schemas.js +55 -0
  21. package/dist/engine/config-schemas.js.map +1 -0
  22. package/dist/index.js +10 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/storage/ideas-store.d.ts +15 -0
  25. package/dist/storage/ideas-store.d.ts.map +1 -0
  26. package/dist/storage/ideas-store.js +37 -0
  27. package/dist/storage/ideas-store.js.map +1 -0
  28. package/dist/tools/capture-idea-handler.d.ts +4 -0
  29. package/dist/tools/capture-idea-handler.d.ts.map +1 -0
  30. package/dist/tools/capture-idea-handler.js +39 -0
  31. package/dist/tools/capture-idea-handler.js.map +1 -0
  32. package/dist/tools/ci-planu-handler.d.ts +2 -2
  33. package/dist/tools/ci-planu-handler.d.ts.map +1 -1
  34. package/dist/tools/ci-planu-handler.js +55 -22
  35. package/dist/tools/ci-planu-handler.js.map +1 -1
  36. package/dist/tools/discard-idea-handler.d.ts +4 -0
  37. package/dist/tools/discard-idea-handler.d.ts.map +1 -0
  38. package/dist/tools/discard-idea-handler.js +27 -0
  39. package/dist/tools/discard-idea-handler.js.map +1 -0
  40. package/dist/tools/git/cleanup-ops.d.ts +15 -0
  41. package/dist/tools/git/cleanup-ops.d.ts.map +1 -0
  42. package/dist/tools/git/cleanup-ops.js +417 -0
  43. package/dist/tools/git/cleanup-ops.js.map +1 -0
  44. package/dist/tools/license-gate.d.ts +6 -0
  45. package/dist/tools/license-gate.d.ts.map +1 -1
  46. package/dist/tools/license-gate.js +14 -0
  47. package/dist/tools/license-gate.js.map +1 -1
  48. package/dist/tools/list-backlog-handler.d.ts +4 -0
  49. package/dist/tools/list-backlog-handler.d.ts.map +1 -0
  50. package/dist/tools/list-backlog-handler.js +60 -0
  51. package/dist/tools/list-backlog-handler.js.map +1 -0
  52. package/dist/tools/manage-git.d.ts.map +1 -1
  53. package/dist/tools/manage-git.js +3 -0
  54. package/dist/tools/manage-git.js.map +1 -1
  55. package/dist/tools/promote-idea-handler.d.ts +4 -0
  56. package/dist/tools/promote-idea-handler.d.ts.map +1 -0
  57. package/dist/tools/promote-idea-handler.js +51 -0
  58. package/dist/tools/promote-idea-handler.js.map +1 -0
  59. package/dist/tools/register-backlog-tools.d.ts +3 -0
  60. package/dist/tools/register-backlog-tools.d.ts.map +1 -0
  61. package/dist/tools/register-backlog-tools.js +81 -0
  62. package/dist/tools/register-backlog-tools.js.map +1 -0
  63. package/dist/tools/register-ci-tools.d.ts.map +1 -1
  64. package/dist/tools/register-ci-tools.js +8 -0
  65. package/dist/tools/register-ci-tools.js.map +1 -1
  66. package/dist/tools/schemas/infra.d.ts +1 -1
  67. package/dist/tools/schemas/lifecycle.d.ts +1 -0
  68. package/dist/tools/schemas/lifecycle.d.ts.map +1 -1
  69. package/dist/tools/schemas/lifecycle.js +2 -1
  70. package/dist/tools/schemas/lifecycle.js.map +1 -1
  71. package/dist/tools/update-status-actions.d.ts.map +1 -1
  72. package/dist/tools/update-status-actions.js +12 -0
  73. package/dist/tools/update-status-actions.js.map +1 -1
  74. package/dist/types/ci.d.ts +16 -1
  75. package/dist/types/ci.d.ts.map +1 -1
  76. package/dist/types/common/tech-enums.d.ts +1 -1
  77. package/dist/types/common/tech-enums.d.ts.map +1 -1
  78. package/dist/types/estimation.d.ts +34 -0
  79. package/dist/types/estimation.d.ts.map +1 -1
  80. package/dist/types/git.d.ts +24 -0
  81. package/dist/types/git.d.ts.map +1 -1
  82. package/dist/types/ideas.d.ts +37 -0
  83. package/dist/types/ideas.d.ts.map +1 -0
  84. package/dist/types/ideas.js +3 -0
  85. package/dist/types/ideas.js.map +1 -0
  86. package/dist/types/index.d.ts +1 -0
  87. package/dist/types/index.d.ts.map +1 -1
  88. package/dist/types/index.js +1 -0
  89. package/dist/types/index.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/config/contradiction-patterns.json +83 -0
  92. package/src/config/estimation-tables.json +49 -0
  93. package/src/config/license-plans.json +5 -1
@@ -0,0 +1,246 @@
1
+ // engine/config-loader.ts — Canonical 3-layer config loader (SPEC-205)
2
+ //
3
+ // THE PATTERN:
4
+ // Layer 1 (lowest precedence): src/config/{area}.json — system defaults, always present
5
+ // Layer 2: data/global/{area}-custom.json — user-level global overrides
6
+ // Layer 3 (highest precedence): data/projects/{hash}/config/{area}-overrides.json — project overrides
7
+ //
8
+ // Items are merged by `id` field: an override with the same `id` replaces the system default.
9
+ // Items with new `id` values are appended.
10
+ //
11
+ // USAGE FOR FUTURE SPEC AUTHORS:
12
+ // 1. Create src/config/{area}.json with your default items (each must have an `id` field)
13
+ // 2. Define a Zod schema for a single item, then wrap with z.array()
14
+ // 3. Instantiate: new ConfigLoader<YourType>('your-area', yourItemArraySchema)
15
+ // 4. Call loader.load(projectPath?) to get merged items
16
+ //
17
+ // This module only imports from types/ — respects the dependency rule.
18
+ import { readFileSync } from 'node:fs';
19
+ import { readFile } from 'node:fs/promises';
20
+ import { createRequire } from 'node:module';
21
+ import { join, dirname } from 'node:path';
22
+ import { fileURLToPath } from 'node:url';
23
+ const __dirname = dirname(fileURLToPath(import.meta.url));
24
+ const DATA_DIR = join(__dirname, '..', '..', 'data');
25
+ /**
26
+ * Canonical 3-layer configuration loader.
27
+ *
28
+ * Generalizes the pattern from catalog-loader.ts (SPEC-054) into a reusable
29
+ * class that any module can use to make its configuration extensible.
30
+ *
31
+ * @typeParam T - The type of a single configuration item (must have `id: string`)
32
+ */
33
+ export class ConfigLoader {
34
+ area;
35
+ schema;
36
+ require;
37
+ constructor(area, schema) {
38
+ this.area = area;
39
+ this.schema = schema;
40
+ this.require = createRequire(import.meta.url);
41
+ }
42
+ /**
43
+ * Synchronously load and merge all 3 config layers.
44
+ * Safe for module-level initialization.
45
+ */
46
+ load(projectHash) {
47
+ const system = this.loadSystem();
48
+ const global = this.loadGlobalSync();
49
+ const project = projectHash ? this.loadProjectSync(projectHash) : [];
50
+ return this.merge(system, global, project);
51
+ }
52
+ /**
53
+ * Async version of load — preferred when called from async contexts.
54
+ */
55
+ async loadAsync(projectHash) {
56
+ const system = this.loadSystem();
57
+ const global = await this.loadGlobalAsync();
58
+ const project = projectHash ? await this.loadProjectAsync(projectHash) : [];
59
+ return this.merge(system, global, project);
60
+ }
61
+ /**
62
+ * Validate raw data against the schema. Returns parsed items or throws
63
+ * a descriptive error with the exact path of the invalid field.
64
+ */
65
+ validate(data) {
66
+ const result = this.schema.safeParse(data);
67
+ if (result.success) {
68
+ return result.data;
69
+ }
70
+ const details = formatZodError(result.error);
71
+ throw new Error(`Invalid ${this.area} config: ${details}`);
72
+ }
73
+ /**
74
+ * Load only system defaults (src/config/{area}.json).
75
+ */
76
+ loadSystem() {
77
+ try {
78
+ const raw = this.require(`../config/${this.area}.json`);
79
+ return this.validate(raw);
80
+ }
81
+ catch (err) {
82
+ if (err instanceof Error && err.message.includes('Invalid')) {
83
+ throw err;
84
+ }
85
+ throw new Error(`System config not found: src/config/${this.area}.json`, { cause: err });
86
+ }
87
+ }
88
+ // -----------------------------------------------------------------------
89
+ // Private helpers
90
+ // -----------------------------------------------------------------------
91
+ loadGlobalSync() {
92
+ return this.loadFileSync(join(DATA_DIR, 'global', `${this.area}-custom.json`));
93
+ }
94
+ loadProjectSync(projectHash) {
95
+ return this.loadFileSync(join(DATA_DIR, 'projects', projectHash, 'config', `${this.area}-overrides.json`));
96
+ }
97
+ async loadGlobalAsync() {
98
+ return this.loadFileAsync(join(DATA_DIR, 'global', `${this.area}-custom.json`));
99
+ }
100
+ async loadProjectAsync(projectHash) {
101
+ return this.loadFileAsync(join(DATA_DIR, 'projects', projectHash, 'config', `${this.area}-overrides.json`));
102
+ }
103
+ loadFileSync(filePath) {
104
+ try {
105
+ const content = readFileSync(filePath, 'utf-8');
106
+ const parsed = JSON.parse(content);
107
+ return this.validate(parsed);
108
+ }
109
+ catch (err) {
110
+ if (err instanceof Error && err.message.includes('Invalid')) {
111
+ throw err;
112
+ }
113
+ // File does not exist or is unreadable — return empty (optional layer)
114
+ return [];
115
+ }
116
+ }
117
+ async loadFileAsync(filePath) {
118
+ try {
119
+ const content = await readFile(filePath, 'utf-8');
120
+ const parsed = JSON.parse(content);
121
+ return this.validate(parsed);
122
+ }
123
+ catch (err) {
124
+ if (err instanceof Error && err.message.includes('Invalid')) {
125
+ throw err;
126
+ }
127
+ return [];
128
+ }
129
+ }
130
+ /**
131
+ * Merge items from 3 layers by `id`. Higher-precedence layers override
132
+ * lower-precedence items with the same `id`. New ids are appended.
133
+ */
134
+ merge(system, global, project) {
135
+ const map = new Map();
136
+ for (const item of system) {
137
+ map.set(item.id, item);
138
+ }
139
+ for (const item of global) {
140
+ map.set(item.id, item);
141
+ }
142
+ for (const item of project) {
143
+ map.set(item.id, item);
144
+ }
145
+ return [...map.values()];
146
+ }
147
+ }
148
+ /**
149
+ * 3-layer configuration loader for structured (object) configs.
150
+ *
151
+ * Similar to ConfigLoader but works with a single object instead of an array.
152
+ * Override layers are deep-merged (top-level keys only) with the system defaults.
153
+ *
154
+ * @typeParam T - The config object type
155
+ */
156
+ export class ObjectConfigLoader {
157
+ area;
158
+ schema;
159
+ require;
160
+ constructor(area, schema) {
161
+ this.area = area;
162
+ this.schema = schema;
163
+ this.require = createRequire(import.meta.url);
164
+ }
165
+ /** Synchronously load and merge all 3 config layers. */
166
+ load(projectHash) {
167
+ const system = this.loadSystem();
168
+ const global = this.loadFileSync(join(DATA_DIR, 'global', `${this.area}-custom.json`));
169
+ const project = projectHash
170
+ ? this.loadFileSync(join(DATA_DIR, 'projects', projectHash, 'config', `${this.area}-overrides.json`))
171
+ : null;
172
+ return this.merge(system, global, project);
173
+ }
174
+ /** Async version of load. */
175
+ async loadAsync(projectHash) {
176
+ const system = this.loadSystem();
177
+ const global = await this.loadFileAsync(join(DATA_DIR, 'global', `${this.area}-custom.json`));
178
+ const project = projectHash
179
+ ? await this.loadFileAsync(join(DATA_DIR, 'projects', projectHash, 'config', `${this.area}-overrides.json`))
180
+ : null;
181
+ return this.merge(system, global, project);
182
+ }
183
+ /** Validate raw data against the schema. */
184
+ validate(data) {
185
+ const result = this.schema.safeParse(data);
186
+ if (result.success) {
187
+ return result.data;
188
+ }
189
+ const details = formatZodError(result.error);
190
+ throw new Error(`Invalid ${this.area} config: ${details}`);
191
+ }
192
+ /** Load system defaults. */
193
+ loadSystem() {
194
+ try {
195
+ const raw = this.require(`../config/${this.area}.json`);
196
+ return this.validate(raw);
197
+ }
198
+ catch (err) {
199
+ if (err instanceof Error && err.message.includes('Invalid')) {
200
+ throw err;
201
+ }
202
+ throw new Error(`System config not found: src/config/${this.area}.json`, { cause: err });
203
+ }
204
+ }
205
+ loadFileSync(filePath) {
206
+ try {
207
+ const content = readFileSync(filePath, 'utf-8');
208
+ return JSON.parse(content);
209
+ }
210
+ catch {
211
+ return null;
212
+ }
213
+ }
214
+ async loadFileAsync(filePath) {
215
+ try {
216
+ const content = await readFile(filePath, 'utf-8');
217
+ return JSON.parse(content);
218
+ }
219
+ catch {
220
+ return null;
221
+ }
222
+ }
223
+ /** Shallow merge: system <- global <- project (top-level keys). */
224
+ merge(system, global, project) {
225
+ let result = { ...system };
226
+ if (global) {
227
+ result = { ...result, ...global };
228
+ }
229
+ if (project) {
230
+ result = { ...result, ...project };
231
+ }
232
+ return this.validate(result);
233
+ }
234
+ }
235
+ /**
236
+ * Format a ZodError into a human-readable string with field paths.
237
+ */
238
+ function formatZodError(error) {
239
+ return error.issues
240
+ .map((issue) => {
241
+ const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
242
+ return `${path}: ${issue.message}`;
243
+ })
244
+ .join('; ');
245
+ }
246
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/engine/config-loader.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,eAAe;AACf,0FAA0F;AAC1F,0EAA0E;AAC1E,wGAAwG;AACxG,EAAE;AACF,8FAA8F;AAC9F,2CAA2C;AAC3C,EAAE;AACF,iCAAiC;AACjC,4FAA4F;AAC5F,uEAAuE;AACvE,iFAAiF;AACjF,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACN,IAAI,CAAS;IACb,MAAM,CAAe;IACrB,OAAO,CAAiB;IAEzC,YAAY,IAAY,EAAE,MAAoB;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,WAAoB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,WAAoB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,OAAO,CAAY,CAAC;YACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAElE,cAAc;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;IACjF,CAAC;IAEO,eAAe,CAAC,WAAmB;QACzC,OAAO,IAAI,CAAC,YAAY,CACtB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,iBAAiB,CAAC,CACjF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QAChD,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,iBAAiB,CAAC,CACjF,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,uEAAuE;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,MAAW,EAAE,MAAW,EAAE,OAAY;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACZ,IAAI,CAAS;IACb,MAAM,CAAa;IACnB,OAAO,CAAiB;IAEzC,YAAY,IAAY,EAAE,MAAkB;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,wDAAwD;IACxD,IAAI,CAAC,WAAoB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,iBAAiB,CAAC,CACjF;YACH,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,SAAS,CAAC,WAAoB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CACtB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,iBAAiB,CAAC,CACjF;YACH,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4CAA4C;IAC5C,QAAQ,CAAC,IAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,4BAA4B;IAC5B,UAAU;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,OAAO,CAAY,CAAC;YACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,MAAS,EAAE,MAAyB,EAAE,OAA0B;QAC5E,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAO,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAO,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+ import type { ContradictionPatternDef } from '../types/scope.js';
3
+ import type { EstimationTablesConfig } from '../types/estimation.js';
4
+ export type { ContradictionPatternDef as ContradictionPatternConfig, EstimationTablesConfig };
5
+ export declare const contradictionPatternSchema: z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ sideA: z.ZodArray<z.ZodString>;
9
+ sideB: z.ZodArray<z.ZodString>;
10
+ severity: z.ZodEnum<{
11
+ blocker: "blocker";
12
+ warning: "warning";
13
+ info: "info";
14
+ }>;
15
+ descriptionTemplate: z.ZodString;
16
+ recommendation: z.ZodString;
17
+ }, z.core.$strip>;
18
+ export declare const contradictionPatternsArraySchema: z.ZodArray<z.ZodObject<{
19
+ id: z.ZodString;
20
+ name: z.ZodString;
21
+ sideA: z.ZodArray<z.ZodString>;
22
+ sideB: z.ZodArray<z.ZodString>;
23
+ severity: z.ZodEnum<{
24
+ blocker: "blocker";
25
+ warning: "warning";
26
+ info: "info";
27
+ }>;
28
+ descriptionTemplate: z.ZodString;
29
+ recommendation: z.ZodString;
30
+ }, z.core.$strip>>;
31
+ export declare const estimationTablesSchema: z.ZodObject<{
32
+ defaultConfig: z.ZodObject<{
33
+ defaultLocale: z.ZodString;
34
+ defaultExperienceLevel: z.ZodString;
35
+ hourlyRate: z.ZodNumber;
36
+ pricingOpusPerMToken: z.ZodNumber;
37
+ pricingSonnetPerMToken: z.ZodNumber;
38
+ }, z.core.$strip>;
39
+ baseHoursByType: z.ZodArray<z.ZodObject<{
40
+ id: z.ZodString;
41
+ hours: z.ZodNumber;
42
+ }, z.core.$strip>>;
43
+ scopeMultiplier: z.ZodArray<z.ZodObject<{
44
+ id: z.ZodString;
45
+ multiplier: z.ZodNumber;
46
+ }, z.core.$strip>>;
47
+ difficultyMultiplier: z.ZodArray<z.ZodObject<{
48
+ id: z.ZodString;
49
+ multiplier: z.ZodNumber;
50
+ }, z.core.$strip>>;
51
+ reviewRatio: z.ZodArray<z.ZodObject<{
52
+ id: z.ZodString;
53
+ ratio: z.ZodNumber;
54
+ }, z.core.$strip>>;
55
+ tokensPerDevHour: z.ZodObject<{
56
+ opus: z.ZodNumber;
57
+ sonnet: z.ZodNumber;
58
+ }, z.core.$strip>;
59
+ modeReduction: z.ZodArray<z.ZodObject<{
60
+ id: z.ZodString;
61
+ factor: z.ZodNumber;
62
+ }, z.core.$strip>>;
63
+ }, z.core.$strip>;
64
+ //# sourceMappingURL=config-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schemas.d.ts","sourceRoot":"","sources":["../../src/engine/config-schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;AAQ9F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAQrC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;kBAAsC,CAAC;AA0BpF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBjC,CAAC"}
@@ -0,0 +1,55 @@
1
+ // engine/config-schemas.ts — Zod schemas for JSON config validation (SPEC-205)
2
+ // Each area that uses ConfigLoader/ObjectConfigLoader defines its schema here.
3
+ import { z } from 'zod';
4
+ // ---------------------------------------------------------------------------
5
+ // Contradiction patterns (used by contradiction-detector.ts)
6
+ // ---------------------------------------------------------------------------
7
+ const conflictSeveritySchema = z.enum(['blocker', 'warning', 'info']);
8
+ export const contradictionPatternSchema = z.object({
9
+ id: z.string().min(1, 'id is required'),
10
+ name: z.string().min(1, 'name is required'),
11
+ sideA: z.array(z.string()).min(1, 'sideA must have at least one keyword'),
12
+ sideB: z.array(z.string()).min(1, 'sideB must have at least one keyword'),
13
+ severity: conflictSeveritySchema,
14
+ descriptionTemplate: z.string().min(1, 'descriptionTemplate is required'),
15
+ recommendation: z.string().min(1, 'recommendation is required'),
16
+ });
17
+ export const contradictionPatternsArraySchema = z.array(contradictionPatternSchema);
18
+ // ---------------------------------------------------------------------------
19
+ // Estimation tables (used by estimator/constants.ts)
20
+ // ---------------------------------------------------------------------------
21
+ const baseHoursEntrySchema = z.object({
22
+ id: z.string().min(1),
23
+ hours: z.number().positive(),
24
+ });
25
+ const multiplierEntrySchema = z.object({
26
+ id: z.string().min(1),
27
+ multiplier: z.number().positive(),
28
+ });
29
+ const ratioEntrySchema = z.object({
30
+ id: z.string().min(1),
31
+ ratio: z.number().min(0).max(1),
32
+ });
33
+ const modeReductionEntrySchema = z.object({
34
+ id: z.string().min(1),
35
+ factor: z.number().min(0).max(1),
36
+ });
37
+ export const estimationTablesSchema = z.object({
38
+ defaultConfig: z.object({
39
+ defaultLocale: z.string(),
40
+ defaultExperienceLevel: z.string(),
41
+ hourlyRate: z.number().positive(),
42
+ pricingOpusPerMToken: z.number().positive(),
43
+ pricingSonnetPerMToken: z.number().positive(),
44
+ }),
45
+ baseHoursByType: z.array(baseHoursEntrySchema),
46
+ scopeMultiplier: z.array(multiplierEntrySchema),
47
+ difficultyMultiplier: z.array(multiplierEntrySchema),
48
+ reviewRatio: z.array(ratioEntrySchema),
49
+ tokensPerDevHour: z.object({
50
+ opus: z.number().positive(),
51
+ sonnet: z.number().positive(),
52
+ }),
53
+ modeReduction: z.array(modeReductionEntrySchema),
54
+ });
55
+ //# sourceMappingURL=config-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schemas.js","sourceRoot":"","sources":["../../src/engine/config-schemas.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+EAA+E;AAE/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;IACzE,QAAQ,EAAE,sBAAsB;IAChC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IACzE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;CAChE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAEpF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9C,CAAC;IACF,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC/C,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACpD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACjD,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -98,6 +98,7 @@ import { registerGenerateSpecFromDesignTool } from './tools/register-generate-sp
98
98
  import { registerOAuthTools } from './tools/register-oauth-tools.js';
99
99
  import { registerElicitationTools } from './tools/register-elicitation-tools.js';
100
100
  import { registerTelemetryTools } from './tools/register-telemetry-tools.js';
101
+ import { registerBacklogTools } from './tools/register-backlog-tools.js';
101
102
  import { registerReconcileRulesTool } from './tools/reconcile-rules.js';
102
103
  import { registerReconcileSkillsTool } from './tools/reconcile-skills.js';
103
104
  import { registerReconcileHooksTool } from './tools/reconcile-hooks.js';
@@ -203,9 +204,11 @@ const SERVER_INSTRUCTIONS = [
203
204
  '- Always include actionable next steps after every operation',
204
205
  '- Put machine-readable data in structuredContent, human-readable narrative in content[].text',
205
206
  '- When presenting specs, show: title, summary, key acceptance criteria, estimated effort — not the full JSON',
207
+ '',
208
+ 'IDEAS BACKLOG — automatic capture:',
209
+ '- When a user expresses a non-urgent idea or future possibility (phrases like "sería bueno", "a futuro", "se me ocurre", "what if", "maybe we could"), call capture_idea automatically without asking. Confirm in one line.',
206
210
  ].join('\n');
207
- function createMcpServer() {
208
- const s = withToolTracking(new McpServer({ name: 'planu', version: PLANU_VERSION }, { instructions: SERVER_INSTRUCTIONS }));
211
+ function registerAllTools(s) {
209
212
  registerResources(s);
210
213
  registerSpecTools(s);
211
214
  registerPlatformTools(s);
@@ -279,7 +282,12 @@ function createMcpServer() {
279
282
  registerReconcileRulesTool(s);
280
283
  registerReconcileSkillsTool(s);
281
284
  registerReconcileHooksTool(s);
285
+ registerBacklogTools(s);
282
286
  registerPrompts(s);
287
+ }
288
+ function createMcpServer() {
289
+ const s = withToolTracking(new McpServer({ name: 'planu', version: PLANU_VERSION }, { instructions: SERVER_INSTRUCTIONS }));
290
+ registerAllTools(s);
283
291
  return s;
284
292
  }
285
293
  // Primary server instance (used for stdio and group manager init)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { IdeaItem } from '../types/index.js';
2
+ /**
3
+ * Save a new idea (appends to existing list).
4
+ */
5
+ export declare function saveIdea(projectPath: string, idea: IdeaItem): Promise<void>;
6
+ /**
7
+ * Load all ideas for a project.
8
+ */
9
+ export declare function loadIdeas(projectPath: string): Promise<IdeaItem[]>;
10
+ /**
11
+ * Update a single idea by ID, applying partial patch.
12
+ * Returns the updated idea, or null if not found.
13
+ */
14
+ export declare function updateIdea(projectPath: string, id: string, patch: Partial<IdeaItem>): Promise<IdeaItem | null>;
15
+ //# sourceMappingURL=ideas-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ideas-store.d.ts","sourceRoot":"","sources":["../../src/storage/ideas-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQlD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGxE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAQ1B"}
@@ -0,0 +1,37 @@
1
+ import { readJson, writeJson, hashProjectPath } from './base-store.js';
2
+ function ideasFile(projectPath) {
3
+ const hash = hashProjectPath(projectPath);
4
+ return `data/projects/${hash}/backlog/ideas.json`;
5
+ }
6
+ /**
7
+ * Save a new idea (appends to existing list).
8
+ */
9
+ export async function saveIdea(projectPath, idea) {
10
+ const file = ideasFile(projectPath);
11
+ const existing = await readJson(file, []);
12
+ existing.push(idea);
13
+ await writeJson(file, existing);
14
+ }
15
+ /**
16
+ * Load all ideas for a project.
17
+ */
18
+ export async function loadIdeas(projectPath) {
19
+ const file = ideasFile(projectPath);
20
+ return readJson(file, []);
21
+ }
22
+ /**
23
+ * Update a single idea by ID, applying partial patch.
24
+ * Returns the updated idea, or null if not found.
25
+ */
26
+ export async function updateIdea(projectPath, id, patch) {
27
+ const file = ideasFile(projectPath);
28
+ const existing = await readJson(file, []);
29
+ const idx = existing.findIndex((i) => i.id === id);
30
+ if (idx === -1) {
31
+ return null;
32
+ }
33
+ existing[idx] = { ...existing[idx], ...patch };
34
+ await writeJson(file, existing);
35
+ return existing[idx] ?? null;
36
+ }
37
+ //# sourceMappingURL=ideas-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ideas-store.js","sourceRoot":"","sources":["../../src/storage/ideas-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,SAAS,SAAS,CAAC,WAAmB;IACpC,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO,iBAAiB,IAAI,qBAAqB,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,IAAc;IAChE,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAa,IAAI,EAAE,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,WAAmB;IACjD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAa,IAAI,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,EAAU,EACV,KAAwB;IAExB,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAa,IAAI,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAc,CAAC;IAC3D,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ToolResult, CaptureIdeaInput } from '../types/index.js';
2
+ /** Handle capture_idea tool call. */
3
+ export declare function handleCaptureIdea(input: CaptureIdeaInput): Promise<ToolResult>;
4
+ //# sourceMappingURL=capture-idea-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-idea-handler.d.ts","sourceRoot":"","sources":["../../src/tools/capture-idea-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAY,MAAM,mBAAmB,CAAC;AAuBhF,qCAAqC;AACrC,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsBpF"}
@@ -0,0 +1,39 @@
1
+ import { loadIdeas, saveIdea } from '../storage/ideas-store.js';
2
+ const EXPIRY_DAYS = 90;
3
+ /** Generate a unique idea ID based on date and sequence number. */
4
+ async function generateIdeaId(projectPath) {
5
+ const ideas = await loadIdeas(projectPath);
6
+ const today = new Date();
7
+ const dateStr = today.toISOString().slice(0, 10).replace(/-/g, '');
8
+ const todayPrefix = `idea-${dateStr}-`;
9
+ const todayCount = ideas.filter((i) => i.id.startsWith(todayPrefix)).length;
10
+ const seq = String(todayCount + 1).padStart(3, '0');
11
+ return `${todayPrefix}${seq}`;
12
+ }
13
+ /** Calculate expiry date 90 days from now. */
14
+ function calculateExpiry() {
15
+ const expiry = new Date();
16
+ expiry.setDate(expiry.getDate() + EXPIRY_DAYS);
17
+ return expiry.toISOString();
18
+ }
19
+ /** Handle capture_idea tool call. */
20
+ export async function handleCaptureIdea(input) {
21
+ const { projectPath, title, description, tags = [] } = input;
22
+ const id = await generateIdeaId(projectPath);
23
+ const now = new Date().toISOString();
24
+ const idea = {
25
+ id,
26
+ title,
27
+ description,
28
+ tags,
29
+ capturedAt: now,
30
+ capturedFrom: 'tool',
31
+ status: 'new',
32
+ expiresAt: calculateExpiry(),
33
+ };
34
+ await saveIdea(projectPath, idea);
35
+ return {
36
+ content: [{ type: 'text', text: `Idea guardada: [${id}] ${title}` }],
37
+ };
38
+ }
39
+ //# sourceMappingURL=capture-idea-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-idea-handler.js","sourceRoot":"","sources":["../../src/tools/capture-idea-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,mEAAmE;AACnE,KAAK,UAAU,cAAc,CAAC,WAAmB;IAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,QAAQ,OAAO,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;AAChC,CAAC;AAED,8CAA8C;AAC9C,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IAC7D,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAE7D,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,IAAI,GAAa;QACrB,EAAE;QACF,KAAK;QACL,WAAW;QACX,IAAI;QACJ,UAAU,EAAE,GAAG;QACf,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,eAAe,EAAE;KAC7B,CAAC;IAEF,MAAM,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAElC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { GeneratePlanuCIInput, ToolResult } from '../types/index.js';
2
2
  /**
3
3
  * Handle the generate_planu_ci tool.
4
- * Generates a GitHub Actions workflow YAML for Planu spec validation in CI,
5
- * including drift detection, PR comments, badge, and .planu.yml config.
4
+ * Always generates a local planu-check.sh script (no GitHub billing required).
5
+ * Optionally generates a GitHub Actions workflow YAML for cloud CI.
6
6
  */
7
7
  export declare function handleGeneratePlanuCI(args: GeneratePlanuCIInput): ToolResult;
8
8
  //# sourceMappingURL=ci-planu-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ci-planu-handler.d.ts","sourceRoot":"","sources":["../../src/tools/ci-planu-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CA0C5E"}
1
+ {"version":3,"file":"ci-planu-handler.d.ts","sourceRoot":"","sources":["../../src/tools/ci-planu-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAqF5E"}