@generacy-ai/generacy-plugin-claude-code 0.0.0-preview-20260304013206
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/LICENSE +191 -0
- package/dist/container/container-manager.d.ts +82 -0
- package/dist/container/container-manager.d.ts.map +1 -0
- package/dist/container/container-manager.js +420 -0
- package/dist/container/container-manager.js.map +1 -0
- package/dist/container/types.d.ts +160 -0
- package/dist/container/types.d.ts.map +1 -0
- package/dist/container/types.js +24 -0
- package/dist/container/types.js.map +1 -0
- package/dist/errors.d.ts +106 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +180 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/invocation/invoker.d.ts +59 -0
- package/dist/invocation/invoker.d.ts.map +1 -0
- package/dist/invocation/invoker.js +271 -0
- package/dist/invocation/invoker.js.map +1 -0
- package/dist/invocation/types.d.ts +129 -0
- package/dist/invocation/types.d.ts.map +1 -0
- package/dist/invocation/types.js +57 -0
- package/dist/invocation/types.js.map +1 -0
- package/dist/plugin/claude-code-plugin.d.ts +144 -0
- package/dist/plugin/claude-code-plugin.d.ts.map +1 -0
- package/dist/plugin/claude-code-plugin.js +416 -0
- package/dist/plugin/claude-code-plugin.js.map +1 -0
- package/dist/schemas.d.ts +198 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +75 -0
- package/dist/schemas.js.map +1 -0
- package/dist/session/session-manager.d.ts +117 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +243 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session.d.ts +99 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +271 -0
- package/dist/session/session.js.map +1 -0
- package/dist/session/types.d.ts +107 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +33 -0
- package/dist/session/types.js.map +1 -0
- package/dist/streaming/output-parser.d.ts +91 -0
- package/dist/streaming/output-parser.d.ts.map +1 -0
- package/dist/streaming/output-parser.js +321 -0
- package/dist/streaming/output-parser.js.map +1 -0
- package/dist/streaming/output-stream.d.ts +45 -0
- package/dist/streaming/output-stream.d.ts.map +1 -0
- package/dist/streaming/output-stream.js +222 -0
- package/dist/streaming/output-stream.js.map +1 -0
- package/dist/streaming/types.d.ts +89 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/streaming/types.js +47 -0
- package/dist/streaming/types.js.map +1 -0
- package/dist/types.d.ts +267 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +33 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generacy-ai/generacy-plugin-claude-code
|
|
3
|
+
*
|
|
4
|
+
* Main plugin class extending AbstractDevAgentPlugin for Claude Code agent invocation.
|
|
5
|
+
*/
|
|
6
|
+
import Docker from 'dockerode';
|
|
7
|
+
import pino from 'pino';
|
|
8
|
+
import { FacetError } from '@generacy-ai/latency';
|
|
9
|
+
import { AbstractDevAgentPlugin, } from '@generacy-ai/latency-plugin-dev-agent';
|
|
10
|
+
import { SessionInvalidStateError, wrapError, } from '../errors.js';
|
|
11
|
+
import { ContainerConfigSchema, InvokeParamsSchema } from '../schemas.js';
|
|
12
|
+
import { ContainerManager } from '../container/container-manager.js';
|
|
13
|
+
import { SessionManager } from '../session/session-manager.js';
|
|
14
|
+
import { Invoker } from '../invocation/invoker.js';
|
|
15
|
+
import { createOutputStream } from '../streaming/output-stream.js';
|
|
16
|
+
/**
|
|
17
|
+
* ClaudeCodePlugin - Main plugin class for Claude Code agent invocation.
|
|
18
|
+
*
|
|
19
|
+
* Extends AbstractDevAgentPlugin to provide the standard DevAgent interface
|
|
20
|
+
* while also exposing Docker container session management functionality.
|
|
21
|
+
*
|
|
22
|
+
* Provides a thin interface for invoking Claude Code agents in isolated
|
|
23
|
+
* Docker containers, with session management, output streaming, and
|
|
24
|
+
* integration with the Humancy decision framework.
|
|
25
|
+
*/
|
|
26
|
+
export class ClaudeCodePlugin extends AbstractDevAgentPlugin {
|
|
27
|
+
docker;
|
|
28
|
+
logger;
|
|
29
|
+
containerManager;
|
|
30
|
+
sessionManager;
|
|
31
|
+
invoker;
|
|
32
|
+
defaultContainerConfig;
|
|
33
|
+
defaultClaudeInvokeOptions;
|
|
34
|
+
disposed = false;
|
|
35
|
+
constructor(options = {}) {
|
|
36
|
+
super({ defaultTimeoutMs: options.defaultTimeoutMs ?? 300_000 }); // 5 minute default for container operations
|
|
37
|
+
// Initialize Docker client
|
|
38
|
+
this.docker = options.docker instanceof Docker
|
|
39
|
+
? options.docker
|
|
40
|
+
: new Docker(options.docker);
|
|
41
|
+
// Initialize logger
|
|
42
|
+
if (options.logger && 'info' in options.logger) {
|
|
43
|
+
this.logger = options.logger;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.logger = pino({
|
|
47
|
+
name: 'claude-code-plugin',
|
|
48
|
+
level: process.env.LOG_LEVEL ?? 'info',
|
|
49
|
+
...options.logger,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// Initialize container manager
|
|
53
|
+
this.containerManager = new ContainerManager(this.docker, this.logger);
|
|
54
|
+
// Initialize session manager
|
|
55
|
+
this.sessionManager = new SessionManager(this.logger, {
|
|
56
|
+
sessionTimeoutMs: options.sessionTimeoutMs,
|
|
57
|
+
maxSessions: options.maxSessions,
|
|
58
|
+
});
|
|
59
|
+
// Initialize invoker
|
|
60
|
+
this.invoker = new Invoker(this.containerManager, this.logger);
|
|
61
|
+
// Store defaults
|
|
62
|
+
this.defaultContainerConfig = options.defaultContainerConfig ?? {};
|
|
63
|
+
this.defaultClaudeInvokeOptions = options.defaultInvokeOptions ?? {};
|
|
64
|
+
this.logger.info('ClaudeCodePlugin initialized');
|
|
65
|
+
}
|
|
66
|
+
// ==========================================================================
|
|
67
|
+
// AbstractDevAgentPlugin abstract method implementations
|
|
68
|
+
// ==========================================================================
|
|
69
|
+
/**
|
|
70
|
+
* Invoke Claude Code with a prompt (implements abstract method).
|
|
71
|
+
*
|
|
72
|
+
* Creates an ephemeral Docker container session, runs the prompt,
|
|
73
|
+
* and returns the complete result.
|
|
74
|
+
*/
|
|
75
|
+
async doInvoke(prompt, options) {
|
|
76
|
+
this.ensureNotDisposed();
|
|
77
|
+
this.logger.debug({ invocationId: options.invocationId }, 'Starting Claude Code invocation via DevAgent interface');
|
|
78
|
+
// Create ephemeral session
|
|
79
|
+
const config = await this.createEphemeralContainerConfig();
|
|
80
|
+
const session = await this.startSessionInternal(config);
|
|
81
|
+
try {
|
|
82
|
+
// Merge options
|
|
83
|
+
const invokeOptions = {
|
|
84
|
+
...this.defaultClaudeInvokeOptions,
|
|
85
|
+
...session.defaultOptions,
|
|
86
|
+
timeout: options.timeoutMs,
|
|
87
|
+
mode: options.metadata?.mode,
|
|
88
|
+
};
|
|
89
|
+
// Execute invocation
|
|
90
|
+
const result = await this.invoker.invoke(session, prompt, invokeOptions);
|
|
91
|
+
return {
|
|
92
|
+
output: result.summary ?? '',
|
|
93
|
+
invocationId: options.invocationId,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
// Cleanup ephemeral session
|
|
98
|
+
await this.endSession(session.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Stream Claude Code output (implements abstract method).
|
|
103
|
+
*
|
|
104
|
+
* Creates an ephemeral Docker container session and yields output chunks.
|
|
105
|
+
*/
|
|
106
|
+
async *doInvokeStream(prompt, options) {
|
|
107
|
+
this.ensureNotDisposed();
|
|
108
|
+
this.logger.debug({ invocationId: options.invocationId }, 'Starting Claude Code stream via DevAgent interface');
|
|
109
|
+
// Create ephemeral session
|
|
110
|
+
const config = await this.createEphemeralContainerConfig();
|
|
111
|
+
const session = await this.startSessionInternal(config);
|
|
112
|
+
try {
|
|
113
|
+
// Merge options
|
|
114
|
+
const invokeOptions = {
|
|
115
|
+
...this.defaultClaudeInvokeOptions,
|
|
116
|
+
...session.defaultOptions,
|
|
117
|
+
timeout: options.timeoutMs,
|
|
118
|
+
mode: options.metadata?.mode,
|
|
119
|
+
};
|
|
120
|
+
// Start invocation (non-blocking)
|
|
121
|
+
this.invoker.invoke(session, prompt, invokeOptions).catch((error) => {
|
|
122
|
+
this.logger.error({ error, sessionId: session.id }, 'Invocation error during stream');
|
|
123
|
+
});
|
|
124
|
+
// Stream output chunks
|
|
125
|
+
const outputStream = await this.getSessionOutputStream(session.id);
|
|
126
|
+
for await (const chunk of outputStream) {
|
|
127
|
+
if (options.signal.aborted) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
yield {
|
|
131
|
+
text: String(chunk.data ?? ''),
|
|
132
|
+
metadata: {
|
|
133
|
+
type: chunk.type,
|
|
134
|
+
timestamp: chunk.timestamp?.toISOString(),
|
|
135
|
+
...(chunk.data ? { data: chunk.data } : {}),
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
// Cleanup ephemeral session
|
|
142
|
+
await this.endSession(session.id);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Return Claude Code capabilities (implements abstract method).
|
|
147
|
+
*/
|
|
148
|
+
async doGetCapabilities() {
|
|
149
|
+
return {
|
|
150
|
+
streaming: true,
|
|
151
|
+
cancellation: true,
|
|
152
|
+
models: ['claude-code-docker'],
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
// ==========================================================================
|
|
156
|
+
// Claude Code-specific public API (for backwards compatibility)
|
|
157
|
+
// ==========================================================================
|
|
158
|
+
/**
|
|
159
|
+
* Invoke Claude Code with parameters.
|
|
160
|
+
* Creates an ephemeral session if no sessionId provided.
|
|
161
|
+
*/
|
|
162
|
+
async invokeWithParams(params) {
|
|
163
|
+
this.ensureNotDisposed();
|
|
164
|
+
// Validate params
|
|
165
|
+
const validated = InvokeParamsSchema.parse(params);
|
|
166
|
+
this.logger.info({ sessionId: validated.sessionId, prompt: validated.prompt.slice(0, 100) }, 'Invoking Claude Code');
|
|
167
|
+
// Get or create session
|
|
168
|
+
let session;
|
|
169
|
+
let isEphemeral = false;
|
|
170
|
+
if (validated.sessionId) {
|
|
171
|
+
session = this.sessionManager.get(validated.sessionId);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
// Create ephemeral session
|
|
175
|
+
const config = await this.createEphemeralContainerConfig();
|
|
176
|
+
session = await this.startSessionInternal(config);
|
|
177
|
+
isEphemeral = true;
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
// Merge options
|
|
181
|
+
const options = {
|
|
182
|
+
...this.defaultClaudeInvokeOptions,
|
|
183
|
+
...session.defaultOptions,
|
|
184
|
+
...validated.options,
|
|
185
|
+
};
|
|
186
|
+
// Execute invocation
|
|
187
|
+
const result = await this.invoker.invoke(session, validated.prompt, options);
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
// Cleanup ephemeral session
|
|
192
|
+
if (isEphemeral) {
|
|
193
|
+
await this.endSession(session.id);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Convenience method for simple prompt invocation.
|
|
199
|
+
*/
|
|
200
|
+
async invokeWithPrompt(prompt, options) {
|
|
201
|
+
return this.invokeWithParams({ prompt, options });
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Start a new session with the given container configuration.
|
|
205
|
+
*/
|
|
206
|
+
async startSession(container) {
|
|
207
|
+
this.ensureNotDisposed();
|
|
208
|
+
// Validate config
|
|
209
|
+
const validated = ContainerConfigSchema.parse(container);
|
|
210
|
+
this.logger.info({ image: validated.image }, 'Starting new session');
|
|
211
|
+
return this.startSessionInternal(validated);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Continue an existing session with a new prompt.
|
|
215
|
+
* Used to provide answers to questions.
|
|
216
|
+
*/
|
|
217
|
+
async continueSession(sessionId, prompt) {
|
|
218
|
+
this.ensureNotDisposed();
|
|
219
|
+
const session = this.sessionManager.get(sessionId);
|
|
220
|
+
this.logger.info({ sessionId }, 'Continuing session');
|
|
221
|
+
// If awaiting input, mark as answered
|
|
222
|
+
if (session.isAwaitingInput()) {
|
|
223
|
+
session.onAnswerProvided();
|
|
224
|
+
}
|
|
225
|
+
// Execute invocation
|
|
226
|
+
const options = {
|
|
227
|
+
...this.defaultClaudeInvokeOptions,
|
|
228
|
+
...session.defaultOptions,
|
|
229
|
+
};
|
|
230
|
+
return this.invoker.invoke(session, prompt, options);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* End a session and clean up resources.
|
|
234
|
+
*/
|
|
235
|
+
async endSession(sessionId) {
|
|
236
|
+
this.ensureNotDisposed();
|
|
237
|
+
this.logger.info({ sessionId }, 'Ending session');
|
|
238
|
+
try {
|
|
239
|
+
// Terminate session
|
|
240
|
+
this.sessionManager.terminate(sessionId, 'user_requested');
|
|
241
|
+
// Cleanup container
|
|
242
|
+
if (this.containerManager.hasContainer(sessionId)) {
|
|
243
|
+
await this.containerManager.stop(sessionId, { remove: true });
|
|
244
|
+
}
|
|
245
|
+
// Cleanup invoker
|
|
246
|
+
this.invoker.cleanupSession(sessionId);
|
|
247
|
+
// Remove from session manager
|
|
248
|
+
this.sessionManager.remove(sessionId);
|
|
249
|
+
this.logger.info({ sessionId }, 'Session ended');
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
const wrappedError = wrapError(error);
|
|
253
|
+
this.logger.warn({ sessionId, error: wrappedError }, 'Error ending session');
|
|
254
|
+
// Don't throw - best effort cleanup
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Stream output from an active session.
|
|
259
|
+
* Yields OutputChunks as they are received from the agent.
|
|
260
|
+
*/
|
|
261
|
+
async *streamOutput(sessionId) {
|
|
262
|
+
this.ensureNotDisposed();
|
|
263
|
+
for await (const chunk of this.getSessionOutputStream(sessionId)) {
|
|
264
|
+
yield chunk;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Set the Agency mode for a session.
|
|
269
|
+
* Must be called before invoke for mode to take effect.
|
|
270
|
+
*/
|
|
271
|
+
async setMode(sessionId, mode) {
|
|
272
|
+
this.ensureNotDisposed();
|
|
273
|
+
const session = this.sessionManager.get(sessionId);
|
|
274
|
+
if (!session.hasRunningContainer()) {
|
|
275
|
+
throw new SessionInvalidStateError(sessionId, session.status, ['running'], 'set mode');
|
|
276
|
+
}
|
|
277
|
+
this.logger.info({ sessionId, mode }, 'Setting mode');
|
|
278
|
+
await this.invoker.setMode(sessionId, mode);
|
|
279
|
+
// Update session default options
|
|
280
|
+
session.update({
|
|
281
|
+
defaultOptions: { ...session.defaultOptions, mode },
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Get a session by ID.
|
|
286
|
+
*/
|
|
287
|
+
getSession(sessionId) {
|
|
288
|
+
return this.sessionManager.getSession(sessionId);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Check if a session exists.
|
|
292
|
+
*/
|
|
293
|
+
hasSession(sessionId) {
|
|
294
|
+
return this.sessionManager.has(sessionId);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* List all active sessions.
|
|
298
|
+
*/
|
|
299
|
+
listSessions() {
|
|
300
|
+
return this.sessionManager.listActive().map((summary) => ({
|
|
301
|
+
id: summary.id,
|
|
302
|
+
status: summary.status,
|
|
303
|
+
createdAt: summary.createdAt,
|
|
304
|
+
lastActiveAt: summary.lastActiveAt,
|
|
305
|
+
}));
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get session count.
|
|
309
|
+
*/
|
|
310
|
+
getSessionCount() {
|
|
311
|
+
return {
|
|
312
|
+
active: this.sessionManager.getActiveCount(),
|
|
313
|
+
total: this.sessionManager.getTotalCount(),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Dispose of the plugin and cleanup all resources.
|
|
318
|
+
*/
|
|
319
|
+
async dispose() {
|
|
320
|
+
if (this.disposed) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
this.logger.info('Disposing ClaudeCodePlugin');
|
|
324
|
+
this.disposed = true;
|
|
325
|
+
// Cleanup all containers
|
|
326
|
+
await this.containerManager.cleanup();
|
|
327
|
+
// Dispose session manager
|
|
328
|
+
this.sessionManager.dispose();
|
|
329
|
+
this.logger.info('ClaudeCodePlugin disposed');
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Check if the plugin is disposed.
|
|
333
|
+
*/
|
|
334
|
+
isPluginDisposed() {
|
|
335
|
+
return this.disposed;
|
|
336
|
+
}
|
|
337
|
+
// ==========================================================================
|
|
338
|
+
// Private methods
|
|
339
|
+
// ==========================================================================
|
|
340
|
+
/**
|
|
341
|
+
* Internal method to start a session.
|
|
342
|
+
*/
|
|
343
|
+
async startSessionInternal(config) {
|
|
344
|
+
// Create session
|
|
345
|
+
const session = this.sessionManager.create({
|
|
346
|
+
containerConfig: config,
|
|
347
|
+
defaultOptions: { ...this.defaultClaudeInvokeOptions },
|
|
348
|
+
});
|
|
349
|
+
try {
|
|
350
|
+
// Create and start container
|
|
351
|
+
await this.containerManager.create({
|
|
352
|
+
sessionId: session.id,
|
|
353
|
+
config,
|
|
354
|
+
});
|
|
355
|
+
await this.containerManager.start(session.id);
|
|
356
|
+
// Update session state
|
|
357
|
+
const container = this.containerManager.getContainer(session.id);
|
|
358
|
+
session.onContainerStarted(container.containerId);
|
|
359
|
+
this.logger.info({ sessionId: session.id, containerId: container.containerId }, 'Session started');
|
|
360
|
+
return session;
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
// Cleanup on failure
|
|
364
|
+
await this.containerManager.remove(session.id).catch(() => { });
|
|
365
|
+
this.sessionManager.remove(session.id);
|
|
366
|
+
throw error;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Create an ephemeral container configuration.
|
|
371
|
+
*/
|
|
372
|
+
async createEphemeralContainerConfig() {
|
|
373
|
+
// Use defaults with sensible ephemeral settings
|
|
374
|
+
const config = {
|
|
375
|
+
image: this.defaultContainerConfig.image ?? 'generacy/claude-code:latest',
|
|
376
|
+
workdir: this.defaultContainerConfig.workdir ?? '/workspace',
|
|
377
|
+
env: { ...this.defaultContainerConfig.env },
|
|
378
|
+
mounts: [...(this.defaultContainerConfig.mounts ?? [])],
|
|
379
|
+
network: this.defaultContainerConfig.network ?? 'bridge',
|
|
380
|
+
resources: this.defaultContainerConfig.resources,
|
|
381
|
+
};
|
|
382
|
+
return ContainerConfigSchema.parse(config);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Get output stream for a session.
|
|
386
|
+
*/
|
|
387
|
+
async *getSessionOutputStream(sessionId) {
|
|
388
|
+
const session = this.sessionManager.get(sessionId);
|
|
389
|
+
if (!session.hasRunningContainer()) {
|
|
390
|
+
throw new SessionInvalidStateError(sessionId, session.status, ['running', 'executing'], 'stream output');
|
|
391
|
+
}
|
|
392
|
+
this.logger.debug({ sessionId }, 'Streaming output');
|
|
393
|
+
// Get container streams
|
|
394
|
+
const streams = await this.containerManager.attach(sessionId);
|
|
395
|
+
// Create output stream
|
|
396
|
+
const outputStream = createOutputStream(streams.stdout, streams.stderr);
|
|
397
|
+
// Yield chunks
|
|
398
|
+
for await (const chunk of outputStream) {
|
|
399
|
+
yield chunk;
|
|
400
|
+
// Handle question detection
|
|
401
|
+
if (chunk.type === 'question') {
|
|
402
|
+
const question = chunk.data;
|
|
403
|
+
session.onQuestionReceived(question);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Ensure the plugin is not disposed.
|
|
409
|
+
*/
|
|
410
|
+
ensureNotDisposed() {
|
|
411
|
+
if (this.disposed) {
|
|
412
|
+
throw new FacetError('Plugin has been disposed', 'VALIDATION');
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=claude-code-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-plugin.js","sourceRoot":"","sources":["../../src/plugin/claude-code-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generacy-ai/generacy-plugin-claude-code
|
|
3
|
+
*
|
|
4
|
+
* Zod validation schemas for runtime validation of configurations.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
/**
|
|
8
|
+
* Schema for volume mounts.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MountSchema: z.ZodObject<{
|
|
11
|
+
/** Host path or volume name */
|
|
12
|
+
source: z.ZodString;
|
|
13
|
+
/** Container path (must be absolute) */
|
|
14
|
+
target: z.ZodString;
|
|
15
|
+
/** Mount as read-only */
|
|
16
|
+
readonly: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
source: string;
|
|
19
|
+
target: string;
|
|
20
|
+
readonly?: boolean | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
source: string;
|
|
23
|
+
target: string;
|
|
24
|
+
readonly?: boolean | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Schema for resource limits.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ResourceLimitsSchema: z.ZodObject<{
|
|
30
|
+
/** Memory limit in bytes */
|
|
31
|
+
memory: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
/** CPU quota (e.g., 1.5 for 1.5 CPUs) */
|
|
33
|
+
cpus: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
memory?: number | undefined;
|
|
36
|
+
cpus?: number | undefined;
|
|
37
|
+
}, {
|
|
38
|
+
memory?: number | undefined;
|
|
39
|
+
cpus?: number | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Schema for container configuration.
|
|
43
|
+
*/
|
|
44
|
+
export declare const ContainerConfigSchema: z.ZodObject<{
|
|
45
|
+
/** Docker image to use */
|
|
46
|
+
image: z.ZodString;
|
|
47
|
+
/** Working directory inside container (must be absolute) */
|
|
48
|
+
workdir: z.ZodString;
|
|
49
|
+
/** Environment variables */
|
|
50
|
+
env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
51
|
+
/** Volume mounts */
|
|
52
|
+
mounts: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
53
|
+
/** Host path or volume name */
|
|
54
|
+
source: z.ZodString;
|
|
55
|
+
/** Container path (must be absolute) */
|
|
56
|
+
target: z.ZodString;
|
|
57
|
+
/** Mount as read-only */
|
|
58
|
+
readonly: z.ZodOptional<z.ZodBoolean>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
source: string;
|
|
61
|
+
target: string;
|
|
62
|
+
readonly?: boolean | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
source: string;
|
|
65
|
+
target: string;
|
|
66
|
+
readonly?: boolean | undefined;
|
|
67
|
+
}>, "many">>;
|
|
68
|
+
/** Docker network name */
|
|
69
|
+
network: z.ZodString;
|
|
70
|
+
/** Optional resource limits */
|
|
71
|
+
resources: z.ZodOptional<z.ZodObject<{
|
|
72
|
+
/** Memory limit in bytes */
|
|
73
|
+
memory: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
/** CPU quota (e.g., 1.5 for 1.5 CPUs) */
|
|
75
|
+
cpus: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
}, "strip", z.ZodTypeAny, {
|
|
77
|
+
memory?: number | undefined;
|
|
78
|
+
cpus?: number | undefined;
|
|
79
|
+
}, {
|
|
80
|
+
memory?: number | undefined;
|
|
81
|
+
cpus?: number | undefined;
|
|
82
|
+
}>>;
|
|
83
|
+
}, "strip", z.ZodTypeAny, {
|
|
84
|
+
image: string;
|
|
85
|
+
workdir: string;
|
|
86
|
+
env: Record<string, string>;
|
|
87
|
+
mounts: {
|
|
88
|
+
source: string;
|
|
89
|
+
target: string;
|
|
90
|
+
readonly?: boolean | undefined;
|
|
91
|
+
}[];
|
|
92
|
+
network: string;
|
|
93
|
+
resources?: {
|
|
94
|
+
memory?: number | undefined;
|
|
95
|
+
cpus?: number | undefined;
|
|
96
|
+
} | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
image: string;
|
|
99
|
+
workdir: string;
|
|
100
|
+
network: string;
|
|
101
|
+
env?: Record<string, string> | undefined;
|
|
102
|
+
mounts?: {
|
|
103
|
+
source: string;
|
|
104
|
+
target: string;
|
|
105
|
+
readonly?: boolean | undefined;
|
|
106
|
+
}[] | undefined;
|
|
107
|
+
resources?: {
|
|
108
|
+
memory?: number | undefined;
|
|
109
|
+
cpus?: number | undefined;
|
|
110
|
+
} | undefined;
|
|
111
|
+
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Schema for invocation options.
|
|
114
|
+
*/
|
|
115
|
+
export declare const InvokeOptionsSchema: z.ZodObject<{
|
|
116
|
+
/** Agency mode to set before invocation */
|
|
117
|
+
mode: z.ZodOptional<z.ZodString>;
|
|
118
|
+
/** Maximum execution time in milliseconds (max 1 hour) */
|
|
119
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
/** Tool whitelist (empty = all allowed) */
|
|
121
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
122
|
+
/** Serialized context for workflow continuity */
|
|
123
|
+
context: z.ZodOptional<z.ZodString>;
|
|
124
|
+
/** Associated GitHub issue number */
|
|
125
|
+
issueNumber: z.ZodOptional<z.ZodNumber>;
|
|
126
|
+
}, "strip", z.ZodTypeAny, {
|
|
127
|
+
timeout?: number | undefined;
|
|
128
|
+
mode?: string | undefined;
|
|
129
|
+
tools?: string[] | undefined;
|
|
130
|
+
context?: string | undefined;
|
|
131
|
+
issueNumber?: number | undefined;
|
|
132
|
+
}, {
|
|
133
|
+
timeout?: number | undefined;
|
|
134
|
+
mode?: string | undefined;
|
|
135
|
+
tools?: string[] | undefined;
|
|
136
|
+
context?: string | undefined;
|
|
137
|
+
issueNumber?: number | undefined;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Schema for invocation parameters.
|
|
141
|
+
*/
|
|
142
|
+
export declare const InvokeParamsSchema: z.ZodObject<{
|
|
143
|
+
/** The prompt to send to the agent */
|
|
144
|
+
prompt: z.ZodString;
|
|
145
|
+
/** Optional session ID for session-based invocation */
|
|
146
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
147
|
+
/** Optional overrides for invoke options */
|
|
148
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
149
|
+
mode: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
150
|
+
timeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
151
|
+
tools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
152
|
+
context: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
153
|
+
issueNumber: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
timeout?: number | undefined;
|
|
156
|
+
mode?: string | undefined;
|
|
157
|
+
tools?: string[] | undefined;
|
|
158
|
+
context?: string | undefined;
|
|
159
|
+
issueNumber?: number | undefined;
|
|
160
|
+
}, {
|
|
161
|
+
timeout?: number | undefined;
|
|
162
|
+
mode?: string | undefined;
|
|
163
|
+
tools?: string[] | undefined;
|
|
164
|
+
context?: string | undefined;
|
|
165
|
+
issueNumber?: number | undefined;
|
|
166
|
+
}>>;
|
|
167
|
+
}, "strip", z.ZodTypeAny, {
|
|
168
|
+
prompt: string;
|
|
169
|
+
options?: {
|
|
170
|
+
timeout?: number | undefined;
|
|
171
|
+
mode?: string | undefined;
|
|
172
|
+
tools?: string[] | undefined;
|
|
173
|
+
context?: string | undefined;
|
|
174
|
+
issueNumber?: number | undefined;
|
|
175
|
+
} | undefined;
|
|
176
|
+
sessionId?: string | undefined;
|
|
177
|
+
}, {
|
|
178
|
+
prompt: string;
|
|
179
|
+
options?: {
|
|
180
|
+
timeout?: number | undefined;
|
|
181
|
+
mode?: string | undefined;
|
|
182
|
+
tools?: string[] | undefined;
|
|
183
|
+
context?: string | undefined;
|
|
184
|
+
issueNumber?: number | undefined;
|
|
185
|
+
} | undefined;
|
|
186
|
+
sessionId?: string | undefined;
|
|
187
|
+
}>;
|
|
188
|
+
export type MountInput = z.input<typeof MountSchema>;
|
|
189
|
+
export type MountOutput = z.output<typeof MountSchema>;
|
|
190
|
+
export type ResourceLimitsInput = z.input<typeof ResourceLimitsSchema>;
|
|
191
|
+
export type ResourceLimitsOutput = z.output<typeof ResourceLimitsSchema>;
|
|
192
|
+
export type ContainerConfigInput = z.input<typeof ContainerConfigSchema>;
|
|
193
|
+
export type ContainerConfigOutput = z.output<typeof ContainerConfigSchema>;
|
|
194
|
+
export type InvokeOptionsInput = z.input<typeof InvokeOptionsSchema>;
|
|
195
|
+
export type InvokeOptionsOutput = z.output<typeof InvokeOptionsSchema>;
|
|
196
|
+
export type InvokeParamsInput = z.input<typeof InvokeParamsSchema>;
|
|
197
|
+
export type InvokeParamsOutput = z.output<typeof InvokeParamsSchema>;
|
|
198
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,+BAA+B;;IAE/B,wCAAwC;;IAExC,yBAAyB;;;;;;;;;;EAEzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,4BAA4B;;IAE5B,yCAAyC;;;;;;;;EAEzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,0BAA0B;;IAE1B,4DAA4D;;IAE5D,4BAA4B;;IAE5B,oBAAoB;;QA5BpB,+BAA+B;;QAE/B,wCAAwC;;QAExC,yBAAyB;;;;;;;;;;;IA0BzB,0BAA0B;;IAE1B,+BAA+B;;QApB/B,4BAA4B;;QAE5B,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,2CAA2C;;IAE3C,0DAA0D;;IAO1D,2CAA2C;;IAE3C,iDAAiD;;IAEjD,qCAAqC;;;;;;;;;;;;;;EAErC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,sCAAsC;;IAEtC,uDAAuD;;IAEvD,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5C,CAAC;AAGH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|