opencastle 0.9.2 → 0.10.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.
Files changed (182) hide show
  1. package/README.md +12 -69
  2. package/dist/cli/doctor.d.ts.map +1 -1
  3. package/dist/cli/doctor.js +13 -7
  4. package/dist/cli/doctor.js.map +1 -1
  5. package/dist/cli/init.d.ts.map +1 -1
  6. package/dist/cli/init.js +2 -1
  7. package/dist/cli/init.js.map +1 -1
  8. package/dist/cli/init.test.d.ts +17 -0
  9. package/dist/cli/init.test.d.ts.map +1 -0
  10. package/dist/cli/init.test.js +881 -0
  11. package/dist/cli/init.test.js.map +1 -0
  12. package/dist/cli/mcp.d.ts +9 -0
  13. package/dist/cli/mcp.d.ts.map +1 -1
  14. package/dist/cli/mcp.js +56 -0
  15. package/dist/cli/mcp.js.map +1 -1
  16. package/dist/cli/run/adapters/copilot.d.ts +10 -2
  17. package/dist/cli/run/adapters/copilot.d.ts.map +1 -1
  18. package/dist/cli/run/adapters/copilot.js +83 -56
  19. package/dist/cli/run/adapters/copilot.js.map +1 -1
  20. package/dist/cli/run.js +2 -2
  21. package/dist/cli/run.js.map +1 -1
  22. package/dist/cli/stack-config-update.test.d.ts +2 -0
  23. package/dist/cli/stack-config-update.test.d.ts.map +1 -0
  24. package/dist/cli/stack-config-update.test.js +185 -0
  25. package/dist/cli/stack-config-update.test.js.map +1 -0
  26. package/dist/cli/stack-config.d.ts +27 -0
  27. package/dist/cli/stack-config.d.ts.map +1 -1
  28. package/dist/cli/stack-config.js +80 -27
  29. package/dist/cli/stack-config.js.map +1 -1
  30. package/dist/cli/types.d.ts +1 -1
  31. package/dist/cli/types.d.ts.map +1 -1
  32. package/dist/cli/update.d.ts.map +1 -1
  33. package/dist/cli/update.js +184 -17
  34. package/dist/cli/update.js.map +1 -1
  35. package/dist/orchestrator/plugins/astro/config.d.ts +3 -0
  36. package/dist/orchestrator/plugins/astro/config.d.ts.map +1 -0
  37. package/dist/orchestrator/plugins/astro/config.js +27 -0
  38. package/dist/orchestrator/plugins/astro/config.js.map +1 -0
  39. package/dist/orchestrator/plugins/chrome-devtools/config.js +2 -2
  40. package/dist/orchestrator/plugins/chrome-devtools/config.js.map +1 -1
  41. package/dist/orchestrator/plugins/contentful/config.js +1 -1
  42. package/dist/orchestrator/plugins/contentful/config.js.map +1 -1
  43. package/dist/orchestrator/plugins/convex/config.js +1 -1
  44. package/dist/orchestrator/plugins/convex/config.js.map +1 -1
  45. package/dist/orchestrator/plugins/cypress/config.d.ts +3 -0
  46. package/dist/orchestrator/plugins/cypress/config.d.ts.map +1 -0
  47. package/dist/orchestrator/plugins/cypress/config.js +15 -0
  48. package/dist/orchestrator/plugins/cypress/config.js.map +1 -0
  49. package/dist/orchestrator/plugins/figma/config.d.ts +3 -0
  50. package/dist/orchestrator/plugins/figma/config.d.ts.map +1 -0
  51. package/dist/orchestrator/plugins/figma/config.js +33 -0
  52. package/dist/orchestrator/plugins/figma/config.js.map +1 -0
  53. package/dist/orchestrator/plugins/index.d.ts.map +1 -1
  54. package/dist/orchestrator/plugins/index.js +20 -0
  55. package/dist/orchestrator/plugins/index.js.map +1 -1
  56. package/dist/orchestrator/plugins/jira/config.d.ts.map +1 -1
  57. package/dist/orchestrator/plugins/jira/config.js +2 -3
  58. package/dist/orchestrator/plugins/jira/config.js.map +1 -1
  59. package/dist/orchestrator/plugins/linear/config.js +2 -2
  60. package/dist/orchestrator/plugins/linear/config.js.map +1 -1
  61. package/dist/orchestrator/plugins/netlify/config.d.ts +3 -0
  62. package/dist/orchestrator/plugins/netlify/config.d.ts.map +1 -0
  63. package/dist/orchestrator/plugins/netlify/config.js +30 -0
  64. package/dist/orchestrator/plugins/netlify/config.js.map +1 -0
  65. package/dist/orchestrator/plugins/nextjs/config.d.ts +3 -0
  66. package/dist/orchestrator/plugins/nextjs/config.d.ts.map +1 -0
  67. package/dist/orchestrator/plugins/nextjs/config.js +35 -0
  68. package/dist/orchestrator/plugins/nextjs/config.js.map +1 -0
  69. package/dist/orchestrator/plugins/nx/config.d.ts.map +1 -1
  70. package/dist/orchestrator/plugins/nx/config.js +2 -3
  71. package/dist/orchestrator/plugins/nx/config.js.map +1 -1
  72. package/dist/orchestrator/plugins/playwright/config.d.ts +3 -0
  73. package/dist/orchestrator/plugins/playwright/config.d.ts.map +1 -0
  74. package/dist/orchestrator/plugins/playwright/config.js +25 -0
  75. package/dist/orchestrator/plugins/playwright/config.js.map +1 -0
  76. package/dist/orchestrator/plugins/prisma/config.d.ts +3 -0
  77. package/dist/orchestrator/plugins/prisma/config.d.ts.map +1 -0
  78. package/dist/orchestrator/plugins/prisma/config.js +25 -0
  79. package/dist/orchestrator/plugins/prisma/config.js.map +1 -0
  80. package/dist/orchestrator/plugins/resend/config.d.ts +3 -0
  81. package/dist/orchestrator/plugins/resend/config.d.ts.map +1 -0
  82. package/dist/orchestrator/plugins/resend/config.js +46 -0
  83. package/dist/orchestrator/plugins/resend/config.js.map +1 -0
  84. package/dist/orchestrator/plugins/sanity/config.d.ts.map +1 -1
  85. package/dist/orchestrator/plugins/sanity/config.js +1 -2
  86. package/dist/orchestrator/plugins/sanity/config.js.map +1 -1
  87. package/dist/orchestrator/plugins/slack/config.js +1 -1
  88. package/dist/orchestrator/plugins/slack/config.js.map +1 -1
  89. package/dist/orchestrator/plugins/strapi/config.js +1 -1
  90. package/dist/orchestrator/plugins/strapi/config.js.map +1 -1
  91. package/dist/orchestrator/plugins/supabase/config.d.ts.map +1 -1
  92. package/dist/orchestrator/plugins/supabase/config.js +1 -2
  93. package/dist/orchestrator/plugins/supabase/config.js.map +1 -1
  94. package/dist/orchestrator/plugins/teams/config.d.ts.map +1 -1
  95. package/dist/orchestrator/plugins/teams/config.js +1 -2
  96. package/dist/orchestrator/plugins/teams/config.js.map +1 -1
  97. package/dist/orchestrator/plugins/turborepo/config.d.ts +3 -0
  98. package/dist/orchestrator/plugins/turborepo/config.d.ts.map +1 -0
  99. package/dist/orchestrator/plugins/turborepo/config.js +15 -0
  100. package/dist/orchestrator/plugins/turborepo/config.js.map +1 -0
  101. package/dist/orchestrator/plugins/types.d.ts +7 -7
  102. package/dist/orchestrator/plugins/types.d.ts.map +1 -1
  103. package/dist/orchestrator/plugins/vercel/config.d.ts.map +1 -1
  104. package/dist/orchestrator/plugins/vercel/config.js +2 -3
  105. package/dist/orchestrator/plugins/vercel/config.js.map +1 -1
  106. package/dist/orchestrator/plugins/vitest/config.d.ts +3 -0
  107. package/dist/orchestrator/plugins/vitest/config.d.ts.map +1 -0
  108. package/dist/orchestrator/plugins/vitest/config.js +15 -0
  109. package/dist/orchestrator/plugins/vitest/config.js.map +1 -0
  110. package/package.json +2 -1
  111. package/src/cli/doctor.ts +14 -7
  112. package/src/cli/init.test.ts +1141 -0
  113. package/src/cli/init.ts +2 -1
  114. package/src/cli/mcp.ts +77 -1
  115. package/src/cli/run/adapters/copilot.ts +86 -58
  116. package/src/cli/run.ts +2 -2
  117. package/src/cli/stack-config-update.test.ts +210 -0
  118. package/src/cli/stack-config.ts +110 -37
  119. package/src/cli/types.ts +1 -1
  120. package/src/cli/update.ts +230 -23
  121. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  122. package/src/orchestrator/agents/api-designer.agent.md +1 -11
  123. package/src/orchestrator/agents/architect.agent.md +1 -9
  124. package/src/orchestrator/agents/content-engineer.agent.md +1 -5
  125. package/src/orchestrator/agents/copywriter.agent.md +1 -9
  126. package/src/orchestrator/agents/data-expert.agent.md +2 -6
  127. package/src/orchestrator/agents/database-engineer.agent.md +1 -6
  128. package/src/orchestrator/agents/developer.agent.md +2 -12
  129. package/src/orchestrator/agents/devops-expert.agent.md +1 -5
  130. package/src/orchestrator/agents/documentation-writer.agent.md +1 -4
  131. package/src/orchestrator/agents/performance-expert.agent.md +1 -5
  132. package/src/orchestrator/agents/release-manager.agent.md +1 -11
  133. package/src/orchestrator/agents/researcher.agent.md +1 -4
  134. package/src/orchestrator/agents/security-expert.agent.md +2 -7
  135. package/src/orchestrator/agents/seo-specialist.agent.md +1 -10
  136. package/src/orchestrator/agents/testing-expert.agent.md +2 -11
  137. package/src/orchestrator/agents/ui-ux-expert.agent.md +3 -10
  138. package/src/orchestrator/customizations/README.md +2 -1
  139. package/src/orchestrator/customizations/agents/skill-matrix.json +106 -0
  140. package/src/orchestrator/customizations/agents/skill-matrix.md +58 -121
  141. package/src/orchestrator/instructions/general.instructions.md +1 -1
  142. package/src/orchestrator/plugins/astro/SKILL.md +288 -0
  143. package/src/orchestrator/plugins/astro/config.ts +28 -0
  144. package/src/orchestrator/plugins/chrome-devtools/config.ts +2 -2
  145. package/src/orchestrator/plugins/contentful/config.ts +1 -1
  146. package/src/orchestrator/plugins/convex/config.ts +1 -1
  147. package/src/orchestrator/plugins/cypress/SKILL.md +145 -0
  148. package/src/orchestrator/plugins/cypress/config.ts +16 -0
  149. package/src/orchestrator/plugins/figma/SKILL.md +85 -0
  150. package/src/orchestrator/plugins/figma/config.ts +34 -0
  151. package/src/orchestrator/plugins/index.ts +20 -0
  152. package/src/orchestrator/plugins/jira/config.ts +2 -3
  153. package/src/orchestrator/plugins/linear/config.ts +2 -2
  154. package/src/orchestrator/plugins/netlify/SKILL.md +134 -0
  155. package/src/orchestrator/plugins/netlify/config.ts +31 -0
  156. package/src/orchestrator/plugins/nextjs/SKILL.md +376 -0
  157. package/src/orchestrator/plugins/nextjs/config.ts +36 -0
  158. package/src/orchestrator/plugins/nx/config.ts +2 -3
  159. package/src/orchestrator/plugins/playwright/SKILL.md +191 -0
  160. package/src/orchestrator/plugins/playwright/config.ts +26 -0
  161. package/src/orchestrator/plugins/prisma/SKILL.md +137 -0
  162. package/src/orchestrator/plugins/prisma/config.ts +26 -0
  163. package/src/orchestrator/plugins/resend/SKILL.md +187 -0
  164. package/src/orchestrator/plugins/resend/config.ts +47 -0
  165. package/src/orchestrator/plugins/sanity/config.ts +1 -2
  166. package/src/orchestrator/plugins/slack/config.ts +1 -1
  167. package/src/orchestrator/plugins/strapi/config.ts +1 -1
  168. package/src/orchestrator/plugins/supabase/config.ts +1 -2
  169. package/src/orchestrator/plugins/teams/config.ts +1 -2
  170. package/src/orchestrator/plugins/turborepo/SKILL.md +121 -0
  171. package/src/orchestrator/plugins/turborepo/config.ts +16 -0
  172. package/src/orchestrator/plugins/types.ts +7 -7
  173. package/src/orchestrator/plugins/vercel/SKILL.md +99 -0
  174. package/src/orchestrator/plugins/vercel/config.ts +2 -3
  175. package/src/orchestrator/plugins/vitest/SKILL.md +166 -0
  176. package/src/orchestrator/plugins/vitest/config.ts +16 -0
  177. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +6 -4
  178. package/src/orchestrator/prompts/create-skill.prompt.md +6 -7
  179. package/src/orchestrator/prompts/generate-task-spec.prompt.md +1 -1
  180. package/src/orchestrator/skills/agent-hooks/SKILL.md +2 -2
  181. package/src/orchestrator/skills/memory-merger/SKILL.md +1 -1
  182. package/src/orchestrator/skills/nextjs-patterns/SKILL.md +0 -200
@@ -0,0 +1,30 @@
1
+ export const config = {
2
+ id: 'netlify',
3
+ name: 'Netlify',
4
+ category: 'tech',
5
+ subCategory: 'deployment',
6
+ label: 'Netlify',
7
+ hint: 'Deployment, serverless functions, edge config',
8
+ skillName: 'netlify-deployment',
9
+ mcpServerKey: 'Netlify',
10
+ mcpConfig: {
11
+ type: 'stdio',
12
+ command: 'npx',
13
+ args: ['-y', 'netlify-mcp@latest'],
14
+ },
15
+ authType: 'env-token',
16
+ envVars: [
17
+ {
18
+ name: 'NETLIFY_AUTH_TOKEN',
19
+ hint: 'Generate at app.netlify.com → User Settings → Applications → Personal access tokens',
20
+ },
21
+ ],
22
+ agentToolMap: {
23
+ 'devops-expert': ['netlify/*'],
24
+ 'release-manager': ['netlify/*'],
25
+ },
26
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#netlify',
27
+ officialDocs: 'https://docs.netlify.com',
28
+ mcpPackage: 'netlify-mcp',
29
+ };
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/netlify/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,+CAA+C;IACrD,SAAS,EAAE,oBAAoB;IAC/B,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC;KACnC;IACD,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE;QACP;YACE,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,qFAAqF;SAC5F;KACF;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,CAAC,WAAW,CAAC;QAC9B,iBAAiB,EAAE,CAAC,WAAW,CAAC;KACjC;IACD,OAAO,EAAE,iDAAiD;IAC1D,YAAY,EAAE,0BAA0B;IACxC,UAAU,EAAE,aAAa;CAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nextjs/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAiCpB,CAAC"}
@@ -0,0 +1,35 @@
1
+ export const config = {
2
+ id: 'nextjs',
3
+ name: 'Next.js',
4
+ category: 'tech',
5
+ subCategory: 'framework',
6
+ label: 'Next.js',
7
+ hint: 'React framework with App Router, Server Components, and MCP devtools',
8
+ skillName: 'nextjs-framework',
9
+ mcpServerKey: 'next-devtools',
10
+ mcpConfig: {
11
+ type: 'stdio',
12
+ command: 'npx',
13
+ args: ['-y', 'next-devtools-mcp@latest'],
14
+ },
15
+ authType: 'none',
16
+ envVars: [],
17
+ agentToolMap: {
18
+ 'developer': [
19
+ 'next-devtools/get_errors', 'next-devtools/get_logs',
20
+ 'next-devtools/get_page_metadata', 'next-devtools/get_project_metadata',
21
+ 'next-devtools/get_server_action_by_id',
22
+ ],
23
+ 'performance-expert': [
24
+ 'next-devtools/get_errors', 'next-devtools/get_logs',
25
+ 'next-devtools/get_page_metadata', 'next-devtools/get_project_metadata',
26
+ ],
27
+ 'testing-expert': [
28
+ 'next-devtools/get_errors', 'next-devtools/get_logs',
29
+ ],
30
+ },
31
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#nextjs',
32
+ officialDocs: 'https://nextjs.org/docs',
33
+ mcpPackage: 'next-devtools-mcp',
34
+ };
35
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nextjs/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,WAAW;IACxB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,sEAAsE;IAC5E,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,eAAe;IAC7B,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,0BAA0B,CAAC;KACzC;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,0BAA0B,EAAE,wBAAwB;YACpD,iCAAiC,EAAE,oCAAoC;YACvE,uCAAuC;SACxC;QACD,oBAAoB,EAAE;YACpB,0BAA0B,EAAE,wBAAwB;YACpD,iCAAiC,EAAE,oCAAoC;SACxE;QACD,gBAAgB,EAAE;YAChB,0BAA0B,EAAE,wBAAwB;SACrD;KACF;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,mBAAmB;CAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nx/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA0BpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nx/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAyBpB,CAAC"}
@@ -2,7 +2,7 @@ export const config = {
2
2
  id: 'nx',
3
3
  name: 'NX',
4
4
  category: 'tech',
5
- subCategory: 'monorepo',
5
+ subCategory: 'codebase-tool',
6
6
  label: 'NX',
7
7
  hint: 'Monorepo build system',
8
8
  skillName: 'nx-workspace',
@@ -21,8 +21,7 @@ export const config = {
21
21
  'performance-expert': ['nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_workspace'],
22
22
  'release-manager': ['nx-mcp-server/nx_project_details', 'nx-mcp-server/nx_workspace', 'nx-mcp-server/nx_workspace_path'],
23
23
  },
24
- docsUrl: null,
24
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#nx',
25
25
  officialDocs: 'https://nx.dev/getting-started/intro',
26
- mcpPackage: null,
27
26
  };
28
27
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nx/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,uBAAuB;IAC7B,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;KACpB;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,4BAA4B,EAAE,kCAAkC,EAAE,kCAAkC,CAAC;QACnH,WAAW,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,6BAA6B,CAAC;QAC9G,eAAe,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;QACtH,oBAAoB,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,CAAC;QACxF,iBAAiB,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;KACzH;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,sCAAsC;IACpD,UAAU,EAAE,IAAI;CACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/nx/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,uBAAuB;IAC7B,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;KACpB;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,4BAA4B,EAAE,kCAAkC,EAAE,kCAAkC,CAAC;QACnH,WAAW,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,6BAA6B,CAAC;QAC9G,eAAe,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;QACtH,oBAAoB,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,CAAC;QACxF,iBAAiB,EAAE,CAAC,kCAAkC,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;KACzH;IACD,OAAO,EAAE,4CAA4C;IACrD,YAAY,EAAE,sCAAsC;CACrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/playwright/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAuBpB,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const config = {
2
+ id: 'playwright',
3
+ name: 'Playwright',
4
+ category: 'tech',
5
+ subCategory: 'e2e-testing',
6
+ label: 'Playwright',
7
+ hint: 'Cross-browser E2E testing by Microsoft',
8
+ skillName: 'playwright-testing',
9
+ mcpServerKey: 'Playwright',
10
+ mcpConfig: {
11
+ type: 'stdio',
12
+ command: 'npx',
13
+ args: ['-y', '@playwright/mcp@latest'],
14
+ },
15
+ authType: 'none',
16
+ envVars: [],
17
+ agentToolMap: {
18
+ 'testing-expert': ['playwright/*'],
19
+ 'ui-ux-expert': ['playwright/*'],
20
+ },
21
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#playwright',
22
+ officialDocs: 'https://playwright.dev/docs/intro',
23
+ mcpPackage: '@playwright/mcp',
24
+ };
25
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/playwright/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,wCAAwC;IAC9C,SAAS,EAAE,oBAAoB;IAC/B,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;KACvC;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,gBAAgB,EAAE,CAAC,cAAc,CAAC;QAClC,cAAc,EAAE,CAAC,cAAc,CAAC;KACjC;IACD,OAAO,EAAE,oDAAoD;IAC7D,YAAY,EAAE,mCAAmC;IACjD,UAAU,EAAE,iBAAiB;CAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/prisma/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAuBpB,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const config = {
2
+ id: 'prisma',
3
+ name: 'Prisma',
4
+ category: 'tech',
5
+ subCategory: 'database',
6
+ label: 'Prisma',
7
+ hint: 'Type-safe ORM, migrations, schema management',
8
+ skillName: 'prisma-database',
9
+ mcpServerKey: 'Prisma',
10
+ mcpConfig: {
11
+ type: 'stdio',
12
+ command: 'npx',
13
+ args: ['-y', '@anthropic/prisma-mcp@latest'],
14
+ },
15
+ authType: 'none',
16
+ envVars: [],
17
+ agentToolMap: {
18
+ 'database-engineer': ['prisma/*'],
19
+ 'developer': ['prisma/*'],
20
+ },
21
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#prisma',
22
+ officialDocs: 'https://www.prisma.io/docs',
23
+ mcpPackage: '@anthropic/prisma-mcp',
24
+ };
25
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/prisma/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,8CAA8C;IACpD,SAAS,EAAE,iBAAiB;IAC5B,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;KAC7C;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,mBAAmB,EAAE,CAAC,UAAU,CAAC;QACjC,WAAW,EAAE,CAAC,UAAU,CAAC;KAC1B;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,uBAAuB;CACpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/resend/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA4CpB,CAAC"}
@@ -0,0 +1,46 @@
1
+ export const config = {
2
+ id: 'resend',
3
+ name: 'Resend',
4
+ category: 'tech',
5
+ subCategory: 'email',
6
+ label: 'Resend',
7
+ hint: 'Transactional email API with React templates',
8
+ skillName: 'resend-email',
9
+ mcpServerKey: 'Resend',
10
+ mcpConfig: {
11
+ type: 'stdio',
12
+ command: 'npx',
13
+ args: ['-y', 'resend-mcp'],
14
+ envFile: '${workspaceFolder}/.env',
15
+ },
16
+ authType: 'env-token',
17
+ envVars: [
18
+ {
19
+ name: 'RESEND_API_KEY',
20
+ hint: 'Generate at resend.com → API Keys',
21
+ },
22
+ ],
23
+ agentToolMap: {
24
+ 'developer': [
25
+ 'resend_send_email', 'resend_batch_send_email', 'resend_get_email',
26
+ 'resend_list_emails', 'resend_cancel_email', 'resend_update_email',
27
+ ],
28
+ 'devops-expert': [
29
+ 'resend_create_domain', 'resend_list_domains', 'resend_get_domain',
30
+ 'resend_verify_domain', 'resend_update_domain', 'resend_remove_domain',
31
+ 'resend_create_api_key', 'resend_list_api_keys', 'resend_remove_api_key',
32
+ 'resend_create_webhook', 'resend_list_webhooks', 'resend_get_webhook',
33
+ 'resend_update_webhook', 'resend_remove_webhook',
34
+ ],
35
+ 'data-expert': [
36
+ 'resend_create_contact', 'resend_list_contacts', 'resend_get_contact',
37
+ 'resend_update_contact', 'resend_remove_contact',
38
+ 'resend_create_broadcast', 'resend_list_broadcasts', 'resend_get_broadcast',
39
+ 'resend_send_broadcast',
40
+ ],
41
+ },
42
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#resend',
43
+ officialDocs: 'https://resend.com/docs',
44
+ mcpPackage: 'resend-mcp',
45
+ };
46
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/resend/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,OAAO;IACpB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,8CAA8C;IACpD,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;QAC1B,OAAO,EAAE,yBAAyB;KACnC;IACD,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE;QACP;YACE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,mCAAmC;SAC1C;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,mBAAmB,EAAE,yBAAyB,EAAE,kBAAkB;YAClE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB;SACnE;QACD,eAAe,EAAE;YACf,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB;YAClE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB;YACtE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB;YACxE,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB;YACrE,uBAAuB,EAAE,uBAAuB;SACjD;QACD,aAAa,EAAE;YACb,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB;YACrE,uBAAuB,EAAE,uBAAuB;YAChD,yBAAyB,EAAE,wBAAwB,EAAE,sBAAsB;YAC3E,uBAAuB;SACxB;KACF;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,YAAY;CACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/sanity/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAyCpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/sanity/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
@@ -36,8 +36,7 @@ export const config = {
36
36
  'sanity/list_projects',
37
37
  ],
38
38
  },
39
- docsUrl: null,
39
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#sanity',
40
40
  officialDocs: 'https://www.sanity.io/docs',
41
- mcpPackage: null,
42
41
  };
43
42
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/sanity/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,uCAAuC;IAC7C,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,uBAAuB;KAC7B;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,kBAAkB,EAAE;YAClB,mBAAmB,EAAE,yBAAyB,EAAE,0BAA0B;YAC1E,wBAAwB,EAAE,qBAAqB,EAAE,mCAAmC;YACpF,uCAAuC,EAAE,iCAAiC;YAC1E,qCAAqC,EAAE,sBAAsB,EAAE,0BAA0B;YACzF,4BAA4B,EAAE,uBAAuB,EAAE,sBAAsB;YAC7E,sBAAsB,EAAE,+BAA+B,EAAE,gCAAgC;YACzF,oBAAoB,EAAE,kBAAkB,EAAE,wBAAwB;YAClE,wBAAwB,EAAE,uBAAuB,EAAE,uBAAuB;YAC1E,wBAAwB,EAAE,wBAAwB;SACnD;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,wBAAwB,EAAE,qBAAqB;YACpE,iCAAiC,EAAE,qCAAqC;YACxE,sBAAsB,EAAE,sBAAsB;SAC/C;QACD,aAAa,EAAE;YACb,mBAAmB,EAAE,wBAAwB,EAAE,mCAAmC;YAClF,iCAAiC,EAAE,qBAAqB,EAAE,sBAAsB;YAChF,sBAAsB;SACvB;KACF;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,IAAI;CACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/sanity/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,uCAAuC;IAC7C,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,uBAAuB;KAC7B;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,kBAAkB,EAAE;YAClB,mBAAmB,EAAE,yBAAyB,EAAE,0BAA0B;YAC1E,wBAAwB,EAAE,qBAAqB,EAAE,mCAAmC;YACpF,uCAAuC,EAAE,iCAAiC;YAC1E,qCAAqC,EAAE,sBAAsB,EAAE,0BAA0B;YACzF,4BAA4B,EAAE,uBAAuB,EAAE,sBAAsB;YAC7E,sBAAsB,EAAE,+BAA+B,EAAE,gCAAgC;YACzF,oBAAoB,EAAE,kBAAkB,EAAE,wBAAwB;YAClE,wBAAwB,EAAE,uBAAuB,EAAE,uBAAuB;YAC1E,wBAAwB,EAAE,wBAAwB;SACnD;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,wBAAwB,EAAE,qBAAqB;YACpE,iCAAiC,EAAE,qCAAqC;YACxE,sBAAsB,EAAE,sBAAsB;SAC/C;QACD,aAAa,EAAE;YACb,mBAAmB,EAAE,wBAAwB,EAAE,mCAAmC;YAClF,iCAAiC,EAAE,qBAAqB,EAAE,sBAAsB;YAChF,sBAAsB;SACvB;KACF;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,4BAA4B;CAC3C,CAAC"}
@@ -27,7 +27,7 @@ export const config = {
27
27
  'team-lead': ['slack/*'],
28
28
  'release-manager': ['slack/*'],
29
29
  },
30
- docsUrl: '/guides/plugins#slack',
30
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#slack',
31
31
  officialDocs: 'https://api.slack.com/docs',
32
32
  mcpPackage: '@kazuph/mcp-slack',
33
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/slack/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,uCAAuC;IAC7C,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACjC,OAAO,EAAE,yBAAyB;QAClC,GAAG,EAAE;YACH,0BAA0B,EAAE,MAAM;SACnC;KACF;IACD,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE;QACP;YACE,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,iEAAiE;SACxE;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,iBAAiB,EAAE,CAAC,SAAS,CAAC;KAC/B;IACD,OAAO,EAAE,uBAAuB;IAChC,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,mBAAmB;CAChC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/slack/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,uCAAuC;IAC7C,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACjC,OAAO,EAAE,yBAAyB;QAClC,GAAG,EAAE;YACH,0BAA0B,EAAE,MAAM;SACnC;KACF;IACD,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE;QACP;YACE,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,iEAAiE;SACxE;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,iBAAiB,EAAE,CAAC,SAAS,CAAC;KAC/B;IACD,OAAO,EAAE,+CAA+C;IACxD,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,mBAAmB;CAChC,CAAC"}
@@ -33,7 +33,7 @@ export const config = {
33
33
  'strapi/get_entry', 'strapi/create_entry', 'strapi/update_entry',
34
34
  ],
35
35
  },
36
- docsUrl: null,
36
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#strapi',
37
37
  officialDocs: 'https://docs.strapi.io/',
38
38
  mcpPackage: 'strapi-mcp',
39
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/strapi/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,0BAA0B;IAChC,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;KAC3B;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,kBAAkB,EAAE;YAClB,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB;YACvF,sBAAsB,EAAE,wBAAwB,EAAE,qBAAqB;YACvE,+BAA+B,EAAE,yBAAyB,EAAE,4BAA4B;YACxF,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B;YACxF,wBAAwB,EAAE,6BAA6B,EAAE,yBAAyB;YAClF,yBAAyB;SAC1B;QACD,YAAY,EAAE;YACZ,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB;SAClE;QACD,aAAa,EAAE;YACb,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB;SACjE;KACF;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,YAAY;CACzB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/strapi/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,0BAA0B;IAChC,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;KAC3B;IACD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,kBAAkB,EAAE;YAClB,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB;YACvF,sBAAsB,EAAE,wBAAwB,EAAE,qBAAqB;YACvE,+BAA+B,EAAE,yBAAyB,EAAE,4BAA4B;YACxF,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B;YACxF,wBAAwB,EAAE,6BAA6B,EAAE,yBAAyB;YAClF,yBAAyB;SAC1B;QACD,YAAY,EAAE;YACZ,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB;SAClE;QACD,aAAa,EAAE;YACb,2BAA2B,EAAE,gCAAgC,EAAE,oBAAoB;YACnF,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB;SACjE;KACF;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,YAAY;CACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/supabase/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA+BpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/supabase/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA8BpB,CAAC"}
@@ -26,8 +26,7 @@ export const config = {
26
26
  'supabase/list_migrations', 'supabase/get_project',
27
27
  ],
28
28
  },
29
- docsUrl: null,
29
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#supabase',
30
30
  officialDocs: 'https://supabase.com/docs',
31
- mcpPackage: null,
32
31
  };
33
32
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/supabase/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,wCAAwC;IAC9C,SAAS,EAAE,mBAAmB;IAC9B,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,8BAA8B;KACpC;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,mBAAmB,EAAE;YACnB,0BAA0B,EAAE,sBAAsB,EAAE,sBAAsB;YAC1E,0BAA0B,EAAE,0BAA0B,EAAE,mBAAmB;YAC3E,sBAAsB,EAAE,0BAA0B,EAAE,wBAAwB;YAC5E,sBAAsB,EAAE,oCAAoC,EAAE,uBAAuB;YACrF,wBAAwB,EAAE,wBAAwB;SACnD;QACD,iBAAiB,EAAE;YACjB,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB;YACvE,0BAA0B,EAAE,sBAAsB;SACnD;KACF;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,IAAI;CACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/supabase/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,wCAAwC;IAC9C,SAAS,EAAE,mBAAmB;IAC9B,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,8BAA8B;KACpC;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,mBAAmB,EAAE;YACnB,0BAA0B,EAAE,sBAAsB,EAAE,sBAAsB;YAC1E,0BAA0B,EAAE,0BAA0B,EAAE,mBAAmB;YAC3E,sBAAsB,EAAE,0BAA0B,EAAE,wBAAwB;YAC5E,sBAAsB,EAAE,oCAAoC,EAAE,uBAAuB;YACrF,wBAAwB,EAAE,wBAAwB;SACnD;QACD,iBAAiB,EAAE;YACjB,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB;YACvE,0BAA0B,EAAE,sBAAsB;SACnD;KACF;IACD,OAAO,EAAE,kDAAkD;IAC3D,YAAY,EAAE,2BAA2B;CAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/teams/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAyCpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/teams/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
@@ -29,9 +29,8 @@ export const config = {
29
29
  'Teams/mcp_graph_teams_listChannelMessages',
30
30
  ],
31
31
  },
32
- docsUrl: null,
32
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#teams',
33
33
  officialDocs: 'https://learn.microsoft.com/en-us/microsoftteams/',
34
- mcpPackage: null,
35
34
  mcpInputs: [
36
35
  {
37
36
  id: 'tenant_id',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/teams/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,wCAAwC;IAC9C,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,gGAAgG;KACtG;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,iCAAiC,EAAE,gCAAgC;YACnE,8BAA8B,EAAE,kCAAkC;YAClE,uCAAuC,EAAE,qCAAqC;YAC9E,iCAAiC,EAAE,oCAAoC;YACvE,kCAAkC,EAAE,0CAA0C;YAC9E,6CAA6C,EAAE,2CAA2C;SAC3F;QACD,iBAAiB,EAAE;YACjB,kCAAkC,EAAE,gCAAgC;YACpE,iCAAiC,EAAE,oCAAoC;YACvE,0CAA0C,EAAE,6CAA6C;YACzF,2CAA2C;SAC5C;KACF;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,mDAAmD;IACjE,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE;QACT;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,kCAAkC;SAChD;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/teams/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,wCAAwC;IAC9C,SAAS,EAAE,qBAAqB;IAChC,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,gGAAgG;KACtG;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,iCAAiC,EAAE,gCAAgC;YACnE,8BAA8B,EAAE,kCAAkC;YAClE,uCAAuC,EAAE,qCAAqC;YAC9E,iCAAiC,EAAE,oCAAoC;YACvE,kCAAkC,EAAE,0CAA0C;YAC9E,6CAA6C,EAAE,2CAA2C;SAC3F;QACD,iBAAiB,EAAE;YACjB,kCAAkC,EAAE,gCAAgC;YACpE,iCAAiC,EAAE,oCAAoC;YACvE,0CAA0C,EAAE,6CAA6C;YACzF,2CAA2C;SAC5C;KACF;IACD,OAAO,EAAE,+CAA+C;IACxD,YAAY,EAAE,mDAAmD;IACjE,SAAS,EAAE;QACT;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,kCAAkC;SAChD;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/turborepo/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAapB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export const config = {
2
+ id: 'turborepo',
3
+ name: 'Turborepo',
4
+ category: 'tech',
5
+ subCategory: 'codebase-tool',
6
+ label: 'Turborepo',
7
+ hint: 'Monorepo build system with remote caching',
8
+ skillName: 'turborepo-monorepo',
9
+ authType: 'none',
10
+ envVars: [],
11
+ agentToolMap: {},
12
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#turborepo',
13
+ officialDocs: 'https://turbo.build/repo/docs',
14
+ };
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/turborepo/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,2CAA2C;IACjD,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,mDAAmD;IAC5D,YAAY,EAAE,+BAA+B;CAC9C,CAAC"}
@@ -10,17 +10,17 @@ export interface PluginConfig {
10
10
  /** Plugin category */
11
11
  category: 'tech' | 'team';
12
12
  /** Sub-category for grouping */
13
- subCategory: 'cms' | 'database' | 'deployment' | 'monorepo' | 'tracker' | 'notifications' | 'testing';
13
+ subCategory: 'cms' | 'database' | 'deployment' | 'framework' | 'codebase-tool' | 'task-management' | 'notifications' | 'testing' | 'e2e-testing' | 'design' | 'email';
14
14
  /** Label shown in the `npx opencastle init` multiselect */
15
15
  label: string;
16
16
  /** Hint shown next to the label in multiselect */
17
17
  hint: string;
18
18
  /** Skill directory name (matches the old skills/ dirname). null if no skill. */
19
19
  skillName: string | null;
20
- /** MCP server key used in the generated MCP config. null if no MCP server. */
21
- mcpServerKey: string | null;
22
- /** Raw MCP server config */
23
- mcpConfig: McpServerConfig;
20
+ /** MCP server key used in the generated MCP config. Omit if no MCP server. */
21
+ mcpServerKey?: string;
22
+ /** Raw MCP server config (required when mcpServerKey is set) */
23
+ mcpConfig?: McpServerConfig;
24
24
  /** Authentication type */
25
25
  authType: 'oauth' | 'env-token' | 'none';
26
26
  /** Required environment variables for this plugin */
@@ -32,8 +32,8 @@ export interface PluginConfig {
32
32
  docsUrl: string | null;
33
33
  /** Official product documentation URL */
34
34
  officialDocs: string;
35
- /** NPM package for the MCP server (null for HTTP/OAuth servers) */
36
- mcpPackage: string | null;
35
+ /** NPM package for the MCP server (omit for HTTP/OAuth servers or plugins without MCP) */
36
+ mcpPackage?: string;
37
37
  /** Whether this plugin should be preselected in the init prompt */
38
38
  preselected?: boolean;
39
39
  /** VS Code input prompts required by this plugin's MCP config (e.g. tenant ID) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/plugins/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B,gCAAgC;IAChC,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;IAEtG,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IAEb,gFAAgF;IAChF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,4BAA4B;IAC5B,SAAS,EAAE,eAAe,CAAC;IAE3B,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IAEzC,qDAAqD;IACrD,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAE7B;mFAC+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAExC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,kFAAkF;IAClF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/plugins/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,sBAAsB;IACtB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B,gCAAgC;IAChC,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEtK,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IAEb,gFAAgF;IAChF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IAEzC,qDAAqD;IACrD,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAE7B;mFAC+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAExC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,kFAAkF;IAClF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vercel/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA8BpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vercel/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YA6BpB,CAAC"}
@@ -5,7 +5,7 @@ export const config = {
5
5
  subCategory: 'deployment',
6
6
  label: 'Vercel',
7
7
  hint: 'Deployment and hosting platform',
8
- skillName: null,
8
+ skillName: 'vercel-deployment',
9
9
  mcpServerKey: 'Vercel',
10
10
  mcpConfig: {
11
11
  type: 'http',
@@ -25,8 +25,7 @@ export const config = {
25
25
  'vercel/get_runtime_logs', 'vercel/list_deployments', 'vercel/list_projects',
26
26
  ],
27
27
  },
28
- docsUrl: null,
28
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#vercel',
29
29
  officialDocs: 'https://vercel.com/docs',
30
- mcpPackage: null,
31
30
  };
32
31
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vercel/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,iCAAiC;IACvC,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,wBAAwB;KAC9B;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,eAAe,EAAE;YACf,yBAAyB,EAAE,uBAAuB,EAAE,kCAAkC;YACtF,oBAAoB,EAAE,yBAAyB,EAAE,yBAAyB;YAC1E,sBAAsB,EAAE,mBAAmB,EAAE,oCAAoC;YACjF,4CAA4C;SAC7C;QACD,iBAAiB,EAAE;YACjB,uBAAuB,EAAE,kCAAkC;YAC3D,yBAAyB,EAAE,yBAAyB,EAAE,sBAAsB;SAC7E;KACF;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,IAAI;CACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vercel/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,iCAAiC;IACvC,SAAS,EAAE,mBAAmB;IAC9B,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,wBAAwB;KAC9B;IACD,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE;QACZ,eAAe,EAAE;YACf,yBAAyB,EAAE,uBAAuB,EAAE,kCAAkC;YACtF,oBAAoB,EAAE,yBAAyB,EAAE,yBAAyB;YAC1E,sBAAsB,EAAE,mBAAmB,EAAE,oCAAoC;YACjF,4CAA4C;SAC7C;QACD,iBAAiB,EAAE;YACjB,uBAAuB,EAAE,kCAAkC;YAC3D,yBAAyB,EAAE,yBAAyB,EAAE,sBAAsB;SAC7E;KACF;IACD,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,yBAAyB;CACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginConfig } from '../types.js';
2
+ export declare const config: PluginConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vitest/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,YAapB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export const config = {
2
+ id: 'vitest',
3
+ name: 'Vitest',
4
+ category: 'tech',
5
+ subCategory: 'testing',
6
+ label: 'Vitest',
7
+ hint: 'Vite-native unit and integration testing',
8
+ skillName: 'vitest-testing',
9
+ authType: 'none',
10
+ envVars: [],
11
+ agentToolMap: {},
12
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#vitest',
13
+ officialDocs: 'https://vitest.dev',
14
+ };
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/orchestrator/plugins/vitest/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,0CAA0C;IAChD,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,gDAAgD;IACzD,YAAY,EAAE,oBAAoB;CACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencastle",
3
- "version": "0.9.2",
3
+ "version": "0.10.1",
4
4
  "type": "module",
5
5
  "description": "Multi-agent orchestration framework for AI coding assistants",
6
6
  "bin": {
@@ -57,6 +57,7 @@
57
57
  "vitest": "^4.0.18"
58
58
  },
59
59
  "dependencies": {
60
+ "@github/copilot-sdk": "^0.1.30",
60
61
  "yaml": "^2.8.2"
61
62
  }
62
63
  }
package/src/cli/doctor.ts CHANGED
@@ -39,17 +39,24 @@ async function checkCustomizations(projectRoot: string): Promise<CheckResult> {
39
39
  }
40
40
 
41
41
  async function checkSkillMatrix(projectRoot: string): Promise<CheckResult> {
42
- const path = resolve(projectRoot, '.github', 'customizations', 'agents', 'skill-matrix.md');
42
+ const path = resolve(projectRoot, '.github', 'customizations', 'agents', 'skill-matrix.json');
43
43
  if (!existsSync(path)) {
44
- return { ok: false, label: 'Skill matrix', detail: 'File not found at .github/customizations/agents/skill-matrix.md' };
44
+ return { ok: false, label: 'Skill matrix', detail: 'File not found at .github/customizations/agents/skill-matrix.json' };
45
45
  }
46
46
  const content = await readFile(path, 'utf8');
47
- // Look for empty capability slots (pattern: | `domain` | | |)
48
- const emptySlots = content.match(/\| `\w+`\s*\|\s*\|\s*\|/g);
49
- if (emptySlots && emptySlots.length > 0) {
50
- return { ok: true, label: 'Skill matrix', detail: `${emptySlots.length} unresolved capability slot(s)`, warning: true };
47
+ try {
48
+ const data = JSON.parse(content);
49
+ const bindings = data.bindings ?? {};
50
+ const emptySlots = Object.entries(bindings).filter(
51
+ ([, slot]) => !Array.isArray((slot as { entries?: unknown[] }).entries) || ((slot as { entries: unknown[] }).entries).length === 0
52
+ );
53
+ if (emptySlots.length > 0) {
54
+ return { ok: true, label: 'Skill matrix', detail: `${emptySlots.length} unresolved capability slot(s)`, warning: true };
55
+ }
56
+ return { ok: true, label: 'Skill matrix', detail: 'All capability slots populated' };
57
+ } catch {
58
+ return { ok: false, label: 'Skill matrix', detail: 'Invalid JSON in skill-matrix.json' };
51
59
  }
52
- return { ok: true, label: 'Skill matrix', detail: 'All capability slots populated' };
53
60
  }
54
61
 
55
62
  async function checkInstructions(projectRoot: string): Promise<CheckResult> {