@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,89 @@
1
+ /**
2
+ * @generacy-ai/generacy-plugin-claude-code
3
+ *
4
+ * Internal types for output streaming.
5
+ */
6
+ import type { OutputChunk, OutputChunkType, OutputMetadata, UrgencyLevel, QuestionPayload } from '../types.js';
7
+ export type { OutputChunk, OutputChunkType, OutputMetadata, UrgencyLevel, QuestionPayload, };
8
+ /**
9
+ * Raw output line from Claude Code JSON output.
10
+ * This represents the structure of each JSON line from `claude --output json`.
11
+ */
12
+ export interface RawClaudeOutput {
13
+ /** Type of the output message */
14
+ type: RawOutputType;
15
+ /** Timestamp of the output (ISO string) */
16
+ timestamp?: string;
17
+ /** Content varies by type */
18
+ content?: unknown;
19
+ /** Tool name for tool-related messages */
20
+ tool?: string;
21
+ /** Tool input for tool calls */
22
+ input?: unknown;
23
+ /** Tool result for tool results */
24
+ result?: unknown;
25
+ /** Error message if type is error */
26
+ error?: string;
27
+ /** Exit code for completion */
28
+ exit_code?: number;
29
+ /** File path for file-related operations */
30
+ file?: string;
31
+ /** Question text for assistant messages that ask questions */
32
+ question?: string;
33
+ /** Whether the message is a question */
34
+ is_question?: boolean;
35
+ /** Urgency level for questions */
36
+ urgency?: string;
37
+ /** Choices for questions */
38
+ choices?: string[];
39
+ }
40
+ /**
41
+ * Raw output types from Claude Code.
42
+ */
43
+ export type RawOutputType = 'system' | 'assistant' | 'user' | 'tool_use' | 'tool_result' | 'error' | 'result' | 'status';
44
+ /**
45
+ * Parser state for tracking multi-line content.
46
+ */
47
+ export interface ParserState {
48
+ /** Buffer for incomplete JSON lines */
49
+ buffer: string;
50
+ /** Whether we're currently in a tool execution context */
51
+ inToolExecution: boolean;
52
+ /** Current tool name if in tool execution */
53
+ currentToolName?: string;
54
+ /** Accumulated output for current context */
55
+ accumulatedOutput: string[];
56
+ }
57
+ /**
58
+ * Output stream options.
59
+ */
60
+ export interface OutputStreamOptions {
61
+ /** Whether to include raw stdout/stderr chunks */
62
+ includeRaw?: boolean;
63
+ /** Whether to parse tool calls and results */
64
+ parseTools?: boolean;
65
+ /** Custom question detector function */
66
+ questionDetector?: (content: string) => QuestionPayload | null;
67
+ }
68
+ /**
69
+ * Output event emitted by the stream.
70
+ */
71
+ export interface OutputEvent {
72
+ /** The parsed output chunk */
73
+ chunk: OutputChunk;
74
+ /** Raw line that produced this chunk (if available) */
75
+ rawLine?: string;
76
+ }
77
+ /**
78
+ * Map from raw output type to output chunk type.
79
+ */
80
+ export declare const OUTPUT_TYPE_MAP: Record<RawOutputType, OutputChunkType>;
81
+ /**
82
+ * Map urgency strings to UrgencyLevel.
83
+ */
84
+ export declare function parseUrgency(urgency?: string): UrgencyLevel;
85
+ /**
86
+ * Default parser state.
87
+ */
88
+ export declare function createInitialParserState(): ParserState;
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,IAAI,EAAE,aAAa,CAAC;IAEpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,WAAW,GACX,MAAM,GACN,UAAU,GACV,aAAa,GACb,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAC;IAEzB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe,GAAG,IAAI,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,KAAK,EAAE,WAAW,CAAC;IAEnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CASlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAc3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAMtD"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @generacy-ai/generacy-plugin-claude-code
3
+ *
4
+ * Internal types for output streaming.
5
+ */
6
+ /**
7
+ * Map from raw output type to output chunk type.
8
+ */
9
+ export const OUTPUT_TYPE_MAP = {
10
+ system: 'stdout',
11
+ assistant: 'stdout',
12
+ user: 'stdout',
13
+ tool_use: 'tool_call',
14
+ tool_result: 'tool_result',
15
+ error: 'error',
16
+ result: 'complete',
17
+ status: 'stdout',
18
+ };
19
+ /**
20
+ * Map urgency strings to UrgencyLevel.
21
+ */
22
+ export function parseUrgency(urgency) {
23
+ switch (urgency?.toLowerCase()) {
24
+ case 'blocking_now':
25
+ case 'high':
26
+ case 'urgent':
27
+ return 'blocking_now';
28
+ case 'blocking_soon':
29
+ case 'medium':
30
+ return 'blocking_soon';
31
+ case 'when_available':
32
+ case 'low':
33
+ default:
34
+ return 'when_available';
35
+ }
36
+ }
37
+ /**
38
+ * Default parser state.
39
+ */
40
+ export function createInitialParserState() {
41
+ return {
42
+ buffer: '',
43
+ inToolExecution: false,
44
+ accumulatedOutput: [],
45
+ };
46
+ }
47
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuHH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2C;IACrE,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,QAAQ,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,cAAc,CAAC;QACpB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC;QACxB,KAAK,eAAe,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC;QACzB,KAAK,gBAAgB,CAAC;QACtB,KAAK,KAAK,CAAC;QACX;YACE,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,EAAE;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * @generacy-ai/generacy-plugin-claude-code
3
+ *
4
+ * Core type definitions for Claude Code agent integration.
5
+ */
6
+ /**
7
+ * Represents an active agent session.
8
+ */
9
+ export interface Session {
10
+ /** Unique session identifier */
11
+ readonly id: string;
12
+ /** Current session status */
13
+ readonly status: SessionStatus;
14
+ /** When the session was created */
15
+ readonly createdAt: Date;
16
+ /** When the session was last active */
17
+ readonly lastActiveAt: Date;
18
+ }
19
+ export type SessionStatus = 'created' | 'running' | 'executing' | 'awaiting_input' | 'terminated';
20
+ /**
21
+ * Internal session state with full state machine representation.
22
+ */
23
+ export type SessionState = {
24
+ status: 'created';
25
+ } | {
26
+ status: 'running';
27
+ containerId: string;
28
+ } | {
29
+ status: 'executing';
30
+ invocationId: string;
31
+ containerId: string;
32
+ } | {
33
+ status: 'awaiting_input';
34
+ question: QuestionPayload;
35
+ containerId: string;
36
+ } | {
37
+ status: 'terminated';
38
+ reason: TerminationReason;
39
+ };
40
+ export type TerminationReason = 'user_requested' | 'timeout' | 'container_crashed' | 'error';
41
+ /**
42
+ * Internal session representation with full state.
43
+ */
44
+ export interface InternalSession {
45
+ /** Unique session identifier */
46
+ id: string;
47
+ /** Current session state */
48
+ state: SessionState;
49
+ /** Container configuration used for this session */
50
+ containerConfig: ContainerConfig;
51
+ /** Docker container ID when running */
52
+ containerId?: string;
53
+ /** When the session was created */
54
+ createdAt: Date;
55
+ /** When the session was last active */
56
+ lastActiveAt: Date;
57
+ /** Default options for invocations in this session */
58
+ defaultOptions: InvokeOptions;
59
+ }
60
+ /**
61
+ * Configuration for the Docker container running the agent.
62
+ */
63
+ export interface ContainerConfig {
64
+ /** Docker image to use (e.g., 'generacy/dev-container:latest') */
65
+ image: string;
66
+ /** Working directory inside the container */
67
+ workdir: string;
68
+ /** Environment variables to set */
69
+ env: Record<string, string>;
70
+ /** Volume mounts */
71
+ mounts: Mount[];
72
+ /** Docker network name */
73
+ network: string;
74
+ /** Optional resource limits */
75
+ resources?: ResourceLimits;
76
+ }
77
+ export interface Mount {
78
+ /** Host path or volume name */
79
+ source: string;
80
+ /** Container path */
81
+ target: string;
82
+ /** Mount as read-only */
83
+ readonly?: boolean;
84
+ }
85
+ export interface ResourceLimits {
86
+ /** Memory limit in bytes */
87
+ memory?: number;
88
+ /** CPU quota (e.g., 1.5 for 1.5 CPUs) */
89
+ cpus?: number;
90
+ }
91
+ /**
92
+ * Parameters for invoking Claude Code.
93
+ */
94
+ export interface InvokeParams {
95
+ /** The prompt to send to the agent */
96
+ prompt: string;
97
+ /** Optional session ID for session-based invocation */
98
+ sessionId?: string;
99
+ /** Optional overrides for invoke options */
100
+ options?: Partial<InvokeOptions>;
101
+ }
102
+ /**
103
+ * Options that control invocation behavior.
104
+ */
105
+ export interface InvokeOptions {
106
+ /** Agency mode to set before invocation */
107
+ mode?: string;
108
+ /** Maximum execution time in milliseconds (default: 300000) */
109
+ timeout?: number;
110
+ /** Tool whitelist (empty array = all tools allowed) */
111
+ tools?: string[];
112
+ /** Serialized context for workflow continuity */
113
+ context?: string;
114
+ /** Associated GitHub issue number */
115
+ issueNumber?: number;
116
+ }
117
+ /**
118
+ * Result of a completed invocation.
119
+ */
120
+ export interface InvocationResult {
121
+ /** Whether the invocation completed successfully */
122
+ success: boolean;
123
+ /** Session ID used for this invocation */
124
+ sessionId: string;
125
+ /** Unique invocation identifier */
126
+ invocationId: string;
127
+ /** Exit code from Claude Code process */
128
+ exitCode: number;
129
+ /** Summary of what was accomplished (if available) */
130
+ summary?: string;
131
+ /** Files that were modified during invocation */
132
+ filesModified?: string[];
133
+ /** Duration in milliseconds */
134
+ duration: number;
135
+ /** Error details if invocation failed */
136
+ error?: InvocationError;
137
+ }
138
+ /**
139
+ * A chunk of output from the agent.
140
+ */
141
+ export interface OutputChunk {
142
+ /** Type of output chunk */
143
+ type: OutputChunkType;
144
+ /** When this chunk was received */
145
+ timestamp: Date;
146
+ /** Type-specific payload */
147
+ data: unknown;
148
+ /** Optional metadata */
149
+ metadata?: OutputMetadata;
150
+ }
151
+ export type OutputChunkType = 'stdout' | 'stderr' | 'tool_call' | 'tool_result' | 'question' | 'complete' | 'error';
152
+ export interface OutputMetadata {
153
+ /** Tool name for tool_call/tool_result chunks */
154
+ toolName?: string;
155
+ /** File path for file-related operations */
156
+ filePath?: string;
157
+ /** Whether the operation succeeded (for tool_result) */
158
+ isSuccess?: boolean;
159
+ /** Urgency level for question chunks */
160
+ urgency?: UrgencyLevel;
161
+ }
162
+ /**
163
+ * Urgency levels for human decision questions.
164
+ * Maps to Humancy decision framework urgency levels.
165
+ */
166
+ export type UrgencyLevel = 'blocking_now' | 'blocking_soon' | 'when_available';
167
+ /**
168
+ * Payload for question chunks requiring human input.
169
+ */
170
+ export interface QuestionPayload {
171
+ /** The question text */
172
+ question: string;
173
+ /** How urgently the answer is needed */
174
+ urgency: UrgencyLevel;
175
+ /** Optional predefined choices */
176
+ choices?: string[];
177
+ /** Additional context for the question */
178
+ context?: string;
179
+ /** When the question was asked */
180
+ askedAt: Date;
181
+ }
182
+ /**
183
+ * Detailed error information for failed invocations.
184
+ */
185
+ export interface InvocationError {
186
+ /** Error classification code */
187
+ code: ErrorCode;
188
+ /** Whether this error is transient (retryable) */
189
+ isTransient: boolean;
190
+ /** Human-readable error message */
191
+ message: string;
192
+ /** Additional error context */
193
+ context?: unknown;
194
+ }
195
+ /**
196
+ * Error classification codes.
197
+ */
198
+ export type ErrorCode = 'CONTAINER_CRASHED' | 'API_TIMEOUT' | 'RATE_LIMITED' | 'AUTH_FAILED' | 'UNKNOWN';
199
+ /**
200
+ * Main plugin interface for Claude Code agent invocation.
201
+ */
202
+ export interface ClaudeCodePluginInterface {
203
+ /**
204
+ * Invoke Claude Code with parameters.
205
+ * Creates an ephemeral session if no sessionId provided.
206
+ */
207
+ invoke(params: InvokeParams): Promise<InvocationResult>;
208
+ /**
209
+ * Convenience method for simple prompt invocation.
210
+ */
211
+ invokeWithPrompt(prompt: string, options?: InvokeOptions): Promise<InvocationResult>;
212
+ /**
213
+ * Start a new session with the given container configuration.
214
+ */
215
+ startSession(container: ContainerConfig): Promise<Session>;
216
+ /**
217
+ * Continue an existing session with a new prompt.
218
+ * Used to provide answers to questions.
219
+ */
220
+ continueSession(sessionId: string, prompt: string): Promise<InvocationResult>;
221
+ /**
222
+ * End a session and clean up resources.
223
+ */
224
+ endSession(sessionId: string): Promise<void>;
225
+ /**
226
+ * Stream output from an active session.
227
+ * Yields OutputChunks as they are received from the agent.
228
+ */
229
+ streamOutput(sessionId: string): AsyncIterable<OutputChunk>;
230
+ /**
231
+ * Set the Agency mode for a session.
232
+ * Must be called before invoke for mode to take effect.
233
+ */
234
+ setMode(sessionId: string, mode: string): Promise<void>;
235
+ }
236
+ /**
237
+ * Type guard for question chunks.
238
+ */
239
+ export declare function isQuestionChunk(chunk: OutputChunk): chunk is OutputChunk & {
240
+ type: 'question';
241
+ data: QuestionPayload;
242
+ };
243
+ /**
244
+ * Type guard for error chunks.
245
+ */
246
+ export declare function isErrorChunk(chunk: OutputChunk): chunk is OutputChunk & {
247
+ type: 'error';
248
+ data: {
249
+ message: string;
250
+ code?: string;
251
+ };
252
+ };
253
+ /**
254
+ * Type guard for running session state.
255
+ */
256
+ export declare function isSessionRunning(state: SessionState): state is SessionState & {
257
+ status: 'running' | 'executing' | 'awaiting_input';
258
+ containerId: string;
259
+ };
260
+ /**
261
+ * Type guard for terminated session state.
262
+ */
263
+ export declare function isSessionTerminated(state: SessionState): state is SessionState & {
264
+ status: 'terminated';
265
+ reason: TerminationReason;
266
+ };
267
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @generacy-ai/generacy-plugin-claude-code
3
+ *
4
+ * Core type definitions for Claude Code agent integration.
5
+ */
6
+ // =============================================================================
7
+ // Type Guards
8
+ // =============================================================================
9
+ /**
10
+ * Type guard for question chunks.
11
+ */
12
+ export function isQuestionChunk(chunk) {
13
+ return chunk.type === 'question' && chunk.data !== null;
14
+ }
15
+ /**
16
+ * Type guard for error chunks.
17
+ */
18
+ export function isErrorChunk(chunk) {
19
+ return chunk.type === 'error';
20
+ }
21
+ /**
22
+ * Type guard for running session state.
23
+ */
24
+ export function isSessionRunning(state) {
25
+ return ['running', 'executing', 'awaiting_input'].includes(state.status);
26
+ }
27
+ /**
28
+ * Type guard for terminated session state.
29
+ */
30
+ export function isSessionTerminated(state) {
31
+ return state.status === 'terminated';
32
+ }
33
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8UH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB;IAIhD,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAkB;IAI7C,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAIlD,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAmB;IAIrD,OAAO,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC;AACvC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@generacy-ai/generacy-plugin-claude-code",
3
+ "version": "0.0.0-preview-20260304013206",
4
+ "description": "Claude Code agent platform plugin for Generacy - invokes Claude Code agents in isolated Docker containers",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "dependencies": {
15
+ "@generacy-ai/latency": "^0.1.0",
16
+ "@generacy-ai/latency-plugin-dev-agent": "^0.1.0",
17
+ "dockerode": "^4.0.0",
18
+ "pino": "^9.0.0",
19
+ "zod": "^3.23.0"
20
+ },
21
+ "devDependencies": {
22
+ "@types/dockerode": "^3.3.0",
23
+ "@types/node": "^20.0.0",
24
+ "typescript": "^5.6.0",
25
+ "vitest": "^3.2.4",
26
+ "tsx": "^4.0.0"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.0.0"
30
+ },
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "keywords": [
35
+ "claude-code",
36
+ "agent",
37
+ "plugin",
38
+ "docker",
39
+ "generacy"
40
+ ],
41
+ "license": "Apache-2.0",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/generacy-ai/generacy.git",
45
+ "directory": "packages/generacy-plugin-claude-code"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "scripts": {
51
+ "build": "tsc",
52
+ "dev": "tsx watch src/index.ts",
53
+ "test": "vitest run",
54
+ "test:watch": "vitest",
55
+ "lint": "eslint src tests --ext .ts",
56
+ "typecheck": "tsc --noEmit"
57
+ }
58
+ }