@pantion/mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/feature-set.d.ts +14 -0
  2. package/dist/feature-set.d.ts.map +1 -0
  3. package/dist/feature-set.js +38 -0
  4. package/dist/feature-set.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +56 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/prompts/convergence-prompts.d.ts +4 -0
  10. package/dist/prompts/convergence-prompts.d.ts.map +1 -0
  11. package/dist/prompts/convergence-prompts.js +76 -0
  12. package/dist/prompts/convergence-prompts.js.map +1 -0
  13. package/dist/prompts/index.d.ts +4 -0
  14. package/dist/prompts/index.d.ts.map +1 -0
  15. package/dist/prompts/index.js +7 -0
  16. package/dist/prompts/index.js.map +1 -0
  17. package/dist/prompts/workflow-prompts.d.ts +9 -0
  18. package/dist/prompts/workflow-prompts.d.ts.map +1 -0
  19. package/dist/prompts/workflow-prompts.js +249 -0
  20. package/dist/prompts/workflow-prompts.js.map +1 -0
  21. package/dist/resources/canon-resources.d.ts +4 -0
  22. package/dist/resources/canon-resources.d.ts.map +1 -0
  23. package/dist/resources/canon-resources.js +160 -0
  24. package/dist/resources/canon-resources.js.map +1 -0
  25. package/dist/server.d.ts +9 -0
  26. package/dist/server.d.ts.map +1 -0
  27. package/dist/server.js +47 -0
  28. package/dist/server.js.map +1 -0
  29. package/dist/tools/amend.d.ts +4 -0
  30. package/dist/tools/amend.d.ts.map +1 -0
  31. package/dist/tools/amend.js +106 -0
  32. package/dist/tools/amend.js.map +1 -0
  33. package/dist/tools/approve.d.ts +4 -0
  34. package/dist/tools/approve.d.ts.map +1 -0
  35. package/dist/tools/approve.js +60 -0
  36. package/dist/tools/approve.js.map +1 -0
  37. package/dist/tools/check-convergence.d.ts +4 -0
  38. package/dist/tools/check-convergence.d.ts.map +1 -0
  39. package/dist/tools/check-convergence.js +50 -0
  40. package/dist/tools/check-convergence.js.map +1 -0
  41. package/dist/tools/check.d.ts +4 -0
  42. package/dist/tools/check.d.ts.map +1 -0
  43. package/dist/tools/check.js +190 -0
  44. package/dist/tools/check.js.map +1 -0
  45. package/dist/tools/create-skill.d.ts +4 -0
  46. package/dist/tools/create-skill.d.ts.map +1 -0
  47. package/dist/tools/create-skill.js +58 -0
  48. package/dist/tools/create-skill.js.map +1 -0
  49. package/dist/tools/decompose.d.ts +4 -0
  50. package/dist/tools/decompose.d.ts.map +1 -0
  51. package/dist/tools/decompose.js +56 -0
  52. package/dist/tools/decompose.js.map +1 -0
  53. package/dist/tools/index.d.ts +4 -0
  54. package/dist/tools/index.d.ts.map +1 -0
  55. package/dist/tools/index.js +47 -0
  56. package/dist/tools/index.js.map +1 -0
  57. package/dist/tools/list-canons.d.ts +4 -0
  58. package/dist/tools/list-canons.d.ts.map +1 -0
  59. package/dist/tools/list-canons.js +28 -0
  60. package/dist/tools/list-canons.js.map +1 -0
  61. package/dist/tools/migrate.d.ts +4 -0
  62. package/dist/tools/migrate.d.ts.map +1 -0
  63. package/dist/tools/migrate.js +38 -0
  64. package/dist/tools/migrate.js.map +1 -0
  65. package/dist/tools/onboard.d.ts +4 -0
  66. package/dist/tools/onboard.d.ts.map +1 -0
  67. package/dist/tools/onboard.js +27 -0
  68. package/dist/tools/onboard.js.map +1 -0
  69. package/dist/tools/reconverge.d.ts +4 -0
  70. package/dist/tools/reconverge.d.ts.map +1 -0
  71. package/dist/tools/reconverge.js +68 -0
  72. package/dist/tools/reconverge.js.map +1 -0
  73. package/dist/tools/reject.d.ts +4 -0
  74. package/dist/tools/reject.d.ts.map +1 -0
  75. package/dist/tools/reject.js +57 -0
  76. package/dist/tools/reject.js.map +1 -0
  77. package/dist/tools/reskill.d.ts +4 -0
  78. package/dist/tools/reskill.d.ts.map +1 -0
  79. package/dist/tools/reskill.js +63 -0
  80. package/dist/tools/reskill.js.map +1 -0
  81. package/dist/tools/resume.d.ts +4 -0
  82. package/dist/tools/resume.d.ts.map +1 -0
  83. package/dist/tools/resume.js +56 -0
  84. package/dist/tools/resume.js.map +1 -0
  85. package/dist/tools/reverse.d.ts +4 -0
  86. package/dist/tools/reverse.d.ts.map +1 -0
  87. package/dist/tools/reverse.js +32 -0
  88. package/dist/tools/reverse.js.map +1 -0
  89. package/dist/tools/save-canon.d.ts +4 -0
  90. package/dist/tools/save-canon.d.ts.map +1 -0
  91. package/dist/tools/save-canon.js +97 -0
  92. package/dist/tools/save-canon.js.map +1 -0
  93. package/dist/tools/start.d.ts +4 -0
  94. package/dist/tools/start.d.ts.map +1 -0
  95. package/dist/tools/start.js +83 -0
  96. package/dist/tools/start.js.map +1 -0
  97. package/dist/tools/translate.d.ts +4 -0
  98. package/dist/tools/translate.d.ts.map +1 -0
  99. package/dist/tools/translate.js +102 -0
  100. package/dist/tools/translate.js.map +1 -0
  101. package/dist/tools/update.d.ts +4 -0
  102. package/dist/tools/update.d.ts.map +1 -0
  103. package/dist/tools/update.js +42 -0
  104. package/dist/tools/update.js.map +1 -0
  105. package/dist/utils/response.d.ts +12 -0
  106. package/dist/utils/response.d.ts.map +1 -0
  107. package/dist/utils/response.js +18 -0
  108. package/dist/utils/response.js.map +1 -0
  109. package/package.json +37 -0
  110. package/protocol/commands/amend.md +188 -0
  111. package/protocol/commands/build.md +90 -0
  112. package/protocol/commands/check.md +255 -0
  113. package/protocol/commands/create-skill.md +81 -0
  114. package/protocol/commands/decompose.md +230 -0
  115. package/protocol/commands/dialog.md +173 -0
  116. package/protocol/commands/help.md +121 -0
  117. package/protocol/commands/migrate.md +173 -0
  118. package/protocol/commands/onboard.md +210 -0
  119. package/protocol/commands/quick.md +170 -0
  120. package/protocol/commands/redialog.md +252 -0
  121. package/protocol/commands/reskill.md +73 -0
  122. package/protocol/commands/resume.md +148 -0
  123. package/protocol/commands/reverse.md +312 -0
  124. package/protocol/commands/start.md +220 -0
  125. package/protocol/commands/translate.md +157 -0
  126. package/protocol/commands/update.md +205 -0
  127. package/protocol/commands/validate.md +137 -0
  128. package/protocol/core-advanced.md +188 -0
  129. package/protocol/core.md +273 -0
  130. package/protocol/pantion-future-prompt.md +88 -0
  131. package/protocol/pantion-intent.md +78 -0
  132. package/protocol/templates/acceptance-tests.md +116 -0
  133. package/protocol/templates/behavior-map.md +135 -0
  134. package/protocol/templates/traceability-map.md +56 -0
  135. package/skills/image/convergence-rules.md +55 -0
  136. package/skills/image/prompts/convergence-intro.md +25 -0
  137. package/skills/image/prompts/translate-intro.md +37 -0
  138. package/skills/image/skill.json +12 -0
  139. package/skills/image/translate.md +67 -0
  140. package/skills/skill-builder/convergence-rules.md +64 -0
  141. package/skills/skill-builder/prompts/convergence-intro.md +21 -0
  142. package/skills/skill-builder/prompts/translate-intro.md +17 -0
  143. package/skills/skill-builder/skill.json +10 -0
  144. package/skills/skill-builder/translate.md +46 -0
  145. package/skills/software/convergence-rules.md +29 -0
  146. package/skills/software/prompts/convergence-intro.md +22 -0
  147. package/skills/software/prompts/translate-intro.md +19 -0
  148. package/skills/software/skill.json +12 -0
  149. package/skills/software/translate.md +74 -0
  150. package/skills/software-brownfield/convergence-rules.md +109 -0
  151. package/skills/software-brownfield/prompts/convergence-intro.md +26 -0
  152. package/skills/software-brownfield/prompts/translate-intro.md +13 -0
  153. package/skills/software-brownfield/skill.json +12 -0
  154. package/skills/software-brownfield/translate.md +56 -0
  155. package/souls/beginner/rules.md +34 -0
  156. package/souls/beginner/soul.json +6 -0
  157. package/souls/default/rules.md +25 -0
  158. package/souls/default/soul.json +6 -0
  159. package/souls/young/rules.md +67 -0
  160. package/souls/young/soul.json +6 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Feature set — determines which tools and prompts are registered.
3
+ *
4
+ * Tools not in this list are not registered with the MCP server:
5
+ * the client cannot see them, cannot call them, they do not exist.
6
+ *
7
+ * To enable a tool: add its name to the array.
8
+ * To disable a tool: remove its name from the array.
9
+ *
10
+ * All resources are always registered (they are read-only and harmless).
11
+ */
12
+ export declare const ENABLED_TOOLS: readonly string[];
13
+ export declare function isToolEnabled(name: string): boolean;
14
+ //# sourceMappingURL=feature-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-set.d.ts","sourceRoot":"","sources":["../src/feature-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAwB1C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Feature set — determines which tools and prompts are registered.
3
+ *
4
+ * Tools not in this list are not registered with the MCP server:
5
+ * the client cannot see them, cannot call them, they do not exist.
6
+ *
7
+ * To enable a tool: add its name to the array.
8
+ * To disable a tool: remove its name from the array.
9
+ *
10
+ * All resources are always registered (they are read-only and harmless).
11
+ */
12
+ export const ENABLED_TOOLS = [
13
+ // Core set (v0.1) — enough to prove the value
14
+ 'pantion_start',
15
+ 'pantion_check-convergence',
16
+ 'pantion_save-canon',
17
+ 'pantion_list-canons',
18
+ 'pantion_check',
19
+ 'pantion_translate',
20
+ 'pantion_resume',
21
+ 'pantion_amend',
22
+ // --- Next wave (uncomment when ready) ---
23
+ // 'pantion_approve',
24
+ // 'pantion_reject',
25
+ // 'pantion_redialog',
26
+ // 'pantion_onboard',
27
+ // 'pantion_reverse',
28
+ // --- Power user (uncomment when ready) ---
29
+ // 'pantion_decompose',
30
+ // 'pantion_create-skill',
31
+ // 'pantion_reskill',
32
+ // 'pantion_update',
33
+ // 'pantion_migrate',
34
+ ];
35
+ export function isToolEnabled(name) {
36
+ return ENABLED_TOOLS.includes(name);
37
+ }
38
+ //# sourceMappingURL=feature-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-set.js","sourceRoot":"","sources":["../src/feature-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,8CAA8C;IAC9C,eAAe;IACf,2BAA2B;IAC3B,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IAEf,2CAA2C;IAC3C,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;IAErB,4CAA4C;IAC5C,uBAAuB;IACvB,0BAA0B;IAC1B,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;CACtB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { resolve, dirname } from 'node:path';
4
+ import { existsSync } from 'node:fs';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { createServer } from './server.js';
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ function parseArgs(args) {
9
+ let projectPath = process.cwd();
10
+ for (let i = 0; i < args.length; i++) {
11
+ if (args[i] === '--project-path' && args[i + 1]) {
12
+ projectPath = resolve(args[i + 1]);
13
+ i++;
14
+ }
15
+ }
16
+ return { projectPath };
17
+ }
18
+ /**
19
+ * Resolve a directory with project-local override (protocol).
20
+ * If the project has its own version, it replaces the bundled one entirely.
21
+ */
22
+ function resolveAssetDir(name, projectPath) {
23
+ const projectLocal = resolve(projectPath, name);
24
+ if (existsSync(projectLocal))
25
+ return projectLocal;
26
+ return resolveBundledDir(name);
27
+ }
28
+ /**
29
+ * Resolve a bundled directory only (skills, souls).
30
+ * Project-local versions are handled by the registry which merges both sources.
31
+ */
32
+ function resolveBundledDir(name) {
33
+ // 1. Bundled with the package (dist/../skills or dist/../souls)
34
+ const bundled = resolve(__dirname, '..', name);
35
+ if (existsSync(bundled))
36
+ return bundled;
37
+ // 2. Development: repo root (dist/../../.. = packages/mcp-server/dist → repo root)
38
+ const repoRoot = resolve(__dirname, '..', '..', '..', name);
39
+ if (existsSync(repoRoot))
40
+ return repoRoot;
41
+ throw new Error(`Cannot find bundled ${name}/ directory. Looked in:\n - ${bundled}\n - ${repoRoot}`);
42
+ }
43
+ async function main() {
44
+ const { projectPath } = parseArgs(process.argv.slice(2));
45
+ const protocolDir = resolveAssetDir('protocol', projectPath);
46
+ const skillsDir = resolveBundledDir('skills');
47
+ const soulsDir = resolveBundledDir('souls');
48
+ const server = createServer({ projectPath, protocolDir, skillsDir, soulsDir });
49
+ const transport = new StdioServerTransport();
50
+ await server.connect(transport);
51
+ }
52
+ main().catch((err) => {
53
+ console.error('Failed to start Pantion MCP server:', err);
54
+ process.exit(1);
55
+ });
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChD,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,WAAmB;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAElD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,gEAAgE;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAExC,mFAAmF;IACnF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,gCAAgC,OAAO,SAAS,QAAQ,EAAE,CACtF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -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 registerConvergencePrompts(server: McpServer, context: ServerContext): void;
4
+ //# sourceMappingURL=convergence-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convergence-prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/convergence-prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CA6F1F"}
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ import { isToolEnabled } from '../feature-set.js';
3
+ import { assembleSystemPrompt, autoSelectSkill, getSoul, } from '@pantion/core';
4
+ export function registerConvergencePrompts(server, context) {
5
+ // Prompt: start a new dialog session (replaces pantion_converge + pantion_converge-full)
6
+ if (isToolEnabled('pantion_start')) {
7
+ server.prompt('pantion_start', 'Start a new Pantion dialog session. Returns convergence instructions for the client LLM.', {
8
+ domain: z.string().optional().describe('Domain hint for skill selection'),
9
+ soul: z.string().optional().describe('Interaction style (e.g. "default", "beginner", "young")'),
10
+ mode: z.enum(['dialog', 'full']).optional().describe('Convergence mode: "dialog" (default, fast) or "full" (complete protocol)'),
11
+ }, ({ domain, soul, mode }) => {
12
+ const effectiveMode = mode ?? 'dialog';
13
+ const selection = domain
14
+ ? autoSelectSkill(domain, context.projectPath, context.skillsDir)
15
+ : null;
16
+ const soulObj = soul
17
+ ? getSoul(soul, context.projectPath, context.soulsDir)
18
+ : getSoul('default', context.projectPath, context.soulsDir);
19
+ const systemPrompt = assembleSystemPrompt({
20
+ mode: effectiveMode === 'full' ? 'start' : 'dialog',
21
+ skillRules: selection?.skill.convergenceRules,
22
+ soulRules: soulObj?.rules,
23
+ protocolDir: context.protocolDir,
24
+ });
25
+ return {
26
+ messages: [{
27
+ role: 'user',
28
+ content: {
29
+ type: 'text',
30
+ text: systemPrompt,
31
+ },
32
+ }],
33
+ };
34
+ });
35
+ }
36
+ // Prompt: resume a DRAFT canon
37
+ if (isToolEnabled('pantion_resume')) {
38
+ server.prompt('pantion_resume', 'Resume a DRAFT canon for continued convergence. Returns the existing dialog and convergence instructions.', {
39
+ canon_name: z.string().optional().describe('Name of the DRAFT canon to resume'),
40
+ }, ({ canon_name }) => ({
41
+ messages: [{
42
+ role: 'user',
43
+ content: {
44
+ type: 'text',
45
+ text: canon_name
46
+ ? `Resume converging on the DRAFT canon "${canon_name}". Call pantion_resume with canon_name="${canon_name}" to load the existing dialog and convergence instructions, then continue the convergence dialog with the user.`
47
+ : `The user wants to resume a DRAFT canon. Use pantion_list-canons to show available canons, identify DRAFT canons, then call pantion_resume with the chosen canon_name to continue convergence.`,
48
+ },
49
+ }],
50
+ }));
51
+ }
52
+ // Prompt: redialog (re-evaluate converged canon)
53
+ if (isToolEnabled('pantion_redialog')) {
54
+ server.prompt('pantion_redialog', 'Re-evaluate an existing converged canon with a better model. Conducts gap analysis and supplementary convergence.', {
55
+ existing_dialog: z.string().describe('The existing converged dialog to re-evaluate'),
56
+ canon_name: z.string().optional().describe('Name of the canon being reconverged'),
57
+ }, ({ existing_dialog, canon_name }) => {
58
+ const systemPrompt = assembleSystemPrompt({
59
+ mode: 'reconverge',
60
+ existingDialog: existing_dialog,
61
+ canonName: canon_name,
62
+ protocolDir: context.protocolDir,
63
+ });
64
+ return {
65
+ messages: [{
66
+ role: 'user',
67
+ content: {
68
+ type: 'text',
69
+ text: systemPrompt,
70
+ },
71
+ }],
72
+ };
73
+ });
74
+ }
75
+ }
76
+ //# sourceMappingURL=convergence-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convergence-prompts.js","sourceRoot":"","sources":["../../src/prompts/convergence-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,OAAO,GACR,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,OAAsB;IAClF,yFAAyF;IACzF,IAAI,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CACX,eAAe,EACf,0FAA0F,EAC1F;YACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACzE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YAC/F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;SACjI,EACD,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YACzB,MAAM,aAAa,GAAG,IAAI,IAAI,QAAQ,CAAC;YAEvC,MAAM,SAAS,GAAG,MAAM;gBACtB,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC;YAET,MAAM,OAAO,GAAG,IAAI;gBAClB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACtD,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9D,MAAM,YAAY,GAAG,oBAAoB,CAAC;gBACxC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBACnD,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,gBAAgB;gBAC7C,SAAS,EAAE,OAAO,EAAE,KAAK;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,MAAe;wBACrB,OAAO,EAAE;4BACP,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,YAAY;yBACnB;qBACF,CAAC;aACH,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,2GAA2G,EAC3G;YACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAChF,EACD,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACnB,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,UAAU;4BACd,CAAC,CAAC,yCAAyC,UAAU,2CAA2C,UAAU,iHAAiH;4BAC3N,CAAC,CAAC,+LAA+L;qBACpM;iBACF,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,IAAI,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CACX,kBAAkB,EAClB,mHAAmH,EACnH;YACE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAClF,EACD,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,oBAAoB,CAAC;gBACxC,IAAI,EAAE,YAAY;gBAClB,cAAc,EAAE,eAAe;gBAC/B,SAAS,EAAE,UAAU;gBACrB,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,MAAe;wBACrB,OAAO,EAAE;4BACP,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,YAAY;yBACnB;qBACF,CAAC;aACH,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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 registerPrompts(server: McpServer, context: ServerContext): void;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAG/E"}
@@ -0,0 +1,7 @@
1
+ import { registerConvergencePrompts } from './convergence-prompts.js';
2
+ import { registerWorkflowPrompts } from './workflow-prompts.js';
3
+ export function registerPrompts(server, context) {
4
+ registerConvergencePrompts(server, context);
5
+ registerWorkflowPrompts(server, context);
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,OAAsB;IACvE,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { ServerContext } from '../server.js';
3
+ /**
4
+ * Action-oriented prompts that instruct the client LLM to call the corresponding tool.
5
+ * These are exposed as slash commands in Claude Code.
6
+ * Only prompts for enabled tools are registered.
7
+ */
8
+ export declare function registerWorkflowPrompts(server: McpServer, _context: ServerContext): void;
9
+ //# sourceMappingURL=workflow-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/workflow-prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAUlD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAiPxF"}
@@ -0,0 +1,249 @@
1
+ import { z } from 'zod';
2
+ import { isToolEnabled } from '../feature-set.js';
3
+ /**
4
+ * Action-oriented prompts that instruct the client LLM to call the corresponding tool.
5
+ * These are exposed as slash commands in Claude Code.
6
+ * Only prompts for enabled tools are registered.
7
+ */
8
+ export function registerWorkflowPrompts(server, _context) {
9
+ const prompts = [
10
+ {
11
+ name: 'pantion_check-convergence',
12
+ description: 'Validate whether a dialog has structurally converged. Checks for DIALOGSPEC STAMP, required fields, and open questions.',
13
+ schema: { session_id: z.string().optional().describe('Session ID to check') },
14
+ handler: ({ session_id }) => ({
15
+ messages: [{
16
+ role: 'user',
17
+ content: {
18
+ type: 'text',
19
+ text: session_id
20
+ ? `Check whether the dialog in session "${session_id}" has converged. Call pantion_check-convergence with the session_id and the current dialog messages.`
21
+ : `The user wants to check if their current dialog has converged. Call pantion_check-convergence with the active session_id and dialog messages to validate convergence.`,
22
+ },
23
+ }],
24
+ }),
25
+ },
26
+ {
27
+ name: 'pantion_save-canon',
28
+ description: 'Write canon files to disk after convergence. Saves the dialog (THE CANON) and optionally a summary.',
29
+ schema: { name: z.string().optional().describe('Name for the canon') },
30
+ handler: ({ name }) => ({
31
+ messages: [{
32
+ role: 'user',
33
+ content: {
34
+ type: 'text',
35
+ text: name
36
+ ? `Save the converged dialog as canon "${name}". Call pantion_save-canon with the session_id, dialog messages, and name="${name}". Optionally generate a summary.`
37
+ : `The user wants to save their converged dialog as a canon. Ask for a canon name, then call pantion_save-canon with the session_id, dialog messages, and chosen name.`,
38
+ },
39
+ }],
40
+ }),
41
+ },
42
+ {
43
+ name: 'pantion_translate',
44
+ description: 'Translate a converged canon into project specification files (spec/requirements.md, spec/constraints.md, etc.).',
45
+ schema: { canon_name: z.string().optional().describe('Canon to translate') },
46
+ handler: ({ canon_name }) => ({
47
+ messages: [{
48
+ role: 'user',
49
+ content: {
50
+ type: 'text',
51
+ text: canon_name
52
+ ? `Translate canon "${canon_name}" into project specification files. Read the canon dialog, derive spec files (requirements.md, constraints.md, success-criteria.md, etc.), then call pantion_translate with the canon_name and generated file contents.`
53
+ : `The user wants to translate a canon into project specification files. Use pantion_list-canons to show available canons, then read the chosen canon and call pantion_translate with derived spec files.`,
54
+ },
55
+ }],
56
+ }),
57
+ },
58
+ {
59
+ name: 'pantion_check',
60
+ description: 'Run structural quality checks on a canon. Returns a scorecard with readiness verdict.',
61
+ schema: { canon_name: z.string().optional().describe('Canon to check') },
62
+ handler: ({ canon_name }) => ({
63
+ messages: [{
64
+ role: 'user',
65
+ content: {
66
+ type: 'text',
67
+ text: canon_name
68
+ ? `Run a quality check on canon "${canon_name}". Call pantion_check with canon_name="${canon_name}" and report the scorecard results.`
69
+ : `The user wants to run a quality check on a canon. Use pantion_list-canons to show available canons, then call pantion_check on the chosen canon.`,
70
+ },
71
+ }],
72
+ }),
73
+ },
74
+ {
75
+ name: 'pantion_amend',
76
+ description: 'Append an amendment to an existing converged canon. The amendment dialog is appended to the canon file.',
77
+ schema: { canon_name: z.string().optional().describe('Canon to amend') },
78
+ handler: ({ canon_name }) => ({
79
+ messages: [{
80
+ role: 'user',
81
+ content: {
82
+ type: 'text',
83
+ text: canon_name
84
+ ? `Amend canon "${canon_name}". Call pantion_amend with the canon_name, the amendment dialog, and a convergence stamp. The HUMAN STAMP will be reset to PENDING after amendment.`
85
+ : `The user wants to amend a converged canon. Use pantion_list-canons to show available canons, then conduct the amendment dialog and call pantion_amend.`,
86
+ },
87
+ }],
88
+ }),
89
+ },
90
+ {
91
+ name: 'pantion_list-canons',
92
+ description: 'List all canons in the project with their status and metadata.',
93
+ schema: {},
94
+ handler: () => ({
95
+ messages: [{
96
+ role: 'user',
97
+ content: {
98
+ type: 'text',
99
+ text: `List all canons in this project. Call pantion_list-canons and present the results to the user, showing canon names, status, and HUMAN STAMP status.`,
100
+ },
101
+ }],
102
+ }),
103
+ },
104
+ {
105
+ name: 'pantion_approve',
106
+ description: 'Approve a converged canon by filling in the HUMAN STAMP with APPROVED status. Required before translation.',
107
+ schema: { canon_name: z.string().optional().describe('Canon to approve') },
108
+ handler: ({ canon_name }) => ({
109
+ messages: [{
110
+ role: 'user',
111
+ content: {
112
+ type: 'text',
113
+ text: canon_name
114
+ ? `Approve canon "${canon_name}". Ask the user for their role (e.g. "Product Owner", "Developer"), then call pantion_approve with canon_name="${canon_name}" and the specified role.`
115
+ : `The user wants to approve a canon. Use pantion_list-canons to show available canons, ask which one to approve and for their role, then call pantion_approve.`,
116
+ },
117
+ }],
118
+ }),
119
+ },
120
+ {
121
+ name: 'pantion_reject',
122
+ description: 'Reject a converged canon by filling in the HUMAN STAMP with REJECTED status.',
123
+ schema: { canon_name: z.string().optional().describe('Canon to reject') },
124
+ handler: ({ canon_name }) => ({
125
+ messages: [{
126
+ role: 'user',
127
+ content: {
128
+ type: 'text',
129
+ text: canon_name
130
+ ? `Reject canon "${canon_name}". Ask the user for their role and optionally a reason, then call pantion_reject with canon_name="${canon_name}", the role, and an optional note.`
131
+ : `The user wants to reject a canon. Use pantion_list-canons to show available canons, ask which one to reject, their role, and optionally a reason, then call pantion_reject.`,
132
+ },
133
+ }],
134
+ }),
135
+ },
136
+ {
137
+ name: 'pantion_create-skill',
138
+ description: 'Start a new skill creation dialog using the skill-builder meta-skill.',
139
+ schema: { skill_name: z.string().optional().describe('Name for the new skill') },
140
+ handler: ({ skill_name }) => ({
141
+ messages: [{
142
+ role: 'user',
143
+ content: {
144
+ type: 'text',
145
+ text: skill_name
146
+ ? `Create a new Pantion skill named "${skill_name}". Call pantion_create-skill with skill_name="${skill_name}" to start the skill-builder convergence dialog.`
147
+ : `The user wants to create a new Pantion skill. Ask for a skill name (lowercase, hyphenated), then call pantion_create-skill to start the skill-builder convergence dialog.`,
148
+ },
149
+ }],
150
+ }),
151
+ },
152
+ {
153
+ name: 'pantion_reskill',
154
+ description: 'Re-evaluate an existing dynamic skill canon with a better model for deeper domain knowledge.',
155
+ schema: { skill_name: z.string().optional().describe('Skill to re-evaluate') },
156
+ handler: ({ skill_name }) => ({
157
+ messages: [{
158
+ role: 'user',
159
+ content: {
160
+ type: 'text',
161
+ text: skill_name
162
+ ? `Re-evaluate the skill "${skill_name}". Call pantion_reskill with skill_name="${skill_name}" to conduct a gap analysis and supplementary convergence on the skill canon.`
163
+ : `The user wants to re-evaluate an existing skill. Ask which skill to re-evaluate, then call pantion_reskill to deepen the domain knowledge.`,
164
+ },
165
+ }],
166
+ }),
167
+ },
168
+ {
169
+ name: 'pantion_decompose',
170
+ description: 'Decompose a converged canon into subsystems (architect, interface, and component canons).',
171
+ schema: { canon_name: z.string().optional().describe('Canon to decompose') },
172
+ handler: ({ canon_name }) => ({
173
+ messages: [{
174
+ role: 'user',
175
+ content: {
176
+ type: 'text',
177
+ text: canon_name
178
+ ? `Decompose canon "${canon_name}" into subsystems. Call pantion_decompose with canon_name="${canon_name}" to generate architect, interface, and component canons.`
179
+ : `The user wants to decompose a canon into subsystems. Use pantion_list-canons to show available converged canons, then call pantion_decompose on the chosen canon.`,
180
+ },
181
+ }],
182
+ }),
183
+ },
184
+ {
185
+ name: 'pantion_reverse',
186
+ description: 'Extract intent from an existing codebase and reconstruct it as a DialogSpec Canon.',
187
+ schema: { canon_name: z.string().optional().describe('Name for the resulting canon') },
188
+ handler: ({ canon_name }) => ({
189
+ messages: [{
190
+ role: 'user',
191
+ content: {
192
+ type: 'text',
193
+ text: canon_name
194
+ ? `Start a reverse Pantion session. Call pantion_reverse with canon_name="${canon_name}" to extract intent from the existing codebase and reconstruct it as a canon.`
195
+ : `The user wants to extract intent from an existing codebase. Call pantion_reverse to start a reverse Pantion session that reconstructs the codebase intent as a DialogSpec Canon.`,
196
+ },
197
+ }],
198
+ }),
199
+ },
200
+ {
201
+ name: 'pantion_onboard',
202
+ description: 'Add Pantion to an existing project. Guides through forward-only, full reverse, or partial canonization strategies.',
203
+ schema: {},
204
+ handler: () => ({
205
+ messages: [{
206
+ role: 'user',
207
+ content: {
208
+ type: 'text',
209
+ text: `The user wants to add Pantion to their existing project. Call pantion_onboard to guide them through three strategies: forward-only (start fresh canons), full reverse (reconstruct all intent from code), or partial canonization (selective reverse for key components).`,
210
+ },
211
+ }],
212
+ }),
213
+ },
214
+ {
215
+ name: 'pantion_update',
216
+ description: 'Upgrade the Pantion Protocol itself. Performs delta analysis and provides regeneration instructions.',
217
+ schema: {},
218
+ handler: () => ({
219
+ messages: [{
220
+ role: 'user',
221
+ content: {
222
+ type: 'text',
223
+ text: `The user wants to upgrade the Pantion Protocol. Call pantion_update to read intent documents, perform delta analysis, and get instructions for regenerating protocol files.`,
224
+ },
225
+ }],
226
+ }),
227
+ },
228
+ {
229
+ name: 'pantion_migrate',
230
+ description: 'Migrate a project to the current Pantion protocol version.',
231
+ schema: {},
232
+ handler: () => ({
233
+ messages: [{
234
+ role: 'user',
235
+ content: {
236
+ type: 'text',
237
+ text: `The user wants to migrate their project to the current Pantion protocol version. Call pantion_migrate to detect version mismatches, evaluate canon compatibility, and get migration instructions.`,
238
+ },
239
+ }],
240
+ }),
241
+ },
242
+ ];
243
+ for (const prompt of prompts) {
244
+ if (isToolEnabled(prompt.name)) {
245
+ server.prompt(prompt.name, prompt.description, prompt.schema, prompt.handler);
246
+ }
247
+ }
248
+ }
249
+ //# sourceMappingURL=workflow-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-prompts.js","sourceRoot":"","sources":["../../src/prompts/workflow-prompts.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 registerResources(server: McpServer, context: ServerContext): void;
4
+ //# sourceMappingURL=canon-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canon-resources.d.ts","sourceRoot":"","sources":["../../src/resources/canon-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAYlD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAsNjF"}