@pantion/dialogs 0.2.1
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/dialogs/dialog-builder/convergence-rules.md +64 -0
- package/dialogs/dialog-builder/dialog.json +10 -0
- package/dialogs/dialog-builder/prompts/convergence-intro.md +21 -0
- package/dialogs/dialog-builder/prompts/translate-intro.md +17 -0
- package/dialogs/dialog-builder/translate.md +46 -0
- package/dialogs/image/convergence-rules.md +55 -0
- package/dialogs/image/dialog.json +12 -0
- package/dialogs/image/prompts/convergence-intro.md +25 -0
- package/dialogs/image/prompts/translate-intro.md +37 -0
- package/dialogs/image/translate.md +67 -0
- package/dialogs/software/convergence-rules.md +29 -0
- package/dialogs/software/dialog.json +12 -0
- package/dialogs/software/prompts/convergence-intro.md +22 -0
- package/dialogs/software/prompts/translate-intro.md +19 -0
- package/dialogs/software/translate.md +74 -0
- package/dialogs/software-brownfield/convergence-rules.md +109 -0
- package/dialogs/software-brownfield/dialog.json +12 -0
- package/dialogs/software-brownfield/prompts/convergence-intro.md +26 -0
- package/dialogs/software-brownfield/prompts/translate-intro.md +13 -0
- package/dialogs/software-brownfield/translate.md +56 -0
- package/dialogs/video/convergence-rules.md +96 -0
- package/dialogs/video/dialog.json +12 -0
- package/dialogs/video/prompts/convergence-intro.md +28 -0
- package/dialogs/video/prompts/translate-intro.md +41 -0
- package/dialogs/video/translate.md +81 -0
- package/dist/core/canon/index-manager.d.ts +27 -0
- package/dist/core/canon/index-manager.d.ts.map +1 -0
- package/dist/core/canon/index-manager.js +127 -0
- package/dist/core/canon/index-manager.js.map +1 -0
- package/dist/core/canon/manifest.d.ts +21 -0
- package/dist/core/canon/manifest.d.ts.map +1 -0
- package/dist/core/canon/manifest.js +56 -0
- package/dist/core/canon/manifest.js.map +1 -0
- package/dist/core/canon/validator.d.ts +12 -0
- package/dist/core/canon/validator.d.ts.map +1 -0
- package/dist/core/canon/validator.js +320 -0
- package/dist/core/canon/validator.js.map +1 -0
- package/dist/core/dialog/canon-writer.d.ts +22 -0
- package/dist/core/dialog/canon-writer.d.ts.map +1 -0
- package/dist/core/dialog/canon-writer.js +96 -0
- package/dist/core/dialog/canon-writer.js.map +1 -0
- package/dist/core/dialog/registry.d.ts +10 -0
- package/dist/core/dialog/registry.d.ts.map +1 -0
- package/dist/core/dialog/registry.js +102 -0
- package/dist/core/dialog/registry.js.map +1 -0
- package/dist/core/dialog/selector.d.ts +11 -0
- package/dist/core/dialog/selector.d.ts.map +1 -0
- package/dist/core/dialog/selector.js +32 -0
- package/dist/core/dialog/selector.js.map +1 -0
- package/dist/core/index.d.ts +20 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +30 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/protocol/convergence.d.ts +11 -0
- package/dist/core/protocol/convergence.d.ts.map +1 -0
- package/dist/core/protocol/convergence.js +30 -0
- package/dist/core/protocol/convergence.js.map +1 -0
- package/dist/core/protocol/loader.d.ts +6 -0
- package/dist/core/protocol/loader.d.ts.map +1 -0
- package/dist/core/protocol/loader.js +31 -0
- package/dist/core/protocol/loader.js.map +1 -0
- package/dist/core/protocol/stamp-parser.d.ts +46 -0
- package/dist/core/protocol/stamp-parser.d.ts.map +1 -0
- package/dist/core/protocol/stamp-parser.js +333 -0
- package/dist/core/protocol/stamp-parser.js.map +1 -0
- package/dist/core/protocol/system-prompt.d.ts +16 -0
- package/dist/core/protocol/system-prompt.d.ts.map +1 -0
- package/dist/core/protocol/system-prompt.js +68 -0
- package/dist/core/protocol/system-prompt.js.map +1 -0
- package/dist/core/session/canon-writer.d.ts +33 -0
- package/dist/core/session/canon-writer.d.ts.map +1 -0
- package/dist/core/session/canon-writer.js +152 -0
- package/dist/core/session/canon-writer.js.map +1 -0
- package/dist/core/session/manager.d.ts +10 -0
- package/dist/core/session/manager.d.ts.map +1 -0
- package/dist/core/session/manager.js +105 -0
- package/dist/core/session/manager.js.map +1 -0
- package/dist/core/skill/canon-writer.d.ts +22 -0
- package/dist/core/skill/canon-writer.d.ts.map +1 -0
- package/dist/core/skill/canon-writer.js +96 -0
- package/dist/core/skill/canon-writer.js.map +1 -0
- package/dist/core/skill/registry.d.ts +10 -0
- package/dist/core/skill/registry.d.ts.map +1 -0
- package/dist/core/skill/registry.js +102 -0
- package/dist/core/skill/registry.js.map +1 -0
- package/dist/core/skill/selector.d.ts +11 -0
- package/dist/core/skill/selector.d.ts.map +1 -0
- package/dist/core/skill/selector.js +32 -0
- package/dist/core/skill/selector.js.map +1 -0
- package/dist/core/soul/registry.d.ts +10 -0
- package/dist/core/soul/registry.d.ts.map +1 -0
- package/dist/core/soul/registry.js +73 -0
- package/dist/core/soul/registry.js.map +1 -0
- package/dist/core/types.d.ts +154 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils/fs.d.ts +14 -0
- package/dist/core/utils/fs.d.ts.map +1 -0
- package/dist/core/utils/fs.js +44 -0
- package/dist/core/utils/fs.js.map +1 -0
- package/dist/core/utils/project-detect.d.ts +3 -0
- package/dist/core/utils/project-detect.d.ts.map +1 -0
- package/dist/core/utils/project-detect.js +38 -0
- package/dist/core/utils/project-detect.js.map +1 -0
- package/dist/feature-set.d.ts +14 -0
- package/dist/feature-set.d.ts.map +1 -0
- package/dist/feature-set.js +38 -0
- package/dist/feature-set.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/convergence-prompts.d.ts +4 -0
- package/dist/prompts/convergence-prompts.d.ts.map +1 -0
- package/dist/prompts/convergence-prompts.js +76 -0
- package/dist/prompts/convergence-prompts.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +7 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/workflow-prompts.d.ts +9 -0
- package/dist/prompts/workflow-prompts.d.ts.map +1 -0
- package/dist/prompts/workflow-prompts.js +265 -0
- package/dist/prompts/workflow-prompts.js.map +1 -0
- package/dist/resources/canon-resources.d.ts +4 -0
- package/dist/resources/canon-resources.d.ts.map +1 -0
- package/dist/resources/canon-resources.js +164 -0
- package/dist/resources/canon-resources.js.map +1 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +47 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/amend.d.ts +4 -0
- package/dist/tools/amend.d.ts.map +1 -0
- package/dist/tools/amend.js +106 -0
- package/dist/tools/amend.js.map +1 -0
- package/dist/tools/approve.d.ts +4 -0
- package/dist/tools/approve.d.ts.map +1 -0
- package/dist/tools/approve.js +60 -0
- package/dist/tools/approve.js.map +1 -0
- package/dist/tools/check-convergence.d.ts +4 -0
- package/dist/tools/check-convergence.d.ts.map +1 -0
- package/dist/tools/check-convergence.js +50 -0
- package/dist/tools/check-convergence.js.map +1 -0
- package/dist/tools/check.d.ts +4 -0
- package/dist/tools/check.d.ts.map +1 -0
- package/dist/tools/check.js +190 -0
- package/dist/tools/check.js.map +1 -0
- package/dist/tools/create-dialog.d.ts +4 -0
- package/dist/tools/create-dialog.d.ts.map +1 -0
- package/dist/tools/create-dialog.js +58 -0
- package/dist/tools/create-dialog.js.map +1 -0
- package/dist/tools/create-skill.d.ts +4 -0
- package/dist/tools/create-skill.d.ts.map +1 -0
- package/dist/tools/create-skill.js +58 -0
- package/dist/tools/create-skill.js.map +1 -0
- package/dist/tools/decompose.d.ts +4 -0
- package/dist/tools/decompose.d.ts.map +1 -0
- package/dist/tools/decompose.js +56 -0
- package/dist/tools/decompose.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +49 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-canons.d.ts +4 -0
- package/dist/tools/list-canons.d.ts.map +1 -0
- package/dist/tools/list-canons.js +28 -0
- package/dist/tools/list-canons.js.map +1 -0
- package/dist/tools/migrate.d.ts +4 -0
- package/dist/tools/migrate.d.ts.map +1 -0
- package/dist/tools/migrate.js +38 -0
- package/dist/tools/migrate.js.map +1 -0
- package/dist/tools/onboard.d.ts +4 -0
- package/dist/tools/onboard.d.ts.map +1 -0
- package/dist/tools/onboard.js +27 -0
- package/dist/tools/onboard.js.map +1 -0
- package/dist/tools/reconverge.d.ts +4 -0
- package/dist/tools/reconverge.d.ts.map +1 -0
- package/dist/tools/reconverge.js +68 -0
- package/dist/tools/reconverge.js.map +1 -0
- package/dist/tools/redialog.d.ts +4 -0
- package/dist/tools/redialog.d.ts.map +1 -0
- package/dist/tools/redialog.js +63 -0
- package/dist/tools/redialog.js.map +1 -0
- package/dist/tools/reflect.d.ts +4 -0
- package/dist/tools/reflect.d.ts.map +1 -0
- package/dist/tools/reflect.js +86 -0
- package/dist/tools/reflect.js.map +1 -0
- package/dist/tools/reject.d.ts +4 -0
- package/dist/tools/reject.d.ts.map +1 -0
- package/dist/tools/reject.js +57 -0
- package/dist/tools/reject.js.map +1 -0
- package/dist/tools/reskill.d.ts +4 -0
- package/dist/tools/reskill.d.ts.map +1 -0
- package/dist/tools/reskill.js +63 -0
- package/dist/tools/reskill.js.map +1 -0
- package/dist/tools/resume.d.ts +4 -0
- package/dist/tools/resume.d.ts.map +1 -0
- package/dist/tools/resume.js +56 -0
- package/dist/tools/resume.js.map +1 -0
- package/dist/tools/reverse.d.ts +4 -0
- package/dist/tools/reverse.d.ts.map +1 -0
- package/dist/tools/reverse.js +32 -0
- package/dist/tools/reverse.js.map +1 -0
- package/dist/tools/save-canon.d.ts +4 -0
- package/dist/tools/save-canon.d.ts.map +1 -0
- package/dist/tools/save-canon.js +97 -0
- package/dist/tools/save-canon.js.map +1 -0
- package/dist/tools/start.d.ts +4 -0
- package/dist/tools/start.d.ts.map +1 -0
- package/dist/tools/start.js +83 -0
- package/dist/tools/start.js.map +1 -0
- package/dist/tools/translate.d.ts +4 -0
- package/dist/tools/translate.d.ts.map +1 -0
- package/dist/tools/translate.js +102 -0
- package/dist/tools/translate.js.map +1 -0
- package/dist/tools/update.d.ts +4 -0
- package/dist/tools/update.d.ts.map +1 -0
- package/dist/tools/update.js +42 -0
- package/dist/tools/update.js.map +1 -0
- package/dist/tools/validate.d.ts +4 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +86 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/utils/response.d.ts +12 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +18 -0
- package/dist/utils/response.js.map +1 -0
- package/package.json +37 -0
- package/protocol/commands/amend.md +188 -0
- package/protocol/commands/build.md +90 -0
- package/protocol/commands/check.md +255 -0
- package/protocol/commands/create-dialog.md +81 -0
- package/protocol/commands/decompose.md +230 -0
- package/protocol/commands/dialog.md +173 -0
- package/protocol/commands/help.md +121 -0
- package/protocol/commands/migrate.md +173 -0
- package/protocol/commands/onboard.md +210 -0
- package/protocol/commands/quick.md +170 -0
- package/protocol/commands/redialog.md +73 -0
- package/protocol/commands/reflect.md +136 -0
- package/protocol/commands/resume.md +148 -0
- package/protocol/commands/reverse.md +312 -0
- package/protocol/commands/start.md +220 -0
- package/protocol/commands/translate.md +157 -0
- package/protocol/commands/update.md +205 -0
- package/protocol/core-advanced.md +188 -0
- package/protocol/core.md +274 -0
- package/protocol/pantion-future-prompt.md +88 -0
- package/protocol/pantion-intent.md +78 -0
- package/protocol/templates/acceptance-tests.md +116 -0
- package/protocol/templates/behavior-map.md +135 -0
- package/protocol/templates/traceability-map.md +56 -0
- package/souls/beginner/rules.md +34 -0
- package/souls/beginner/soul.json +6 -0
- package/souls/default/rules.md +25 -0
- package/souls/default/soul.json +6 -0
- package/souls/young/rules.md +67 -0
- package/souls/young/soul.json +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canon-resources.js","sourceRoot":"","sources":["../../src/resources/canon-resources.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export interface ServerContext {
|
|
3
|
+
projectPath: string;
|
|
4
|
+
protocolDir: string;
|
|
5
|
+
dialogsDir: string;
|
|
6
|
+
soulsDir: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function createServer(context: ServerContext): McpServer;
|
|
9
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CA2C9D"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { registerTools } from './tools/index.js';
|
|
4
|
+
import { registerResources } from './resources/canon-resources.js';
|
|
5
|
+
import { registerPrompts } from './prompts/index.js';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const packageJson = require('../package.json');
|
|
8
|
+
export function createServer(context) {
|
|
9
|
+
const server = new McpServer({
|
|
10
|
+
name: 'pantion',
|
|
11
|
+
version: packageJson.version,
|
|
12
|
+
}, {
|
|
13
|
+
instructions: [
|
|
14
|
+
'You are connected to the Pantion Dialog MCP server.',
|
|
15
|
+
'Pantion turns ideas into unambiguous intent through structured dialog.',
|
|
16
|
+
'',
|
|
17
|
+
'How it works: the user describes what they want to build in natural language.',
|
|
18
|
+
'You call pantion_start to begin a convergence dialog — a structured conversation',
|
|
19
|
+
'that asks targeted questions until the intent is fully clear.',
|
|
20
|
+
'The result is a "canon": a permanent record of what was intended,',
|
|
21
|
+
'from which any agent can build a functionally equivalent system.',
|
|
22
|
+
'',
|
|
23
|
+
'If the user seems unsure where to start, suggest: "Describe what you want to build,',
|
|
24
|
+
'and I\'ll use Pantion to ask the right questions to turn your idea into a clear intent."',
|
|
25
|
+
'For a list of all commands, suggest /pantion-help.',
|
|
26
|
+
'',
|
|
27
|
+
'When the user invokes any Pantion tool for the first time in a session, start your response with:',
|
|
28
|
+
'',
|
|
29
|
+
'**Pantion** — Turning ideas into unambiguous intent through dialog.',
|
|
30
|
+
'',
|
|
31
|
+
'Then proceed with the tool\'s normal behavior.',
|
|
32
|
+
'',
|
|
33
|
+
'Always match the user\'s language. If the user writes in Dutch, respond in Dutch.',
|
|
34
|
+
'The Pantion identity line above should also be in the user\'s language. Examples:',
|
|
35
|
+
'- Dutch: **Pantion** — Ideeën omzetten in eenduidige intent door dialoog.',
|
|
36
|
+
'- English: **Pantion** — Turning ideas into unambiguous intent through dialog.',
|
|
37
|
+
'- German: **Pantion** — Ideen durch Dialog in eindeutige Absichten verwandeln.',
|
|
38
|
+
'',
|
|
39
|
+
'Only show this introduction ONCE per session, on the first Pantion tool invocation.',
|
|
40
|
+
].join('\n'),
|
|
41
|
+
});
|
|
42
|
+
registerTools(server, context);
|
|
43
|
+
registerResources(server, context);
|
|
44
|
+
registerPrompts(server, context);
|
|
45
|
+
return server;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAStE,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,EACD;QACE,YAAY,EAAE;YACZ,qDAAqD;YACrD,wEAAwE;YACxE,EAAE;YACF,+EAA+E;YAC/E,kFAAkF;YAClF,+DAA+D;YAC/D,mEAAmE;YACnE,kEAAkE;YAClE,EAAE;YACF,qFAAqF;YACrF,0FAA0F;YAC1F,oDAAoD;YACpD,EAAE;YACF,mGAAmG;YACnG,EAAE;YACF,qEAAqE;YACrE,EAAE;YACF,gDAAgD;YAChD,EAAE;YACF,mFAAmF;YACnF,mFAAmF;YACnF,2EAA2E;YAC3E,gFAAgF;YAChF,gFAAgF;YAChF,EAAE;YACF,qFAAqF;SACtF,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CACF,CAAC;IAEF,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../src/tools/amend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiFlD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA2D7E"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { appendAmendment, updateCanonIndex, readFileSafe, canonDir, readCanonIndex, extractHumanStamp, formatHumanStamp, replaceHumanStamp, writeFile, } from '../core/index.js';
|
|
4
|
+
import { success, error } from '../utils/response.js';
|
|
5
|
+
const messageSchema = z.object({
|
|
6
|
+
role: z.enum(['user', 'assistant']),
|
|
7
|
+
content: z.string(),
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Analyze impact: which other canons and derived files are affected by this amendment.
|
|
11
|
+
*/
|
|
12
|
+
function analyzeImpact(canonName, projectPath) {
|
|
13
|
+
const dir = canonDir(projectPath);
|
|
14
|
+
const allCanons = readCanonIndex(projectPath);
|
|
15
|
+
const affectedCanons = [];
|
|
16
|
+
const filesToRegenerate = [];
|
|
17
|
+
// Check if any other canons reference this one as parent
|
|
18
|
+
for (const canon of allCanons) {
|
|
19
|
+
if (canon.name === canonName)
|
|
20
|
+
continue;
|
|
21
|
+
const dialogPath = resolve(dir, canon.name, 'dialog.md');
|
|
22
|
+
const dialog = readFileSafe(dialogPath);
|
|
23
|
+
if (!dialog)
|
|
24
|
+
continue;
|
|
25
|
+
// Check for parent reference in stamp
|
|
26
|
+
const parentMatch = dialog.match(/PARENT:\s*(.+)/i);
|
|
27
|
+
if (parentMatch) {
|
|
28
|
+
const parent = parentMatch[1].trim().toLowerCase();
|
|
29
|
+
if (parent.includes(canonName.toLowerCase()) || parent.includes(`${canonName}-dialog`) || parent.includes(`${canonName}/dialog`)) {
|
|
30
|
+
affectedCanons.push(canon.name);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Check traceability for files that need regeneration
|
|
35
|
+
const traceabilityPath = resolve(dir, canonName, 'traceability.md');
|
|
36
|
+
const traceability = readFileSafe(traceabilityPath);
|
|
37
|
+
if (traceability) {
|
|
38
|
+
// Extract derived file paths from traceability
|
|
39
|
+
const fileRefs = traceability.match(/(?:spec\/|canon\/)[^\s|)]+\.md/g) ?? [];
|
|
40
|
+
for (const ref of fileRefs) {
|
|
41
|
+
filesToRegenerate.push(ref);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Always include summary as needing regeneration
|
|
45
|
+
const summaryPath = resolve(dir, canonName, 'summary.md');
|
|
46
|
+
if (readFileSafe(summaryPath)) {
|
|
47
|
+
filesToRegenerate.push(`canon/${canonName}/summary.md`);
|
|
48
|
+
}
|
|
49
|
+
// Consistency warning for hierarchical systems
|
|
50
|
+
let consistencyWarning;
|
|
51
|
+
if (affectedCanons.length > 0) {
|
|
52
|
+
consistencyWarning = `This canon is referenced as parent by ${affectedCanons.length} other canon(s): ${affectedCanons.join(', ')}. Run pantion_check on each to verify consistency after this amendment.`;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
affected_canons: affectedCanons,
|
|
56
|
+
files_to_regenerate: [...new Set(filesToRegenerate)],
|
|
57
|
+
consistency_warning: consistencyWarning,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function registerAmend(server, context) {
|
|
61
|
+
server.tool('pantion_amend', 'Append an amendment to an existing converged canon. The amendment dialog is appended to the canon file. Returns impact analysis with affected canons and files to regenerate.', {
|
|
62
|
+
canon_name: z.string().describe('Name of the canon to amend'),
|
|
63
|
+
project_path: z.string().optional().describe('Project directory (defaults to server project path)'),
|
|
64
|
+
amendment_dialog: z.array(messageSchema).describe('The amendment dialog to append'),
|
|
65
|
+
stamp: z.string().describe('Raw convergence stamp for the amendment'),
|
|
66
|
+
}, async ({ canon_name, project_path, amendment_dialog, stamp }) => {
|
|
67
|
+
try {
|
|
68
|
+
const projectPath = project_path ?? context.projectPath;
|
|
69
|
+
const date = new Date().toISOString().split('T')[0];
|
|
70
|
+
// Analyze impact before amending
|
|
71
|
+
const impact = analyzeImpact(canon_name, projectPath);
|
|
72
|
+
const canonPath = appendAmendment(canon_name, projectPath, amendment_dialog, stamp);
|
|
73
|
+
// Reset HUMAN STAMP to PENDING after amendment
|
|
74
|
+
const dir = canonDir(projectPath);
|
|
75
|
+
const dialogPath = resolve(dir, canon_name, 'dialog.md');
|
|
76
|
+
const updatedContent = readFileSafe(dialogPath);
|
|
77
|
+
let humanStampReset = false;
|
|
78
|
+
if (updatedContent) {
|
|
79
|
+
const humanStamp = extractHumanStamp(updatedContent);
|
|
80
|
+
if (humanStamp && humanStamp.status !== 'PENDING') {
|
|
81
|
+
const pendingStamp = formatHumanStamp({ status: 'PENDING' });
|
|
82
|
+
const resetContent = replaceHumanStamp(updatedContent, pendingStamp);
|
|
83
|
+
if (resetContent) {
|
|
84
|
+
writeFile(dialogPath, resetContent);
|
|
85
|
+
humanStampReset = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
updateCanonIndex(canon_name, 'amended', date, projectPath);
|
|
90
|
+
return success({
|
|
91
|
+
updated: true,
|
|
92
|
+
canon_path: canonPath,
|
|
93
|
+
human_stamp_reset: humanStampReset || undefined,
|
|
94
|
+
impact_analysis: {
|
|
95
|
+
affected_canons: impact.affected_canons.length > 0 ? impact.affected_canons : undefined,
|
|
96
|
+
files_to_regenerate: impact.files_to_regenerate.length > 0 ? impact.files_to_regenerate : undefined,
|
|
97
|
+
consistency_warning: impact.consistency_warning,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
return error(err instanceof Error ? err.message : String(err));
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=amend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../src/tools/amend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/tools/approve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAclD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAiE/E"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { readFileSafe, canonDir, extractConvergenceStamp, extractHumanStamp, formatHumanStamp, replaceHumanStamp, writeFile, assertSafeName, } from '../core/index.js';
|
|
4
|
+
import { success, error } from '../utils/response.js';
|
|
5
|
+
export function registerApprove(server, context) {
|
|
6
|
+
server.tool('pantion_approve', 'Approve a converged canon. Fills in the HUMAN STAMP with APPROVED status. Required before translation or building.', {
|
|
7
|
+
canon_name: z.string().describe('Name of the canon to approve'),
|
|
8
|
+
role: z.string().describe('Role of the approver (e.g. "Product Owner", "Opdrachtgever")'),
|
|
9
|
+
note: z.string().optional().describe('Optional note from the approver'),
|
|
10
|
+
project_path: z.string().optional().describe('Project directory (defaults to server project path)'),
|
|
11
|
+
}, async ({ canon_name, role, note, project_path }) => {
|
|
12
|
+
try {
|
|
13
|
+
const projectPath = project_path ?? context.projectPath;
|
|
14
|
+
assertSafeName(canon_name);
|
|
15
|
+
const dir = canonDir(projectPath);
|
|
16
|
+
const dialogPath = resolve(dir, canon_name, 'dialog.md');
|
|
17
|
+
const content = readFileSafe(dialogPath);
|
|
18
|
+
if (!content) {
|
|
19
|
+
return error(`Canon dialog not found: ${canon_name}`);
|
|
20
|
+
}
|
|
21
|
+
const stamp = extractConvergenceStamp(content);
|
|
22
|
+
if (!stamp || stamp.type === 'draft') {
|
|
23
|
+
return error('Canon is not converged. Only converged canons can be approved.');
|
|
24
|
+
}
|
|
25
|
+
const humanStamp = extractHumanStamp(content);
|
|
26
|
+
if (humanStamp && (humanStamp.status === 'APPROVED' || humanStamp.status === 'AUTO-APPROVED')) {
|
|
27
|
+
return error('Canon is already approved. Use pantion_amend or pantion_redialog to make changes, which will reset the approval.');
|
|
28
|
+
}
|
|
29
|
+
const date = new Date().toISOString().split('T')[0];
|
|
30
|
+
const newStamp = formatHumanStamp({
|
|
31
|
+
status: 'APPROVED',
|
|
32
|
+
date,
|
|
33
|
+
role,
|
|
34
|
+
note: note ?? '[not set]',
|
|
35
|
+
});
|
|
36
|
+
let updated;
|
|
37
|
+
if (humanStamp) {
|
|
38
|
+
updated = replaceHumanStamp(content, newStamp);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
updated = content + '\n\n' + newStamp + '\n';
|
|
42
|
+
}
|
|
43
|
+
if (!updated) {
|
|
44
|
+
return error('Failed to update HUMAN STAMP in dialog file.');
|
|
45
|
+
}
|
|
46
|
+
writeFile(dialogPath, updated);
|
|
47
|
+
return success({
|
|
48
|
+
approved: true,
|
|
49
|
+
canon_name,
|
|
50
|
+
date,
|
|
51
|
+
role,
|
|
52
|
+
note: note ?? undefined,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
return error(err instanceof Error ? err.message : String(err));
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=approve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/tools/approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ServerContext } from '../server.js';
|
|
3
|
+
export declare function registerCheckConvergence(server: McpServer, context: ServerContext): void;
|
|
4
|
+
//# sourceMappingURL=check-convergence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-convergence.d.ts","sourceRoot":"","sources":["../../src/tools/check-convergence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAclD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA+CxF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { validateConvergence, loadSession, saveSession, } from '../core/index.js';
|
|
3
|
+
import { success, error } from '../utils/response.js';
|
|
4
|
+
const messageSchema = z.object({
|
|
5
|
+
role: z.enum(['user', 'assistant']),
|
|
6
|
+
content: z.string(),
|
|
7
|
+
});
|
|
8
|
+
export function registerCheckConvergence(server, context) {
|
|
9
|
+
server.tool('pantion_check-convergence', 'Validate whether a dialog has structurally converged. Checks for DIALOGSPEC STAMP, required fields, and open questions.', {
|
|
10
|
+
session_id: z.string().describe('Session ID from pantion_start'),
|
|
11
|
+
dialog: z.array(messageSchema).describe('The full dialog to validate'),
|
|
12
|
+
}, async ({ session_id, dialog }) => {
|
|
13
|
+
try {
|
|
14
|
+
const messages = dialog.map((m) => ({ role: m.role, content: m.content }));
|
|
15
|
+
const result = validateConvergence(messages);
|
|
16
|
+
// Save dialog to session for recovery
|
|
17
|
+
const session = loadSession(context.projectPath, session_id);
|
|
18
|
+
if (session) {
|
|
19
|
+
session.messages = messages;
|
|
20
|
+
if (result.stamp) {
|
|
21
|
+
session.stampRaw = result.stamp.raw;
|
|
22
|
+
session.status = result.status === 'converged' ? 'converged' : 'draft';
|
|
23
|
+
}
|
|
24
|
+
saveSession(context.projectPath, session);
|
|
25
|
+
}
|
|
26
|
+
return success({
|
|
27
|
+
status: result.status,
|
|
28
|
+
valid: result.valid,
|
|
29
|
+
open_questions: result.openQuestions.length > 0 ? result.openQuestions : undefined,
|
|
30
|
+
stamp: result.stamp ? {
|
|
31
|
+
type: result.stamp.type,
|
|
32
|
+
date: result.stamp.date,
|
|
33
|
+
model: result.stamp.model,
|
|
34
|
+
canonType: result.stamp.canonType,
|
|
35
|
+
openQuestions: result.stamp.openQuestions,
|
|
36
|
+
inferencePolicy: result.stamp.inferencePolicy,
|
|
37
|
+
stabilityZones: result.stamp.stabilityZones,
|
|
38
|
+
flexZones: result.stamp.flexZones,
|
|
39
|
+
} : undefined,
|
|
40
|
+
issues: result.issues,
|
|
41
|
+
categories: result.categories,
|
|
42
|
+
score: result.score,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return error(err instanceof Error ? err.message : String(err));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=check-convergence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-convergence.js","sourceRoot":"","sources":["../../src/tools/check-convergence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA2HlD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAuG7E"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { readFileSafe, canonDir, validateCanonFile, assertSafeName, readCanonIndex, extractHumanStamp, extractCanonMetadata, } from '../core/index.js';
|
|
4
|
+
import { success, error } from '../utils/response.js';
|
|
5
|
+
/**
|
|
6
|
+
* Compute the readiness label from the 12-category score.
|
|
7
|
+
*/
|
|
8
|
+
function readinessLabel(score) {
|
|
9
|
+
if (score >= 9)
|
|
10
|
+
return 'ready';
|
|
11
|
+
if (score >= 6)
|
|
12
|
+
return 'almost';
|
|
13
|
+
return 'idea';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compute the readiness verdict: can an agent build this without further interaction?
|
|
17
|
+
*/
|
|
18
|
+
function agentReadinessTest(result) {
|
|
19
|
+
const reasons = [];
|
|
20
|
+
if (result.openQuestions.length > 0) {
|
|
21
|
+
reasons.push(`${result.openQuestions.length} open question(s) remain`);
|
|
22
|
+
}
|
|
23
|
+
if (result.categories) {
|
|
24
|
+
const fails = result.categories.filter((c) => c.status === 'fail');
|
|
25
|
+
for (const f of fails) {
|
|
26
|
+
reasons.push(`${f.name}: ${f.detail ?? 'not satisfied'}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (!result.stamp) {
|
|
30
|
+
reasons.push('No convergence stamp found');
|
|
31
|
+
}
|
|
32
|
+
else if (result.stamp.type === 'draft') {
|
|
33
|
+
reasons.push('Canon is still a DRAFT');
|
|
34
|
+
}
|
|
35
|
+
return { ready: reasons.length === 0, reasons };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check traceability: compare traceability.md with actual files on disk.
|
|
39
|
+
*/
|
|
40
|
+
function checkFileSync(canonName, projectPath) {
|
|
41
|
+
const dir = canonDir(projectPath);
|
|
42
|
+
const traceabilityPath = resolve(dir, canonName, 'traceability.md');
|
|
43
|
+
const traceability = readFileSafe(traceabilityPath);
|
|
44
|
+
const issues = [];
|
|
45
|
+
if (!traceability) {
|
|
46
|
+
issues.push('traceability.md not found');
|
|
47
|
+
return { inSync: false, issues };
|
|
48
|
+
}
|
|
49
|
+
// Extract referenced file paths from traceability (lines with file paths)
|
|
50
|
+
const fileRefs = traceability.match(/(?:spec\/|canon\/)[^\s|)]+/g) ?? [];
|
|
51
|
+
for (const ref of fileRefs) {
|
|
52
|
+
const fullPath = resolve(projectPath, ref);
|
|
53
|
+
if (!readFileSafe(fullPath)) {
|
|
54
|
+
issues.push(`Referenced file missing: ${ref}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { inSync: issues.length === 0, issues };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check hierarchical consistency for architect canons.
|
|
61
|
+
*/
|
|
62
|
+
function checkHierarchical(canonName, projectPath) {
|
|
63
|
+
const dir = canonDir(projectPath);
|
|
64
|
+
const issues = [];
|
|
65
|
+
// Read the architect canon dialog
|
|
66
|
+
const architectDialog = readFileSafe(resolve(dir, canonName, 'dialog.md'));
|
|
67
|
+
if (!architectDialog) {
|
|
68
|
+
issues.push('Architect dialog not found');
|
|
69
|
+
return { issues };
|
|
70
|
+
}
|
|
71
|
+
// Read all canons to find components and interfaces
|
|
72
|
+
const allCanons = readCanonIndex(projectPath);
|
|
73
|
+
const components = allCanons.filter((c) => c.type === 'component');
|
|
74
|
+
const interfaces = allCanons.filter((c) => c.type === 'interface');
|
|
75
|
+
if (components.length === 0 && interfaces.length === 0) {
|
|
76
|
+
issues.push('No component or interface canons found — decomposition may be incomplete');
|
|
77
|
+
}
|
|
78
|
+
// Check each component has a dialog file
|
|
79
|
+
for (const comp of components) {
|
|
80
|
+
const compDialog = readFileSafe(resolve(dir, comp.name, 'dialog.md'));
|
|
81
|
+
if (!compDialog) {
|
|
82
|
+
issues.push(`Component canon "${comp.name}" has no dialog file`);
|
|
83
|
+
}
|
|
84
|
+
if (comp.openQuestions.length > 0) {
|
|
85
|
+
issues.push(`Component "${comp.name}" has ${comp.openQuestions.length} open question(s)`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Check each interface has a dialog file
|
|
89
|
+
for (const iface of interfaces) {
|
|
90
|
+
const ifaceDialog = readFileSafe(resolve(dir, iface.name, 'dialog.md'));
|
|
91
|
+
if (!ifaceDialog) {
|
|
92
|
+
issues.push(`Interface canon "${iface.name}" has no dialog file`);
|
|
93
|
+
}
|
|
94
|
+
if (iface.openQuestions.length > 0) {
|
|
95
|
+
issues.push(`Interface "${iface.name}" has ${iface.openQuestions.length} open question(s)`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return { issues };
|
|
99
|
+
}
|
|
100
|
+
export function registerCheck(server, context) {
|
|
101
|
+
server.tool('pantion_check', 'Run structural quality checks on an existing canon. Validates convergence elements, stamp format, completeness, and agent readiness. Returns scorecard with categories, readiness verdict, and optional hierarchical consistency checks.', {
|
|
102
|
+
canon_name: z.string().describe('Name of the canon to check'),
|
|
103
|
+
project_path: z.string().optional().describe('Project directory (defaults to server project path)'),
|
|
104
|
+
}, async ({ canon_name, project_path }) => {
|
|
105
|
+
try {
|
|
106
|
+
const projectPath = project_path ?? context.projectPath;
|
|
107
|
+
assertSafeName(canon_name);
|
|
108
|
+
const dir = canonDir(projectPath);
|
|
109
|
+
const dialogPath = resolve(dir, canon_name, 'dialog.md');
|
|
110
|
+
const content = readFileSafe(dialogPath);
|
|
111
|
+
if (!content) {
|
|
112
|
+
return success({
|
|
113
|
+
issues: [{ severity: 'error', message: `Canon dialog not found: ${dialogPath}` }],
|
|
114
|
+
score: 0,
|
|
115
|
+
readiness: 'idea',
|
|
116
|
+
agent_ready: false,
|
|
117
|
+
agent_ready_reasons: ['Canon dialog not found'],
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const result = validateCanonFile(content);
|
|
121
|
+
// Scorecard: count passing categories (0-12)
|
|
122
|
+
const score = result.score ?? 0;
|
|
123
|
+
const readiness = readinessLabel(score);
|
|
124
|
+
// Agent readiness test
|
|
125
|
+
const { ready: agentReady, reasons: agentReadyReasons } = agentReadinessTest(result);
|
|
126
|
+
// File sync check
|
|
127
|
+
const fileSync = checkFileSync(canon_name, projectPath);
|
|
128
|
+
if (!fileSync.inSync) {
|
|
129
|
+
for (const issue of fileSync.issues) {
|
|
130
|
+
result.issues.push({ severity: 'warning', message: `File sync: ${issue}` });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Hierarchical checks if this is an architect canon
|
|
134
|
+
let hierarchical;
|
|
135
|
+
if (result.stamp?.canonType === 'architect') {
|
|
136
|
+
hierarchical = checkHierarchical(canon_name, projectPath);
|
|
137
|
+
for (const issue of hierarchical.issues) {
|
|
138
|
+
result.issues.push({ severity: 'warning', message: `Hierarchical: ${issue}` });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// HUMAN STAMP check
|
|
142
|
+
const humanStamp = extractHumanStamp(content);
|
|
143
|
+
const humanStampStatus = humanStamp?.status ?? 'PENDING';
|
|
144
|
+
if (humanStampStatus !== 'APPROVED' && humanStampStatus !== 'AUTO-APPROVED') {
|
|
145
|
+
result.issues.push({
|
|
146
|
+
severity: 'warning',
|
|
147
|
+
message: `HUMAN STAMP is ${humanStampStatus} — canon must be approved before translation`,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
// Total outcome: combine validator outcome with HUMAN STAMP status
|
|
151
|
+
const validatorOutcome = result.totalOutcome ?? 'FAIL';
|
|
152
|
+
let totalOutcome = validatorOutcome;
|
|
153
|
+
if (humanStampStatus !== 'APPROVED' && humanStampStatus !== 'AUTO-APPROVED') {
|
|
154
|
+
// HUMAN STAMP not authorized — downgrade to at most WARN
|
|
155
|
+
if (totalOutcome === 'PASS')
|
|
156
|
+
totalOutcome = 'WARN';
|
|
157
|
+
}
|
|
158
|
+
// Check result summary for passing to save-canon
|
|
159
|
+
const totalCategories = result.categories?.length ?? 0;
|
|
160
|
+
const checkResultSummary = `${totalOutcome} (${score}/${totalCategories})`;
|
|
161
|
+
// Canon metadata (server-generated, if present)
|
|
162
|
+
const canonMetadata = extractCanonMetadata(content);
|
|
163
|
+
return success({
|
|
164
|
+
issues: result.issues,
|
|
165
|
+
score,
|
|
166
|
+
total_outcome: totalOutcome,
|
|
167
|
+
check_result_summary: checkResultSummary,
|
|
168
|
+
readiness,
|
|
169
|
+
agent_ready: agentReady,
|
|
170
|
+
agent_ready_reasons: agentReady ? undefined : agentReadyReasons,
|
|
171
|
+
categories: result.categories,
|
|
172
|
+
stamp_status: result.stamp ? result.stamp.type : undefined,
|
|
173
|
+
human_stamp_status: humanStampStatus,
|
|
174
|
+
open_questions: result.openQuestions.length > 0 ? result.openQuestions : undefined,
|
|
175
|
+
file_sync: fileSync.inSync ? 'in_sync' : 'out_of_sync',
|
|
176
|
+
file_sync_issues: fileSync.issues.length > 0 ? fileSync.issues : undefined,
|
|
177
|
+
hierarchical: hierarchical ? {
|
|
178
|
+
issues: hierarchical.issues.length > 0 ? hierarchical.issues : undefined,
|
|
179
|
+
status: hierarchical.issues.length === 0 ? 'consistent' : 'issues_found',
|
|
180
|
+
} : undefined,
|
|
181
|
+
canon_metadata: canonMetadata ?? undefined,
|
|
182
|
+
semantic_check_instruction: 'As the client LLM, answer the following question about this canon: "Name the top 3 reasons why this canon might not yet be fully converged. If there are none, explain why not." Include your answer in the check output.',
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
return error(err instanceof Error ? err.message : String(err));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-dialog.d.ts","sourceRoot":"","sources":["../../src/tools/create-dialog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAWlD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA6DpF"}
|