dsh-cliworker-now 0.7.6 → 0.7.8
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/README.en.md +53 -11
- package/README.md +56 -11
- package/lib/account-models.mjs +49 -18
- package/lib/client.js +1221 -151
- package/lib/client.js.map +1 -1
- package/lib/grok-catalog.mjs +2 -2
- package/lib/hermes-native-entry.py +48 -13
- package/lib/hermes-nous-refresh.py +331 -0
- package/lib/index.js +9469 -6030
- package/lib/index.js.map +1 -1
- package/lib/native-launch.mjs +62 -7
- package/lib/native-spawn.mjs +32 -0
- package/lib/pi-installation.mjs +27 -3
- package/lib/pi-native-catalog.mjs +17 -7
- package/lib/pi-omp-bridge.mjs +2 -2
- package/lib/pi-omp-refresh.mjs +3 -3
- package/lib/private-launch.mjs +6 -2
- package/lib/terminal-bridge.mjs +2 -2
- package/lib/typert.host.js +265 -25
- package/lib/typert.remote-client.d.ts +8 -0
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +241 -25
- package/lib/types/client/account-query-queue.d.ts +16 -0
- package/lib/types/client/account-query-queue.js +61 -0
- package/lib/types/client/account-query-queue.js.map +1 -0
- package/lib/types/client/account-terminal.d.ts +6 -2
- package/lib/types/client/account-terminal.js +260 -31
- package/lib/types/client/account-terminal.js.map +1 -1
- package/lib/types/client/cli-executable-settings.d.ts +13 -0
- package/lib/types/client/cli-executable-settings.js +128 -0
- package/lib/types/client/cli-executable-settings.js.map +1 -0
- package/lib/types/client/management-styles.d.ts +1 -1
- package/lib/types/client/management-styles.js +4 -0
- package/lib/types/client/management-styles.js.map +1 -1
- package/lib/types/client/settings-dialog.js +196 -80
- package/lib/types/client/settings-dialog.js.map +1 -1
- package/lib/types/client/styles.d.ts +1 -1
- package/lib/types/client/styles.js +18 -16
- package/lib/types/client/styles.js.map +1 -1
- package/lib/types/client/zcode-login-link-provider.d.ts +9 -0
- package/lib/types/client/zcode-login-link-provider.js +105 -0
- package/lib/types/client/zcode-login-link-provider.js.map +1 -0
- package/lib/types/client/zcode-login-link.d.ts +16 -0
- package/lib/types/client/zcode-login-link.js +194 -0
- package/lib/types/client/zcode-login-link.js.map +1 -0
- package/lib/types/host/account-models.d.mts +10 -2
- package/lib/types/host/account-models.mjs +49 -18
- package/lib/types/host/accounts.d.ts +3 -2
- package/lib/types/host/accounts.js +168 -29
- package/lib/types/host/accounts.js.map +1 -1
- package/lib/types/host/adapters.d.ts +3 -1
- package/lib/types/host/adapters.js +138 -11
- package/lib/types/host/adapters.js.map +1 -1
- package/lib/types/host/agy-background-environment.d.ts +2 -0
- package/lib/types/host/agy-background-environment.js +7 -0
- package/lib/types/host/agy-background-environment.js.map +1 -0
- package/lib/types/host/agy-models.d.ts +2 -1
- package/lib/types/host/agy-models.js +6 -6
- package/lib/types/host/agy-models.js.map +1 -1
- package/lib/types/host/agy-windows-account.d.ts +14 -0
- package/lib/types/host/agy-windows-account.js +104 -0
- package/lib/types/host/agy-windows-account.js.map +1 -0
- package/lib/types/host/authorized-catalog.js +13 -4
- package/lib/types/host/authorized-catalog.js.map +1 -1
- package/lib/types/host/claude-native-oauth.d.ts +17 -0
- package/lib/types/host/claude-native-oauth.js +274 -0
- package/lib/types/host/claude-native-oauth.js.map +1 -0
- package/lib/types/host/claude-own-route.d.ts +45 -0
- package/lib/types/host/claude-own-route.js +375 -0
- package/lib/types/host/claude-own-route.js.map +1 -0
- package/lib/types/host/cli-account-binding.d.ts +2 -1
- package/lib/types/host/cli-account-binding.js +64 -21
- package/lib/types/host/cli-account-binding.js.map +1 -1
- package/lib/types/host/cli-executable-paths.d.ts +30 -0
- package/lib/types/host/cli-executable-paths.js +272 -0
- package/lib/types/host/cli-executable-paths.js.map +1 -0
- package/lib/types/host/codex-models.d.ts +3 -1
- package/lib/types/host/codex-models.js +41 -4
- package/lib/types/host/codex-models.js.map +1 -1
- package/lib/types/host/extended-adapters.d.ts +3 -2
- package/lib/types/host/extended-adapters.js +9 -7
- package/lib/types/host/extended-adapters.js.map +1 -1
- package/lib/types/host/first-party-models.d.ts +5 -0
- package/lib/types/host/first-party-models.js +173 -50
- package/lib/types/host/first-party-models.js.map +1 -1
- package/lib/types/host/hermes-accounts.js +68 -9
- package/lib/types/host/hermes-accounts.js.map +1 -1
- package/lib/types/host/hermes-adapter.d.ts +3 -0
- package/lib/types/host/hermes-adapter.js +13 -4
- package/lib/types/host/hermes-adapter.js.map +1 -1
- package/lib/types/host/hermes-installation.js +54 -35
- package/lib/types/host/hermes-installation.js.map +1 -1
- package/lib/types/host/hermes-models.js +21 -2
- package/lib/types/host/hermes-models.js.map +1 -1
- package/lib/types/host/hermes-native-entry.py +48 -13
- package/lib/types/host/hermes-nous-refresh.py +331 -0
- package/lib/types/host/hermes-nous.d.ts +5 -1
- package/lib/types/host/hermes-nous.js +5 -5
- package/lib/types/host/hermes-nous.js.map +1 -1
- package/lib/types/host/hermes-renewal.d.ts +27 -0
- package/lib/types/host/hermes-renewal.js +292 -0
- package/lib/types/host/hermes-renewal.js.map +1 -0
- package/lib/types/host/hermes-windows-installation.d.ts +5 -0
- package/lib/types/host/hermes-windows-installation.js +91 -0
- package/lib/types/host/hermes-windows-installation.js.map +1 -0
- package/lib/types/host/index.d.ts +12 -0
- package/lib/types/host/index.js +138 -8
- package/lib/types/host/index.js.map +1 -1
- package/lib/types/host/kimi-accounts.d.ts +2 -0
- package/lib/types/host/kimi-accounts.js +4 -2
- package/lib/types/host/kimi-accounts.js.map +1 -1
- package/lib/types/host/kimi-oauth-models.d.ts +14 -0
- package/lib/types/host/kimi-oauth-models.js +246 -0
- package/lib/types/host/kimi-oauth-models.js.map +1 -0
- package/lib/types/host/mimo-metadata-cache.d.ts +22 -0
- package/lib/types/host/mimo-metadata-cache.js +121 -0
- package/lib/types/host/mimo-metadata-cache.js.map +1 -0
- package/lib/types/host/native-capability-cache.d.ts +11 -0
- package/lib/types/host/native-capability-cache.js +94 -0
- package/lib/types/host/native-capability-cache.js.map +1 -0
- package/lib/types/host/native-launch.mjs +62 -7
- package/lib/types/host/native-process.d.ts +3 -1
- package/lib/types/host/native-process.js +30 -5
- package/lib/types/host/native-process.js.map +1 -1
- package/lib/types/host/native-spawn.mjs +32 -0
- package/lib/types/host/opencode-native.js +13 -0
- package/lib/types/host/opencode-native.js.map +1 -1
- package/lib/types/host/pi-installation.d.mts +1 -1
- package/lib/types/host/pi-installation.mjs +27 -3
- package/lib/types/host/pi-omp-adapter.js +17 -3
- package/lib/types/host/pi-omp-adapter.js.map +1 -1
- package/lib/types/host/pi-omp-native.js +5 -3
- package/lib/types/host/pi-omp-native.js.map +1 -1
- package/lib/types/host/pi-omp-refresh.mjs +3 -3
- package/lib/types/host/private-launch.mjs +23 -0
- package/lib/types/host/process.d.ts +3 -0
- package/lib/types/host/process.js +3 -1
- package/lib/types/host/process.js.map +1 -1
- package/lib/types/host/routing.js +25 -2
- package/lib/types/host/routing.js.map +1 -1
- package/lib/types/host/runtime.js +21 -5
- package/lib/types/host/runtime.js.map +1 -1
- package/lib/types/host/settings-catalog-cache.d.ts +28 -0
- package/lib/types/host/settings-catalog-cache.js +189 -0
- package/lib/types/host/settings-catalog-cache.js.map +1 -0
- package/lib/types/host/windows-account-bootstrap.ps1 +44 -0
- package/lib/types/host/windows-account-launch.mjs +47 -0
- package/lib/types/host/windows-account-owner.ps1 +137 -0
- package/lib/types/host/windows-account-stdio.mjs +19 -0
- package/lib/types/host/windows-account-terminal.d.ts +17 -0
- package/lib/types/host/windows-account-terminal.js +208 -0
- package/lib/types/host/windows-account-terminal.js.map +1 -0
- package/lib/types/host/windows-agy-account.ps1 +81 -0
- package/lib/types/host/windows-cli-installation.d.ts +35 -0
- package/lib/types/host/windows-cli-installation.js +164 -0
- package/lib/types/host/windows-cli-installation.js.map +1 -0
- package/lib/types/host/windows-codex-launch.d.ts +9 -0
- package/lib/types/host/windows-codex-launch.js +216 -0
- package/lib/types/host/windows-codex-launch.js.map +1 -0
- package/lib/types/host/windows-desktop-cli-installation.d.ts +20 -0
- package/lib/types/host/windows-desktop-cli-installation.js +420 -0
- package/lib/types/host/windows-desktop-cli-installation.js.map +1 -0
- package/lib/types/host/windows-hidden-launch.mjs +51 -0
- package/lib/types/host/windows-hidden-process.d.ts +12 -0
- package/lib/types/host/windows-hidden-process.js +116 -0
- package/lib/types/host/windows-hidden-process.js.map +1 -0
- package/lib/types/host/zcode-adapter.js +5 -1
- package/lib/types/host/zcode-adapter.js.map +1 -1
- package/lib/types/host/zcode-grok-accounts.d.ts +3 -1
- package/lib/types/host/zcode-grok-accounts.js +60 -11
- package/lib/types/host/zcode-grok-accounts.js.map +1 -1
- package/lib/types/shared/accounts.d.ts +4 -0
- package/lib/types/shared/cli-settings.d.ts +8 -0
- package/lib/windows-account-bootstrap.ps1 +44 -0
- package/lib/windows-account-launch.mjs +47 -0
- package/lib/windows-account-owner.ps1 +137 -0
- package/lib/windows-account-stdio.mjs +19 -0
- package/lib/windows-agy-account.ps1 +81 -0
- package/lib/windows-hidden-launch.mjs +51 -0
- package/lib/zcode-resume.mjs +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
2
|
+
import { EFFORTS } from "../shared/types.js";
|
|
3
|
+
import { accountEmail } from "./account-identity.js";
|
|
4
|
+
import { ProcessCleanupUnconfirmedError } from "./process.js";
|
|
5
|
+
import { claudeLaunchEnvironment } from "./claude-own-route.js";
|
|
6
|
+
const record = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
7
|
+
const id = (value) => typeof value === 'string' && /^[A-Za-z0-9][A-Za-z0-9._:/-]*$/.test(value);
|
|
8
|
+
const text = (value) => typeof value === 'string' && !!value.trim() && value.length <= 512 && !/[\x00-\x1f\x7f]/.test(value);
|
|
9
|
+
export class ClaudeNativeOAuthError extends Error {
|
|
10
|
+
code = 'CLAUDE_NATIVE_OAUTH_UNAVAILABLE';
|
|
11
|
+
constructor(message = 'Claude 原生账号模型或额度暂无法确认,请在账号终端检查后刷新') {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = 'ClaudeNativeOAuthError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Native initialize is capability metadata: even an unauthenticated CLI returns models. */
|
|
17
|
+
function ownAccount(value) {
|
|
18
|
+
const email = record(value) ? accountEmail(value.email) : undefined;
|
|
19
|
+
if (!record(value) ||
|
|
20
|
+
value.apiProvider !== 'firstParty' ||
|
|
21
|
+
value.tokenSource !== 'claude.ai' ||
|
|
22
|
+
(value.apiKeySource !== undefined && value.apiKeySource !== 'none') ||
|
|
23
|
+
!email)
|
|
24
|
+
throw new ClaudeNativeOAuthError('Claude 尚未通过原生账号登录,请打开账号终端登录');
|
|
25
|
+
if (value.organization !== undefined && !text(value.organization))
|
|
26
|
+
throw new ClaudeNativeOAuthError();
|
|
27
|
+
return { email, ...(value.organization !== undefined && { organization: value.organization }) };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Claude 2.1.296's get_usage can fall back to stale persisted/header observations after a
|
|
31
|
+
* failed endpoint read. That fallback removes `limits`; never authorize from it. A native
|
|
32
|
+
* successful read can still use the CLI's own account-bound snapshot younger than 60s. We add
|
|
33
|
+
* no cache and make no claim of a separate live model entitlement API.
|
|
34
|
+
*/
|
|
35
|
+
function remainingQuota(value, now) {
|
|
36
|
+
const unknown = () => new ClaudeNativeOAuthError('Claude 原生账号剩余额度暂无法确认,请检查登录与订阅后刷新');
|
|
37
|
+
if (!record(value) ||
|
|
38
|
+
value.rate_limits_available !== true ||
|
|
39
|
+
!['pro', 'max', 'team', 'enterprise'].includes(value.subscription_type) ||
|
|
40
|
+
!record(value.rate_limits) ||
|
|
41
|
+
!Array.isArray(value.rate_limits.limits))
|
|
42
|
+
throw unknown();
|
|
43
|
+
const limits = value.rate_limits;
|
|
44
|
+
const windows = ['five_hour', 'seven_day', 'seven_day_oauth_apps', 'seven_day_opus', 'seven_day_sonnet']
|
|
45
|
+
.filter((key) => limits[key] != null)
|
|
46
|
+
.map((key) => limits[key]);
|
|
47
|
+
// A billing balance or extra-usage wallet is not authorization to spend beyond a plan.
|
|
48
|
+
if (limits.five_hour == null || limits.seven_day == null)
|
|
49
|
+
throw unknown();
|
|
50
|
+
const percentages = [];
|
|
51
|
+
const window = (entry) => {
|
|
52
|
+
if (!record(entry) ||
|
|
53
|
+
typeof entry.utilization !== 'number' ||
|
|
54
|
+
!Number.isFinite(entry.utilization) ||
|
|
55
|
+
entry.utilization < 0 ||
|
|
56
|
+
(entry.resets_at !== null &&
|
|
57
|
+
(typeof entry.resets_at !== 'string' ||
|
|
58
|
+
!Number.isFinite(Date.parse(entry.resets_at)) ||
|
|
59
|
+
Date.parse(entry.resets_at) <= now)))
|
|
60
|
+
throw unknown();
|
|
61
|
+
percentages.push(entry.utilization);
|
|
62
|
+
};
|
|
63
|
+
windows.forEach(window);
|
|
64
|
+
if (limits.model_scoped !== undefined) {
|
|
65
|
+
if (!Array.isArray(limits.model_scoped))
|
|
66
|
+
throw unknown();
|
|
67
|
+
limits.model_scoped.forEach(window);
|
|
68
|
+
}
|
|
69
|
+
for (const entry of limits.limits) {
|
|
70
|
+
if (!record(entry) ||
|
|
71
|
+
typeof entry.percent !== 'number' ||
|
|
72
|
+
!Number.isFinite(entry.percent) ||
|
|
73
|
+
entry.percent < 0 ||
|
|
74
|
+
typeof entry.is_active !== 'boolean')
|
|
75
|
+
throw unknown();
|
|
76
|
+
if (entry.is_active)
|
|
77
|
+
percentages.push(entry.percent);
|
|
78
|
+
}
|
|
79
|
+
// Conservative across all returned plan windows; do not infer that a model bypasses a limit.
|
|
80
|
+
if (percentages.some((percent) => percent >= 100))
|
|
81
|
+
throw new ClaudeNativeOAuthError('Claude 当前账号存在已用尽的限额,请等待重置或检查订阅');
|
|
82
|
+
}
|
|
83
|
+
export function parseClaudeNativeOAuthCatalog(initialize, usage, now = Date.now()) {
|
|
84
|
+
if (!record(initialize))
|
|
85
|
+
throw new ClaudeNativeOAuthError();
|
|
86
|
+
const account = ownAccount(initialize.account);
|
|
87
|
+
remainingQuota(usage, now);
|
|
88
|
+
if (!Array.isArray(initialize.models))
|
|
89
|
+
throw new ClaudeNativeOAuthError();
|
|
90
|
+
const models = new Map();
|
|
91
|
+
for (const model of initialize.models) {
|
|
92
|
+
if (!record(model) ||
|
|
93
|
+
!id(model.value) ||
|
|
94
|
+
!id(model.resolvedModel) ||
|
|
95
|
+
model.disabled === true ||
|
|
96
|
+
model.hidden === true ||
|
|
97
|
+
model.entitled === false ||
|
|
98
|
+
model.available === false ||
|
|
99
|
+
model.allowed === false)
|
|
100
|
+
continue;
|
|
101
|
+
const efforts = model.supportsEffort === true && Array.isArray(model.supportedEffortLevels)
|
|
102
|
+
? EFFORTS.filter((effort) => ['low', 'medium', 'high', 'xhigh', 'max'].includes(effort) &&
|
|
103
|
+
model.supportedEffortLevels.includes(effort))
|
|
104
|
+
: [];
|
|
105
|
+
// Default leaves the native CLI's own effort policy untouched.
|
|
106
|
+
const choice = {
|
|
107
|
+
id: model.value,
|
|
108
|
+
label: text(model.displayName) ? model.displayName : model.value,
|
|
109
|
+
efforts: ['default', ...efforts],
|
|
110
|
+
};
|
|
111
|
+
if (models.has(choice.id))
|
|
112
|
+
throw new ClaudeNativeOAuthError('Claude 原生模型目录存在重复选项,请刷新');
|
|
113
|
+
models.set(choice.id, choice);
|
|
114
|
+
}
|
|
115
|
+
if (!models.size)
|
|
116
|
+
throw new ClaudeNativeOAuthError('Claude 原生账号暂未返回可确认的模型,请刷新');
|
|
117
|
+
return { account, models: [...models.values()] };
|
|
118
|
+
}
|
|
119
|
+
/** Only initialize/get_usage controls are sent. No user message, token read, login or model request. */
|
|
120
|
+
export async function discoverClaudeNativeOAuth(backend, config, executable, cwd, signal, prefixArgs) {
|
|
121
|
+
signal.throwIfAborted();
|
|
122
|
+
// The caller supplies the same native-route overlay used for actual worker execution.
|
|
123
|
+
if (prefixArgs.length !== 2 || prefixArgs[0] !== '--settings')
|
|
124
|
+
throw new ClaudeNativeOAuthError();
|
|
125
|
+
let overlay;
|
|
126
|
+
try {
|
|
127
|
+
overlay = JSON.parse(prefixArgs[1]);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
throw new ClaudeNativeOAuthError();
|
|
131
|
+
}
|
|
132
|
+
if (!record(overlay))
|
|
133
|
+
throw new ClaudeNativeOAuthError();
|
|
134
|
+
const control = AbortSignal.any([signal, AbortSignal.timeout(15_000)]);
|
|
135
|
+
const child = backend.spawn({
|
|
136
|
+
argv: [
|
|
137
|
+
executable,
|
|
138
|
+
'--settings',
|
|
139
|
+
JSON.stringify({ ...overlay, disableAllHooks: true, promptSuggestionEnabled: false }),
|
|
140
|
+
'--strict-mcp-config',
|
|
141
|
+
'--mcp-config',
|
|
142
|
+
'{"mcpServers":{}}',
|
|
143
|
+
'--print',
|
|
144
|
+
'--input-format',
|
|
145
|
+
'stream-json',
|
|
146
|
+
'--output-format',
|
|
147
|
+
'stream-json',
|
|
148
|
+
'--verbose',
|
|
149
|
+
'--no-session-persistence',
|
|
150
|
+
],
|
|
151
|
+
cwd,
|
|
152
|
+
env: {
|
|
153
|
+
...claudeLaunchEnvironment(),
|
|
154
|
+
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: '1',
|
|
155
|
+
DISABLE_TELEMETRY: '1',
|
|
156
|
+
DISABLE_ERROR_REPORTING: '1',
|
|
157
|
+
DISABLE_AUTOUPDATER: '1',
|
|
158
|
+
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION: 'false',
|
|
159
|
+
},
|
|
160
|
+
stdio: { stdin: 'pipe', stdout: 'pipe', stderr: 'pipe' },
|
|
161
|
+
graceMs: config.graceMs,
|
|
162
|
+
signal: control,
|
|
163
|
+
});
|
|
164
|
+
void child.done.catch(() => undefined);
|
|
165
|
+
const inputError = () => undefined;
|
|
166
|
+
child.stdin?.on('error', inputError);
|
|
167
|
+
const write = (request_id, request) => new Promise((resolve, reject) => {
|
|
168
|
+
if (!child.stdin || child.stdin.destroyed)
|
|
169
|
+
return reject(new ClaudeNativeOAuthError());
|
|
170
|
+
child.stdin.write(JSON.stringify({ type: 'control_request', request_id, request }) + '\n', (error) => error ? reject(new ClaudeNativeOAuthError()) : resolve());
|
|
171
|
+
});
|
|
172
|
+
let bytes = 0;
|
|
173
|
+
const count = (chunk) => {
|
|
174
|
+
const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk));
|
|
175
|
+
bytes += buffer.length;
|
|
176
|
+
if (bytes > Math.min(config.maxRunBytes, 2_097_152))
|
|
177
|
+
throw new ClaudeNativeOAuthError('Claude 账号目录响应过大');
|
|
178
|
+
return buffer;
|
|
179
|
+
};
|
|
180
|
+
const errors = (async () => {
|
|
181
|
+
if (child.stderr)
|
|
182
|
+
for await (const chunk of child.stderr)
|
|
183
|
+
count(chunk);
|
|
184
|
+
})();
|
|
185
|
+
void errors.catch(() => undefined);
|
|
186
|
+
const output = (async () => {
|
|
187
|
+
if (!child.stdout)
|
|
188
|
+
throw new ClaudeNativeOAuthError();
|
|
189
|
+
const decoder = new StringDecoder('utf8');
|
|
190
|
+
let pending = '', expected = 'native-initialize', initialize;
|
|
191
|
+
for await (const chunk of child.stdout) {
|
|
192
|
+
pending += decoder.write(count(chunk));
|
|
193
|
+
let newline;
|
|
194
|
+
while ((newline = pending.indexOf('\n')) >= 0) {
|
|
195
|
+
const line = pending.slice(0, newline);
|
|
196
|
+
pending = pending.slice(newline + 1);
|
|
197
|
+
let message;
|
|
198
|
+
try {
|
|
199
|
+
message = JSON.parse(line);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
throw new ClaudeNativeOAuthError();
|
|
203
|
+
}
|
|
204
|
+
if (!record(message))
|
|
205
|
+
throw new ClaudeNativeOAuthError();
|
|
206
|
+
if (['assistant', 'user', 'stream_event', 'result', 'control_request'].includes(message.type))
|
|
207
|
+
throw new ClaudeNativeOAuthError('Claude 账号查询返回了非元数据事件,已停止查询');
|
|
208
|
+
if (message.type !== 'control_response')
|
|
209
|
+
continue;
|
|
210
|
+
const response = message.response;
|
|
211
|
+
if (!record(response) || response.request_id !== expected)
|
|
212
|
+
throw new ClaudeNativeOAuthError();
|
|
213
|
+
if (response.subtype !== 'success' || !record(response.response))
|
|
214
|
+
throw new ClaudeNativeOAuthError();
|
|
215
|
+
if (expected === 'native-initialize') {
|
|
216
|
+
initialize = response.response;
|
|
217
|
+
ownAccount(response.response.account);
|
|
218
|
+
expected = 'native-usage';
|
|
219
|
+
await write(expected, { subtype: 'get_usage', skip_behaviors: true });
|
|
220
|
+
}
|
|
221
|
+
else
|
|
222
|
+
return parseClaudeNativeOAuthCatalog(initialize, response.response);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
throw new ClaudeNativeOAuthError('Claude 账号查询提前结束,请刷新');
|
|
226
|
+
})();
|
|
227
|
+
void output.catch(() => undefined);
|
|
228
|
+
let abort = () => { };
|
|
229
|
+
const cancelled = new Promise((_, reject) => {
|
|
230
|
+
abort = () => reject(new ClaudeNativeOAuthError(signal.aborted ? 'Claude 账号查询已取消' : 'Claude 账号查询超时,请刷新'));
|
|
231
|
+
control.addEventListener('abort', abort, { once: true });
|
|
232
|
+
if (control.aborted)
|
|
233
|
+
abort();
|
|
234
|
+
});
|
|
235
|
+
const failed = new Promise((_, reject) => {
|
|
236
|
+
void errors.catch(reject);
|
|
237
|
+
void child.done.catch(() => reject(new ClaudeNativeOAuthError()));
|
|
238
|
+
});
|
|
239
|
+
try {
|
|
240
|
+
await Promise.race([
|
|
241
|
+
write('native-initialize', {
|
|
242
|
+
subtype: 'initialize',
|
|
243
|
+
hooks: {},
|
|
244
|
+
sdkMcpServers: [],
|
|
245
|
+
promptSuggestions: false,
|
|
246
|
+
agentProgressSummaries: false,
|
|
247
|
+
}),
|
|
248
|
+
cancelled,
|
|
249
|
+
]);
|
|
250
|
+
const result = await Promise.race([output, cancelled, failed]);
|
|
251
|
+
control.throwIfAborted();
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
if (error instanceof ClaudeNativeOAuthError)
|
|
256
|
+
throw error;
|
|
257
|
+
signal.throwIfAborted();
|
|
258
|
+
throw new ClaudeNativeOAuthError();
|
|
259
|
+
}
|
|
260
|
+
finally {
|
|
261
|
+
control.removeEventListener('abort', abort);
|
|
262
|
+
try {
|
|
263
|
+
child.terminate();
|
|
264
|
+
if (!(await child.waitForExit()))
|
|
265
|
+
throw new ProcessCleanupUnconfirmedError();
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
throw new ProcessCleanupUnconfirmedError();
|
|
269
|
+
}
|
|
270
|
+
await Promise.allSettled([output, errors, child.done]);
|
|
271
|
+
child.stdin?.removeListener('error', inputError);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=claude-native-oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-native-oauth.js","sourceRoot":"","sources":["../../../src/host/claude-native-oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type AccountIdentity } from './account-identity.ts';
|
|
2
|
+
import { type FirstPartyModelSource } from './first-party-models.ts';
|
|
3
|
+
/** Only this Claude child is changed; inherited credentials are never account evidence. */
|
|
4
|
+
export declare function claudeLaunchEnvironment(): Record<string, string>;
|
|
5
|
+
export declare function claudeRemoteModelId(value: string): string;
|
|
6
|
+
/** Exact settings IDs only. Labels and capability metadata never invent a model. */
|
|
7
|
+
export declare function claudeConfiguredModels(env: Record<string, unknown>, settingsModel?: unknown): FirstPartyModelSource['nativeModels'];
|
|
8
|
+
/** Public errors never interpolate native configuration or credentials. */
|
|
9
|
+
export declare class ClaudeOwnRouteError extends Error {
|
|
10
|
+
readonly code = "CLI_OWN_ACCOUNT_REQUIRED";
|
|
11
|
+
constructor(message?: string);
|
|
12
|
+
}
|
|
13
|
+
export interface ClaudeOwnRoute {
|
|
14
|
+
kind: 'native' | 'proxy' | 'api';
|
|
15
|
+
sourceIds: string[];
|
|
16
|
+
configDirectory?: string;
|
|
17
|
+
/** Host-only current model configuration; included in admission and launch snapshots. */
|
|
18
|
+
modelEnvironment?: Record<string, string>;
|
|
19
|
+
model?: string;
|
|
20
|
+
/** Field names only, with empty values; native operations suppress own route overrides. */
|
|
21
|
+
suppressedEnvironment?: Record<string, string>;
|
|
22
|
+
/** Host-only; never project this material to Gateway. */
|
|
23
|
+
source?: FirstPartyModelSource;
|
|
24
|
+
}
|
|
25
|
+
/** Verified on native 2.1.296: empty settings.env unsets provider selectors for this process. */
|
|
26
|
+
export declare function claudeNativeSettingsArguments(configDirectory?: string, suppressedEnvironment?: Record<string, string>): string[];
|
|
27
|
+
/** TCP only: a listening proxy remains selected even if its HTTP authentication fails. */
|
|
28
|
+
export declare function claudeLoopbackAvailable(url: URL, signal: AbortSignal): Promise<boolean>;
|
|
29
|
+
/** Official account operations never probe or require an API/proxy route. */
|
|
30
|
+
export declare function readClaudeOfficialAccountRoute(project: string, signal: AbortSignal): Promise<ClaudeOwnRoute>;
|
|
31
|
+
export declare function readClaudeOwnRoute(project: string, signal: AbortSignal, options?: {
|
|
32
|
+
available?: typeof claudeLoopbackAvailable;
|
|
33
|
+
}): Promise<ClaudeOwnRoute>;
|
|
34
|
+
export declare function claudeRouteStatusArguments(executable: string, route: ClaudeOwnRoute): string[];
|
|
35
|
+
export declare function claudeRouteIdentity(route: ClaudeOwnRoute, raw: string, exitCode: number | null): AccountIdentity;
|
|
36
|
+
/** Pin one route before spawning; secrets are in a private temporary file, never argv. */
|
|
37
|
+
export declare function prepareClaudeWorkerLaunch(route: ClaudeOwnRoute, argv: string[], stateDirectory: string, signal: AbortSignal): Promise<{
|
|
38
|
+
argv: string[];
|
|
39
|
+
env: Record<string, string>;
|
|
40
|
+
cleanup?: undefined;
|
|
41
|
+
} | {
|
|
42
|
+
argv: string[];
|
|
43
|
+
env: Record<string, string>;
|
|
44
|
+
cleanup: () => Promise<void>;
|
|
45
|
+
}>;
|