@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.
- package/dist/agents/core/AgentCLI.d.ts +4 -0
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +80 -0
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +5 -0
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +21 -4
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/flag-transform.d.ts +37 -0
- package/dist/agents/core/flag-transform.d.ts.map +1 -0
- package/dist/agents/core/flag-transform.js +107 -0
- package/dist/agents/core/flag-transform.js.map +1 -0
- package/dist/agents/core/types.d.ts +50 -1
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +10 -0
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -0
- package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +4 -0
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +15 -8
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.js +6 -0
- package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +14 -8
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts +12 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.d.ts.map +1 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.js +103 -0
- package/dist/cli/commands/doctor/checks/FrameworksCheck.js.map +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
- package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/index.js +1 -0
- package/dist/cli/commands/doctor/checks/index.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +3 -2
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +79 -30
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +55 -15
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/dist/cli/commands/uninstall.js +85 -34
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/frameworks/core/BaseFrameworkAdapter.d.ts +88 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.d.ts.map +1 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.js +156 -0
- package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -0
- package/dist/frameworks/core/index.d.ts +9 -0
- package/dist/frameworks/core/index.d.ts.map +1 -0
- package/dist/frameworks/core/index.js +9 -0
- package/dist/frameworks/core/index.js.map +1 -0
- package/dist/frameworks/core/registry.d.ts +53 -0
- package/dist/frameworks/core/registry.d.ts.map +1 -0
- package/dist/frameworks/core/registry.js +82 -0
- package/dist/frameworks/core/registry.js.map +1 -0
- package/dist/frameworks/core/types.d.ts +130 -0
- package/dist/frameworks/core/types.d.ts.map +1 -0
- package/dist/frameworks/core/types.js +8 -0
- package/dist/frameworks/core/types.js.map +1 -0
- package/dist/frameworks/index.d.ts +9 -0
- package/dist/frameworks/index.d.ts.map +1 -0
- package/dist/frameworks/index.js +12 -0
- package/dist/frameworks/index.js.map +1 -0
- package/dist/frameworks/plugins/bmad.plugin.d.ts +46 -0
- package/dist/frameworks/plugins/bmad.plugin.d.ts.map +1 -0
- package/dist/frameworks/plugins/bmad.plugin.js +111 -0
- package/dist/frameworks/plugins/bmad.plugin.js.map +1 -0
- package/dist/frameworks/plugins/index.d.ts +8 -0
- package/dist/frameworks/plugins/index.d.ts.map +1 -0
- package/dist/frameworks/plugins/index.js +15 -0
- package/dist/frameworks/plugins/index.js.map +1 -0
- package/dist/frameworks/plugins/speckit.plugin.d.ts +59 -0
- package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -0
- package/dist/frameworks/plugins/speckit.plugin.js +213 -0
- package/dist/frameworks/plugins/speckit.plugin.js.map +1 -0
- package/dist/metrics/config.d.ts.map +1 -1
- package/dist/metrics/config.js +7 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/sync/aggregator.d.ts +7 -1
- package/dist/metrics/sync/aggregator.d.ts.map +1 -1
- package/dist/metrics/sync/aggregator.js +14 -5
- package/dist/metrics/sync/aggregator.js.map +1 -1
- package/dist/metrics/sync/post-processor.d.ts +48 -0
- package/dist/metrics/sync/post-processor.d.ts.map +1 -0
- package/dist/metrics/sync/post-processor.js +147 -0
- package/dist/metrics/sync/post-processor.js.map +1 -0
- package/dist/metrics/sync/types.d.ts +2 -2
- package/dist/metrics/sync/types.d.ts.map +1 -1
- package/dist/metrics/types.d.ts +6 -0
- package/dist/metrics/types.d.ts.map +1 -1
- package/dist/proxy/plugins/metrics-sync.plugin.js +20 -9
- package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -1
- package/dist/utils/exec.d.ts +1 -0
- package/dist/utils/exec.d.ts.map +1 -1
- package/dist/utils/exec.js +23 -9
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/first-time.d.ts +3 -3
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +21 -4
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/frameworks/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -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 @@
|
|
|
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"}
|