@aexhq/sdk 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/_contracts/models.d.ts +101 -34
- package/dist/_contracts/models.js +89 -63
- package/dist/_contracts/run-config.d.ts +1 -1
- package/dist/_contracts/submission.d.ts +1 -1
- package/dist/_contracts/submission.js +3 -3
- package/dist/agents-md.d.ts +3 -3
- package/dist/agents-md.js +6 -6
- package/dist/agents-md.js.map +1 -1
- package/dist/cli.mjs +27 -78
- package/dist/cli.mjs.sha256 +1 -1
- package/dist/client.d.ts +11 -9
- package/dist/client.js +42 -39
- package/dist/client.js.map +1 -1
- package/dist/fetch-archive.js +1 -1
- package/dist/file.d.ts +3 -3
- package/dist/file.js +6 -6
- package/dist/file.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/proxy-endpoint.d.ts +2 -2
- package/dist/proxy-endpoint.js +1 -1
- package/dist/skill.d.ts +8 -8
- package/dist/skill.js +10 -10
- package/dist/skill.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/cleanup.md +1 -1
- package/docs/credentials.md +4 -4
- package/docs/events.md +2 -2
- package/docs/outputs.md +3 -3
- package/docs/quickstart.md +7 -7
- package/docs/run-config.md +4 -4
- package/docs/skills.md +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ const aex = new AgentExecutor({
|
|
|
63
63
|
// baseUrl defaults to https://api.aex.dev - set it for local or staging planes.
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
const runId = await aex.
|
|
66
|
+
const runId = await aex.submit({
|
|
67
67
|
model: RunModels.CLAUDE_HAIKU_4_5,
|
|
68
68
|
system: "You are a concise automation agent.",
|
|
69
69
|
prompt: "Write a short answer about agent-first SDK design.",
|
|
@@ -94,7 +94,7 @@ function summarise(topic: string) {
|
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
const runId = await aex.
|
|
97
|
+
const runId = await aex.submit({
|
|
98
98
|
...summarise("agent-first SDK design"),
|
|
99
99
|
secrets: { apiKey: process.env.ANTHROPIC_API_KEY! }
|
|
100
100
|
});
|
|
@@ -1,20 +1,82 @@
|
|
|
1
1
|
import type { RunProvider } from "./submission.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Source of truth for the closed model set: each canonical model id maps to the
|
|
4
|
+
* upstream providers that can serve it and the **provider-native** model string
|
|
5
|
+
* each one expects.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* `Models.*` / `RUN_MODELS` are aex's own **canonical, provider-neutral**
|
|
8
|
+
* identifiers — they are NOT the strings sent to a provider. The platform
|
|
9
|
+
* translates a `(canonical model, provider)` pair to the native id via
|
|
10
|
+
* {@link resolveProviderModelId} when it builds the run's session manifest. The
|
|
11
|
+
* same canonical model can therefore be served by more than one provider (e.g.
|
|
12
|
+
* `gpt-4o-mini` via `openai` *or* `openrouter`), with a different native string
|
|
13
|
+
* per provider.
|
|
14
|
+
*
|
|
15
|
+
* Ordering matters: the **first** provider listed for a model is its default
|
|
16
|
+
* (see {@link providerForModel}) — list the native vendor before `openrouter`.
|
|
17
|
+
* Additions belong here first so SDK types, CLI validation, docs examples, and
|
|
18
|
+
* platform parsing all move together.
|
|
19
|
+
*/
|
|
20
|
+
export declare const MODEL_PROVIDER_IDS: {
|
|
21
|
+
readonly "claude-haiku-4-5": {
|
|
22
|
+
readonly anthropic: "claude-haiku-4-5";
|
|
23
|
+
};
|
|
24
|
+
readonly "claude-3-5-haiku-latest": {
|
|
25
|
+
readonly anthropic: "claude-3-5-haiku-latest";
|
|
26
|
+
};
|
|
27
|
+
readonly "claude-3-5-sonnet-latest": {
|
|
28
|
+
readonly anthropic: "claude-3-5-sonnet-latest";
|
|
29
|
+
};
|
|
30
|
+
readonly "deepseek-v4-flash": {
|
|
31
|
+
readonly deepseek: "deepseek-v4-flash";
|
|
32
|
+
};
|
|
33
|
+
readonly "deepseek-v4-pro": {
|
|
34
|
+
readonly deepseek: "deepseek-v4-pro";
|
|
35
|
+
};
|
|
36
|
+
readonly "deepseek-chat": {
|
|
37
|
+
readonly deepseek: "deepseek-chat";
|
|
38
|
+
};
|
|
39
|
+
readonly "deepseek-reasoner": {
|
|
40
|
+
readonly deepseek: "deepseek-reasoner";
|
|
41
|
+
};
|
|
42
|
+
readonly "gpt-4.1": {
|
|
43
|
+
readonly openai: "gpt-4.1";
|
|
44
|
+
};
|
|
45
|
+
readonly "gpt-4o-mini": {
|
|
46
|
+
readonly openai: "gpt-4o-mini";
|
|
47
|
+
readonly openrouter: "openai/gpt-4o-mini";
|
|
48
|
+
};
|
|
49
|
+
readonly "gpt-4o": {
|
|
50
|
+
readonly openrouter: "openai/gpt-4o";
|
|
51
|
+
};
|
|
52
|
+
readonly "gemini-2.0-flash": {
|
|
53
|
+
readonly gemini: "gemini-2.0-flash";
|
|
54
|
+
readonly openrouter: "google/gemini-2.0-flash-001";
|
|
55
|
+
};
|
|
56
|
+
readonly "gemini-2.5-flash": {
|
|
57
|
+
readonly gemini: "gemini-2.5-flash";
|
|
58
|
+
};
|
|
59
|
+
readonly "mistral-large-latest": {
|
|
60
|
+
readonly mistral: "mistral-large-latest";
|
|
61
|
+
};
|
|
62
|
+
readonly "mistral-small-latest": {
|
|
63
|
+
readonly mistral: "mistral-small-latest";
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Closed set of canonical model ids accepted by the public run-submission
|
|
68
|
+
* schema. Derived from {@link MODEL_PROVIDER_IDS} so the two never drift.
|
|
9
69
|
*/
|
|
10
|
-
export
|
|
11
|
-
export
|
|
70
|
+
export type RunModel = keyof typeof MODEL_PROVIDER_IDS;
|
|
71
|
+
export declare const RUN_MODELS: readonly RunModel[];
|
|
12
72
|
/**
|
|
13
73
|
* Symbol-style accessors for the closed model set. Prefer these over raw
|
|
14
74
|
* strings so an invalid token is a compile error, not a runtime 400 — e.g.
|
|
15
|
-
* `Models.CLAUDE_HAIKU_4_5`.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
75
|
+
* `Models.CLAUDE_HAIKU_4_5`. These are aex's **canonical** ids, not the native
|
|
76
|
+
* strings sent upstream; the platform translates them per provider (see
|
|
77
|
+
* {@link MODEL_PROVIDER_IDS} / {@link resolveProviderModelId}). When a model is
|
|
78
|
+
* served by more than one provider, pair it with an explicit {@link Providers}
|
|
79
|
+
* value; otherwise the single (default) provider is used.
|
|
18
80
|
*/
|
|
19
81
|
export declare const Models: {
|
|
20
82
|
/** Claude Haiku 4.5 — Anthropic. */
|
|
@@ -42,9 +104,11 @@ export declare const Models: {
|
|
|
42
104
|
readonly DEEPSEEK_REASONER: "deepseek-reasoner";
|
|
43
105
|
/** GPT-4.1 — OpenAI. */
|
|
44
106
|
readonly GPT_4_1: "gpt-4.1";
|
|
45
|
-
/** GPT-4o mini — OpenAI. */
|
|
107
|
+
/** GPT-4o mini — OpenAI, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
46
108
|
readonly GPT_4O_MINI: "gpt-4o-mini";
|
|
47
|
-
/**
|
|
109
|
+
/** GPT-4o — via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
110
|
+
readonly GPT_4O: "gpt-4o";
|
|
111
|
+
/** Gemini 2.0 Flash — Gemini, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
48
112
|
readonly GEMINI_2_0_FLASH: "gemini-2.0-flash";
|
|
49
113
|
/** Gemini 2.5 Flash — Gemini. */
|
|
50
114
|
readonly GEMINI_2_5_FLASH: "gemini-2.5-flash";
|
|
@@ -52,10 +116,6 @@ export declare const Models: {
|
|
|
52
116
|
readonly MISTRAL_LARGE_LATEST: "mistral-large-latest";
|
|
53
117
|
/** Mistral Small (latest) — Mistral. */
|
|
54
118
|
readonly MISTRAL_SMALL_LATEST: "mistral-small-latest";
|
|
55
|
-
/** GPT-4o mini via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
56
|
-
readonly OPENROUTER_GPT_4O_MINI: "openai/gpt-4o-mini";
|
|
57
|
-
/** Gemini 2.0 Flash via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
58
|
-
readonly OPENROUTER_GEMINI_2_0_FLASH: "google/gemini-2.0-flash-001";
|
|
59
119
|
};
|
|
60
120
|
/**
|
|
61
121
|
* Back-compat alias for {@link Models}. Existing imports of `RunModels`
|
|
@@ -87,9 +147,11 @@ export declare const RunModels: {
|
|
|
87
147
|
readonly DEEPSEEK_REASONER: "deepseek-reasoner";
|
|
88
148
|
/** GPT-4.1 — OpenAI. */
|
|
89
149
|
readonly GPT_4_1: "gpt-4.1";
|
|
90
|
-
/** GPT-4o mini — OpenAI. */
|
|
150
|
+
/** GPT-4o mini — OpenAI, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
91
151
|
readonly GPT_4O_MINI: "gpt-4o-mini";
|
|
92
|
-
/**
|
|
152
|
+
/** GPT-4o — via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
153
|
+
readonly GPT_4O: "gpt-4o";
|
|
154
|
+
/** Gemini 2.0 Flash — Gemini, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
93
155
|
readonly GEMINI_2_0_FLASH: "gemini-2.0-flash";
|
|
94
156
|
/** Gemini 2.5 Flash — Gemini. */
|
|
95
157
|
readonly GEMINI_2_5_FLASH: "gemini-2.5-flash";
|
|
@@ -97,26 +159,31 @@ export declare const RunModels: {
|
|
|
97
159
|
readonly MISTRAL_LARGE_LATEST: "mistral-large-latest";
|
|
98
160
|
/** Mistral Small (latest) — Mistral. */
|
|
99
161
|
readonly MISTRAL_SMALL_LATEST: "mistral-small-latest";
|
|
100
|
-
/** GPT-4o mini via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
101
|
-
readonly OPENROUTER_GPT_4O_MINI: "openai/gpt-4o-mini";
|
|
102
|
-
/** Gemini 2.0 Flash via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
103
|
-
readonly OPENROUTER_GEMINI_2_0_FLASH: "google/gemini-2.0-flash-001";
|
|
104
|
-
};
|
|
105
|
-
export declare const RUN_MODELS_BY_PROVIDER: {
|
|
106
|
-
readonly anthropic: readonly ["claude-haiku-4-5", "claude-3-5-haiku-latest", "claude-3-5-sonnet-latest"];
|
|
107
|
-
readonly deepseek: readonly ["deepseek-v4-flash", "deepseek-v4-pro", "deepseek-chat", "deepseek-reasoner"];
|
|
108
|
-
readonly openai: readonly ["gpt-4.1", "gpt-4o-mini"];
|
|
109
|
-
readonly gemini: readonly ["gemini-2.0-flash", "gemini-2.5-flash"];
|
|
110
|
-
readonly mistral: readonly ["mistral-large-latest", "mistral-small-latest"];
|
|
111
|
-
readonly openrouter: readonly ["openai/gpt-4o-mini", "google/gemini-2.0-flash-001"];
|
|
112
162
|
};
|
|
113
163
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
|
|
164
|
+
* Provider → canonical models that provider can serve. Derived from
|
|
165
|
+
* {@link MODEL_PROVIDER_IDS}; every provider currently serves at least one
|
|
166
|
+
* model, so all {@link RunProvider} keys are present.
|
|
167
|
+
*/
|
|
168
|
+
export declare const RUN_MODELS_BY_PROVIDER: Readonly<Record<RunProvider, readonly RunModel[]>>;
|
|
169
|
+
/**
|
|
170
|
+
* All upstream providers that can serve a model id, in declaration order.
|
|
171
|
+
* Returns `[]` for an unknown model.
|
|
172
|
+
*/
|
|
173
|
+
export declare function providersForModel(model: string): readonly RunProvider[];
|
|
174
|
+
/**
|
|
175
|
+
* The default upstream provider for a model id — the first provider declared
|
|
176
|
+
* for it in {@link MODEL_PROVIDER_IDS}. Returns `undefined` when the input is
|
|
177
|
+
* not a known {@link RunModel} (so the SDK can fall back to the default and let
|
|
178
|
+
* the server reject the model).
|
|
118
179
|
*/
|
|
119
180
|
export declare function providerForModel(model: string): RunProvider | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* Translate a canonical model id + provider into the provider-native model
|
|
183
|
+
* string the upstream API expects (e.g. `("gpt-4o-mini", "openrouter")` →
|
|
184
|
+
* `"openai/gpt-4o-mini"`). Throws when the provider does not serve the model.
|
|
185
|
+
*/
|
|
186
|
+
export declare function resolveProviderModelId(model: string, provider: RunProvider): string;
|
|
120
187
|
export declare function isRunModel(input: unknown): input is RunModel;
|
|
121
188
|
export declare function parseRunModel(input: unknown, field?: string): RunModel;
|
|
122
189
|
export declare function assertRunModelMatchesProvider(provider: RunProvider, model: RunModel, field?: string): void;
|
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Source of truth for the closed model set: each canonical model id maps to the
|
|
3
|
+
* upstream providers that can serve it and the **provider-native** model string
|
|
4
|
+
* each one expects.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* `Models.*` / `RUN_MODELS` are aex's own **canonical, provider-neutral**
|
|
7
|
+
* identifiers — they are NOT the strings sent to a provider. The platform
|
|
8
|
+
* translates a `(canonical model, provider)` pair to the native id via
|
|
9
|
+
* {@link resolveProviderModelId} when it builds the run's session manifest. The
|
|
10
|
+
* same canonical model can therefore be served by more than one provider (e.g.
|
|
11
|
+
* `gpt-4o-mini` via `openai` *or* `openrouter`), with a different native string
|
|
12
|
+
* per provider.
|
|
13
|
+
*
|
|
14
|
+
* Ordering matters: the **first** provider listed for a model is its default
|
|
15
|
+
* (see {@link providerForModel}) — list the native vendor before `openrouter`.
|
|
16
|
+
* Additions belong here first so SDK types, CLI validation, docs examples, and
|
|
17
|
+
* platform parsing all move together.
|
|
8
18
|
*/
|
|
9
|
-
export const
|
|
10
|
-
"claude-haiku-4-5",
|
|
11
|
-
"claude-3-5-haiku-latest",
|
|
12
|
-
"claude-3-5-sonnet-latest",
|
|
13
|
-
"deepseek-v4-flash",
|
|
14
|
-
"deepseek-v4-pro",
|
|
15
|
-
"deepseek-chat",
|
|
16
|
-
"deepseek-reasoner",
|
|
17
|
-
"gpt-4.1",
|
|
18
|
-
"gpt-4o-mini",
|
|
19
|
-
"
|
|
20
|
-
"gemini-2.
|
|
21
|
-
"
|
|
22
|
-
"mistral-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
export const MODEL_PROVIDER_IDS = {
|
|
20
|
+
"claude-haiku-4-5": { anthropic: "claude-haiku-4-5" },
|
|
21
|
+
"claude-3-5-haiku-latest": { anthropic: "claude-3-5-haiku-latest" },
|
|
22
|
+
"claude-3-5-sonnet-latest": { anthropic: "claude-3-5-sonnet-latest" },
|
|
23
|
+
"deepseek-v4-flash": { deepseek: "deepseek-v4-flash" },
|
|
24
|
+
"deepseek-v4-pro": { deepseek: "deepseek-v4-pro" },
|
|
25
|
+
"deepseek-chat": { deepseek: "deepseek-chat" },
|
|
26
|
+
"deepseek-reasoner": { deepseek: "deepseek-reasoner" },
|
|
27
|
+
"gpt-4.1": { openai: "gpt-4.1" },
|
|
28
|
+
"gpt-4o-mini": { openai: "gpt-4o-mini", openrouter: "openai/gpt-4o-mini" },
|
|
29
|
+
"gpt-4o": { openrouter: "openai/gpt-4o" },
|
|
30
|
+
"gemini-2.0-flash": { gemini: "gemini-2.0-flash", openrouter: "google/gemini-2.0-flash-001" },
|
|
31
|
+
"gemini-2.5-flash": { gemini: "gemini-2.5-flash" },
|
|
32
|
+
"mistral-large-latest": { mistral: "mistral-large-latest" },
|
|
33
|
+
"mistral-small-latest": { mistral: "mistral-small-latest" }
|
|
34
|
+
};
|
|
35
|
+
export const RUN_MODELS = Object.keys(MODEL_PROVIDER_IDS);
|
|
26
36
|
/**
|
|
27
37
|
* Symbol-style accessors for the closed model set. Prefer these over raw
|
|
28
38
|
* strings so an invalid token is a compile error, not a runtime 400 — e.g.
|
|
29
|
-
* `Models.CLAUDE_HAIKU_4_5`.
|
|
30
|
-
*
|
|
31
|
-
*
|
|
39
|
+
* `Models.CLAUDE_HAIKU_4_5`. These are aex's **canonical** ids, not the native
|
|
40
|
+
* strings sent upstream; the platform translates them per provider (see
|
|
41
|
+
* {@link MODEL_PROVIDER_IDS} / {@link resolveProviderModelId}). When a model is
|
|
42
|
+
* served by more than one provider, pair it with an explicit {@link Providers}
|
|
43
|
+
* value; otherwise the single (default) provider is used.
|
|
32
44
|
*/
|
|
33
45
|
export const Models = {
|
|
34
46
|
/** Claude Haiku 4.5 — Anthropic. */
|
|
@@ -56,65 +68,78 @@ export const Models = {
|
|
|
56
68
|
DEEPSEEK_REASONER: "deepseek-reasoner",
|
|
57
69
|
/** GPT-4.1 — OpenAI. */
|
|
58
70
|
GPT_4_1: "gpt-4.1",
|
|
59
|
-
/** GPT-4o mini — OpenAI. */
|
|
71
|
+
/** GPT-4o mini — OpenAI, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
60
72
|
GPT_4O_MINI: "gpt-4o-mini",
|
|
61
|
-
/**
|
|
73
|
+
/** GPT-4o — via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
74
|
+
GPT_4O: "gpt-4o",
|
|
75
|
+
/** Gemini 2.0 Flash — Gemini, or via OpenRouter (`provider: Providers.OPENROUTER`). */
|
|
62
76
|
GEMINI_2_0_FLASH: "gemini-2.0-flash",
|
|
63
77
|
/** Gemini 2.5 Flash — Gemini. */
|
|
64
78
|
GEMINI_2_5_FLASH: "gemini-2.5-flash",
|
|
65
79
|
/** Mistral Large (latest) — Mistral. */
|
|
66
80
|
MISTRAL_LARGE_LATEST: "mistral-large-latest",
|
|
67
81
|
/** Mistral Small (latest) — Mistral. */
|
|
68
|
-
MISTRAL_SMALL_LATEST: "mistral-small-latest"
|
|
69
|
-
/** GPT-4o mini via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
70
|
-
OPENROUTER_GPT_4O_MINI: "openai/gpt-4o-mini",
|
|
71
|
-
/** Gemini 2.0 Flash via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
72
|
-
OPENROUTER_GEMINI_2_0_FLASH: "google/gemini-2.0-flash-001"
|
|
82
|
+
MISTRAL_SMALL_LATEST: "mistral-small-latest"
|
|
73
83
|
};
|
|
74
84
|
/**
|
|
75
85
|
* Back-compat alias for {@link Models}. Existing imports of `RunModels`
|
|
76
86
|
* keep working; new code should prefer `Models`.
|
|
77
87
|
*/
|
|
78
88
|
export const RunModels = Models;
|
|
79
|
-
export const RUN_MODELS_BY_PROVIDER = {
|
|
80
|
-
anthropic: [
|
|
81
|
-
Models.CLAUDE_HAIKU_4_5,
|
|
82
|
-
Models.CLAUDE_3_5_HAIKU_LATEST,
|
|
83
|
-
Models.CLAUDE_3_5_SONNET_LATEST
|
|
84
|
-
],
|
|
85
|
-
deepseek: [
|
|
86
|
-
Models.DEEPSEEK_V4_FLASH,
|
|
87
|
-
Models.DEEPSEEK_V4_PRO,
|
|
88
|
-
Models.DEEPSEEK_CHAT,
|
|
89
|
-
Models.DEEPSEEK_REASONER
|
|
90
|
-
],
|
|
91
|
-
openai: [Models.GPT_4_1, Models.GPT_4O_MINI],
|
|
92
|
-
gemini: [Models.GEMINI_2_0_FLASH, Models.GEMINI_2_5_FLASH],
|
|
93
|
-
mistral: [Models.MISTRAL_LARGE_LATEST, Models.MISTRAL_SMALL_LATEST],
|
|
94
|
-
openrouter: [Models.OPENROUTER_GPT_4O_MINI, Models.OPENROUTER_GEMINI_2_0_FLASH]
|
|
95
|
-
};
|
|
96
89
|
/**
|
|
97
|
-
*
|
|
98
|
-
* {@link
|
|
99
|
-
|
|
90
|
+
* Per-model provider lists, in declaration order. Derived from
|
|
91
|
+
* {@link MODEL_PROVIDER_IDS} so the two never drift.
|
|
92
|
+
*/
|
|
93
|
+
const PROVIDERS_BY_MODEL = (() => {
|
|
94
|
+
const map = {};
|
|
95
|
+
for (const [model, providers] of Object.entries(MODEL_PROVIDER_IDS)) {
|
|
96
|
+
map[model] = Object.keys(providers);
|
|
97
|
+
}
|
|
98
|
+
return map;
|
|
99
|
+
})();
|
|
100
|
+
/**
|
|
101
|
+
* Provider → canonical models that provider can serve. Derived from
|
|
102
|
+
* {@link MODEL_PROVIDER_IDS}; every provider currently serves at least one
|
|
103
|
+
* model, so all {@link RunProvider} keys are present.
|
|
100
104
|
*/
|
|
101
|
-
const
|
|
105
|
+
export const RUN_MODELS_BY_PROVIDER = (() => {
|
|
102
106
|
const map = {};
|
|
103
|
-
for (const [
|
|
104
|
-
for (const
|
|
105
|
-
map[
|
|
107
|
+
for (const [model, providers] of Object.entries(MODEL_PROVIDER_IDS)) {
|
|
108
|
+
for (const provider of Object.keys(providers)) {
|
|
109
|
+
(map[provider] ??= []).push(model);
|
|
106
110
|
}
|
|
107
111
|
}
|
|
108
112
|
return map;
|
|
109
113
|
})();
|
|
110
114
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
|
|
114
|
-
|
|
115
|
+
* All upstream providers that can serve a model id, in declaration order.
|
|
116
|
+
* Returns `[]` for an unknown model.
|
|
117
|
+
*/
|
|
118
|
+
export function providersForModel(model) {
|
|
119
|
+
return PROVIDERS_BY_MODEL[model] ?? [];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The default upstream provider for a model id — the first provider declared
|
|
123
|
+
* for it in {@link MODEL_PROVIDER_IDS}. Returns `undefined` when the input is
|
|
124
|
+
* not a known {@link RunModel} (so the SDK can fall back to the default and let
|
|
125
|
+
* the server reject the model).
|
|
115
126
|
*/
|
|
116
127
|
export function providerForModel(model) {
|
|
117
|
-
return
|
|
128
|
+
return providersForModel(model)[0];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Translate a canonical model id + provider into the provider-native model
|
|
132
|
+
* string the upstream API expects (e.g. `("gpt-4o-mini", "openrouter")` →
|
|
133
|
+
* `"openai/gpt-4o-mini"`). Throws when the provider does not serve the model.
|
|
134
|
+
*/
|
|
135
|
+
export function resolveProviderModelId(model, provider) {
|
|
136
|
+
const entry = MODEL_PROVIDER_IDS[model];
|
|
137
|
+
const native = entry?.[provider];
|
|
138
|
+
if (native === undefined) {
|
|
139
|
+
throw new Error(`resolveProviderModelId: model ${JSON.stringify(model)} is not available for provider ${JSON.stringify(provider)}; ` +
|
|
140
|
+
`available: ${providersForModel(model).join(", ") || "(none)"}`);
|
|
141
|
+
}
|
|
142
|
+
return native;
|
|
118
143
|
}
|
|
119
144
|
export function isRunModel(input) {
|
|
120
145
|
return typeof input === "string" && RUN_MODELS.includes(input);
|
|
@@ -126,9 +151,10 @@ export function parseRunModel(input, field = "submission.model") {
|
|
|
126
151
|
return input;
|
|
127
152
|
}
|
|
128
153
|
export function assertRunModelMatchesProvider(provider, model, field = "submission.model") {
|
|
129
|
-
|
|
154
|
+
const providers = providersForModel(model);
|
|
155
|
+
if (!providers.includes(provider)) {
|
|
130
156
|
throw new Error(`${field} ${JSON.stringify(model)} is not supported for provider ${provider}; ` +
|
|
131
|
-
`expected one of: ${
|
|
157
|
+
`expected one of: ${providers.join(", ")}`);
|
|
132
158
|
}
|
|
133
159
|
}
|
|
134
160
|
//# sourceMappingURL=models.js.map
|
|
@@ -251,7 +251,7 @@ export declare function rejectStdioMcpShape(record: Record<string, unknown>): vo
|
|
|
251
251
|
/**
|
|
252
252
|
* Plain JSON accepted by `aex run --config <path>`. This is not a
|
|
253
253
|
* platform object; it is only the non-secret run parameters that the CLI folds
|
|
254
|
-
* into the normal `
|
|
254
|
+
* into the normal `submit` request.
|
|
255
255
|
*/
|
|
256
256
|
export interface RunRequestConfig {
|
|
257
257
|
readonly model: RunModel;
|
|
@@ -466,7 +466,7 @@ export declare class RuntimeValidationError extends Error {
|
|
|
466
466
|
}
|
|
467
467
|
/**
|
|
468
468
|
* Walk the parsed submission and collect features that the active managed
|
|
469
|
-
* runtime cannot serve. Provider-hosted skill refs (`
|
|
469
|
+
* runtime cannot serve. Provider-hosted skill refs (`kind:"provider"`) are
|
|
470
470
|
* rejected now that new submissions only dispatch through managed runs.
|
|
471
471
|
*/
|
|
472
472
|
export declare function collectManagedUnsupportedFeatures(req: PlatformRunSubmissionRequest): string[];
|
|
@@ -1478,15 +1478,15 @@ export class RuntimeValidationError extends Error {
|
|
|
1478
1478
|
}
|
|
1479
1479
|
/**
|
|
1480
1480
|
* Walk the parsed submission and collect features that the active managed
|
|
1481
|
-
* runtime cannot serve. Provider-hosted skill refs (`
|
|
1481
|
+
* runtime cannot serve. Provider-hosted skill refs (`kind:"provider"`) are
|
|
1482
1482
|
* rejected now that new submissions only dispatch through managed runs.
|
|
1483
1483
|
*/
|
|
1484
1484
|
export function collectManagedUnsupportedFeatures(req) {
|
|
1485
1485
|
const features = [];
|
|
1486
1486
|
for (const skill of req.submission.skills) {
|
|
1487
1487
|
if (skill.kind === "provider") {
|
|
1488
|
-
const versionSuffix = skill.version ?
|
|
1489
|
-
features.push(`
|
|
1488
|
+
const versionSuffix = skill.version ? `@${skill.version}` : "";
|
|
1489
|
+
features.push(`provider skill "${skill.vendor}/${skill.skillId}${versionSuffix}" (kind:"provider")`);
|
|
1490
1490
|
}
|
|
1491
1491
|
}
|
|
1492
1492
|
return features;
|
package/dist/agents-md.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ import type { AgentsMdRef } from "./_contracts/index.js";
|
|
|
5
5
|
* behaviour).
|
|
6
6
|
*
|
|
7
7
|
* const rules = await AgentsMd.fromContent("# Be helpful", { name: "rules" });
|
|
8
|
-
* await client.
|
|
8
|
+
* await client.submit({ agentsMd: [rules], ... });
|
|
9
9
|
*
|
|
10
|
-
* `client.
|
|
10
|
+
* `client.submit` materializes the bytes to the hosted asset store before
|
|
11
11
|
* the run lands. Asset deduplication handles repeated uploads automatically.
|
|
12
12
|
*/
|
|
13
13
|
export declare class AgentsMd {
|
|
@@ -30,7 +30,7 @@ export declare class AgentsMd {
|
|
|
30
30
|
}): Promise<AgentsMd>;
|
|
31
31
|
/**
|
|
32
32
|
* Internal: yield the draft's zipped bytes + metadata so
|
|
33
|
-
* `client.
|
|
33
|
+
* `client.submit` can upload it as an asset.
|
|
34
34
|
*/
|
|
35
35
|
_takeDraftBundle(): {
|
|
36
36
|
name: string;
|
package/dist/agents-md.js
CHANGED
|
@@ -7,9 +7,9 @@ import { strToU8, zipSync } from "fflate";
|
|
|
7
7
|
* behaviour).
|
|
8
8
|
*
|
|
9
9
|
* const rules = await AgentsMd.fromContent("# Be helpful", { name: "rules" });
|
|
10
|
-
* await client.
|
|
10
|
+
* await client.submit({ agentsMd: [rules], ... });
|
|
11
11
|
*
|
|
12
|
-
* `client.
|
|
12
|
+
* `client.submit` materializes the bytes to the hosted asset store before
|
|
13
13
|
* the run lands. Asset deduplication handles repeated uploads automatically.
|
|
14
14
|
*/
|
|
15
15
|
export class AgentsMd {
|
|
@@ -53,12 +53,12 @@ export class AgentsMd {
|
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Internal: yield the draft's zipped bytes + metadata so
|
|
56
|
-
* `client.
|
|
56
|
+
* `client.submit` can upload it as an asset.
|
|
57
57
|
*/
|
|
58
58
|
_takeDraftBundle() {
|
|
59
59
|
if (this.#consumed) {
|
|
60
|
-
throw new Error("AgentsMd: cannot reuse a consumed AgentsMd in
|
|
61
|
-
"via AgentsMd.fromContent(...) / AgentsMd.fromPath(...) per
|
|
60
|
+
throw new Error("AgentsMd: cannot reuse a consumed AgentsMd in submit. Build a fresh one " +
|
|
61
|
+
"via AgentsMd.fromContent(...) / AgentsMd.fromPath(...) per submit call.");
|
|
62
62
|
}
|
|
63
63
|
if (this.#ref.kind !== "draft" || !this.#zipBytes) {
|
|
64
64
|
return undefined;
|
|
@@ -73,7 +73,7 @@ export class AgentsMd {
|
|
|
73
73
|
toJSON() {
|
|
74
74
|
if (this.#ref.kind === "draft") {
|
|
75
75
|
throw new Error("AgentsMd: draft AgentsMd cannot be JSON-serialised — it only becomes a wire " +
|
|
76
|
-
"ref when client.
|
|
76
|
+
"ref when client.submit uploads the bytes as an asset.");
|
|
77
77
|
}
|
|
78
78
|
return this.#ref;
|
|
79
79
|
}
|
package/dist/agents-md.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../src/agents-md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,QAAQ;IACV,IAAI,CAAiC;IACrC,SAAS,CAAyB;IAC3C,SAAS,GAAG,KAAK,CAAC;IAElB,YAAY,GAAmC,EAAE,QAAqB;QACpE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAA+B;QACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,yCAAyC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAC9E,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA+B;QACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,
|
|
1
|
+
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../src/agents-md.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.mjs
CHANGED
|
@@ -130,86 +130,35 @@ var PROVIDER_PUBLIC_SUPPORT = {
|
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
// ../contracts/dist/models.js
|
|
133
|
-
var
|
|
134
|
-
"claude-haiku-4-5",
|
|
135
|
-
"claude-3-5-haiku-latest",
|
|
136
|
-
"claude-3-5-sonnet-latest",
|
|
137
|
-
"deepseek-v4-flash",
|
|
138
|
-
"deepseek-v4-pro",
|
|
139
|
-
"deepseek-chat",
|
|
140
|
-
"deepseek-reasoner",
|
|
141
|
-
"gpt-4.1",
|
|
142
|
-
"gpt-4o-mini",
|
|
143
|
-
"
|
|
144
|
-
"gemini-2.
|
|
145
|
-
"
|
|
146
|
-
"mistral-
|
|
147
|
-
"
|
|
148
|
-
"google/gemini-2.0-flash-001"
|
|
149
|
-
];
|
|
150
|
-
var Models = {
|
|
151
|
-
/** Claude Haiku 4.5 — Anthropic. */
|
|
152
|
-
CLAUDE_HAIKU_4_5: "claude-haiku-4-5",
|
|
153
|
-
/** Claude 3.5 Haiku (latest) — Anthropic. */
|
|
154
|
-
CLAUDE_3_5_HAIKU_LATEST: "claude-3-5-haiku-latest",
|
|
155
|
-
/** Claude 3.5 Sonnet (latest) — Anthropic. */
|
|
156
|
-
CLAUDE_3_5_SONNET_LATEST: "claude-3-5-sonnet-latest",
|
|
157
|
-
/** DeepSeek V4 Flash — DeepSeek (non-thinking, fast). */
|
|
158
|
-
DEEPSEEK_V4_FLASH: "deepseek-v4-flash",
|
|
159
|
-
/** DeepSeek V4 Pro — DeepSeek (reasoning-heavy). */
|
|
160
|
-
DEEPSEEK_V4_PRO: "deepseek-v4-pro",
|
|
161
|
-
/**
|
|
162
|
-
* @deprecated Legacy alias DeepSeek routes to `deepseek-v4-flash` (non-thinking).
|
|
163
|
-
* DeepSeek removes this name on 2026-07-24 15:59 UTC — migrate to
|
|
164
|
-
* {@link Models.DEEPSEEK_V4_FLASH}.
|
|
165
|
-
*/
|
|
166
|
-
DEEPSEEK_CHAT: "deepseek-chat",
|
|
167
|
-
/**
|
|
168
|
-
* @deprecated Legacy alias DeepSeek routes to `deepseek-v4-flash` (thinking).
|
|
169
|
-
* DeepSeek removes this name on 2026-07-24 15:59 UTC — migrate to
|
|
170
|
-
* {@link Models.DEEPSEEK_V4_FLASH} (or {@link Models.DEEPSEEK_V4_PRO} for
|
|
171
|
-
* heavier reasoning).
|
|
172
|
-
*/
|
|
173
|
-
DEEPSEEK_REASONER: "deepseek-reasoner",
|
|
174
|
-
/** GPT-4.1 — OpenAI. */
|
|
175
|
-
GPT_4_1: "gpt-4.1",
|
|
176
|
-
/** GPT-4o mini — OpenAI. */
|
|
177
|
-
GPT_4O_MINI: "gpt-4o-mini",
|
|
178
|
-
/** Gemini 2.0 Flash — Gemini. */
|
|
179
|
-
GEMINI_2_0_FLASH: "gemini-2.0-flash",
|
|
180
|
-
/** Gemini 2.5 Flash — Gemini. */
|
|
181
|
-
GEMINI_2_5_FLASH: "gemini-2.5-flash",
|
|
182
|
-
/** Mistral Large (latest) — Mistral. */
|
|
183
|
-
MISTRAL_LARGE_LATEST: "mistral-large-latest",
|
|
184
|
-
/** Mistral Small (latest) — Mistral. */
|
|
185
|
-
MISTRAL_SMALL_LATEST: "mistral-small-latest",
|
|
186
|
-
/** GPT-4o mini via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
187
|
-
OPENROUTER_GPT_4O_MINI: "openai/gpt-4o-mini",
|
|
188
|
-
/** Gemini 2.0 Flash via OpenRouter (provider-prefixed) — cheap, tool-obedient. */
|
|
189
|
-
OPENROUTER_GEMINI_2_0_FLASH: "google/gemini-2.0-flash-001"
|
|
133
|
+
var MODEL_PROVIDER_IDS = {
|
|
134
|
+
"claude-haiku-4-5": { anthropic: "claude-haiku-4-5" },
|
|
135
|
+
"claude-3-5-haiku-latest": { anthropic: "claude-3-5-haiku-latest" },
|
|
136
|
+
"claude-3-5-sonnet-latest": { anthropic: "claude-3-5-sonnet-latest" },
|
|
137
|
+
"deepseek-v4-flash": { deepseek: "deepseek-v4-flash" },
|
|
138
|
+
"deepseek-v4-pro": { deepseek: "deepseek-v4-pro" },
|
|
139
|
+
"deepseek-chat": { deepseek: "deepseek-chat" },
|
|
140
|
+
"deepseek-reasoner": { deepseek: "deepseek-reasoner" },
|
|
141
|
+
"gpt-4.1": { openai: "gpt-4.1" },
|
|
142
|
+
"gpt-4o-mini": { openai: "gpt-4o-mini", openrouter: "openai/gpt-4o-mini" },
|
|
143
|
+
"gpt-4o": { openrouter: "openai/gpt-4o" },
|
|
144
|
+
"gemini-2.0-flash": { gemini: "gemini-2.0-flash", openrouter: "google/gemini-2.0-flash-001" },
|
|
145
|
+
"gemini-2.5-flash": { gemini: "gemini-2.5-flash" },
|
|
146
|
+
"mistral-large-latest": { mistral: "mistral-large-latest" },
|
|
147
|
+
"mistral-small-latest": { mistral: "mistral-small-latest" }
|
|
190
148
|
};
|
|
191
|
-
var
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
Models.DEEPSEEK_CHAT,
|
|
201
|
-
Models.DEEPSEEK_REASONER
|
|
202
|
-
],
|
|
203
|
-
openai: [Models.GPT_4_1, Models.GPT_4O_MINI],
|
|
204
|
-
gemini: [Models.GEMINI_2_0_FLASH, Models.GEMINI_2_5_FLASH],
|
|
205
|
-
mistral: [Models.MISTRAL_LARGE_LATEST, Models.MISTRAL_SMALL_LATEST],
|
|
206
|
-
openrouter: [Models.OPENROUTER_GPT_4O_MINI, Models.OPENROUTER_GEMINI_2_0_FLASH]
|
|
207
|
-
};
|
|
208
|
-
var PROVIDER_BY_MODEL = (() => {
|
|
149
|
+
var RUN_MODELS = Object.keys(MODEL_PROVIDER_IDS);
|
|
150
|
+
var PROVIDERS_BY_MODEL = (() => {
|
|
151
|
+
const map = {};
|
|
152
|
+
for (const [model, providers] of Object.entries(MODEL_PROVIDER_IDS)) {
|
|
153
|
+
map[model] = Object.keys(providers);
|
|
154
|
+
}
|
|
155
|
+
return map;
|
|
156
|
+
})();
|
|
157
|
+
var RUN_MODELS_BY_PROVIDER = (() => {
|
|
209
158
|
const map = {};
|
|
210
|
-
for (const [
|
|
211
|
-
for (const
|
|
212
|
-
map[
|
|
159
|
+
for (const [model, providers] of Object.entries(MODEL_PROVIDER_IDS)) {
|
|
160
|
+
for (const provider of Object.keys(providers)) {
|
|
161
|
+
(map[provider] ??= []).push(model);
|
|
213
162
|
}
|
|
214
163
|
}
|
|
215
164
|
return map;
|
package/dist/cli.mjs.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
479aa815e56005b54f89791ddaac4e41b564ffc377e3077deb11258dba46aaf5 cli.mjs
|