workspace-maxxing 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 (198) hide show
  1. package/.agents/skills/workspace-maxxing/.workspace-templates/CONTEXT.md +44 -0
  2. package/.agents/skills/workspace-maxxing/.workspace-templates/SYSTEM.md +44 -0
  3. package/.agents/skills/workspace-maxxing/.workspace-templates/references/anti-patterns.md +16 -0
  4. package/.agents/skills/workspace-maxxing/.workspace-templates/references/iron-laws.md +26 -0
  5. package/.agents/skills/workspace-maxxing/.workspace-templates/references/reporting-format.md +52 -0
  6. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/benchmark.ts +171 -0
  7. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/dispatch.ts +473 -0
  8. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/generate-tests.ts +158 -0
  9. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/install-tool.ts +82 -0
  10. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/iterate.ts +265 -0
  11. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/orchestrator.ts +539 -0
  12. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/scaffold.ts +282 -0
  13. package/.agents/skills/workspace-maxxing/.workspace-templates/scripts/validate.ts +452 -0
  14. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/architecture/SKILL.md +95 -0
  15. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/fixer/SKILL.md +109 -0
  16. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/iteration/SKILL.md +89 -0
  17. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/prompt-engineering/SKILL.md +87 -0
  18. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/research/SKILL.md +94 -0
  19. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/testing/SKILL.md +89 -0
  20. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/tooling/SKILL.md +87 -0
  21. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/validation/SKILL.md +103 -0
  22. package/.agents/skills/workspace-maxxing/.workspace-templates/skills/worker/SKILL.md +79 -0
  23. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/00-meta/CONTEXT.md +6 -0
  24. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/00-meta/execution-log.md +27 -0
  25. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/01-input/CONTEXT.md +29 -0
  26. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/02-process/CONTEXT.md +29 -0
  27. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/03-output/CONTEXT.md +29 -0
  28. package/.agents/skills/workspace-maxxing/.workspace-templates/workspace/README.md +14 -0
  29. package/.agents/skills/workspace-maxxing/SKILL.md +312 -0
  30. package/.agents/skills/workspace-maxxing/scripts/benchmark.ts +171 -0
  31. package/.agents/skills/workspace-maxxing/scripts/dispatch.ts +473 -0
  32. package/.agents/skills/workspace-maxxing/scripts/generate-tests.ts +158 -0
  33. package/.agents/skills/workspace-maxxing/scripts/install-tool.ts +82 -0
  34. package/.agents/skills/workspace-maxxing/scripts/iterate.ts +265 -0
  35. package/.agents/skills/workspace-maxxing/scripts/orchestrator.ts +539 -0
  36. package/.agents/skills/workspace-maxxing/scripts/scaffold.ts +282 -0
  37. package/.agents/skills/workspace-maxxing/scripts/validate.ts +452 -0
  38. package/README.md +144 -0
  39. package/dist/agent-creator.d.ts +9 -0
  40. package/dist/agent-creator.d.ts.map +1 -0
  41. package/dist/agent-creator.js +199 -0
  42. package/dist/agent-creator.js.map +1 -0
  43. package/dist/agent-iterator.d.ts +38 -0
  44. package/dist/agent-iterator.d.ts.map +1 -0
  45. package/dist/agent-iterator.js +327 -0
  46. package/dist/agent-iterator.js.map +1 -0
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +197 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/install.d.ts +18 -0
  52. package/dist/install.d.ts.map +1 -0
  53. package/dist/install.js +117 -0
  54. package/dist/install.js.map +1 -0
  55. package/dist/platforms/claude.d.ts +7 -0
  56. package/dist/platforms/claude.d.ts.map +1 -0
  57. package/dist/platforms/claude.js +70 -0
  58. package/dist/platforms/claude.js.map +1 -0
  59. package/dist/platforms/copilot.d.ts +7 -0
  60. package/dist/platforms/copilot.d.ts.map +1 -0
  61. package/dist/platforms/copilot.js +75 -0
  62. package/dist/platforms/copilot.js.map +1 -0
  63. package/dist/platforms/gemini.d.ts +7 -0
  64. package/dist/platforms/gemini.d.ts.map +1 -0
  65. package/dist/platforms/gemini.js +81 -0
  66. package/dist/platforms/gemini.js.map +1 -0
  67. package/dist/platforms/index.d.ts +8 -0
  68. package/dist/platforms/index.d.ts.map +1 -0
  69. package/dist/platforms/index.js +41 -0
  70. package/dist/platforms/index.js.map +1 -0
  71. package/dist/platforms/opencode.d.ts +7 -0
  72. package/dist/platforms/opencode.d.ts.map +1 -0
  73. package/dist/platforms/opencode.js +70 -0
  74. package/dist/platforms/opencode.js.map +1 -0
  75. package/dist/scripts/benchmark.d.ts +20 -0
  76. package/dist/scripts/benchmark.d.ts.map +1 -0
  77. package/dist/scripts/benchmark.js +170 -0
  78. package/dist/scripts/benchmark.js.map +1 -0
  79. package/dist/scripts/dispatch.d.ts +32 -0
  80. package/dist/scripts/dispatch.d.ts.map +1 -0
  81. package/dist/scripts/dispatch.js +386 -0
  82. package/dist/scripts/dispatch.js.map +1 -0
  83. package/dist/scripts/generate-tests.d.ts +11 -0
  84. package/dist/scripts/generate-tests.d.ts.map +1 -0
  85. package/dist/scripts/generate-tests.js +118 -0
  86. package/dist/scripts/generate-tests.js.map +1 -0
  87. package/dist/scripts/install-tool.d.ts +8 -0
  88. package/dist/scripts/install-tool.d.ts.map +1 -0
  89. package/dist/scripts/install-tool.js +98 -0
  90. package/dist/scripts/install-tool.js.map +1 -0
  91. package/dist/scripts/iterate.d.ts +44 -0
  92. package/dist/scripts/iterate.d.ts.map +1 -0
  93. package/dist/scripts/iterate.js +260 -0
  94. package/dist/scripts/iterate.js.map +1 -0
  95. package/dist/scripts/orchestrator.d.ts +40 -0
  96. package/dist/scripts/orchestrator.d.ts.map +1 -0
  97. package/dist/scripts/orchestrator.js +378 -0
  98. package/dist/scripts/orchestrator.js.map +1 -0
  99. package/dist/scripts/scaffold.d.ts +8 -0
  100. package/dist/scripts/scaffold.d.ts.map +1 -0
  101. package/dist/scripts/scaffold.js +279 -0
  102. package/dist/scripts/scaffold.js.map +1 -0
  103. package/dist/scripts/validate.d.ts +11 -0
  104. package/dist/scripts/validate.d.ts.map +1 -0
  105. package/dist/scripts/validate.js +472 -0
  106. package/dist/scripts/validate.js.map +1 -0
  107. package/docs/superpowers/plans/2026-04-07-autonomous-iteration-plan.md +1123 -0
  108. package/docs/superpowers/plans/2026-04-07-autonomous-iteration-sub-agent-batches.md +1923 -0
  109. package/docs/superpowers/plans/2026-04-07-autonomous-workflow-sub-skill-plan.md +1505 -0
  110. package/docs/superpowers/plans/2026-04-07-benchmarking-multi-agent-plan.md +854 -0
  111. package/docs/superpowers/plans/2026-04-07-workspace-builder-logic-plan.md +1426 -0
  112. package/docs/superpowers/plans/2026-04-07-workspace-maxxing-plan.md +1299 -0
  113. package/docs/superpowers/plans/2026-04-08-session-294c-subagent-invocation-plan.md +320 -0
  114. package/docs/superpowers/plans/2026-04-08-workflow-prompt-hardening-plan.md +1025 -0
  115. package/docs/superpowers/plans/2026-04-12-workspace-agent-creation-plan.md +992 -0
  116. package/docs/superpowers/specs/2026-04-07-autonomous-iteration-design.md +214 -0
  117. package/docs/superpowers/specs/2026-04-07-autonomous-iteration-sub-agent-batches-design.md +188 -0
  118. package/docs/superpowers/specs/2026-04-07-autonomous-workflow-sub-skill-design.md +137 -0
  119. package/docs/superpowers/specs/2026-04-07-benchmarking-multi-agent-design.md +105 -0
  120. package/docs/superpowers/specs/2026-04-07-workspace-builder-logic-design.md +179 -0
  121. package/docs/superpowers/specs/2026-04-07-workspace-maxxing-design.md +227 -0
  122. package/docs/superpowers/specs/2026-04-08-session-294c-subagent-invocation-design.md +265 -0
  123. package/docs/superpowers/specs/2026-04-08-workflow-prompt-hardening-design.md +146 -0
  124. package/docs/superpowers/specs/2026-04-12-workspace-agent-creation-design.md +239 -0
  125. package/jest.config.js +8 -0
  126. package/package.json +32 -0
  127. package/src/agent-creator.ts +180 -0
  128. package/src/agent-iterator.ts +397 -0
  129. package/src/index.ts +189 -0
  130. package/src/install.ts +105 -0
  131. package/src/platforms/claude.ts +40 -0
  132. package/src/platforms/copilot.ts +50 -0
  133. package/src/platforms/gemini.ts +55 -0
  134. package/src/platforms/index.ts +45 -0
  135. package/src/platforms/opencode.ts +41 -0
  136. package/src/scripts/benchmark.ts +171 -0
  137. package/src/scripts/dispatch.ts +473 -0
  138. package/src/scripts/generate-tests.ts +112 -0
  139. package/src/scripts/install-tool.ts +82 -0
  140. package/src/scripts/iterate.ts +271 -0
  141. package/src/scripts/orchestrator.ts +539 -0
  142. package/src/scripts/scaffold.ts +282 -0
  143. package/src/scripts/validate.ts +516 -0
  144. package/templates/.workspace-templates/CONTEXT.md +44 -0
  145. package/templates/.workspace-templates/SYSTEM.md +44 -0
  146. package/templates/.workspace-templates/references/anti-patterns.md +16 -0
  147. package/templates/.workspace-templates/references/iron-laws.md +26 -0
  148. package/templates/.workspace-templates/references/reporting-format.md +52 -0
  149. package/templates/.workspace-templates/scripts/benchmark.ts +171 -0
  150. package/templates/.workspace-templates/scripts/dispatch.ts +473 -0
  151. package/templates/.workspace-templates/scripts/generate-tests.ts +158 -0
  152. package/templates/.workspace-templates/scripts/install-tool.ts +82 -0
  153. package/templates/.workspace-templates/scripts/iterate.ts +265 -0
  154. package/templates/.workspace-templates/scripts/orchestrator.ts +539 -0
  155. package/templates/.workspace-templates/scripts/scaffold.ts +282 -0
  156. package/templates/.workspace-templates/scripts/validate.ts +452 -0
  157. package/templates/.workspace-templates/skills/architecture/SKILL.md +95 -0
  158. package/templates/.workspace-templates/skills/fixer/SKILL.md +109 -0
  159. package/templates/.workspace-templates/skills/iteration/SKILL.md +89 -0
  160. package/templates/.workspace-templates/skills/prompt-engineering/SKILL.md +87 -0
  161. package/templates/.workspace-templates/skills/research/SKILL.md +94 -0
  162. package/templates/.workspace-templates/skills/testing/SKILL.md +89 -0
  163. package/templates/.workspace-templates/skills/tooling/SKILL.md +87 -0
  164. package/templates/.workspace-templates/skills/validation/SKILL.md +103 -0
  165. package/templates/.workspace-templates/skills/worker/SKILL.md +79 -0
  166. package/templates/.workspace-templates/workspace/00-meta/CONTEXT.md +6 -0
  167. package/templates/.workspace-templates/workspace/00-meta/execution-log.md +27 -0
  168. package/templates/.workspace-templates/workspace/01-input/CONTEXT.md +29 -0
  169. package/templates/.workspace-templates/workspace/02-process/CONTEXT.md +29 -0
  170. package/templates/.workspace-templates/workspace/03-output/CONTEXT.md +29 -0
  171. package/templates/.workspace-templates/workspace/README.md +14 -0
  172. package/templates/SKILL.md +347 -0
  173. package/tests/benchmark.test.ts +158 -0
  174. package/tests/cli.test.ts +109 -0
  175. package/tests/dispatch-parallel.test.ts +124 -0
  176. package/tests/dispatch.test.ts +218 -0
  177. package/tests/fixer-skill.test.ts +203 -0
  178. package/tests/generate-tests.test.ts +101 -0
  179. package/tests/install-tool.test.ts +141 -0
  180. package/tests/install.test.ts +144 -0
  181. package/tests/integration.test.ts +324 -0
  182. package/tests/iterate.test.ts +219 -0
  183. package/tests/orchestrator.test.ts +710 -0
  184. package/tests/scaffold.test.ts +238 -0
  185. package/tests/templates-enhanced.test.ts +208 -0
  186. package/tests/templates.test.ts +219 -0
  187. package/tests/validate.test.ts +421 -0
  188. package/tests/validation-enhanced.test.ts +303 -0
  189. package/tests/worker-skill.test.ts +88 -0
  190. package/tsconfig.json +19 -0
  191. package/workspace/00-meta/CONTEXT.md +3 -0
  192. package/workspace/00-meta/execution-log.md +17 -0
  193. package/workspace/00-meta/tools.md +11 -0
  194. package/workspace/01-input/CONTEXT.md +27 -0
  195. package/workspace/CONTEXT.md +35 -0
  196. package/workspace/README.md +14 -0
  197. package/workspace/SYSTEM.md +36 -0
  198. package/workspace-maxxing-0.1.0.tgz +0 -0
package/dist/index.js ADDED
@@ -0,0 +1,197 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const path = __importStar(require("path"));
38
+ const install_1 = require("./install");
39
+ const scaffold_1 = require("./scripts/scaffold");
40
+ const agent_creator_1 = require("./agent-creator");
41
+ const agent_iterator_1 = require("./agent-iterator");
42
+ const platforms_1 = require("./platforms");
43
+ function showHelp() {
44
+ console.log(`
45
+ workspace-maxxing — npx-installable skill for AI agents
46
+
47
+ Usage:
48
+ npx workspace-maxxing [options]
49
+
50
+ Installation Options:
51
+ --opencode Install skill for OpenCode agents (default)
52
+ --claude Install skill for Claude Code agents
53
+ --copilot Install skill for GitHub Copilot agents
54
+ --gemini Install skill for Gemini CLI agents
55
+
56
+ Workspace Creation Options:
57
+ --create-workspace Create a new workspace with agent
58
+ --workspace-name <name> Name of the workspace (default: "My Workspace")
59
+ --stages <stages> Comma-separated stages (default: "01-input,02-process,03-output")
60
+ --output <path> Output directory (default: "./workspace")
61
+ --agent-name <name> Custom agent name (default: auto-generated from workspace name)
62
+ --no-agent Create workspace without the invokable agent
63
+ --threshold <n> Robustness threshold for agent (default: 85)
64
+ --max-iterations <n> Max agent iterations (default: 3)
65
+
66
+ Examples:
67
+ # Install skill for OpenCode
68
+ npx workspace-maxxing --opencode
69
+
70
+ # Create workspace with agent
71
+ npx workspace-maxxing --create-workspace --workspace-name "Daily Digest" --stages "01-input,02-process,03-output"
72
+
73
+ # Create workspace in specific folder
74
+ npx workspace-maxxing --create-workspace --workspace-name "My Workflow" --output "./my-workspace"
75
+
76
+ # Create workspace without agent
77
+ npx workspace-maxxing --create-workspace --workspace-name "My Workflow" --no-agent
78
+
79
+ # Create workspace with custom agent name
80
+ npx workspace-maxxing --create-workspace --workspace-name "AI News" --agent-name "@news-agent"
81
+ `);
82
+ }
83
+ function extractOption(args, option) {
84
+ const idx = args.indexOf(option);
85
+ return idx !== -1 && idx + 1 < args.length ? args[idx + 1] : undefined;
86
+ }
87
+ function hasFlag(args, flag) {
88
+ return args.includes(flag);
89
+ }
90
+ async function createWorkspace(args) {
91
+ const workspaceName = extractOption(args, '--workspace-name') ?? 'My Workspace';
92
+ const stagesStr = extractOption(args, '--stages') ?? '01-input,02-process,03-output';
93
+ const stages = stagesStr.split(',').map(s => s.trim()).filter(Boolean);
94
+ const withAgent = !hasFlag(args, '--no-agent');
95
+ const agentNameOption = extractOption(args, '--agent-name');
96
+ const outputDir = extractOption(args, '--output')
97
+ ? path.resolve(process.cwd(), extractOption(args, '--output'))
98
+ : path.resolve(process.cwd(), 'workspace');
99
+ const threshold = extractOption(args, '--threshold') ? parseInt(extractOption(args, '--threshold'), 10) : 85;
100
+ const maxIterations = extractOption(args, '--max-iterations') ? parseInt(extractOption(args, '--max-iterations'), 10) : 3;
101
+ console.log('=== Workspace-Maxxing ===');
102
+ console.log(`Creating workspace: ${workspaceName}`);
103
+ console.log(`Stages: ${stages.join(', ')}`);
104
+ console.log(`Output: ${outputDir}`);
105
+ console.log(`With agent: ${withAgent}`);
106
+ console.log('');
107
+ // Step 1: Create workspace folder structure
108
+ console.log('Step 1: Creating workspace folder structure...');
109
+ (0, scaffold_1.scaffoldWorkspace)({
110
+ name: workspaceName,
111
+ stages,
112
+ output: outputDir,
113
+ force: true,
114
+ });
115
+ // Step 2: Create agent if enabled
116
+ if (withAgent) {
117
+ console.log('\nStep 2: Creating invokable agent...');
118
+ // Generate agent name from workspace name if not provided
119
+ const agentName = agentNameOption ?? (0, agent_creator_1.generateAgentName)(workspaceName);
120
+ const agentOptions = {
121
+ name: agentName,
122
+ purpose: `Execute ${workspaceName} workflow`,
123
+ workspacePath: outputDir,
124
+ };
125
+ (0, agent_creator_1.createAgent)(agentOptions);
126
+ // Step 3: Run agent self-improvement loop
127
+ console.log('\nStep 3: Running agent self-improvement...');
128
+ const agentDirName = agentName.startsWith('@') ? agentName.slice(1) : agentName;
129
+ const agentPath = path.join(outputDir, '.agents', 'skills', agentDirName);
130
+ const iterationResult = await (0, agent_iterator_1.iterateAgent)({
131
+ agentPath,
132
+ workspacePath: outputDir,
133
+ threshold,
134
+ maxIterations,
135
+ });
136
+ // Step 4: Install for detected platform
137
+ console.log('\nStep 4: Installing for platform...');
138
+ const platform = (0, platforms_1.detectPlatform)();
139
+ console.log(`Detected platform: ${platform}`);
140
+ const installer = (0, platforms_1.getPlatformInstaller)(platform);
141
+ installer.install(agentPath, outputDir);
142
+ console.log('\n=== Workspace Creation Complete ===');
143
+ console.log(`Workspace: ${outputDir}`);
144
+ console.log(`Agent: ${agentName}`);
145
+ console.log(`Score: ${iterationResult.score}/${threshold}`);
146
+ console.log(`Iterations: ${iterationResult.iterations}`);
147
+ console.log(`\nTo invoke the agent, use: @${agentName.slice(1)}`);
148
+ }
149
+ else {
150
+ console.log('\n=== Workspace Creation Complete ===');
151
+ console.log(`Workspace: ${outputDir}`);
152
+ console.log('(Agent creation disabled with --no-agent)');
153
+ }
154
+ }
155
+ async function main() {
156
+ const args = process.argv.slice(2);
157
+ if (args.length === 0 || args.includes('--help')) {
158
+ showHelp();
159
+ process.exit(0);
160
+ }
161
+ // Check for workspace creation
162
+ if (args.includes('--create-workspace')) {
163
+ await createWorkspace(args);
164
+ return;
165
+ }
166
+ // Check for install targets
167
+ const agentFlags = ['opencode', 'claude', 'copilot', 'gemini'];
168
+ const detectedAgent = agentFlags.find((flag) => args.includes(`--${flag}`));
169
+ if (detectedAgent) {
170
+ const cwd = process.cwd();
171
+ const projectRoot = (0, install_1.detectProjectRoot)(cwd);
172
+ if (projectRoot !== cwd) {
173
+ console.log(`Detected project root: ${projectRoot}`);
174
+ }
175
+ const templatesDir = process.env.WORKSPACE_MAXXING_TEMPLATES ??
176
+ path.join(__dirname, '..', 'templates');
177
+ console.log(`Installing workspace-maxxing skill for ${detectedAgent}...`);
178
+ const result = await (0, install_1.installSkill)(projectRoot, templatesDir, detectedAgent);
179
+ if (result.success) {
180
+ console.log(`Skill installed to: ${result.skillPath}`);
181
+ console.log(`Open a new ${detectedAgent} session and invoke the workspace-maxxing skill to get started.`);
182
+ }
183
+ else {
184
+ console.error(`Installation failed: ${result.error}`);
185
+ process.exit(1);
186
+ }
187
+ return;
188
+ }
189
+ console.error(`Unknown flag: ${args.find((a) => a.startsWith('--'))}`);
190
+ console.error('Run "npx workspace-maxxing --help" for usage.');
191
+ process.exit(1);
192
+ }
193
+ main().catch((error) => {
194
+ console.error(error);
195
+ process.exit(1);
196
+ });
197
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type AgentTarget = 'opencode' | 'claude' | 'copilot' | 'gemini' | undefined;
2
+ export interface InstallResult {
3
+ success: boolean;
4
+ skillPath: string;
5
+ error?: string;
6
+ }
7
+ export declare function getAgentTargetPath(projectRoot: string, agent: AgentTarget): string;
8
+ /**
9
+ * Walk up from startDir looking for package.json or .git directory.
10
+ * Returns the first parent containing a marker, or startDir if none found.
11
+ */
12
+ export declare function detectProjectRoot(startDir: string): string;
13
+ /**
14
+ * Install the workspace-maxxing skill into a project.
15
+ * Copies SKILL.md, .workspace-templates/, and scripts/ to the agent-specific skill directory.
16
+ */
17
+ export declare function installSkill(projectRoot: string, templatesDir: string, agent?: AgentTarget): Promise<InstallResult>;
18
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAGlF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB1D;AA0BD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,WAAuB,GAC7B,OAAO,CAAC,aAAa,CAAC,CA2BxB"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getAgentTargetPath = getAgentTargetPath;
37
+ exports.detectProjectRoot = detectProjectRoot;
38
+ exports.installSkill = installSkill;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const AGENT_PATHS = {
42
+ opencode: '.agents/skills/workspace-maxxing',
43
+ claude: '.claude/skills',
44
+ copilot: '.github/copilot-instructions',
45
+ gemini: '.gemini/skills',
46
+ };
47
+ function getAgentTargetPath(projectRoot, agent) {
48
+ const relativePath = AGENT_PATHS[agent ?? 'opencode'];
49
+ return path.join(projectRoot, relativePath);
50
+ }
51
+ /**
52
+ * Walk up from startDir looking for package.json or .git directory.
53
+ * Returns the first parent containing a marker, or startDir if none found.
54
+ */
55
+ function detectProjectRoot(startDir) {
56
+ let current = path.resolve(startDir);
57
+ const root = path.parse(current).root;
58
+ while (current !== root) {
59
+ const hasPackageJson = fs.existsSync(path.join(current, 'package.json'));
60
+ const hasGit = fs.existsSync(path.join(current, '.git'));
61
+ if (hasPackageJson || hasGit) {
62
+ return current;
63
+ }
64
+ current = path.dirname(current);
65
+ }
66
+ return startDir;
67
+ }
68
+ /**
69
+ * Recursively copy a directory, overwriting existing files.
70
+ */
71
+ function copyDirSync(src, dest) {
72
+ if (!fs.existsSync(src)) {
73
+ throw new Error(`Source directory not found: ${src}`);
74
+ }
75
+ fs.mkdirSync(dest, { recursive: true });
76
+ const entries = fs.readdirSync(src, { withFileTypes: true });
77
+ for (const entry of entries) {
78
+ const srcPath = path.join(src, entry.name);
79
+ const destPath = path.join(dest, entry.name);
80
+ if (entry.isDirectory()) {
81
+ copyDirSync(srcPath, destPath);
82
+ }
83
+ else {
84
+ fs.copyFileSync(srcPath, destPath);
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * Install the workspace-maxxing skill into a project.
90
+ * Copies SKILL.md, .workspace-templates/, and scripts/ to the agent-specific skill directory.
91
+ */
92
+ async function installSkill(projectRoot, templatesDir, agent = undefined) {
93
+ const skillDir = getAgentTargetPath(projectRoot, agent);
94
+ try {
95
+ // Copy SKILL.md
96
+ const skillMdSrc = path.join(templatesDir, 'SKILL.md');
97
+ const skillMdDest = path.join(skillDir, 'SKILL.md');
98
+ fs.mkdirSync(path.dirname(skillMdDest), { recursive: true });
99
+ fs.copyFileSync(skillMdSrc, skillMdDest);
100
+ // Copy .workspace-templates/
101
+ const workspaceTemplatesSrc = path.join(templatesDir, '.workspace-templates');
102
+ const workspaceTemplatesDest = path.join(skillDir, '.workspace-templates');
103
+ copyDirSync(workspaceTemplatesSrc, workspaceTemplatesDest);
104
+ // Copy scripts to skill root for direct invocation
105
+ const scriptsSrc = path.join(templatesDir, '.workspace-templates', 'scripts');
106
+ if (fs.existsSync(scriptsSrc)) {
107
+ const scriptsDest = path.join(skillDir, 'scripts');
108
+ copyDirSync(scriptsSrc, scriptsDest);
109
+ }
110
+ return { success: true, skillPath: skillDir };
111
+ }
112
+ catch (error) {
113
+ const message = error instanceof Error ? error.message : String(error);
114
+ return { success: false, skillPath: skillDir, error: message };
115
+ }
116
+ }
117
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { PlatformInstaller } from './index';
2
+ export declare class ClaudeInstaller implements PlatformInstaller {
3
+ install(agentPath: string, targetDir: string): void;
4
+ getAgentDir(workspacePath: string): string;
5
+ private copyDir;
6
+ }
7
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/platforms/claude.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAenD,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAI1C,OAAO,CAAC,OAAO;CAehB"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ClaudeInstaller = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ class ClaudeInstaller {
40
+ install(agentPath, targetDir) {
41
+ // Claude Code expects: .claude/skills/<name>/SKILL.md
42
+ // Need to remove @ prefix for directory name
43
+ const agentName = path.basename(agentPath);
44
+ const cleanName = agentName.startsWith('@') ? agentName.slice(1) : agentName;
45
+ const targetPath = path.join(targetDir, '.claude', 'skills', cleanName);
46
+ // Ensure target directory exists
47
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
48
+ this.copyDir(agentPath, targetPath);
49
+ console.log(`[Claude] Installed ${cleanName} at: ${targetPath}`);
50
+ }
51
+ getAgentDir(workspacePath) {
52
+ return path.join(workspacePath, '.claude', 'skills');
53
+ }
54
+ copyDir(src, dest) {
55
+ fs.mkdirSync(dest, { recursive: true });
56
+ const entries = fs.readdirSync(src, { withFileTypes: true });
57
+ for (const entry of entries) {
58
+ const srcPath = path.join(src, entry.name);
59
+ const destPath = path.join(dest, entry.name);
60
+ if (entry.isDirectory()) {
61
+ this.copyDir(srcPath, destPath);
62
+ }
63
+ else {
64
+ fs.copyFileSync(srcPath, destPath);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ exports.ClaudeInstaller = ClaudeInstaller;
70
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/platforms/claude.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B,MAAa,eAAe;IAC1B,OAAO,CAAC,SAAiB,EAAE,SAAiB;QAC1C,sDAAsD;QACtD,6CAA6C;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAExE,iCAAiC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,QAAQ,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,WAAW,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,OAAO,CAAC,GAAW,EAAE,IAAY;QACvC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnCD,0CAmCC"}
@@ -0,0 +1,7 @@
1
+ import { PlatformInstaller } from './index';
2
+ export declare class CopilotInstaller implements PlatformInstaller {
3
+ install(agentPath: string, targetDir: string): void;
4
+ getAgentDir(workspacePath: string): string;
5
+ private convertToCopilotInstructions;
6
+ }
7
+ //# sourceMappingURL=copilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/platforms/copilot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAsBnD,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAI1C,OAAO,CAAC,4BAA4B;CAkBrC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CopilotInstaller = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ class CopilotInstaller {
40
+ install(agentPath, targetDir) {
41
+ // Copilot expects: .github/copilot-instructions/<name>.md
42
+ // Convert SKILL.md content to markdown instructions
43
+ const agentName = path.basename(agentPath);
44
+ const cleanName = agentName.startsWith('@') ? agentName.slice(1) : agentName;
45
+ const targetPath = path.join(targetDir, '.github', 'copilot-instructions', `${cleanName}.md`);
46
+ // Ensure target directory exists
47
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
48
+ // Convert skill to copilot instructions format
49
+ const skillMdPath = path.join(agentPath, 'SKILL.md');
50
+ const skillMd = fs.existsSync(skillMdPath)
51
+ ? fs.readFileSync(skillMdPath, 'utf-8')
52
+ : '# Agent\n\nWorkflow agent';
53
+ const instructions = this.convertToCopilotInstructions(skillMd, cleanName);
54
+ fs.writeFileSync(targetPath, instructions);
55
+ console.log(`[Copilot] Installed ${cleanName} at: ${targetPath}`);
56
+ }
57
+ getAgentDir(workspacePath) {
58
+ return path.join(workspacePath, '.github', 'copilot-instructions');
59
+ }
60
+ convertToCopilotInstructions(skillMd, agentName) {
61
+ // Extract description from SKILL.md
62
+ const descMatch = skillMd.match(/^description:\s*"(.+)"$/m);
63
+ const triggersMatch = skillMd.match(/^triggers:\s*\[(.+)\]/m);
64
+ const desc = descMatch ? descMatch[1] : 'Workflow agent';
65
+ const triggers = triggersMatch ? triggersMatch[1].replace(/["']/g, '').split(',') : [];
66
+ let output = `# ${agentName}\n\n${desc}\n\n`;
67
+ if (triggers.length > 0) {
68
+ output += `## Trigger Phrases\n\n${triggers.map(t => `- ${t.trim()}`).join('\n')}\n\n`;
69
+ }
70
+ output += `## Usage\n\nUse this agent when working with the workspace workflow. Simply mention @${agentName} or use the trigger phrases above.\n\n## Capabilities\n\n- Execute workflow tasks following ICM stage boundaries\n- Process inputs and generate outputs\n- Produce structured markdown artifacts\n`;
71
+ return output;
72
+ }
73
+ }
74
+ exports.CopilotInstaller = CopilotInstaller;
75
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/platforms/copilot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B,MAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAiB,EAAE,SAAiB;QAC1C,0DAA0D;QAC1D,oDAAoD;QAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QAE9F,iCAAiC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;YACvC,CAAC,CAAC,2BAA2B,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE3E,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,QAAQ,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,WAAW,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACrE,CAAC;IAEO,4BAA4B,CAAC,OAAe,EAAE,SAAiB;QACrE,oCAAoC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvF,IAAI,MAAM,GAAG,KAAK,SAAS,OAAO,IAAI,MAAM,CAAC;QAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,yBAAyB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACzF,CAAC;QAED,MAAM,IAAI,wFAAwF,SAAS,oMAAoM,CAAC;QAEhT,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA7CD,4CA6CC"}
@@ -0,0 +1,7 @@
1
+ import { PlatformInstaller } from './index';
2
+ export declare class GeminiInstaller implements PlatformInstaller {
3
+ install(agentPath: string, targetDir: string): void;
4
+ getAgentDir(workspacePath: string): string;
5
+ private convertToGeminiInstructions;
6
+ }
7
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAqBnD,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAI1C,OAAO,CAAC,2BAA2B;CAwBpC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GeminiInstaller = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ class GeminiInstaller {
40
+ install(agentPath, targetDir) {
41
+ // Gemini expects: .gemini/skills/<name>/instructions.md
42
+ const agentName = path.basename(agentPath);
43
+ const cleanName = agentName.startsWith('@') ? agentName.slice(1) : agentName;
44
+ const targetPath = path.join(targetDir, '.gemini', 'skills', cleanName, 'instructions.md');
45
+ // Ensure target directory exists
46
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
47
+ // Convert SKILL.md to Gemini instructions format
48
+ const skillMdPath = path.join(agentPath, 'SKILL.md');
49
+ const skillMd = fs.existsSync(skillMdPath)
50
+ ? fs.readFileSync(skillMdPath, 'utf-8')
51
+ : '# Agent\n\nWorkflow agent';
52
+ const instructions = this.convertToGeminiInstructions(skillMd);
53
+ fs.writeFileSync(targetPath, instructions);
54
+ console.log(`[Gemini] Installed ${cleanName} at: ${targetPath}`);
55
+ }
56
+ getAgentDir(workspacePath) {
57
+ return path.join(workspacePath, '.gemini', 'skills');
58
+ }
59
+ convertToGeminiInstructions(skillMd) {
60
+ // Extract key sections from SKILL.md
61
+ const nameMatch = skillMd.match(/^name:\s*(.+)$/m);
62
+ const descMatch = skillMd.match(/^description:\s*"(.+)"$/m);
63
+ const triggersMatch = skillMd.match(/^triggers:\s*\[(.+)\]/m);
64
+ const name = nameMatch ? nameMatch[1] : 'Agent';
65
+ const desc = descMatch ? descMatch[1] : 'Workflow agent';
66
+ const triggers = triggersMatch
67
+ ? triggersMatch[1].replace(/["']/g, '').split(',').map(t => t.trim())
68
+ : [];
69
+ let output = `# ${name}\n\n${desc}\n\n## How to Invoke\n\n`;
70
+ if (triggers.length > 0) {
71
+ output += `Use one of these phrases:\n${triggers.map(t => `- "${t}"`).join('\n')}\n\n`;
72
+ }
73
+ else {
74
+ output += `Invoke the agent by name.\n\n`;
75
+ }
76
+ output += `## Capabilities\n\n- Execute workflow tasks\n- Process inputs and generate outputs\n- Follow ICM stage boundaries\n- Produce markdown artifacts\n\n## Workflow Context\n\nWhen activated, this agent operates within the workspace context:\n- Read SYSTEM.md first\n- Load relevant stage CONTEXT.md\n- Execute the requested task\n- Produce outputs in appropriate folders\n`;
77
+ return output;
78
+ }
79
+ }
80
+ exports.GeminiInstaller = GeminiInstaller;
81
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B,MAAa,eAAe;IAC1B,OAAO,CAAC,SAAiB,EAAE,SAAiB;QAC1C,wDAAwD;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAE3F,iCAAiC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,iDAAiD;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;YACvC,CAAC,CAAC,2BAA2B,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAE/D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,QAAQ,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,WAAW,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,2BAA2B,CAAC,OAAe;QACjD,qCAAqC;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzD,MAAM,QAAQ,GAAG,aAAa;YAC5B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,MAAM,GAAG,KAAK,IAAI,OAAO,IAAI,0BAA0B,CAAC;QAE5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,8BAA8B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,+BAA+B,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,iXAAiX,CAAC;QAE5X,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAlDD,0CAkDC"}
@@ -0,0 +1,8 @@
1
+ export type Platform = 'opencode' | 'claude' | 'copilot' | 'gemini';
2
+ export interface PlatformInstaller {
3
+ install(agentPath: string, targetDir: string): void;
4
+ getAgentDir(workspacePath: string): string;
5
+ }
6
+ export declare function detectPlatform(): Platform;
7
+ export declare function getPlatformInstaller(platform: Platform): PlatformInstaller;
8
+ //# sourceMappingURL=index.d.ts.map