@generacy-ai/generacy-plugin-claude-code 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -14,6 +14,9 @@ export { createOutputStream, createOutputStreamFromData, collectOutputChunks, fi
14
14
  export { OutputParser } from './streaming/output-parser.js';
15
15
  export { buildClaudeCommand, buildModeCommand, DEFAULT_INVOCATION_TIMEOUT_MS, DEFAULT_MAX_TURNS, } from './invocation/types.js';
16
16
  export { ClaudeCodeLaunchPlugin } from './launch/claude-code-launch-plugin.js';
17
+ export type { ClaudeCodeLaunchPluginOptions } from './launch/claude-code-launch-plugin.js';
17
18
  export { PTY_WRAPPER } from './launch/constants.js';
19
+ export { resolveRoute, GatewayRouteUnavailableError, DEFAULT_GATEWAY_CONFIG_DIR, _resetGatewayProvisionCacheForTests, } from './launch/route.js';
20
+ export type { Route } from './launch/route.js';
18
21
  export type { PhaseIntent, PrFeedbackIntent, MergeConflictIntent, ReviewIntent, RemediateIntent, ConversationTurnIntent, InvokeIntent, } from './launch/types.js';
19
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAEf,eAAe,EACf,KAAK,EACL,cAAc,EAEd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAEhB,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EAEf,eAAe,EACf,SAAS,EAET,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAEf,eAAe,EACf,KAAK,EACL,cAAc,EAEd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAEhB,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EAEf,eAAe,EACf,SAAS,EAET,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -21,4 +21,6 @@ export { buildClaudeCommand, buildModeCommand, DEFAULT_INVOCATION_TIMEOUT_MS, DE
21
21
  // Launch plugin (Phase 2 — AgentLauncher integration)
22
22
  export { ClaudeCodeLaunchPlugin } from './launch/claude-code-launch-plugin.js';
23
23
  export { PTY_WRAPPER } from './launch/constants.js';
24
+ // Launch route resolution (#1198 — gateway model routing)
25
+ export { resolveRoute, GatewayRouteUnavailableError, DEFAULT_GATEWAY_CONFIG_DIR, _resetGatewayProvisionCacheForTests, } from './launch/route.js';
24
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,cAAc;AACd,OAAO,EACL,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,sDAAsD;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,cAAc;AACd,OAAO,EACL,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,sDAAsD;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,0DAA0D;AAC1D,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,mBAAmB,CAAC"}
@@ -2,12 +2,28 @@ import type { ClaudeCodeIntent } from './types.js';
2
2
  /**
3
3
  * Structurally compatible with orchestrator's LaunchSpec.
4
4
  * Defined locally to avoid circular dependency between packages.
5
+ *
6
+ * `route` is additive (width subtyping keeps the plugin assignable to the
7
+ * orchestrator's `AgentLaunchPlugin`). It is deliberately typed as the literal
8
+ * `'gateway'` — the subscription route never stamps it, so it cannot be set on
9
+ * a subscription launch.
5
10
  */
6
11
  interface LaunchSpec {
7
12
  command: string;
8
13
  args: string[];
9
14
  env?: Record<string, string>;
10
15
  stdioProfile?: string;
16
+ route?: 'gateway';
17
+ }
18
+ /**
19
+ * Options for constructing a {@link ClaudeCodeLaunchPlugin}.
20
+ */
21
+ export interface ClaudeCodeLaunchPluginOptions {
22
+ /**
23
+ * Override the gateway config dir. Falls back to
24
+ * `GENERACY_CLAUDE_GATEWAY_CONFIG_DIR`, then the built-in default.
25
+ */
26
+ gatewayConfigDir?: string;
11
27
  }
12
28
  /**
13
29
  * Structurally compatible with orchestrator's OutputParser.
@@ -32,6 +48,17 @@ export declare class ClaudeCodeLaunchPlugin {
32
48
  readonly pluginId = "claude-code";
33
49
  readonly provider = "claude-code";
34
50
  readonly supportedKinds: readonly ["phase", "pr-feedback", "merge-conflict", "review", "remediate", "conversation-turn", "invoke"];
51
+ private readonly gatewayConfigDir;
52
+ constructor(options?: ClaudeCodeLaunchPluginOptions);
53
+ /**
54
+ * Apply the model-derived route to a builder's base spec.
55
+ *
56
+ * Subscription route → the base spec unchanged (no `env`, no `route`), so
57
+ * pre-change launches stay byte-identical. Gateway route → asserts the
58
+ * gateway config dir is provisioned, then injects `CLAUDE_CONFIG_DIR` and
59
+ * stamps `route: 'gateway'`.
60
+ */
61
+ private applyRoute;
35
62
  /**
36
63
  * Whether the installed CLI supports a delivery mechanism for reasoning effort.
37
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-launch-plugin.d.ts","sourceRoot":"","sources":["../../src/launch/claude-code-launch-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAQjB,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf;AASD;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,QAAQ,iBAAiB;IAClC,QAAQ,CAAC,QAAQ,iBAAiB;IAClC,QAAQ,CAAC,cAAc,4GAA6G;IAEpI;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,kBAAkB,IAAI,OAAO;IAmBpC;;;OAGG;IACH,MAAM,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAIvE,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAqBjD,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAa3D,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,2BAA2B;CA8BpC"}
1
+ {"version":3,"file":"claude-code-launch-plugin.d.ts","sourceRoot":"","sources":["../../src/launch/claude-code-launch-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAQjB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;GAQG;AACH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf;AASD;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,QAAQ,iBAAiB;IAClC,QAAQ,CAAC,QAAQ,iBAAiB;IAClC,QAAQ,CAAC,cAAc,4GAA6G;IAEpI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,OAAO,CAAC,EAAE,6BAA6B;IAInD;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,kBAAkB,IAAI,OAAO;IAmBpC;;;OAGG;IACH,MAAM,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAIvE,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAqBjD,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAa3D,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,2BAA2B;CA8BpC"}
@@ -1,5 +1,6 @@
1
1
  import { execFileSync } from 'node:child_process';
2
2
  import { PHASE_TO_COMMAND, PTY_WRAPPER } from './constants.js';
3
+ import { resolveRoute, resolveGatewayConfigDir, assertGatewayProvisioned } from './route.js';
3
4
  /**
4
5
  * Process-lifetime cache for the `--effort` capability probe. `undefined`
5
6
  * means the probe has not yet run; `true`/`false` is the resolved answer.
@@ -22,6 +23,24 @@ export class ClaudeCodeLaunchPlugin {
22
23
  pluginId = 'claude-code';
23
24
  provider = 'claude-code';
24
25
  supportedKinds = ['phase', 'pr-feedback', 'merge-conflict', 'review', 'remediate', 'conversation-turn', 'invoke'];
26
+ gatewayConfigDir;
27
+ constructor(options) {
28
+ this.gatewayConfigDir = resolveGatewayConfigDir(options?.gatewayConfigDir);
29
+ }
30
+ /**
31
+ * Apply the model-derived route to a builder's base spec.
32
+ *
33
+ * Subscription route → the base spec unchanged (no `env`, no `route`), so
34
+ * pre-change launches stay byte-identical. Gateway route → asserts the
35
+ * gateway config dir is provisioned, then injects `CLAUDE_CONFIG_DIR` and
36
+ * stamps `route: 'gateway'`.
37
+ */
38
+ applyRoute(spec, model) {
39
+ if (resolveRoute(model) === 'subscription')
40
+ return spec;
41
+ assertGatewayProvisioned(model, this.gatewayConfigDir);
42
+ return { ...spec, env: { CLAUDE_CONFIG_DIR: this.gatewayConfigDir }, route: 'gateway' };
43
+ }
25
44
  /**
26
45
  * Whether the installed CLI supports a delivery mechanism for reasoning effort.
27
46
  *
@@ -115,11 +134,11 @@ export class ClaudeCodeLaunchPlugin {
115
134
  }
116
135
  const command = PHASE_TO_COMMAND[intent.phase];
117
136
  args.push(`${command} ${intent.prompt}`);
118
- return {
137
+ return this.applyRoute({
119
138
  command: 'claude',
120
139
  args,
121
140
  stdioProfile: 'default',
122
- };
141
+ }, intent.model);
123
142
  }
124
143
  buildPrFeedbackLaunch(intent) {
125
144
  const args = [
@@ -135,11 +154,11 @@ export class ClaudeCodeLaunchPlugin {
135
154
  args.push('--effort', intent.effort);
136
155
  }
137
156
  args.push(intent.prompt);
138
- return {
157
+ return this.applyRoute({
139
158
  command: 'claude',
140
159
  args,
141
160
  stdioProfile: 'default',
142
- };
161
+ }, intent.model);
143
162
  }
144
163
  buildMergeConflictLaunch(intent) {
145
164
  // Same shape as pr-feedback — one bounded agent turn with
@@ -158,11 +177,11 @@ export class ClaudeCodeLaunchPlugin {
158
177
  args.push('--effort', intent.effort);
159
178
  }
160
179
  args.push(intent.prompt);
161
- return {
180
+ return this.applyRoute({
162
181
  command: 'claude',
163
182
  args,
164
183
  stdioProfile: 'default',
165
- };
184
+ }, intent.model);
166
185
  }
167
186
  buildReviewLaunch(intent) {
168
187
  // Same shape as pr-feedback / merge-conflict — one bounded
@@ -183,11 +202,11 @@ export class ClaudeCodeLaunchPlugin {
183
202
  args.push('--effort', intent.effort);
184
203
  }
185
204
  args.push(intent.prompt);
186
- return {
205
+ return this.applyRoute({
187
206
  command: 'claude',
188
207
  args,
189
208
  stdioProfile: 'default',
190
- };
209
+ }, intent.model);
191
210
  }
192
211
  buildRemediateLaunch(intent) {
193
212
  // Byte-identical to buildReviewLaunch — one bounded agent turn with an
@@ -207,11 +226,11 @@ export class ClaudeCodeLaunchPlugin {
207
226
  args.push('--effort', intent.effort);
208
227
  }
209
228
  args.push(intent.prompt);
210
- return {
229
+ return this.applyRoute({
211
230
  command: 'claude',
212
231
  args,
213
232
  stdioProfile: 'default',
214
- };
233
+ }, intent.model);
215
234
  }
216
235
  buildInvokeLaunch(intent) {
217
236
  return {
@@ -239,11 +258,11 @@ export class ClaudeCodeLaunchPlugin {
239
258
  if (intent.effort) {
240
259
  claudeArgs.push('--effort', intent.effort);
241
260
  }
242
- return {
261
+ return this.applyRoute({
243
262
  command: 'python3',
244
263
  args: ['-u', '-c', PTY_WRAPPER, ...claudeArgs],
245
264
  stdioProfile: 'interactive',
246
- };
265
+ }, intent.model);
247
266
  }
248
267
  }
249
268
  //# sourceMappingURL=claude-code-launch-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-launch-plugin.js","sourceRoot":"","sources":["../../src/launch/claude-code-launch-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-launch-plugin.js","sourceRoot":"","sources":["../../src/launch/claude-code-launch-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWlD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAsC7F;;;;GAIG;AACH,IAAI,oBAAoB,GAAwB,SAAS,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAsB;IACxB,QAAQ,GAAG,aAAa,CAAC;IACzB,QAAQ,GAAG,aAAa,CAAC;IACzB,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,CAAU,CAAC;IAEnH,gBAAgB,CAAS;IAE1C,YAAY,OAAuC;QACjD,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACK,UAAU,CAAC,IAAgB,EAAE,KAAc;QACjD,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QACxD,wBAAwB,CAAC,KAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,kBAAkB;QACvB,IAAI,oBAAoB,KAAK,SAAS;YAAE,OAAO,oBAAoB,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;gBAChD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC;YACH,oBAAoB,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;YAC3E,oEAAoE;YACpE,yEAAyE;YACzE,uEAAuE;YACvE,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,8BAA8B,CAAC,KAA0B;QAC9D,oBAAoB,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,MAAwB;QAClC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAClD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACxC;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA6B,MAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,OAAyB;QAC1C,kEAAkE;QAClE,6DAA6D;QAC7D,OAAO;YACL,YAAY,CAAC,OAA4B,EAAE,KAAa;gBACtD,qBAAqB;YACvB,CAAC;YACD,KAAK;gBACH,QAAQ;YACV,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAmB;QAC1C,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,iBAAiB,EAAE,aAAa;YAChC,gCAAgC;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,QAAQ;YACjB,IAAI;YACJ,YAAY,EAAE,SAAS;SACxB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,qBAAqB,CAAC,MAAwB;QACpD,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,iBAAiB,EAAE,aAAa;YAChC,gCAAgC;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,QAAQ;YACjB,IAAI;YACJ,YAAY,EAAE,SAAS;SACxB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,wBAAwB,CAAC,MAA2B;QAC1D,0DAA0D;QAC1D,sEAAsE;QACtE,wDAAwD;QACxD,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,iBAAiB,EAAE,aAAa;YAChC,gCAAgC;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,QAAQ;YACjB,IAAI;YACJ,YAAY,EAAE,SAAS;SACxB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,iBAAiB,CAAC,MAAoB;QAC5C,2DAA2D;QAC3D,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,sBAAsB;QACtB,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,iBAAiB,EAAE,aAAa;YAChC,gCAAgC;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,QAAQ;YACjB,IAAI;YACJ,YAAY,EAAE,SAAS;SACxB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAAC,MAAuB;QAClD,uEAAuE;QACvE,kEAAkE;QAClE,6EAA6E;QAC7E,gFAAgF;QAChF,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,iBAAiB,EAAE,aAAa;YAChC,gCAAgC;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,QAAQ;YACjB,IAAI;YACJ,YAAY,EAAE,SAAS;SACxB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEO,iBAAiB,CAAC,MAAoB;QAC5C,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,CAAC,SAAS,EAAE,gCAAgC,EAAE,MAAM,CAAC,OAAO,CAAC;YACnE,YAAY,EAAE,SAAS;SACxB,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,MAA8B;QAChE,MAAM,UAAU,GAAG;YACjB,QAAQ;YACR,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,iBAAiB,EAAE,aAAa;YAChC,WAAW;SACZ,CAAC;QAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;YAC9C,YAAY,EAAE,aAAa;SAC5B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Which config/auth route a launch takes.
3
+ *
4
+ * - `subscription`: the CLI's default config dir; Anthropic-native models the
5
+ * CLI validates against `api.anthropic.com`.
6
+ * - `gateway`: a second config dir whose `settings.json` points the CLI at the
7
+ * Generacy LLM gateway (`ANTHROPIC_BASE_URL`), letting any provider/model
8
+ * string through.
9
+ */
10
+ export type Route = 'subscription' | 'gateway';
11
+ /**
12
+ * Default location of the gateway config dir. The gateway `settings.json` is
13
+ * provisioned out-of-band; this feature only checks for its presence.
14
+ */
15
+ export declare const DEFAULT_GATEWAY_CONFIG_DIR = "/home/node/.claude-gateway";
16
+ /**
17
+ * Resolve the launch route purely from the model name.
18
+ *
19
+ * A provider-qualified model (containing `/`, e.g. `openai/gpt-5.5`) routes to
20
+ * the gateway; a bare Anthropic id/alias (`opus`, `claude-sonnet-4-5[1m]`) —
21
+ * and an absent model — routes to the subscription config dir.
22
+ *
23
+ * Pure: no I/O, no env reads, no cache. Consumers needing route comparison
24
+ * (e.g. #1199 session invalidation) MUST call this directly — `LaunchSpec.route`
25
+ * is `undefined` on subscription launches and unsuitable for comparison.
26
+ */
27
+ export declare function resolveRoute(model?: string): Route;
28
+ /**
29
+ * Resolve the gateway config dir.
30
+ *
31
+ * Precedence (nullish only — an explicit empty string wins over the env var):
32
+ * explicit option > `GENERACY_CLAUDE_GATEWAY_CONFIG_DIR` > default.
33
+ * Called once per plugin construction, not per launch.
34
+ */
35
+ export declare function resolveGatewayConfigDir(explicit?: string): string;
36
+ /**
37
+ * Raised when a gateway-routed model is launched but the gateway config dir has
38
+ * no `settings.json` — the CLI would silently fall back to the subscription
39
+ * config and fail to reach the gateway.
40
+ */
41
+ export declare class GatewayRouteUnavailableError extends Error {
42
+ readonly name = "GatewayRouteUnavailableError";
43
+ readonly model: string;
44
+ readonly gatewayConfigDir: string;
45
+ constructor(model: string, gatewayConfigDir: string);
46
+ }
47
+ /**
48
+ * Assert the gateway config dir is provisioned, throwing otherwise.
49
+ *
50
+ * - dir in the positive cache → return without touching the filesystem
51
+ * - `<dir>/settings.json` exists → cache the dir + return
52
+ * - `<dir>/settings.json` absent → throw `GatewayRouteUnavailableError`
53
+ */
54
+ export declare function assertGatewayProvisioned(model: string, gatewayConfigDir: string): void;
55
+ /**
56
+ * Test-only: clear the positive provision cache. Not part of the public API.
57
+ */
58
+ export declare function _resetGatewayProvisionCacheForTests(): void;
59
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/launch/route.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,MAAM,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAEtB,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;CAQpD;AAUD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAOtF;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
@@ -0,0 +1,77 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ /**
4
+ * Default location of the gateway config dir. The gateway `settings.json` is
5
+ * provisioned out-of-band; this feature only checks for its presence.
6
+ */
7
+ export const DEFAULT_GATEWAY_CONFIG_DIR = '/home/node/.claude-gateway';
8
+ /**
9
+ * Resolve the launch route purely from the model name.
10
+ *
11
+ * A provider-qualified model (containing `/`, e.g. `openai/gpt-5.5`) routes to
12
+ * the gateway; a bare Anthropic id/alias (`opus`, `claude-sonnet-4-5[1m]`) —
13
+ * and an absent model — routes to the subscription config dir.
14
+ *
15
+ * Pure: no I/O, no env reads, no cache. Consumers needing route comparison
16
+ * (e.g. #1199 session invalidation) MUST call this directly — `LaunchSpec.route`
17
+ * is `undefined` on subscription launches and unsuitable for comparison.
18
+ */
19
+ export function resolveRoute(model) {
20
+ return model !== undefined && model.includes('/') ? 'gateway' : 'subscription';
21
+ }
22
+ /**
23
+ * Resolve the gateway config dir.
24
+ *
25
+ * Precedence (nullish only — an explicit empty string wins over the env var):
26
+ * explicit option > `GENERACY_CLAUDE_GATEWAY_CONFIG_DIR` > default.
27
+ * Called once per plugin construction, not per launch.
28
+ */
29
+ export function resolveGatewayConfigDir(explicit) {
30
+ return explicit ?? process.env.GENERACY_CLAUDE_GATEWAY_CONFIG_DIR ?? DEFAULT_GATEWAY_CONFIG_DIR;
31
+ }
32
+ /**
33
+ * Raised when a gateway-routed model is launched but the gateway config dir has
34
+ * no `settings.json` — the CLI would silently fall back to the subscription
35
+ * config and fail to reach the gateway.
36
+ */
37
+ export class GatewayRouteUnavailableError extends Error {
38
+ name = 'GatewayRouteUnavailableError';
39
+ model;
40
+ gatewayConfigDir;
41
+ constructor(model, gatewayConfigDir) {
42
+ super(`Model "${model}" requires the gateway route, but ${join(gatewayConfigDir, 'settings.json')} was not found. ` +
43
+ `Provision the gateway config dir (see GENERACY_LLM_GATEWAY_URL) or use an Anthropic model.`);
44
+ this.model = model;
45
+ this.gatewayConfigDir = gatewayConfigDir;
46
+ }
47
+ }
48
+ /**
49
+ * Process-lifetime, positive-only cache of gateway config dirs already
50
+ * confirmed to hold a `settings.json`. Keyed by dir path. A missing dir is
51
+ * NEVER cached, so provisioning takes effect on the next launch without an
52
+ * invalidation step.
53
+ */
54
+ const provisionedDirs = new Set();
55
+ /**
56
+ * Assert the gateway config dir is provisioned, throwing otherwise.
57
+ *
58
+ * - dir in the positive cache → return without touching the filesystem
59
+ * - `<dir>/settings.json` exists → cache the dir + return
60
+ * - `<dir>/settings.json` absent → throw `GatewayRouteUnavailableError`
61
+ */
62
+ export function assertGatewayProvisioned(model, gatewayConfigDir) {
63
+ if (provisionedDirs.has(gatewayConfigDir))
64
+ return;
65
+ if (existsSync(join(gatewayConfigDir, 'settings.json'))) {
66
+ provisionedDirs.add(gatewayConfigDir);
67
+ return;
68
+ }
69
+ throw new GatewayRouteUnavailableError(model, gatewayConfigDir);
70
+ }
71
+ /**
72
+ * Test-only: clear the positive provision cache. Not part of the public API.
73
+ */
74
+ export function _resetGatewayProvisionCacheForTests() {
75
+ provisionedDirs.clear();
76
+ }
77
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/launch/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAiB;IACvD,OAAO,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,0BAA0B,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAC5C,IAAI,GAAG,8BAA8B,CAAC;IACtC,KAAK,CAAS;IACd,gBAAgB,CAAS;IAElC,YAAY,KAAa,EAAE,gBAAwB;QACjD,KAAK,CACH,UAAU,KAAK,qCAAqC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,kBAAkB;YAC3G,4FAA4F,CAC/F,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,gBAAwB;IAC9E,IAAI,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO;IAClD,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QACxD,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,IAAI,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generacy-ai/generacy-plugin-claude-code",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Claude Code agent platform plugin for Generacy - invokes Claude Code agents in isolated Docker containers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",