opencastle 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 (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +215 -0
  3. package/bin/cli.mjs +69 -0
  4. package/dist/cli/adapters/claude-code.d.ts +22 -0
  5. package/dist/cli/adapters/claude-code.d.ts.map +1 -0
  6. package/dist/cli/adapters/claude-code.js +237 -0
  7. package/dist/cli/adapters/claude-code.js.map +1 -0
  8. package/dist/cli/adapters/cursor.d.ts +20 -0
  9. package/dist/cli/adapters/cursor.d.ts.map +1 -0
  10. package/dist/cli/adapters/cursor.js +231 -0
  11. package/dist/cli/adapters/cursor.js.map +1 -0
  12. package/dist/cli/adapters/vscode.d.ts +20 -0
  13. package/dist/cli/adapters/vscode.d.ts.map +1 -0
  14. package/dist/cli/adapters/vscode.js +132 -0
  15. package/dist/cli/adapters/vscode.js.map +1 -0
  16. package/dist/cli/copy.d.ts +14 -0
  17. package/dist/cli/copy.d.ts.map +1 -0
  18. package/dist/cli/copy.js +62 -0
  19. package/dist/cli/copy.js.map +1 -0
  20. package/dist/cli/dashboard.d.ts +3 -0
  21. package/dist/cli/dashboard.d.ts.map +1 -0
  22. package/dist/cli/dashboard.js +183 -0
  23. package/dist/cli/dashboard.js.map +1 -0
  24. package/dist/cli/diff.d.ts +3 -0
  25. package/dist/cli/diff.d.ts.map +1 -0
  26. package/dist/cli/diff.js +27 -0
  27. package/dist/cli/diff.js.map +1 -0
  28. package/dist/cli/eject.d.ts +3 -0
  29. package/dist/cli/eject.d.ts.map +1 -0
  30. package/dist/cli/eject.js +27 -0
  31. package/dist/cli/eject.js.map +1 -0
  32. package/dist/cli/init.d.ts +3 -0
  33. package/dist/cli/init.d.ts.map +1 -0
  34. package/dist/cli/init.js +92 -0
  35. package/dist/cli/init.js.map +1 -0
  36. package/dist/cli/manifest.d.ts +14 -0
  37. package/dist/cli/manifest.d.ts.map +1 -0
  38. package/dist/cli/manifest.js +34 -0
  39. package/dist/cli/manifest.js.map +1 -0
  40. package/dist/cli/mcp.d.ts +14 -0
  41. package/dist/cli/mcp.d.ts.map +1 -0
  42. package/dist/cli/mcp.js +35 -0
  43. package/dist/cli/mcp.js.map +1 -0
  44. package/dist/cli/prompt.d.ts +12 -0
  45. package/dist/cli/prompt.d.ts.map +1 -0
  46. package/dist/cli/prompt.js +104 -0
  47. package/dist/cli/prompt.js.map +1 -0
  48. package/dist/cli/run/adapters/claude-code.d.ts +16 -0
  49. package/dist/cli/run/adapters/claude-code.d.ts.map +1 -0
  50. package/dist/cli/run/adapters/claude-code.js +82 -0
  51. package/dist/cli/run/adapters/claude-code.js.map +1 -0
  52. package/dist/cli/run/adapters/copilot.d.ts +16 -0
  53. package/dist/cli/run/adapters/copilot.d.ts.map +1 -0
  54. package/dist/cli/run/adapters/copilot.js +84 -0
  55. package/dist/cli/run/adapters/copilot.js.map +1 -0
  56. package/dist/cli/run/adapters/cursor.d.ts +16 -0
  57. package/dist/cli/run/adapters/cursor.d.ts.map +1 -0
  58. package/dist/cli/run/adapters/cursor.js +81 -0
  59. package/dist/cli/run/adapters/cursor.js.map +1 -0
  60. package/dist/cli/run/adapters/index.d.ts +14 -0
  61. package/dist/cli/run/adapters/index.d.ts.map +1 -0
  62. package/dist/cli/run/adapters/index.js +35 -0
  63. package/dist/cli/run/adapters/index.js.map +1 -0
  64. package/dist/cli/run/executor.d.ts +15 -0
  65. package/dist/cli/run/executor.d.ts.map +1 -0
  66. package/dist/cli/run/executor.js +249 -0
  67. package/dist/cli/run/executor.js.map +1 -0
  68. package/dist/cli/run/reporter.d.ts +10 -0
  69. package/dist/cli/run/reporter.d.ts.map +1 -0
  70. package/dist/cli/run/reporter.js +112 -0
  71. package/dist/cli/run/reporter.js.map +1 -0
  72. package/dist/cli/run/schema.d.ts +28 -0
  73. package/dist/cli/run/schema.d.ts.map +1 -0
  74. package/dist/cli/run/schema.js +511 -0
  75. package/dist/cli/run/schema.js.map +1 -0
  76. package/dist/cli/run.d.ts +6 -0
  77. package/dist/cli/run.d.ts.map +1 -0
  78. package/dist/cli/run.js +123 -0
  79. package/dist/cli/run.js.map +1 -0
  80. package/dist/cli/stack-config.d.ts +12 -0
  81. package/dist/cli/stack-config.d.ts.map +1 -0
  82. package/dist/cli/stack-config.js +146 -0
  83. package/dist/cli/stack-config.js.map +1 -0
  84. package/dist/cli/types.d.ts +169 -0
  85. package/dist/cli/types.d.ts.map +1 -0
  86. package/dist/cli/types.js +2 -0
  87. package/dist/cli/types.js.map +1 -0
  88. package/dist/cli/update.d.ts +3 -0
  89. package/dist/cli/update.d.ts.map +1 -0
  90. package/dist/cli/update.js +50 -0
  91. package/dist/cli/update.js.map +1 -0
  92. package/package.json +48 -0
  93. package/src/cli/adapters/claude-code.ts +287 -0
  94. package/src/cli/adapters/cursor.ts +377 -0
  95. package/src/cli/adapters/vscode.ts +168 -0
  96. package/src/cli/copy.ts +79 -0
  97. package/src/cli/dashboard.ts +225 -0
  98. package/src/cli/diff.ts +44 -0
  99. package/src/cli/eject.ts +39 -0
  100. package/src/cli/init.ts +120 -0
  101. package/src/cli/manifest.ts +45 -0
  102. package/src/cli/mcp.ts +49 -0
  103. package/src/cli/prompt.ts +115 -0
  104. package/src/cli/run/adapters/claude-code.ts +95 -0
  105. package/src/cli/run/adapters/copilot.ts +97 -0
  106. package/src/cli/run/adapters/cursor.ts +94 -0
  107. package/src/cli/run/adapters/index.ts +40 -0
  108. package/src/cli/run/executor.ts +292 -0
  109. package/src/cli/run/reporter.ts +129 -0
  110. package/src/cli/run/schema.ts +595 -0
  111. package/src/cli/run.ts +137 -0
  112. package/src/cli/stack-config.ts +180 -0
  113. package/src/cli/types.ts +207 -0
  114. package/src/cli/update.ts +75 -0
  115. package/src/dashboard/astro.config.mjs +6 -0
  116. package/src/dashboard/package-lock.json +5455 -0
  117. package/src/dashboard/package.json +14 -0
  118. package/src/dashboard/public/data/delegations.ndjson +35 -0
  119. package/src/dashboard/public/data/panels.ndjson +13 -0
  120. package/src/dashboard/public/data/sessions.ndjson +50 -0
  121. package/src/dashboard/public/icon-192.png +0 -0
  122. package/src/dashboard/scripts/generate-seed-data.ts +355 -0
  123. package/src/dashboard/src/layouts/Layout.astro +25 -0
  124. package/src/dashboard/src/pages/index.astro +1070 -0
  125. package/src/dashboard/src/styles/dashboard.css +1078 -0
  126. package/src/dashboard/tsconfig.json +6 -0
  127. package/src/orchestrator/agent-workflows/README.md +22 -0
  128. package/src/orchestrator/agent-workflows/bug-fix.md +128 -0
  129. package/src/orchestrator/agent-workflows/data-pipeline.md +145 -0
  130. package/src/orchestrator/agent-workflows/database-migration.md +159 -0
  131. package/src/orchestrator/agent-workflows/feature-implementation.md +223 -0
  132. package/src/orchestrator/agent-workflows/performance-optimization.md +125 -0
  133. package/src/orchestrator/agent-workflows/refactoring.md +142 -0
  134. package/src/orchestrator/agent-workflows/schema-changes.md +164 -0
  135. package/src/orchestrator/agent-workflows/security-audit.md +148 -0
  136. package/src/orchestrator/agent-workflows/shared-delivery-phase.md +33 -0
  137. package/src/orchestrator/agents/api-designer.agent.md +68 -0
  138. package/src/orchestrator/agents/architect.agent.md +129 -0
  139. package/src/orchestrator/agents/content-engineer.agent.md +57 -0
  140. package/src/orchestrator/agents/copywriter.agent.md +95 -0
  141. package/src/orchestrator/agents/data-expert.agent.md +63 -0
  142. package/src/orchestrator/agents/database-engineer.agent.md +62 -0
  143. package/src/orchestrator/agents/developer.agent.md +66 -0
  144. package/src/orchestrator/agents/devops-expert.agent.md +57 -0
  145. package/src/orchestrator/agents/documentation-writer.agent.md +60 -0
  146. package/src/orchestrator/agents/performance-expert.agent.md +58 -0
  147. package/src/orchestrator/agents/release-manager.agent.md +72 -0
  148. package/src/orchestrator/agents/researcher.agent.md +145 -0
  149. package/src/orchestrator/agents/reviewer.agent.md +62 -0
  150. package/src/orchestrator/agents/security-expert.agent.md +64 -0
  151. package/src/orchestrator/agents/seo-specialist.agent.md +67 -0
  152. package/src/orchestrator/agents/team-lead.agent.md +644 -0
  153. package/src/orchestrator/agents/testing-expert.agent.md +85 -0
  154. package/src/orchestrator/agents/ui-ux-expert.agent.md +63 -0
  155. package/src/orchestrator/copilot-instructions.md +3 -0
  156. package/src/orchestrator/customizations/AGENT-EXPERTISE.md +325 -0
  157. package/src/orchestrator/customizations/AGENT-FAILURES.md +69 -0
  158. package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +58 -0
  159. package/src/orchestrator/customizations/DISPUTES.md +162 -0
  160. package/src/orchestrator/customizations/KNOWLEDGE-GRAPH.md +10 -0
  161. package/src/orchestrator/customizations/LESSONS-LEARNED.md +70 -0
  162. package/src/orchestrator/customizations/README.md +59 -0
  163. package/src/orchestrator/customizations/agents/agent-registry.md +46 -0
  164. package/src/orchestrator/customizations/agents/skill-matrix.md +142 -0
  165. package/src/orchestrator/customizations/logs/README.md +181 -0
  166. package/src/orchestrator/customizations/logs/delegations.ndjson +1 -0
  167. package/src/orchestrator/customizations/logs/panels.ndjson +1 -0
  168. package/src/orchestrator/customizations/logs/sessions.ndjson +1 -0
  169. package/src/orchestrator/customizations/project/docs-structure.md +23 -0
  170. package/src/orchestrator/customizations/project/tracker-config.md +45 -0
  171. package/src/orchestrator/customizations/project.instructions.md +64 -0
  172. package/src/orchestrator/customizations/stack/api-config.md +37 -0
  173. package/src/orchestrator/customizations/stack/cms-config.md +26 -0
  174. package/src/orchestrator/customizations/stack/data-pipeline-config.md +41 -0
  175. package/src/orchestrator/customizations/stack/database-config.md +44 -0
  176. package/src/orchestrator/customizations/stack/deployment-config.md +45 -0
  177. package/src/orchestrator/customizations/stack/testing-config.md +56 -0
  178. package/src/orchestrator/instructions/ai-optimization.instructions.md +143 -0
  179. package/src/orchestrator/instructions/general.instructions.md +194 -0
  180. package/src/orchestrator/mcp.json +55 -0
  181. package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +235 -0
  182. package/src/orchestrator/prompts/brainstorm.prompt.md +115 -0
  183. package/src/orchestrator/prompts/bug-fix.prompt.md +141 -0
  184. package/src/orchestrator/prompts/create-skill.prompt.md +103 -0
  185. package/src/orchestrator/prompts/generate-task-spec.prompt.md +154 -0
  186. package/src/orchestrator/prompts/implement-feature.prompt.md +124 -0
  187. package/src/orchestrator/prompts/metrics-report.prompt.md +142 -0
  188. package/src/orchestrator/prompts/quick-refinement.prompt.md +137 -0
  189. package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +100 -0
  190. package/src/orchestrator/skills/accessibility-standards/SKILL.md +164 -0
  191. package/src/orchestrator/skills/agent-hooks/SKILL.md +147 -0
  192. package/src/orchestrator/skills/agent-memory/SKILL.md +144 -0
  193. package/src/orchestrator/skills/api-patterns/SKILL.md +106 -0
  194. package/src/orchestrator/skills/browser-testing/SKILL.md +203 -0
  195. package/src/orchestrator/skills/code-commenting/SKILL.md +133 -0
  196. package/src/orchestrator/skills/contentful-cms/SKILL.md +43 -0
  197. package/src/orchestrator/skills/context-map/SKILL.md +135 -0
  198. package/src/orchestrator/skills/convex-database/SKILL.md +80 -0
  199. package/src/orchestrator/skills/data-engineering/SKILL.md +99 -0
  200. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +49 -0
  201. package/src/orchestrator/skills/documentation-standards/SKILL.md +85 -0
  202. package/src/orchestrator/skills/fast-review/SKILL.md +327 -0
  203. package/src/orchestrator/skills/frontend-design/SKILL.md +42 -0
  204. package/src/orchestrator/skills/jira-management/SKILL.md +168 -0
  205. package/src/orchestrator/skills/memory-merger/SKILL.md +123 -0
  206. package/src/orchestrator/skills/nextjs-patterns/SKILL.md +75 -0
  207. package/src/orchestrator/skills/nx-workspace/SKILL.md +192 -0
  208. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +184 -0
  209. package/src/orchestrator/skills/panel-majority-vote/panel-report.template.md +38 -0
  210. package/src/orchestrator/skills/performance-optimization/SKILL.md +101 -0
  211. package/src/orchestrator/skills/react-development/SKILL.md +117 -0
  212. package/src/orchestrator/skills/sanity-cms/SKILL.md +18 -0
  213. package/src/orchestrator/skills/security-hardening/SKILL.md +118 -0
  214. package/src/orchestrator/skills/self-improvement/SKILL.md +137 -0
  215. package/src/orchestrator/skills/seo-patterns/SKILL.md +40 -0
  216. package/src/orchestrator/skills/session-checkpoints/SKILL.md +205 -0
  217. package/src/orchestrator/skills/slack-notifications/SKILL.md +211 -0
  218. package/src/orchestrator/skills/strapi-cms/SKILL.md +43 -0
  219. package/src/orchestrator/skills/supabase-database/SKILL.md +24 -0
  220. package/src/orchestrator/skills/task-management/SKILL.md +143 -0
  221. package/src/orchestrator/skills/team-lead-reference/SKILL.md +317 -0
  222. package/src/orchestrator/skills/teams-notifications/SKILL.md +249 -0
  223. package/src/orchestrator/skills/testing-workflow/SKILL.md +134 -0
  224. package/src/orchestrator/skills/validation-gates/SKILL.md +100 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { StackConfig, CopyDirOptions } from './types.js';
2
+ export declare function getExcludedSkills(stack: StackConfig): Set<string>;
3
+ export declare function getExcludedAgents(stack: StackConfig): Set<string>;
4
+ export declare function getIncludedMcpServers(stack: StackConfig): Set<string>;
5
+ /**
6
+ * Return a transform callback that pre-populates customization files
7
+ * based on the user's stack selection.
8
+ *
9
+ * Used by all adapters when copying the `customizations/` directory.
10
+ */
11
+ export declare function getCustomizationsTransform(stack: StackConfig): NonNullable<CopyDirOptions['transform']>;
12
+ //# sourceMappingURL=stack-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-config.d.ts","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8C,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2G1G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAKjE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAQrE;AAID;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,GACjB,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAQ1C"}
@@ -0,0 +1,146 @@
1
+ // ── Skill / Technology labels ─────────────────────────────────
2
+ /** Display name for each CMS choice */
3
+ const CMS_LABELS = {
4
+ sanity: { tech: 'Sanity', skill: 'sanity-cms' },
5
+ contentful: { tech: 'Contentful', skill: 'contentful-cms' },
6
+ strapi: { tech: 'Strapi', skill: 'strapi-cms' },
7
+ };
8
+ /** Display name for each DB choice */
9
+ const DB_LABELS = {
10
+ supabase: { tech: 'Supabase', skill: 'supabase-database' },
11
+ convex: { tech: 'Convex', skill: 'convex-database' },
12
+ };
13
+ /** Display name for each PM choice */
14
+ const PM_LABELS = {
15
+ linear: { tech: 'Linear', skill: 'task-management' },
16
+ jira: { tech: 'Jira', skill: 'jira-management' },
17
+ };
18
+ /** Display name for each notifications choice */
19
+ const NOTIF_LABELS = {
20
+ slack: { tech: 'Slack', skill: 'slack-notifications' },
21
+ teams: { tech: 'Teams', skill: 'teams-notifications' },
22
+ };
23
+ // ── Exclusion / inclusion maps ────────────────────────────────
24
+ /** Skills to EXCLUDE based on CMS choice */
25
+ const CMS_SKILL_MAP = {
26
+ sanity: ['contentful-cms', 'strapi-cms'],
27
+ contentful: ['sanity-cms', 'strapi-cms'],
28
+ strapi: ['sanity-cms', 'contentful-cms'],
29
+ none: ['sanity-cms', 'contentful-cms', 'strapi-cms'],
30
+ };
31
+ /** Skills to EXCLUDE based on DB choice */
32
+ const DB_SKILL_MAP = {
33
+ supabase: ['convex-database'],
34
+ convex: ['supabase-database'],
35
+ none: ['supabase-database', 'convex-database'],
36
+ };
37
+ /** Skills to EXCLUDE based on PM choice */
38
+ const PM_SKILL_MAP = {
39
+ linear: ['jira-management'],
40
+ jira: ['task-management'],
41
+ none: ['task-management', 'jira-management'],
42
+ };
43
+ /** Agents to EXCLUDE based on CMS choice */
44
+ const CMS_AGENT_EXCLUSIONS = {
45
+ sanity: [],
46
+ contentful: [],
47
+ strapi: [],
48
+ none: ['content-engineer.agent.md'],
49
+ };
50
+ /** Agents to EXCLUDE based on DB choice */
51
+ const DB_AGENT_EXCLUSIONS = {
52
+ supabase: [],
53
+ convex: [],
54
+ none: ['database-engineer.agent.md'],
55
+ };
56
+ /** MCP server keys to INCLUDE based on CMS choice */
57
+ const CMS_MCP_MAP = {
58
+ sanity: ['Sanity'],
59
+ contentful: ['Contentful'],
60
+ strapi: ['Strapi'],
61
+ none: [],
62
+ };
63
+ /** MCP server keys to INCLUDE based on DB choice */
64
+ const DB_MCP_MAP = {
65
+ supabase: ['Supabase'],
66
+ convex: ['Convex'],
67
+ none: [],
68
+ };
69
+ /** MCP server keys to INCLUDE based on PM choice */
70
+ const PM_MCP_MAP = {
71
+ linear: ['Linear'],
72
+ jira: ['Jira'],
73
+ none: [],
74
+ };
75
+ /** Skills to EXCLUDE based on notifications choice */
76
+ const NOTIF_SKILL_MAP = {
77
+ slack: ['teams-notifications'],
78
+ teams: ['slack-notifications'],
79
+ none: ['slack-notifications', 'teams-notifications'],
80
+ };
81
+ /** MCP server keys to INCLUDE based on notifications choice */
82
+ const NOTIF_MCP_MAP = {
83
+ slack: ['Slack'],
84
+ teams: ['Teams'],
85
+ none: [],
86
+ };
87
+ /** Always-included MCP servers */
88
+ const CORE_MCP_SERVERS = ['chrome-devtools', 'Vercel'];
89
+ export function getExcludedSkills(stack) {
90
+ return new Set([
91
+ ...CMS_SKILL_MAP[stack.cms],
92
+ ...DB_SKILL_MAP[stack.db],
93
+ ...PM_SKILL_MAP[stack.pm],
94
+ ...NOTIF_SKILL_MAP[stack.notifications],
95
+ ]);
96
+ }
97
+ export function getExcludedAgents(stack) {
98
+ return new Set([
99
+ ...CMS_AGENT_EXCLUSIONS[stack.cms],
100
+ ...DB_AGENT_EXCLUSIONS[stack.db],
101
+ ]);
102
+ }
103
+ export function getIncludedMcpServers(stack) {
104
+ return new Set([
105
+ ...CORE_MCP_SERVERS,
106
+ ...CMS_MCP_MAP[stack.cms],
107
+ ...DB_MCP_MAP[stack.db],
108
+ ...PM_MCP_MAP[stack.pm],
109
+ ...NOTIF_MCP_MAP[stack.notifications],
110
+ ]);
111
+ }
112
+ // ── Customization file transforms ─────────────────────────────
113
+ /**
114
+ * Return a transform callback that pre-populates customization files
115
+ * based on the user's stack selection.
116
+ *
117
+ * Used by all adapters when copying the `customizations/` directory.
118
+ */
119
+ export function getCustomizationsTransform(stack) {
120
+ return (content, srcPath) => {
121
+ // Pre-fill skill matrix with CMS and DB bindings
122
+ if (srcPath.endsWith('skill-matrix.md')) {
123
+ return transformSkillMatrix(content, stack);
124
+ }
125
+ return content;
126
+ };
127
+ }
128
+ /**
129
+ * Fill in the `database` and `cms` rows in the skill matrix
130
+ * based on the user's stack selection.
131
+ */
132
+ function transformSkillMatrix(content, stack) {
133
+ let result = content;
134
+ // Fill the database row
135
+ if (stack.db !== 'none') {
136
+ const { tech, skill } = DB_LABELS[stack.db];
137
+ result = result.replace(/(\| `database`\s*\|)\s*\|(\s*\|)/, `$1 ${tech} | \`${skill}\` $2`);
138
+ }
139
+ // Fill the CMS row
140
+ if (stack.cms !== 'none') {
141
+ const { tech, skill } = CMS_LABELS[stack.cms];
142
+ result = result.replace(/(\| `cms`\s*\|)\s*\|(\s*\|)/, `$1 ${tech} | \`${skill}\` $2`);
143
+ }
144
+ return result;
145
+ }
146
+ //# sourceMappingURL=stack-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-config.js","sourceRoot":"","sources":["../../src/cli/stack-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ export type CmsChoice = 'sanity' | 'contentful' | 'strapi' | 'none';
3
+ export type DbChoice = 'supabase' | 'convex' | 'none';
4
+ export type PmChoice = 'linear' | 'jira' | 'none';
5
+ export type NotifChoice = 'slack' | 'teams' | 'none';
6
+ export interface StackConfig {
7
+ cms: CmsChoice;
8
+ db: DbChoice;
9
+ pm: PmChoice;
10
+ notifications: NotifChoice;
11
+ }
12
+ /** Context passed from bin/cli.mjs to every command handler. */
13
+ export interface CliContext {
14
+ pkgRoot: string;
15
+ args: string[];
16
+ }
17
+ /** Results from a copy/install/update operation. */
18
+ export interface CopyResults {
19
+ copied: string[];
20
+ skipped: string[];
21
+ created: string[];
22
+ }
23
+ /** Options for the copyDir utility. */
24
+ export interface CopyDirOptions {
25
+ overwrite?: boolean;
26
+ filter?: (_name: string, _srcPath: string) => boolean;
27
+ transform?: (_content: string, _srcPath: string) => Promise<string | null> | string | null;
28
+ }
29
+ /** OpenCastle project manifest (.opencastle.json). */
30
+ export interface Manifest {
31
+ version: string;
32
+ ide: string;
33
+ installedAt: string;
34
+ updatedAt: string;
35
+ managedPaths?: ManagedPaths;
36
+ stack?: StackConfig;
37
+ }
38
+ /** Framework vs customizable file paths. */
39
+ export interface ManagedPaths {
40
+ framework: string[];
41
+ customizable: string[];
42
+ }
43
+ /** IDE adapter interface (init/update commands). */
44
+ export interface IdeAdapter {
45
+ install(_pkgRoot: string, _projectRoot: string, _stack?: StackConfig): Promise<CopyResults>;
46
+ update(_pkgRoot: string, _projectRoot: string, _stack?: StackConfig): Promise<CopyResults>;
47
+ getManagedPaths(): ManagedPaths;
48
+ }
49
+ /** Select prompt option. */
50
+ export interface SelectOption {
51
+ label: string;
52
+ hint?: string;
53
+ value: string;
54
+ }
55
+ /** Scaffold result from MCP config. */
56
+ export interface ScaffoldResult {
57
+ path: string;
58
+ action: 'created' | 'skipped';
59
+ }
60
+ /** Validated task spec from YAML. */
61
+ export interface TaskSpec {
62
+ name: string;
63
+ concurrency: number;
64
+ on_failure: 'continue' | 'stop';
65
+ adapter: string;
66
+ tasks: Task[];
67
+ _verbose?: boolean;
68
+ }
69
+ /** A single task in the spec. */
70
+ export interface Task {
71
+ id: string;
72
+ prompt: string;
73
+ agent: string;
74
+ timeout: string;
75
+ depends_on: string[];
76
+ files: string[];
77
+ description: string;
78
+ _process?: ChildProcess;
79
+ }
80
+ /** Task execution status. */
81
+ export type TaskStatus = 'pending' | 'running' | 'done' | 'failed' | 'skipped' | 'timed-out';
82
+ /** Result of a single task execution. */
83
+ export interface TaskResult {
84
+ id: string;
85
+ status: TaskStatus;
86
+ duration: number;
87
+ output: string;
88
+ exitCode: number;
89
+ }
90
+ /** Final run report. */
91
+ export interface RunReport {
92
+ name: string;
93
+ startedAt: string;
94
+ completedAt: string;
95
+ duration: string;
96
+ summary: RunSummary;
97
+ tasks: TaskResult[];
98
+ }
99
+ /** Summary counts of task statuses. */
100
+ export interface RunSummary {
101
+ total: number;
102
+ done: number;
103
+ failed: number;
104
+ skipped: number;
105
+ 'timed-out': number;
106
+ }
107
+ /** Agent runtime adapter for the run command. */
108
+ export interface AgentAdapter {
109
+ name: string;
110
+ isAvailable(): Promise<boolean>;
111
+ execute(_task: Task, _options?: ExecuteOptions): Promise<ExecuteResult>;
112
+ kill?(_task: Task): void;
113
+ }
114
+ /** Options for agent execution. */
115
+ export interface ExecuteOptions {
116
+ verbose?: boolean;
117
+ }
118
+ /** Result from an agent adapter execution. */
119
+ export interface ExecuteResult {
120
+ success: boolean;
121
+ output: string;
122
+ exitCode: number;
123
+ _timedOut?: boolean;
124
+ taskId?: string;
125
+ }
126
+ /** Reporter interface for the run command. */
127
+ export interface Reporter {
128
+ onTaskStart(_task: Task): void;
129
+ onTaskDone(_task: Task, _result: TaskResult): void;
130
+ onTaskSkipped(_task: Task, _reason: string): void;
131
+ onPhaseStart(_phase: number, _tasks: Task[]): void;
132
+ onComplete(_report: RunReport): Promise<void>;
133
+ }
134
+ /** Reporter options. */
135
+ export interface ReporterOptions {
136
+ reportDir?: string;
137
+ verbose?: boolean;
138
+ }
139
+ /** Parsed CLI args for the run command. */
140
+ export interface RunOptions {
141
+ file: string;
142
+ dryRun: boolean;
143
+ concurrency: number | null;
144
+ adapter: string | null;
145
+ reportDir: string | null;
146
+ verbose: boolean;
147
+ help: boolean;
148
+ }
149
+ /** Parse result from YAML block parser. */
150
+ export interface ParseResult {
151
+ value: unknown;
152
+ nextIndex: number;
153
+ }
154
+ /** Validation result. */
155
+ export interface ValidationResult {
156
+ valid: boolean;
157
+ errors: string[];
158
+ }
159
+ /** Timeout promise with cancel ability. */
160
+ export interface TimeoutHandle {
161
+ promise: Promise<ExecuteResult>;
162
+ clear: () => void;
163
+ }
164
+ /** Executor returned by createExecutor. */
165
+ export interface Executor {
166
+ run(): Promise<RunReport>;
167
+ getPhases(): Task[][];
168
+ }
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { CliContext } from './types.js';
2
+ export default function update({ pkgRoot, args, }: CliContext): Promise<void>;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,YAAY,CAAA;AAWxD,wBAA8B,MAAM,CAAC,EACnC,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD5B"}
@@ -0,0 +1,50 @@
1
+ import { resolve } from 'node:path';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { readManifest, writeManifest } from './manifest.js';
4
+ import { confirm, closePrompts } from './prompt.js';
5
+ const ADAPTERS = {
6
+ vscode: () => import('./adapters/vscode.js'),
7
+ cursor: () => import('./adapters/cursor.js'),
8
+ 'claude-code': () => import('./adapters/claude-code.js'),
9
+ };
10
+ const VALID_IDES = Object.keys(ADAPTERS);
11
+ export default async function update({ pkgRoot, args, }) {
12
+ const projectRoot = process.cwd();
13
+ const manifest = await readManifest(projectRoot);
14
+ if (!manifest) {
15
+ console.error(' ✗ No OpenCastle installation found. Run "npx opencastle init" first.');
16
+ process.exit(1);
17
+ }
18
+ if (!manifest.ide || !VALID_IDES.includes(manifest.ide)) {
19
+ console.error(` ✗ Invalid IDE "${manifest.ide}" in .opencastle.json. Valid options: ${VALID_IDES.join(', ')}`);
20
+ process.exit(1);
21
+ }
22
+ const pkg = JSON.parse(await readFile(resolve(pkgRoot, 'package.json'), 'utf8'));
23
+ if (manifest.version === pkg.version && !args.includes('--force')) {
24
+ console.log(` Already up to date (v${pkg.version}).`);
25
+ return;
26
+ }
27
+ console.log(`\n 🏰 OpenCastle update: v${manifest.version} → v${pkg.version}\n`);
28
+ console.log(` IDE: ${manifest.ide}`);
29
+ console.log(' Framework files will be overwritten.');
30
+ console.log(' Customization files will be preserved.\n');
31
+ const proceed = await confirm('Proceed with update?');
32
+ if (!proceed) {
33
+ console.log(' Aborted.');
34
+ return;
35
+ }
36
+ const adapter = await ADAPTERS[manifest.ide]();
37
+ const results = await adapter.update(pkgRoot, projectRoot);
38
+ // Update manifest
39
+ manifest.version = pkg.version;
40
+ manifest.updatedAt = new Date().toISOString();
41
+ manifest.managedPaths = adapter.getManagedPaths();
42
+ await writeManifest(projectRoot, manifest);
43
+ console.log(`\n ✓ Updated ${results.copied.length} framework files`);
44
+ if (results.created.length > 0) {
45
+ console.log(` + Created ${results.created.length} new files`);
46
+ }
47
+ console.log();
48
+ closePrompts();
49
+ }
50
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "opencastle",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Multi-agent orchestration framework for AI coding assistants",
6
+ "bin": {
7
+ "opencastle": "bin/cli.mjs"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "src/",
12
+ "dist/",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "keywords": [
17
+ "ai",
18
+ "agents",
19
+ "copilot",
20
+ "cursor",
21
+ "claude",
22
+ "orchestration",
23
+ "multi-agent",
24
+ "coding-assistant"
25
+ ],
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/etylsarin/opencastle.git"
29
+ },
30
+ "bugs": {
31
+ "url": "https://github.com/etylsarin/opencastle/issues"
32
+ },
33
+ "homepage": "https://www.opencastle.dev/",
34
+ "license": "MIT",
35
+ "author": "Filip Mares",
36
+ "scripts": {
37
+ "build:cli": "tsc",
38
+ "build:dashboard": "cd src/dashboard && npm run build",
39
+ "prepublishOnly": "npm run build:cli && npm run build:dashboard"
40
+ },
41
+ "engines": {
42
+ "node": ">=18"
43
+ },
44
+ "devDependencies": {
45
+ "typescript": "^5.7.0",
46
+ "@types/node": "^22.0.0"
47
+ }
48
+ }