@openscout/protocol 0.3.2 → 0.3.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/runtime-catalog.generated.d.ts +14 -1
- package/dist/runtime-catalog.generated.d.ts.map +1 -1
- package/dist/runtime-catalog.generated.js +22 -1
- package/dist/runtime-execution.d.ts +11 -6
- package/dist/runtime-execution.d.ts.map +1 -1
- package/dist/runtime-execution.js +25 -13
- package/package.json +2 -2
- package/src/runtime-catalog.generated.ts +22 -1
- package/src/runtime-catalog.md +62 -11
- package/src/runtime-catalog.v1.json +2 -1
- package/src/runtime-execution.ts +30 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const SCOUT_RUNTIME_CATALOG_DATA: {
|
|
2
2
|
readonly schemaVersion: "openscout.runtime-catalog.v1";
|
|
3
|
-
readonly revision: "2026-10-
|
|
3
|
+
readonly revision: "2026-10-05.1";
|
|
4
4
|
readonly harnesses: readonly [{
|
|
5
5
|
readonly id: "claude";
|
|
6
6
|
readonly label: "Claude Code";
|
|
@@ -99,6 +99,19 @@ export declare const SCOUT_RUNTIME_CATALOG_DATA: {
|
|
|
99
99
|
readonly presentation: {
|
|
100
100
|
readonly detail: "Most capable";
|
|
101
101
|
};
|
|
102
|
+
}, {
|
|
103
|
+
readonly id: "gpt-6.1-sol";
|
|
104
|
+
readonly label: "6.1 Sol";
|
|
105
|
+
readonly enabled: true;
|
|
106
|
+
readonly description: "Complex coding, computer use, and professional work at a lower cost than Astra";
|
|
107
|
+
readonly family: "GPT";
|
|
108
|
+
readonly version: "6.1 Sol";
|
|
109
|
+
readonly contextWindowTokens: 1050000;
|
|
110
|
+
readonly reasoningEfforts: readonly ["low", "medium", "high", "xhigh", "max", "ultra"];
|
|
111
|
+
readonly defaultReasoningEffort: "medium";
|
|
112
|
+
readonly presentation: {
|
|
113
|
+
readonly detail: "Latest";
|
|
114
|
+
};
|
|
102
115
|
}, {
|
|
103
116
|
readonly id: "gpt-6-sol";
|
|
104
117
|
readonly label: "6 Sol";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-catalog.generated.d.ts","sourceRoot":"","sources":["../src/runtime-catalog.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"runtime-catalog.generated.d.ts","sourceRoot":"","sources":["../src/runtime-catalog.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+d7B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated automatically from runtime-catalog.v1.json. Do not edit.
|
|
2
2
|
export const SCOUT_RUNTIME_CATALOG_DATA = {
|
|
3
3
|
"schemaVersion": "openscout.runtime-catalog.v1",
|
|
4
|
-
"revision": "2026-10-
|
|
4
|
+
"revision": "2026-10-05.1",
|
|
5
5
|
"harnesses": [
|
|
6
6
|
{
|
|
7
7
|
"id": "claude",
|
|
@@ -130,6 +130,27 @@ export const SCOUT_RUNTIME_CATALOG_DATA = {
|
|
|
130
130
|
"detail": "Most capable"
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
|
+
{
|
|
134
|
+
"id": "gpt-6.1-sol",
|
|
135
|
+
"label": "6.1 Sol",
|
|
136
|
+
"enabled": true,
|
|
137
|
+
"description": "Complex coding, computer use, and professional work at a lower cost than Astra",
|
|
138
|
+
"family": "GPT",
|
|
139
|
+
"version": "6.1 Sol",
|
|
140
|
+
"contextWindowTokens": 1050000,
|
|
141
|
+
"reasoningEfforts": [
|
|
142
|
+
"low",
|
|
143
|
+
"medium",
|
|
144
|
+
"high",
|
|
145
|
+
"xhigh",
|
|
146
|
+
"max",
|
|
147
|
+
"ultra"
|
|
148
|
+
],
|
|
149
|
+
"defaultReasoningEffort": "medium",
|
|
150
|
+
"presentation": {
|
|
151
|
+
"detail": "Latest"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
133
154
|
{
|
|
134
155
|
"id": "gpt-6-sol",
|
|
135
156
|
"label": "6 Sol",
|
|
@@ -5,10 +5,10 @@ export interface ScoutRuntimeHarnessDefaults {
|
|
|
5
5
|
reasoningEffort: ScoutReasoningEffort | null;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
* Scout's versioned
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Scout's published, versioned catalog controls enabled names, ordering,
|
|
9
|
+
* labels and model effort metadata. A running broker can adopt newer data
|
|
10
|
+
* without an app/package update. Adapters separately report harness readiness;
|
|
11
|
+
* actual execution errors remain authoritative for a particular task.
|
|
12
12
|
*/
|
|
13
13
|
export declare const SCOUT_RUNTIME_CATALOG: ScoutOwnedRuntimeCatalog;
|
|
14
14
|
export declare function scoutRuntimeHarness(harness: string, catalog?: ScoutOwnedRuntimeCatalog): ScoutOwnedRuntimeHarness | undefined;
|
|
@@ -131,6 +131,11 @@ export type ScoutRuntimeTuple = {
|
|
|
131
131
|
harness?: string | null;
|
|
132
132
|
model?: string | null;
|
|
133
133
|
reasoningEffort?: string | null;
|
|
134
|
+
/** Existing task context remains usable after a published choice is disabled. */
|
|
135
|
+
session?: "new" | "reuse" | "existing" | "fork" | "any";
|
|
136
|
+
targetSessionId?: string;
|
|
137
|
+
forkFromSessionId?: string;
|
|
138
|
+
forkFromStateId?: string;
|
|
134
139
|
};
|
|
135
140
|
export interface ScoutRuntimeSpec {
|
|
136
141
|
harness: ScoutLaunchableHarness;
|
|
@@ -161,12 +166,12 @@ export type ScoutRuntimeModelNormalization = {
|
|
|
161
166
|
*/
|
|
162
167
|
export declare function scoutRuntimeLatestModelInFamily(harness: string, family: string, catalog?: ScoutOwnedRuntimeCatalog): string | undefined;
|
|
163
168
|
/** Canonical model aliases shared by every request boundary and spawn path. */
|
|
164
|
-
export declare function normalizeScoutRuntimeModel(harness: string, input: string): ScoutRuntimeModelNormalization;
|
|
169
|
+
export declare function normalizeScoutRuntimeModel(harness: string, input: string, catalog?: ScoutOwnedRuntimeCatalog): ScoutRuntimeModelNormalization;
|
|
165
170
|
/** Parse the shell-safe `<harness>[/<model>[/<effort>]]` production. */
|
|
166
171
|
export declare function parseScoutRuntimeSpec(input: string): ScoutRuntimeSpecParseResult;
|
|
167
172
|
export declare function formatScoutRuntimeSpec(spec: ScoutRuntimeSpec): string;
|
|
168
173
|
export type ScoutRuntimeTupleIssue = {
|
|
169
|
-
code: "unsupported_harness" | "unsupported_reasoning_effort" | "reasoning_effort_harness_mismatch" | "unsupported_model_dimension" | "model_harness_mismatch";
|
|
174
|
+
code: "unsupported_harness" | "disabled_model" | "unsupported_reasoning_effort" | "reasoning_effort_harness_mismatch" | "unsupported_model_dimension" | "model_harness_mismatch";
|
|
170
175
|
dimension: "harness" | "model" | "reasoningEffort";
|
|
171
176
|
message: string;
|
|
172
177
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-execution.d.ts","sourceRoot":"","sources":["../src/runtime-execution.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-execution.d.ts","sourceRoot":"","sources":["../src/runtime-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { SCOUT_RUNTIME_CATALOG_DATA } from "./runtime-catalog.generated.js";
|
|
|
2
2
|
import { SCOUT_LAUNCHABLE_HARNESSES, SCOUT_REASONING_EFFORT_LABELS, SCOUT_REASONING_EFFORTS, } from "./runtime-catalog-contract.js";
|
|
3
3
|
export * from "./runtime-catalog-contract.js";
|
|
4
4
|
/**
|
|
5
|
-
* Scout's versioned
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Scout's published, versioned catalog controls enabled names, ordering,
|
|
6
|
+
* labels and model effort metadata. A running broker can adopt newer data
|
|
7
|
+
* without an app/package update. Adapters separately report harness readiness;
|
|
8
|
+
* actual execution errors remain authoritative for a particular task.
|
|
9
9
|
*/
|
|
10
10
|
export const SCOUT_RUNTIME_CATALOG = SCOUT_RUNTIME_CATALOG_DATA;
|
|
11
11
|
export function scoutRuntimeHarness(harness, catalog = SCOUT_RUNTIME_CATALOG) {
|
|
@@ -162,7 +162,7 @@ export function scoutRuntimeLatestModelInFamily(harness, family, catalog = SCOUT
|
|
|
162
162
|
return (models.find((model) => model.default) ?? models[0])?.id;
|
|
163
163
|
}
|
|
164
164
|
/** Canonical model aliases shared by every request boundary and spawn path. */
|
|
165
|
-
export function normalizeScoutRuntimeModel(harness, input) {
|
|
165
|
+
export function normalizeScoutRuntimeModel(harness, input, catalog = SCOUT_RUNTIME_CATALOG) {
|
|
166
166
|
const requested = input.trim();
|
|
167
167
|
if (!requested) {
|
|
168
168
|
return { ok: false, requested, error: "model cannot be empty" };
|
|
@@ -183,7 +183,7 @@ export function normalizeScoutRuntimeModel(harness, input) {
|
|
|
183
183
|
}
|
|
184
184
|
if (normalizedHarness === "claude") {
|
|
185
185
|
const family = CLAUDE_FAMILY_ALIASES[lower];
|
|
186
|
-
const resolved = family ? scoutRuntimeLatestModelInFamily("claude", family) : undefined;
|
|
186
|
+
const resolved = family ? scoutRuntimeLatestModelInFamily("claude", family, catalog) : undefined;
|
|
187
187
|
return { ok: true, requested, resolved: resolved ?? requested };
|
|
188
188
|
}
|
|
189
189
|
return { ok: true, requested, resolved: requested };
|
|
@@ -215,10 +215,8 @@ export function parseScoutRuntimeSpec(input) {
|
|
|
215
215
|
error: `unsupported reasoning effort "${effortRaw}"; expected one of: ${SCOUT_REASONING_EFFORTS.join(", ")}`,
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return { ok: false, error: issues.map((issue) => issue.message).join("; ") };
|
|
221
|
-
}
|
|
218
|
+
// Parse syntax locally. The broker validates model/effort legality against
|
|
219
|
+
// its current published catalog, which can be newer than this CLI package.
|
|
222
220
|
return {
|
|
223
221
|
ok: true,
|
|
224
222
|
value: {
|
|
@@ -295,9 +293,14 @@ export function createScoutExecutionResolution(input) {
|
|
|
295
293
|
export function validateScoutRuntimeTuple(input, catalog, ownedCatalog = SCOUT_RUNTIME_CATALOG) {
|
|
296
294
|
const rawHarness = input.harness?.trim().toLowerCase();
|
|
297
295
|
const harness = rawHarness === "oc" ? "opencode" : rawHarness;
|
|
298
|
-
const
|
|
296
|
+
const requestedModel = input.model?.trim();
|
|
297
|
+
const normalizedModel = harness && requestedModel
|
|
298
|
+
? normalizeScoutRuntimeModel(harness, requestedModel, ownedCatalog) : null;
|
|
299
|
+
const model = normalizedModel?.ok ? normalizedModel.resolved : requestedModel;
|
|
299
300
|
const effortRaw = input.reasoningEffort?.trim();
|
|
300
301
|
const issues = [];
|
|
302
|
+
const existingContext = Boolean(input.targetSessionId || input.forkFromSessionId || input.forkFromStateId)
|
|
303
|
+
|| input.session === "existing" || input.session === "fork";
|
|
301
304
|
// Harness membership and model selectability come from the owned catalog —
|
|
302
305
|
// the live broker snapshot when one is supplied, the bundled default
|
|
303
306
|
// otherwise — never a hand-maintained list.
|
|
@@ -317,7 +320,7 @@ export function validateScoutRuntimeTuple(input, catalog, ownedCatalog = SCOUT_R
|
|
|
317
320
|
message: `unsupported reasoning effort "${effortRaw}"; expected one of: ${SCOUT_REASONING_EFFORTS.join(", ")}`,
|
|
318
321
|
});
|
|
319
322
|
}
|
|
320
|
-
else if (effort && harness) {
|
|
323
|
+
else if (effort && harness && !existingContext) {
|
|
321
324
|
const catalogEffort = catalog?.efforts.find((candidate) => candidate.id === effort);
|
|
322
325
|
let supported = catalogEffort
|
|
323
326
|
? catalogEffort.harnesses.includes(harness)
|
|
@@ -339,7 +342,16 @@ export function validateScoutRuntimeTuple(input, catalog, ownedCatalog = SCOUT_R
|
|
|
339
342
|
});
|
|
340
343
|
}
|
|
341
344
|
}
|
|
342
|
-
|
|
345
|
+
const ownedHarness = harness ? scoutRuntimeHarness(harness, ownedCatalog) : undefined;
|
|
346
|
+
const publishedModel = ownedHarness?.models.find((candidate) => candidate.id.toLowerCase() === model?.toLowerCase());
|
|
347
|
+
if (model && publishedModel?.enabled === false && ownedHarness?.allowCustomModels !== true && !existingContext) {
|
|
348
|
+
issues.push({
|
|
349
|
+
code: "disabled_model",
|
|
350
|
+
dimension: "model",
|
|
351
|
+
message: `model "${model}" is disabled in the Scout runtime catalog`,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
else if (model && harness && !existingContext && !isModelSelectableHarness(harness, ownedCatalog)) {
|
|
343
355
|
issues.push({
|
|
344
356
|
code: "unsupported_model_dimension",
|
|
345
357
|
dimension: "model",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openscout/protocol",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Typed protocol for the OpenScout local control plane",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"typescript": "^5"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "2fed47b16bba310fa90ad47196b3eb5e697ea152"
|
|
61
61
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
export const SCOUT_RUNTIME_CATALOG_DATA = {
|
|
4
4
|
"schemaVersion": "openscout.runtime-catalog.v1",
|
|
5
|
-
"revision": "2026-10-
|
|
5
|
+
"revision": "2026-10-05.1",
|
|
6
6
|
"harnesses": [
|
|
7
7
|
{
|
|
8
8
|
"id": "claude",
|
|
@@ -131,6 +131,27 @@ export const SCOUT_RUNTIME_CATALOG_DATA = {
|
|
|
131
131
|
"detail": "Most capable"
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
|
+
{
|
|
135
|
+
"id": "gpt-6.1-sol",
|
|
136
|
+
"label": "6.1 Sol",
|
|
137
|
+
"enabled": true,
|
|
138
|
+
"description": "Complex coding, computer use, and professional work at a lower cost than Astra",
|
|
139
|
+
"family": "GPT",
|
|
140
|
+
"version": "6.1 Sol",
|
|
141
|
+
"contextWindowTokens": 1050000,
|
|
142
|
+
"reasoningEfforts": [
|
|
143
|
+
"low",
|
|
144
|
+
"medium",
|
|
145
|
+
"high",
|
|
146
|
+
"xhigh",
|
|
147
|
+
"max",
|
|
148
|
+
"ultra"
|
|
149
|
+
],
|
|
150
|
+
"defaultReasoningEffort": "medium",
|
|
151
|
+
"presentation": {
|
|
152
|
+
"detail": "Latest"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
134
155
|
{
|
|
135
156
|
"id": "gpt-6-sol",
|
|
136
157
|
"label": "6 Sol",
|
package/src/runtime-catalog.md
CHANGED
|
@@ -1,21 +1,72 @@
|
|
|
1
1
|
# Runtime model catalog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Scout publishes its enabled models, labels, ordering, defaults, reasoning
|
|
4
|
+
choices and context windows as versioned JSON. The canonical source is
|
|
5
|
+
`packages/protocol/src/runtime-catalog.v1.json`; the public data endpoint is
|
|
6
|
+
`https://openscout.app/.well-known/runtime-catalog.v1.json`.
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
The catalog controls product choices. Harness adapters separately check the
|
|
9
|
+
local executable and readiness, then launch the selected identifier through
|
|
10
|
+
their normal integration. A provider rejection is reported as an execution
|
|
11
|
+
failure. An installed harness's advertised model list does not silently rewrite
|
|
12
|
+
Scout's published enabled list. A model in this catalog does not prove that a
|
|
13
|
+
particular provider account, client or workspace can use it.
|
|
6
14
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
`Default` leaves the model and effort unspecified and uses the harness's own
|
|
16
|
+
configuration. A suggested catalog default does not replace that configuration.
|
|
17
|
+
|
|
18
|
+
## Review and publish model data
|
|
19
|
+
|
|
20
|
+
1. Optionally run `bun scripts/check-runtime-model-updates.ts`. This prints a
|
|
21
|
+
read-only comparison with [Models.dev's model metadata](https://models.dev/models.json).
|
|
22
|
+
It proposes new model facts and context-window changes; it does not enable
|
|
23
|
+
models, rename IDs, change defaults or publish anything. Upstream context
|
|
24
|
+
values describe provider/API metadata and may differ from a harness's usable
|
|
25
|
+
budget. Verify identifiers, context windows and reasoning controls against
|
|
26
|
+
the harness and provider documentation.
|
|
27
|
+
2. Edit `packages/protocol/src/runtime-catalog.v1.json`, including each model's
|
|
28
|
+
explicit `enabled` flag. Increment its `YYYY-MM-DD.N` revision. New model
|
|
29
|
+
names are data; use exact launch identifiers rather than guessed aliases.
|
|
30
|
+
3. Run `bun scripts/generate-runtime-catalog.ts` and then the same command with
|
|
31
|
+
`--check`. The generated bundled fallback and public-site mirror must match
|
|
32
|
+
the reviewed source. Review the data change and deploy the landing site
|
|
33
|
+
through the authorized local site process. No app rebuild, package publish,
|
|
34
|
+
daemon restart or hosted workflow is part of model-data publication.
|
|
35
|
+
4. Run `bun scripts/generate-runtime-catalog.ts --verify-live` after deployment.
|
|
36
|
+
This read-only check requires the public JSON's revision and bytes to
|
|
37
|
+
match the generated source mirror; generating a local mirror alone does not prove publication.
|
|
38
|
+
|
|
39
|
+
Current clients check the published catalog once a minute, save the valid model
|
|
40
|
+
list and check time, and use conditional requests with the catalog ETag. The
|
|
41
|
+
saved list stays available offline, with the bundled catalog as a first-install
|
|
42
|
+
fallback. A separate upcoming client update changes the normal network check
|
|
43
|
+
to once a day and adds a **Refresh models** action that checks immediately.
|
|
44
|
+
Existing clients keep their one-minute refresh schedule until they receive
|
|
45
|
+
that client update. Ordinary model-data changes need no subsequent package
|
|
46
|
+
update.
|
|
12
47
|
|
|
13
48
|
To intentionally restore older model contents, publish them under a new,
|
|
14
49
|
higher revision. Scout rejects revision downgrades and same-revision content
|
|
15
50
|
changes so retries cannot roll back or silently replace a catalog.
|
|
16
51
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
52
|
+
Normal model additions, removals and metadata changes require only a JSON
|
|
53
|
+
publication. Adding a new harness or execution protocol can still require an
|
|
54
|
+
adapter update. Do not infer an aggregator-qualified ID from a vendor
|
|
55
|
+
announcement: xAI's `grok-4.6` proves the Grok ID, but not an
|
|
21
56
|
`opencode-go/grok-4.6` ID.
|
|
57
|
+
|
|
58
|
+
Catalog requests can provide aggregate request-volume measurements in existing
|
|
59
|
+
hosting logs. Request volume is not a unique-user count: checks, manual
|
|
60
|
+
refreshes and retries affect it. The client sends no installation identifier,
|
|
61
|
+
project path, account data or model-selection event with a catalog request.
|
|
62
|
+
|
|
63
|
+
The `gpt-6.1-sol` entry is distinct from `gpt-6-sol`. OpenAI documents its exact
|
|
64
|
+
identifier, 1,050,000-token API context window and medium API default effort in
|
|
65
|
+
[the API model documentation](https://developers.openai.com/api/docs/models/gpt-6.1-sol).
|
|
66
|
+
The API effort list runs from low through max; Scout's Codex entry also includes
|
|
67
|
+
Ultra because [the Codex model guide](https://learn.chatgpt.com/docs/models)
|
|
68
|
+
documents Light through Ultra for this model, subject to plan, client and
|
|
69
|
+
workspace availability. Ultra is a Codex control, rather than an additional
|
|
70
|
+
API effort. Existing catalog defaults remain unchanged. This publication does
|
|
71
|
+
not prove that the mini's installed client or account can use the model, or
|
|
72
|
+
diagnose an older client's rejection.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openscout.runtime-catalog.v1",
|
|
3
|
-
"revision": "2026-10-
|
|
3
|
+
"revision": "2026-10-05.1",
|
|
4
4
|
"harnesses": [
|
|
5
5
|
{
|
|
6
6
|
"id": "claude",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"presentation": { "short": "Codex", "monogram": "◈" },
|
|
31
31
|
"models": [
|
|
32
32
|
{ "id": "gpt-6-astra", "label": "6 Astra", "enabled": true, "default": true, "description": "Most capable for complex reasoning, coding, computer use, research, and document creation", "family": "GPT", "version": "6 Astra", "contextWindowTokens": 1050000, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "defaultReasoningEffort": "low", "presentation": { "detail": "Most capable" } },
|
|
33
|
+
{ "id": "gpt-6.1-sol", "label": "6.1 Sol", "enabled": true, "description": "Complex coding, computer use, and professional work at a lower cost than Astra", "family": "GPT", "version": "6.1 Sol", "contextWindowTokens": 1050000, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max", "ultra"], "defaultReasoningEffort": "medium", "presentation": { "detail": "Latest" } },
|
|
33
34
|
{ "id": "gpt-6-sol", "label": "6 Sol", "enabled": true, "description": "Complex coding and agentic workflows", "family": "GPT", "version": "6 Sol", "contextWindowTokens": 272000, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max", "ultra"], "presentation": { "detail": "Coding" } },
|
|
34
35
|
{ "id": "gpt-6-luna", "label": "6 Luna", "enabled": true, "description": "Efficient focused coding and repeatable tasks", "family": "GPT", "version": "6 Luna", "contextWindowTokens": 272000, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "presentation": { "detail": "Efficient" } },
|
|
35
36
|
{ "id": "gpt-5.6-sol", "label": "5.6 Sol", "enabled": true, "family": "GPT", "version": "5.6 Sol", "reasoningEfforts": ["low", "medium", "high", "xhigh", "ultra"], "presentation": { "detail": "Frontier" } },
|
package/src/runtime-execution.ts
CHANGED
|
@@ -18,10 +18,10 @@ export interface ScoutRuntimeHarnessDefaults {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Scout's versioned
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* Scout's published, versioned catalog controls enabled names, ordering,
|
|
22
|
+
* labels and model effort metadata. A running broker can adopt newer data
|
|
23
|
+
* without an app/package update. Adapters separately report harness readiness;
|
|
24
|
+
* actual execution errors remain authoritative for a particular task.
|
|
25
25
|
*/
|
|
26
26
|
export const SCOUT_RUNTIME_CATALOG: ScoutOwnedRuntimeCatalog = SCOUT_RUNTIME_CATALOG_DATA;
|
|
27
27
|
|
|
@@ -331,6 +331,11 @@ export type ScoutRuntimeTuple = {
|
|
|
331
331
|
harness?: string | null;
|
|
332
332
|
model?: string | null;
|
|
333
333
|
reasoningEffort?: string | null;
|
|
334
|
+
/** Existing task context remains usable after a published choice is disabled. */
|
|
335
|
+
session?: "new" | "reuse" | "existing" | "fork" | "any";
|
|
336
|
+
targetSessionId?: string;
|
|
337
|
+
forkFromSessionId?: string;
|
|
338
|
+
forkFromStateId?: string;
|
|
334
339
|
};
|
|
335
340
|
|
|
336
341
|
export interface ScoutRuntimeSpec {
|
|
@@ -373,6 +378,7 @@ export function scoutRuntimeLatestModelInFamily(
|
|
|
373
378
|
export function normalizeScoutRuntimeModel(
|
|
374
379
|
harness: string,
|
|
375
380
|
input: string,
|
|
381
|
+
catalog: ScoutOwnedRuntimeCatalog = SCOUT_RUNTIME_CATALOG,
|
|
376
382
|
): ScoutRuntimeModelNormalization {
|
|
377
383
|
const requested = input.trim();
|
|
378
384
|
if (!requested) {
|
|
@@ -394,7 +400,7 @@ export function normalizeScoutRuntimeModel(
|
|
|
394
400
|
}
|
|
395
401
|
if (normalizedHarness === "claude") {
|
|
396
402
|
const family = CLAUDE_FAMILY_ALIASES[lower];
|
|
397
|
-
const resolved = family ? scoutRuntimeLatestModelInFamily("claude", family) : undefined;
|
|
403
|
+
const resolved = family ? scoutRuntimeLatestModelInFamily("claude", family, catalog) : undefined;
|
|
398
404
|
return { ok: true, requested, resolved: resolved ?? requested };
|
|
399
405
|
}
|
|
400
406
|
return { ok: true, requested, resolved: requested };
|
|
@@ -427,10 +433,8 @@ export function parseScoutRuntimeSpec(input: string): ScoutRuntimeSpecParseResul
|
|
|
427
433
|
error: `unsupported reasoning effort "${effortRaw}"; expected one of: ${SCOUT_REASONING_EFFORTS.join(", ")}`,
|
|
428
434
|
};
|
|
429
435
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
return { ok: false, error: issues.map((issue) => issue.message).join("; ") };
|
|
433
|
-
}
|
|
436
|
+
// Parse syntax locally. The broker validates model/effort legality against
|
|
437
|
+
// its current published catalog, which can be newer than this CLI package.
|
|
434
438
|
return {
|
|
435
439
|
ok: true,
|
|
436
440
|
value: {
|
|
@@ -453,6 +457,7 @@ export function formatScoutRuntimeSpec(spec: ScoutRuntimeSpec): string {
|
|
|
453
457
|
export type ScoutRuntimeTupleIssue = {
|
|
454
458
|
code:
|
|
455
459
|
| "unsupported_harness"
|
|
460
|
+
| "disabled_model"
|
|
456
461
|
| "unsupported_reasoning_effort"
|
|
457
462
|
| "reasoning_effort_harness_mismatch"
|
|
458
463
|
| "unsupported_model_dimension"
|
|
@@ -544,9 +549,14 @@ export function validateScoutRuntimeTuple(
|
|
|
544
549
|
): ScoutRuntimeTupleIssue[] {
|
|
545
550
|
const rawHarness = input.harness?.trim().toLowerCase();
|
|
546
551
|
const harness = rawHarness === "oc" ? "opencode" : rawHarness;
|
|
547
|
-
const
|
|
552
|
+
const requestedModel = input.model?.trim();
|
|
553
|
+
const normalizedModel = harness && requestedModel
|
|
554
|
+
? normalizeScoutRuntimeModel(harness, requestedModel, ownedCatalog) : null;
|
|
555
|
+
const model = normalizedModel?.ok ? normalizedModel.resolved : requestedModel;
|
|
548
556
|
const effortRaw = input.reasoningEffort?.trim();
|
|
549
557
|
const issues: ScoutRuntimeTupleIssue[] = [];
|
|
558
|
+
const existingContext = Boolean(input.targetSessionId || input.forkFromSessionId || input.forkFromStateId)
|
|
559
|
+
|| input.session === "existing" || input.session === "fork";
|
|
550
560
|
|
|
551
561
|
// Harness membership and model selectability come from the owned catalog —
|
|
552
562
|
// the live broker snapshot when one is supplied, the bundled default
|
|
@@ -567,7 +577,7 @@ export function validateScoutRuntimeTuple(
|
|
|
567
577
|
dimension: "reasoningEffort",
|
|
568
578
|
message: `unsupported reasoning effort "${effortRaw}"; expected one of: ${SCOUT_REASONING_EFFORTS.join(", ")}`,
|
|
569
579
|
});
|
|
570
|
-
} else if (effort && harness) {
|
|
580
|
+
} else if (effort && harness && !existingContext) {
|
|
571
581
|
const catalogEffort = catalog?.efforts.find((candidate) => candidate.id === effort);
|
|
572
582
|
let supported = catalogEffort
|
|
573
583
|
? catalogEffort.harnesses.includes(harness as ScoutLaunchableHarness)
|
|
@@ -594,7 +604,15 @@ export function validateScoutRuntimeTuple(
|
|
|
594
604
|
}
|
|
595
605
|
}
|
|
596
606
|
|
|
597
|
-
|
|
607
|
+
const ownedHarness = harness ? scoutRuntimeHarness(harness, ownedCatalog) : undefined;
|
|
608
|
+
const publishedModel = ownedHarness?.models.find((candidate) => candidate.id.toLowerCase() === model?.toLowerCase());
|
|
609
|
+
if (model && publishedModel?.enabled === false && ownedHarness?.allowCustomModels !== true && !existingContext) {
|
|
610
|
+
issues.push({
|
|
611
|
+
code: "disabled_model",
|
|
612
|
+
dimension: "model",
|
|
613
|
+
message: `model "${model}" is disabled in the Scout runtime catalog`,
|
|
614
|
+
});
|
|
615
|
+
} else if (model && harness && !existingContext && !isModelSelectableHarness(harness, ownedCatalog)) {
|
|
598
616
|
issues.push({
|
|
599
617
|
code: "unsupported_model_dimension",
|
|
600
618
|
dimension: "model",
|