@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 +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/launch/claude-code-launch-plugin.d.ts +27 -0
- package/dist/launch/claude-code-launch-plugin.d.ts.map +1 -1
- package/dist/launch/claude-code-launch-plugin.js +31 -12
- package/dist/launch/claude-code-launch-plugin.js.map +1 -1
- package/dist/launch/route.d.ts +59 -0
- package/dist/launch/route.d.ts.map +1 -0
- package/dist/launch/route.js +77 -0
- package/dist/launch/route.js.map +1 -0
- package/package.json +1 -1
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWlD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code-launch-plugin.js","sourceRoot":"","sources":["../../src/launch/claude-code-launch-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
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",
|