offrouter-cli 0.4.2 → 0.5.1
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/commands/hooks.d.ts.map +1 -1
- package/dist/commands/hooks.js +8 -4
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/route.d.ts +7 -0
- package/dist/commands/route.d.ts.map +1 -1
- package/dist/commands/route.js +87 -4
- package/dist/commands/route.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAoChD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CAoFN"}
|
package/dist/commands/hooks.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { loadConfig } from "offrouter-core";
|
|
1
|
+
import { loadConfig, FileSecretStore, resolveOffRouterHome } from "offrouter-core";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { buildSubscriptionCandidates } from "./route.js";
|
|
2
4
|
import { runUserPromptSubmitHook } from "offrouter-adapter-claude";
|
|
3
5
|
const HOOK_EVENT = "UserPromptSubmit";
|
|
4
6
|
function noActiveProfileOutput() {
|
|
@@ -52,12 +54,14 @@ export function registerHooksCommand(program, ctx) {
|
|
|
52
54
|
workspaceTrusted: trustedWorkspace,
|
|
53
55
|
});
|
|
54
56
|
const profileOverlay = config.profiles[profile];
|
|
57
|
+
const secretStore = new FileSecretStore({
|
|
58
|
+
filePath: join(resolveOffRouterHome({ env }), "secrets.json"),
|
|
59
|
+
});
|
|
60
|
+
const candidates = await buildSubscriptionCandidates(profile, secretStore);
|
|
55
61
|
const result = await runUserPromptSubmitHook(stdin, {
|
|
56
62
|
profile,
|
|
57
63
|
policy: config.policy,
|
|
58
|
-
|
|
59
|
-
// profile denials and configuration-needed context.
|
|
60
|
-
candidates: [],
|
|
64
|
+
candidates,
|
|
61
65
|
trustedWorkspace,
|
|
62
66
|
routeConstraints: {
|
|
63
67
|
subscriptionFirst: profileOverlay?.subscriptionFirst ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/route.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import { FileSecretStore, type ProviderCandidate } from "offrouter-core";
|
|
2
3
|
import type { CommandContext } from "./init.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build subscription candidates for the route explain command.
|
|
6
|
+
* Checks stored OAuth tokens and returns candidates with real
|
|
7
|
+
* auth-status data if tokens are available.
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildSubscriptionCandidates(profile: string, secretStore: FileSecretStore): Promise<ProviderCandidate[]>;
|
|
3
10
|
export declare function registerRouteCommand(program: Command, ctx: () => CommandContext): void;
|
|
4
11
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,eAAe,EAMf,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuF9B;AA6CD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,cAAc,GACxB,IAAI,CAuIN"}
|
package/dist/commands/route.js
CHANGED
|
@@ -1,8 +1,88 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { FileUsageStore, loadConfig, resolveOffRouterHome, routeRequest, } from "offrouter-core";
|
|
3
|
+
import { FileSecretStore, FileUsageStore, loadConfig, resolveOffRouterHome, routeRequest, } from "offrouter-core";
|
|
4
4
|
import { formatConfigError } from "./config-error.js";
|
|
5
5
|
import { writeJson, writeText } from "./output.js";
|
|
6
|
+
/**
|
|
7
|
+
* Build subscription candidates for the route explain command.
|
|
8
|
+
* Checks stored OAuth tokens and returns candidates with real
|
|
9
|
+
* auth-status data if tokens are available.
|
|
10
|
+
*/
|
|
11
|
+
export async function buildSubscriptionCandidates(profile, secretStore) {
|
|
12
|
+
const candidates = [];
|
|
13
|
+
// Only check OAuth tokens for profiles that match known subscription providers.
|
|
14
|
+
const isClaudeProfile = profile.startsWith("claude");
|
|
15
|
+
const isCodexProfile = profile.startsWith("codex");
|
|
16
|
+
if (!isClaudeProfile && !isCodexProfile) {
|
|
17
|
+
return candidates;
|
|
18
|
+
}
|
|
19
|
+
// For claude profiles, check anthropic OAuth.
|
|
20
|
+
if (isClaudeProfile) {
|
|
21
|
+
const anthropicToken = await secretStore
|
|
22
|
+
.get("anthropic:oauth")
|
|
23
|
+
.catch(() => undefined);
|
|
24
|
+
if (anthropicToken) {
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(anthropicToken);
|
|
27
|
+
if (typeof parsed.accessToken === "string" &&
|
|
28
|
+
parsed.accessToken.length > 0 &&
|
|
29
|
+
(typeof parsed.expiresAt !== "number" || parsed.expiresAt > Date.now())) {
|
|
30
|
+
// Add a subscription candidate for anthropic.
|
|
31
|
+
candidates.push({
|
|
32
|
+
providerId: "anthropic-sub",
|
|
33
|
+
modelId: "claude-haiku-4-5",
|
|
34
|
+
displayName: "Claude (OAuth subscription)",
|
|
35
|
+
authTier: "subscription",
|
|
36
|
+
authScope: "first-party",
|
|
37
|
+
subscriptionStatus: "active",
|
|
38
|
+
health: "healthy",
|
|
39
|
+
supportsTools: true,
|
|
40
|
+
supportsStreaming: true,
|
|
41
|
+
supportsJson: true,
|
|
42
|
+
supportsImages: true,
|
|
43
|
+
estimatedCostUsd: 0,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Malformed OAuth token; skip.
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// For codex profiles, check openai OAuth.
|
|
53
|
+
if (isCodexProfile) {
|
|
54
|
+
const openaiToken = await secretStore
|
|
55
|
+
.get("openai:oauth")
|
|
56
|
+
.catch(() => undefined);
|
|
57
|
+
if (openaiToken) {
|
|
58
|
+
try {
|
|
59
|
+
const parsed = JSON.parse(openaiToken);
|
|
60
|
+
if (typeof parsed.accessToken === "string" &&
|
|
61
|
+
parsed.accessToken.length > 0 &&
|
|
62
|
+
(typeof parsed.expiresAt !== "number" || parsed.expiresAt > Date.now())) {
|
|
63
|
+
candidates.push({
|
|
64
|
+
providerId: "openai-sub",
|
|
65
|
+
modelId: "gpt-5-codex",
|
|
66
|
+
displayName: "OpenAI Codex (OAuth subscription)",
|
|
67
|
+
authTier: "subscription",
|
|
68
|
+
authScope: "first-party",
|
|
69
|
+
subscriptionStatus: "active",
|
|
70
|
+
health: "healthy",
|
|
71
|
+
supportsTools: true,
|
|
72
|
+
supportsStreaming: true,
|
|
73
|
+
supportsJson: true,
|
|
74
|
+
supportsImages: false,
|
|
75
|
+
estimatedCostUsd: 0,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Malformed OAuth token; skip.
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return candidates;
|
|
85
|
+
}
|
|
6
86
|
function harnessKindFromProfile(profile) {
|
|
7
87
|
if (profile.startsWith("claude"))
|
|
8
88
|
return "claude";
|
|
@@ -91,9 +171,12 @@ export function registerRouteCommand(program, ctx) {
|
|
|
91
171
|
writeText(stdout, `Cannot route (config_error): ${decision.explanation}`);
|
|
92
172
|
return;
|
|
93
173
|
}
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
174
|
+
// Build real adapter candidates by checking configured providers.
|
|
175
|
+
const secretStore = new FileSecretStore({
|
|
176
|
+
filePath: join(config.homeDir, "secrets.json"),
|
|
177
|
+
});
|
|
178
|
+
const candidates = await buildSubscriptionCandidates(opts.profile, secretStore);
|
|
179
|
+
const decision = routeRequest(request, candidates, policyConfig);
|
|
97
180
|
const setupIncomplete = decision.needsConfiguration === true;
|
|
98
181
|
// Check near-limit status for configured accounts.
|
|
99
182
|
let nearLimitWarning = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,YAAY,
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,YAAY,GAIb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAe,EACf,WAA4B;IAE5B,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,gFAAgF;IAChF,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,MAAM,WAAW;aACrC,GAAG,CAAC,iBAAiB,CAAC;aACtB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAGvC,CAAC;gBACF,IACE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;oBACtC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC7B,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EACvE,CAAC;oBACD,8CAA8C;oBAC9C,UAAU,CAAC,IAAI,CAAC;wBACd,UAAU,EAAE,eAAe;wBAC3B,OAAO,EAAE,kBAAkB;wBAC3B,WAAW,EAAE,6BAA6B;wBAC1C,QAAQ,EAAE,cAAc;wBACxB,SAAS,EAAE,aAAa;wBACxB,kBAAkB,EAAE,QAAQ;wBAC5B,MAAM,EAAE,SAAS;wBACjB,aAAa,EAAE,IAAI;wBACnB,iBAAiB,EAAE,IAAI;wBACvB,YAAY,EAAE,IAAI;wBAClB,cAAc,EAAE,IAAI;wBACpB,gBAAgB,EAAE,CAAC;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,MAAM,WAAW;aAClC,GAAG,CAAC,cAAc,CAAC;aACnB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAGpC,CAAC;gBACF,IACE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;oBACtC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC7B,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EACvE,CAAC;oBACD,UAAU,CAAC,IAAI,CAAC;wBACd,UAAU,EAAE,YAAY;wBACxB,OAAO,EAAE,aAAa;wBACtB,WAAW,EAAE,mCAAmC;wBAChD,QAAQ,EAAE,cAAc;wBACxB,SAAS,EAAE,aAAa;wBACxB,kBAAkB,EAAE,QAAQ;wBAC5B,MAAM,EAAE,SAAS;wBACjB,aAAa,EAAE,IAAI;wBACnB,iBAAiB,EAAE,IAAI;wBACvB,YAAY,EAAE,IAAI;wBAClB,cAAc,EAAE,KAAK;wBACrB,gBAAgB,EAAE,CAAC;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,OAAe,EACf,GAAW;IAEX,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO;QACL,eAAe,EAAE,oBAAoB;QACrC,SAAS,EAAE,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAC7C,OAAO,EAAE;YACP,IAAI,EAAE,sBAAsB,CAAC,OAAO,CAAC;YACrC,OAAO;SACR;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,OAAO;YACtB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;SACZ;QACD,SAAS,EAAE;YACT,GAAG;YACH,6EAA6E;YAC7E,6EAA6E;YAC7E,OAAO,EAAE,IAAI;SACd;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,IAAI;YACvB,mBAAmB,EAAE,KAAK;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,GAAyB;IAEzB,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6DAA6D,CAAC,CAAC;IAE9E,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CACP,UAAU,EACV,oEAAoE,CACrE;SACA,cAAc,CACb,qBAAqB,EACrB,2CAA2C,CAC5C;SACA,MAAM,CAAC,QAAQ,EAAE,oBAAoB,EAAE,KAAK,CAAC;SAC7C,MAAM,CACL,KAAK,EAAE,MAAc,EAAE,IAAyC,EAAE,EAAE;QAClE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAExD,IAAI,YAAY,CAAC;QACjB,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG;gBACf,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO,OAAO,CAAC,SAAS,eAAe;gBACnD,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,6BAA6B,WAAW,CAAC,OAAO,EAAE;gBAC/D,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,EAAE;gBACjB,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,gCAAgC,OAAO,CAAC,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC3G,OAAO,EAAE,IAAI;gBACb,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,IAAI;gBAClB,WAAW;aACZ,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,SAAS,CACP,MAAM,EACN,gCAAgC,QAAQ,CAAC,WAAW,EAAE,CACvD,CAAC;YACF,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAClD,IAAI,CAAC,OAAO,EACZ,WAAW,CACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC;QAE7D,mDAAmD;QACnD,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC;gBACpC,QAAQ,EAAE,IAAI,CACZ,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,EAC7B,OAAO,EACP,YAAY,CACb;aACF,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,oBAAoB,CACxD,YAAY,CAAC,kBAAkB,CAChC,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,gBAAgB,GAAG,WAAW,YAAY,CAAC,CAAC,CAAE,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC,CAAE,CAAC,SAAS,uBACrF,YAAY,CAAC,CAAC,CAAE,CAAC,gBAAgB,IAAI,CACvC,cAAc,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,EAAE;gBAChB,GAAG,QAAQ;gBACX,eAAe;gBACf,YAAY,EAAE,eAAe;oBAC3B,CAAC,CAAC,mHAAmH;oBACrH,CAAC,CAAC,IAAI;gBACR,GAAG,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IACE,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,kBAAkB;YAC3B,CAAC,QAAQ,CAAC,KAAK,EACf,CAAC;YACD,SAAS,CACP,MAAM,EACN,iBAAiB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,WAAW,EAAE,CAC7D,CAAC;YACF,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBACvC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,SAAS,CACP,MAAM,EACN,mHAAmH,CACpH,CAAC;YACJ,CAAC;YACD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC9B,SAAS,CAAC,MAAM,EAAE,KAAK,gBAAgB,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,SAAS,CACP,MAAM,EACN,UAAU,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,QAAQ,OAAO,QAAQ,CAAC,WAAW,EAAE,CACnH,CAAC;IACJ,CAAC,CACF,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "offrouter-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"offrouter": "dist/index.js"
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
"test": "vitest run"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"offrouter-adapter-claude": "0.
|
|
16
|
-
"offrouter-adapter-codex": "0.
|
|
17
|
-
"offrouter-adapter-gemini": "0.
|
|
18
|
-
"offrouter-adapter-grok": "0.
|
|
19
|
-
"offrouter-core": "0.
|
|
20
|
-
"offrouter-mcp": "0.
|
|
15
|
+
"offrouter-adapter-claude": "0.5.1",
|
|
16
|
+
"offrouter-adapter-codex": "0.5.1",
|
|
17
|
+
"offrouter-adapter-gemini": "0.5.1",
|
|
18
|
+
"offrouter-adapter-grok": "0.5.1",
|
|
19
|
+
"offrouter-core": "0.5.1",
|
|
20
|
+
"offrouter-mcp": "0.5.1",
|
|
21
21
|
"commander": "^12.0.0",
|
|
22
22
|
"zod": "^3.23.0"
|
|
23
23
|
},
|