maxsimcli 2.5.5 → 3.0.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 (137) hide show
  1. package/README.md +4 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapters/base.d.ts +34 -0
  4. package/dist/adapters/base.d.ts.map +1 -0
  5. package/dist/adapters/base.js +116 -0
  6. package/dist/adapters/base.js.map +1 -0
  7. package/dist/adapters/claude.d.ts +21 -0
  8. package/dist/adapters/claude.d.ts.map +1 -0
  9. package/dist/adapters/claude.js +104 -0
  10. package/dist/adapters/claude.js.map +1 -0
  11. package/dist/adapters/codex.d.ts +19 -0
  12. package/dist/adapters/codex.d.ts.map +1 -0
  13. package/dist/adapters/codex.js +94 -0
  14. package/dist/adapters/codex.js.map +1 -0
  15. package/dist/adapters/gemini.d.ts +19 -0
  16. package/dist/adapters/gemini.d.ts.map +1 -0
  17. package/dist/adapters/gemini.js +96 -0
  18. package/dist/adapters/gemini.js.map +1 -0
  19. package/dist/adapters/index.d.ts +20 -0
  20. package/dist/adapters/index.d.ts.map +1 -0
  21. package/dist/adapters/index.js +56 -0
  22. package/dist/adapters/index.js.map +1 -0
  23. package/dist/adapters/opencode.d.ts +17 -0
  24. package/dist/adapters/opencode.d.ts.map +1 -0
  25. package/dist/adapters/opencode.js +111 -0
  26. package/dist/adapters/opencode.js.map +1 -0
  27. package/dist/adapters/transforms/content.d.ts +39 -0
  28. package/dist/adapters/transforms/content.d.ts.map +1 -0
  29. package/dist/adapters/transforms/content.js +125 -0
  30. package/dist/adapters/transforms/content.js.map +1 -0
  31. package/dist/adapters/transforms/frontmatter.d.ts +42 -0
  32. package/dist/adapters/transforms/frontmatter.d.ts.map +1 -0
  33. package/dist/adapters/transforms/frontmatter.js +204 -0
  34. package/dist/adapters/transforms/frontmatter.js.map +1 -0
  35. package/dist/adapters/transforms/tool-maps.d.ts +20 -0
  36. package/dist/adapters/transforms/tool-maps.d.ts.map +1 -0
  37. package/dist/adapters/transforms/tool-maps.js +64 -0
  38. package/dist/adapters/transforms/tool-maps.js.map +1 -0
  39. package/dist/adapters/types.d.ts +10 -0
  40. package/dist/adapters/types.d.ts.map +1 -0
  41. package/dist/adapters/types.js +6 -0
  42. package/dist/adapters/types.js.map +1 -0
  43. package/dist/assets/CHANGELOG.md +26 -0
  44. package/dist/assets/dashboard/server.js +27731 -12035
  45. package/dist/assets/hooks/maxsim-check-update.cjs +2 -2
  46. package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -0
  47. package/dist/assets/hooks/maxsim-context-monitor.cjs +2 -2
  48. package/dist/assets/hooks/maxsim-context-monitor.cjs.map +1 -0
  49. package/dist/assets/hooks/maxsim-statusline.cjs +2 -2
  50. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -0
  51. package/dist/cli.cjs +15316 -5348
  52. package/dist/cli.cjs.map +1 -1
  53. package/dist/cli.d.ts +0 -6
  54. package/dist/cli.d.ts.map +1 -1
  55. package/dist/cli.js +282 -443
  56. package/dist/cli.js.map +1 -1
  57. package/dist/core/commands.d.ts +19 -0
  58. package/dist/core/commands.d.ts.map +1 -0
  59. package/dist/core/commands.js +560 -0
  60. package/dist/core/commands.js.map +1 -0
  61. package/dist/core/config.d.ts +9 -0
  62. package/dist/core/config.d.ts.map +1 -0
  63. package/dist/core/config.js +147 -0
  64. package/dist/core/config.js.map +1 -0
  65. package/dist/core/core.d.ts +39 -0
  66. package/dist/core/core.d.ts.map +1 -0
  67. package/dist/core/core.js +411 -0
  68. package/dist/core/core.js.map +1 -0
  69. package/dist/core/frontmatter.d.ts +33 -0
  70. package/dist/core/frontmatter.d.ts.map +1 -0
  71. package/dist/core/frontmatter.js +192 -0
  72. package/dist/core/frontmatter.js.map +1 -0
  73. package/dist/core/index.d.ts +20 -0
  74. package/dist/core/index.d.ts.map +1 -0
  75. package/dist/core/index.js +126 -0
  76. package/dist/core/index.js.map +1 -0
  77. package/dist/core/init.d.ts +252 -0
  78. package/dist/core/init.d.ts.map +1 -0
  79. package/dist/core/init.js +578 -0
  80. package/dist/core/init.js.map +1 -0
  81. package/dist/core/milestone.d.ts +9 -0
  82. package/dist/core/milestone.d.ts.map +1 -0
  83. package/dist/core/milestone.js +191 -0
  84. package/dist/core/milestone.js.map +1 -0
  85. package/dist/core/phase.d.ts +17 -0
  86. package/dist/core/phase.d.ts.map +1 -0
  87. package/dist/core/phase.js +610 -0
  88. package/dist/core/phase.js.map +1 -0
  89. package/dist/core/roadmap.d.ts +9 -0
  90. package/dist/core/roadmap.d.ts.map +1 -0
  91. package/dist/core/roadmap.js +228 -0
  92. package/dist/core/roadmap.js.map +1 -0
  93. package/dist/core/state.d.ts +21 -0
  94. package/dist/core/state.d.ts.map +1 -0
  95. package/dist/core/state.js +507 -0
  96. package/dist/core/state.js.map +1 -0
  97. package/dist/core/template.d.ts +30 -0
  98. package/dist/core/template.d.ts.map +1 -0
  99. package/dist/core/template.js +225 -0
  100. package/dist/core/template.js.map +1 -0
  101. package/dist/core/types.d.ts +374 -0
  102. package/dist/core/types.d.ts.map +1 -0
  103. package/dist/core/types.js +53 -0
  104. package/dist/core/types.js.map +1 -0
  105. package/dist/core/verify.d.ts +127 -0
  106. package/dist/core/verify.d.ts.map +1 -0
  107. package/dist/core/verify.js +783 -0
  108. package/dist/core/verify.js.map +1 -0
  109. package/dist/hooks/index.d.ts +11 -0
  110. package/dist/hooks/index.d.ts.map +1 -0
  111. package/dist/hooks/index.js +18 -0
  112. package/dist/hooks/index.js.map +1 -0
  113. package/dist/hooks/maxsim-check-update.d.ts +17 -0
  114. package/dist/hooks/maxsim-check-update.d.ts.map +1 -0
  115. package/dist/hooks/maxsim-check-update.js +101 -0
  116. package/dist/hooks/maxsim-check-update.js.map +1 -0
  117. package/dist/hooks/maxsim-context-monitor.d.ts +21 -0
  118. package/dist/hooks/maxsim-context-monitor.d.ts.map +1 -0
  119. package/dist/hooks/maxsim-context-monitor.js +131 -0
  120. package/dist/hooks/maxsim-context-monitor.js.map +1 -0
  121. package/dist/hooks/maxsim-statusline.d.ts +19 -0
  122. package/dist/hooks/maxsim-statusline.d.ts.map +1 -0
  123. package/dist/hooks/maxsim-statusline.js +146 -0
  124. package/dist/hooks/maxsim-statusline.js.map +1 -0
  125. package/dist/hooks/shared.d.ts +11 -0
  126. package/dist/hooks/shared.d.ts.map +1 -0
  127. package/dist/hooks/shared.js +29 -0
  128. package/dist/hooks/shared.js.map +1 -0
  129. package/dist/install.cjs +2807 -1211
  130. package/dist/install.cjs.map +1 -1
  131. package/dist/install.js +34 -85
  132. package/dist/install.js.map +1 -1
  133. package/package.json +10 -7
  134. package/dist/assets/hooks/index.cjs +0 -239
  135. package/dist/assets/templates/CLAUDE.md +0 -22
  136. package/dist/assets/templates/package.json +0 -5
  137. package/dist/assets/templates/project.json +0 -5
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ /**
3
+ * @maxsim/adapters — Content transformation utilities
4
+ *
5
+ * Ported from bin/install.js lines ~423-564
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.convertSlashCommandsToCodexSkillMentions = convertSlashCommandsToCodexSkillMentions;
9
+ exports.convertClaudeToCodexMarkdown = convertClaudeToCodexMarkdown;
10
+ exports.stripSubTags = stripSubTags;
11
+ exports.convertClaudeToGeminiAgent = convertClaudeToGeminiAgent;
12
+ exports.replacePathReferences = replacePathReferences;
13
+ const tool_maps_js_1 = require("./tool-maps.js");
14
+ /**
15
+ * Convert /maxsim:command-name to $maxsim-command-name for Codex skill mentions.
16
+ * Ported from install.js line ~423
17
+ */
18
+ function convertSlashCommandsToCodexSkillMentions(content) {
19
+ let converted = content.replace(/\/maxsim:([a-z0-9-]+)/gi, (_, commandName) => {
20
+ return `$maxsim-${String(commandName).toLowerCase()}`;
21
+ });
22
+ converted = converted.replace(/\/maxsim-help\b/g, '$maxsim-help');
23
+ return converted;
24
+ }
25
+ /**
26
+ * Convert Claude markdown to Codex markdown format.
27
+ * Replaces slash commands and $ARGUMENTS placeholder.
28
+ * Ported from install.js line ~431
29
+ */
30
+ function convertClaudeToCodexMarkdown(content) {
31
+ let converted = convertSlashCommandsToCodexSkillMentions(content);
32
+ converted = converted.replace(/\$ARGUMENTS\b/g, '{{MAXSIM_ARGS}}');
33
+ return converted;
34
+ }
35
+ /**
36
+ * Strip HTML <sub> tags for Gemini CLI output.
37
+ * Terminals don't support subscript -- converts <sub>text</sub> to italic *(text)*.
38
+ * Ported from install.js line ~474
39
+ */
40
+ function stripSubTags(content) {
41
+ return content.replace(/<sub>(.*?)<\/sub>/g, '*($1)*');
42
+ }
43
+ /**
44
+ * Convert Claude Code agent frontmatter to Gemini CLI format.
45
+ * - tools: must be a YAML array (not comma-separated string)
46
+ * - tool names: must use Gemini built-in names (read_file, not Read)
47
+ * - color: must be removed (causes validation error)
48
+ * - mcp__* tools: must be excluded (auto-discovered at runtime)
49
+ * - ${VAR} patterns: escaped to $VAR for Gemini template compatibility
50
+ *
51
+ * Ported from install.js line ~487
52
+ */
53
+ function convertClaudeToGeminiAgent(content) {
54
+ if (!content.startsWith('---'))
55
+ return content;
56
+ const endIndex = content.indexOf('---', 3);
57
+ if (endIndex === -1)
58
+ return content;
59
+ const frontmatter = content.substring(3, endIndex).trim();
60
+ const body = content.substring(endIndex + 3);
61
+ const lines = frontmatter.split('\n');
62
+ const newLines = [];
63
+ let inAllowedTools = false;
64
+ const tools = [];
65
+ for (const line of lines) {
66
+ const trimmed = line.trim();
67
+ if (trimmed.startsWith('allowed-tools:')) {
68
+ inAllowedTools = true;
69
+ continue;
70
+ }
71
+ if (trimmed.startsWith('tools:')) {
72
+ const toolsValue = trimmed.substring(6).trim();
73
+ if (toolsValue) {
74
+ const parsed = toolsValue.split(',').map((t) => t.trim()).filter((t) => t);
75
+ for (const t of parsed) {
76
+ const mapped = (0, tool_maps_js_1.convertGeminiToolName)(t);
77
+ if (mapped)
78
+ tools.push(mapped);
79
+ }
80
+ }
81
+ else {
82
+ inAllowedTools = true;
83
+ }
84
+ continue;
85
+ }
86
+ if (trimmed.startsWith('color:'))
87
+ continue;
88
+ if (inAllowedTools) {
89
+ if (trimmed.startsWith('- ')) {
90
+ const mapped = (0, tool_maps_js_1.convertGeminiToolName)(trimmed.substring(2).trim());
91
+ if (mapped)
92
+ tools.push(mapped);
93
+ continue;
94
+ }
95
+ else if (trimmed && !trimmed.startsWith('-')) {
96
+ inAllowedTools = false;
97
+ }
98
+ }
99
+ if (!inAllowedTools) {
100
+ newLines.push(line);
101
+ }
102
+ }
103
+ if (tools.length > 0) {
104
+ newLines.push('tools:');
105
+ for (const tool of tools) {
106
+ newLines.push(` - ${tool}`);
107
+ }
108
+ }
109
+ const newFrontmatter = newLines.join('\n').trim();
110
+ // Escape ${VAR} patterns in agent body for Gemini CLI compatibility.
111
+ const escapedBody = body.replace(/\$\{(\w+)\}/g, '$$$1');
112
+ return `---\n${newFrontmatter}\n---${stripSubTags(escapedBody)}`;
113
+ }
114
+ /**
115
+ * Replace path references in markdown content for a target runtime.
116
+ * Replaces ~/.claude/ with pathPrefix and ./.claude/ with ./dirName/.
117
+ */
118
+ function replacePathReferences(content, pathPrefix, dirName) {
119
+ const globalClaudeRegex = /~\/\.claude\//g;
120
+ const localClaudeRegex = /\.\/\.claude\//g;
121
+ let result = content.replace(globalClaudeRegex, pathPrefix);
122
+ result = result.replace(localClaudeRegex, `./${dirName}/`);
123
+ return result;
124
+ }
125
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/adapters/transforms/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @maxsim/adapters — Frontmatter conversion functions for opencode, gemini, codex
3
+ *
4
+ * Ported from bin/install.js lines ~308-711
5
+ */
6
+ /** Color name to hex mapping for opencode compatibility */
7
+ export declare const colorNameToHex: Record<string, string>;
8
+ /** Collapse whitespace to single line */
9
+ export declare function toSingleLine(value: string): string;
10
+ /** Quote a value for YAML using JSON.stringify */
11
+ export declare function yamlQuote(value: string): string;
12
+ /** Extract a single-line field value from YAML frontmatter text */
13
+ export declare function extractFrontmatterField(frontmatter: string, fieldName: string): string | null;
14
+ /**
15
+ * Convert Claude Code frontmatter to OpenCode format.
16
+ * - Converts 'allowed-tools:' array to 'tools:' object with tool: true entries
17
+ * - Converts color names to hex
18
+ * - Removes name: field (opencode uses filename)
19
+ * - Replaces tool name references in body content
20
+ * - Replaces /maxsim: with /maxsim- (flat command structure)
21
+ * - Replaces ~/.claude with ~/.config/opencode
22
+ * - Replaces subagent_type="general-purpose" with "general"
23
+ *
24
+ * Ported from install.js line ~566
25
+ */
26
+ export declare function convertClaudeToOpencodeFrontmatter(content: string): string;
27
+ /**
28
+ * Convert Claude Code markdown command to Gemini TOML format.
29
+ * Ported from install.js line ~677
30
+ */
31
+ export declare function convertClaudeToGeminiToml(content: string): string;
32
+ /**
33
+ * Convert Claude command to Codex skill format with adapter header.
34
+ * Ported from install.js line ~452
35
+ */
36
+ export declare function convertClaudeCommandToCodexSkill(content: string, skillName: string): string;
37
+ /**
38
+ * Generate the Codex skill adapter header block.
39
+ * Ported from install.js line ~437
40
+ */
41
+ export declare function getCodexSkillAdapterHeader(skillName: string): string;
42
+ //# sourceMappingURL=frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/adapters/transforms/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,2DAA2D;AAC3D,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAcjD,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuF1E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BjE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAapE"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ /**
3
+ * @maxsim/adapters — Frontmatter conversion functions for opencode, gemini, codex
4
+ *
5
+ * Ported from bin/install.js lines ~308-711
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.colorNameToHex = void 0;
9
+ exports.toSingleLine = toSingleLine;
10
+ exports.yamlQuote = yamlQuote;
11
+ exports.extractFrontmatterField = extractFrontmatterField;
12
+ exports.convertClaudeToOpencodeFrontmatter = convertClaudeToOpencodeFrontmatter;
13
+ exports.convertClaudeToGeminiToml = convertClaudeToGeminiToml;
14
+ exports.convertClaudeCommandToCodexSkill = convertClaudeCommandToCodexSkill;
15
+ exports.getCodexSkillAdapterHeader = getCodexSkillAdapterHeader;
16
+ const base_js_1 = require("../base.js");
17
+ const tool_maps_js_1 = require("./tool-maps.js");
18
+ const content_js_1 = require("./content.js");
19
+ /** Color name to hex mapping for opencode compatibility */
20
+ exports.colorNameToHex = {
21
+ cyan: '#00FFFF',
22
+ red: '#FF0000',
23
+ green: '#00FF00',
24
+ blue: '#0000FF',
25
+ yellow: '#FFFF00',
26
+ magenta: '#FF00FF',
27
+ orange: '#FFA500',
28
+ purple: '#800080',
29
+ pink: '#FFC0CB',
30
+ white: '#FFFFFF',
31
+ black: '#000000',
32
+ gray: '#808080',
33
+ grey: '#808080',
34
+ };
35
+ /** Collapse whitespace to single line */
36
+ function toSingleLine(value) {
37
+ return value.replace(/\s+/g, ' ').trim();
38
+ }
39
+ /** Quote a value for YAML using JSON.stringify */
40
+ function yamlQuote(value) {
41
+ return JSON.stringify(value);
42
+ }
43
+ /** Extract a single-line field value from YAML frontmatter text */
44
+ function extractFrontmatterField(frontmatter, fieldName) {
45
+ const regex = new RegExp(`^${fieldName}:\\s*(.+)$`, 'm');
46
+ const match = frontmatter.match(regex);
47
+ if (!match)
48
+ return null;
49
+ return match[1].trim().replace(/^['"]|['"]$/g, '');
50
+ }
51
+ /**
52
+ * Convert Claude Code frontmatter to OpenCode format.
53
+ * - Converts 'allowed-tools:' array to 'tools:' object with tool: true entries
54
+ * - Converts color names to hex
55
+ * - Removes name: field (opencode uses filename)
56
+ * - Replaces tool name references in body content
57
+ * - Replaces /maxsim: with /maxsim- (flat command structure)
58
+ * - Replaces ~/.claude with ~/.config/opencode
59
+ * - Replaces subagent_type="general-purpose" with "general"
60
+ *
61
+ * Ported from install.js line ~566
62
+ */
63
+ function convertClaudeToOpencodeFrontmatter(content) {
64
+ // Replace tool name references in content (applies to all files)
65
+ let convertedContent = content;
66
+ convertedContent = convertedContent.replace(/\bAskUserQuestion\b/g, 'question');
67
+ convertedContent = convertedContent.replace(/\bSlashCommand\b/g, 'skill');
68
+ convertedContent = convertedContent.replace(/\bTodoWrite\b/g, 'todowrite');
69
+ convertedContent = convertedContent.replace(/\/maxsim:/g, '/maxsim-');
70
+ convertedContent = convertedContent.replace(/~\/\.claude\b/g, '~/.config/opencode');
71
+ convertedContent = convertedContent.replace(/subagent_type="general-purpose"/g, 'subagent_type="general"');
72
+ if (!convertedContent.startsWith('---')) {
73
+ return convertedContent;
74
+ }
75
+ const endIndex = convertedContent.indexOf('---', 3);
76
+ if (endIndex === -1) {
77
+ return convertedContent;
78
+ }
79
+ const frontmatter = convertedContent.substring(3, endIndex).trim();
80
+ const body = convertedContent.substring(endIndex + 3);
81
+ const lines = frontmatter.split('\n');
82
+ const newLines = [];
83
+ let inAllowedTools = false;
84
+ const allowedTools = [];
85
+ for (const line of lines) {
86
+ const trimmed = line.trim();
87
+ if (trimmed.startsWith('allowed-tools:')) {
88
+ inAllowedTools = true;
89
+ continue;
90
+ }
91
+ if (trimmed.startsWith('tools:')) {
92
+ const toolsValue = trimmed.substring(6).trim();
93
+ if (toolsValue) {
94
+ const tools = toolsValue.split(',').map((t) => t.trim()).filter((t) => t);
95
+ allowedTools.push(...tools);
96
+ }
97
+ continue;
98
+ }
99
+ if (trimmed.startsWith('name:')) {
100
+ continue;
101
+ }
102
+ if (trimmed.startsWith('color:')) {
103
+ const colorValue = trimmed.substring(6).trim().toLowerCase();
104
+ const hexColor = exports.colorNameToHex[colorValue];
105
+ if (hexColor) {
106
+ newLines.push(`color: "${hexColor}"`);
107
+ }
108
+ else if (colorValue.startsWith('#')) {
109
+ if (/^#[0-9a-f]{3}$|^#[0-9a-f]{6}$/i.test(colorValue)) {
110
+ newLines.push(line);
111
+ }
112
+ }
113
+ continue;
114
+ }
115
+ if (inAllowedTools) {
116
+ if (trimmed.startsWith('- ')) {
117
+ allowedTools.push(trimmed.substring(2).trim());
118
+ continue;
119
+ }
120
+ else if (trimmed && !trimmed.startsWith('-')) {
121
+ inAllowedTools = false;
122
+ }
123
+ }
124
+ if (!inAllowedTools) {
125
+ newLines.push(line);
126
+ }
127
+ }
128
+ if (allowedTools.length > 0) {
129
+ newLines.push('tools:');
130
+ for (const tool of allowedTools) {
131
+ newLines.push(` ${(0, tool_maps_js_1.convertToolName)(tool)}: true`);
132
+ }
133
+ }
134
+ const newFrontmatter = newLines.join('\n').trim();
135
+ return `---\n${newFrontmatter}\n---${body}`;
136
+ }
137
+ /**
138
+ * Convert Claude Code markdown command to Gemini TOML format.
139
+ * Ported from install.js line ~677
140
+ */
141
+ function convertClaudeToGeminiToml(content) {
142
+ if (!content.startsWith('---')) {
143
+ return `prompt = ${JSON.stringify(content)}\n`;
144
+ }
145
+ const endIndex = content.indexOf('---', 3);
146
+ if (endIndex === -1) {
147
+ return `prompt = ${JSON.stringify(content)}\n`;
148
+ }
149
+ const frontmatter = content.substring(3, endIndex).trim();
150
+ const body = content.substring(endIndex + 3).trim();
151
+ let description = '';
152
+ const lines = frontmatter.split('\n');
153
+ for (const line of lines) {
154
+ const trimmed = line.trim();
155
+ if (trimmed.startsWith('description:')) {
156
+ description = trimmed.substring(12).trim();
157
+ break;
158
+ }
159
+ }
160
+ let toml = '';
161
+ if (description) {
162
+ toml += `description = ${JSON.stringify(description)}\n`;
163
+ }
164
+ toml += `prompt = ${JSON.stringify(body)}\n`;
165
+ return toml;
166
+ }
167
+ /**
168
+ * Convert Claude command to Codex skill format with adapter header.
169
+ * Ported from install.js line ~452
170
+ */
171
+ function convertClaudeCommandToCodexSkill(content, skillName) {
172
+ const converted = (0, content_js_1.convertClaudeToCodexMarkdown)(content);
173
+ const { frontmatter, body } = (0, base_js_1.extractFrontmatterAndBody)(converted);
174
+ let description = `Run MAXSIM workflow ${skillName}.`;
175
+ if (frontmatter) {
176
+ const maybeDescription = extractFrontmatterField(frontmatter, 'description');
177
+ if (maybeDescription) {
178
+ description = maybeDescription;
179
+ }
180
+ }
181
+ description = toSingleLine(description);
182
+ const shortDescription = description.length > 180 ? `${description.slice(0, 177)}...` : description;
183
+ const adapter = getCodexSkillAdapterHeader(skillName);
184
+ return `---\nname: ${yamlQuote(skillName)}\ndescription: ${yamlQuote(description)}\nmetadata:\n short-description: ${yamlQuote(shortDescription)}\n---\n\n${adapter}\n\n${body.trimStart()}`;
185
+ }
186
+ /**
187
+ * Generate the Codex skill adapter header block.
188
+ * Ported from install.js line ~437
189
+ */
190
+ function getCodexSkillAdapterHeader(skillName) {
191
+ const invocation = `$${skillName}`;
192
+ return `<codex_skill_adapter>
193
+ Codex skills-first mode:
194
+ - This skill is invoked by mentioning \`${invocation}\`.
195
+ - Treat all user text after \`${invocation}\` as \`{{MAXSIM_ARGS}}\`.
196
+ - If no arguments are present, treat \`{{MAXSIM_ARGS}}\` as empty.
197
+
198
+ Legacy orchestration compatibility:
199
+ - Any \`Task(...)\` pattern in referenced workflow docs is legacy syntax.
200
+ - Implement equivalent behavior with Codex collaboration tools: \`spawn_agent\`, \`wait\`, \`send_input\`, and \`close_agent\`.
201
+ - Treat legacy \`subagent_type\` names as role hints in the spawned message.
202
+ </codex_skill_adapter>`;
203
+ }
204
+ //# sourceMappingURL=frontmatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../src/adapters/transforms/frontmatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @maxsim/adapters — Tool name mappings per runtime
3
+ *
4
+ * Ported from bin/install.js lines ~327-390
5
+ */
6
+ /**
7
+ * Convert a Claude Code tool name to OpenCode format.
8
+ * - Applies special mappings (AskUserQuestion -> question, etc.)
9
+ * - Converts to lowercase (except MCP tools which keep their format)
10
+ */
11
+ export declare function convertToolName(claudeTool: string): string;
12
+ /**
13
+ * Convert a Claude Code tool name to Gemini CLI format.
14
+ * - Applies Claude->Gemini mapping (Read->read_file, Bash->run_shell_command, etc.)
15
+ * - Filters out MCP tools (mcp__*) -- auto-discovered at runtime in Gemini
16
+ * - Filters out Task -- agents are auto-registered as tools in Gemini
17
+ * @returns Gemini tool name, or null if tool should be excluded
18
+ */
19
+ export declare function convertGeminiToolName(claudeTool: string): string | null;
20
+ //# sourceMappingURL=tool-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-maps.d.ts","sourceRoot":"","sources":["../../../src/adapters/transforms/tool-maps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWvE"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * @maxsim/adapters — Tool name mappings per runtime
4
+ *
5
+ * Ported from bin/install.js lines ~327-390
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.convertToolName = convertToolName;
9
+ exports.convertGeminiToolName = convertGeminiToolName;
10
+ /** Tool name mapping from Claude Code to OpenCode */
11
+ const claudeToOpencodeTools = {
12
+ AskUserQuestion: 'question',
13
+ SlashCommand: 'skill',
14
+ TodoWrite: 'todowrite',
15
+ WebFetch: 'webfetch',
16
+ WebSearch: 'websearch',
17
+ };
18
+ /** Tool name mapping from Claude Code to Gemini CLI */
19
+ const claudeToGeminiTools = {
20
+ Read: 'read_file',
21
+ Write: 'write_file',
22
+ Edit: 'replace',
23
+ Bash: 'run_shell_command',
24
+ Glob: 'glob',
25
+ Grep: 'search_file_content',
26
+ WebSearch: 'google_web_search',
27
+ WebFetch: 'web_fetch',
28
+ TodoWrite: 'write_todos',
29
+ AskUserQuestion: 'ask_user',
30
+ };
31
+ /**
32
+ * Convert a Claude Code tool name to OpenCode format.
33
+ * - Applies special mappings (AskUserQuestion -> question, etc.)
34
+ * - Converts to lowercase (except MCP tools which keep their format)
35
+ */
36
+ function convertToolName(claudeTool) {
37
+ if (claudeToOpencodeTools[claudeTool]) {
38
+ return claudeToOpencodeTools[claudeTool];
39
+ }
40
+ if (claudeTool.startsWith('mcp__')) {
41
+ return claudeTool;
42
+ }
43
+ return claudeTool.toLowerCase();
44
+ }
45
+ /**
46
+ * Convert a Claude Code tool name to Gemini CLI format.
47
+ * - Applies Claude->Gemini mapping (Read->read_file, Bash->run_shell_command, etc.)
48
+ * - Filters out MCP tools (mcp__*) -- auto-discovered at runtime in Gemini
49
+ * - Filters out Task -- agents are auto-registered as tools in Gemini
50
+ * @returns Gemini tool name, or null if tool should be excluded
51
+ */
52
+ function convertGeminiToolName(claudeTool) {
53
+ if (claudeTool.startsWith('mcp__')) {
54
+ return null;
55
+ }
56
+ if (claudeTool === 'Task') {
57
+ return null;
58
+ }
59
+ if (claudeToGeminiTools[claudeTool]) {
60
+ return claudeToGeminiTools[claudeTool];
61
+ }
62
+ return claudeTool.toLowerCase();
63
+ }
64
+ //# sourceMappingURL=tool-maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-maps.js","sourceRoot":"","sources":["../../../src/adapters/transforms/tool-maps.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA8BH,0CAQC;AASD,sDAWC;AAxDD,qDAAqD;AACrD,MAAM,qBAAqB,GAA2B;IACpD,eAAe,EAAE,UAAU;IAC3B,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF,uDAAuD;AACvD,MAAM,mBAAmB,GAA2B;IAClD,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,aAAa;IACxB,eAAe,EAAE,UAAU;CAC5B,CAAC;AAEF;;;;GAIG;AACH,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @maxsim/adapters — Type definitions
3
+ */
4
+ export type { RuntimeName, AdapterConfig } from '../core/index.js';
5
+ export interface InstallOptions {
6
+ isGlobal: boolean;
7
+ explicitConfigDir?: string | null;
8
+ forceStatusline?: boolean;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * @maxsim/adapters — Type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -1,3 +1,29 @@
1
+ # [3.0.0](https://github.com/maystudios/maxsim/compare/v2.5.6...v3.0.0) (2026-02-25)
2
+
3
+
4
+ * refactor!: flatten monorepo — merge core/adapters/hooks/templates/e2e into cli, remove Nx, switch pnpm to npm ([78f37ad](https://github.com/maystudios/maxsim/commit/78f37ada467876fa7f353fefceb85a503642c82a))
5
+
6
+
7
+ ### Bug Fixes
8
+
9
+ * add GSD attribution to README and LICENSE ([44b0b5f](https://github.com/maystudios/maxsim/commit/44b0b5f56f2cec7ea9ff18d4e9abf4517bfa3984))
10
+ * **build:** suppress tsdown inlineOnly warning causing CI exit code 1 ([4aaf606](https://github.com/maystudios/maxsim/commit/4aaf606cfc1051e47571b4cad4fcecb2eba90164))
11
+ * **ci:** update husky pre-push hook from pnpm to npm ([2882c94](https://github.com/maystudios/maxsim/commit/2882c94498e560b6567020e55bf2dec108fe4fbe))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * Development now requires npm instead of pnpm. No user-facing changes.
17
+
18
+ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
19
+
20
+ ## [2.5.6](https://github.com/maystudios/maxsim/compare/v2.5.5...v2.5.6) (2026-02-25)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **dashboard:** spawn claude via system shell for reliable PATH resolution ([0030283](https://github.com/maystudios/maxsim/commit/0030283ac800d966a02290983455ec591557e55e))
26
+
1
27
  ## [2.5.5](https://github.com/maystudios/maxsim/compare/v2.5.4...v2.5.5) (2026-02-25)
2
28
 
3
29