@codemieai/code 0.0.5 → 0.0.7

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 (90) hide show
  1. package/README.md +248 -25
  2. package/bin/agent-executor.js +43 -0
  3. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  4. package/dist/agents/codemie-code/agent.js +5 -3
  5. package/dist/agents/codemie-code/agent.js.map +1 -1
  6. package/dist/agents/codemie-code/tokenUtils.d.ts +2 -2
  7. package/dist/agents/codemie-code/tokenUtils.js +2 -2
  8. package/dist/agents/codemie-code/tokenUtils.js.map +1 -1
  9. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/ui.js +0 -7
  11. package/dist/agents/codemie-code/ui.js.map +1 -1
  12. package/dist/agents/core/AgentCLI.d.ts +44 -0
  13. package/dist/agents/core/AgentCLI.d.ts.map +1 -0
  14. package/dist/agents/core/AgentCLI.js +224 -0
  15. package/dist/agents/core/AgentCLI.js.map +1 -0
  16. package/dist/agents/core/BaseAgentAdapter.d.ts +48 -0
  17. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -0
  18. package/dist/agents/core/BaseAgentAdapter.js +224 -0
  19. package/dist/agents/core/BaseAgentAdapter.js.map +1 -0
  20. package/dist/agents/core/types.d.ts +64 -0
  21. package/dist/agents/core/types.d.ts.map +1 -0
  22. package/dist/agents/core/types.js +5 -0
  23. package/dist/agents/core/types.js.map +1 -0
  24. package/dist/agents/plugins/claude.plugin.d.ts +13 -0
  25. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -0
  26. package/dist/agents/plugins/claude.plugin.js +35 -0
  27. package/dist/agents/plugins/claude.plugin.js.map +1 -0
  28. package/dist/agents/plugins/codemie-code.plugin.d.ts +20 -0
  29. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -0
  30. package/dist/agents/plugins/codemie-code.plugin.js +137 -0
  31. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -0
  32. package/dist/agents/plugins/codex.plugin.d.ts +13 -0
  33. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -0
  34. package/dist/agents/plugins/codex.plugin.js +43 -0
  35. package/dist/agents/plugins/codex.plugin.js.map +1 -0
  36. package/dist/agents/plugins/gemini.plugin.d.ts +13 -0
  37. package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -0
  38. package/dist/agents/plugins/gemini.plugin.js +43 -0
  39. package/dist/agents/plugins/gemini.plugin.js.map +1 -0
  40. package/dist/agents/registry.d.ts +6 -10
  41. package/dist/agents/registry.d.ts.map +1 -1
  42. package/dist/agents/registry.js +13 -7
  43. package/dist/agents/registry.js.map +1 -1
  44. package/dist/cli/commands/config.d.ts.map +1 -1
  45. package/dist/cli/commands/config.js +14 -180
  46. package/dist/cli/commands/config.js.map +1 -1
  47. package/dist/cli/commands/profile.d.ts +3 -0
  48. package/dist/cli/commands/profile.d.ts.map +1 -0
  49. package/dist/cli/commands/profile.js +167 -0
  50. package/dist/cli/commands/profile.js.map +1 -0
  51. package/dist/cli/commands/setup.d.ts.map +1 -1
  52. package/dist/cli/commands/setup.js +226 -35
  53. package/dist/cli/commands/setup.js.map +1 -1
  54. package/dist/cli/index.js +2 -2
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/env/types.d.ts +79 -0
  57. package/dist/env/types.d.ts.map +1 -0
  58. package/dist/env/types.js +16 -0
  59. package/dist/env/types.js.map +1 -0
  60. package/dist/utils/config-loader.d.ts +57 -34
  61. package/dist/utils/config-loader.d.ts.map +1 -1
  62. package/dist/utils/config-loader.js +200 -27
  63. package/dist/utils/config-loader.js.map +1 -1
  64. package/dist/utils/model-fetcher.d.ts.map +1 -1
  65. package/dist/utils/model-fetcher.js +1 -3
  66. package/dist/utils/model-fetcher.js.map +1 -1
  67. package/package.json +6 -4
  68. package/bin/codemie-claude.js +0 -145
  69. package/bin/codemie-code.js +0 -136
  70. package/bin/codemie-codex.js +0 -137
  71. package/dist/agents/adapters/claude-code.d.ts +0 -17
  72. package/dist/agents/adapters/claude-code.d.ts.map +0 -1
  73. package/dist/agents/adapters/claude-code.js +0 -134
  74. package/dist/agents/adapters/claude-code.js.map +0 -1
  75. package/dist/agents/adapters/codemie-code.d.ts +0 -21
  76. package/dist/agents/adapters/codemie-code.d.ts.map +0 -1
  77. package/dist/agents/adapters/codemie-code.js +0 -110
  78. package/dist/agents/adapters/codemie-code.js.map +0 -1
  79. package/dist/agents/adapters/codex.d.ts +0 -17
  80. package/dist/agents/adapters/codex.d.ts.map +0 -1
  81. package/dist/agents/adapters/codex.js +0 -145
  82. package/dist/agents/adapters/codex.js.map +0 -1
  83. package/dist/cli/commands/run.d.ts +0 -3
  84. package/dist/cli/commands/run.d.ts.map +0 -1
  85. package/dist/cli/commands/run.js +0 -333
  86. package/dist/cli/commands/run.js.map +0 -1
  87. package/dist/utils/agent-compatibility.d.ts +0 -32
  88. package/dist/utils/agent-compatibility.d.ts.map +0 -1
  89. package/dist/utils/agent-compatibility.js +0 -140
  90. package/dist/utils/agent-compatibility.js.map +0 -1
@@ -0,0 +1,224 @@
1
+ import { exec } from '../../utils/exec.js';
2
+ import { logger } from '../../utils/logger.js';
3
+ import { spawn } from 'child_process';
4
+ import { SSOGateway } from '../../utils/sso-gateway.js';
5
+ /**
6
+ * Base class for all agent adapters
7
+ * Implements common logic shared by external agents
8
+ */
9
+ export class BaseAgentAdapter {
10
+ metadata;
11
+ ssoGateway = null;
12
+ constructor(metadata) {
13
+ this.metadata = metadata;
14
+ }
15
+ get name() {
16
+ return this.metadata.name;
17
+ }
18
+ get displayName() {
19
+ return this.metadata.displayName;
20
+ }
21
+ get description() {
22
+ return this.metadata.description;
23
+ }
24
+ /**
25
+ * Install agent via npm
26
+ */
27
+ async install() {
28
+ if (!this.metadata.npmPackage) {
29
+ throw new Error(`${this.displayName} is built-in and cannot be installed`);
30
+ }
31
+ logger.info(`Installing ${this.displayName}...`);
32
+ try {
33
+ await exec('npm', ['install', '-g', this.metadata.npmPackage], { timeout: 120000 });
34
+ logger.success(`${this.displayName} installed successfully`);
35
+ }
36
+ catch (error) {
37
+ const errorMessage = error instanceof Error ? error.message : String(error);
38
+ throw new Error(`Failed to install ${this.displayName}: ${errorMessage}`);
39
+ }
40
+ }
41
+ /**
42
+ * Uninstall agent via npm
43
+ */
44
+ async uninstall() {
45
+ if (!this.metadata.npmPackage) {
46
+ throw new Error(`${this.displayName} is built-in and cannot be uninstalled`);
47
+ }
48
+ logger.info(`Uninstalling ${this.displayName}...`);
49
+ try {
50
+ await exec('npm', ['uninstall', '-g', this.metadata.npmPackage]);
51
+ logger.success(`${this.displayName} uninstalled successfully`);
52
+ }
53
+ catch (error) {
54
+ const errorMessage = error instanceof Error ? error.message : String(error);
55
+ throw new Error(`Failed to uninstall ${this.displayName}: ${errorMessage}`);
56
+ }
57
+ }
58
+ /**
59
+ * Check if agent is installed via which command
60
+ */
61
+ async isInstalled() {
62
+ if (!this.metadata.cliCommand) {
63
+ return true; // Built-in agents are always "installed"
64
+ }
65
+ try {
66
+ const result = await exec('which', [this.metadata.cliCommand]);
67
+ return result.code === 0;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Get agent version
75
+ */
76
+ async getVersion() {
77
+ if (!this.metadata.cliCommand) {
78
+ return null;
79
+ }
80
+ try {
81
+ const result = await exec(this.metadata.cliCommand, ['--version']);
82
+ return result.stdout.trim();
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ /**
89
+ * Run the agent
90
+ */
91
+ async run(args, envOverrides) {
92
+ logger.info(`Starting ${this.displayName}...`);
93
+ // Merge environment variables
94
+ const env = {
95
+ ...process.env,
96
+ ...envOverrides
97
+ };
98
+ // Setup SSO gateway if needed
99
+ await this.setupSSOGateway(env);
100
+ // Apply argument transformations
101
+ const transformedArgs = this.metadata.argumentTransform
102
+ ? this.metadata.argumentTransform(args, this.extractConfig(env))
103
+ : args;
104
+ // Run lifecycle hook
105
+ if (this.metadata.lifecycle?.beforeRun) {
106
+ await this.metadata.lifecycle.beforeRun(env, this.extractConfig(env));
107
+ }
108
+ if (!this.metadata.cliCommand) {
109
+ throw new Error(`${this.displayName} has no CLI command configured`);
110
+ }
111
+ try {
112
+ // Spawn the CLI command
113
+ const child = spawn(this.metadata.cliCommand, transformedArgs, {
114
+ stdio: 'inherit',
115
+ env
116
+ });
117
+ return new Promise((resolve, reject) => {
118
+ child.on('error', (error) => {
119
+ reject(new Error(`Failed to start ${this.displayName}: ${error.message}`));
120
+ });
121
+ child.on('exit', async (code) => {
122
+ // Clean up gateway
123
+ if (this.ssoGateway) {
124
+ await this.ssoGateway.stop();
125
+ this.ssoGateway = null;
126
+ }
127
+ // Run afterRun hook
128
+ if (this.metadata.lifecycle?.afterRun && code !== null) {
129
+ await this.metadata.lifecycle.afterRun(code);
130
+ }
131
+ if (code === 0) {
132
+ resolve();
133
+ }
134
+ else {
135
+ reject(new Error(`${this.displayName} exited with code ${code}`));
136
+ }
137
+ });
138
+ });
139
+ }
140
+ catch (error) {
141
+ // Clean up gateway on error
142
+ if (this.ssoGateway) {
143
+ await this.ssoGateway.stop();
144
+ this.ssoGateway = null;
145
+ }
146
+ throw error;
147
+ }
148
+ }
149
+ /**
150
+ * Centralized SSO gateway setup
151
+ * Works for ALL agents based on their metadata
152
+ */
153
+ async setupSSOGateway(env) {
154
+ // Only activate for ai-run-sso provider
155
+ const isSSOProvider = env.CODEMIE_PROVIDER === 'ai-run-sso';
156
+ if (!isSSOProvider || !this.metadata.ssoConfig?.enabled) {
157
+ return; // No SSO needed
158
+ }
159
+ try {
160
+ // Get the target API URL
161
+ const targetApiUrl = env.CODEMIE_BASE_URL || env.OPENAI_BASE_URL;
162
+ if (!targetApiUrl) {
163
+ throw new Error('No API URL found for SSO authentication');
164
+ }
165
+ // Create and start the SSO gateway
166
+ this.ssoGateway = new SSOGateway({
167
+ targetApiUrl,
168
+ debug: !!(env.DEBUG || env.CODEMIE_DEBUG),
169
+ clientType: this.metadata.ssoConfig.clientType
170
+ });
171
+ const { url } = await this.ssoGateway.start();
172
+ // Override env vars based on agent's ssoConfig.envOverrides
173
+ const { baseUrl, apiKey } = this.metadata.ssoConfig.envOverrides;
174
+ env[baseUrl] = url; // Point to local gateway
175
+ env[apiKey] = 'gateway-handled'; // Placeholder
176
+ if (env.DEBUG || env.CODEMIE_DEBUG) {
177
+ logger.info(`[DEBUG] SSO Gateway started for ${this.displayName}`);
178
+ logger.info(`[DEBUG] Gateway URL: ${url}`);
179
+ logger.info(`[DEBUG] Target API: ${targetApiUrl}`);
180
+ }
181
+ }
182
+ catch (error) {
183
+ const errorMessage = error instanceof Error ? error.message : String(error);
184
+ throw new Error(`SSO gateway setup failed: ${errorMessage}`);
185
+ }
186
+ }
187
+ /**
188
+ * Apply environment variable mappings from metadata
189
+ */
190
+ applyEnvMappings(config, env) {
191
+ const { envMapping } = this.metadata;
192
+ // Map base URL
193
+ if (config.baseUrl && envMapping.baseUrl) {
194
+ for (const envVar of envMapping.baseUrl) {
195
+ env[envVar] = config.baseUrl;
196
+ }
197
+ }
198
+ // Map API key
199
+ if (config.apiKey && envMapping.apiKey) {
200
+ for (const envVar of envMapping.apiKey) {
201
+ env[envVar] = config.apiKey;
202
+ }
203
+ }
204
+ // Map model
205
+ if (config.model && envMapping.model) {
206
+ for (const envVar of envMapping.model) {
207
+ env[envVar] = config.model;
208
+ }
209
+ }
210
+ }
211
+ /**
212
+ * Extract agent config from environment
213
+ */
214
+ extractConfig(env) {
215
+ return {
216
+ provider: env.CODEMIE_PROVIDER,
217
+ model: env.CODEMIE_MODEL,
218
+ baseUrl: env.CODEMIE_BASE_URL,
219
+ apiKey: env.CODEMIE_API_KEY,
220
+ timeout: env.CODEMIE_TIMEOUT ? parseInt(env.CODEMIE_TIMEOUT, 10) : undefined
221
+ };
222
+ }
223
+ }
224
+ //# sourceMappingURL=BaseAgentAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAgentAdapter.js","sourceRoot":"","sources":["../../../src/agents/core/BaseAgentAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Core types for the plugin-based agent architecture
3
+ */
4
+ /**
5
+ * Agent metadata schema - declarative configuration for agents
6
+ */
7
+ export interface AgentMetadata {
8
+ name: string;
9
+ displayName: string;
10
+ description: string;
11
+ npmPackage: string | null;
12
+ cliCommand: string | null;
13
+ envMapping: {
14
+ baseUrl?: string[];
15
+ apiKey?: string[];
16
+ model?: string[];
17
+ };
18
+ supportedProviders: string[];
19
+ blockedModelPatterns?: RegExp[];
20
+ ssoConfig?: {
21
+ enabled: boolean;
22
+ clientType: string;
23
+ envOverrides: {
24
+ baseUrl: string;
25
+ apiKey: string;
26
+ };
27
+ };
28
+ customOptions?: Array<{
29
+ flags: string;
30
+ description: string;
31
+ }>;
32
+ argumentTransform?: (args: string[], config: AgentConfig) => string[];
33
+ lifecycle?: {
34
+ beforeRun?: (env: NodeJS.ProcessEnv, config: AgentConfig) => Promise<NodeJS.ProcessEnv>;
35
+ afterRun?: (exitCode: number) => Promise<void>;
36
+ };
37
+ isBuiltIn?: boolean;
38
+ customRunHandler?: (args: string[], options: Record<string, unknown>, config: AgentConfig) => Promise<void>;
39
+ customHealthCheck?: () => Promise<boolean>;
40
+ }
41
+ /**
42
+ * Agent configuration passed to runtime handlers
43
+ */
44
+ export interface AgentConfig {
45
+ provider?: string;
46
+ model?: string;
47
+ baseUrl?: string;
48
+ apiKey?: string;
49
+ timeout?: number;
50
+ }
51
+ /**
52
+ * Agent adapter interface - implemented by BaseAgentAdapter
53
+ */
54
+ export interface AgentAdapter {
55
+ name: string;
56
+ displayName: string;
57
+ description: string;
58
+ install(): Promise<void>;
59
+ uninstall(): Promise<void>;
60
+ isInstalled(): Promise<boolean>;
61
+ run(args: string[], env?: Record<string, string>): Promise<void>;
62
+ getVersion(): Promise<string | null>;
63
+ }
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,UAAU,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAGF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGhC,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;IAGF,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAGH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;IAEtE,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxF,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAChD,CAAC;IAGF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core types for the plugin-based agent architecture
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,13 @@
1
+ import { AgentMetadata } from '../core/types.js';
2
+ import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
3
+ /**
4
+ * Claude Code Plugin Metadata
5
+ */
6
+ export declare const ClaudePluginMetadata: AgentMetadata;
7
+ /**
8
+ * Claude Code Adapter
9
+ */
10
+ export declare class ClaudePlugin extends BaseAgentAdapter {
11
+ constructor();
12
+ }
13
+ //# sourceMappingURL=claude.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/claude.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAyBlC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;;CAIjD"}
@@ -0,0 +1,35 @@
1
+ import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
2
+ /**
3
+ * Claude Code Plugin Metadata
4
+ */
5
+ export const ClaudePluginMetadata = {
6
+ name: 'claude',
7
+ displayName: 'Claude Code',
8
+ description: 'Claude Code - official Anthropic CLI tool',
9
+ npmPackage: '@anthropic-ai/claude-code',
10
+ cliCommand: 'claude',
11
+ envMapping: {
12
+ baseUrl: ['ANTHROPIC_BASE_URL'],
13
+ apiKey: ['ANTHROPIC_AUTH_TOKEN'],
14
+ model: ['ANTHROPIC_MODEL']
15
+ },
16
+ supportedProviders: ['bedrock', 'openai', 'azure', 'litellm', 'ai-run-sso'],
17
+ blockedModelPatterns: [], // Accepts both Claude and GPT models
18
+ ssoConfig: {
19
+ enabled: true,
20
+ clientType: 'codemie-claude',
21
+ envOverrides: {
22
+ baseUrl: 'ANTHROPIC_BASE_URL',
23
+ apiKey: 'ANTHROPIC_AUTH_TOKEN'
24
+ }
25
+ }
26
+ };
27
+ /**
28
+ * Claude Code Adapter
29
+ */
30
+ export class ClaudePlugin extends BaseAgentAdapter {
31
+ constructor() {
32
+ super(ClaudePluginMetadata);
33
+ }
34
+ }
35
+ //# sourceMappingURL=claude.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/claude.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;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,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,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;IAC3E,oBAAoB,EAAE,EAAE,EAAE,qCAAqC;IAE/D,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE;YACZ,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,sBAAsB;SAC/B;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAChD;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { AgentMetadata, AgentAdapter } from '../core/types.js';
2
+ /**
3
+ * CodeMie-Code Plugin Metadata
4
+ */
5
+ export declare const CodeMieCodePluginMetadata: AgentMetadata;
6
+ /**
7
+ * CodeMie-Code Adapter
8
+ * Custom implementation for built-in agent
9
+ */
10
+ export declare class CodeMieCodePlugin implements AgentAdapter {
11
+ name: string;
12
+ displayName: string;
13
+ description: string;
14
+ install(): Promise<void>;
15
+ uninstall(): Promise<void>;
16
+ isInstalled(): Promise<boolean>;
17
+ run(args: string[], envOverrides?: Record<string, string>): Promise<void>;
18
+ getVersion(): Promise<string | null>;
19
+ }
20
+ //# sourceMappingURL=codemie-code.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemie-code.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/codemie-code.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQ/D;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,aA0EvC,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAkB;IACtB,WAAW,SAAoB;IAC/B,WAAW,SAAsE;IAE3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAU3C"}
@@ -0,0 +1,137 @@
1
+ import { logger } from '../../utils/logger.js';
2
+ import { CodeMieCode } from '../codemie-code/index.js';
3
+ import { loadCodeMieConfig } from '../codemie-code/config.js';
4
+ import { join } from 'path';
5
+ import { readFileSync } from 'fs';
6
+ import { getDirname } from '../../utils/dirname.js';
7
+ /**
8
+ * CodeMie-Code Plugin Metadata
9
+ */
10
+ export const CodeMieCodePluginMetadata = {
11
+ name: 'codemie-code',
12
+ displayName: 'CodeMie Native',
13
+ description: 'Built-in LangGraph-based coding assistant',
14
+ npmPackage: null, // Built-in
15
+ cliCommand: null, // No external CLI
16
+ envMapping: {},
17
+ supportedProviders: ['bedrock', 'openai', 'azure', 'litellm', 'ai-run-sso'],
18
+ blockedModelPatterns: [],
19
+ // Built-in agent doesn't use SSO gateway (handles auth internally)
20
+ ssoConfig: undefined,
21
+ customOptions: [
22
+ { flags: '--task <task>', description: 'Execute a single task and exit' },
23
+ { flags: '--debug', description: 'Enable debug logging' },
24
+ { flags: '--plan', description: 'Enable planning mode' },
25
+ { flags: '--plan-only', description: 'Plan without execution' }
26
+ ],
27
+ isBuiltIn: true,
28
+ // Custom handler for built-in agent
29
+ customRunHandler: async (args, options) => {
30
+ logger.info('Starting CodeMie Native Agent...');
31
+ try {
32
+ // Check if we have a valid configuration first
33
+ const workingDir = process.cwd();
34
+ try {
35
+ await loadCodeMieConfig(workingDir);
36
+ }
37
+ catch {
38
+ throw new Error('CodeMie configuration required. Please run: codemie setup');
39
+ }
40
+ const codeMie = new CodeMieCode(workingDir);
41
+ await codeMie.initialize({ debug: options.debug });
42
+ if (options.task) {
43
+ await codeMie.executeTaskWithUI(options.task, {
44
+ planMode: (options.plan || options.planOnly),
45
+ planOnly: options.planOnly
46
+ });
47
+ }
48
+ else if (args.length > 0) {
49
+ await codeMie.executeTaskWithUI(args.join(' '));
50
+ if (!options.planOnly) {
51
+ await codeMie.startInteractive();
52
+ }
53
+ }
54
+ else {
55
+ await codeMie.startInteractive();
56
+ }
57
+ }
58
+ catch (error) {
59
+ const errorMessage = error instanceof Error ? error.message : String(error);
60
+ throw new Error(`Failed to run CodeMie Native: ${errorMessage}`);
61
+ }
62
+ },
63
+ customHealthCheck: async () => {
64
+ const result = await CodeMieCode.testConnection(process.cwd());
65
+ if (result.success) {
66
+ logger.success('CodeMie Native is healthy');
67
+ console.log(`Provider: ${result.provider || 'unknown'}`);
68
+ console.log(`Model: ${result.model || 'unknown'}`);
69
+ return true;
70
+ }
71
+ else {
72
+ logger.error('Health check failed:', result.error);
73
+ return false;
74
+ }
75
+ }
76
+ };
77
+ /**
78
+ * CodeMie-Code Adapter
79
+ * Custom implementation for built-in agent
80
+ */
81
+ export class CodeMieCodePlugin {
82
+ name = 'codemie-code';
83
+ displayName = 'CodeMie Native';
84
+ description = 'CodeMie Native Agent - Built-in LangGraph-based coding assistant';
85
+ async install() {
86
+ logger.info('CodeMie Native is built-in and already available');
87
+ }
88
+ async uninstall() {
89
+ logger.info('CodeMie Native is built-in and cannot be uninstalled');
90
+ }
91
+ async isInstalled() {
92
+ return true;
93
+ }
94
+ async run(args, envOverrides) {
95
+ // Set environment variables if provided
96
+ if (envOverrides) {
97
+ Object.assign(process.env, envOverrides);
98
+ }
99
+ // Parse options from args
100
+ const options = {};
101
+ const filteredArgs = [];
102
+ for (let i = 0; i < args.length; i++) {
103
+ const arg = args[i];
104
+ if (arg === '--task' && args[i + 1]) {
105
+ options.task = args[i + 1];
106
+ i++; // Skip next arg
107
+ }
108
+ else if (arg === '--debug') {
109
+ options.debug = true;
110
+ }
111
+ else if (arg === '--plan') {
112
+ options.plan = true;
113
+ }
114
+ else if (arg === '--plan-only') {
115
+ options.planOnly = true;
116
+ }
117
+ else {
118
+ filteredArgs.push(arg);
119
+ }
120
+ }
121
+ if (CodeMieCodePluginMetadata.customRunHandler) {
122
+ await CodeMieCodePluginMetadata.customRunHandler(filteredArgs, options, {});
123
+ }
124
+ }
125
+ async getVersion() {
126
+ try {
127
+ const packageJsonPath = join(getDirname(import.meta.url), '../../../package.json');
128
+ const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');
129
+ const packageJson = JSON.parse(packageJsonContent);
130
+ return `v${packageJson.version} (built-in)`;
131
+ }
132
+ catch {
133
+ return 'unknown (built-in)';
134
+ }
135
+ }
136
+ }
137
+ //# sourceMappingURL=codemie-code.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemie-code.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/codemie-code.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AgentMetadata } from '../core/types.js';
2
+ import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
3
+ /**
4
+ * Codex Plugin Metadata
5
+ */
6
+ export declare const CodexPluginMetadata: AgentMetadata;
7
+ /**
8
+ * Codex Adapter
9
+ */
10
+ export declare class CodexPlugin extends BaseAgentAdapter {
11
+ constructor();
12
+ }
13
+ //# sourceMappingURL=codex.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/codex.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAsCjC,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAAgB;;CAIhD"}
@@ -0,0 +1,43 @@
1
+ import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
2
+ /**
3
+ * Codex Plugin Metadata
4
+ */
5
+ export const CodexPluginMetadata = {
6
+ name: 'codex',
7
+ displayName: 'Codex',
8
+ description: 'OpenAI Codex - AI coding assistant',
9
+ npmPackage: '@openai/codex',
10
+ cliCommand: 'codex',
11
+ envMapping: {
12
+ baseUrl: ['OPENAI_API_BASE', 'OPENAI_BASE_URL'],
13
+ apiKey: ['OPENAI_API_KEY'],
14
+ model: ['OPENAI_MODEL', 'CODEX_MODEL']
15
+ },
16
+ supportedProviders: ['openai', 'azure', 'litellm', 'ai-run-sso'],
17
+ blockedModelPatterns: [/^claude/i, /bedrock.*claude/i],
18
+ ssoConfig: {
19
+ enabled: true,
20
+ clientType: 'codex-cli',
21
+ envOverrides: {
22
+ baseUrl: 'OPENAI_API_BASE',
23
+ apiKey: 'OPENAI_API_KEY'
24
+ }
25
+ },
26
+ // Codex needs model injected as argument
27
+ argumentTransform: (args, config) => {
28
+ const hasModelArg = args.some((arg, idx) => (arg === '-m' || arg === '--model') && idx < args.length - 1);
29
+ if (!hasModelArg && config.model) {
30
+ return ['--model', config.model, ...args];
31
+ }
32
+ return args;
33
+ }
34
+ };
35
+ /**
36
+ * Codex Adapter
37
+ */
38
+ export class CodexPlugin extends BaseAgentAdapter {
39
+ constructor() {
40
+ super(CodexPluginMetadata);
41
+ }
42
+ }
43
+ //# sourceMappingURL=codex.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.plugin.js","sourceRoot":"","sources":["../../../src/agents/plugins/codex.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,oCAAoC;IAEjD,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,OAAO;IAEnB,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;QAC/C,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,KAAK,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;KACvC;IAED,kBAAkB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;IAChE,oBAAoB,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAEtD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE;YACZ,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,gBAAgB;SACzB;KACF;IAED,yCAAyC;IACzC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACzC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAC7D,CAAC;QAEF,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,gBAAgB;IAC/C;QACE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { AgentMetadata } from '../core/types.js';
2
+ import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
3
+ /**
4
+ * Gemini CLI Plugin Metadata
5
+ */
6
+ export declare const GeminiPluginMetadata: AgentMetadata;
7
+ /**
8
+ * Gemini CLI Adapter
9
+ */
10
+ export declare class GeminiPlugin extends BaseAgentAdapter {
11
+ constructor();
12
+ }
13
+ //# sourceMappingURL=gemini.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAsClC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;;CAIjD"}