@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.
Files changed (62) hide show
  1. package/LICENSE +191 -0
  2. package/dist/container/container-manager.d.ts +82 -0
  3. package/dist/container/container-manager.d.ts.map +1 -0
  4. package/dist/container/container-manager.js +420 -0
  5. package/dist/container/container-manager.js.map +1 -0
  6. package/dist/container/types.d.ts +160 -0
  7. package/dist/container/types.d.ts.map +1 -0
  8. package/dist/container/types.js +24 -0
  9. package/dist/container/types.js.map +1 -0
  10. package/dist/errors.d.ts +106 -0
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/errors.js +180 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +21 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/invocation/invoker.d.ts +59 -0
  19. package/dist/invocation/invoker.d.ts.map +1 -0
  20. package/dist/invocation/invoker.js +271 -0
  21. package/dist/invocation/invoker.js.map +1 -0
  22. package/dist/invocation/types.d.ts +129 -0
  23. package/dist/invocation/types.d.ts.map +1 -0
  24. package/dist/invocation/types.js +57 -0
  25. package/dist/invocation/types.js.map +1 -0
  26. package/dist/plugin/claude-code-plugin.d.ts +144 -0
  27. package/dist/plugin/claude-code-plugin.d.ts.map +1 -0
  28. package/dist/plugin/claude-code-plugin.js +416 -0
  29. package/dist/plugin/claude-code-plugin.js.map +1 -0
  30. package/dist/schemas.d.ts +198 -0
  31. package/dist/schemas.d.ts.map +1 -0
  32. package/dist/schemas.js +75 -0
  33. package/dist/schemas.js.map +1 -0
  34. package/dist/session/session-manager.d.ts +117 -0
  35. package/dist/session/session-manager.d.ts.map +1 -0
  36. package/dist/session/session-manager.js +243 -0
  37. package/dist/session/session-manager.js.map +1 -0
  38. package/dist/session/session.d.ts +99 -0
  39. package/dist/session/session.d.ts.map +1 -0
  40. package/dist/session/session.js +271 -0
  41. package/dist/session/session.js.map +1 -0
  42. package/dist/session/types.d.ts +107 -0
  43. package/dist/session/types.d.ts.map +1 -0
  44. package/dist/session/types.js +33 -0
  45. package/dist/session/types.js.map +1 -0
  46. package/dist/streaming/output-parser.d.ts +91 -0
  47. package/dist/streaming/output-parser.d.ts.map +1 -0
  48. package/dist/streaming/output-parser.js +321 -0
  49. package/dist/streaming/output-parser.js.map +1 -0
  50. package/dist/streaming/output-stream.d.ts +45 -0
  51. package/dist/streaming/output-stream.d.ts.map +1 -0
  52. package/dist/streaming/output-stream.js +222 -0
  53. package/dist/streaming/output-stream.js.map +1 -0
  54. package/dist/streaming/types.d.ts +89 -0
  55. package/dist/streaming/types.d.ts.map +1 -0
  56. package/dist/streaming/types.js +47 -0
  57. package/dist/streaming/types.js.map +1 -0
  58. package/dist/types.d.ts +267 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +33 -0
  61. package/dist/types.js.map +1 -0
  62. 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"}