@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.
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +1 -1
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/config/contradiction-patterns.json +83 -0
- package/dist/config/estimation-tables.json +49 -0
- package/dist/config/license-plans.json +5 -1
- package/dist/engine/ci-generator/local-script.d.ts +8 -0
- package/dist/engine/ci-generator/local-script.d.ts.map +1 -0
- package/dist/engine/ci-generator/local-script.js +177 -0
- package/dist/engine/ci-generator/local-script.js.map +1 -0
- package/dist/engine/ci-generator/planu-steps.d.ts.map +1 -1
- package/dist/engine/ci-generator/planu-steps.js +37 -22
- package/dist/engine/ci-generator/planu-steps.js.map +1 -1
- package/dist/engine/config-loader.d.ts +73 -0
- package/dist/engine/config-loader.d.ts.map +1 -0
- package/dist/engine/config-loader.js +246 -0
- package/dist/engine/config-loader.js.map +1 -0
- package/dist/engine/config-schemas.d.ts +64 -0
- package/dist/engine/config-schemas.d.ts.map +1 -0
- package/dist/engine/config-schemas.js +55 -0
- package/dist/engine/config-schemas.js.map +1 -0
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/storage/ideas-store.d.ts +15 -0
- package/dist/storage/ideas-store.d.ts.map +1 -0
- package/dist/storage/ideas-store.js +37 -0
- package/dist/storage/ideas-store.js.map +1 -0
- package/dist/tools/capture-idea-handler.d.ts +4 -0
- package/dist/tools/capture-idea-handler.d.ts.map +1 -0
- package/dist/tools/capture-idea-handler.js +39 -0
- package/dist/tools/capture-idea-handler.js.map +1 -0
- package/dist/tools/ci-planu-handler.d.ts +2 -2
- package/dist/tools/ci-planu-handler.d.ts.map +1 -1
- package/dist/tools/ci-planu-handler.js +55 -22
- package/dist/tools/ci-planu-handler.js.map +1 -1
- package/dist/tools/discard-idea-handler.d.ts +4 -0
- package/dist/tools/discard-idea-handler.d.ts.map +1 -0
- package/dist/tools/discard-idea-handler.js +27 -0
- package/dist/tools/discard-idea-handler.js.map +1 -0
- package/dist/tools/git/cleanup-ops.d.ts +15 -0
- package/dist/tools/git/cleanup-ops.d.ts.map +1 -0
- package/dist/tools/git/cleanup-ops.js +417 -0
- package/dist/tools/git/cleanup-ops.js.map +1 -0
- package/dist/tools/license-gate.d.ts +6 -0
- package/dist/tools/license-gate.d.ts.map +1 -1
- package/dist/tools/license-gate.js +14 -0
- package/dist/tools/license-gate.js.map +1 -1
- package/dist/tools/list-backlog-handler.d.ts +4 -0
- package/dist/tools/list-backlog-handler.d.ts.map +1 -0
- package/dist/tools/list-backlog-handler.js +60 -0
- package/dist/tools/list-backlog-handler.js.map +1 -0
- package/dist/tools/manage-git.d.ts.map +1 -1
- package/dist/tools/manage-git.js +3 -0
- package/dist/tools/manage-git.js.map +1 -1
- package/dist/tools/promote-idea-handler.d.ts +4 -0
- package/dist/tools/promote-idea-handler.d.ts.map +1 -0
- package/dist/tools/promote-idea-handler.js +51 -0
- package/dist/tools/promote-idea-handler.js.map +1 -0
- package/dist/tools/register-backlog-tools.d.ts +3 -0
- package/dist/tools/register-backlog-tools.d.ts.map +1 -0
- package/dist/tools/register-backlog-tools.js +81 -0
- package/dist/tools/register-backlog-tools.js.map +1 -0
- package/dist/tools/register-ci-tools.d.ts.map +1 -1
- package/dist/tools/register-ci-tools.js +8 -0
- package/dist/tools/register-ci-tools.js.map +1 -1
- package/dist/tools/schemas/infra.d.ts +1 -1
- package/dist/tools/schemas/lifecycle.d.ts +1 -0
- package/dist/tools/schemas/lifecycle.d.ts.map +1 -1
- package/dist/tools/schemas/lifecycle.js +2 -1
- package/dist/tools/schemas/lifecycle.js.map +1 -1
- package/dist/tools/update-status-actions.d.ts.map +1 -1
- package/dist/tools/update-status-actions.js +12 -0
- package/dist/tools/update-status-actions.js.map +1 -1
- package/dist/types/ci.d.ts +16 -1
- package/dist/types/ci.d.ts.map +1 -1
- package/dist/types/common/tech-enums.d.ts +1 -1
- package/dist/types/common/tech-enums.d.ts.map +1 -1
- package/dist/types/estimation.d.ts +34 -0
- package/dist/types/estimation.d.ts.map +1 -1
- package/dist/types/git.d.ts +24 -0
- package/dist/types/git.d.ts.map +1 -1
- package/dist/types/ideas.d.ts +37 -0
- package/dist/types/ideas.d.ts.map +1 -0
- package/dist/types/ideas.js +3 -0
- package/dist/types/ideas.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
- package/src/config/contradiction-patterns.json +83 -0
- package/src/config/estimation-tables.json +49 -0
- 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":"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"}
|
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
|
|
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 @@
|
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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,
|
|
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"}
|