@codemieai/code 0.0.19 → 0.0.20

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 (114) hide show
  1. package/dist/agents/core/AgentCLI.d.ts +4 -0
  2. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  3. package/dist/agents/core/AgentCLI.js +80 -0
  4. package/dist/agents/core/AgentCLI.js.map +1 -1
  5. package/dist/agents/core/BaseAgentAdapter.d.ts +5 -0
  6. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  7. package/dist/agents/core/BaseAgentAdapter.js +21 -4
  8. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  9. package/dist/agents/core/flag-transform.d.ts +37 -0
  10. package/dist/agents/core/flag-transform.d.ts.map +1 -0
  11. package/dist/agents/core/flag-transform.js +107 -0
  12. package/dist/agents/core/flag-transform.js.map +1 -0
  13. package/dist/agents/core/types.d.ts +50 -1
  14. package/dist/agents/core/types.d.ts.map +1 -1
  15. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
  16. package/dist/agents/plugins/claude.plugin.js +10 -0
  17. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  18. package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -0
  19. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  20. package/dist/agents/plugins/codemie-code.plugin.js +4 -0
  21. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  22. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
  23. package/dist/agents/plugins/codex.plugin.js +15 -8
  24. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  25. package/dist/agents/plugins/deepagents.plugin.d.ts.map +1 -1
  26. package/dist/agents/plugins/deepagents.plugin.js +6 -0
  27. package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
  28. package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
  29. package/dist/agents/plugins/gemini.plugin.js +14 -8
  30. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  31. package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts +12 -0
  32. package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts.map +1 -0
  33. package/dist/cli/commands/doctor/checks/FrameworksCheck.js +103 -0
  34. package/dist/cli/commands/doctor/checks/FrameworksCheck.js.map +1 -0
  35. package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
  36. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
  37. package/dist/cli/commands/doctor/checks/index.js +1 -0
  38. package/dist/cli/commands/doctor/checks/index.js.map +1 -1
  39. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  40. package/dist/cli/commands/doctor/index.js +3 -2
  41. package/dist/cli/commands/doctor/index.js.map +1 -1
  42. package/dist/cli/commands/install.d.ts.map +1 -1
  43. package/dist/cli/commands/install.js +79 -30
  44. package/dist/cli/commands/install.js.map +1 -1
  45. package/dist/cli/commands/list.d.ts.map +1 -1
  46. package/dist/cli/commands/list.js +55 -15
  47. package/dist/cli/commands/list.js.map +1 -1
  48. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  49. package/dist/cli/commands/uninstall.js +85 -34
  50. package/dist/cli/commands/uninstall.js.map +1 -1
  51. package/dist/cli/index.d.ts +1 -0
  52. package/dist/cli/index.d.ts.map +1 -1
  53. package/dist/cli/index.js +5 -3
  54. package/dist/cli/index.js.map +1 -1
  55. package/dist/frameworks/core/BaseFrameworkAdapter.d.ts +88 -0
  56. package/dist/frameworks/core/BaseFrameworkAdapter.d.ts.map +1 -0
  57. package/dist/frameworks/core/BaseFrameworkAdapter.js +156 -0
  58. package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -0
  59. package/dist/frameworks/core/index.d.ts +9 -0
  60. package/dist/frameworks/core/index.d.ts.map +1 -0
  61. package/dist/frameworks/core/index.js +9 -0
  62. package/dist/frameworks/core/index.js.map +1 -0
  63. package/dist/frameworks/core/registry.d.ts +53 -0
  64. package/dist/frameworks/core/registry.d.ts.map +1 -0
  65. package/dist/frameworks/core/registry.js +82 -0
  66. package/dist/frameworks/core/registry.js.map +1 -0
  67. package/dist/frameworks/core/types.d.ts +130 -0
  68. package/dist/frameworks/core/types.d.ts.map +1 -0
  69. package/dist/frameworks/core/types.js +8 -0
  70. package/dist/frameworks/core/types.js.map +1 -0
  71. package/dist/frameworks/index.d.ts +9 -0
  72. package/dist/frameworks/index.d.ts.map +1 -0
  73. package/dist/frameworks/index.js +12 -0
  74. package/dist/frameworks/index.js.map +1 -0
  75. package/dist/frameworks/plugins/bmad.plugin.d.ts +46 -0
  76. package/dist/frameworks/plugins/bmad.plugin.d.ts.map +1 -0
  77. package/dist/frameworks/plugins/bmad.plugin.js +111 -0
  78. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -0
  79. package/dist/frameworks/plugins/index.d.ts +8 -0
  80. package/dist/frameworks/plugins/index.d.ts.map +1 -0
  81. package/dist/frameworks/plugins/index.js +15 -0
  82. package/dist/frameworks/plugins/index.js.map +1 -0
  83. package/dist/frameworks/plugins/speckit.plugin.d.ts +59 -0
  84. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -0
  85. package/dist/frameworks/plugins/speckit.plugin.js +213 -0
  86. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -0
  87. package/dist/metrics/config.d.ts.map +1 -1
  88. package/dist/metrics/config.js +7 -1
  89. package/dist/metrics/config.js.map +1 -1
  90. package/dist/metrics/sync/aggregator.d.ts +7 -1
  91. package/dist/metrics/sync/aggregator.d.ts.map +1 -1
  92. package/dist/metrics/sync/aggregator.js +14 -5
  93. package/dist/metrics/sync/aggregator.js.map +1 -1
  94. package/dist/metrics/sync/post-processor.d.ts +48 -0
  95. package/dist/metrics/sync/post-processor.d.ts.map +1 -0
  96. package/dist/metrics/sync/post-processor.js +147 -0
  97. package/dist/metrics/sync/post-processor.js.map +1 -0
  98. package/dist/metrics/sync/types.d.ts +2 -2
  99. package/dist/metrics/sync/types.d.ts.map +1 -1
  100. package/dist/metrics/types.d.ts +6 -0
  101. package/dist/metrics/types.d.ts.map +1 -1
  102. package/dist/proxy/plugins/metrics-sync.plugin.js +20 -9
  103. package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -1
  104. package/dist/utils/exec.d.ts +1 -0
  105. package/dist/utils/exec.d.ts.map +1 -1
  106. package/dist/utils/exec.js +23 -9
  107. package/dist/utils/exec.js.map +1 -1
  108. package/dist/utils/first-time.d.ts +3 -3
  109. package/dist/utils/first-time.d.ts.map +1 -1
  110. package/dist/utils/first-time.js +21 -4
  111. package/dist/utils/first-time.js.map +1 -1
  112. package/dist/utils/logger.js +2 -2
  113. package/dist/utils/logger.js.map +1 -1
  114. package/package.json +2 -1
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Framework Registry
3
+ *
4
+ * Central registry for all framework adapters.
5
+ * Similar to AgentRegistry pattern in src/agents/registry.ts
6
+ */
7
+ import type { FrameworkAdapter } from './types.js';
8
+ export declare class FrameworkRegistry {
9
+ private static frameworks;
10
+ /**
11
+ * Register a framework adapter
12
+ * @param adapter - Framework adapter instance
13
+ */
14
+ static registerFramework(adapter: FrameworkAdapter): void;
15
+ /**
16
+ * Get framework adapter by name
17
+ * @param name - Framework name (e.g., 'speckit', 'bmad')
18
+ * @returns Framework adapter or undefined
19
+ */
20
+ static getFramework(name: string): FrameworkAdapter | undefined;
21
+ /**
22
+ * Get all registered frameworks
23
+ * @returns Array of all framework adapters
24
+ */
25
+ static getAllFrameworks(): FrameworkAdapter[];
26
+ /**
27
+ * Get frameworks supported by specific agent
28
+ * @param agentName - CodeMie agent name
29
+ * @returns Array of framework adapters that support this agent
30
+ */
31
+ static getFrameworksForAgent(agentName: string): FrameworkAdapter[];
32
+ /**
33
+ * Check if framework is registered
34
+ * @param name - Framework name
35
+ * @returns True if framework is registered and available
36
+ */
37
+ static hasFramework(name: string): boolean;
38
+ /**
39
+ * Get framework names
40
+ * @returns Array of registered framework names
41
+ */
42
+ static getFrameworkNames(): string[];
43
+ /**
44
+ * Unregister a framework (for testing)
45
+ * @param name - Framework name
46
+ */
47
+ static unregisterFramework(name: string): void;
48
+ /**
49
+ * Clear all frameworks (for testing)
50
+ */
51
+ static clear(): void;
52
+ }
53
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/frameworks/core/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAE3E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAA6C;IAEtE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAOzD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAK/D;;;OAGG;IACH,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,EAAE;IAM7C;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAWnE;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK1C;;;OAGG;IACH,MAAM,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIpC;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Framework Registry
3
+ *
4
+ * Central registry for all framework adapters.
5
+ * Similar to AgentRegistry pattern in src/agents/registry.ts
6
+ */
7
+ export class FrameworkRegistry {
8
+ static frameworks = new Map();
9
+ /**
10
+ * Register a framework adapter
11
+ * @param adapter - Framework adapter instance
12
+ */
13
+ static registerFramework(adapter) {
14
+ this.frameworks.set(adapter.metadata.name, {
15
+ adapter,
16
+ available: true
17
+ });
18
+ }
19
+ /**
20
+ * Get framework adapter by name
21
+ * @param name - Framework name (e.g., 'speckit', 'bmad')
22
+ * @returns Framework adapter or undefined
23
+ */
24
+ static getFramework(name) {
25
+ const entry = this.frameworks.get(name);
26
+ return entry?.available ? entry.adapter : undefined;
27
+ }
28
+ /**
29
+ * Get all registered frameworks
30
+ * @returns Array of all framework adapters
31
+ */
32
+ static getAllFrameworks() {
33
+ return Array.from(this.frameworks.values())
34
+ .filter((entry) => entry.available)
35
+ .map((entry) => entry.adapter);
36
+ }
37
+ /**
38
+ * Get frameworks supported by specific agent
39
+ * @param agentName - CodeMie agent name
40
+ * @returns Array of framework adapters that support this agent
41
+ */
42
+ static getFrameworksForAgent(agentName) {
43
+ return this.getAllFrameworks().filter((adapter) => {
44
+ // If no supported agents specified, framework supports all agents
45
+ if (!adapter.metadata.supportedAgents || adapter.metadata.supportedAgents.length === 0) {
46
+ return true;
47
+ }
48
+ // Check if agent is in supported list
49
+ return adapter.metadata.supportedAgents.includes(agentName);
50
+ });
51
+ }
52
+ /**
53
+ * Check if framework is registered
54
+ * @param name - Framework name
55
+ * @returns True if framework is registered and available
56
+ */
57
+ static hasFramework(name) {
58
+ const entry = this.frameworks.get(name);
59
+ return entry?.available ?? false;
60
+ }
61
+ /**
62
+ * Get framework names
63
+ * @returns Array of registered framework names
64
+ */
65
+ static getFrameworkNames() {
66
+ return Array.from(this.frameworks.keys());
67
+ }
68
+ /**
69
+ * Unregister a framework (for testing)
70
+ * @param name - Framework name
71
+ */
72
+ static unregisterFramework(name) {
73
+ this.frameworks.delete(name);
74
+ }
75
+ /**
76
+ * Clear all frameworks (for testing)
77
+ */
78
+ static clear() {
79
+ this.frameworks.clear();
80
+ }
81
+ }
82
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/frameworks/core/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEtE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAyB;QAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YACzC,OAAO;YACP,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;aAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,SAAiB;QAC5C,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAChD,kEAAkE;YAClE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,sCAAsC;YACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Framework System Types
3
+ *
4
+ * Defines the core interfaces for framework integration in CodeMie CLI.
5
+ * Frameworks (like SpecKit, BMAD) can be initialized from agent shortcuts.
6
+ */
7
+ /**
8
+ * Framework Metadata - Configuration and capabilities
9
+ */
10
+ export interface FrameworkMetadata {
11
+ /** Internal framework identifier (e.g., 'speckit', 'bmad') */
12
+ name: string;
13
+ /** User-facing display name (e.g., 'SpecKit', 'BMAD Method') */
14
+ displayName: string;
15
+ /** Brief description of the framework */
16
+ description: string;
17
+ /** Official documentation URL */
18
+ docsUrl?: string;
19
+ /** GitHub repository URL */
20
+ repoUrl?: string;
21
+ /** Whether framework requires installation before init */
22
+ requiresInstallation: boolean;
23
+ /** Installation method: 'npm', 'uv', 'pip', 'manual', 'npx-on-demand' */
24
+ installMethod?: 'npm' | 'uv' | 'pip' | 'manual' | 'npx-on-demand';
25
+ /** Package identifier for installation (npm package name, PyPI name, etc.) */
26
+ packageName?: string;
27
+ /** CLI command name (executable) */
28
+ cliCommand?: string;
29
+ /** Whether framework initialization is agent-specific */
30
+ isAgentSpecific: boolean;
31
+ /** Supported CodeMie agent names (empty means all agents) */
32
+ supportedAgents?: string[];
33
+ /** Directory created by framework initialization (for detection) */
34
+ initDirectory?: string;
35
+ }
36
+ /**
37
+ * Framework Adapter - Interface for framework integration
38
+ */
39
+ export interface FrameworkAdapter {
40
+ /** Framework metadata */
41
+ readonly metadata: FrameworkMetadata;
42
+ /**
43
+ * Install framework CLI (if required)
44
+ * @returns Promise resolving when installation completes
45
+ */
46
+ install(): Promise<void>;
47
+ /**
48
+ * Uninstall framework CLI
49
+ * @returns Promise resolving when uninstallation completes
50
+ */
51
+ uninstall(): Promise<void>;
52
+ /**
53
+ * Initialize framework in current directory
54
+ * @param agentName - CodeMie agent name (e.g., 'claude', 'codex')
55
+ * @param options - Additional initialization options
56
+ * @returns Promise resolving when initialization completes
57
+ */
58
+ init(agentName: string, options?: FrameworkInitOptions): Promise<void>;
59
+ /**
60
+ * Check if framework is initialized in current directory
61
+ * @param cwd - Working directory to check (default: process.cwd())
62
+ * @returns Promise resolving to true if initialized
63
+ */
64
+ isInitialized(cwd?: string): Promise<boolean>;
65
+ /**
66
+ * Check if framework CLI is installed
67
+ * @returns Promise resolving to true if installed
68
+ */
69
+ isInstalled(): Promise<boolean>;
70
+ /**
71
+ * Get framework-specific agent name mapping
72
+ * @param codemieAgentName - CodeMie agent name
73
+ * @returns Framework's agent identifier, or null if not supported
74
+ */
75
+ getAgentMapping(codemieAgentName: string): string | null;
76
+ /**
77
+ * Get framework version
78
+ * @returns Promise resolving to version string or null if unavailable
79
+ */
80
+ getVersion(): Promise<string | null>;
81
+ }
82
+ /**
83
+ * Framework Initialization Options
84
+ */
85
+ export interface FrameworkInitOptions {
86
+ /** Force re-initialization even if already initialized */
87
+ force?: boolean;
88
+ /** Project name (if framework requires it) */
89
+ projectName?: string;
90
+ /** Working directory (default: process.cwd()) */
91
+ cwd?: string;
92
+ /** Additional framework-specific options */
93
+ [key: string]: unknown;
94
+ }
95
+ /**
96
+ * Framework Installation Result
97
+ */
98
+ export interface FrameworkInstallResult {
99
+ /** Whether installation succeeded */
100
+ success: boolean;
101
+ /** Installation method used */
102
+ method: string;
103
+ /** Version installed (if available) */
104
+ version?: string;
105
+ /** Error message if failed */
106
+ error?: string;
107
+ }
108
+ /**
109
+ * Framework Initialization Result
110
+ */
111
+ export interface FrameworkInitResult {
112
+ /** Whether initialization succeeded */
113
+ success: boolean;
114
+ /** Directory initialized in */
115
+ directory: string;
116
+ /** Agent name used for initialization */
117
+ agentName?: string;
118
+ /** Error message if failed */
119
+ error?: string;
120
+ }
121
+ /**
122
+ * Framework Registry Entry
123
+ */
124
+ export interface FrameworkRegistryEntry {
125
+ /** Framework adapter instance */
126
+ adapter: FrameworkAdapter;
127
+ /** Whether framework is available for use */
128
+ available: boolean;
129
+ }
130
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/frameworks/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IAEb,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0DAA0D;IAC1D,oBAAoB,EAAE,OAAO,CAAC;IAE9B,yEAAyE;IACzE,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,eAAe,CAAC;IAElE,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;;;OAIG;IACH,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;;;OAIG;IACH,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEzD;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4CAA4C;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAElB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,OAAO,EAAE,gBAAgB,CAAC;IAE1B,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Framework System Types
3
+ *
4
+ * Defines the core interfaces for framework integration in CodeMie CLI.
5
+ * Frameworks (like SpecKit, BMAD) can be initialized from agent shortcuts.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/frameworks/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Framework System
3
+ *
4
+ * Main entry point for framework integration system
5
+ */
6
+ import './plugins/index.js';
7
+ export * from './core/index.js';
8
+ export * from './plugins/index.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frameworks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,oBAAoB,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Framework System
3
+ *
4
+ * Main entry point for framework integration system
5
+ */
6
+ // Import plugins to trigger auto-registration
7
+ import './plugins/index.js';
8
+ // Export core components
9
+ export * from './core/index.js';
10
+ // Export plugins
11
+ export * from './plugins/index.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/frameworks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,OAAO,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,cAAc,iBAAiB,CAAC;AAEhC,iBAAiB;AACjB,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * BMAD Framework Plugin
3
+ *
4
+ * Integration for BMAD (Business Methodology for Agile Development)
5
+ * Enterprise development methodology with AI agent support
6
+ *
7
+ * Installation: npx-on-demand (no global install needed)
8
+ * Initialization: npx bmad-method@alpha install
9
+ */
10
+ import { BaseFrameworkAdapter } from '../core/BaseFrameworkAdapter.js';
11
+ import type { FrameworkMetadata, FrameworkInitOptions } from '../core/types.js';
12
+ /**
13
+ * BMAD Framework Metadata
14
+ */
15
+ export declare const BmadMetadata: FrameworkMetadata;
16
+ /**
17
+ * BMAD Framework Plugin
18
+ */
19
+ export declare class BmadPlugin extends BaseFrameworkAdapter {
20
+ constructor();
21
+ /**
22
+ * Install BMAD - Not needed (npx-on-demand)
23
+ */
24
+ install(): Promise<void>;
25
+ /**
26
+ * Uninstall BMAD - Not needed (npx-on-demand)
27
+ */
28
+ uninstall(): Promise<void>;
29
+ /**
30
+ * Initialize BMAD in current directory
31
+ */
32
+ init(agentName: string, options?: FrameworkInitOptions): Promise<void>;
33
+ /**
34
+ * Check if BMAD is installed - always true (npx-on-demand)
35
+ */
36
+ isInstalled(): Promise<boolean>;
37
+ /**
38
+ * Get BMAD version
39
+ */
40
+ getVersion(): Promise<string | null>;
41
+ /**
42
+ * Get agent mapping - framework-agnostic, all agents supported
43
+ */
44
+ getAgentMapping(codemieAgentName: string): string | null;
45
+ }
46
+ //# sourceMappingURL=bmad.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bmad.plugin.d.ts","sourceRoot":"","sources":["../../../src/frameworks/plugins/bmad.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,iBAa1B,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;;IAKlD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5E;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU1C;;OAEG;IACH,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAIzD"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * BMAD Framework Plugin
3
+ *
4
+ * Integration for BMAD (Business Methodology for Agile Development)
5
+ * Enterprise development methodology with AI agent support
6
+ *
7
+ * Installation: npx-on-demand (no global install needed)
8
+ * Initialization: npx bmad-method@alpha install
9
+ */
10
+ import { exec } from '../../utils/exec.js';
11
+ import { logger } from '../../utils/logger.js';
12
+ import { BaseFrameworkAdapter } from '../core/BaseFrameworkAdapter.js';
13
+ /**
14
+ * BMAD Framework Metadata
15
+ */
16
+ export const BmadMetadata = {
17
+ name: 'bmad',
18
+ displayName: 'BMAD Method',
19
+ description: 'Business Methodology for Agile Development with AI agents',
20
+ docsUrl: 'https://github.com/bmad-code-org/BMAD-METHOD',
21
+ repoUrl: 'https://github.com/bmad-code-org/BMAD-METHOD',
22
+ requiresInstallation: false, // Uses npx on-demand
23
+ installMethod: 'npx-on-demand',
24
+ packageName: 'bmad-method@alpha',
25
+ cliCommand: undefined, // No global CLI, uses npx
26
+ isAgentSpecific: false, // Framework-agnostic
27
+ supportedAgents: [], // Empty means all agents
28
+ initDirectory: '.bmad'
29
+ };
30
+ /**
31
+ * BMAD Framework Plugin
32
+ */
33
+ export class BmadPlugin extends BaseFrameworkAdapter {
34
+ constructor() {
35
+ super(BmadMetadata);
36
+ }
37
+ /**
38
+ * Install BMAD - Not needed (npx-on-demand)
39
+ */
40
+ async install() {
41
+ logger.info('BMAD uses npx on-demand. No installation required.');
42
+ logger.info('Run initialization with: codemie-<agent> init bmad');
43
+ }
44
+ /**
45
+ * Uninstall BMAD - Not needed (npx-on-demand)
46
+ */
47
+ async uninstall() {
48
+ logger.info('BMAD uses npx on-demand. Nothing to uninstall.');
49
+ logger.info('To remove BMAD from a project, delete the .bmad/ directory.');
50
+ }
51
+ /**
52
+ * Initialize BMAD in current directory
53
+ */
54
+ async init(agentName, options) {
55
+ const cwd = options?.cwd || process.cwd();
56
+ const force = options?.force ?? false;
57
+ // Check if already initialized
58
+ if (!force && (await this.isInitialized(cwd))) {
59
+ throw new Error(`BMAD already initialized in ${cwd} (.bmad/ exists). Use --force to re-initialize.`);
60
+ }
61
+ this.logInitStart();
62
+ try {
63
+ // Run npx bmad-method@alpha install
64
+ logger.info('Running BMAD installation via npx (this may take a minute)...');
65
+ const args = ['bmad-method@alpha', 'install'];
66
+ // Add --force if specified
67
+ if (force) {
68
+ args.push('--force');
69
+ }
70
+ await exec('npx', args, {
71
+ cwd,
72
+ timeout: 300000, // 5 minutes for npm download + user input
73
+ interactive: true // Allow user to answer prompts
74
+ });
75
+ this.logInitSuccess(cwd);
76
+ logger.info('Next: Run /workflow-init inside your AI agent to start using BMAD');
77
+ }
78
+ catch (error) {
79
+ this.logInitError(error);
80
+ throw error;
81
+ }
82
+ }
83
+ /**
84
+ * Check if BMAD is installed - always true (npx-on-demand)
85
+ */
86
+ async isInstalled() {
87
+ // BMAD doesn't require installation, npx handles it on-demand
88
+ return true;
89
+ }
90
+ /**
91
+ * Get BMAD version
92
+ */
93
+ async getVersion() {
94
+ try {
95
+ const result = await exec('npx', ['bmad-method@alpha', '--version'], { timeout: 10000 });
96
+ const match = result.stdout.match(/\d+\.\d+\.\d+/);
97
+ return match ? match[0] : null;
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ /**
104
+ * Get agent mapping - framework-agnostic, all agents supported
105
+ */
106
+ getAgentMapping(codemieAgentName) {
107
+ // BMAD is framework-agnostic, no specific mapping needed
108
+ return codemieAgentName;
109
+ }
110
+ }
111
+ //# sourceMappingURL=bmad.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bmad.plugin.js","sourceRoot":"","sources":["../../../src/frameworks/plugins/bmad.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Framework Plugins
3
+ *
4
+ * Auto-registers all framework plugins with the registry
5
+ */
6
+ export { SpeckitPlugin } from './speckit.plugin.js';
7
+ export { BmadPlugin } from './bmad.plugin.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frameworks/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Framework Plugins
3
+ *
4
+ * Auto-registers all framework plugins with the registry
5
+ */
6
+ import { FrameworkRegistry } from '../core/registry.js';
7
+ import { SpeckitPlugin } from './speckit.plugin.js';
8
+ import { BmadPlugin } from './bmad.plugin.js';
9
+ // Export plugins
10
+ export { SpeckitPlugin } from './speckit.plugin.js';
11
+ export { BmadPlugin } from './bmad.plugin.js';
12
+ // Auto-register plugins
13
+ FrameworkRegistry.registerFramework(new SpeckitPlugin());
14
+ FrameworkRegistry.registerFramework(new BmadPlugin());
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,wBAAwB;AACxB,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;AACzD,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * SpecKit Framework Plugin
3
+ *
4
+ * Integration for GitHub's SpecKit framework - spec-driven development toolkit
5
+ * https://github.com/github/spec-kit
6
+ *
7
+ * Installation: uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
8
+ * Initialization: specify init <project> --ai <agent> --here --script <sh|ps> --force
9
+ */
10
+ import { BaseFrameworkAdapter } from '../core/BaseFrameworkAdapter.js';
11
+ import type { FrameworkMetadata, FrameworkInitOptions } from '../core/types.js';
12
+ /**
13
+ * SpecKit Framework Metadata
14
+ */
15
+ export declare const SpeckitMetadata: FrameworkMetadata;
16
+ /**
17
+ * SpecKit Framework Plugin
18
+ */
19
+ export declare class SpeckitPlugin extends BaseFrameworkAdapter {
20
+ constructor();
21
+ /**
22
+ * Install SpecKit CLI via uv
23
+ */
24
+ install(): Promise<void>;
25
+ /**
26
+ * Uninstall SpecKit CLI via uv
27
+ */
28
+ uninstall(): Promise<void>;
29
+ /**
30
+ * Initialize SpecKit in current directory
31
+ */
32
+ init(agentName: string, options?: FrameworkInitOptions): Promise<void>;
33
+ /**
34
+ * Get agent name mapping
35
+ */
36
+ getAgentMapping(codemieAgentName: string): string | null;
37
+ /**
38
+ * Override: SpecKit doesn't support --version
39
+ * Check installation via `specify --help` instead
40
+ */
41
+ isInstalled(): Promise<boolean>;
42
+ /**
43
+ * Override: SpecKit uses `specify version` command instead of --version flag
44
+ */
45
+ getVersion(): Promise<string | null>;
46
+ /**
47
+ * Check if uv is installed
48
+ */
49
+ private checkUvInstalled;
50
+ /**
51
+ * Check if git is installed
52
+ */
53
+ private checkGitInstalled;
54
+ /**
55
+ * Detect script type based on OS
56
+ */
57
+ private detectScriptType;
58
+ }
59
+ //# sourceMappingURL=speckit.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speckit.plugin.d.ts","sourceRoot":"","sources":["../../../src/frameworks/plugins/speckit.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBAa7B,CAAC;AAWF;;GAEG;AACH,qBAAa,aAAc,SAAQ,oBAAoB;;IAKrD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBhC;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D5E;;OAEG;IACH,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIxD;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAc1C;;OAEG;YACW,gBAAgB;IAS9B;;OAEG;YACW,iBAAiB;IAS/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAIzB"}