@codemieai/code 0.0.33 → 0.0.34

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 (180) hide show
  1. package/README.md +73 -7
  2. package/bin/codemie-opencode.js +11 -0
  3. package/dist/agents/codemie-code/agent.d.ts +17 -1
  4. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  5. package/dist/agents/codemie-code/agent.js +62 -3
  6. package/dist/agents/codemie-code/agent.js.map +1 -1
  7. package/dist/agents/codemie-code/index.d.ts +1 -0
  8. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  9. package/dist/agents/codemie-code/index.js +28 -2
  10. package/dist/agents/codemie-code/index.js.map +1 -1
  11. package/dist/agents/codemie-code/prompts.d.ts +12 -3
  12. package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
  13. package/dist/agents/codemie-code/prompts.js +25 -5
  14. package/dist/agents/codemie-code/prompts.js.map +1 -1
  15. package/dist/agents/codemie-code/types.d.ts +3 -0
  16. package/dist/agents/codemie-code/types.d.ts.map +1 -1
  17. package/dist/agents/codemie-code/types.js.map +1 -1
  18. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  19. package/dist/agents/core/AgentCLI.js +3 -1
  20. package/dist/agents/core/AgentCLI.js.map +1 -1
  21. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  22. package/dist/agents/core/BaseAgentAdapter.js +33 -0
  23. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  24. package/dist/agents/core/session/BaseSessionAdapter.d.ts +25 -0
  25. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -1
  26. package/dist/agents/core/session/discovery-types.d.ts +53 -0
  27. package/dist/agents/core/session/discovery-types.d.ts.map +1 -0
  28. package/dist/agents/core/session/discovery-types.js +8 -0
  29. package/dist/agents/core/session/discovery-types.js.map +1 -0
  30. package/dist/agents/core/types.d.ts +45 -0
  31. package/dist/agents/core/types.d.ts.map +1 -1
  32. package/dist/agents/plugins/claude/claude.plugin.d.ts +44 -1
  33. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  34. package/dist/agents/plugins/claude/claude.plugin.js +214 -0
  35. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  36. package/dist/agents/plugins/claude/plugin/README.md +40 -2
  37. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +5 -5
  38. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +177 -436
  39. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/code-review-agent-template.md.template +49 -82
  40. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/refactor-cleaner-agent.md.template +337 -0
  41. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/solution-architect-agent.md.template +129 -419
  42. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/unit-tester-agent.md.template +146 -693
  43. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +110 -138
  44. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/architecture.md.template +197 -0
  45. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +171 -91
  46. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +219 -131
  47. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +223 -98
  48. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +131 -95
  49. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +247 -75
  50. package/dist/agents/plugins/claude/plugin/commands/README.md +133 -0
  51. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +336 -544
  52. package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +232 -503
  53. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +311 -30
  54. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +218 -39
  55. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -1
  56. package/dist/agents/plugins/gemini/gemini.plugin.js +0 -3
  57. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
  58. package/dist/agents/plugins/opencode/index.d.ts +8 -0
  59. package/dist/agents/plugins/opencode/index.d.ts.map +1 -0
  60. package/dist/agents/plugins/opencode/index.js +12 -0
  61. package/dist/agents/plugins/opencode/index.js.map +1 -0
  62. package/dist/agents/plugins/opencode/opencode-message-types.d.ts +207 -0
  63. package/dist/agents/plugins/opencode/opencode-message-types.d.ts.map +1 -0
  64. package/dist/agents/plugins/opencode/opencode-message-types.js +59 -0
  65. package/dist/agents/plugins/opencode/opencode-message-types.js.map +1 -0
  66. package/dist/agents/plugins/opencode/opencode-model-configs.d.ts +65 -0
  67. package/dist/agents/plugins/opencode/opencode-model-configs.d.ts.map +1 -0
  68. package/dist/agents/plugins/opencode/opencode-model-configs.js +184 -0
  69. package/dist/agents/plugins/opencode/opencode-model-configs.js.map +1 -0
  70. package/dist/agents/plugins/opencode/opencode.paths.d.ts +62 -0
  71. package/dist/agents/plugins/opencode/opencode.paths.d.ts.map +1 -0
  72. package/dist/agents/plugins/opencode/opencode.paths.js +148 -0
  73. package/dist/agents/plugins/opencode/opencode.paths.js.map +1 -0
  74. package/dist/agents/plugins/opencode/opencode.plugin.d.ts +35 -0
  75. package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -0
  76. package/dist/agents/plugins/opencode/opencode.plugin.js +338 -0
  77. package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -0
  78. package/dist/agents/plugins/opencode/opencode.session.d.ts +77 -0
  79. package/dist/agents/plugins/opencode/opencode.session.d.ts.map +1 -0
  80. package/dist/agents/plugins/opencode/opencode.session.js +424 -0
  81. package/dist/agents/plugins/opencode/opencode.session.js.map +1 -0
  82. package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts +25 -0
  83. package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts.map +1 -0
  84. package/dist/agents/plugins/opencode/opencode.storage-utils.js +96 -0
  85. package/dist/agents/plugins/opencode/opencode.storage-utils.js.map +1 -0
  86. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts +30 -0
  87. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts.map +1 -0
  88. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js +116 -0
  89. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js.map +1 -0
  90. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts +102 -0
  91. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts.map +1 -0
  92. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js +584 -0
  93. package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js.map +1 -0
  94. package/dist/agents/registry.d.ts.map +1 -1
  95. package/dist/agents/registry.js +2 -0
  96. package/dist/agents/registry.js.map +1 -1
  97. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts +5 -0
  98. package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts.map +1 -1
  99. package/dist/cli/commands/doctor/checks/AgentsCheck.js +29 -0
  100. package/dist/cli/commands/doctor/checks/AgentsCheck.js.map +1 -1
  101. package/dist/cli/commands/install.d.ts.map +1 -1
  102. package/dist/cli/commands/install.js +86 -7
  103. package/dist/cli/commands/install.js.map +1 -1
  104. package/dist/cli/commands/opencode-metrics.d.ts +13 -0
  105. package/dist/cli/commands/opencode-metrics.d.ts.map +1 -0
  106. package/dist/cli/commands/opencode-metrics.js +200 -0
  107. package/dist/cli/commands/opencode-metrics.js.map +1 -0
  108. package/dist/cli/commands/setup.d.ts.map +1 -1
  109. package/dist/cli/commands/setup.js +113 -0
  110. package/dist/cli/commands/setup.js.map +1 -1
  111. package/dist/cli/commands/skill.d.ts +6 -0
  112. package/dist/cli/commands/skill.d.ts.map +1 -0
  113. package/dist/cli/commands/skill.js +196 -0
  114. package/dist/cli/commands/skill.js.map +1 -0
  115. package/dist/cli/commands/update.d.ts.map +1 -1
  116. package/dist/cli/commands/update.js +34 -6
  117. package/dist/cli/commands/update.js.map +1 -1
  118. package/dist/cli/index.js +4 -0
  119. package/dist/cli/index.js.map +1 -1
  120. package/dist/migrations/003-remove-hooks-node.migration.d.ts +22 -0
  121. package/dist/migrations/003-remove-hooks-node.migration.d.ts.map +1 -0
  122. package/dist/migrations/003-remove-hooks-node.migration.js +103 -0
  123. package/dist/migrations/003-remove-hooks-node.migration.js.map +1 -0
  124. package/dist/migrations/index.d.ts +1 -0
  125. package/dist/migrations/index.d.ts.map +1 -1
  126. package/dist/migrations/index.js +1 -1
  127. package/dist/migrations/index.js.map +1 -1
  128. package/dist/providers/plugins/sso/sso.http-client.js +2 -2
  129. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  130. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
  131. package/dist/providers/plugins/sso/sso.setup-steps.js +14 -10
  132. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  133. package/dist/skills/core/SkillDiscovery.d.ts +83 -0
  134. package/dist/skills/core/SkillDiscovery.d.ts.map +1 -0
  135. package/dist/skills/core/SkillDiscovery.js +237 -0
  136. package/dist/skills/core/SkillDiscovery.js.map +1 -0
  137. package/dist/skills/core/SkillManager.d.ts +86 -0
  138. package/dist/skills/core/SkillManager.d.ts.map +1 -0
  139. package/dist/skills/core/SkillManager.js +155 -0
  140. package/dist/skills/core/SkillManager.js.map +1 -0
  141. package/dist/skills/core/types.d.ts +120 -0
  142. package/dist/skills/core/types.d.ts.map +1 -0
  143. package/dist/skills/core/types.js +20 -0
  144. package/dist/skills/core/types.js.map +1 -0
  145. package/dist/skills/index.d.ts +12 -0
  146. package/dist/skills/index.d.ts.map +1 -0
  147. package/dist/skills/index.js +12 -0
  148. package/dist/skills/index.js.map +1 -0
  149. package/dist/skills/utils/content-loader.d.ts +25 -0
  150. package/dist/skills/utils/content-loader.d.ts.map +1 -0
  151. package/dist/skills/utils/content-loader.js +161 -0
  152. package/dist/skills/utils/content-loader.js.map +1 -0
  153. package/dist/skills/utils/frontmatter.d.ts +60 -0
  154. package/dist/skills/utils/frontmatter.d.ts.map +1 -0
  155. package/dist/skills/utils/frontmatter.js +114 -0
  156. package/dist/skills/utils/frontmatter.js.map +1 -0
  157. package/dist/skills/utils/pattern-matcher.d.ts +60 -0
  158. package/dist/skills/utils/pattern-matcher.d.ts.map +1 -0
  159. package/dist/skills/utils/pattern-matcher.js +97 -0
  160. package/dist/skills/utils/pattern-matcher.js.map +1 -0
  161. package/dist/utils/installation-detector.d.ts +22 -0
  162. package/dist/utils/installation-detector.d.ts.map +1 -0
  163. package/dist/utils/installation-detector.js +49 -0
  164. package/dist/utils/installation-detector.js.map +1 -0
  165. package/dist/utils/native-installer.d.ts +49 -0
  166. package/dist/utils/native-installer.d.ts.map +1 -0
  167. package/dist/utils/native-installer.js +194 -0
  168. package/dist/utils/native-installer.js.map +1 -0
  169. package/dist/utils/version-utils.d.ts +50 -0
  170. package/dist/utils/version-utils.d.ts.map +1 -0
  171. package/dist/utils/version-utils.js +92 -0
  172. package/dist/utils/version-utils.js.map +1 -0
  173. package/package.json +5 -2
  174. package/scripts/copy-mr-skill-to-global.ts +252 -0
  175. package/scripts/demo-hooks.sh +125 -0
  176. package/scripts/test-hooks.sh +196 -0
  177. package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +0 -205
  178. package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +0 -74
  179. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +0 -143
  180. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +0 -127
@@ -1,7 +1,8 @@
1
- import { AgentMetadata } from '../../core/types.js';
1
+ import { AgentMetadata, VersionCompatibilityResult } from '../../core/types.js';
2
2
  import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
3
3
  import type { SessionAdapter } from '../../core/session/BaseSessionAdapter.js';
4
4
  import type { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
5
+ import { type InstallationMethod } from '../../../utils/installation-detector.js';
5
6
  /**
6
7
  * Claude Code Plugin Metadata
7
8
  */
@@ -22,5 +23,47 @@ export declare class ClaudePlugin extends BaseAgentAdapter {
22
23
  * Returns installer to handle plugin installation
23
24
  */
24
25
  getExtensionInstaller(): BaseExtensionInstaller;
26
+ /**
27
+ * Get Claude version (override from BaseAgentAdapter)
28
+ * Parses version from 'claude --version' output
29
+ * Claude outputs: "2.1.23 (Claude Code)" - we need just "2.1.23"
30
+ *
31
+ * @returns Version string or null if not installed
32
+ */
33
+ getVersion(): Promise<string | null>;
34
+ /**
35
+ * Detect how Claude was installed (npm vs native)
36
+ * Returns installation method for informational purposes
37
+ *
38
+ * @returns Installation method: 'npm', 'native', or 'unknown'
39
+ */
40
+ getInstallationMethod(): Promise<InstallationMethod>;
41
+ /**
42
+ * Install Claude Code using native installer (override from BaseAgentAdapter)
43
+ * Installs latest available version from native installer
44
+ * For version-specific installs, use installVersion() method
45
+ *
46
+ * @throws {AgentInstallationError} If installation fails
47
+ */
48
+ install(): Promise<void>;
49
+ /**
50
+ * Install specific version of Claude Code
51
+ * Uses native installer with version parameter
52
+ * Special handling for version parameter:
53
+ * - undefined/'latest': Install latest available version
54
+ * - 'supported': Install version from metadata.supportedVersion
55
+ * - Semantic version string (e.g., '2.0.30'): Install specific version
56
+ *
57
+ * @param version - Version string (e.g., '2.0.30', 'latest', 'supported')
58
+ * @throws {AgentInstallationError} If installation fails
59
+ */
60
+ installVersion(version?: string): Promise<void>;
61
+ /**
62
+ * Check if installed version is compatible with CodeMie
63
+ * Compares against metadata.supportedVersion
64
+ *
65
+ * @returns Version compatibility result with status and version info
66
+ */
67
+ checkVersionCompatibility(): Promise<VersionCompatibilityResult>;
25
68
  }
26
69
  //# sourceMappingURL=claude.plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA6ElC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAyB;;IAUnD;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;;OAGG;IACH,qBAAqB,IAAI,sBAAsB;CAGhD"}
1
+ {"version":3,"file":"claude.plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAK7F,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA+FlC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAyB;;IAUnD;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;;OAGG;IACH,qBAAqB,IAAI,sBAAsB;IAI/C;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsB1C;;;;;OAKG;IACG,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQ1D;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ErD;;;;;OAKG;IACG,yBAAyB,IAAI,OAAO,CAAC,0BAA0B,CAAC;CA2FvE"}
@@ -1,6 +1,11 @@
1
1
  import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
2
2
  import { ClaudeSessionAdapter } from './claude.session.js';
3
3
  import { ClaudePluginInstaller } from './claude.plugin-installer.js';
4
+ import { installNativeAgent } from '../../../utils/native-installer.js';
5
+ import { compareVersions, isValidSemanticVersion } from '../../../utils/version-utils.js';
6
+ import { AgentInstallationError, createErrorContext } from '../../../utils/errors.js';
7
+ import { logger } from '../../../utils/logger.js';
8
+ import { detectInstallationMethod } from '../../../utils/installation-detector.js';
4
9
  /**
5
10
  * Claude Code Plugin Metadata
6
11
  */
@@ -10,6 +15,14 @@ export const ClaudePluginMetadata = {
10
15
  description: 'Claude Code - official Anthropic CLI tool',
11
16
  npmPackage: '@anthropic-ai/claude-code',
12
17
  cliCommand: 'claude',
18
+ // Version management configuration
19
+ supportedVersion: '2.1.22', // Latest version tested with CodeMie backend
20
+ // Native installer URLs (used by installNativeAgent utility)
21
+ installerUrls: {
22
+ macOS: 'https://claude.ai/install.sh',
23
+ windows: 'https://claude.ai/install.cmd',
24
+ linux: 'https://claude.ai/install.sh'
25
+ },
13
26
  // Data paths (used by lifecycle hooks and analytics)
14
27
  dataPaths: {
15
28
  home: '.claude'
@@ -67,6 +80,13 @@ export const ClaudePluginMetadata = {
67
80
  if (!env.CLAUDE_CODE_ENABLE_TELEMETRY) {
68
81
  env.CLAUDE_CODE_ENABLE_TELEMETRY = '0';
69
82
  }
83
+ // CRITICAL: Disable Claude Code auto-updater to maintain version control
84
+ // CodeMie manages Claude versions explicitly via installVersion() for compatibility
85
+ // Auto-updates could break version compatibility with CodeMie backend
86
+ // https://code.claude.com/docs/en/settings
87
+ if (!env.DISABLE_AUTOUPDATER) {
88
+ env.DISABLE_AUTOUPDATER = '1';
89
+ }
70
90
  return env;
71
91
  }
72
92
  }
@@ -97,5 +117,199 @@ export class ClaudePlugin extends BaseAgentAdapter {
97
117
  getExtensionInstaller() {
98
118
  return this.extensionInstaller;
99
119
  }
120
+ /**
121
+ * Get Claude version (override from BaseAgentAdapter)
122
+ * Parses version from 'claude --version' output
123
+ * Claude outputs: "2.1.23 (Claude Code)" - we need just "2.1.23"
124
+ *
125
+ * @returns Version string or null if not installed
126
+ */
127
+ async getVersion() {
128
+ if (!this.metadata.cliCommand) {
129
+ return null;
130
+ }
131
+ try {
132
+ const { exec } = await import('../../../utils/processes.js');
133
+ const result = await exec(this.metadata.cliCommand, ['--version']);
134
+ // Parse version from output like "2.1.23 (Claude Code)"
135
+ // Extract just the version number
136
+ const versionMatch = result.stdout.trim().match(/^(\d+\.\d+\.\d+)/);
137
+ if (versionMatch) {
138
+ return versionMatch[1];
139
+ }
140
+ return result.stdout.trim();
141
+ }
142
+ catch {
143
+ return null;
144
+ }
145
+ }
146
+ /**
147
+ * Detect how Claude was installed (npm vs native)
148
+ * Returns installation method for informational purposes
149
+ *
150
+ * @returns Installation method: 'npm', 'native', or 'unknown'
151
+ */
152
+ async getInstallationMethod() {
153
+ if (!this.metadata.cliCommand) {
154
+ return 'unknown';
155
+ }
156
+ return await detectInstallationMethod(this.metadata.cliCommand);
157
+ }
158
+ /**
159
+ * Install Claude Code using native installer (override from BaseAgentAdapter)
160
+ * Installs latest available version from native installer
161
+ * For version-specific installs, use installVersion() method
162
+ *
163
+ * @throws {AgentInstallationError} If installation fails
164
+ */
165
+ async install() {
166
+ // Install latest available version (no version specified)
167
+ await this.installVersion(undefined);
168
+ }
169
+ /**
170
+ * Install specific version of Claude Code
171
+ * Uses native installer with version parameter
172
+ * Special handling for version parameter:
173
+ * - undefined/'latest': Install latest available version
174
+ * - 'supported': Install version from metadata.supportedVersion
175
+ * - Semantic version string (e.g., '2.0.30'): Install specific version
176
+ *
177
+ * @param version - Version string (e.g., '2.0.30', 'latest', 'supported')
178
+ * @throws {AgentInstallationError} If installation fails
179
+ */
180
+ async installVersion(version) {
181
+ const metadata = this.metadata;
182
+ // Resolve 'supported' to actual version from metadata
183
+ let resolvedVersion = version;
184
+ if (version === 'supported') {
185
+ if (!metadata.supportedVersion) {
186
+ throw new AgentInstallationError(metadata.name, 'No supported version defined in metadata');
187
+ }
188
+ resolvedVersion = metadata.supportedVersion;
189
+ logger.debug('Resolved version', {
190
+ from: 'supported',
191
+ to: resolvedVersion,
192
+ });
193
+ }
194
+ // SECURITY: Validate version format to prevent command injection
195
+ // Only allow semantic versions (e.g., "2.0.30") or special channels
196
+ if (resolvedVersion) {
197
+ const allowedChannels = ['latest', 'stable'];
198
+ const isValidChannel = allowedChannels.includes(resolvedVersion.toLowerCase());
199
+ const isValidVersion = isValidSemanticVersion(resolvedVersion);
200
+ if (!isValidChannel && !isValidVersion) {
201
+ throw new AgentInstallationError(metadata.name, `Invalid version format: "${resolvedVersion}". Expected semantic version (e.g., "2.0.30"), "latest", or "stable".`);
202
+ }
203
+ logger.debug('Version validation passed', {
204
+ version: resolvedVersion,
205
+ isValidChannel,
206
+ isValidVersion,
207
+ });
208
+ }
209
+ // Validate installer URLs are configured
210
+ if (!metadata.installerUrls) {
211
+ throw new AgentInstallationError(metadata.name, 'No installer URLs configured for native installation');
212
+ }
213
+ logger.info(`Installing ${metadata.displayName} ${resolvedVersion || 'latest'}...`);
214
+ // Execute native installer
215
+ const result = await installNativeAgent(metadata.name, metadata.installerUrls, resolvedVersion, {
216
+ timeout: 120000, // 2 minute timeout
217
+ verifyCommand: metadata.cliCommand || undefined,
218
+ installFlags: ['--force'], // Force installation to overwrite existing version
219
+ });
220
+ if (!result.success) {
221
+ throw new AgentInstallationError(metadata.name, `Installation failed. Output: ${result.output}`);
222
+ }
223
+ logger.success(`${metadata.displayName} ${result.installedVersion || resolvedVersion || 'latest'} installed successfully`);
224
+ }
225
+ /**
226
+ * Check if installed version is compatible with CodeMie
227
+ * Compares against metadata.supportedVersion
228
+ *
229
+ * @returns Version compatibility result with status and version info
230
+ */
231
+ async checkVersionCompatibility() {
232
+ const metadata = this.metadata;
233
+ const supportedVersion = metadata.supportedVersion || 'latest';
234
+ // Get installed version
235
+ const installedVersion = await this.getVersion();
236
+ logger.debug('Checking version compatibility', {
237
+ installedVersion,
238
+ supportedVersion,
239
+ });
240
+ // If not installed, return incompatible
241
+ if (!installedVersion) {
242
+ return {
243
+ compatible: false,
244
+ installedVersion: null,
245
+ supportedVersion,
246
+ isNewer: false,
247
+ };
248
+ }
249
+ // If no supported version configured, consider compatible
250
+ if (!metadata.supportedVersion) {
251
+ return {
252
+ compatible: true,
253
+ installedVersion,
254
+ supportedVersion: 'latest',
255
+ isNewer: false,
256
+ };
257
+ }
258
+ // Compare versions
259
+ try {
260
+ const comparison = compareVersions(installedVersion, supportedVersion);
261
+ logger.debug('Version comparison result', {
262
+ comparison,
263
+ installedVersion,
264
+ supportedVersion,
265
+ compatible: comparison <= 0,
266
+ isNewer: comparison > 0,
267
+ });
268
+ return {
269
+ compatible: comparison <= 0, // Compatible if installed <= supported
270
+ installedVersion,
271
+ supportedVersion,
272
+ isNewer: comparison > 0, // Newer if installed > supported (warning case)
273
+ };
274
+ }
275
+ catch (error) {
276
+ // If version comparison fails, provide comprehensive error context for debugging
277
+ const errorContext = createErrorContext(error, {
278
+ agent: metadata.name,
279
+ });
280
+ // Differentiate between parse errors (non-standard format) and unexpected errors
281
+ const isParseError = error instanceof Error && error.message.includes('Invalid semantic version');
282
+ if (isParseError) {
283
+ // Parse error: version format not recognized (e.g., "2.1.22 (Claude Code)" or custom format)
284
+ logger.warn('Non-standard version format detected, treating as incompatible', {
285
+ ...errorContext,
286
+ operation: 'checkVersionCompatibility',
287
+ phase: 'version_comparison',
288
+ installedVersion,
289
+ supportedVersion,
290
+ reason: 'parse_error',
291
+ });
292
+ }
293
+ else {
294
+ // Unexpected error: something went wrong during comparison
295
+ logger.error('Version compatibility check failed unexpectedly', {
296
+ ...errorContext,
297
+ operation: 'checkVersionCompatibility',
298
+ phase: 'version_comparison',
299
+ installedVersion,
300
+ supportedVersion,
301
+ reason: 'unexpected_error',
302
+ });
303
+ }
304
+ // Return incompatible (safer default) - users should be aware of version issues
305
+ // Don't throw - this would break user experience during setup/execution
306
+ return {
307
+ compatible: false,
308
+ installedVersion,
309
+ supportedVersion,
310
+ isNewer: false,
311
+ };
312
+ }
313
+ }
100
314
  }
101
315
  //# sourceMappingURL=claude.plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.plugin.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,2CAA2C;IAExD,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,QAAQ;IAEpB,qDAAqD;IACrD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;KAChB;IAED,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,MAAM,EAAE,CAAC,sBAAsB,CAAC;QAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;KAC3B;IAED,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC;IACxD,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC;IAEpE,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,gBAAgB;KAC7B;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;SACb;KACF;IAED,mEAAmE;IACnE,aAAa,EAAE;QACb,sBAAsB,EAAE,CAAC,MAAM,CAAC;KACjC;IAED,0CAA0C;IAC1C,iFAAiF;IACjF,uDAAuD;IACvD,iFAAiF;IACjF,SAAS,EAAE;QACT,KAAK,EAAE;YACL,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,2BAA2B;SACtC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,YAAY;SACvB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,YAAY;SACvB;KACF;IAED,SAAS,EAAE;QACT,sDAAsD;QACtD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,gDAAgD;YAChD,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,CAAC;gBAChD,GAAG,CAAC,sCAAsC,GAAG,GAAG,CAAC;YACnD,CAAC;YAED,4EAA4E;YAC5E,yEAAyE;YACzE,2CAA2C;YAC3C,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;gBACtC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;YACzC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IACxC,cAAc,CAAiB;IAC/B,kBAAkB,CAAyB;IAEnD;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,oEAAoE;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QACrE,0EAA0E;QAC1E,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"claude.plugin.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"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"}
@@ -84,9 +84,45 @@ Once loaded, the plugin automatically:
84
84
 
85
85
  ### Available Commands
86
86
 
87
- #### `/codemie-status`
87
+ The plugin provides several built-in commands for project documentation and memory management.
88
88
 
89
- Display current session tracking status:
89
+ #### Documentation Generation
90
+
91
+ **`/codemie-init`** - Generate AI-optimized project documentation
92
+ ```bash
93
+ # Analyze codebase and create CLAUDE.md + guides
94
+ /codemie-init
95
+
96
+ # With additional context
97
+ /codemie-init "focus on API patterns"
98
+ ```
99
+
100
+ **`/codemie-subagents`** - Generate project-specific subagents
101
+ ```bash
102
+ # Create tailored subagent files in .claude/agents/
103
+ /codemie-subagents
104
+ ```
105
+
106
+ #### Memory Management
107
+
108
+ **`/memory-add`** - Capture important learnings
109
+ ```bash
110
+ # Add knowledge to project documentation
111
+ /memory-add
112
+
113
+ # With specific context
114
+ /memory-add "auth flow requires initialization"
115
+ ```
116
+
117
+ **`/memory-refresh`** - Audit and update documentation
118
+ ```bash
119
+ # Verify docs match current implementation
120
+ /memory-refresh
121
+ ```
122
+
123
+ #### Status
124
+
125
+ **`/codemie-status`** - Display session tracking status:
90
126
 
91
127
  ```
92
128
  CodeMie Session Status
@@ -98,6 +134,8 @@ Sync: ✓ Connected (last: 30s ago)
98
134
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
99
135
  ```
100
136
 
137
+ **See [commands/README.md](./commands/README.md) for detailed usage and examples.**
138
+
101
139
  ## Hook Events
102
140
 
103
141
  The plugin registers the following hooks:
@@ -38,7 +38,7 @@ claude-templates/
38
38
  ├── api/
39
39
  │ └── api-patterns.md.template
40
40
  ├── architecture/
41
- │ └── layered-architecture.md.template
41
+ │ └── architecture.md.template
42
42
  ├── data/
43
43
  │ └── database-patterns.md.template
44
44
  ├── development/
@@ -160,7 +160,7 @@ claude-templates/
160
160
  - **development/security-patterns.md.template**: Authentication, validation, encryption
161
161
  - **development/setup-guide.md.template**: Installation and setup
162
162
  - **api/api-patterns.md.template**: REST/GraphQL endpoint patterns
163
- - **architecture/layered-architecture.md.template**: Layer responsibilities and flow
163
+ - **architecture/architecture.md.template**: Directory structure, layered architecture, and organizational patterns
164
164
  - **data/database-patterns.md.template**: ORM, queries, transactions, migrations
165
165
  - **testing/testing-patterns.md.template**: Unit/integration tests, fixtures, mocking
166
166
  - **standards/code-quality.md.template**: Linting, formatting, type safety
@@ -410,7 +410,7 @@ The process includes 5 decision gates where Claude Code checks:
410
410
 
411
411
  **Generated guides**:
412
412
  - api/api-patterns.md (FastAPI endpoints)
413
- - architecture/layered-architecture.md (router→service→repository)
413
+ - architecture/architecture.md (router→service→repository layers and project structure)
414
414
  - data/database-patterns.md (SQLAlchemy models, queries)
415
415
  - development/error-handling.md (FastAPI exception handlers)
416
416
  - development/logging-patterns.md (Python logging)
@@ -435,7 +435,7 @@ The process includes 5 decision gates where Claude Code checks:
435
435
 
436
436
  **Generated guides**:
437
437
  - api/api-patterns.md (Express routes)
438
- - architecture/layered-architecture.md (routes→services→repositories)
438
+ - architecture/architecture.md (routes→services→repositories layers and project structure)
439
439
  - data/database-patterns.md (Mongoose schemas, queries)
440
440
  - development/error-handling.md (Express error middleware)
441
441
  - development/logging-patterns.md (Winston/Morgan)
@@ -460,7 +460,7 @@ The process includes 5 decision gates where Claude Code checks:
460
460
 
461
461
  **Generated guides**:
462
462
  - api/api-patterns.md (REST controllers)
463
- - architecture/layered-architecture.md (controller→service→repository)
463
+ - architecture/architecture.md (controller→service→repository layers and project structure)
464
464
  - data/database-patterns.md (JPA entities, repositories)
465
465
  - development/error-handling.md (Exception handlers)
466
466
  - development/logging-patterns.md (SLF4J/Logback)