@claudexor/harness-claude 1.0.1 → 2.1.3
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/capability-profile.d.ts +3 -0
- package/dist/capability-profile.d.ts.map +1 -0
- package/dist/capability-profile.js +34 -0
- package/dist/capability-profile.js.map +1 -0
- package/dist/doctor-remedy.d.ts +9 -0
- package/dist/doctor-remedy.d.ts.map +1 -0
- package/dist/doctor-remedy.js +15 -0
- package/dist/doctor-remedy.js.map +1 -0
- package/dist/index.d.ts +71 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +545 -220
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts +10 -3
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +31 -6
- package/dist/interactive.js.map +1 -1
- package/dist/native-home.d.ts +21 -0
- package/dist/native-home.d.ts.map +1 -0
- package/dist/native-home.js +61 -0
- package/dist/native-home.js.map +1 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +206 -15
- package/dist/parse.js.map +1 -1
- package/dist/profile.d.ts +27 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +174 -0
- package/dist/profile.js.map +1 -0
- package/dist/smoke.d.ts +9 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +94 -0
- package/dist/smoke.js.map +1 -0
- package/package.json +8 -5
package/dist/parse.js
CHANGED
|
@@ -73,7 +73,11 @@ function releaseSessionTasks(sessionId) {
|
|
|
73
73
|
sessionTasks.delete(sessionId);
|
|
74
74
|
}
|
|
75
75
|
function sessionTaskItems(sessionId) {
|
|
76
|
-
return (sessionTasks.get(sessionId) ?? []).map((t) => ({
|
|
76
|
+
return (sessionTasks.get(sessionId) ?? []).map((t) => ({
|
|
77
|
+
id: `claude-${t.id}`,
|
|
78
|
+
title: t.title,
|
|
79
|
+
status: t.status,
|
|
80
|
+
}));
|
|
77
81
|
}
|
|
78
82
|
export function parseClaudeEvent(obj, sessionId) {
|
|
79
83
|
return parseClaudeEventStateful(obj, sessionId, new Map());
|
|
@@ -99,12 +103,26 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
99
103
|
];
|
|
100
104
|
}
|
|
101
105
|
if (type === "system" && obj.subtype === "api_retry") {
|
|
106
|
+
// TYPED status, not a fabricated thinking block: the old mapping planted
|
|
107
|
+
// "api_retry: 529…" junk in the chat's reasoning disclosure. The official
|
|
108
|
+
// fields (attempt/max_retries/retry_delay_ms/error category) pass through
|
|
109
|
+
// so the activity feed can say "retrying (2/10, in 5s)" honestly.
|
|
102
110
|
const errText = String(obj.error ?? "");
|
|
103
111
|
const ev = {
|
|
104
|
-
type: "
|
|
112
|
+
type: "status",
|
|
105
113
|
session_id: sessionId,
|
|
106
114
|
ts,
|
|
107
|
-
|
|
115
|
+
// The prose is redacted AND bounded (a hostile frame must not inject a
|
|
116
|
+
// huge/secret-bearing field, review sol #7); the typed category is the
|
|
117
|
+
// official enum, never free-form text.
|
|
118
|
+
text: `api_retry: ${redactSecrets(errText).slice(0, 500)}`,
|
|
119
|
+
status: {
|
|
120
|
+
kind: "api_retry",
|
|
121
|
+
attempt: numberOrUndef(obj.attempt),
|
|
122
|
+
max_retries: numberOrUndef(obj.max_retries),
|
|
123
|
+
retry_delay_ms: numberOrUndef(obj.retry_delay_ms),
|
|
124
|
+
error_category: claudeRetryCategory(obj.error),
|
|
125
|
+
},
|
|
108
126
|
payload: { api_retry: true, retry_delay_ms: obj.retry_delay_ms },
|
|
109
127
|
};
|
|
110
128
|
// Adapter-layer translation of claude's native retry into a TYPED rate-limit
|
|
@@ -117,20 +135,34 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
117
135
|
}
|
|
118
136
|
if (CLAUDE_TRANSIENT_RE.test(errText)) {
|
|
119
137
|
ev.transient = {
|
|
120
|
-
kind: /overloaded|temporar(?:y|ily) unavailable/i.test(errText)
|
|
138
|
+
kind: /overloaded|temporar(?:y|ily) unavailable/i.test(errText)
|
|
139
|
+
? "service_unavailable"
|
|
140
|
+
: "network",
|
|
121
141
|
retry_delay_ms: typeof obj.retry_delay_ms === "number" ? obj.retry_delay_ms : null,
|
|
122
142
|
};
|
|
123
143
|
}
|
|
124
144
|
return [ev];
|
|
125
145
|
}
|
|
126
146
|
if (type === "assistant") {
|
|
147
|
+
// Subagent traffic (parent_tool_use_id set) is NOT the main conversation
|
|
148
|
+
// and must never enter narration / the answer — the guard belongs on the
|
|
149
|
+
// COMPLETE assistant frame too, not only stream_event deltas (review sol
|
|
150
|
+
// #8). Tool_use blocks still process (a subagent's edits are real file
|
|
151
|
+
// changes); only its assistant TEXT/thinking is suppressed.
|
|
152
|
+
const isSubagent = obj.parent_tool_use_id != null;
|
|
127
153
|
const content = obj.message?.content ?? [];
|
|
128
154
|
const out = [];
|
|
129
155
|
for (const block of content) {
|
|
130
156
|
if (block?.type === "text" && block.text) {
|
|
157
|
+
if (isSubagent)
|
|
158
|
+
continue;
|
|
131
159
|
out.push({ type: "message", session_id: sessionId, ts, text: String(block.text) });
|
|
132
160
|
}
|
|
133
|
-
else if (block?.type === "thinking" &&
|
|
161
|
+
else if (block?.type === "thinking" &&
|
|
162
|
+
typeof block.thinking === "string" &&
|
|
163
|
+
block.thinking.trim()) {
|
|
164
|
+
if (isSubagent)
|
|
165
|
+
continue;
|
|
134
166
|
out.push({ type: "thinking", session_id: sessionId, ts, text: String(block.thinking) });
|
|
135
167
|
}
|
|
136
168
|
else if (block?.type === "tool_use") {
|
|
@@ -146,7 +178,13 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
146
178
|
pendingTools.set(tool.use_id, tool);
|
|
147
179
|
if (EDIT_TOOLS.has(name)) {
|
|
148
180
|
const path = input.file_path ?? input.path ?? input.notebook_path;
|
|
149
|
-
out.push({
|
|
181
|
+
out.push({
|
|
182
|
+
type: "file_change",
|
|
183
|
+
session_id: sessionId,
|
|
184
|
+
ts,
|
|
185
|
+
tool,
|
|
186
|
+
payload: { path, tool: name, tool_use_id: block.id },
|
|
187
|
+
});
|
|
150
188
|
}
|
|
151
189
|
else if (name === "TodoWrite" && Array.isArray(input.todos)) {
|
|
152
190
|
// Typed plan progress, legacy surface: older claude CLIs plan
|
|
@@ -154,9 +192,20 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
154
192
|
const items = input.todos.map((t, i) => ({
|
|
155
193
|
id: `claude-${i}`,
|
|
156
194
|
title: String(t.content ?? ""),
|
|
157
|
-
status: t.status === "completed"
|
|
195
|
+
status: t.status === "completed"
|
|
196
|
+
? "completed"
|
|
197
|
+
: t.status === "in_progress"
|
|
198
|
+
? "in_progress"
|
|
199
|
+
: "pending",
|
|
158
200
|
}));
|
|
159
|
-
out.push({
|
|
201
|
+
out.push({
|
|
202
|
+
type: "tool_call",
|
|
203
|
+
session_id: sessionId,
|
|
204
|
+
ts,
|
|
205
|
+
text: name,
|
|
206
|
+
tool,
|
|
207
|
+
plan_progress: { items },
|
|
208
|
+
});
|
|
160
209
|
}
|
|
161
210
|
else if (name === "TaskCreate" || name === "TaskUpdate") {
|
|
162
211
|
// Typed plan progress, current surface (LIVE-VERIFIED 2.1.165):
|
|
@@ -175,7 +224,14 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
175
224
|
});
|
|
176
225
|
}
|
|
177
226
|
else {
|
|
178
|
-
out.push({
|
|
227
|
+
out.push({
|
|
228
|
+
type: "tool_call",
|
|
229
|
+
session_id: sessionId,
|
|
230
|
+
ts,
|
|
231
|
+
text: name,
|
|
232
|
+
tool,
|
|
233
|
+
payload: { input },
|
|
234
|
+
});
|
|
179
235
|
}
|
|
180
236
|
}
|
|
181
237
|
else if (name === "ExitPlanMode" && typeof input.plan === "string" && input.plan.trim()) {
|
|
@@ -185,7 +241,14 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
185
241
|
out.push({ type: "tool_call", session_id: sessionId, ts, text: name, tool });
|
|
186
242
|
}
|
|
187
243
|
else {
|
|
188
|
-
out.push({
|
|
244
|
+
out.push({
|
|
245
|
+
type: "tool_call",
|
|
246
|
+
session_id: sessionId,
|
|
247
|
+
ts,
|
|
248
|
+
text: name,
|
|
249
|
+
tool,
|
|
250
|
+
payload: { input },
|
|
251
|
+
});
|
|
189
252
|
}
|
|
190
253
|
}
|
|
191
254
|
}
|
|
@@ -245,7 +308,9 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
245
308
|
type: "tool_result",
|
|
246
309
|
session_id: sessionId,
|
|
247
310
|
ts,
|
|
248
|
-
text: status !== "ok"
|
|
311
|
+
text: status !== "ok"
|
|
312
|
+
? `tool_result: ${status}${detail ? `: ${detail}` : ""}`
|
|
313
|
+
: "tool_result",
|
|
249
314
|
tool,
|
|
250
315
|
});
|
|
251
316
|
}
|
|
@@ -268,8 +333,40 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
268
333
|
cost_usd: numberOrUndef(obj.total_cost_usd),
|
|
269
334
|
},
|
|
270
335
|
});
|
|
271
|
-
|
|
272
|
-
|
|
336
|
+
// Structured-output runs (--json-schema): the typed `structured_output`
|
|
337
|
+
// value IS the answer — surface it verbatim as the final message so the
|
|
338
|
+
// engine's single validator receives pure JSON (never the prose result,
|
|
339
|
+
// which may narrate around it).
|
|
340
|
+
// Finality is claimed ONLY for a SUCCESS result (review sol #1): a
|
|
341
|
+
// `subtype:"error_*"` result carries partial/aborted text that must never
|
|
342
|
+
// win in AnswerAssembly as the authoritative answer — it rides as a plain
|
|
343
|
+
// message (and the error branch below marks the run) instead.
|
|
344
|
+
const successResult = !obj.subtype || obj.subtype === "success";
|
|
345
|
+
if (obj.structured_output !== undefined && obj.structured_output !== null) {
|
|
346
|
+
out.push({
|
|
347
|
+
type: "message",
|
|
348
|
+
session_id: sessionId,
|
|
349
|
+
ts,
|
|
350
|
+
text: JSON.stringify(obj.structured_output),
|
|
351
|
+
// The final_source stamp is the machine-checkable identity of the
|
|
352
|
+
// wire event finality came from (conformance asserts it per fixture).
|
|
353
|
+
...(successResult ? { final: true } : {}),
|
|
354
|
+
payload: {
|
|
355
|
+
structured_output: true,
|
|
356
|
+
...(successResult ? { final_source: "structured_output" } : {}),
|
|
357
|
+
},
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
else if (typeof obj.result === "string" && obj.result.trim()) {
|
|
361
|
+
// The terminal `result` IS claude's typed final answer (docs: "the last
|
|
362
|
+
// line of the stream is a result message with the final response text").
|
|
363
|
+
out.push({
|
|
364
|
+
type: "message",
|
|
365
|
+
session_id: sessionId,
|
|
366
|
+
ts,
|
|
367
|
+
text: obj.result,
|
|
368
|
+
...(successResult ? { final: true, payload: { final_source: "result" } } : {}),
|
|
369
|
+
});
|
|
273
370
|
}
|
|
274
371
|
if (obj.subtype && obj.subtype !== "success") {
|
|
275
372
|
// `error_max_turns` is NOT a run failure: the turn ended because it hit the
|
|
@@ -287,12 +384,53 @@ function parseClaudeEventStateful(obj, sessionId, pendingTools, deniedTools = ne
|
|
|
287
384
|
payload: { max_turns_reached: true, num_turns: numberOrUndef(obj.num_turns) },
|
|
288
385
|
});
|
|
289
386
|
}
|
|
387
|
+
else if (obj.subtype === "error_max_structured_output_retries") {
|
|
388
|
+
// The model exhausted its structured-output retries: a CONFORMANCE
|
|
389
|
+
// failure, not a run failure — the engine validator reports it as
|
|
390
|
+
// outputConformance failed and the run stays success-with-warnings.
|
|
391
|
+
out.push({
|
|
392
|
+
type: "thinking",
|
|
393
|
+
session_id: sessionId,
|
|
394
|
+
ts,
|
|
395
|
+
text: "structured-output retries exhausted; the final answer may not conform to the requested schema",
|
|
396
|
+
payload: { structured_output_retries_exhausted: true },
|
|
397
|
+
});
|
|
398
|
+
}
|
|
290
399
|
else {
|
|
291
|
-
out.push({
|
|
400
|
+
out.push({
|
|
401
|
+
type: "error",
|
|
402
|
+
session_id: sessionId,
|
|
403
|
+
ts,
|
|
404
|
+
error: `result subtype: ${obj.subtype}`,
|
|
405
|
+
});
|
|
292
406
|
}
|
|
293
407
|
}
|
|
294
408
|
return out;
|
|
295
409
|
}
|
|
410
|
+
if (type === "stream_event") {
|
|
411
|
+
// --include-partial-messages (F2.5 W-C4): raw API stream frames. Only
|
|
412
|
+
// MAIN-conversation text deltas become delta messages (subagent frames
|
|
413
|
+
// carry parent_tool_use_id); every other frame (message_start, thinking
|
|
414
|
+
// deltas, block boundaries) is recognized plumbing — the complete
|
|
415
|
+
// assistant/result events still deliver the authoritative text.
|
|
416
|
+
const delta = obj.event?.delta;
|
|
417
|
+
if (obj.parent_tool_use_id == null &&
|
|
418
|
+
obj.event?.type === "content_block_delta" &&
|
|
419
|
+
delta?.type === "text_delta" &&
|
|
420
|
+
typeof delta.text === "string" &&
|
|
421
|
+
delta.text) {
|
|
422
|
+
return [
|
|
423
|
+
{
|
|
424
|
+
type: "message",
|
|
425
|
+
session_id: sessionId,
|
|
426
|
+
ts,
|
|
427
|
+
text: delta.text,
|
|
428
|
+
payload: { delta: true },
|
|
429
|
+
},
|
|
430
|
+
];
|
|
431
|
+
}
|
|
432
|
+
return [];
|
|
433
|
+
}
|
|
296
434
|
if (type === "system")
|
|
297
435
|
return []; // recognized but uninteresting system subtypes
|
|
298
436
|
// Control-protocol plumbing frames. Incoming control_requests are consumed
|
|
@@ -325,7 +463,11 @@ function summarizeToolResultContent(content) {
|
|
|
325
463
|
if (!item || typeof item !== "object" || Array.isArray(item))
|
|
326
464
|
return "";
|
|
327
465
|
const rec = item;
|
|
328
|
-
return typeof rec["text"] === "string"
|
|
466
|
+
return typeof rec["text"] === "string"
|
|
467
|
+
? rec["text"]
|
|
468
|
+
: typeof rec["content"] === "string"
|
|
469
|
+
? rec["content"]
|
|
470
|
+
: "";
|
|
329
471
|
})
|
|
330
472
|
.filter(Boolean);
|
|
331
473
|
return redactSecrets(parts.join(" ")).trim().replace(/\s+/g, " ").slice(0, 1000);
|
|
@@ -338,6 +480,55 @@ function summarizeToolResultContent(content) {
|
|
|
338
480
|
function numberOrUndef(v) {
|
|
339
481
|
return typeof v === "number" ? v : undefined;
|
|
340
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Map claude's `api_retry.error` onto the documented category enum (headless
|
|
485
|
+
* docs). It IS the category label, but a hostile/newer frame could send
|
|
486
|
+
* anything — unrecognized values collapse to "unknown" so the typed field is
|
|
487
|
+
* never free-form prose (review sol #7).
|
|
488
|
+
*/
|
|
489
|
+
const CLAUDE_RETRY_CATEGORIES = new Set([
|
|
490
|
+
"authentication_failed",
|
|
491
|
+
"oauth_org_not_allowed",
|
|
492
|
+
"billing_error",
|
|
493
|
+
"rate_limit",
|
|
494
|
+
"overloaded",
|
|
495
|
+
"invalid_request",
|
|
496
|
+
"model_not_found",
|
|
497
|
+
"server_error",
|
|
498
|
+
"max_output_tokens",
|
|
499
|
+
"unknown",
|
|
500
|
+
]);
|
|
501
|
+
function claudeRetryCategory(raw) {
|
|
502
|
+
if (raw === undefined || raw === null)
|
|
503
|
+
return undefined;
|
|
504
|
+
const s = String(raw);
|
|
505
|
+
if (CLAUDE_RETRY_CATEGORIES.has(s))
|
|
506
|
+
return s;
|
|
507
|
+
// Claude 2.1.x sends the human error LINE here, not the bare label (the F3
|
|
508
|
+
// "Known trap"): classify the documented categories from their stable
|
|
509
|
+
// markers so bounded-retry policy keeps the reason. Adapter-layer prose
|
|
510
|
+
// parsing is the one allowed home for this (no-regex governance applies to
|
|
511
|
+
// consumers, which read only the typed category).
|
|
512
|
+
if (/rate.?limit|too many requests|(?:^|\D)429(?:\D|$)/i.test(s))
|
|
513
|
+
return "rate_limit";
|
|
514
|
+
if (/overloaded|(?:^|\D)529(?:\D|$)/i.test(s))
|
|
515
|
+
return "overloaded";
|
|
516
|
+
if (/authentication|unauthorized|(?:^|\D)401(?:\D|$)/i.test(s))
|
|
517
|
+
return "authentication_failed";
|
|
518
|
+
if (/oauth.*org|org.*not.*allowed/i.test(s))
|
|
519
|
+
return "oauth_org_not_allowed";
|
|
520
|
+
if (/billing|payment|credit balance|(?:^|\D)402(?:\D|$)/i.test(s))
|
|
521
|
+
return "billing_error";
|
|
522
|
+
if (/model.{0,20}not.{0,10}found/i.test(s))
|
|
523
|
+
return "model_not_found";
|
|
524
|
+
if (/max.?output.?tokens/i.test(s))
|
|
525
|
+
return "max_output_tokens";
|
|
526
|
+
if (/invalid.?request|(?:^|\D)400(?:\D|$)/i.test(s))
|
|
527
|
+
return "invalid_request";
|
|
528
|
+
if (/internal server error|server.?error|(?:^|\D)5\d\d(?:\D|$)/i.test(s))
|
|
529
|
+
return "server_error";
|
|
530
|
+
return "unknown";
|
|
531
|
+
}
|
|
341
532
|
function sumOrUndef(...values) {
|
|
342
533
|
const nums = values.filter((v) => typeof v === "number");
|
|
343
534
|
if (nums.length === 0)
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIxD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;AAC3E,MAAM,mBAAmB,GACvB,mGAAmG,CAAC;AAEtG,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACvF,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACxD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B,EAAE;IAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAS,EAAE,SAAiB,EAAyB,EAAE,CAC7D,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACxE,CAAC;AAQD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AACtD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,SAAS,gBAAgB,CACvB,SAAiB,EACjB,IAAY,EACZ,KAA8B;IAE9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,IAAI,0BAA0B,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS;YAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,4EAA4E;IAC5E,iCAAiC;IACjC,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,wEAAwE;QACxE,wEAAwE;QACxE,sEAAsE;QACtE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;QAC3F,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;0DAC0D;AAC1D,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAS,EAAE,SAAiB;IAC3D,OAAO,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,wBAAwB,CAC/B,GAAS,EACT,SAAiB,EACjB,YAAkC,EAClC,cAAc,IAAI,GAAG,EAAU;IAE/B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;IAEvB,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO;YACL;gBACE,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,SAAS;gBACrB,EAAE;gBACF,cAAc,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACrE,2EAA2E;gBAC3E,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrF;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACrD,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,EAAE,GAAiB;YACvB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,SAAS;YACrB,EAAE;YACF,uEAAuE;YACvE,uEAAuE;YACvE,uCAAuC;YACvC,IAAI,EAAE,cAAc,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YAC1D,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;gBACnC,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC3C,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;gBACjD,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;aAC/C;YACD,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE;SACjE,CAAC;QACF,6EAA6E;QAC7E,kEAAkE;QAClE,IAAI,iDAAiD,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,EAAE,CAAC,UAAU,GAAG;gBACd,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;aACnF,CAAC;QACJ,CAAC;QACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,SAAS,GAAG;gBACb,IAAI,EAAE,2CAA2C,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7D,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,SAAS;gBACb,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;aACnF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAClD,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACnD,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,UAAU;oBAAE,SAAS;gBACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;iBAAM,IACL,KAAK,EAAE,IAAI,KAAK,UAAU;gBAC1B,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAClC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EACrB,CAAC;gBACD,IAAI,UAAU;oBAAE,SAAS;gBACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAY;oBACpB,IAAI;oBACJ,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;oBACvB,MAAM,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC3D,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,IAAI,CAAC,MAAM;oBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACrD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC;oBAClE,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,SAAS;wBACrB,EAAE;wBACF,IAAI;wBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;qBACrD,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9D,8DAA8D;oBAC9D,wDAAwD;oBACxD,MAAM,KAAK,GAAI,KAAK,CAAC,KAAwD,CAAC,GAAG,CAC/E,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBACT,EAAE,EAAE,UAAU,CAAC,EAAE;wBACjB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC9B,MAAM,EACJ,CAAC,CAAC,MAAM,KAAK,WAAW;4BACtB,CAAC,CAAE,WAAqB;4BACxB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa;gCAC1B,CAAC,CAAE,aAAuB;gCAC1B,CAAC,CAAE,SAAmB;qBAC7B,CAAC,CACH,CAAC;oBACF,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,SAAS;wBACrB,EAAE;wBACF,IAAI,EAAE,IAAI;wBACV,IAAI;wBACJ,aAAa,EAAE,EAAE,KAAK,EAAE;qBACzB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1D,gEAAgE;oBAChE,sEAAsE;oBACtE,kEAAkE;oBAClE,yCAAyC;oBACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC7D,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,WAAW;4BACjB,UAAU,EAAE,SAAS;4BACrB,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,IAAI;4BACJ,aAAa,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE;yBACtD,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,WAAW;4BACjB,UAAU,EAAE,SAAS;4BACrB,EAAE;4BACF,IAAI,EAAE,IAAI;4BACV,IAAI;4BACJ,OAAO,EAAE,EAAE,KAAK,EAAE;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,cAAc,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1F,qEAAqE;oBACrE,oEAAoE;oBACpE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,SAAS;wBACrB,EAAE;wBACF,IAAI,EAAE,IAAI;wBACV,IAAI;wBACJ,OAAO,EAAE,EAAE,KAAK,EAAE;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACnD,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;gBACxC,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3D,IAAI,KAAK;oBAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,iEAAiE;gBACjE,sEAAsE;gBACtE,sEAAsE;gBACtE,iEAAiE;gBACjE,mEAAmE;gBACnE,uEAAuE;gBACvE,qEAAqE;gBACrE,6CAA6C;gBAC7C,IAAI,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,OAAO,EAAE,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAE,SAAS;wBACrB,EAAE;wBACF,IAAI,EAAE,yDAAyD,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;wBAC7F,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE;qBACtD,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,EAAE,IAAI,KAAK,iBAAiB,IAAI,OAAO,EAAE,CAAC;oBAClD,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAE,SAAS;wBACrB,EAAE;wBACF,IAAI,EAAE,uFAAuF,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1H,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE;qBACzD,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrF,MAAM,MAAM,GAAsB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/E,MAAM,IAAI,GAAY;oBACpB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,MAAM;oBAC5B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,OAAO;oBAC7B,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,MAAM,EAAE,MAAM;oBACtB,MAAM;oBACN,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC,CAAC,SAAS;oBACpF,eAAe,EAAE,MAAM,IAAI,SAAS;iBACrC,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,SAAS;oBACrB,EAAE;oBACF,IAAI,EACF,MAAM,KAAK,IAAI;wBACb,CAAC,CAAC,gBAAgB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBACxD,CAAC,CAAC,aAAa;oBACnB,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,+DAA+D;QAC/D,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,SAAS;YACrB,EAAE;YACF,KAAK,EAAE;gBACL,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC3C,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7C,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,2BAA2B,CAAC;gBACzF,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;aAC5C;SACF,CAAC,CAAC;QACH,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,gCAAgC;QAChC,mEAAmE;QACnE,0EAA0E;QAC1E,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC;QAChE,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC1E,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,SAAS;gBACrB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC3C,kEAAkE;gBAClE,sEAAsE;gBACtE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE;oBACP,iBAAiB,EAAE,IAAI;oBACvB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE;aACF,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,wEAAwE;YACxE,yEAAyE;YACzE,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,SAAS;gBACrB,EAAE;gBACF,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/E,CAAC,CAAC;QACL,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,4EAA4E;YAC5E,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,0EAA0E;YAC1E,8BAA8B;YAC9B,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,SAAS;oBACrB,EAAE;oBACF,IAAI,EAAE,uEAAuE;oBAC7E,OAAO,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;iBAC9E,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,qCAAqC,EAAE,CAAC;gBACjE,mEAAmE;gBACnE,kEAAkE;gBAClE,oEAAoE;gBACpE,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,SAAS;oBACrB,EAAE;oBACF,IAAI,EAAE,+FAA+F;oBACrG,OAAO,EAAE,EAAE,mCAAmC,EAAE,IAAI,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,SAAS;oBACrB,EAAE;oBACF,KAAK,EAAE,mBAAmB,GAAG,CAAC,OAAO,EAAE;iBACxC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/B,IACE,GAAG,CAAC,kBAAkB,IAAI,IAAI;YAC9B,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,qBAAqB;YACzC,KAAK,EAAE,IAAI,KAAK,YAAY;YAC5B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,KAAK,CAAC,IAAI,EACV,CAAC;YACD,OAAO;gBACL;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,SAAS;oBACrB,EAAE;oBACF,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBACzB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,CAAC,+CAA+C;IAEjF,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,6BAA6B;IAC7B,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,EAAE,CAAC;IAEhF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAA8B;IAC9D,MAAM,UAAU,GAAG;QACjB,KAAK,CAAC,OAAO,CAAC;QACd,KAAK,CAAC,KAAK,CAAC;QACZ,KAAK,CAAC,WAAW,CAAC;QAClB,KAAK,CAAC,MAAM,CAAC;QACb,KAAK,CAAC,SAAS,CAAC;KACjB,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAgB;IAClD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC7B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO;aAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YACxE,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,OAAO,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;gBACpC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;gBACb,CAAC,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;oBAClC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;oBAChB,CAAC,CAAC,EAAE,CAAC;QACX,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,uBAAuB;IACvB,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAC1B,GAAY;IAaZ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,CAA2C,CAAC;IACvF,2EAA2E;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,2EAA2E;IAC3E,kDAAkD;IAClD,IAAI,oDAAoD,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IAEtF,IAAI,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IACnE,IAAI,kDAAkD,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC/F,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAC5E,IAAI,qDAAqD,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,eAAe,CAAC;IAC1F,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACrE,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC/D,IAAI,uCAAuC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC9E,IAAI,4DAA4D,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,cAAc,CAAC;IAChG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,MAAiB;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CredentialProfile, CredentialProfileStatus } from "@claudexor/schema";
|
|
2
|
+
import { type ClaudeProfileRuntimeDeps } from "./index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Canonicalize a profile's isolation locator (INV-135): absolute, trailing
|
|
5
|
+
* separators stripped, symlinks resolved when the dir exists. Refuses the
|
|
6
|
+
* Claudexor-owned default native dir — profiles are ADDITIVE identities;
|
|
7
|
+
* ordinary ~/.claude is never a target, so profile operations cannot touch it.
|
|
8
|
+
*/
|
|
9
|
+
export declare function canonicalProfileConfigDir(locator: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* INV-135 strict profile routing for a run: exactly the profile's transport
|
|
12
|
+
* or a typed refusal — never the default ladder, never a cross-profile
|
|
13
|
+
* fallback. Pure resolution; the caller yields the refusal into the stream.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveClaudeProfileRoute(profile: CredentialProfile, specEnv: Record<string, string>, runtime: ClaudeProfileRuntimeDeps, abortSignal?: AbortSignal): Promise<{
|
|
16
|
+
route: "subscription" | "api_key";
|
|
17
|
+
nativeEnv: Record<string, string | null | undefined>;
|
|
18
|
+
subscriptionSource: "native_session" | "oauth_token_env" | null;
|
|
19
|
+
key: string | null;
|
|
20
|
+
oauthToken: string | null;
|
|
21
|
+
refusal: null;
|
|
22
|
+
} | {
|
|
23
|
+
refusal: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Doctor projection for one claude profile (INV-135). */
|
|
26
|
+
export declare function probeClaudeCredentialProfile(profile: CredentialProfile, runtime: ClaudeProfileRuntimeDeps, abortSignal?: AbortSignal): Promise<CredentialProfileStatus>;
|
|
27
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAKpF,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGjF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASjE;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,wBAAwB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CACN;IACE,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrD,kBAAkB,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAChE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,IAAI,CAAC;CACf,GACD;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CACtB,CAiDA;AAED,0DAA0D;AAC1D,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,wBAAwB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,uBAAuB,CAAC,CA6ElC"}
|
package/dist/profile.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { CredentialProfileStatus as CredentialProfileStatusSchema } from "@claudexor/schema";
|
|
2
|
+
import { nowIso, redactSecrets } from "@claudexor/util";
|
|
3
|
+
import { canonicalIsolationLocator, normalizeThroughExistingAncestor } from "@claudexor/core";
|
|
4
|
+
import { namespacedSecretRefBase } from "@claudexor/secrets";
|
|
5
|
+
import { claudeNativeEnv, BIN } from "./index.js";
|
|
6
|
+
import { defaultNativeClaudeConfigDir } from "./native-home.js";
|
|
7
|
+
/**
|
|
8
|
+
* Canonicalize a profile's isolation locator (INV-135): absolute, trailing
|
|
9
|
+
* separators stripped, symlinks resolved when the dir exists. Refuses the
|
|
10
|
+
* Claudexor-owned default native dir — profiles are ADDITIVE identities;
|
|
11
|
+
* ordinary ~/.claude is never a target, so profile operations cannot touch it.
|
|
12
|
+
*/
|
|
13
|
+
export function canonicalProfileConfigDir(locator) {
|
|
14
|
+
const dir = canonicalIsolationLocator(locator, "credential profile config dir");
|
|
15
|
+
const defaultDir = normalizeThroughExistingAncestor(defaultNativeClaudeConfigDir());
|
|
16
|
+
if (dir === defaultDir) {
|
|
17
|
+
throw new Error("credential profile config dir must not be the default native Claude dir (profiles are additive; INV-135)");
|
|
18
|
+
}
|
|
19
|
+
return dir;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* INV-135 strict profile routing for a run: exactly the profile's transport
|
|
23
|
+
* or a typed refusal — never the default ladder, never a cross-profile
|
|
24
|
+
* fallback. Pure resolution; the caller yields the refusal into the stream.
|
|
25
|
+
*/
|
|
26
|
+
export async function resolveClaudeProfileRoute(profile, specEnv, runtime, abortSignal) {
|
|
27
|
+
let nativeEnv = claudeNativeEnv(specEnv);
|
|
28
|
+
let key = null;
|
|
29
|
+
let oauthToken = null;
|
|
30
|
+
let subscriptionSource = null;
|
|
31
|
+
if (profile.credential_kind === "config_dir_login") {
|
|
32
|
+
try {
|
|
33
|
+
const configDir = canonicalProfileConfigDir(profile.isolation_locator ?? "");
|
|
34
|
+
nativeEnv = claudeNativeEnv(specEnv, configDir);
|
|
35
|
+
// configDir rides EXPLICITLY (round-17 BLOCK): the production probe
|
|
36
|
+
// re-normalizes its env, and without the explicit dir it would inspect
|
|
37
|
+
// the DEFAULT store while claiming to verify the profile.
|
|
38
|
+
const probe = await runtime.probeAuthStatus(BIN, { env: nativeEnv, configDir, abortSignal });
|
|
39
|
+
if (probe.authed)
|
|
40
|
+
subscriptionSource = "native_session";
|
|
41
|
+
else
|
|
42
|
+
return {
|
|
43
|
+
refusal: probe.probeError
|
|
44
|
+
? `credential profile "${profile.profile_id}": auth probe failed — ${probe.probeError}`
|
|
45
|
+
: `credential profile "${profile.profile_id}" has no verified claude.ai login in its config dir (run the profile login first)`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
return { refusal: err instanceof Error ? err.message : String(err) };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (profile.credential_kind === "oauth_token") {
|
|
53
|
+
const slotRefusal = claudeProfileSlotRefusal(profile);
|
|
54
|
+
if (slotRefusal)
|
|
55
|
+
return { refusal: slotRefusal };
|
|
56
|
+
oauthToken = profile.secret_ref ? runtime.resolveProfileSecret(profile.secret_ref) : null;
|
|
57
|
+
if (oauthToken)
|
|
58
|
+
subscriptionSource = "oauth_token_env";
|
|
59
|
+
else
|
|
60
|
+
return {
|
|
61
|
+
refusal: `credential profile "${profile.profile_id}": secret "${profile.secret_ref ?? "(missing ref)"}" is not stored`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const slotRefusal = claudeProfileSlotRefusal(profile);
|
|
66
|
+
if (slotRefusal)
|
|
67
|
+
return { refusal: slotRefusal };
|
|
68
|
+
key = profile.secret_ref ? runtime.resolveProfileSecret(profile.secret_ref) : null;
|
|
69
|
+
if (!key)
|
|
70
|
+
return {
|
|
71
|
+
refusal: `credential profile "${profile.profile_id}": secret "${profile.secret_ref ?? "(missing ref)"}" is not stored`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
route: subscriptionSource !== null ? "subscription" : "api_key",
|
|
76
|
+
nativeEnv,
|
|
77
|
+
subscriptionSource,
|
|
78
|
+
key,
|
|
79
|
+
oauthToken,
|
|
80
|
+
refusal: null,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** Doctor projection for one claude profile (INV-135). */
|
|
84
|
+
export async function probeClaudeCredentialProfile(profile, runtime, abortSignal) {
|
|
85
|
+
const base = { profile_id: profile.profile_id, harness_id: "claude" };
|
|
86
|
+
try {
|
|
87
|
+
if (profile.credential_kind === "config_dir_login") {
|
|
88
|
+
const dir = canonicalProfileConfigDir(profile.isolation_locator ?? "");
|
|
89
|
+
const probe = await runtime.probeAuthStatus(BIN, {
|
|
90
|
+
env: claudeNativeEnv(undefined, dir),
|
|
91
|
+
configDir: dir,
|
|
92
|
+
abortSignal,
|
|
93
|
+
});
|
|
94
|
+
if (probe.authed)
|
|
95
|
+
return CredentialProfileStatusSchema.parse({
|
|
96
|
+
...base,
|
|
97
|
+
availability: "available",
|
|
98
|
+
verification: "passed",
|
|
99
|
+
detail: "claude.ai login verified in the profile config dir",
|
|
100
|
+
last_verified_at: nowIso(),
|
|
101
|
+
});
|
|
102
|
+
// Readiness-edge contract (ARCHITECTURE §auth / DEVELOPMENT): a probe
|
|
103
|
+
// that could not decide is unknown+not_run; a cleanly logged-out dir is
|
|
104
|
+
// absent → unavailable+NOT_RUN (there is no login to have failed); a dir
|
|
105
|
+
// logged in under the WRONG method (e.g. an API key, not claude.ai) is
|
|
106
|
+
// present-but-wrong → available+failed.
|
|
107
|
+
if (probe.probeError)
|
|
108
|
+
return CredentialProfileStatusSchema.parse({
|
|
109
|
+
...base,
|
|
110
|
+
availability: "unknown",
|
|
111
|
+
verification: "not_run",
|
|
112
|
+
detail: probe.probeError,
|
|
113
|
+
});
|
|
114
|
+
if (!probe.loggedIn)
|
|
115
|
+
return CredentialProfileStatusSchema.parse({
|
|
116
|
+
...base,
|
|
117
|
+
availability: "unavailable",
|
|
118
|
+
verification: "not_run",
|
|
119
|
+
detail: "no claude.ai login in the profile config dir (run the profile login)",
|
|
120
|
+
});
|
|
121
|
+
return CredentialProfileStatusSchema.parse({
|
|
122
|
+
...base,
|
|
123
|
+
availability: "available",
|
|
124
|
+
verification: "failed",
|
|
125
|
+
detail: `logged in via ${probe.authMethod ?? "an unknown method"}, not claude.ai subscription auth`,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// Secret-ref kinds: the probe enforces the SAME slot binding as the run
|
|
129
|
+
// path (release wave round-15 #4) — a foreign-provider or bare ref is
|
|
130
|
+
// unavailable, never admitted-then-rejected at execution. The foreign
|
|
131
|
+
// slot is never even read.
|
|
132
|
+
const slotRefusal = claudeProfileSlotRefusal(profile);
|
|
133
|
+
if (slotRefusal)
|
|
134
|
+
return CredentialProfileStatusSchema.parse({
|
|
135
|
+
...base,
|
|
136
|
+
availability: "unavailable",
|
|
137
|
+
verification: "failed",
|
|
138
|
+
detail: slotRefusal,
|
|
139
|
+
});
|
|
140
|
+
// PRESENCE is the honest doctor fact here; liveness is the capability
|
|
141
|
+
// smoke's job, not a listing probe's.
|
|
142
|
+
const stored = profile.secret_ref
|
|
143
|
+
? runtime.resolveProfileSecret(profile.secret_ref) !== null
|
|
144
|
+
: false;
|
|
145
|
+
return CredentialProfileStatusSchema.parse({
|
|
146
|
+
...base,
|
|
147
|
+
availability: stored ? "available" : "unavailable",
|
|
148
|
+
verification: "not_run",
|
|
149
|
+
detail: stored
|
|
150
|
+
? `secret "${profile.secret_ref}" is stored`
|
|
151
|
+
: `secret "${profile.secret_ref ?? "(missing ref)"}" is not stored`,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
return CredentialProfileStatusSchema.parse({
|
|
156
|
+
...base,
|
|
157
|
+
availability: "unavailable",
|
|
158
|
+
verification: "failed",
|
|
159
|
+
detail: redactSecrets(err instanceof Error ? err.message : String(err)).slice(0, 300),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/** ONE owner of the claude slot binding, shared by the run route and the
|
|
164
|
+
* doctor probe (INV-135): a profile's ref must be a NAMESPACED managed slot
|
|
165
|
+
* bound to its own provider — a claude profile referencing openai:* would
|
|
166
|
+
* transmit that key to Anthropic, and a bare ref (e.g. "anthropic") would
|
|
167
|
+
* alias the engine-default credential. Null = the binding holds. */
|
|
168
|
+
function claudeProfileSlotRefusal(profile) {
|
|
169
|
+
const expected = profile.credential_kind === "oauth_token" ? "claude_oauth" : "anthropic";
|
|
170
|
+
if (namespacedSecretRefBase(profile.secret_ref) === expected)
|
|
171
|
+
return null;
|
|
172
|
+
return `credential profile "${profile.profile_id}": ${profile.credential_kind} secret_ref must use a namespaced ${expected} slot (base:profile, e.g. ${expected}:${profile.profile_id}; got "${profile.secret_ref ?? ""}")`;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
|
package/dist/smoke.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function smokeIsolatedApiKey(abortSignal?: AbortSignal): Promise<{
|
|
2
|
+
ok: boolean;
|
|
3
|
+
detail: string;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function smokeIsolatedOAuthToken(token: string, abortSignal?: AbortSignal): Promise<{
|
|
6
|
+
ok: boolean;
|
|
7
|
+
detail: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=smoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke.d.ts","sourceRoot":"","sources":["../src/smoke.ts"],"names":[],"mappings":"AAUA,wBAAsB,mBAAmB,CACvC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+C1C;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C1C"}
|