@planu/cli 1.0.0 → 1.0.2
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/config/license-plans.json +202 -196
- package/dist/engine/filesystem-watcher/index.d.ts +31 -0
- package/dist/engine/filesystem-watcher/index.d.ts.map +1 -0
- package/dist/engine/filesystem-watcher/index.js +101 -0
- package/dist/engine/filesystem-watcher/index.js.map +1 -0
- package/dist/engine/living-specs/criteria-matcher.d.ts +12 -0
- package/dist/engine/living-specs/criteria-matcher.d.ts.map +1 -0
- package/dist/engine/living-specs/criteria-matcher.js +105 -0
- package/dist/engine/living-specs/criteria-matcher.js.map +1 -0
- package/dist/engine/living-specs/file-scanner.d.ts +11 -0
- package/dist/engine/living-specs/file-scanner.d.ts.map +1 -0
- package/dist/engine/living-specs/file-scanner.js +56 -0
- package/dist/engine/living-specs/file-scanner.js.map +1 -0
- package/dist/engine/living-specs/index.d.ts +9 -0
- package/dist/engine/living-specs/index.d.ts.map +1 -0
- package/dist/engine/living-specs/index.js +137 -0
- package/dist/engine/living-specs/index.js.map +1 -0
- package/dist/engine/skills-evaluator/eval-store.d.ts +4 -0
- package/dist/engine/skills-evaluator/eval-store.d.ts.map +1 -0
- package/dist/engine/skills-evaluator/eval-store.js +22 -0
- package/dist/engine/skills-evaluator/eval-store.js.map +1 -0
- package/dist/engine/skills-evaluator/index.d.ts +5 -0
- package/dist/engine/skills-evaluator/index.d.ts.map +1 -0
- package/dist/engine/skills-evaluator/index.js +54 -0
- package/dist/engine/skills-evaluator/index.js.map +1 -0
- package/dist/engine/skills-evaluator/scenario-runner.d.ts +7 -0
- package/dist/engine/skills-evaluator/scenario-runner.d.ts.map +1 -0
- package/dist/engine/skills-evaluator/scenario-runner.js +44 -0
- package/dist/engine/skills-evaluator/scenario-runner.js.map +1 -0
- package/dist/engine/skills-evaluator/skill-reader.d.ts +8 -0
- package/dist/engine/skills-evaluator/skill-reader.d.ts.map +1 -0
- package/dist/engine/skills-evaluator/skill-reader.js +152 -0
- package/dist/engine/skills-evaluator/skill-reader.js.map +1 -0
- package/dist/engine/spec-state-syncer.d.ts +16 -0
- package/dist/engine/spec-state-syncer.d.ts.map +1 -0
- package/dist/engine/spec-state-syncer.js +98 -0
- package/dist/engine/spec-state-syncer.js.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/eval-skill-v2-handler.d.ts +3 -0
- package/dist/tools/eval-skill-v2-handler.d.ts.map +1 -0
- package/dist/tools/eval-skill-v2-handler.js +53 -0
- package/dist/tools/eval-skill-v2-handler.js.map +1 -0
- package/dist/tools/filesystem-hooks-handler.d.ts +8 -0
- package/dist/tools/filesystem-hooks-handler.d.ts.map +1 -0
- package/dist/tools/filesystem-hooks-handler.js +96 -0
- package/dist/tools/filesystem-hooks-handler.js.map +1 -0
- package/dist/tools/reconcile-spec-living-handler.d.ts +6 -0
- package/dist/tools/reconcile-spec-living-handler.d.ts.map +1 -0
- package/dist/tools/reconcile-spec-living-handler.js +52 -0
- package/dist/tools/reconcile-spec-living-handler.js.map +1 -0
- package/dist/tools/register-filesystem-hooks-tools.d.ts +3 -0
- package/dist/tools/register-filesystem-hooks-tools.d.ts.map +1 -0
- package/dist/tools/register-filesystem-hooks-tools.js +85 -0
- package/dist/tools/register-filesystem-hooks-tools.js.map +1 -0
- package/dist/tools/register-living-specs-tools.d.ts +3 -0
- package/dist/tools/register-living-specs-tools.d.ts.map +1 -0
- package/dist/tools/register-living-specs-tools.js +24 -0
- package/dist/tools/register-living-specs-tools.js.map +1 -0
- package/dist/tools/register-skills-eval-tools.d.ts +3 -0
- package/dist/tools/register-skills-eval-tools.d.ts.map +1 -0
- package/dist/tools/register-skills-eval-tools.js +29 -0
- package/dist/tools/register-skills-eval-tools.js.map +1 -0
- package/dist/tools/register-spec-331-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-331-tools.js +3 -7
- package/dist/tools/register-spec-331-tools.js.map +1 -1
- package/dist/tools/sync-spec-state-handler.d.ts +18 -0
- package/dist/tools/sync-spec-state-handler.d.ts.map +1 -0
- package/dist/tools/sync-spec-state-handler.js +177 -0
- package/dist/tools/sync-spec-state-handler.js.map +1 -0
- package/dist/tools/update-status/side-effects.d.ts.map +1 -1
- package/dist/tools/update-status/side-effects.js +11 -0
- package/dist/tools/update-status/side-effects.js.map +1 -1
- package/dist/types/filesystem-hooks.d.ts +30 -0
- package/dist/types/filesystem-hooks.d.ts.map +1 -0
- package/dist/types/filesystem-hooks.js +3 -0
- package/dist/types/filesystem-hooks.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/living-specs.d.ts +35 -0
- package/dist/types/living-specs.d.ts.map +1 -0
- package/dist/types/living-specs.js +3 -0
- package/dist/types/living-specs.js.map +1 -0
- package/dist/types/skills-evaluation.d.ts +38 -0
- package/dist/types/skills-evaluation.d.ts.map +1 -0
- package/dist/types/skills-evaluation.js +3 -0
- package/dist/types/skills-evaluation.js.map +1 -0
- package/dist/types/spec/core.d.ts +17 -0
- package/dist/types/spec/core.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/license-plans.json +202 -196
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// engine/skills-evaluator/skill-reader.ts — Reads skill files and parses eval scenarios (SPEC-332)
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
export async function readSkillContent(skillName, projectPath) {
|
|
5
|
+
const filePath = join(projectPath, '.planu', 'skills', skillName, 'SKILL.md');
|
|
6
|
+
try {
|
|
7
|
+
return await readFile(filePath, 'utf-8');
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Extract the YAML frontmatter block from skill content. */
|
|
14
|
+
function extractFrontmatter(content) {
|
|
15
|
+
const match = /^---\r?\n([\s\S]*?)\r?\n---/.exec(content);
|
|
16
|
+
return match?.[1] ?? '';
|
|
17
|
+
}
|
|
18
|
+
/** Parse a scalar YAML value (quoted or unquoted). */
|
|
19
|
+
function parseScalar(raw) {
|
|
20
|
+
const trimmed = raw.trim();
|
|
21
|
+
const isDoubleQuoted = trimmed.startsWith('"') && trimmed.endsWith('"');
|
|
22
|
+
const isSingleQuoted = trimmed.startsWith("'") && trimmed.endsWith("'");
|
|
23
|
+
if (isDoubleQuoted || isSingleQuoted) {
|
|
24
|
+
return trimmed.slice(1, -1);
|
|
25
|
+
}
|
|
26
|
+
return trimmed;
|
|
27
|
+
}
|
|
28
|
+
/** Parse an inline YAML array: ["a", "b"] or ['a', 'b']. */
|
|
29
|
+
function parseInlineArray(raw) {
|
|
30
|
+
const inner = raw.trim().replace(/^\[/, '').replace(/\]$/, '').trim();
|
|
31
|
+
if (!inner) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
return inner.split(',').map((s) => parseScalar(s.trim()));
|
|
35
|
+
}
|
|
36
|
+
function toScenario(partial) {
|
|
37
|
+
return {
|
|
38
|
+
name: partial.name ?? '',
|
|
39
|
+
description: partial.description ?? '',
|
|
40
|
+
input: partial.input ?? '',
|
|
41
|
+
expectedKeywords: partial.expectedKeywords ?? [],
|
|
42
|
+
expectedPatterns: partial.expectedPatterns ?? [],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Process a named-field line, returning a patch and updated list mode. */
|
|
46
|
+
function processFieldLine(trimmed) {
|
|
47
|
+
if (trimmed.startsWith('description:')) {
|
|
48
|
+
return {
|
|
49
|
+
patch: { description: parseScalar(trimmed.slice('description:'.length).trim()) },
|
|
50
|
+
listMode: null,
|
|
51
|
+
done: false,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (trimmed.startsWith('input:')) {
|
|
55
|
+
return {
|
|
56
|
+
patch: { input: parseScalar(trimmed.slice('input:'.length).trim()) },
|
|
57
|
+
listMode: null,
|
|
58
|
+
done: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (trimmed.startsWith('expectedKeywords:')) {
|
|
62
|
+
const rest = trimmed.slice('expectedKeywords:'.length).trim();
|
|
63
|
+
if (rest.startsWith('[')) {
|
|
64
|
+
return { patch: { expectedKeywords: parseInlineArray(rest) }, listMode: null, done: false };
|
|
65
|
+
}
|
|
66
|
+
return { patch: { expectedKeywords: [] }, listMode: 'keywords', done: false };
|
|
67
|
+
}
|
|
68
|
+
if (trimmed.startsWith('expectedPatterns:')) {
|
|
69
|
+
const rest = trimmed.slice('expectedPatterns:'.length).trim();
|
|
70
|
+
if (rest.startsWith('[')) {
|
|
71
|
+
return { patch: { expectedPatterns: parseInlineArray(rest) }, listMode: null, done: false };
|
|
72
|
+
}
|
|
73
|
+
return { patch: { expectedPatterns: [] }, listMode: 'patterns', done: false };
|
|
74
|
+
}
|
|
75
|
+
// Unknown top-level key — end of eval_scenarios block
|
|
76
|
+
return { patch: {}, listMode: null, done: true };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Parse all eval_scenarios blocks from YAML frontmatter text.
|
|
80
|
+
* Returns an array of complete SkillsEvalScenario objects.
|
|
81
|
+
*/
|
|
82
|
+
function parseScenarioLines(lines) {
|
|
83
|
+
const results = [];
|
|
84
|
+
let current = null;
|
|
85
|
+
let listMode = null;
|
|
86
|
+
for (const rawLine of lines) {
|
|
87
|
+
const trimmed = rawLine.trimEnd().trim();
|
|
88
|
+
if (trimmed.startsWith('- name:')) {
|
|
89
|
+
if (current?.name !== undefined) {
|
|
90
|
+
results.push(toScenario(current));
|
|
91
|
+
}
|
|
92
|
+
current = {
|
|
93
|
+
name: parseScalar(trimmed.slice('- name:'.length).trim()),
|
|
94
|
+
description: '',
|
|
95
|
+
input: '',
|
|
96
|
+
expectedKeywords: [],
|
|
97
|
+
expectedPatterns: [],
|
|
98
|
+
};
|
|
99
|
+
listMode = null;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (!current) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (listMode === 'keywords' && trimmed.startsWith('- ')) {
|
|
106
|
+
current = {
|
|
107
|
+
...current,
|
|
108
|
+
expectedKeywords: [...(current.expectedKeywords ?? []), parseScalar(trimmed.slice(2))],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
else if (listMode === 'patterns' && trimmed.startsWith('- ')) {
|
|
112
|
+
current = {
|
|
113
|
+
...current,
|
|
114
|
+
expectedPatterns: [...(current.expectedPatterns ?? []), parseScalar(trimmed.slice(2))],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
else if (!trimmed.startsWith('-') && !trimmed.startsWith(' ') && trimmed !== '') {
|
|
118
|
+
const { patch, listMode: newMode, done } = processFieldLine(trimmed);
|
|
119
|
+
if (done) {
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
current = { ...current, ...patch };
|
|
123
|
+
listMode = newMode;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (current?.name !== undefined) {
|
|
127
|
+
results.push(toScenario(current));
|
|
128
|
+
}
|
|
129
|
+
return results;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parse eval_scenarios from skill content frontmatter.
|
|
133
|
+
* Supports block and inline YAML array format.
|
|
134
|
+
*/
|
|
135
|
+
export function parseEvalScenarios(skillContent) {
|
|
136
|
+
try {
|
|
137
|
+
const frontmatter = extractFrontmatter(skillContent);
|
|
138
|
+
if (!frontmatter) {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
const scenariosStart = frontmatter.indexOf('eval_scenarios:');
|
|
142
|
+
if (scenariosStart === -1) {
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
const afterKey = frontmatter.slice(scenariosStart + 'eval_scenarios:'.length);
|
|
146
|
+
return parseScenarioLines(afterKey.split('\n'));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=skill-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-reader.js","sourceRoot":"","sources":["../../../src/engine/skills-evaluator/skill-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SpecStatus, SpecStatusEntry, SyncReport } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Scan planu/specs for spec.md files, compare their YAML status against
|
|
4
|
+
* the provided data entries, and return a list of specs that need updating
|
|
5
|
+
* together with a partial report (divergences + errors already populated).
|
|
6
|
+
*
|
|
7
|
+
* The caller (tool layer) is responsible for persisting updates to storage.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectSpecStateDivergences(projectPath: string, dataEntries: SpecStatusEntry[]): Promise<{
|
|
10
|
+
updates: {
|
|
11
|
+
specId: string;
|
|
12
|
+
newStatus: SpecStatus;
|
|
13
|
+
}[];
|
|
14
|
+
report: SyncReport;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=spec-state-syncer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-state-syncer.d.ts","sourceRoot":"","sources":["../../src/engine/spec-state-syncer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiFjF;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CA0BvF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// engine/spec-state-syncer.ts — SPEC-334: Pure logic for spec state synchronisation.
|
|
2
|
+
// Compares YAML frontmatter status values from spec.md files against provided data
|
|
3
|
+
// and produces a report of divergences. Storage I/O is handled by the tool layer.
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
|
+
import { glob } from 'glob';
|
|
6
|
+
import { parseFrontmatter } from './frontmatter-parser.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Constants
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const VALID_STATUSES = new Set([
|
|
11
|
+
'draft',
|
|
12
|
+
'review',
|
|
13
|
+
'approved',
|
|
14
|
+
'implementing',
|
|
15
|
+
'done',
|
|
16
|
+
'discarded',
|
|
17
|
+
]);
|
|
18
|
+
const SPEC_ID_RE = /SPEC-\d+/;
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Helpers
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
function extractSpecId(filePath) {
|
|
23
|
+
const match = SPEC_ID_RE.exec(filePath);
|
|
24
|
+
return match?.[0] ?? null;
|
|
25
|
+
}
|
|
26
|
+
function isValidStatus(value) {
|
|
27
|
+
return typeof value === 'string' && VALID_STATUSES.has(value);
|
|
28
|
+
}
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Internal — process a single spec.md file
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
async function processSingleSpec(filePath, dataStatusMap, report) {
|
|
33
|
+
const specId = extractSpecId(filePath);
|
|
34
|
+
if (specId === null) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
let content;
|
|
38
|
+
try {
|
|
39
|
+
content = await readFile(filePath, 'utf-8');
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
43
|
+
report.errors.push(`Failed to read ${filePath}: ${msg}`);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const { metadata } = parseFrontmatter(content);
|
|
47
|
+
const yamlStatus = metadata.status;
|
|
48
|
+
if (yamlStatus === undefined || yamlStatus === null) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
if (!isValidStatus(yamlStatus)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const dataStatus = dataStatusMap.get(specId);
|
|
55
|
+
if (dataStatus === undefined) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (yamlStatus === dataStatus) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
report.divergences.push({ specId, yamlStatus, dataStatus });
|
|
62
|
+
return { specId, newStatus: yamlStatus };
|
|
63
|
+
}
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Public API — pure engine functions (no storage I/O)
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
/**
|
|
68
|
+
* Scan planu/specs for spec.md files, compare their YAML status against
|
|
69
|
+
* the provided data entries, and return a list of specs that need updating
|
|
70
|
+
* together with a partial report (divergences + errors already populated).
|
|
71
|
+
*
|
|
72
|
+
* The caller (tool layer) is responsible for persisting updates to storage.
|
|
73
|
+
*/
|
|
74
|
+
export async function detectSpecStateDivergences(projectPath, dataEntries) {
|
|
75
|
+
const report = { synced: 0, divergences: [], errors: [] };
|
|
76
|
+
const updates = [];
|
|
77
|
+
const dataStatusMap = new Map(dataEntries.map((s) => [s.id, s.status]));
|
|
78
|
+
let specFiles;
|
|
79
|
+
try {
|
|
80
|
+
specFiles = await glob('planu/specs/*/spec.md', {
|
|
81
|
+
cwd: projectPath,
|
|
82
|
+
absolute: true,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
87
|
+
report.errors.push(`Failed to glob spec files in ${projectPath}: ${msg}`);
|
|
88
|
+
return { updates, report };
|
|
89
|
+
}
|
|
90
|
+
for (const filePath of specFiles) {
|
|
91
|
+
const result = await processSingleSpec(filePath, dataStatusMap, report);
|
|
92
|
+
if (result !== null) {
|
|
93
|
+
updates.push(result);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return { updates, report };
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=spec-state-syncer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-state-syncer.js","sourceRoot":"","sources":["../../src/engine/spec-state-syncer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -79,6 +79,7 @@ import { registerWorkspaceTools } from './tools/register-workspace-tools.js';
|
|
|
79
79
|
import { registerExportTools } from './tools/register-export-tools.js';
|
|
80
80
|
import { registerLivingSpecTools } from './tools/register-living-spec-tools.js';
|
|
81
81
|
import { registerLivingSpecAdvancedTools } from './tools/register-living-spec-advanced-tools.js';
|
|
82
|
+
import { registerLivingSpecsTools } from './tools/register-living-specs-tools.js';
|
|
82
83
|
import { registerSpecRegistryTools } from './tools/register-spec-registry-tools.js';
|
|
83
84
|
import { registerSkillRegistryTools } from './tools/register-skill-registry-tools.js';
|
|
84
85
|
import { registerScanTools } from './tools/register-scan-tools.js';
|
|
@@ -109,6 +110,7 @@ import { registerReconcileSkillsTool } from './tools/reconcile-skills.js';
|
|
|
109
110
|
import { registerReconcileHooksTool } from './tools/reconcile-hooks.js';
|
|
110
111
|
import { registerAiEcosystemStatusTool } from './tools/ai-ecosystem-status.js';
|
|
111
112
|
import { registerSyncAiConfigsTool } from './tools/sync-ai-configs.js';
|
|
113
|
+
import { registerSyncSpecStateTool, startupSync } from './tools/sync-spec-state-handler.js';
|
|
112
114
|
import { PLANU_VERSION } from './config/version.js';
|
|
113
115
|
import { handleActivateLicense } from './tools/activate-license.js';
|
|
114
116
|
import { GroupManager } from './engine/tool-groups/group-manager.js';
|
|
@@ -150,6 +152,8 @@ import { registerApiContractValidationTools } from './tools/register-spec-322-to
|
|
|
150
152
|
import { registerSpec323Tools } from './tools/register-spec-323-tools.js';
|
|
151
153
|
import { registerProductInsightsTools } from './tools/register-product-insights-tools.js';
|
|
152
154
|
import { registerSpec331Tools } from './tools/register-spec-331-tools.js';
|
|
155
|
+
import { registerFilesystemHooksTools } from './tools/register-filesystem-hooks-tools.js';
|
|
156
|
+
import { registerSkillsEvalTools } from './tools/register-skills-eval-tools.js';
|
|
153
157
|
import { registerTrialTools } from './tools/register-trial-tools.js';
|
|
154
158
|
// Server setup
|
|
155
159
|
const SERVER_INSTRUCTIONS = [
|
|
@@ -307,6 +311,7 @@ function registerExtendedTools(s) {
|
|
|
307
311
|
registerExportTools(s);
|
|
308
312
|
registerLivingSpecTools(s);
|
|
309
313
|
registerLivingSpecAdvancedTools(s);
|
|
314
|
+
registerLivingSpecsTools(s);
|
|
310
315
|
registerSpecRegistryTools(s);
|
|
311
316
|
registerSkillRegistryTools(s);
|
|
312
317
|
registerScanTools(s);
|
|
@@ -335,6 +340,7 @@ function registerExtendedTools(s) {
|
|
|
335
340
|
registerReconcileHooksTool(s);
|
|
336
341
|
registerAiEcosystemStatusTool(s);
|
|
337
342
|
registerSyncAiConfigsTool(s);
|
|
343
|
+
registerSyncSpecStateTool(s);
|
|
338
344
|
registerBacklogTools(s);
|
|
339
345
|
registerLessonsTools(s);
|
|
340
346
|
registerCheckpointTool(s);
|
|
@@ -370,6 +376,8 @@ function registerExtendedTools(s) {
|
|
|
370
376
|
registerSpec323Tools(s);
|
|
371
377
|
registerProductInsightsTools(s);
|
|
372
378
|
registerSpec331Tools(s);
|
|
379
|
+
registerFilesystemHooksTools(s);
|
|
380
|
+
registerSkillsEvalTools(s);
|
|
373
381
|
registerTrialTools(s);
|
|
374
382
|
registerPrompts(s);
|
|
375
383
|
}
|
|
@@ -387,6 +395,10 @@ async function main() {
|
|
|
387
395
|
checkForUpdates().catch(() => {
|
|
388
396
|
/* best-effort */
|
|
389
397
|
});
|
|
398
|
+
// SPEC-334: Sync planu/ YAML frontmatter status → data/ store (non-blocking)
|
|
399
|
+
startupSync().catch((err) => {
|
|
400
|
+
console.error('[Planu] Startup spec state sync failed:', err);
|
|
401
|
+
});
|
|
390
402
|
// Auto-activate license from environment variable if present
|
|
391
403
|
const envKey = process.env.SDD_LICENSE_KEY;
|
|
392
404
|
if (envKey) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,+CAA+C;AAC/C,mFAAmF;AAEnF,8EAA8E;AAC9E,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,WAAW;IACX,UAAU;IACV,SAAS;IACT,OAAO;IACP,MAAM;IACN,SAAS;CACV,CAAC;AACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,eAAe;AACf,MAAM,mBAAmB,GAAG;IAC1B,wCAAwC;IACxC,sFAAsF;IACtF,8FAA8F;IAC9F,yFAAyF;IACzF,kFAAkF;IAClF,EAAE;IACF,6FAA6F;IAC7F,EAAE;IACF,oDAAoD;IACpD,8KAA8K;IAC9K,oHAAoH;IACpH,mGAAmG;IACnG,6GAA6G;IAC7G,yEAAyE;IACzE,qHAAqH;IACrH,qFAAqF;IACrF,2DAA2D;IAC3D,oFAAoF;IACpF,gIAAgI;IAChI,mGAAmG;IACnG,4FAA4F;IAC5F,EAAE;IACF,wDAAwD;IACxD,EAAE;IACF,wFAAwF;IACxF,0FAA0F;IAC1F,qFAAqF;IACrF,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,+HAA+H;IAC/H,oGAAoG;IACpG,qFAAqF;IACrF,2FAA2F;IAC3F,oGAAoG;IACpG,gHAAgH;IAChH,0FAA0F;IAC1F,qFAAqF;IACrF,gGAAgG;IAChG,yEAAyE;IACzE,kGAAkG;IAClG,sHAAsH;IACtH,yFAAyF;IACzF,yEAAyE;IACzE,qFAAqF;IACrF,EAAE;IACF,6DAA6D;IAC7D,sEAAsE;IACtE,+EAA+E;IAC/E,kFAAkF;IAClF,gFAAgF;IAChF,EAAE;IACF,6CAA6C;IAC7C,0HAA0H;IAC1H,uIAAuI;IACvI,0GAA0G;IAC1G,+EAA+E;IAC/E,kGAAkG;IAClG,+NAA+N;IAC/N,uGAAuG;IACvG,4IAA4I;IAC5I,EAAE;IACF,yDAAyD;IACzD,+IAA+I;IAC/I,2GAA2G;IAC3G,kLAAkL;IAClL,mHAAmH;IACnH,6HAA6H;IAC7H,6GAA6G;IAC7G,EAAE;IACF,oEAAoE;IACpE,qFAAqF;IACrF,wFAAwF;IACxF,0FAA0F;IAC1F,iHAAiH;IACjH,4GAA4G;IAC5G,8FAA8F;IAC9F,6FAA6F;IAC7F,2GAA2G;IAC3G,mFAAmF;IACnF,wFAAwF;IACxF,qGAAqG;IACrG,yFAAyF;IACzF,yFAAyF;IACzF,kFAAkF;IAClF,kFAAkF;IAClF,qFAAqF;IACrF,+EAA+E;IAC/E,uGAAuG;IACvG,kGAAkG;IAClG,EAAE;IACF,mDAAmD;IACnD,yFAAyF;IACzF,4FAA4F;IAC5F,8DAA8D;IAC9D,8FAA8F;IAC9F,8GAA8G;IAC9G,EAAE;IACF,oCAAoC;IACpC,6NAA6N;CAC9N,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,iBAAiB,CAAC,CAAY;IACrC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,6BAA6B,CAAC,CAAC,CAAC,CAAC;IACjC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpB,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAC7B,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAY;IACzC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5B,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,+BAA+B,CAAC,CAAC,CAAC,CAAC;IACnC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAC7B,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC9B,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,8BAA8B,CAAC,CAAC,CAAC,CAAC;IAClC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpB,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAC/B,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC9B,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,8BAA8B,CAAC,CAAC,CAAC,CAAC;IAClC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,kCAAkC,CAAC,CAAC,CAAC,CAAC;IACtC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5B,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC9B,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAC/B,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC9B,6BAA6B,CAAC,CAAC,CAAC,CAAC;IACjC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAC7B,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,+BAA+B,CAAC,CAAC,CAAC,CAAC;IACnC,mCAAmC,CAAC,CAAC,CAAC,CAAC;IACvC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAC/B,+BAA+B,CAAC,CAAC,CAAC,CAAC;IACnC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC5B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC9B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,gCAAgC,CAAC,CAAC,CAAC,CAAC;IACpC,gCAAgC,CAAC,CAAC,CAAC,CAAC;IACpC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,gCAAgC,CAAC,CAAC,CAAC,CAAC;IACpC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,6BAA6B,CAAC,CAAC,CAAC,CAAC;IACjC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC3B,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,kCAAkC,CAAC,CAAC,CAAC,CAAC;IACtC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAChC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACtB,eAAe,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AACD,SAAS,eAAe;IACtB,MAAM,CAAC,GAAG,gBAAgB,CACxB,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAChG,CAAC;IACF,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrB,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kEAAkE;AAClE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;AAEjC,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,8EAA8E;IAC9E,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3B,iBAAiB;IACnB,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,qBAAqB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACzE,kDAAkD;YAClD,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yGAAyG;IACzG,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAC1B,eAAe,CAAC,YAAY,CAAC,CAAC;IAE9B,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AACxE,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAc,EAAE,EAAE;IACjD,sBAAsB;IACtB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;IACnD,sBAAsB;IACtB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-skill-v2-handler.d.ts","sourceRoot":"","sources":["../../src/tools/eval-skill-v2-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAoB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAmDvF,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAUnF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// tools/eval-skill-v2-handler.ts — MCP tool handler for skills evaluation framework (SPEC-332)
|
|
2
|
+
import { evaluateSkill, getEvalResults, listScenarios } from '../engine/skills-evaluator/index.js';
|
|
3
|
+
import { textResult } from './response-helpers.js';
|
|
4
|
+
function formatScenarioLine(r) {
|
|
5
|
+
const status = r.passed ? 'PASS' : 'FAIL';
|
|
6
|
+
const base = ` [${status}] ${r.scenarioName} — score: ${r.qualityScore.toFixed(2)}`;
|
|
7
|
+
const missing = r.keywordsMissing.length > 0 ? `\n Missing keywords: ${r.keywordsMissing.join(', ')}` : '';
|
|
8
|
+
const patterns = r.patternsTotal > 0 ? `\n Patterns: ${r.patternsMatched}/${r.patternsTotal} matched` : '';
|
|
9
|
+
return `${base}${missing}${patterns}`;
|
|
10
|
+
}
|
|
11
|
+
function formatEvalResult(result) {
|
|
12
|
+
const flag = result.flagged ? ' [FLAGGED]' : '';
|
|
13
|
+
const header = [
|
|
14
|
+
`Skill: ${result.skillName}${flag}`,
|
|
15
|
+
`Evaluated: ${result.evaluatedAt}`,
|
|
16
|
+
`Overall score: ${result.overallScore.toFixed(2)} (${result.scenariosPassed}/${result.scenariosRun} scenarios passed)`,
|
|
17
|
+
`Recommendation: ${result.recommendation}`,
|
|
18
|
+
'',
|
|
19
|
+
'Scenario breakdown:',
|
|
20
|
+
].join('\n');
|
|
21
|
+
const scenarioLines = result.runResults.map(formatScenarioLine).join('\n');
|
|
22
|
+
return `${header}\n${scenarioLines}`;
|
|
23
|
+
}
|
|
24
|
+
async function handleEval(skillName, projectPath) {
|
|
25
|
+
const result = await evaluateSkill(skillName, projectPath);
|
|
26
|
+
return textResult(formatEvalResult(result));
|
|
27
|
+
}
|
|
28
|
+
async function handleResults(skillName, projectPath) {
|
|
29
|
+
const result = await getEvalResults(skillName, projectPath);
|
|
30
|
+
if (result === null) {
|
|
31
|
+
return textResult('No results yet. Run eval first.');
|
|
32
|
+
}
|
|
33
|
+
return textResult(formatEvalResult(result));
|
|
34
|
+
}
|
|
35
|
+
async function handleListScenarios(skillName, projectPath) {
|
|
36
|
+
const scenarios = await listScenarios(skillName, projectPath);
|
|
37
|
+
if (scenarios.length === 0) {
|
|
38
|
+
return textResult('No scenarios defined in SKILL.md');
|
|
39
|
+
}
|
|
40
|
+
const lines = scenarios.map((s, i) => `${i + 1}. ${s.name}: ${s.description}`);
|
|
41
|
+
return textResult(`Scenarios for "${skillName}":\n${lines.join('\n')}`);
|
|
42
|
+
}
|
|
43
|
+
export async function handleEvalSkillV2(input) {
|
|
44
|
+
const { action, skillName, projectPath } = input;
|
|
45
|
+
if (action === 'eval') {
|
|
46
|
+
return handleEval(skillName, projectPath);
|
|
47
|
+
}
|
|
48
|
+
if (action === 'results') {
|
|
49
|
+
return handleResults(skillName, projectPath);
|
|
50
|
+
}
|
|
51
|
+
return handleListScenarios(skillName, projectPath);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=eval-skill-v2-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-skill-v2-handler.js","sourceRoot":"","sources":["../../src/tools/eval-skill-v2-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ConfigureFilesystemHooksInput, ToolResult } from '../types/index.js';
|
|
2
|
+
import { getDefaultHooksConfig } from '../engine/filesystem-watcher/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles the configure_filesystem_hooks and filesystem_hooks_status tool calls.
|
|
5
|
+
*/
|
|
6
|
+
export declare function handleConfigureFilesystemHooks(input: ConfigureFilesystemHooksInput): Promise<ToolResult>;
|
|
7
|
+
export { getDefaultHooksConfig };
|
|
8
|
+
//# sourceMappingURL=filesystem-hooks-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-hooks-handler.d.ts","sourceRoot":"","sources":["../../src/tools/filesystem-hooks-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAGL,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAE/C;;GAEG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAwFD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { loadHooksConfig, saveHooksConfig, getDefaultHooksConfig, } from '../engine/filesystem-watcher/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles the configure_filesystem_hooks and filesystem_hooks_status tool calls.
|
|
4
|
+
*/
|
|
5
|
+
export async function handleConfigureFilesystemHooks(input) {
|
|
6
|
+
const { action, projectPath } = input;
|
|
7
|
+
if (action === 'enable') {
|
|
8
|
+
return handleEnable(projectPath);
|
|
9
|
+
}
|
|
10
|
+
if (action === 'disable') {
|
|
11
|
+
return handleDisable(projectPath);
|
|
12
|
+
}
|
|
13
|
+
if (action === 'add-hook') {
|
|
14
|
+
return handleAddHook(input);
|
|
15
|
+
}
|
|
16
|
+
if (action === 'remove-hook') {
|
|
17
|
+
return handleRemoveHook(input);
|
|
18
|
+
}
|
|
19
|
+
if (action === 'list') {
|
|
20
|
+
return handleList(projectPath);
|
|
21
|
+
}
|
|
22
|
+
return handleStatus(projectPath);
|
|
23
|
+
}
|
|
24
|
+
async function handleEnable(projectPath) {
|
|
25
|
+
const config = await loadHooksConfig(projectPath);
|
|
26
|
+
const updated = { ...config, enabled: true };
|
|
27
|
+
await saveHooksConfig(projectPath, updated);
|
|
28
|
+
return { content: [{ type: 'text', text: 'Filesystem hooks enabled.' }] };
|
|
29
|
+
}
|
|
30
|
+
async function handleDisable(projectPath) {
|
|
31
|
+
const config = await loadHooksConfig(projectPath);
|
|
32
|
+
const updated = { ...config, enabled: false };
|
|
33
|
+
await saveHooksConfig(projectPath, updated);
|
|
34
|
+
return { content: [{ type: 'text', text: 'Filesystem hooks disabled.' }] };
|
|
35
|
+
}
|
|
36
|
+
async function handleAddHook(input) {
|
|
37
|
+
if (!input.hook) {
|
|
38
|
+
return {
|
|
39
|
+
content: [{ type: 'text', text: 'Error: hook is required for add-hook action.' }],
|
|
40
|
+
isError: true,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const config = await loadHooksConfig(input.projectPath);
|
|
44
|
+
const updated = { ...config, hooks: [...config.hooks, input.hook] };
|
|
45
|
+
await saveHooksConfig(input.projectPath, updated);
|
|
46
|
+
const { event, pattern, tool } = input.hook;
|
|
47
|
+
return {
|
|
48
|
+
content: [{ type: 'text', text: `Hook added: ${event} on ${pattern} → ${tool}` }],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async function handleRemoveHook(input) {
|
|
52
|
+
if (input.hookIndex === undefined) {
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: 'text', text: 'Error: hookIndex is required for remove-hook action.' }],
|
|
55
|
+
isError: true,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const config = await loadHooksConfig(input.projectPath);
|
|
59
|
+
if (input.hookIndex < 0 || input.hookIndex >= config.hooks.length) {
|
|
60
|
+
return {
|
|
61
|
+
content: [
|
|
62
|
+
{
|
|
63
|
+
type: 'text',
|
|
64
|
+
text: `Error: hookIndex ${input.hookIndex} out of bounds (${config.hooks.length} hooks).`,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
isError: true,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const hooks = [...config.hooks];
|
|
71
|
+
hooks.splice(input.hookIndex, 1);
|
|
72
|
+
await saveHooksConfig(input.projectPath, { ...config, hooks });
|
|
73
|
+
return { content: [{ type: 'text', text: 'Hook removed.' }] };
|
|
74
|
+
}
|
|
75
|
+
async function handleList(projectPath) {
|
|
76
|
+
const config = await loadHooksConfig(projectPath);
|
|
77
|
+
if (config.hooks.length === 0) {
|
|
78
|
+
return { content: [{ type: 'text', text: 'No filesystem hooks configured.' }] };
|
|
79
|
+
}
|
|
80
|
+
const lines = config.hooks.map((h, i) => {
|
|
81
|
+
const debounce = h.debounceMs !== undefined ? ` (debounce: ${h.debounceMs}ms)` : '';
|
|
82
|
+
return `[${i}] ${h.event} on "${h.pattern}" → ${h.tool}${debounce}`;
|
|
83
|
+
});
|
|
84
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
85
|
+
}
|
|
86
|
+
async function handleStatus(projectPath) {
|
|
87
|
+
const config = await loadHooksConfig(projectPath);
|
|
88
|
+
const defaulted = config.hooks.length === 0 && !config.enabled;
|
|
89
|
+
const configSource = defaulted ? ' (default — no hooks.json found)' : '';
|
|
90
|
+
const status = config.enabled ? 'enabled' : 'disabled';
|
|
91
|
+
const text = `Filesystem hooks: ${status}${configSource}\n` + `Configured hooks: ${config.hooks.length}`;
|
|
92
|
+
return { content: [{ type: 'text', text }] };
|
|
93
|
+
}
|
|
94
|
+
// Re-export for tests
|
|
95
|
+
export { getDefaultHooksConfig };
|
|
96
|
+
//# sourceMappingURL=filesystem-hooks-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-hooks-handler.js","sourceRoot":"","sources":["../../src/tools/filesystem-hooks-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LivingSpecReconcileInput, ToolResult } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format the LivingSpecReconcileResult as readable markdown for the tool response.
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleReconcileSpecLiving(input: LivingSpecReconcileInput): Promise<ToolResult>;
|
|
6
|
+
//# sourceMappingURL=reconcile-spec-living-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-spec-living-handler.d.ts","sourceRoot":"","sources":["../../src/tools/reconcile-spec-living-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG9E;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
|