@linxiraos/pi-catalog 1.1.7 → 1.1.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/CHANGELOG.md +8 -8
- package/README.md +9 -8
- package/dist/types/build.d.ts +13 -8
- package/dist/types/cline-pass-model-id.d.ts +4 -0
- package/dist/types/compat/anthropic.d.ts +10 -4
- package/dist/types/compat/auth-ids.d.ts +4 -0
- package/dist/types/compat/auth.d.ts +7 -0
- package/dist/types/compat/axes.d.ts +50 -0
- package/dist/types/compat/behavior.d.ts +69 -0
- package/dist/types/compat/cascade.d.ts +37 -0
- package/dist/types/{variant-collapse.d.ts → compat/collapse.d.ts} +60 -35
- package/dist/types/compat/openai.d.ts +7 -26
- package/dist/types/compat/resolve.d.ts +15 -0
- package/dist/types/compat/revision.d.ts +41 -0
- package/dist/types/compat/taxonomy.d.ts +93 -0
- package/dist/types/compat/types.d.ts +565 -0
- package/dist/types/discovery/antigravity.d.ts +1 -1
- package/dist/types/discovery/cursor-proto.d.ts +6 -6
- package/dist/types/discovery/cursor.d.ts +5 -3
- package/dist/types/discovery/devin-proto.d.ts +363 -0
- package/dist/types/discovery/gemini-cli.d.ts +1 -1
- package/dist/types/identity/id.d.ts +1 -0
- package/dist/types/identity/index.d.ts +3 -3
- package/dist/types/identity/reference.d.ts +0 -10
- package/dist/types/index.d.ts +1 -1
- package/dist/types/model-thinking.d.ts +6 -24
- package/dist/types/provider-models/cline-pass.d.ts +22 -0
- package/dist/types/provider-models/descriptors.d.ts +20 -1
- package/dist/types/provider-models/models-dev-policies.d.ts +2 -1
- package/dist/types/provider-models/openai-compat.d.ts +59 -46
- package/dist/types/provider-models/special.d.ts +23 -2
- package/dist/types/types.d.ts +177 -13
- package/dist/types/wire/cline-pass.d.ts +21 -0
- package/dist/types/wire/devin-proto.d.ts +14 -0
- package/dist/types/wire/devin.d.ts +36 -0
- package/dist/types/wire/github-copilot.d.ts +31 -12
- package/package.json +6 -4
- package/src/build.ts +165 -48
- package/src/cline-pass-model-id.ts +11 -0
- package/src/compat/anthropic.ts +15 -136
- package/src/compat/auth-ids.ts +157 -0
- package/src/compat/auth.ts +60 -0
- package/src/compat/axes.ts +290 -0
- package/src/compat/behavior.ts +207 -0
- package/src/compat/cascade.ts +230 -0
- package/src/{variant-collapse.ts → compat/collapse.ts} +381 -773
- package/src/compat/openai.ts +17 -848
- package/src/compat/resolve.ts +1229 -0
- package/src/compat/revision.ts +154 -0
- package/src/compat/rules/README.md +315 -0
- package/src/compat/rules/auth/_order.kdl +13 -0
- package/src/compat/rules/auth/abliteration.kdl +9 -0
- package/src/compat/rules/auth/aiand.kdl +9 -0
- package/src/compat/rules/auth/aimlapi.kdl +3 -0
- package/src/compat/rules/auth/alibaba-coding-plan.kdl +5 -0
- package/src/compat/rules/auth/alibaba-token-plan.kdl +11 -0
- package/src/compat/rules/auth/amazon-bedrock.kdl +5 -0
- package/src/compat/rules/auth/anthropic.kdl +53 -0
- package/src/compat/rules/auth/azure.kdl +3 -0
- package/src/compat/rules/auth/baseten.kdl +9 -0
- package/src/compat/rules/auth/bedrock-mantle.kdl +5 -0
- package/src/compat/rules/auth/cerebras.kdl +9 -0
- package/src/compat/rules/auth/cline-pass.kdl +12 -0
- package/src/compat/rules/auth/cloudflare-ai-gateway.kdl +4 -0
- package/src/compat/rules/auth/coreweave.kdl +9 -0
- package/src/compat/rules/auth/cursor.kdl +5 -0
- package/src/compat/rules/auth/deepinfra.kdl +11 -0
- package/src/compat/rules/auth/deepseek.kdl +10 -0
- package/src/compat/rules/auth/devin.kdl +28 -0
- package/src/compat/rules/auth/exa.kdl +9 -0
- package/src/compat/rules/auth/firepass.kdl +14 -0
- package/src/compat/rules/auth/fireworks.kdl +16 -0
- package/src/compat/rules/auth/github-copilot.kdl +7 -0
- package/src/compat/rules/auth/gitlab-duo-agent.kdl +23 -0
- package/src/compat/rules/auth/gitlab-duo.kdl +24 -0
- package/src/compat/rules/auth/gmi-cloud.kdl +9 -0
- package/src/compat/rules/auth/google-antigravity.kdl +28 -0
- package/src/compat/rules/auth/google-gemini-cli.kdl +26 -0
- package/src/compat/rules/auth/google-vertex.kdl +5 -0
- package/src/compat/rules/auth/google.kdl +3 -0
- package/src/compat/rules/auth/groq.kdl +3 -0
- package/src/compat/rules/auth/huggingface.kdl +9 -0
- package/src/compat/rules/auth/kagi.kdl +9 -0
- package/src/compat/rules/auth/kilo.kdl +4 -0
- package/src/compat/rules/auth/kimi-code.kdl +18 -0
- package/src/compat/rules/auth/litellm.kdl +8 -0
- package/src/compat/rules/auth/llama.cpp.kdl +10 -0
- package/src/compat/rules/auth/lm-studio.kdl +7 -0
- package/src/compat/rules/auth/meta.kdl +9 -0
- package/src/compat/rules/auth/minimax-code-cn.kdl +9 -0
- package/src/compat/rules/auth/minimax-code.kdl +9 -0
- package/src/compat/rules/auth/minimax.kdl +3 -0
- package/src/compat/rules/auth/mistral.kdl +3 -0
- package/src/compat/rules/auth/moonshot.kdl +9 -0
- package/src/compat/rules/auth/nanogpt.kdl +9 -0
- package/src/compat/rules/auth/novita.kdl +12 -0
- package/src/compat/rules/auth/nvidia.kdl +11 -0
- package/src/compat/rules/auth/ollama-cloud.kdl +8 -0
- package/src/compat/rules/auth/ollama.kdl +9 -0
- package/src/compat/rules/auth/openai-codex-device.kdl +20 -0
- package/src/compat/rules/auth/openai-codex.kdl +33 -0
- package/src/compat/rules/auth/openai.kdl +3 -0
- package/src/compat/rules/auth/opencode-go.kdl +10 -0
- package/src/compat/rules/auth/opencode-zen.kdl +9 -0
- package/src/compat/rules/auth/openrouter.kdl +32 -0
- package/src/compat/rules/auth/parallel.kdl +9 -0
- package/src/compat/rules/auth/perplexity.kdl +7 -0
- package/src/compat/rules/auth/qianfan.kdl +9 -0
- package/src/compat/rules/auth/qwen-portal.kdl +9 -0
- package/src/compat/rules/auth/sakana.kdl +9 -0
- package/src/compat/rules/auth/siliconflow-cn.kdl +9 -0
- package/src/compat/rules/auth/siliconflow.kdl +9 -0
- package/src/compat/rules/auth/synthetic.kdl +9 -0
- package/src/compat/rules/auth/tavily.kdl +9 -0
- package/src/compat/rules/auth/together.kdl +14 -0
- package/src/compat/rules/auth/umans.kdl +9 -0
- package/src/compat/rules/auth/venice.kdl +9 -0
- package/src/compat/rules/auth/vercel-ai-gateway.kdl +8 -0
- package/src/compat/rules/auth/vllm.kdl +9 -0
- package/src/compat/rules/auth/wafer-serverless.kdl +11 -0
- package/src/compat/rules/auth/xai-oauth.kdl +27 -0
- package/src/compat/rules/auth/xai.kdl +9 -0
- package/src/compat/rules/auth/xiaomi-token-plan-ams.kdl +9 -0
- package/src/compat/rules/auth/xiaomi-token-plan-cn.kdl +9 -0
- package/src/compat/rules/auth/xiaomi-token-plan-sgp.kdl +9 -0
- package/src/compat/rules/auth/xiaomi.kdl +6 -0
- package/src/compat/rules/auth/yolo-auto.kdl +11 -0
- package/src/compat/rules/auth/zai-coding-plan.kdl +29 -0
- package/src/compat/rules/auth/zai.kdl +9 -0
- package/src/compat/rules/auth/zenmux.kdl +9 -0
- package/src/compat/rules/auth/zhipu-coding-plan.kdl +9 -0
- package/src/compat/rules/classes/amazon.kdl +21 -0
- package/src/compat/rules/classes/anthropic.kdl +285 -0
- package/src/compat/rules/classes/baidu.kdl +9 -0
- package/src/compat/rules/classes/bytedance.kdl +9 -0
- package/src/compat/rules/classes/cohere.kdl +7 -0
- package/src/compat/rules/classes/deepseek.kdl +80 -0
- package/src/compat/rules/classes/gemini.kdl +107 -0
- package/src/compat/rules/classes/gemma.kdl +14 -0
- package/src/compat/rules/classes/glm.kdl +115 -0
- package/src/compat/rules/classes/gpt-oss.kdl +16 -0
- package/src/compat/rules/classes/kimi.kdl +113 -0
- package/src/compat/rules/classes/meta.kdl +15 -0
- package/src/compat/rules/classes/mimo.kdl +32 -0
- package/src/compat/rules/classes/minimax.kdl +79 -0
- package/src/compat/rules/classes/mistral.kdl +19 -0
- package/src/compat/rules/classes/openai.kdl +42 -0
- package/src/compat/rules/classes/qwen.kdl +72 -0
- package/src/compat/rules/classes/stepfun.kdl +10 -0
- package/src/compat/rules/classes/xai.kdl +45 -0
- package/src/compat/rules/providers/abliteration.kdl +8 -0
- package/src/compat/rules/providers/aiand.kdl +19 -0
- package/src/compat/rules/providers/aimlapi.kdl +24 -0
- package/src/compat/rules/providers/alibaba-coding-plan.kdl +20 -0
- package/src/compat/rules/providers/alibaba-token-plan.kdl +35 -0
- package/src/compat/rules/providers/amazon-bedrock.kdl +36 -0
- package/src/compat/rules/providers/anthropic.kdl +24 -0
- package/src/compat/rules/providers/azure.kdl +19 -0
- package/src/compat/rules/providers/baseten.kdl +19 -0
- package/src/compat/rules/providers/bedrock-mantle.kdl +15 -0
- package/src/compat/rules/providers/cerebras.kdl +19 -0
- package/src/compat/rules/providers/cline-pass.kdl +8 -0
- package/src/compat/rules/providers/cloudflare-ai-gateway.kdl +26 -0
- package/src/compat/rules/providers/coreweave.kdl +16 -0
- package/src/compat/rules/providers/cursor.kdl +52 -0
- package/src/compat/rules/providers/deepseek.kdl +21 -0
- package/src/compat/rules/providers/firepass.kdl +15 -0
- package/src/compat/rules/providers/fireworks.kdl +43 -0
- package/src/compat/rules/providers/github-copilot.kdl +62 -0
- package/src/compat/rules/providers/gitlab-duo.kdl +24 -0
- package/src/compat/rules/providers/gmi-cloud.kdl +8 -0
- package/src/compat/rules/providers/google-antigravity.kdl +59 -0
- package/src/compat/rules/providers/google-gemini-cli.kdl +12 -0
- package/src/compat/rules/providers/google-vertex.kdl +25 -0
- package/src/compat/rules/providers/google.kdl +17 -0
- package/src/compat/rules/providers/groq.kdl +8 -0
- package/src/compat/rules/providers/huggingface.kdl +24 -0
- package/src/compat/rules/providers/kilo.kdl +51 -0
- package/src/compat/rules/providers/kimi-code.kdl +37 -0
- package/src/compat/rules/providers/llama.cpp.kdl +6 -0
- package/src/compat/rules/providers/lm-studio.kdl +6 -0
- package/src/compat/rules/providers/meta.kdl +10 -0
- package/src/compat/rules/providers/minimax-code-cn.kdl +13 -0
- package/src/compat/rules/providers/minimax-code.kdl +13 -0
- package/src/compat/rules/providers/minimax.kdl +6 -0
- package/src/compat/rules/providers/mistral.kdl +8 -0
- package/src/compat/rules/providers/moonshot.kdl +36 -0
- package/src/compat/rules/providers/nanogpt.kdl +100 -0
- package/src/compat/rules/providers/novita.kdl +34 -0
- package/src/compat/rules/providers/nvidia.kdl +27 -0
- package/src/compat/rules/providers/ollama-cloud.kdl +20 -0
- package/src/compat/rules/providers/ollama.kdl +12 -0
- package/src/compat/rules/providers/openai-codex.kdl +121 -0
- package/src/compat/rules/providers/openai.kdl +82 -0
- package/src/compat/rules/providers/opencode-go.kdl +97 -0
- package/src/compat/rules/providers/opencode-zen.kdl +103 -0
- package/src/compat/rules/providers/openrouter.kdl +66 -0
- package/src/compat/rules/providers/qianfan.kdl +8 -0
- package/src/compat/rules/providers/sakana.kdl +10 -0
- package/src/compat/rules/providers/synthetic.kdl +16 -0
- package/src/compat/rules/providers/together.kdl +22 -0
- package/src/compat/rules/providers/umans.kdl +28 -0
- package/src/compat/rules/providers/venice.kdl +46 -0
- package/src/compat/rules/providers/vercel-ai-gateway.kdl +73 -0
- package/src/compat/rules/providers/vllm.kdl +8 -0
- package/src/compat/rules/providers/wafer-serverless.kdl +35 -0
- package/src/compat/rules/providers/xai-oauth.kdl +48 -0
- package/src/compat/rules/providers/xai.kdl +50 -0
- package/src/compat/rules/providers/xiaomi-token-plan-ams.kdl +9 -0
- package/src/compat/rules/providers/xiaomi-token-plan-cn.kdl +9 -0
- package/src/compat/rules/providers/xiaomi-token-plan-sgp.kdl +9 -0
- package/src/compat/rules/providers/xiaomi.kdl +22 -0
- package/src/compat/rules/providers/yolo-auto.kdl +16 -0
- package/src/compat/rules/providers/zai.kdl +36 -0
- package/src/compat/rules/providers/zenmux.kdl +108 -0
- package/src/compat/rules/providers/zhipu-coding-plan.kdl +49 -0
- package/src/compat/rules/runtime/behavior.kdl +254 -0
- package/src/compat/rules/taxonomy/_collapse.kdl +747 -0
- package/src/compat/rules/taxonomy/_discovery.kdl +60 -0
- package/src/compat/rules/taxonomy/ai21.kdl +6 -0
- package/src/compat/rules/taxonomy/amazon.kdl +8 -0
- package/src/compat/rules/taxonomy/anthropic.kdl +17 -0
- package/src/compat/rules/taxonomy/baidu.kdl +5 -0
- package/src/compat/rules/taxonomy/bytedance.kdl +5 -0
- package/src/compat/rules/taxonomy/cohere.kdl +6 -0
- package/src/compat/rules/taxonomy/deepseek.kdl +18 -0
- package/src/compat/rules/taxonomy/gemini.kdl +9 -0
- package/src/compat/rules/taxonomy/gemma.kdl +3 -0
- package/src/compat/rules/taxonomy/glm.kdl +17 -0
- package/src/compat/rules/taxonomy/gpt-oss.kdl +11 -0
- package/src/compat/rules/taxonomy/kimi.kdl +20 -0
- package/src/compat/rules/taxonomy/meta.kdl +10 -0
- package/src/compat/rules/taxonomy/mimo.kdl +7 -0
- package/src/compat/rules/taxonomy/minimax.kdl +9 -0
- package/src/compat/rules/taxonomy/mistral.kdl +7 -0
- package/src/compat/rules/taxonomy/openai.kdl +43 -0
- package/src/compat/rules/taxonomy/qwen.kdl +33 -0
- package/src/compat/rules/taxonomy/stepfun.kdl +5 -0
- package/src/compat/rules/taxonomy/unknown.kdl +3 -0
- package/src/compat/rules/taxonomy/xai.kdl +12 -0
- package/src/compat/rules.d.json.ts +5 -0
- package/src/compat/rules.json +16933 -0
- package/src/compat/taxonomy.ts +452 -0
- package/src/compat/types.ts +586 -0
- package/src/discovery/antigravity.ts +5 -6
- package/src/discovery/codex.ts +12 -7
- package/src/discovery/cursor-proto.ts +7 -7
- package/src/discovery/cursor.ts +47 -58
- package/src/discovery/devin-proto.ts +613 -0
- package/src/discovery/devin.ts +358 -52
- package/src/discovery/gemini-cli.ts +14 -11
- package/src/discovery/gemini.ts +2 -0
- package/src/identity/dialect.ts +2 -2
- package/src/identity/id.ts +12 -0
- package/src/identity/index.ts +3 -3
- package/src/identity/reference.ts +30 -4
- package/src/index.ts +1 -1
- package/src/model-manager.ts +4 -4
- package/src/model-thinking.ts +6 -810
- package/src/model-tokenizer.ts +37 -44
- package/src/models.json +86187 -23440
- package/src/models.ts +6 -1
- package/src/provider-models/bundled-references.ts +3 -1
- package/src/provider-models/cline-pass.ts +226 -0
- package/src/provider-models/descriptors.ts +18 -0
- package/src/provider-models/google.ts +14 -5
- package/src/provider-models/models-dev-policies.ts +4 -29
- package/src/provider-models/ollama.ts +15 -2
- package/src/provider-models/openai-compat.ts +794 -520
- package/src/provider-models/special.ts +186 -2
- package/src/types.ts +197 -11
- package/src/wire/cline-pass.ts +35 -0
- package/src/wire/devin-proto.ts +30 -0
- package/src/wire/devin.ts +72 -0
- package/src/wire/github-copilot.ts +49 -7
- package/dist/types/compat/bedrock.d.ts +0 -3
- package/dist/types/compat/devin.d.ts +0 -9
- package/dist/types/identity/classify.d.ts +0 -69
- package/dist/types/identity/family.d.ts +0 -243
- package/dist/types/identity/markers.d.ts +0 -4
- package/dist/types/openai-pricing.d.ts +0 -17
- package/src/compat/bedrock.ts +0 -153
- package/src/compat/devin.ts +0 -12
- package/src/identity/classify.ts +0 -242
- package/src/identity/family.ts +0 -496
- package/src/identity/markers.ts +0 -49
- package/src/openai-pricing.ts +0 -29
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime model-identity taxonomy: classifies wire model ids into
|
|
3
|
+
* `(class, family, revision)` ranks, applies reviewed identity overrides, and
|
|
4
|
+
* exposes the collapse/discovery vocabularies.
|
|
5
|
+
*
|
|
6
|
+
* Faithful port of the o2 reference (`taxonomy.rs` / `classify.rs`):
|
|
7
|
+
* matchers rank `exact(4) > bounded(3) > namespace(2) > prefix(1) > glob(0)`
|
|
8
|
+
* with token byte length as tiebreak; equal cross-class or cross-family ranks
|
|
9
|
+
* throw unless classification is `lenient` (discovery normalization).
|
|
10
|
+
*/
|
|
11
|
+
import type { Effort } from "../effort.js";
|
|
12
|
+
import type { ModelIdentity } from "./types.js";
|
|
13
|
+
/** Two classes (or two families) tie for one model id. */
|
|
14
|
+
export declare class AmbiguousIdentityError extends Error {
|
|
15
|
+
readonly model: string;
|
|
16
|
+
readonly first: string;
|
|
17
|
+
readonly second: string;
|
|
18
|
+
constructor(model: string, first: string, second: string, kind: "class" | "family");
|
|
19
|
+
}
|
|
20
|
+
/** Options for {@link classifyModel}. */
|
|
21
|
+
export interface ClassifyOptions {
|
|
22
|
+
/** Observation time for override expiry; absent keeps expiring overrides active. */
|
|
23
|
+
observedAtMs?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Swallow ambiguity instead of throwing: an ambiguous class resolves to
|
|
26
|
+
* `unknown`, an ambiguous family to no family. Discovery normalization
|
|
27
|
+
* uses this; catalog compilation stays strict.
|
|
28
|
+
*/
|
|
29
|
+
lenient?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Result of collapsing a wire id through the suffix vocabulary. */
|
|
32
|
+
export interface CollapsedVariant {
|
|
33
|
+
/** Logical id after suffix collapse (original bytes preserved where possible). */
|
|
34
|
+
logicalId: string;
|
|
35
|
+
/** Effort tier collapsed out of the id, when it was an effort variant. */
|
|
36
|
+
effort?: Effort | "off";
|
|
37
|
+
/** Whether the id carried a thinking-variant suffix. */
|
|
38
|
+
thinkingVariant: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Collapses a declared thinking or effort suffix from a model identifier.
|
|
42
|
+
* Exact `effort-family` aliases collapse to the family's logical model
|
|
43
|
+
* without assigning an effort; provider-scoped effort lanes additionally
|
|
44
|
+
* collapse an effort suffix wedged before the lane token.
|
|
45
|
+
*/
|
|
46
|
+
export declare function collapseVariantId(provider: string, model: string): CollapsedVariant;
|
|
47
|
+
/**
|
|
48
|
+
* Removes the first declared thinking-variant suffix token from a model id.
|
|
49
|
+
*
|
|
50
|
+
* Unlike {@link collapseVariantId}, this vocabulary-only helper also handles an
|
|
51
|
+
* infix token used to pair live discovery siblings. Negated forms such as
|
|
52
|
+
* `non-thinking` and `no-thinking` are not variants.
|
|
53
|
+
*/
|
|
54
|
+
export declare function stripThinkingVariantSuffix(model: string): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Classifies a model into its structured identity: reviewed override first,
|
|
57
|
+
* then suffix collapse, then class/family/revision ranks over the logical id.
|
|
58
|
+
*
|
|
59
|
+
* @throws AmbiguousIdentityError on equal-rank cross-class or cross-family
|
|
60
|
+
* matches unless `opts.lenient`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function classifyModel(provider: string, modelId: string, opts?: ClassifyOptions): ModelIdentity;
|
|
63
|
+
/**
|
|
64
|
+
* Strips a declared billing-variant suffix (`-free`, `-contributor`) from a
|
|
65
|
+
* wire identifier, returning the base id it shares a transport with.
|
|
66
|
+
*/
|
|
67
|
+
export declare function billingVariantPlain(wireModel: string): string | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the plain wire identifier when `wireModel` is a declared
|
|
70
|
+
* provider-scoped routing variant (`gpt-5.6-luna-wm` → `gpt-5.6-luna`).
|
|
71
|
+
*/
|
|
72
|
+
export declare function routingVariantPlain(provider: string, wireModel: string): string | undefined;
|
|
73
|
+
/** Whether any routing-variant suffix is declared for `provider`. */
|
|
74
|
+
export declare function hasRoutingVariants(provider: string): boolean;
|
|
75
|
+
/** Whether `provider`'s discovery recovers canonical intrinsic parameters. */
|
|
76
|
+
export declare function recoversCanonicalParams(provider: string): boolean;
|
|
77
|
+
/** The full responses-route hint group containing `provider`, when declared. */
|
|
78
|
+
export declare function responsesHintGroup(provider: string): readonly string[] | undefined;
|
|
79
|
+
/** Exact model ids authored onto a provider's responses route. */
|
|
80
|
+
export declare function responsesRouteModels(provider: string): readonly string[] | undefined;
|
|
81
|
+
/** Whether `provider` declares dynamic effort-sibling families. */
|
|
82
|
+
export declare function supportsDynamicEffortSiblings(provider: string): boolean;
|
|
83
|
+
/** The reviewed effort-family seeds declared for `provider`. */
|
|
84
|
+
export declare function effortFamiliesFor(provider: string): readonly {
|
|
85
|
+
logical: string;
|
|
86
|
+
aliases: readonly string[];
|
|
87
|
+
}[];
|
|
88
|
+
/** The standard-lane id when `model` ends in a declared effort lane for `provider`. */
|
|
89
|
+
export declare function stripEffortLane(provider: string, model: string): string;
|
|
90
|
+
/** The declared collapse suffix vocabulary (read-only view for collapse logic). */
|
|
91
|
+
export declare function collapseVocabulary(): import("./types.js").CompiledCollapse;
|
|
92
|
+
/** The declared discovery vocabulary (read-only view). */
|
|
93
|
+
export declare function discoveryVocabulary(): import("./types.js").CompiledDiscovery;
|
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type vocabulary of the compiled compat rules: the JSON shape emitted
|
|
3
|
+
* by `scripts/compat-compiler` into `rules.json`, plus the structured
|
|
4
|
+
* identity/resolve types the runtime engine (`taxonomy.ts`, `cascade.ts`,
|
|
5
|
+
* `behavior.ts`, `resolve.ts`) exposes to consumers.
|
|
6
|
+
*/
|
|
7
|
+
import type { Effort } from "../effort.js";
|
|
8
|
+
import type { ThinkingControlMode } from "../types.js";
|
|
9
|
+
import type { RevisionOp } from "./revision.js";
|
|
10
|
+
/** Class-membership matcher kinds, most to least specific. */
|
|
11
|
+
export type MatcherKind = "exact" | "bounded" | "namespace" | "prefix" | "glob";
|
|
12
|
+
/** One compiled class-membership matcher (token pre-lowercased). */
|
|
13
|
+
export interface CompiledMatcher {
|
|
14
|
+
kind: MatcherKind;
|
|
15
|
+
token: string;
|
|
16
|
+
/** Namespace matchers only: accept dot/colon segments with token boundaries. */
|
|
17
|
+
bounded?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** One compiled product-family rule (glob pre-lowercased). */
|
|
20
|
+
export interface CompiledFamily {
|
|
21
|
+
id: string;
|
|
22
|
+
glob: string;
|
|
23
|
+
priority: number;
|
|
24
|
+
}
|
|
25
|
+
/** One compiled revision-extraction prefix (pre-lowercased). */
|
|
26
|
+
export interface CompiledRevisionPrefix {
|
|
27
|
+
prefix: string;
|
|
28
|
+
anywhere?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** One compiled reviewed identity correction. */
|
|
31
|
+
export interface CompiledIdentityOverride {
|
|
32
|
+
id: string;
|
|
33
|
+
provider?: string;
|
|
34
|
+
model: string;
|
|
35
|
+
logical?: string;
|
|
36
|
+
class?: string;
|
|
37
|
+
family?: string;
|
|
38
|
+
/** Canonical `major.minor.patch`. */
|
|
39
|
+
revision?: string;
|
|
40
|
+
effort?: Effort | "off";
|
|
41
|
+
thinkingVariant?: boolean;
|
|
42
|
+
rationale: string;
|
|
43
|
+
provenance: string;
|
|
44
|
+
expiresAtMs?: number;
|
|
45
|
+
}
|
|
46
|
+
/** One compiled model class: matchers, families, revision rules, overrides. */
|
|
47
|
+
export interface CompiledClass {
|
|
48
|
+
id: string;
|
|
49
|
+
matchers: CompiledMatcher[];
|
|
50
|
+
families: CompiledFamily[];
|
|
51
|
+
revisionPrefixes: CompiledRevisionPrefix[];
|
|
52
|
+
skipBare: string[];
|
|
53
|
+
overrides: CompiledIdentityOverride[];
|
|
54
|
+
}
|
|
55
|
+
/** One collapse suffix rule (thinking or effort variant). */
|
|
56
|
+
export interface CompiledCollapseSuffix {
|
|
57
|
+
suffix: string;
|
|
58
|
+
/** Present on `effort-suffix` rules. */
|
|
59
|
+
effort?: Effort | "off";
|
|
60
|
+
/** True on `thinking-suffix` rules. */
|
|
61
|
+
thinking?: boolean;
|
|
62
|
+
exceptBarePrefix?: string;
|
|
63
|
+
}
|
|
64
|
+
/** One provider-scoped effort-lane suffix rule. */
|
|
65
|
+
export interface CompiledEffortLane {
|
|
66
|
+
suffix: string;
|
|
67
|
+
providers: string[];
|
|
68
|
+
barePrefix?: string;
|
|
69
|
+
}
|
|
70
|
+
/** One provider-scoped routing-variant suffix rule. */
|
|
71
|
+
export interface CompiledRoutingVariant {
|
|
72
|
+
suffix: string;
|
|
73
|
+
providers: string[];
|
|
74
|
+
}
|
|
75
|
+
/** One reviewed provider-scoped effort-sibling family seed. */
|
|
76
|
+
export interface CompiledEffortFamily {
|
|
77
|
+
provider: string;
|
|
78
|
+
logical: string;
|
|
79
|
+
aliases: string[];
|
|
80
|
+
}
|
|
81
|
+
/** Per-effort routing tier keys (`"off"` = thinking disabled). */
|
|
82
|
+
export type VariantTier = Effort | "off";
|
|
83
|
+
/**
|
|
84
|
+
* Revision placeholder in a templated `variant-family` (`gemini-{rev}-flash`).
|
|
85
|
+
* A family whose id carries it is instantiated once per live revision that
|
|
86
|
+
* discovery advertises, so new generations of a lineage collapse without a
|
|
87
|
+
* new reviewed entry.
|
|
88
|
+
*/
|
|
89
|
+
export declare const REVISION_PLACEHOLDER = "{rev}";
|
|
90
|
+
/**
|
|
91
|
+
* One reviewed provider-scoped variant family: a logical model whose provider
|
|
92
|
+
* serves per-effort/thinking sibling wire ids, with explicit routing, ladder,
|
|
93
|
+
* and wire facts. Compiled from `variant-family` nodes in `_collapse.kdl`.
|
|
94
|
+
*/
|
|
95
|
+
export interface CompiledVariantFamily {
|
|
96
|
+
provider: string;
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
/**
|
|
100
|
+
* Revision constraint (`">=3.6"`) gating instantiation of a
|
|
101
|
+
* {@link REVISION_PLACEHOLDER} template; absent on concrete families.
|
|
102
|
+
*/
|
|
103
|
+
revision?: string;
|
|
104
|
+
/** Member wire ids in priority order. */
|
|
105
|
+
members: string[];
|
|
106
|
+
/** Preferred default wire id when live. */
|
|
107
|
+
defaultMember?: string;
|
|
108
|
+
/** Wire ids upstream no longer serves. */
|
|
109
|
+
retiredMembers?: string[];
|
|
110
|
+
/** Per-effort upstream wire id. */
|
|
111
|
+
routing: Partial<Record<VariantTier, string>>;
|
|
112
|
+
/** Explicit per-effort thinking budgets (budget-mode families). */
|
|
113
|
+
effortBudgets?: Partial<Record<Effort, number>>;
|
|
114
|
+
/** Thinking control mode of the collapsed surface. */
|
|
115
|
+
mode?: ThinkingControlMode;
|
|
116
|
+
/** Effort ladder of the collapsed surface, least → most intensive. */
|
|
117
|
+
efforts?: Effort[];
|
|
118
|
+
defaultLevel?: Effort;
|
|
119
|
+
requiresEffort?: boolean;
|
|
120
|
+
suppressWhenOff?: boolean;
|
|
121
|
+
/** Collapsed spec carries no thinking surface (single-wire-id renames). */
|
|
122
|
+
noThinking?: boolean;
|
|
123
|
+
preserveAbsentEffortRoutes?: boolean;
|
|
124
|
+
/** Retired/recycled selector ids aliasing to this family without membership. */
|
|
125
|
+
extraAliases?: string[];
|
|
126
|
+
}
|
|
127
|
+
/** The single collapse vocabulary. */
|
|
128
|
+
export interface CompiledCollapse {
|
|
129
|
+
suffixes: CompiledCollapseSuffix[];
|
|
130
|
+
/** Bounded (possibly infix) tokens naming the thinking sibling of a bare twin; pair derivation only. */
|
|
131
|
+
pairTokens: string[];
|
|
132
|
+
lanes: CompiledEffortLane[];
|
|
133
|
+
routingVariants: CompiledRoutingVariant[];
|
|
134
|
+
effortFamilies: CompiledEffortFamily[];
|
|
135
|
+
/** Reviewed per-provider variant families (hand-curated routing). */
|
|
136
|
+
variantFamilies: CompiledVariantFamily[];
|
|
137
|
+
/** Provider-scoped selector aliases: `provider → { alias → logical id }`. */
|
|
138
|
+
providerAliases: Record<string, Record<string, string>>;
|
|
139
|
+
}
|
|
140
|
+
/** The discovery vocabulary. */
|
|
141
|
+
export interface CompiledDiscovery {
|
|
142
|
+
canonicalRecovery: string[];
|
|
143
|
+
responsesHintGroups: string[][];
|
|
144
|
+
responsesRouteModels: Record<string, string[]>;
|
|
145
|
+
billingVariantSuffixes: string[];
|
|
146
|
+
/** Routing/quantization markers resellers append without changing identity. */
|
|
147
|
+
trailingMarkers: string[];
|
|
148
|
+
/** Markers stripped only for proxy-reference recovery, never canonical coalescing. */
|
|
149
|
+
referenceOnlyTrailingMarkers: string[];
|
|
150
|
+
/** Provider → reviewed base ids the generator projects `-pro` reasoning aliases from. */
|
|
151
|
+
proReasoningAliases: Record<string, string[]>;
|
|
152
|
+
/** Providers swept for stale generated pro aliases during regeneration. */
|
|
153
|
+
proReasoningSweep: string[];
|
|
154
|
+
/** Vendor-lineage tokens anchoring canonical-family extraction and version-separator insertion. */
|
|
155
|
+
canonicalFamilyTokens: string[];
|
|
156
|
+
/** Reseller wrapper prefixes stripped during canonical candidate expansion. */
|
|
157
|
+
wrapperPrefixes: string[];
|
|
158
|
+
/** Synthetic namespace prefixes (`hf:`) stripped during canonical candidate expansion. */
|
|
159
|
+
syntheticPrefixes: string[];
|
|
160
|
+
}
|
|
161
|
+
/** Compiled taxonomy: identity classes plus collapse/discovery vocabularies. */
|
|
162
|
+
export interface CompiledTaxonomy {
|
|
163
|
+
classes: CompiledClass[];
|
|
164
|
+
collapse: CompiledCollapse;
|
|
165
|
+
discovery: CompiledDiscovery;
|
|
166
|
+
}
|
|
167
|
+
/** One compiled `models` selector alternative. */
|
|
168
|
+
export interface CompiledSelector {
|
|
169
|
+
kind: "exact" | "glob" | "token";
|
|
170
|
+
value: string;
|
|
171
|
+
}
|
|
172
|
+
/** One comparison term of a compiled revision constraint. */
|
|
173
|
+
export interface CompiledRevisionTerm {
|
|
174
|
+
op: RevisionOp;
|
|
175
|
+
revision: string;
|
|
176
|
+
}
|
|
177
|
+
/** One compiled cascade conjunction rule. */
|
|
178
|
+
export interface CompiledRule {
|
|
179
|
+
/** `file:line` diagnostic label. */
|
|
180
|
+
source: string;
|
|
181
|
+
class?: string;
|
|
182
|
+
providers?: string[];
|
|
183
|
+
family?: string;
|
|
184
|
+
revision?: CompiledRevisionTerm[];
|
|
185
|
+
models?: CompiledSelector[];
|
|
186
|
+
priority?: number;
|
|
187
|
+
/** Wire axis assignments keyed by resolved camelCase field. */
|
|
188
|
+
wire?: Record<string, unknown>;
|
|
189
|
+
/** Thinking axis assignments keyed by `ThinkingConfig` field. */
|
|
190
|
+
thinking?: Record<string, unknown>;
|
|
191
|
+
/** Catalog-data axis assignments. */
|
|
192
|
+
catalog?: Record<string, unknown>;
|
|
193
|
+
}
|
|
194
|
+
/** Compiled cascade: flat rule list in file order. */
|
|
195
|
+
export interface CompiledCascade {
|
|
196
|
+
rules: CompiledRule[];
|
|
197
|
+
}
|
|
198
|
+
/** Exact/prefix/substring/glob matcher token list used by behavior nodes. */
|
|
199
|
+
export interface CompiledMatchList {
|
|
200
|
+
exact?: string[];
|
|
201
|
+
prefix?: string[];
|
|
202
|
+
substring?: string[];
|
|
203
|
+
glob?: string[];
|
|
204
|
+
/** Bounded identifier tokens: match when a non-alphanumeric-delimited part equals the token. */
|
|
205
|
+
token?: string[];
|
|
206
|
+
}
|
|
207
|
+
/** Conservative include/exclude prefix heuristic for discovered OpenAI ids. */
|
|
208
|
+
export interface CompiledResponsesHeuristic {
|
|
209
|
+
includePrefixes: string[];
|
|
210
|
+
excludePrefixes: string[];
|
|
211
|
+
excludeSubstrings: string[];
|
|
212
|
+
}
|
|
213
|
+
/** Extra declared operations for discovered provider models. */
|
|
214
|
+
export interface CompiledModelOperations {
|
|
215
|
+
provider: string;
|
|
216
|
+
models: CompiledMatchList;
|
|
217
|
+
operations: string[];
|
|
218
|
+
}
|
|
219
|
+
/** Cursor effort-suffix sibling vocabulary. */
|
|
220
|
+
export interface CompiledCursorEffort {
|
|
221
|
+
familyMarker: string;
|
|
222
|
+
tiers: string[];
|
|
223
|
+
}
|
|
224
|
+
/** One fixed Cursor `requestedModel` parameter. */
|
|
225
|
+
export interface CompiledCursorParameter {
|
|
226
|
+
model: string;
|
|
227
|
+
id: string;
|
|
228
|
+
value: string;
|
|
229
|
+
}
|
|
230
|
+
/** One provider quota-scope table. */
|
|
231
|
+
export interface CompiledQuotaRule {
|
|
232
|
+
provider: string;
|
|
233
|
+
tiers: {
|
|
234
|
+
label: string;
|
|
235
|
+
models: string[];
|
|
236
|
+
}[];
|
|
237
|
+
fallbacks: {
|
|
238
|
+
label: string;
|
|
239
|
+
substring: string;
|
|
240
|
+
}[];
|
|
241
|
+
}
|
|
242
|
+
/** Provider-default wire model for model-less hosted operations. */
|
|
243
|
+
export interface CompiledHostedDefault {
|
|
244
|
+
provider: string;
|
|
245
|
+
model: string;
|
|
246
|
+
}
|
|
247
|
+
/** One API-routing alternative within an `api-routes` node. */
|
|
248
|
+
export interface CompiledApiRoute {
|
|
249
|
+
api: string;
|
|
250
|
+
match: CompiledMatchList;
|
|
251
|
+
stripPrefix?: boolean;
|
|
252
|
+
}
|
|
253
|
+
/** Provider API-routing table for discovered model ids. */
|
|
254
|
+
export interface CompiledApiRoutes {
|
|
255
|
+
provider: string;
|
|
256
|
+
default?: string;
|
|
257
|
+
routes: CompiledApiRoute[];
|
|
258
|
+
}
|
|
259
|
+
/** One provider model-limits pin. */
|
|
260
|
+
export interface CompiledModelLimits {
|
|
261
|
+
provider: string;
|
|
262
|
+
limits: {
|
|
263
|
+
model: string;
|
|
264
|
+
context?: number;
|
|
265
|
+
maxTokens?: number;
|
|
266
|
+
}[];
|
|
267
|
+
}
|
|
268
|
+
/** Provider roster exclusion list (non-text SKUs, unsupported surfaces). */
|
|
269
|
+
export interface CompiledExcludeModels {
|
|
270
|
+
provider: string;
|
|
271
|
+
match: CompiledMatchList;
|
|
272
|
+
}
|
|
273
|
+
/** Provider plan-requirement tiers keyed by matcher token lists. */
|
|
274
|
+
export interface CompiledPlanRequirement {
|
|
275
|
+
provider: string;
|
|
276
|
+
tiers: {
|
|
277
|
+
tier: string;
|
|
278
|
+
match: CompiledMatchList;
|
|
279
|
+
}[];
|
|
280
|
+
}
|
|
281
|
+
/** Cross-provider pricing-peer aliases for one provider. */
|
|
282
|
+
export interface CompiledPricingPeer {
|
|
283
|
+
provider: string;
|
|
284
|
+
peers: string[];
|
|
285
|
+
aliases: {
|
|
286
|
+
model: string;
|
|
287
|
+
peerId: string;
|
|
288
|
+
}[];
|
|
289
|
+
}
|
|
290
|
+
/** Compiled runtime behavior vocabulary (`runtime/behavior.kdl`). */
|
|
291
|
+
export interface CompiledBehavior {
|
|
292
|
+
openaiResponsesHeuristic?: CompiledResponsesHeuristic;
|
|
293
|
+
modelOperations: CompiledModelOperations[];
|
|
294
|
+
cursorEffort?: CompiledCursorEffort;
|
|
295
|
+
cursorParameters: CompiledCursorParameter[];
|
|
296
|
+
quotaTiers: CompiledQuotaRule[];
|
|
297
|
+
hostedDefaults: CompiledHostedDefault[];
|
|
298
|
+
apiRoutes: CompiledApiRoutes[];
|
|
299
|
+
modelLimits: CompiledModelLimits[];
|
|
300
|
+
excludeModels: CompiledExcludeModels[];
|
|
301
|
+
planRequirements: CompiledPlanRequirement[];
|
|
302
|
+
pricingPeers: CompiledPricingPeer[];
|
|
303
|
+
retiredProviders: string[];
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* A string setting from `auth/*.kdl` that may be overridden by environment
|
|
307
|
+
* variables (consulted in order before `value`), stored obfuscated, or
|
|
308
|
+
* resolved at runtime by a named `@linxiraos/pi-ai` hook.
|
|
309
|
+
*/
|
|
310
|
+
export interface CompiledAuthValue {
|
|
311
|
+
value?: string;
|
|
312
|
+
env?: string[];
|
|
313
|
+
/** `base64`: the rule tree stores the value base64-encoded; decode before use. */
|
|
314
|
+
encoding?: "base64";
|
|
315
|
+
/** Hook name resolving the value at runtime; mutually exclusive with `value`. */
|
|
316
|
+
hook?: string;
|
|
317
|
+
}
|
|
318
|
+
/** One API-key validation probe run after the user pastes a key. */
|
|
319
|
+
export type CompiledAuthValidation = {
|
|
320
|
+
kind: "chat-completions";
|
|
321
|
+
label?: string;
|
|
322
|
+
baseUrl: string;
|
|
323
|
+
model: string;
|
|
324
|
+
tolerateModelDenied?: boolean;
|
|
325
|
+
maxTokensField?: "max_tokens" | "max_completion_tokens";
|
|
326
|
+
maxTokens?: number;
|
|
327
|
+
optional?: boolean;
|
|
328
|
+
} | {
|
|
329
|
+
kind: "anthropic-messages";
|
|
330
|
+
label?: string;
|
|
331
|
+
baseUrl: string;
|
|
332
|
+
model: string;
|
|
333
|
+
optional?: boolean;
|
|
334
|
+
} | {
|
|
335
|
+
kind: "models-endpoint";
|
|
336
|
+
label?: string;
|
|
337
|
+
url: string;
|
|
338
|
+
/** Env var holding an alternate base URL; `/models` is appended to it. */
|
|
339
|
+
baseUrlEnv?: string;
|
|
340
|
+
/** Hook returning extra request headers (may throw a configuration error). */
|
|
341
|
+
headersHook?: string;
|
|
342
|
+
optional?: boolean;
|
|
343
|
+
};
|
|
344
|
+
/** Paste-an-API-key login: optional browser hint, prompt, optional validation. */
|
|
345
|
+
export interface CompiledApiKeyLogin {
|
|
346
|
+
kind: "api-key";
|
|
347
|
+
authUrl?: string;
|
|
348
|
+
instructions?: string;
|
|
349
|
+
prompt: string;
|
|
350
|
+
placeholder?: string;
|
|
351
|
+
/** Returned for an empty paste; presence also allows an empty answer. */
|
|
352
|
+
emptyFallback?: string;
|
|
353
|
+
normalize?: "strip-bearer";
|
|
354
|
+
validate?: CompiledAuthValidation;
|
|
355
|
+
}
|
|
356
|
+
/** How one `OAuthCredentials` field is derived from a token response. */
|
|
357
|
+
export interface CompiledCredentialField {
|
|
358
|
+
/** Dot path into the JSON response body. */
|
|
359
|
+
path?: string;
|
|
360
|
+
/** JWT claim name read from the access token payload (first present wins). */
|
|
361
|
+
claim?: string[];
|
|
362
|
+
literal?: string;
|
|
363
|
+
}
|
|
364
|
+
/** Expiry derivation for a token response. */
|
|
365
|
+
export type CompiledCredentialExpiry = {
|
|
366
|
+
mode: "seconds";
|
|
367
|
+
path: string;
|
|
368
|
+
fromPath?: string;
|
|
369
|
+
skewMs: number;
|
|
370
|
+
} | {
|
|
371
|
+
mode: "jwt";
|
|
372
|
+
skewMs: number;
|
|
373
|
+
fallbackMs?: number;
|
|
374
|
+
} | {
|
|
375
|
+
mode: "never";
|
|
376
|
+
};
|
|
377
|
+
/** Token-response → `OAuthCredentials` projection. */
|
|
378
|
+
export interface CompiledCredentialMap {
|
|
379
|
+
access: CompiledCredentialField;
|
|
380
|
+
refresh?: CompiledCredentialField;
|
|
381
|
+
expires: CompiledCredentialExpiry;
|
|
382
|
+
email?: CompiledCredentialField;
|
|
383
|
+
accountId?: CompiledCredentialField;
|
|
384
|
+
orgId?: CompiledCredentialField;
|
|
385
|
+
orgName?: CompiledCredentialField;
|
|
386
|
+
projectId?: CompiledCredentialField;
|
|
387
|
+
apiEndpoint?: CompiledCredentialField;
|
|
388
|
+
enterpriseUrl?: CompiledCredentialField;
|
|
389
|
+
}
|
|
390
|
+
/** Bearer GET that enriches credentials with identity fields. */
|
|
391
|
+
export interface CompiledUserinfo {
|
|
392
|
+
url: string;
|
|
393
|
+
email?: string;
|
|
394
|
+
accountId?: string;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* One token-endpoint style request. `params` values may use `{placeholders}`
|
|
398
|
+
* (`code`, `state`, `redirect_uri`, `code_verifier`, `client_id`,
|
|
399
|
+
* `client_secret`, `refresh_token`, `device_code`, `scope`, `base`).
|
|
400
|
+
*/
|
|
401
|
+
export interface CompiledOAuthRequest {
|
|
402
|
+
url: CompiledAuthValue;
|
|
403
|
+
body: "form" | "json";
|
|
404
|
+
/** Include the grant's standard parameter set before `params`. */
|
|
405
|
+
standard: boolean;
|
|
406
|
+
params: Record<string, string>;
|
|
407
|
+
headers: Record<string, string>;
|
|
408
|
+
timeoutMs?: number;
|
|
409
|
+
}
|
|
410
|
+
/** Loopback callback configuration for authorization-code logins. */
|
|
411
|
+
export interface CompiledCallback {
|
|
412
|
+
port: number;
|
|
413
|
+
path: string;
|
|
414
|
+
hostname: string;
|
|
415
|
+
redirectUri?: CompiledAuthValue;
|
|
416
|
+
portFallback: boolean;
|
|
417
|
+
manualOnly: boolean;
|
|
418
|
+
}
|
|
419
|
+
/** Authorization-code login through the loopback callback server. */
|
|
420
|
+
export interface CompiledOAuthCodeLogin {
|
|
421
|
+
kind: "oauth-code";
|
|
422
|
+
clientId?: CompiledAuthValue;
|
|
423
|
+
clientSecret?: CompiledAuthValue;
|
|
424
|
+
authorizeUrl: CompiledAuthValue;
|
|
425
|
+
scopes: string[];
|
|
426
|
+
scopeSeparator: string;
|
|
427
|
+
pkce: boolean;
|
|
428
|
+
state: "hex" | "uuid" | "none";
|
|
429
|
+
/** Include the standard authorize query set before `authorizeParams`. */
|
|
430
|
+
standardAuthorizeParams: boolean;
|
|
431
|
+
authorizeParams: Record<string, string>;
|
|
432
|
+
instructions?: string;
|
|
433
|
+
callback: CompiledCallback;
|
|
434
|
+
token: CompiledOAuthRequest;
|
|
435
|
+
credential: CompiledCredentialMap;
|
|
436
|
+
userinfo?: CompiledUserinfo;
|
|
437
|
+
/** Hook run on the mapped credentials with the raw token response. */
|
|
438
|
+
afterExchange?: string;
|
|
439
|
+
/** Manual input starting with `prefix` is a pasted API key, validated at `validateUrl`. */
|
|
440
|
+
pasteKey?: {
|
|
441
|
+
prefix: string;
|
|
442
|
+
validateUrl: string;
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
/** RFC 8628 device-code login. */
|
|
446
|
+
export interface CompiledDeviceCodeLogin {
|
|
447
|
+
kind: "device-code";
|
|
448
|
+
clientId: CompiledAuthValue;
|
|
449
|
+
/** `{base}` placeholder source for request URLs. */
|
|
450
|
+
baseUrl?: CompiledAuthValue;
|
|
451
|
+
scopes: string[];
|
|
452
|
+
scopeSeparator: string;
|
|
453
|
+
/** Hook returning headers merged into every request of the flow. */
|
|
454
|
+
headersHook?: string;
|
|
455
|
+
device: CompiledOAuthRequest;
|
|
456
|
+
token: CompiledOAuthRequest;
|
|
457
|
+
response: {
|
|
458
|
+
userCode: string;
|
|
459
|
+
deviceCode: string;
|
|
460
|
+
verificationUri: string;
|
|
461
|
+
verificationUriComplete?: string;
|
|
462
|
+
interval?: string;
|
|
463
|
+
expiresIn?: string;
|
|
464
|
+
};
|
|
465
|
+
/** `{user_code}` placeholder allowed. */
|
|
466
|
+
instructions: string;
|
|
467
|
+
credential: CompiledCredentialMap;
|
|
468
|
+
userinfo?: CompiledUserinfo;
|
|
469
|
+
afterExchange?: string;
|
|
470
|
+
}
|
|
471
|
+
/** Login implemented entirely by a named hook. */
|
|
472
|
+
export interface CompiledCustomLogin {
|
|
473
|
+
kind: "custom";
|
|
474
|
+
hook: string;
|
|
475
|
+
}
|
|
476
|
+
export type CompiledLogin = CompiledApiKeyLogin | CompiledOAuthCodeLogin | CompiledDeviceCodeLogin | CompiledCustomLogin;
|
|
477
|
+
/** Refresh-token grant declared for a provider. */
|
|
478
|
+
export type CompiledRefresh = {
|
|
479
|
+
kind: "none";
|
|
480
|
+
} | {
|
|
481
|
+
kind: "hook";
|
|
482
|
+
hook: string;
|
|
483
|
+
} | {
|
|
484
|
+
kind: "request";
|
|
485
|
+
token: CompiledOAuthRequest;
|
|
486
|
+
/** Stored credential fields that must be present before refreshing. */
|
|
487
|
+
require: string[];
|
|
488
|
+
credential: CompiledCredentialMap;
|
|
489
|
+
userinfo?: CompiledUserinfo;
|
|
490
|
+
afterRefresh?: string;
|
|
491
|
+
headersHook?: string;
|
|
492
|
+
};
|
|
493
|
+
/** One provider's compiled auth policy (`auth/<id>.kdl`). */
|
|
494
|
+
export interface CompiledAuthProvider {
|
|
495
|
+
id: string;
|
|
496
|
+
name: string;
|
|
497
|
+
env?: {
|
|
498
|
+
vars: string[];
|
|
499
|
+
} | {
|
|
500
|
+
hook: string;
|
|
501
|
+
};
|
|
502
|
+
allowsMissingApiKey?: boolean;
|
|
503
|
+
available?: boolean;
|
|
504
|
+
showInLoginList?: boolean;
|
|
505
|
+
storeAs?: string;
|
|
506
|
+
callbackPort?: number;
|
|
507
|
+
pasteCode?: boolean;
|
|
508
|
+
apiKeyFormat: "bearer" | "structured";
|
|
509
|
+
expiry?: "jwt-or-never";
|
|
510
|
+
/** `api-key`: an OAuth login persists only `credentials.access` as a plain API key. */
|
|
511
|
+
result?: "api-key";
|
|
512
|
+
login?: CompiledLogin;
|
|
513
|
+
refresh?: CompiledRefresh;
|
|
514
|
+
}
|
|
515
|
+
/** Compiled auth stratum: providers in `/login` display order. */
|
|
516
|
+
export interface CompiledAuth {
|
|
517
|
+
providers: CompiledAuthProvider[];
|
|
518
|
+
}
|
|
519
|
+
/** The complete compiled rule tree persisted as `rules.json`. */
|
|
520
|
+
export interface CompiledCompatRules {
|
|
521
|
+
/** Compiled-format version; bump on incompatible shape changes. */
|
|
522
|
+
version: 1;
|
|
523
|
+
/** Every compiled source file, `rules/`-relative, sorted. */
|
|
524
|
+
files: string[];
|
|
525
|
+
taxonomy: CompiledTaxonomy;
|
|
526
|
+
cascade: CompiledCascade;
|
|
527
|
+
behavior: CompiledBehavior;
|
|
528
|
+
auth: CompiledAuth;
|
|
529
|
+
}
|
|
530
|
+
/** Structured identity of one classified model. */
|
|
531
|
+
export interface ModelIdentity {
|
|
532
|
+
/** Vendor lineage id, `"unknown"` when unclassified. */
|
|
533
|
+
class: string;
|
|
534
|
+
/** Product family within the class, when classified. */
|
|
535
|
+
family?: string;
|
|
536
|
+
/** Canonical `major.minor.patch`, when extracted. */
|
|
537
|
+
revision?: string;
|
|
538
|
+
/** Effort tier collapsed out of the id, when the id was an effort variant. */
|
|
539
|
+
effort?: Effort | "off";
|
|
540
|
+
/** Whether the id carried a thinking-variant suffix. */
|
|
541
|
+
thinkingVariant?: boolean;
|
|
542
|
+
/** Canonical logical id when it differs from the wire id. */
|
|
543
|
+
logicalId?: string;
|
|
544
|
+
}
|
|
545
|
+
/** Structured identity and capability input to `resolveCascade`. */
|
|
546
|
+
export interface ResolveTarget {
|
|
547
|
+
/** Deployment provider hosting the model. */
|
|
548
|
+
provider: string;
|
|
549
|
+
/** Centrally classified vendor lineage. */
|
|
550
|
+
class: string;
|
|
551
|
+
/** Classified product family within the class, when known. */
|
|
552
|
+
family?: string;
|
|
553
|
+
/** Parsed model revision, when present in the identity. */
|
|
554
|
+
revision?: string;
|
|
555
|
+
/** Provider-relative model identifier. */
|
|
556
|
+
model: string;
|
|
557
|
+
/** Whether the model exposes a reasoning control surface. */
|
|
558
|
+
reasoning: boolean;
|
|
559
|
+
}
|
|
560
|
+
/** Wire, thinking, and catalog assignments resolved for one target. */
|
|
561
|
+
export interface ResolvedAxes {
|
|
562
|
+
wire: Record<string, unknown>;
|
|
563
|
+
thinking: Record<string, unknown>;
|
|
564
|
+
catalog: Record<string, unknown>;
|
|
565
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { type VariantCollapseTable } from "../compat/collapse.js";
|
|
1
2
|
import type { ModelSpec } from "../types.js";
|
|
2
|
-
import { type VariantCollapseTable } from "../variant-collapse.js";
|
|
3
3
|
export declare const ANTIGRAVITY_PRIMARY_ENDPOINT = "https://daily-cloudcode-pa.googleapis.com";
|
|
4
4
|
export declare const ANTIGRAVITY_SANDBOX_ENDPOINT = "https://daily-cloudcode-pa.sandbox.googleapis.com";
|
|
5
5
|
/**
|
|
@@ -17,6 +17,12 @@ export declare enum ConversationSearchSource {
|
|
|
17
17
|
LOCAL = 1,
|
|
18
18
|
CLOUD_CACHE = 2
|
|
19
19
|
}
|
|
20
|
+
/** Cursor agent enum CursorRuleSource. */
|
|
21
|
+
export declare enum CursorRuleSource {
|
|
22
|
+
UNSPECIFIED = 0,
|
|
23
|
+
TEAM = 1,
|
|
24
|
+
USER = 2
|
|
25
|
+
}
|
|
20
26
|
/** Cursor agent enum DiagnosticSeverity. */
|
|
21
27
|
export declare enum DiagnosticSeverity {
|
|
22
28
|
UNSPECIFIED = 0,
|
|
@@ -25,12 +31,6 @@ export declare enum DiagnosticSeverity {
|
|
|
25
31
|
INFORMATION = 3,
|
|
26
32
|
HINT = 4
|
|
27
33
|
}
|
|
28
|
-
/** Cursor agent enum CursorRuleSource. */
|
|
29
|
-
export declare enum CursorRuleSource {
|
|
30
|
-
UNSPECIFIED = 0,
|
|
31
|
-
TEAM = 1,
|
|
32
|
-
USER = 2
|
|
33
|
-
}
|
|
34
34
|
/** Cursor agent enum ForceBackgroundShellStatus. */
|
|
35
35
|
export declare enum ForceBackgroundShellStatus {
|
|
36
36
|
UNSPECIFIED = 0,
|