@botiverse/oar 0.66.0 → 0.67.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/dist/contracts/records.d.ts +1 -1
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/forms/fields.d.ts +9 -0
- package/dist/forms/fields.d.ts.map +1 -0
- package/dist/forms/fields.js +46 -0
- package/dist/forms/fields.js.map +1 -0
- package/dist/forms/index.d.ts +11 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +19 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/listing.d.ts +15 -0
- package/dist/forms/listing.d.ts.map +1 -0
- package/dist/forms/listing.js +28 -0
- package/dist/forms/listing.js.map +1 -0
- package/dist/forms/map.d.ts +32 -0
- package/dist/forms/map.d.ts.map +1 -0
- package/dist/forms/map.js +76 -0
- package/dist/forms/map.js.map +1 -0
- package/dist/forms/runtimes/grok.d.ts +15 -0
- package/dist/forms/runtimes/grok.d.ts.map +1 -0
- package/dist/forms/runtimes/grok.js +56 -0
- package/dist/forms/runtimes/grok.js.map +1 -0
- package/dist/forms/types.d.ts +131 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +2 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/forms/validate.d.ts +10 -0
- package/dist/forms/validate.d.ts.map +1 -0
- package/dist/forms/validate.js +147 -0
- package/dist/forms/validate.js.map +1 -0
- package/dist/runtimes/pi/open.d.ts.map +1 -1
- package/dist/runtimes/pi/open.js +12 -0
- package/dist/runtimes/pi/open.js.map +1 -1
- package/dist/runtimes/pi/projection.d.ts.map +1 -1
- package/dist/runtimes/pi/projection.js +8 -0
- package/dist/runtimes/pi/projection.js.map +1 -1
- package/dist/runtimes/pi-durable/projection.d.ts.map +1 -1
- package/dist/runtimes/pi-durable/projection.js +8 -1
- package/dist/runtimes/pi-durable/projection.js.map +1 -1
- package/dist/shared/executable/index.d.ts +2 -1
- package/dist/shared/executable/index.d.ts.map +1 -1
- package/dist/shared/executable/index.js +2 -1
- package/dist/shared/executable/index.js.map +1 -1
- package/dist/shared/executable/isolated.d.ts.map +1 -1
- package/dist/shared/executable/isolated.js +5 -1
- package/dist/shared/executable/isolated.js.map +1 -1
- package/dist/shared/executable/process.d.ts +4 -4
- package/dist/shared/executable/process.d.ts.map +1 -1
- package/dist/shared/executable/process.js +7 -7
- package/dist/shared/executable/process.js.map +1 -1
- package/dist/shared/executable/run.d.ts.map +1 -1
- package/dist/shared/executable/run.js +10 -4
- package/dist/shared/executable/run.js.map +1 -1
- package/dist/shared/executable/windows-shim.d.ts +38 -0
- package/dist/shared/executable/windows-shim.d.ts.map +1 -0
- package/dist/shared/executable/windows-shim.js +91 -0
- package/dist/shared/executable/windows-shim.js.map +1 -0
- package/package.json +11 -7
|
@@ -197,7 +197,7 @@ export type RuntimeEventBody = UserMessage
|
|
|
197
197
|
readonly content?: readonly ToolOutputPart[];
|
|
198
198
|
/** The runtime's explicit tool outcome; absent when it reported none. */
|
|
199
199
|
readonly result?: "ok" | "failed";
|
|
200
|
-
/** The process exit status the runtime reported for a command it ran (codex `commandExecution.exitCode`, grok and antigravity `rawOutput.exit_code`, a cursor shell result's `exitCode`
|
|
200
|
+
/** The process exit status the runtime reported for a command it ran (codex `commandExecution.exitCode`, grok and antigravity `rawOutput.exit_code`, a cursor shell result's `exitCode`, pi's CodingTools `structuredContent.exit_code`, pi-durable's nested-call `result.structuredOutput.exitCode`). pi and pi-durable encode a signal as a number, 128 plus the signal number, so SIGTERM is 143, never null; a pi-durable ordinary (non-nested) tool call does not carry it and stays absent. `null` only when a runtime itself reports a numeric-less exit. Absent when the runtime reports none (claude, and any tool that is not a command run), never derived from `result` or output. */
|
|
201
201
|
readonly exitCode?: number | null;
|
|
202
202
|
} | ToolCallProgress
|
|
203
203
|
/** The runtime's OWN completion report for a turn (claude `result`, codex `turn/completed`, pi `agent_settled`, an ACP prompt answer). A prompt request produces `turn_started`; a native active-run report produces `turn_active`. Neither implies an outcome: if a runtime reports no end, none appears. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/contracts/records.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,mRAAmR;IACnR,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6KAA6K;IAC7K,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,2IAA2I;IAC3I,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wIAAwI;IACxI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,wJAAwJ;AACxJ,MAAM,WAAW,KAAM,SAAQ,cAAc;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,OAAO,CAAC;AAErD,yPAAyP;AACzP,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,2NAA2N;AAC3N,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,aAAa,GAAG,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,4HAA4H;IAC5H,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yHAAyH;IACzH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wHAAwH;IACxH,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,cAAc,CAAC;CAClE;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW;AACxC,oJAAoJ;GAClJ;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;CAAE;AACjH,8KAA8K;GAC5K;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC7D,kJAAkJ;GAChJ;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC7D,qLAAqL;GACnL;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE;AACnG,qJAAqJ;GACnJ;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC9J,4OAA4O;GAC1O;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AACrF,wNAAwN;GACtN;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/F;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AACH,wPAAwP;GACtP;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACvF,uMAAuM;GACrM;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3F;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uSAAuS;IACvS,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/contracts/records.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ConfigField, FormValues, LaunchValues, ModelValue, RuntimeConfigForm } from "./types.js";
|
|
2
|
+
/** False when the field's `visibleWhen` is not met: an inactive branch, not part of this configuration. */
|
|
3
|
+
export declare function isActive(field: ConfigField, values: FormValues | LaunchValues): boolean;
|
|
4
|
+
/** A model value of a known shape, or null for anything else. */
|
|
5
|
+
export declare function asModelValue(value: unknown): ModelValue | null;
|
|
6
|
+
export declare function sameModel(left: unknown, right: unknown): boolean;
|
|
7
|
+
export declare function unknownFieldIds(form: RuntimeConfigForm, values: FormValues | LaunchValues): readonly string[];
|
|
8
|
+
export declare function isEmpty(value: unknown): boolean;
|
|
9
|
+
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/forms/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvG,2GAA2G;AAC3G,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAMvF;AAOD,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAiB9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAOhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,MAAM,EAAE,CAE7G;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** False when the field's `visibleWhen` is not met: an inactive branch, not part of this configuration. */
|
|
2
|
+
export function isActive(field, values) {
|
|
3
|
+
if (field.visibleWhen === undefined) {
|
|
4
|
+
return true;
|
|
5
|
+
}
|
|
6
|
+
const other = values[field.visibleWhen.field];
|
|
7
|
+
return typeof other === "string" && field.visibleWhen.in.includes(other);
|
|
8
|
+
}
|
|
9
|
+
function readString(value, key) {
|
|
10
|
+
const entry = Reflect.get(value, key);
|
|
11
|
+
return typeof entry === "string" && entry.trim() !== "" ? entry : undefined;
|
|
12
|
+
}
|
|
13
|
+
/** A model value of a known shape, or null for anything else. */
|
|
14
|
+
export function asModelValue(value) {
|
|
15
|
+
if (typeof value !== "object" || value === null) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const kind = Reflect.get(value, "kind");
|
|
19
|
+
if (kind === "inherit") {
|
|
20
|
+
return { kind: "inherit" };
|
|
21
|
+
}
|
|
22
|
+
const id = readString(value, "id");
|
|
23
|
+
if (kind === "preset" && id !== undefined) {
|
|
24
|
+
return { kind: "preset", id };
|
|
25
|
+
}
|
|
26
|
+
const name = readString(value, "name");
|
|
27
|
+
if (kind === "custom" && name !== undefined) {
|
|
28
|
+
return { kind: "custom", name };
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
export function sameModel(left, right) {
|
|
33
|
+
const a = asModelValue(left);
|
|
34
|
+
const b = asModelValue(right);
|
|
35
|
+
if (a === null || b === null) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
39
|
+
}
|
|
40
|
+
export function unknownFieldIds(form, values) {
|
|
41
|
+
return Object.keys(values).filter((id) => !form.fields.some((field) => field.id === id));
|
|
42
|
+
}
|
|
43
|
+
export function isEmpty(value) {
|
|
44
|
+
return value === undefined || value === null || value === "";
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/forms/fields.ts"],"names":[],"mappings":"AAEA,2GAA2G;AAC3G,MAAM,UAAU,QAAQ,CAAC,KAAkB,EAAE,MAAiC;IAC5E,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,GAAW;IAC5C,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAY,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,KAAc;IACrD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAuB,EAAE,MAAiC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RuntimeConfigForm } from "./types.js";
|
|
2
|
+
export type * from "./types.js";
|
|
3
|
+
export { toModelListing, listedModels, type ListingFailure } from "./listing.js";
|
|
4
|
+
export { isActive } from "./fields.js";
|
|
5
|
+
export { validateConfig } from "./validate.js";
|
|
6
|
+
export { toSessionOptions, type FormSessionOptions, type SessionMapping } from "./map.js";
|
|
7
|
+
/** Every runtime with a migrated form, by `Runtime.id`. A runtime without one has no entry. */
|
|
8
|
+
export declare const configForms: Readonly<Record<string, RuntimeConfigForm>>;
|
|
9
|
+
/** The frozen form served to a machine that reports no capabilities. */
|
|
10
|
+
export declare const baselineForms: Readonly<Record<string, RuntimeConfigForm>>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/forms/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1F,+FAA+F;AAC/F,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAElE,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEpE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@botiverse/oar/forms`: runtime config forms as plain data plus pure
|
|
3
|
+
* validation and launch mapping (docs/spec/config-form.md). Loads no runtime
|
|
4
|
+
* SDK and does nothing on import; tests/config-form.test.ts bundles it to check.
|
|
5
|
+
*/
|
|
6
|
+
import { grokBaselineForm, grokConfigForm } from "./runtimes/grok.js";
|
|
7
|
+
export { toModelListing, listedModels } from "./listing.js";
|
|
8
|
+
export { isActive } from "./fields.js";
|
|
9
|
+
export { validateConfig } from "./validate.js";
|
|
10
|
+
export { toSessionOptions } from "./map.js";
|
|
11
|
+
/** Every runtime with a migrated form, by `Runtime.id`. A runtime without one has no entry. */
|
|
12
|
+
export const configForms = Object.freeze({
|
|
13
|
+
grok: grokConfigForm,
|
|
14
|
+
});
|
|
15
|
+
/** The frozen form served to a machine that reports no capabilities. */
|
|
16
|
+
export const baselineForms = Object.freeze({
|
|
17
|
+
grok: grokBaselineForm,
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forms/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAgD,MAAM,UAAU,CAAC;AAE1F,+FAA+F;AAC/F,MAAM,CAAC,MAAM,WAAW,GAAgD,MAAM,CAAC,MAAM,CAAC;IACpF,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAgD,MAAM,CAAC,MAAM,CAAC;IACtF,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ListModelsResult, ModelEntry } from "../contracts/list-models.js";
|
|
2
|
+
import type { ModelListing } from "./types.js";
|
|
3
|
+
/** A listing attempt that did not return a `ListModelsResult` (the host saw the failure). */
|
|
4
|
+
export interface ListingFailure {
|
|
5
|
+
readonly kind: "error";
|
|
6
|
+
readonly reason: "timeout" | "failed" | "machine_offline";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A `listModels` outcome as a form listing. "Not enumerated" is a status with a
|
|
10
|
+
* reason, never an empty list: an empty result is `empty`, and a host-supplied
|
|
11
|
+
* bundled list makes a non-live outcome a `fallback` that still names why.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toModelListing(outcome: ListModelsResult | ListingFailure, bundled?: readonly ModelEntry[]): ModelListing;
|
|
14
|
+
export declare function listedModels(listing: ModelListing): readonly ModelEntry[];
|
|
15
|
+
//# sourceMappingURL=listing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../../src/forms/listing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,iBAAiB,CAAC;CAC3D;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,GAAG,cAAc,EAC1C,OAAO,GAAE,SAAS,UAAU,EAAO,GAClC,YAAY,CASd;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,UAAU,EAAE,CAEzE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function reasonOf(outcome) {
|
|
2
|
+
if (outcome.kind === "ok") {
|
|
3
|
+
return "empty";
|
|
4
|
+
}
|
|
5
|
+
if (outcome.kind === "error") {
|
|
6
|
+
return outcome.reason;
|
|
7
|
+
}
|
|
8
|
+
return outcome.kind;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A `listModels` outcome as a form listing. "Not enumerated" is a status with a
|
|
12
|
+
* reason, never an empty list: an empty result is `empty`, and a host-supplied
|
|
13
|
+
* bundled list makes a non-live outcome a `fallback` that still names why.
|
|
14
|
+
*/
|
|
15
|
+
export function toModelListing(outcome, bundled = []) {
|
|
16
|
+
if (outcome.kind === "ok" && outcome.models.length > 0) {
|
|
17
|
+
return { status: "live", models: outcome.models };
|
|
18
|
+
}
|
|
19
|
+
const reason = reasonOf(outcome);
|
|
20
|
+
if (bundled.length > 0) {
|
|
21
|
+
return { status: "fallback", source: "bundled", reason, models: bundled };
|
|
22
|
+
}
|
|
23
|
+
return { status: "unavailable", reason };
|
|
24
|
+
}
|
|
25
|
+
export function listedModels(listing) {
|
|
26
|
+
return listing.status === "unavailable" ? [] : listing.models;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.js","sourceRoot":"","sources":["../../src/forms/listing.ts"],"names":[],"mappings":"AASA,SAAS,QAAQ,CAAC,OAA0C;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA0C,EAC1C,UAAiC,EAAE;IAEnC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAqB;IAChD,OAAO,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ConfigIssue, LaunchValues, RuntimeConfigForm } from "./types.js";
|
|
2
|
+
import type { SessionOptions } from "../contracts/session-options.js";
|
|
3
|
+
/** The `SessionOptions` members a form maps; everything else stays the host's. */
|
|
4
|
+
export type FormSessionOptions = Partial<Pick<SessionOptions, "model" | "effort">>;
|
|
5
|
+
export type SessionMapping = {
|
|
6
|
+
readonly ok: true;
|
|
7
|
+
readonly options: FormSessionOptions;
|
|
8
|
+
/**
|
|
9
|
+
* Active select, text and boolean values, by field id. They have no shared
|
|
10
|
+
* `SessionOptions` member, so they are handed back for the runtime's own
|
|
11
|
+
* mapping instead of being dropped; the caller must apply or refuse them.
|
|
12
|
+
*/
|
|
13
|
+
readonly unmapped: Readonly<Record<string, string | boolean>>;
|
|
14
|
+
/**
|
|
15
|
+
* Resolved secrets of active secret fields, by field id, kept apart from
|
|
16
|
+
* `unmapped` so a caller never handles them as ordinary values (or logs
|
|
17
|
+
* them). The runtime's own mapping applies them; none is dropped.
|
|
18
|
+
*/
|
|
19
|
+
readonly secrets: Readonly<Record<string, string>>;
|
|
20
|
+
} | {
|
|
21
|
+
readonly ok: false;
|
|
22
|
+
readonly issues: readonly ConfigIssue[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Resolved launch values to session options (docs/spec/config-form.md,
|
|
26
|
+
* "Launch mapping"). Pure: credentials arrive already resolved by the host.
|
|
27
|
+
* Inactive branches never launch; a value outside the form's declared modes
|
|
28
|
+
* is refused, never dropped; a required secret that resolves to nothing is
|
|
29
|
+
* `secret_missing`, never an empty option.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toSessionOptions(form: RuntimeConfigForm, values: LaunchValues): SessionMapping;
|
|
32
|
+
//# sourceMappingURL=map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/forms/map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,WAAW,EAAe,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,kFAAkF;AAClF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AAWnF,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,CAAC;AA+CpE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,CAoB9F"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { asModelValue, isActive, isEmpty, unknownFieldIds } from "./fields.js";
|
|
2
|
+
function modelContribution(field, value) {
|
|
3
|
+
const model = asModelValue(value);
|
|
4
|
+
if (model === null) {
|
|
5
|
+
return { issue: "invalid_shape" };
|
|
6
|
+
}
|
|
7
|
+
if (!(field.launchModes ?? field.modes).includes(model.kind)) {
|
|
8
|
+
return { issue: "mode_not_allowed" };
|
|
9
|
+
}
|
|
10
|
+
if (model.kind === "preset") {
|
|
11
|
+
return { model: model.id };
|
|
12
|
+
}
|
|
13
|
+
return model.kind === "custom" ? { model: model.name } : {};
|
|
14
|
+
}
|
|
15
|
+
function presentSecret(value) {
|
|
16
|
+
if (typeof value !== "object" || value === null || Reflect.get(value, "present") !== true) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const secret = Reflect.get(value, "value");
|
|
20
|
+
return typeof secret === "string" ? secret : undefined;
|
|
21
|
+
}
|
|
22
|
+
function contribution(field, value) {
|
|
23
|
+
if (field.kind === "secret") {
|
|
24
|
+
const secret = presentSecret(value);
|
|
25
|
+
if (secret !== undefined) {
|
|
26
|
+
return { secret };
|
|
27
|
+
}
|
|
28
|
+
return field.required ? { issue: "secret_missing" } : {};
|
|
29
|
+
}
|
|
30
|
+
if (isEmpty(value)) {
|
|
31
|
+
return field.required ? { issue: "required" } : {};
|
|
32
|
+
}
|
|
33
|
+
if (field.kind === "model") {
|
|
34
|
+
return modelContribution(field, value);
|
|
35
|
+
}
|
|
36
|
+
if (typeof value !== "string" && typeof value !== "boolean") {
|
|
37
|
+
return { issue: "invalid_shape" };
|
|
38
|
+
}
|
|
39
|
+
if (field.kind === "effort") {
|
|
40
|
+
return typeof value === "string" ? { effort: value } : { issue: "invalid_shape" };
|
|
41
|
+
}
|
|
42
|
+
return { unmapped: value };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolved launch values to session options (docs/spec/config-form.md,
|
|
46
|
+
* "Launch mapping"). Pure: credentials arrive already resolved by the host.
|
|
47
|
+
* Inactive branches never launch; a value outside the form's declared modes
|
|
48
|
+
* is refused, never dropped; a required secret that resolves to nothing is
|
|
49
|
+
* `secret_missing`, never an empty option.
|
|
50
|
+
*/
|
|
51
|
+
export function toSessionOptions(form, values) {
|
|
52
|
+
const issues = unknownFieldIds(form, values).map((id) => ({ field: id, code: "unknown_field" }));
|
|
53
|
+
const options = {};
|
|
54
|
+
const unmapped = {};
|
|
55
|
+
const secrets = {};
|
|
56
|
+
for (const field of form.fields.filter((candidate) => isActive(candidate, values))) {
|
|
57
|
+
const part = contribution(field, values[field.id]);
|
|
58
|
+
if ("issue" in part) {
|
|
59
|
+
issues.push({ field: field.id, code: part.issue });
|
|
60
|
+
}
|
|
61
|
+
else if ("model" in part) {
|
|
62
|
+
options.model = part.model;
|
|
63
|
+
}
|
|
64
|
+
else if ("effort" in part) {
|
|
65
|
+
options.effort = part.effort;
|
|
66
|
+
}
|
|
67
|
+
else if ("unmapped" in part) {
|
|
68
|
+
unmapped[field.id] = part.unmapped;
|
|
69
|
+
}
|
|
70
|
+
else if ("secret" in part) {
|
|
71
|
+
secrets[field.id] = part.secret;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return issues.length > 0 ? { ok: false, issues } : { ok: true, options, unmapped, secrets };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/forms/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RuntimeConfigForm } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Grok's form, as the runtime accepts it: its own default model, a listed
|
|
4
|
+
* model or a typed id, and the reasoning effort the chosen model lists. A host
|
|
5
|
+
* that offers less narrows this form itself.
|
|
6
|
+
*/
|
|
7
|
+
export declare const grokConfigForm: RuntimeConfigForm;
|
|
8
|
+
/**
|
|
9
|
+
* The form a machine that sends no capability report gets: frozen at the
|
|
10
|
+
* first release that carries Grok's form and never changed afterwards.
|
|
11
|
+
* A separate literal on purpose: editing `grokConfigForm` must not change what
|
|
12
|
+
* old daemons receive (tests pin this copy).
|
|
13
|
+
*/
|
|
14
|
+
export declare const grokBaselineForm: RuntimeConfigForm;
|
|
15
|
+
//# sourceMappingURL=grok.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../../src/forms/runtimes/grok.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,iBAqB5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAqB9B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grok's form, as the runtime accepts it: its own default model, a listed
|
|
3
|
+
* model or a typed id, and the reasoning effort the chosen model lists. A host
|
|
4
|
+
* that offers less narrows this form itself.
|
|
5
|
+
*/
|
|
6
|
+
export const grokConfigForm = {
|
|
7
|
+
protocol: 1,
|
|
8
|
+
runtime: "grok",
|
|
9
|
+
fields: [
|
|
10
|
+
{
|
|
11
|
+
id: "model",
|
|
12
|
+
kind: "model",
|
|
13
|
+
modes: ["inherit", "preset", "custom"],
|
|
14
|
+
required: false,
|
|
15
|
+
label: { key: "runtime_form.grok.model.label", en: "Model" },
|
|
16
|
+
hint: { key: "runtime_form.grok.model.hint", en: "Models available from this computer's Grok CLI. A typed model id the CLI does not know fails when the agent starts." },
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "reasoningEffort",
|
|
20
|
+
kind: "effort",
|
|
21
|
+
modelField: "model",
|
|
22
|
+
required: false,
|
|
23
|
+
label: { key: "runtime_form.grok.reasoning_effort.label", en: "Reasoning" },
|
|
24
|
+
hint: { key: "runtime_form.grok.reasoning_effort.hint", en: "Available values depend on the selected model." },
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The form a machine that sends no capability report gets: frozen at the
|
|
30
|
+
* first release that carries Grok's form and never changed afterwards.
|
|
31
|
+
* A separate literal on purpose: editing `grokConfigForm` must not change what
|
|
32
|
+
* old daemons receive (tests pin this copy).
|
|
33
|
+
*/
|
|
34
|
+
export const grokBaselineForm = {
|
|
35
|
+
protocol: 1,
|
|
36
|
+
runtime: "grok",
|
|
37
|
+
fields: [
|
|
38
|
+
{
|
|
39
|
+
id: "model",
|
|
40
|
+
kind: "model",
|
|
41
|
+
modes: ["inherit", "preset", "custom"],
|
|
42
|
+
required: false,
|
|
43
|
+
label: { key: "runtime_form.grok.model.label", en: "Model" },
|
|
44
|
+
hint: { key: "runtime_form.grok.model.hint", en: "Models available from this computer's Grok CLI. A typed model id the CLI does not know fails when the agent starts." },
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "reasoningEffort",
|
|
48
|
+
kind: "effort",
|
|
49
|
+
modelField: "model",
|
|
50
|
+
required: false,
|
|
51
|
+
label: { key: "runtime_form.grok.reasoning_effort.label", en: "Reasoning" },
|
|
52
|
+
hint: { key: "runtime_form.grok.reasoning_effort.hint", en: "Available values depend on the selected model." },
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=grok.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/forms/runtimes/grok.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,MAAM;IACf,MAAM,EAAE;QACN;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACtC,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE;YAC5D,IAAI,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,EAAE,qHAAqH,EAAE;SACzK;QACD;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,EAAE,EAAE,WAAW,EAAE;YAC3E,IAAI,EAAE,EAAE,GAAG,EAAE,yCAAyC,EAAE,EAAE,EAAE,gDAAgD,EAAE;SAC/G;KACF;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,MAAM;IACf,MAAM,EAAE;QACN;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACtC,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE;YAC5D,IAAI,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,EAAE,qHAAqH,EAAE;SACzK;QACD;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,EAAE,EAAE,WAAW,EAAE;YAC3E,IAAI,EAAE,EAAE,GAAG,EAAE,yCAAyC,EAAE,EAAE,EAAE,gDAAgD,EAAE;SAC/G;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime config form: what creating an agent for a runtime asks for, as plain
|
|
3
|
+
* data a host can serialize (docs/spec/config-form.md). Type-only imports keep
|
|
4
|
+
* this entry free of runtime code.
|
|
5
|
+
*/
|
|
6
|
+
import type { ModelEntry } from "../contracts/list-models.js";
|
|
7
|
+
export interface CopyText {
|
|
8
|
+
/** Stable translation key; never changes with the English text. */
|
|
9
|
+
readonly key: string;
|
|
10
|
+
/** English default, used when the host has no translation for `key`. */
|
|
11
|
+
readonly en: string;
|
|
12
|
+
}
|
|
13
|
+
interface FieldBase {
|
|
14
|
+
/** Stable id; never changes with its copy. */
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly label: CopyText;
|
|
17
|
+
readonly hint?: CopyText;
|
|
18
|
+
readonly required: boolean;
|
|
19
|
+
/** Shown only when another field has one of these values (inactive branch otherwise). */
|
|
20
|
+
readonly visibleWhen?: {
|
|
21
|
+
readonly field: string;
|
|
22
|
+
readonly in: readonly string[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export type ModelMode = "inherit" | "preset" | "custom";
|
|
26
|
+
/** Options from `Runtime.listModels` on the machine that will run the agent. */
|
|
27
|
+
export interface ModelField extends FieldBase {
|
|
28
|
+
readonly kind: "model";
|
|
29
|
+
/** The selections the form offers; `validateConfig` enforces it on submit. */
|
|
30
|
+
readonly modes: readonly ModelMode[];
|
|
31
|
+
/**
|
|
32
|
+
* The selections a launch accepts, when wider than what the form offers: a
|
|
33
|
+
* stored value the form no longer offers (an older create path, an API) can
|
|
34
|
+
* still launch. Declared from what the runtime's launch path is verified to
|
|
35
|
+
* accept; it maps a value to launch options and does not promise the
|
|
36
|
+
* provider accepts that model id. Defaults to `modes`; a mode in neither is
|
|
37
|
+
* refused by `toSessionOptions`.
|
|
38
|
+
*/
|
|
39
|
+
readonly launchModes?: readonly ModelMode[];
|
|
40
|
+
}
|
|
41
|
+
/** Options from the chosen model's `ModelEntry.effortLevels`. */
|
|
42
|
+
export interface EffortField extends FieldBase {
|
|
43
|
+
readonly kind: "effort";
|
|
44
|
+
readonly modelField: string;
|
|
45
|
+
}
|
|
46
|
+
export interface SelectField extends FieldBase {
|
|
47
|
+
readonly kind: "select";
|
|
48
|
+
readonly options: readonly {
|
|
49
|
+
readonly value: string;
|
|
50
|
+
readonly label: CopyText;
|
|
51
|
+
}[];
|
|
52
|
+
}
|
|
53
|
+
/** Write-only: a stored value is never read back into the form. */
|
|
54
|
+
export interface SecretField extends FieldBase {
|
|
55
|
+
readonly kind: "secret";
|
|
56
|
+
}
|
|
57
|
+
export interface TextField extends FieldBase {
|
|
58
|
+
readonly kind: "text";
|
|
59
|
+
readonly format?: "url";
|
|
60
|
+
}
|
|
61
|
+
export interface BooleanField extends FieldBase {
|
|
62
|
+
readonly kind: "boolean";
|
|
63
|
+
}
|
|
64
|
+
export type ConfigField = ModelField | EffortField | SelectField | SecretField | TextField | BooleanField;
|
|
65
|
+
export interface RuntimeConfigForm {
|
|
66
|
+
readonly protocol: 1;
|
|
67
|
+
/** The `Runtime.id` it describes. */
|
|
68
|
+
readonly runtime: string;
|
|
69
|
+
readonly fields: readonly ConfigField[];
|
|
70
|
+
}
|
|
71
|
+
export type ModelValue = {
|
|
72
|
+
readonly kind: "inherit";
|
|
73
|
+
} | {
|
|
74
|
+
readonly kind: "preset";
|
|
75
|
+
readonly id: string;
|
|
76
|
+
} | {
|
|
77
|
+
readonly kind: "custom";
|
|
78
|
+
readonly name: string;
|
|
79
|
+
};
|
|
80
|
+
/** What a form submits for a secret field: an edit the host applies, not a credential. */
|
|
81
|
+
export type SecretEdit = {
|
|
82
|
+
readonly kind: "unset";
|
|
83
|
+
} | {
|
|
84
|
+
readonly kind: "keep";
|
|
85
|
+
} | {
|
|
86
|
+
readonly kind: "clear";
|
|
87
|
+
} | {
|
|
88
|
+
readonly kind: "set";
|
|
89
|
+
readonly value: string;
|
|
90
|
+
};
|
|
91
|
+
export type FormValue = ModelValue | SecretEdit | string | boolean | null;
|
|
92
|
+
export type FormValues = Readonly<Record<string, FormValue>>;
|
|
93
|
+
/** A credential the host resolved at the launch boundary. */
|
|
94
|
+
export type ResolvedSecret = {
|
|
95
|
+
readonly present: true;
|
|
96
|
+
readonly value: string;
|
|
97
|
+
} | {
|
|
98
|
+
readonly present: false;
|
|
99
|
+
};
|
|
100
|
+
export type LaunchValue = ModelValue | ResolvedSecret | string | boolean | null;
|
|
101
|
+
export type LaunchValues = Readonly<Record<string, LaunchValue>>;
|
|
102
|
+
export type ListingReason = "unauthenticated" | "timeout" | "failed" | "empty" | "machine_offline" | "unsupported";
|
|
103
|
+
export type ModelListing = {
|
|
104
|
+
readonly status: "live";
|
|
105
|
+
readonly models: readonly ModelEntry[];
|
|
106
|
+
} | {
|
|
107
|
+
readonly status: "fallback";
|
|
108
|
+
readonly source: "bundled";
|
|
109
|
+
readonly reason: ListingReason;
|
|
110
|
+
readonly models: readonly ModelEntry[];
|
|
111
|
+
} | {
|
|
112
|
+
readonly status: "unavailable";
|
|
113
|
+
readonly reason: ListingReason;
|
|
114
|
+
};
|
|
115
|
+
export interface ConfigIssue {
|
|
116
|
+
readonly field: string;
|
|
117
|
+
/** Stable key; hosts translate it. */
|
|
118
|
+
readonly code: "required" | "invalid_shape" | "mode_not_allowed" | "model_not_listed" | "model_disabled" | "effort_not_offered" | "option_not_offered" | "secret_missing" | "unknown_field";
|
|
119
|
+
}
|
|
120
|
+
/** Create has nothing stored; an edit must say what was stored, so a missing `stored` cannot pass as a create. */
|
|
121
|
+
export type ValidationContext = {
|
|
122
|
+
readonly mode: "create";
|
|
123
|
+
readonly models: ModelListing;
|
|
124
|
+
} | {
|
|
125
|
+
readonly mode: "edit";
|
|
126
|
+
/** The values stored before this edit, as the host has them. */
|
|
127
|
+
readonly stored: FormValues;
|
|
128
|
+
readonly models: ModelListing;
|
|
129
|
+
};
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ConfigIssue, FormValues, RuntimeConfigForm, ValidationContext } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Validate submitted values (docs/spec/config-form.md, "Validation").
|
|
4
|
+
* Preservation: on edit, a stored preset or effort is not rejected only because
|
|
5
|
+
* the listing could not enumerate it. Launch validity (shape, declared modes and
|
|
6
|
+
* options, required fields) applies to every value, stored or new. Inactive
|
|
7
|
+
* branches are not checked for presence.
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateConfig(form: RuntimeConfigForm, values: FormValues, context: ValidationContext): readonly ConfigIssue[];
|
|
10
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/forms/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,WAAW,EAA0B,UAAU,EAAc,iBAAiB,EAAe,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsJ9J;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,WAAW,EAAE,CAU9H"}
|