@shrkcrft/inspector 0.1.0-alpha.7 → 0.1.0-alpha.8

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 (82) hide show
  1. package/dist/agent-brief.d.ts.map +1 -1
  2. package/dist/agent-brief.js +59 -10
  3. package/dist/agent-task-prep.d.ts.map +1 -1
  4. package/dist/agent-task-prep.js +1 -3
  5. package/dist/ai-readiness.d.ts +84 -9
  6. package/dist/ai-readiness.d.ts.map +1 -1
  7. package/dist/ai-readiness.js +161 -30
  8. package/dist/apply-dispatch-trace.d.ts +1 -2
  9. package/dist/apply-dispatch-trace.d.ts.map +1 -1
  10. package/dist/apply-dispatch-trace.js +0 -9
  11. package/dist/area-explore.d.ts.map +1 -1
  12. package/dist/area-explore.js +1 -5
  13. package/dist/area-map.d.ts +0 -5
  14. package/dist/area-map.d.ts.map +1 -1
  15. package/dist/area-map.js +0 -10
  16. package/dist/compliance-profiles.js +1 -1
  17. package/dist/construct-adoption.d.ts.map +1 -1
  18. package/dist/construct-adoption.js +8 -1
  19. package/dist/demo-script.d.ts +0 -1
  20. package/dist/demo-script.d.ts.map +1 -1
  21. package/dist/demo-script.js +0 -43
  22. package/dist/docs-check.js +1 -1
  23. package/dist/drift-baseline.d.ts.map +1 -1
  24. package/dist/drift-baseline.js +5 -2
  25. package/dist/feedback-ingestion.d.ts.map +1 -1
  26. package/dist/feedback-ingestion.js +0 -6
  27. package/dist/helper-registry.d.ts +27 -54
  28. package/dist/helper-registry.d.ts.map +1 -1
  29. package/dist/helper-registry.js +16 -517
  30. package/dist/impact-analysis.d.ts.map +1 -1
  31. package/dist/impact-analysis.js +4 -5
  32. package/dist/index.d.ts +1 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -2
  35. package/dist/monorepo-onboarding.js +2 -2
  36. package/dist/onboarding-report.d.ts.map +1 -1
  37. package/dist/onboarding-report.js +5 -1
  38. package/dist/onboarding.d.ts +1 -1
  39. package/dist/onboarding.d.ts.map +1 -1
  40. package/dist/onboarding.js +5 -64
  41. package/dist/pack-contributions-inventory.d.ts +0 -1
  42. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  43. package/dist/pack-contributions-inventory.js +0 -24
  44. package/dist/pack-release-check.js +1 -1
  45. package/dist/pack-signature-status.d.ts.map +1 -1
  46. package/dist/pack-signature-status.js +0 -1
  47. package/dist/plan-simulation.d.ts.map +1 -1
  48. package/dist/plan-simulation.js +3 -20
  49. package/dist/profile-registry.d.ts +0 -1
  50. package/dist/profile-registry.d.ts.map +1 -1
  51. package/dist/profile-registry.js +4 -32
  52. package/dist/quality-baseline.d.ts.map +1 -1
  53. package/dist/quality-baseline.js +3 -1
  54. package/dist/ranker-explainability.d.ts.map +1 -1
  55. package/dist/ranker-explainability.js +3 -9
  56. package/dist/release-readiness.js +3 -3
  57. package/dist/reposet.js +1 -1
  58. package/dist/repository-knowledge-model.d.ts +1 -1
  59. package/dist/repository-knowledge-model.d.ts.map +1 -1
  60. package/dist/self-config-doctor-v2.d.ts +1 -1
  61. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  62. package/dist/self-config-doctor-v2.js +6 -10
  63. package/dist/self-config-doctor.d.ts.map +1 -1
  64. package/dist/self-config-doctor.js +7 -13
  65. package/dist/start-here.d.ts +1 -1
  66. package/dist/start-here.js +1 -1
  67. package/dist/synthesize-from-onboarding.d.ts +68 -0
  68. package/dist/synthesize-from-onboarding.d.ts.map +1 -0
  69. package/dist/synthesize-from-onboarding.js +508 -0
  70. package/dist/task-ranker.d.ts.map +1 -1
  71. package/dist/task-ranker.js +1 -31
  72. package/dist/test-runner.js +5 -5
  73. package/dist/universal-search.d.ts +0 -1
  74. package/dist/universal-search.d.ts.map +1 -1
  75. package/dist/universal-search.js +0 -12
  76. package/package.json +17 -17
  77. package/dist/plugin-lifecycle-profile-registry.d.ts +0 -52
  78. package/dist/plugin-lifecycle-profile-registry.d.ts.map +0 -1
  79. package/dist/plugin-lifecycle-profile-registry.js +0 -194
  80. package/dist/plugin-lifecycle.d.ts +0 -132
  81. package/dist/plugin-lifecycle.d.ts.map +0 -1
  82. package/dist/plugin-lifecycle.js +0 -477
@@ -1,529 +1,28 @@
1
1
  /**
2
- * Helper plan generators (profile-driven for project-specific paths).
2
+ * Helper plan generators.
3
3
  *
4
4
  * Helpers are one-shot plan-v2 producers for small, well-bounded edits.
5
- * They are dry-run by default and idempotent where the plan engine supports it.
5
+ * Dry-run by default and idempotent where the plan engine supports it.
6
6
  *
7
- * No helper writes source directly. The output is a structured `IHelperPlan`
8
- * containing planned ops (using the existing plan-v2 operation set) and a
9
- * list of advisory conflicts when an expected anchor cannot be resolved.
7
+ * No helper writes source directly. The output is a structured
8
+ * `IHelperPlan` containing planned ops (using the existing plan-v2
9
+ * operation set) and a list of advisory conflicts.
10
10
  *
11
- * Helpers must accept an IPluginLifecycleProfile instead of hardcoded paths,
12
- * so the engine knows where the key-table / plugin roots live.
13
- * Project-specific helpers contributed by packs travel in pack-contributed
14
- * playbooks/scaffolds; the engine just provides the generic shapes.
15
- */
16
- import { existsSync, readFileSync } from 'node:fs';
17
- import { join } from 'node:path';
18
- import { CaseStyle, } from '@shrkcrft/plugin-api';
19
- export var HelperId;
20
- (function (HelperId) {
21
- HelperId["AddPluginKey"] = "core.add-plugin-key";
22
- HelperId["RemovePluginKey"] = "core.remove-plugin-key";
23
- HelperId["RenamePluginKey"] = "core.rename-plugin-key";
24
- HelperId["AddBarrelExport"] = "core.add-barrel-export";
25
- HelperId["RemoveBarrelExport"] = "core.remove-barrel-export";
26
- HelperId["AddEventEntry"] = "core.add-event-entry";
27
- HelperId["RemoveEventEntry"] = "core.remove-event-entry";
28
- HelperId["AddDefaultRegistration"] = "core.add-default-registration";
29
- HelperId["RemoveDefaultRegistration"] = "core.remove-default-registration";
30
- HelperId["AddComposerEntry"] = "core.add-composer-entry";
31
- HelperId["RemoveComposerEntry"] = "core.remove-composer-entry";
32
- HelperId["RenamePluginFolder"] = "core.rename-plugin-folder";
33
- HelperId["RemoveUserPluginEntry"] = "core.remove-user-plugin-entry";
34
- })(HelperId || (HelperId = {}));
35
- export const HELPERS = Object.freeze([
36
- {
37
- id: HelperId.AddPluginKey,
38
- description: 'Insert a plugin key-table entry just before the closing `} as const;` brace (profile-driven).',
39
- destructive: false,
40
- requiresHumanReview: false,
41
- requiresProfile: true,
42
- variables: [
43
- { name: 'key', required: true, description: 'kebab-case plugin key (e.g. user-card).' },
44
- ],
45
- },
46
- {
47
- id: HelperId.RemovePluginKey,
48
- description: 'Remove a plugin key-table entry (profile-driven). Destructive.',
49
- destructive: true,
50
- requiresHumanReview: true,
51
- requiresProfile: true,
52
- variables: [{ name: 'key', required: true, description: 'kebab-case plugin key.' }],
53
- },
54
- {
55
- id: HelperId.RenamePluginKey,
56
- description: 'Rename a plugin key-table entry (profile-driven). Destructive.',
57
- destructive: true,
58
- requiresHumanReview: true,
59
- requiresProfile: true,
60
- variables: [
61
- { name: 'old', required: true, description: 'old kebab-case key.' },
62
- { name: 'new', required: true, description: 'new kebab-case key.' },
63
- ],
64
- },
65
- {
66
- id: HelperId.AddBarrelExport,
67
- description: 'Append an `export * from <module>` to a barrel.',
68
- destructive: false,
69
- requiresHumanReview: false,
70
- variables: [
71
- { name: 'barrel', required: true, description: 'project-relative path to the barrel file.' },
72
- { name: 'from', required: true, description: 'relative module path to re-export.' },
73
- ],
74
- },
75
- {
76
- id: HelperId.RemoveBarrelExport,
77
- description: 'Remove a barrel `export * from` line. Destructive.',
78
- destructive: true,
79
- requiresHumanReview: true,
80
- variables: [
81
- { name: 'barrel', required: true, description: 'project-relative path to the barrel file.' },
82
- { name: 'from', required: true, description: 'relative module path to remove.' },
83
- ],
84
- },
85
- {
86
- id: HelperId.AddEventEntry,
87
- description: 'Append a typed event entry to a plugin events file (requires `eventsPath` var when no profile root is suitable).',
88
- destructive: false,
89
- requiresHumanReview: false,
90
- variables: [
91
- { name: 'plugin', required: true, description: 'host plugin kebab-case.' },
92
- { name: 'event', required: true, description: 'PascalCase event name.' },
93
- {
94
- name: 'eventsPath',
95
- required: false,
96
- description: 'Override target path. Otherwise derived from the first profile pluginRoot + plugin + /events.ts.',
97
- },
98
- ],
99
- },
100
- {
101
- id: HelperId.RemoveEventEntry,
102
- description: 'Remove a typed event block from a plugin events file. Destructive.',
103
- destructive: true,
104
- requiresHumanReview: true,
105
- variables: [
106
- { name: 'plugin', required: true, description: 'host plugin kebab-case.' },
107
- { name: 'event', required: true, description: 'PascalCase event name.' },
108
- {
109
- name: 'eventsPath',
110
- required: false,
111
- description: 'Override target path. Otherwise derived from the first profile pluginRoot + plugin + /events.ts.',
112
- },
113
- ],
114
- },
115
- {
116
- id: HelperId.AddDefaultRegistration,
117
- description: 'Register default config/state providers (manual checklist; locations vary).',
118
- destructive: false,
119
- requiresHumanReview: true,
120
- variables: [
121
- { name: 'name', required: true, description: 'plugin kebab-case.' },
122
- { name: 'pascal', required: true, description: 'plugin PascalCase.' },
123
- ],
124
- },
125
- {
126
- id: HelperId.RemoveDefaultRegistration,
127
- description: 'Remove default config/state provider registration (manual checklist). Destructive.',
128
- destructive: true,
129
- requiresHumanReview: true,
130
- variables: [{ name: 'pascal', required: true, description: 'plugin PascalCase.' }],
131
- },
132
- {
133
- id: HelperId.AddComposerEntry,
134
- description: 'Append a composer entry (manual checklist — composer locations vary).',
135
- destructive: false,
136
- requiresHumanReview: true,
137
- variables: [{ name: 'plugin', required: true, description: 'plugin kebab-case.' }],
138
- },
139
- {
140
- id: HelperId.RemoveComposerEntry,
141
- description: 'Remove a composer entry (manual checklist).',
142
- destructive: true,
143
- requiresHumanReview: true,
144
- variables: [{ name: 'plugin', required: true, description: 'plugin kebab-case.' }],
145
- },
146
- {
147
- id: HelperId.RenamePluginFolder,
148
- description: 'Manual checklist: rename a plugin folder across the profile roots.',
149
- destructive: true,
150
- requiresHumanReview: true,
151
- requiresProfile: true,
152
- variables: [
153
- { name: 'old', required: true, description: 'old plugin kebab-case.' },
154
- { name: 'new', required: true, description: 'new plugin kebab-case.' },
155
- ],
156
- },
157
- {
158
- id: HelperId.RemoveUserPluginEntry,
159
- description: 'Remove a plugin entry from user-facing key-by-scope tables (heuristic).',
160
- destructive: true,
161
- requiresHumanReview: true,
162
- variables: [{ name: 'key', required: true, description: 'plugin kebab-case.' }],
163
- },
164
- ]);
165
- /**
166
- * Convert a helper plan into a saved plan (synthetic templateId) so
167
- * it flows through `shrk apply`. Helper ops are persisted as v2 operation
168
- * intents; the apply path evaluates them against the live file system.
169
- * Unsigned by default; call `signPlan` separately when desired.
11
+ * The engine ships zero built-in helpers. Helpers come from pack
12
+ * contributions when needed.
170
13
  */
14
+ export const HELPERS = Object.freeze([]);
171
15
  export const HELPER_SYNTHETIC_TEMPLATE = '__helper__';
172
- export function helperPlanToSavedPlan(plan, projectRoot) {
173
- // Map each helper op to a saved expectedChange. The sizeBytes is the
174
- // best-effort post-apply size (zero for inserts whose snippet is empty)
175
- // — the live evaluator recomputes the actual size at apply time.
176
- const expectedChanges = plan.ops.map((op) => {
177
- const kind = typeof op.operation['kind'] === 'string' ? op.operation['kind'] : 'append';
178
- let sizeBytes = 0;
179
- if (typeof op.operation['snippet'] === 'string') {
180
- sizeBytes = Buffer.byteLength(op.operation['snippet'], 'utf8');
181
- }
182
- else if (typeof op.operation['replaceWith'] === 'string') {
183
- sizeBytes = Buffer.byteLength(op.operation['replaceWith'], 'utf8');
184
- }
185
- else if (typeof op.operation['content'] === 'string') {
186
- sizeBytes = Buffer.byteLength(op.operation['content'], 'utf8');
187
- }
188
- return {
189
- type: kind,
190
- relativePath: op.targetPath,
191
- sizeBytes,
192
- operation: op.operation,
193
- };
194
- });
195
- const out = {
196
- schema: 'sharkcraft.plan/v2',
197
- templateId: HELPER_SYNTHETIC_TEMPLATE,
198
- variables: {
199
- helperId: plan.helperId,
200
- ...plan.variables,
201
- },
202
- projectRoot,
203
- createdAt: new Date().toISOString(),
204
- expectedChanges,
205
- };
206
- if (plan.manualSteps.length > 0) {
207
- out.note = `Manual steps required: ${plan.manualSteps.join('; ')}`;
208
- }
209
- return out;
210
- }
211
- function readFileSafe(p) {
212
- if (!existsSync(p))
213
- return null;
214
- try {
215
- return readFileSync(p, 'utf8');
216
- }
217
- catch {
218
- return null;
219
- }
220
- }
221
- function splitWords(input) {
222
- if (!input)
223
- return [];
224
- if (input.includes('-') || input.includes('_'))
225
- return input.split(/[-_]/).filter(Boolean);
226
- return input.split(/(?=[A-Z])/).map((w) => w.toLowerCase()).filter(Boolean);
227
- }
228
- function toCase(input, style) {
229
- const words = splitWords(input);
230
- if (words.length === 0)
231
- return input;
232
- switch (style) {
233
- case CaseStyle.Kebab:
234
- return words.map((w) => w.toLowerCase()).join('-');
235
- case CaseStyle.UpperSnake:
236
- return words.map((w) => w.toUpperCase()).join('_');
237
- case CaseStyle.Pascal:
238
- return words.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join('');
239
- case CaseStyle.Camel:
240
- return words
241
- .map((w, i) => (i === 0 ? w.toLowerCase() : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()))
242
- .join('');
243
- default:
244
- return input;
245
- }
246
- }
247
- function escapeRegex(s) {
248
- return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
249
- }
250
- function requireProfile(helperId, profile) {
251
- if (!profile) {
252
- throw new Error(`Helper ${helperId} requires a lifecycle profile. Pass the profile loaded from sharkcraft/plugin-lifecycle-profiles or a pack.`);
253
- }
254
- return profile;
16
+ export function buildHelperPlan(_input) {
17
+ throw new Error(`No built-in helpers are registered. Pack-contributed helpers can be installed via a sharkcraft pack.`);
255
18
  }
256
- export function buildHelperPlan(input) {
257
- const def = HELPERS.find((h) => h.id === input.helperId);
258
- if (!def) {
259
- throw new Error(`Unknown helper id: ${input.helperId}`);
260
- }
261
- for (const v of def.variables) {
262
- if (v.required && !input.vars[v.name]) {
263
- throw new Error(`Helper ${def.id} requires variable "${v.name}".`);
264
- }
265
- }
266
- const ops = [];
267
- const manual = [];
268
- const conflicts = [];
269
- switch (input.helperId) {
270
- case HelperId.AddPluginKey: {
271
- const profile = requireProfile(input.helperId, input.profile);
272
- if (!profile.keyTable) {
273
- conflicts.push(`Profile "${profile.id}" has no keyTable; cannot add a plugin key entry.`);
274
- break;
275
- }
276
- const keyTablePath = profile.keyTable.path;
277
- const keyName = input.vars.key;
278
- const key = toCase(keyName, profile.keyTable.keyCase);
279
- const value = toCase(keyName, profile.keyTable.valueCase);
280
- ops.push({
281
- targetPath: keyTablePath,
282
- operation: {
283
- kind: 'insert-before',
284
- anchor: '} as const;',
285
- snippet: ` ${key}: '${value}',\n`,
286
- ifMissing: `${key}:`,
287
- description: `Register key-table entry ${key} = '${value}'.`,
288
- },
289
- });
290
- break;
291
- }
292
- case HelperId.RemovePluginKey: {
293
- const profile = requireProfile(input.helperId, input.profile);
294
- if (!profile.keyTable) {
295
- conflicts.push(`Profile "${profile.id}" has no keyTable; nothing to remove.`);
296
- break;
297
- }
298
- const keyTablePath = profile.keyTable.path;
299
- const keyName = input.vars.key;
300
- const key = toCase(keyName, profile.keyTable.keyCase);
301
- const value = toCase(keyName, profile.keyTable.valueCase);
302
- const file = join(input.projectRoot, keyTablePath);
303
- const content = readFileSafe(file);
304
- const re = new RegExp(`\\s*${escapeRegex(key)}:\\s*['"]${escapeRegex(value)}['"],?\\n`);
305
- const m = content?.match(re);
306
- if (m) {
307
- ops.push({
308
- targetPath: keyTablePath,
309
- operation: {
310
- kind: 'replace',
311
- find: m[0],
312
- replaceWith: '',
313
- description: `Remove key-table entry ${key}.`,
314
- },
315
- });
316
- }
317
- else {
318
- conflicts.push(`Key-table entry ${key} not found in ${keyTablePath}.`);
319
- }
320
- break;
321
- }
322
- case HelperId.RenamePluginKey: {
323
- const profile = requireProfile(input.helperId, input.profile);
324
- if (!profile.keyTable) {
325
- conflicts.push(`Profile "${profile.id}" has no keyTable; nothing to rename.`);
326
- break;
327
- }
328
- const keyTablePath = profile.keyTable.path;
329
- const oldName = input.vars.old;
330
- const newName = input.vars.new;
331
- const oldKey = toCase(oldName, profile.keyTable.keyCase);
332
- const newKey = toCase(newName, profile.keyTable.keyCase);
333
- const oldValue = toCase(oldName, profile.keyTable.valueCase);
334
- const newValue = toCase(newName, profile.keyTable.valueCase);
335
- const file = join(input.projectRoot, keyTablePath);
336
- const content = readFileSafe(file);
337
- const re = new RegExp(`(\\s*)${escapeRegex(oldKey)}:\\s*['"]${escapeRegex(oldValue)}['"](,?\\n)`);
338
- const m = content?.match(re);
339
- if (m) {
340
- ops.push({
341
- targetPath: keyTablePath,
342
- operation: {
343
- kind: 'replace',
344
- find: m[0],
345
- replaceWith: `${m[1]}${newKey}: '${newValue}'${m[2]}`,
346
- description: `Rename key-table entry ${oldKey} → ${newKey}.`,
347
- },
348
- });
349
- }
350
- else {
351
- conflicts.push(`Key-table entry ${oldKey} not found.`);
352
- }
353
- break;
354
- }
355
- case HelperId.AddBarrelExport: {
356
- const barrel = input.vars.barrel;
357
- const from = input.vars.from;
358
- ops.push({
359
- targetPath: barrel,
360
- operation: {
361
- kind: 'export',
362
- from,
363
- description: `Append export * from '${from}' to ${barrel}.`,
364
- },
365
- });
366
- break;
367
- }
368
- case HelperId.RemoveBarrelExport: {
369
- const barrel = input.vars.barrel;
370
- const from = input.vars.from;
371
- const content = readFileSafe(join(input.projectRoot, barrel));
372
- const lines = (content ?? '').split('\n');
373
- const match = lines.find((l) => l.includes(`'${from}'`) || l.includes(`"${from}"`));
374
- if (match) {
375
- ops.push({
376
- targetPath: barrel,
377
- operation: {
378
- kind: 'replace',
379
- find: match + '\n',
380
- replaceWith: '',
381
- description: `Remove export * from '${from}' from ${barrel}.`,
382
- },
383
- });
384
- }
385
- else {
386
- conflicts.push(`No export referencing '${from}' in ${barrel}.`);
387
- }
388
- break;
389
- }
390
- case HelperId.AddEventEntry: {
391
- const plugin = input.vars.plugin;
392
- const eventPascal = input.vars.event;
393
- const upper = toCase(eventPascal, CaseStyle.UpperSnake);
394
- let eventsPath = input.vars.eventsPath;
395
- if (!eventsPath) {
396
- const profile = requireProfile(input.helperId, input.profile);
397
- const root = profile.pluginRoots[0];
398
- if (!root) {
399
- conflicts.push(`Profile "${profile.id}" has no pluginRoots; cannot derive eventsPath.`);
400
- break;
401
- }
402
- eventsPath = `${root.path}/${plugin}/events.ts`;
403
- }
404
- const beginMarker = `// ─── ${eventPascal} event (helper) ───`;
405
- const snippet = `\n${beginMarker}\n` +
406
- `export interface ${eventPascal}Payload {}\n` +
407
- `// ${eventPascal} event entry; wire EventType.${upper} manually.\n` +
408
- `// ─── end ${eventPascal} event ───\n`;
409
- ops.push({
410
- targetPath: eventsPath,
411
- operation: {
412
- kind: 'append',
413
- snippet,
414
- ifMissing: beginMarker,
415
- description: `Append ${eventPascal} event block to ${eventsPath}.`,
416
- },
417
- });
418
- manual.push(`Add the EventType.${upper} = '${plugin}.${toCase(eventPascal, CaseStyle.Camel)}' enum entry inside the host's EventType enum.`);
419
- break;
420
- }
421
- case HelperId.RemoveEventEntry: {
422
- const plugin = input.vars.plugin;
423
- const eventPascal = input.vars.event;
424
- let eventsPath = input.vars.eventsPath;
425
- if (!eventsPath) {
426
- const profile = requireProfile(input.helperId, input.profile);
427
- const root = profile.pluginRoots[0];
428
- if (!root) {
429
- conflicts.push(`Profile "${profile.id}" has no pluginRoots; cannot derive eventsPath.`);
430
- break;
431
- }
432
- eventsPath = `${root.path}/${plugin}/events.ts`;
433
- }
434
- const file = join(input.projectRoot, eventsPath);
435
- const content = readFileSafe(file);
436
- const beginMarker = `// ─── ${eventPascal} event`;
437
- const endMarker = `// ─── end ${eventPascal} event ───`;
438
- if (content && content.includes(beginMarker) && content.includes(endMarker)) {
439
- const start = content.indexOf(beginMarker);
440
- const end = content.indexOf(endMarker) + endMarker.length + 1;
441
- const block = content.slice(start, end);
442
- ops.push({
443
- targetPath: eventsPath,
444
- operation: {
445
- kind: 'replace',
446
- find: block,
447
- replaceWith: '',
448
- description: `Remove ${eventPascal} event block from ${eventsPath}.`,
449
- },
450
- });
451
- }
452
- else {
453
- conflicts.push(`Event block ${eventPascal} not found in ${eventsPath}.`);
454
- }
455
- break;
456
- }
457
- case HelperId.AddDefaultRegistration: {
458
- const pascal = input.vars.pascal;
459
- manual.push(`Register ${pascal} default providers in the runtime composition layer (composer location varies — review manually).`);
460
- break;
461
- }
462
- case HelperId.RemoveDefaultRegistration: {
463
- const pascal = input.vars.pascal;
464
- manual.push(`Remove ${pascal} default providers from the runtime composition layer (composer location varies — review manually).`);
465
- break;
466
- }
467
- case HelperId.AddComposerEntry: {
468
- const plugin = input.vars.plugin;
469
- manual.push(`Append ${plugin} entry to the appropriate composer. Composer locations vary — review manually.`);
470
- break;
471
- }
472
- case HelperId.RemoveComposerEntry: {
473
- const plugin = input.vars.plugin;
474
- manual.push(`Remove ${plugin} entry from the appropriate composer. Composer locations vary — review manually.`);
475
- break;
476
- }
477
- case HelperId.RenamePluginFolder: {
478
- const oldName = input.vars.old;
479
- const newName = input.vars.new;
480
- const profile = requireProfile(input.helperId, input.profile);
481
- for (const root of profile.pluginRoots) {
482
- manual.push(`git mv ${root.path}/${oldName} ${root.path}/${newName}`);
483
- }
484
- break;
485
- }
486
- case HelperId.RemoveUserPluginEntry: {
487
- const key = input.vars.key;
488
- manual.push(`Search for "${key}" in user-facing key-by-scope tables and remove the corresponding entry. Heuristic — review manually.`);
489
- break;
490
- }
491
- }
492
- return {
493
- schema: 'sharkcraft.helper-plan/v1',
494
- helperId: input.helperId,
495
- variables: { ...input.vars },
496
- ops,
497
- manualSteps: manual,
498
- conflicts,
499
- destructive: def.destructive,
500
- humanReviewRequired: def.requiresHumanReview,
501
- };
19
+ export function helperPlanToSavedPlan(plan, _projectRoot) {
20
+ return plan;
502
21
  }
503
22
  export function renderHelperPlanText(plan) {
504
23
  const lines = [];
505
- lines.push(`=== Helper plan: ${plan.helperId} ===`);
506
- lines.push(` destructive ${plan.destructive ? 'YES' : 'no'}`);
507
- lines.push(` review ${plan.humanReviewRequired ? 'human review required' : 'auto'}`);
508
- lines.push('');
509
- lines.push(`Operations (${plan.ops.length}):`);
510
- for (const op of plan.ops) {
511
- const o = op.operation;
512
- lines.push(` • ${op.targetPath} [${o.kind ?? '?'}]`);
513
- if (o.description)
514
- lines.push(` ${o.description}`);
515
- }
516
- if (plan.manualSteps.length > 0) {
517
- lines.push('');
518
- lines.push(`Manual steps:`);
519
- for (const m of plan.manualSteps)
520
- lines.push(` • ${m}`);
521
- }
522
- if (plan.conflicts.length > 0) {
523
- lines.push('');
524
- lines.push(`Conflicts:`);
525
- for (const c of plan.conflicts)
526
- lines.push(` • ${c}`);
527
- }
528
- return lines.join('\n') + '\n';
24
+ lines.push(`Helper plan: ${String(plan.helperId)}`);
25
+ lines.push(`Ops: ${plan.ops.length}`);
26
+ lines.push(`Conflicts: ${plan.conflicts.length}`);
27
+ return lines.join('\n');
529
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"impact-analysis.d.ts","sourceRoot":"","sources":["../src/impact-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact-analysis.d.ts","sourceRoot":"","sources":["../src/impact-analysis.ts"],"names":[],"mappings":"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"}
@@ -366,10 +366,10 @@ function affectedPolicies(ctx, affected, boundary) {
366
366
  severity: 'warning',
367
367
  });
368
368
  }
369
- if (affected.some((a) => a.kind === AreaKind.Core || a.kind === AreaKind.Kernel)) {
369
+ if (affected.some((a) => a.kind === AreaKind.Core)) {
370
370
  concerns.push({
371
371
  policyId: 'core.protected-area',
372
- reason: 'Core / kernel area touched; requires elevated review.',
372
+ reason: 'Core area touched; requires elevated review.',
373
373
  severity: 'error',
374
374
  });
375
375
  }
@@ -442,7 +442,7 @@ function classifyRisk(input) {
442
442
  score += 18;
443
443
  reasons.push({
444
444
  code: 'core-area',
445
- message: 'Touches core / kernel area.',
445
+ message: 'Touches core area.',
446
446
  });
447
447
  }
448
448
  if (input.boundaryCount > 0) {
@@ -610,9 +610,8 @@ export async function analyzeImpact(inspection, input) {
610
610
  }));
611
611
  const publicApi = files.some((f) => f.endsWith('/index.ts') ||
612
612
  f.endsWith('main.ts') ||
613
- f.includes('plugin-api/') ||
614
613
  f.includes('public-api/'));
615
- const hitsCore = affectedAreas.some((a) => a.kind === AreaKind.Core || a.kind === AreaKind.Kernel || a.kind === AreaKind.Common);
614
+ const hitsCore = affectedAreas.some((a) => a.kind === AreaKind.Core);
616
615
  const hitsPolicy = files.some((f) => f.includes('policy') || f.includes('policy-engine'));
617
616
  const hitsTemplates = templates.length > 0 || pipelines.length > 0;
618
617
  const ownershipReview = (ownership?.requiredReviewFiles.length ?? 0) > 0;
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export * from './test-runner.js';
22
22
  export * from './plan-review.js';
23
23
  export * from './onboarding.js';
24
24
  export * from './onboarding-report.js';
25
+ export * from './synthesize-from-onboarding.js';
25
26
  export * from './onboarding-drafts.js';
26
27
  export * from './onboarding-diff.js';
27
28
  export * from './onboarding-adoption.js';
@@ -47,7 +48,6 @@ export * from './dev-session-html.js';
47
48
  export * from './dashboard/dashboard-data.js';
48
49
  export * from './git-helpers.js';
49
50
  export * from './boundaries-changed-only.js';
50
- export * from './plugin-lifecycle.js';
51
51
  export * from './helper-registry.js';
52
52
  export * from './pack-author-ux.js';
53
53
  export * from './pack-test-runner.js';
@@ -174,7 +174,6 @@ export * from './changes-summary.js';
174
174
  export * from './pr-summary.js';
175
175
  export * from './ci-integrity-report.js';
176
176
  export * from './uncertainty.js';
177
- export * from './plugin-lifecycle-profile-registry.js';
178
177
  export * from './contract-template-registry.js';
179
178
  export * from './migration-profile-registry.js';
180
179
  export * from './profile-registry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ export * from "./test-runner.js";
22
22
  export * from "./plan-review.js";
23
23
  export * from "./onboarding.js";
24
24
  export * from "./onboarding-report.js";
25
+ export * from "./synthesize-from-onboarding.js";
25
26
  export * from "./onboarding-drafts.js";
26
27
  export * from "./onboarding-diff.js";
27
28
  export * from "./onboarding-adoption.js";
@@ -47,7 +48,6 @@ export * from "./dev-session-html.js";
47
48
  export * from "./dashboard/dashboard-data.js";
48
49
  export * from "./git-helpers.js";
49
50
  export * from "./boundaries-changed-only.js";
50
- export * from "./plugin-lifecycle.js";
51
51
  export * from "./helper-registry.js";
52
52
  export * from "./pack-author-ux.js";
53
53
  export * from "./pack-test-runner.js";
@@ -174,7 +174,6 @@ export * from "./changes-summary.js";
174
174
  export * from "./pr-summary.js";
175
175
  export * from "./ci-integrity-report.js";
176
176
  export * from "./uncertainty.js";
177
- export * from "./plugin-lifecycle-profile-registry.js";
178
177
  export * from "./contract-template-registry.js";
179
178
  export * from "./migration-profile-registry.js";
180
179
  export * from "./profile-registry.js";