@cat-factory/contracts 0.296.0 → 0.297.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/index.d.ts CHANGED
@@ -131,6 +131,7 @@ export * from './public-decisions.js';
131
131
  export * from './notification-webhooks.js';
132
132
  export * from './personal-subscriptions.js';
133
133
  export * from './localModels.js';
134
+ export * from './known-local-models.js';
134
135
  export * from './openrouter.js';
135
136
  export * from './sandbox.js';
136
137
  export * from './workspace-settings.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -131,6 +131,7 @@ export * from './public-decisions.js';
131
131
  export * from './notification-webhooks.js';
132
132
  export * from './personal-subscriptions.js';
133
133
  export * from './localModels.js';
134
+ export * from './known-local-models.js';
134
135
  export * from './openrouter.js';
135
136
  export * from './sandbox.js';
136
137
  export * from './workspace-settings.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /** One recognised local model family and what its weights can be given. */
2
+ export interface KnownLocalModel {
3
+ /** Stable family key, for tests and for anything that wants to group by family. */
4
+ family: string;
5
+ /** Display name, shown to the user beside the modality it implies. */
6
+ label: string;
7
+ /**
8
+ * Id fragments that identify the family, ALREADY SQUASHED the way {@link squashModelId}
9
+ * squashes a runner's id (lowercase, alphanumerics only), and matched as substrings. That is
10
+ * what lets one entry cover every shape the ecosystem serves the same weights under:
11
+ * `gemma4:12b` (Ollama), `google/gemma-4-12b` (LM Studio), `Gemma-4-12B-it-GGUF` (llama.cpp),
12
+ * `mlx-community/Gemma-4-12B-4bit` (MLX).
13
+ */
14
+ match: readonly string[];
15
+ /**
16
+ * Whether the family's weights accept IMAGE input.
17
+ *
18
+ * Every entry today says `true`, and that is a rule rather than a coincidence: an entry earns
19
+ * its place only where the platform's SILENCE would cost a capability. A text-only model
20
+ * behaves identically whether this table calls it `false` or says nothing (both withhold the
21
+ * run's design renders), so listing one would add a maintenance surface, and a wrong `false`
22
+ * would silently withhold pictures from a model that could have read them. The field is
23
+ * explicit anyway so a future entry that genuinely needs to correct an assumption can.
24
+ */
25
+ acceptsImages: boolean;
26
+ }
27
+ /**
28
+ * The recognised families. Each is here because its publisher documents image input for the
29
+ * open weights, verified against that publisher's own release material rather than inferred
30
+ * from a family resemblance.
31
+ *
32
+ * A family whose modality depends on the SIZE is deliberately ABSENT rather than approximated:
33
+ * Gemma 3 is the worked example (its 1B is text-only while its 4B and up are not), and an entry
34
+ * matching the family name would have told every `gemma3:1b` user their model reads images. When
35
+ * in doubt, leave it out: the user's own declaration is right there, and an absence self-corrects
36
+ * where a wrong entry does not.
37
+ */
38
+ export declare const KNOWN_LOCAL_MODELS: readonly KnownLocalModel[];
39
+ /**
40
+ * Reduce a runner-reported model id to its comparable core: the last path segment, lowercased,
41
+ * split on every non-alphanumeric run, packaging tokens dropped, the rest joined.
42
+ *
43
+ * One normalisation rather than a set of per-runner regexes, because the SAME weights arrive under
44
+ * wildly different spellings and the differences are all punctuation and packaging: an org
45
+ * prefix (`google/`), a size tag (`:12b`), a quantisation suffix (`-q4_k_m`), a format
46
+ * (`-gguf`, `-mlx`, `.gguf`), a hyphen where another registry uses none. Squashing both sides
47
+ * and testing for a substring absorbs all of it, and it keeps VERSION digits significant, which
48
+ * is what stops a `gemma4` entry from claiming a `gemma3` id.
49
+ */
50
+ export declare function squashModelId(id: string): string;
51
+ /**
52
+ * The recognised family for a runner-reported model id, or undefined when the platform knows
53
+ * nothing about it (the normal case for a fine-tune or a private build).
54
+ *
55
+ * Callers must treat undefined as "nobody has said", NEVER as "text only": that distinction is
56
+ * the whole reason `LocalModelDeclaration.acceptsImages` is three-state.
57
+ */
58
+ export declare function knownLocalModel(id: string | undefined | null): KnownLocalModel | undefined;
59
+ //# sourceMappingURL=known-local-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-local-models.d.ts","sourceRoot":"","sources":["../src/known-local-models.ts"],"names":[],"mappings":"AAoBA,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB;;;;;;;;;OASG;IACH,aAAa,EAAE,OAAO,CAAA;CACvB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAoDxD,CAAA;AAgBD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,CAK1F"}
@@ -0,0 +1,130 @@
1
+ // ---------------------------------------------------------------------------
2
+ // What the platform KNOWS about the popular locally-run model families, so the common
3
+ // case needs no declaration from the user.
4
+ //
5
+ // A local model has no `MODEL_CATALOG` entry: it lives on one person's machine, the runner's
6
+ // OpenAI-compatible `/models` probe returns ids and nothing else, and the id itself is free
7
+ // text. That is why `LocalModelDeclaration` exists. But most people run a handful of
8
+ // well-known open-weights families, and asking each of them to hand-declare that Gemma 4
9
+ // reads images is asking them to re-supply a fact this repo can simply carry.
10
+ //
11
+ // So there are two tiers, and the ESCAPE HATCH OUT-RANKS the table: a user's own declaration
12
+ // always wins, because they are the one who knows which build they pulled (a text-only quant,
13
+ // a fine-tune, a re-tagged local copy). This table only answers when they have said nothing.
14
+ //
15
+ // Lives in contracts, not kernel, because BOTH sides must agree about it: the SPA labels the
16
+ // "not set" option with what the table will do, and the engine folds the same answer onto the
17
+ // dispatched ref. A copy on either side would let the settings panel promise a model images
18
+ // that the run then withholds.
19
+ // ---------------------------------------------------------------------------
20
+ /**
21
+ * The recognised families. Each is here because its publisher documents image input for the
22
+ * open weights, verified against that publisher's own release material rather than inferred
23
+ * from a family resemblance.
24
+ *
25
+ * A family whose modality depends on the SIZE is deliberately ABSENT rather than approximated:
26
+ * Gemma 3 is the worked example (its 1B is text-only while its 4B and up are not), and an entry
27
+ * matching the family name would have told every `gemma3:1b` user their model reads images. When
28
+ * in doubt, leave it out: the user's own declaration is right there, and an absence self-corrects
29
+ * where a wrong entry does not.
30
+ */
31
+ export const KNOWN_LOCAL_MODELS = [
32
+ {
33
+ family: 'muse-glimmer',
34
+ label: 'Muse Glimmer',
35
+ // Meta's 30B agentic model: a dedicated perception encoder, interleaved text and images.
36
+ match: ['museglimmer'],
37
+ acceptsImages: true,
38
+ },
39
+ {
40
+ family: 'gemma4',
41
+ label: 'Gemma 4',
42
+ // Google ships native vision in EVERY Gemma 4 variant, 2B through 31B, which is what makes
43
+ // the bare family name safe to match here where `gemma3` is not.
44
+ match: ['gemma4'],
45
+ acceptsImages: true,
46
+ },
47
+ {
48
+ family: 'qwen-vl',
49
+ label: 'Qwen (VL)',
50
+ // Qwen's vision-language line, which is EXPLICIT in the id. The plain `qwen3.6` / `qwen3`
51
+ // builds are left unrecognised on purpose: the series is described as multimodal while
52
+ // vision is delivered by the `-VL` variants, and that ambiguity is not something to resolve
53
+ // by guessing on a user's behalf.
54
+ match: ['qwenvl', 'qwen2vl', 'qwen25vl', 'qwen3vl', 'qwen35vl', 'qwen36vl'],
55
+ acceptsImages: true,
56
+ },
57
+ {
58
+ family: 'llama4',
59
+ label: 'Llama 4',
60
+ // Natively multimodal across Scout and Maverick; the same fact `MODEL_CATALOG` already
61
+ // declares for the Workers AI flavour of Scout.
62
+ match: ['llama4'],
63
+ acceptsImages: true,
64
+ },
65
+ {
66
+ family: 'llava',
67
+ label: 'LLaVA',
68
+ match: ['llava'],
69
+ acceptsImages: true,
70
+ },
71
+ {
72
+ family: 'minicpm-v',
73
+ label: 'MiniCPM-V',
74
+ match: ['minicpmv'],
75
+ acceptsImages: true,
76
+ },
77
+ {
78
+ family: 'moondream',
79
+ label: 'Moondream',
80
+ match: ['moondream'],
81
+ acceptsImages: true,
82
+ },
83
+ ];
84
+ /**
85
+ * A token that describes how a build was PACKAGED rather than which weights it holds: the
86
+ * parameter size (`12b`, `8x7b`, `500m`), the quantisation (`q4_k_m`, `4bit`, `fp16`, `int8`) and
87
+ * the serialisation format (`gguf`, `mlx`, `awq`, …).
88
+ *
89
+ * Dropped BEFORE the squash, and that order is the whole point: the squash deletes exactly the
90
+ * separators that keep a size tag apart from the family name, so `gemma-4b-it` squashed whole
91
+ * reads as `gemma4bit`, which CONTAINS the `gemma4` fragment and would hand a Gemma 1 4B build
92
+ * the run's design renders. Removing the packaging first cannot create that adjacency, where a
93
+ * boundary rule applied after the squash has no boundary left to test.
94
+ */
95
+ const PACKAGING_TOKEN = /^(?:\d+(?:x\d+)?[bm]|\d+bits?|q\d\w*|fp\d+|bf\d+|int\d+|gguf|ggml|mlx|awq|gptq|exl\d+|safetensors)$/;
96
+ /**
97
+ * Reduce a runner-reported model id to its comparable core: the last path segment, lowercased,
98
+ * split on every non-alphanumeric run, packaging tokens dropped, the rest joined.
99
+ *
100
+ * One normalisation rather than a set of per-runner regexes, because the SAME weights arrive under
101
+ * wildly different spellings and the differences are all punctuation and packaging: an org
102
+ * prefix (`google/`), a size tag (`:12b`), a quantisation suffix (`-q4_k_m`), a format
103
+ * (`-gguf`, `-mlx`, `.gguf`), a hyphen where another registry uses none. Squashing both sides
104
+ * and testing for a substring absorbs all of it, and it keeps VERSION digits significant, which
105
+ * is what stops a `gemma4` entry from claiming a `gemma3` id.
106
+ */
107
+ export function squashModelId(id) {
108
+ const segment = id.split('/').pop() ?? id;
109
+ return segment
110
+ .toLowerCase()
111
+ .split(/[^a-z0-9]+/)
112
+ .filter((token) => token.length > 0 && !PACKAGING_TOKEN.test(token))
113
+ .join('');
114
+ }
115
+ /**
116
+ * The recognised family for a runner-reported model id, or undefined when the platform knows
117
+ * nothing about it (the normal case for a fine-tune or a private build).
118
+ *
119
+ * Callers must treat undefined as "nobody has said", NEVER as "text only": that distinction is
120
+ * the whole reason `LocalModelDeclaration.acceptsImages` is three-state.
121
+ */
122
+ export function knownLocalModel(id) {
123
+ if (!id)
124
+ return undefined;
125
+ const squashed = squashModelId(id);
126
+ if (!squashed)
127
+ return undefined;
128
+ return KNOWN_LOCAL_MODELS.find((known) => known.match.some((m) => squashed.includes(m)));
129
+ }
130
+ //# sourceMappingURL=known-local-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"known-local-models.js","sourceRoot":"","sources":["../src/known-local-models.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sFAAsF;AACtF,2CAA2C;AAC3C,EAAE;AACF,6FAA6F;AAC7F,4FAA4F;AAC5F,qFAAqF;AACrF,yFAAyF;AACzF,8EAA8E;AAC9E,EAAE;AACF,6FAA6F;AAC7F,8FAA8F;AAC9F,6FAA6F;AAC7F,EAAE;AACF,6FAA6F;AAC7F,8FAA8F;AAC9F,4FAA4F;AAC5F,+BAA+B;AAC/B,8EAA8E;AA6B9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D;QACE,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,cAAc;QACrB,yFAAyF;QACzF,KAAK,EAAE,CAAC,aAAa,CAAC;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS;QAChB,2FAA2F;QAC3F,iEAAiE;QACjE,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,WAAW;QAClB,0FAA0F;QAC1F,uFAAuF;QACvF,4FAA4F;QAC5F,kCAAkC;QAClC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;QAC3E,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS;QAChB,uFAAuF;QACvF,gDAAgD;QAChD,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,CAAC,OAAO,CAAC;QAChB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,CAAC,UAAU,CAAC;QACnB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,eAAe,GACnB,qGAAqG,CAAA;AAEvG;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IACzC,OAAO,OAAO;SACX,WAAW,EAAE;SACb,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnE,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAA6B;IAC3D,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAA;IACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAA;IAClC,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1F,CAAC"}
@@ -9,6 +9,30 @@ export declare function isLocalRunner(provider: string): boolean;
9
9
  export declare const LOCAL_RUNNER_DEFAULTS: Record<LocalRunner, string | null>;
10
10
  /** Short display label per runner, shown in the picker as the provider label. */
11
11
  export declare const LOCAL_RUNNER_LABELS: Record<LocalRunner, string>;
12
+ /**
13
+ * One model a user has ENABLED on a runner, plus what they have DECLARED about it.
14
+ *
15
+ * The id alone is not enough, because a local model is not in the curated catalog: nothing
16
+ * upstream knows whether `muse-glimmer:30b` reads images the way a `MODEL_CATALOG` entry's
17
+ * flavour declares it. The OpenAI-compatible `/models` probe cannot answer it either (it
18
+ * returns ids and nothing else), so the person who pulled the weights is the only source
19
+ * there is, and this is where they say so.
20
+ *
21
+ * `acceptsImages` is deliberately THREE-STATE, mirroring `ModelRef.acceptsImages`:
22
+ * `true` (the runner serves it with image input), `false` (declared text-only) and ABSENT
23
+ * (nobody has said). The third is the default and is NOT a "no": a run withholds the design
24
+ * renders either way, but reports `unknown_model_image_input` rather than
25
+ * `model_no_image_input`, which is the difference between "declare it and this works" and
26
+ * "this model cannot". Collapsing them would let a multimodal local model read as text-only
27
+ * forever with nothing saying the platform never asked.
28
+ */
29
+ export declare const localModelDeclarationSchema: v.ObjectSchema<{
30
+ /** The model id as the runner serves it (e.g. `muse-glimmer:30b`). */
31
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
32
+ /** Whether this runner serves the model with IMAGE input. Absent ⇒ not declared. */
33
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
34
+ }, undefined>;
35
+ export type LocalModelDeclaration = v.InferOutput<typeof localModelDeclarationSchema>;
12
36
  /**
13
37
  * Why a runner base URL is refused by the deployment's local-runner policy. The SPA maps
14
38
  * each member to translated copy (`localModels.urlReason.*`), so the operator-facing
@@ -29,8 +53,20 @@ export declare const localModelEndpointSchema: v.ObjectSchema<{
29
53
  readonly baseUrl: v.StringSchema<undefined>;
30
54
  /** Whether a (write-only) API key is stored for this endpoint. */
31
55
  readonly hasApiKey: v.BooleanSchema<undefined>;
32
- /** The model ids the user has enabled from this runner (surfaced in the picker). */
33
- readonly models: v.ArraySchema<v.StringSchema<undefined>, undefined>;
56
+ /** The models the user has enabled from this runner, with what they declared about each. */
57
+ readonly models: v.ArraySchema<v.ObjectSchema<{
58
+ /** The model id as the runner serves it (e.g. `muse-glimmer:30b`). */
59
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
60
+ /** Whether this runner serves the model with IMAGE input. Absent ⇒ not declared. */
61
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
62
+ }, undefined>, undefined>;
63
+ /**
64
+ * Whether part of this endpoint's stored model list could not be READ and was discarded (a row
65
+ * written before declarations existed held bare strings). Reported rather than swallowed because
66
+ * a discarded list and a runner nobody enabled a model on are the same `models: []` and opposite
67
+ * facts: only one of them is fixed by re-ticking, and nothing else anywhere would say so.
68
+ */
69
+ readonly unreadableModels: v.BooleanSchema<undefined>;
34
70
  /**
35
71
  * Why this stored endpoint is currently unusable under the deployment's runner-URL
36
72
  * policy, or `null` when it is fine. A row written while LAN hosts were permitted must
@@ -49,7 +85,12 @@ export declare const upsertLocalModelEndpointSchema: v.ObjectSchema<{
49
85
  readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 300, undefined>, v.UrlAction<string, undefined>]>;
50
86
  /** Optional bearer key (most local runners ignore it); stored encrypted at rest. */
51
87
  readonly apiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 400, undefined>]>, undefined>;
52
- readonly models: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
88
+ readonly models: v.ArraySchema<v.ObjectSchema<{
89
+ /** The model id as the runner serves it (e.g. `muse-glimmer:30b`). */
90
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
91
+ /** Whether this runner serves the model with IMAGE input. Absent ⇒ not declared. */
92
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
93
+ }, undefined>, undefined>;
53
94
  }, undefined>;
54
95
  export type UpsertLocalModelEndpointInput = v.InferOutput<typeof upsertLocalModelEndpointSchema>;
55
96
  /** Probe a runner endpoint for reachability + the models it currently serves. */
@@ -62,7 +103,11 @@ export type TestLocalModelEndpointInput = v.InferOutput<typeof testLocalModelEnd
62
103
  /** The result of probing a runner endpoint's `/models`. */
63
104
  export declare const localModelEndpointTestResultSchema: v.ObjectSchema<{
64
105
  readonly reachable: v.BooleanSchema<undefined>;
65
- /** Model ids the runner reports (empty when unreachable). */
106
+ /**
107
+ * Model ids the runner reports (empty when unreachable). Bare ids, NOT declarations: the
108
+ * probe reads an OpenAI-compatible `/models` list, which carries no modality, and inventing
109
+ * one here would put a guess where {@link localModelDeclarationSchema} keeps an absence.
110
+ */
66
111
  readonly models: v.ArraySchema<v.StringSchema<undefined>, undefined>;
67
112
  /** Human-readable failure reason when `reachable` is false. */
68
113
  readonly error: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"localModels.d.ts","sourceRoot":"","sources":["../src/localModels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B,oFAAoF;AACpF,eAAO,MAAM,aAAa,YAAI,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAC1F,eAAO,MAAM,iBAAiB,4FAA4B,CAAA;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMpE,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,YACnC,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,gBAAgB,CACR,CAAA;AACV,eAAO,MAAM,0BAA0B,gLAAuC,CAAA;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;IAInC,kEAAkE;;IAElE,oFAAoF;;IAEpF;;;;;OAKG;;;;aAIH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAO/E,qFAAqF;AACrF,eAAO,MAAM,8BAA8B;;;;IAIzC,oFAAoF;;;aAGpF,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAEhG,iFAAiF;AACjF,eAAO,MAAM,4BAA4B;;;;aAIvC,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE5F,2DAA2D;AAC3D,eAAO,MAAM,kCAAkC;;IAE7C,6DAA6D;;IAE7D,+DAA+D;;IAE/D;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kCAAkC,CAAC,CAAA"}
1
+ {"version":3,"file":"localModels.d.ts","sourceRoot":"","sources":["../src/localModels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B,oFAAoF;AACpF,eAAO,MAAM,aAAa,YAAI,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAC1F,eAAO,MAAM,iBAAiB,4FAA4B,CAAA;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMpE,CAAA;AAED,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,2BAA2B;IACtC,sEAAsE;;IAEtE,oFAAoF;;aAEpF,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,YACnC,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,gBAAgB,CACR,CAAA;AACV,eAAO,MAAM,0BAA0B,gLAAuC,CAAA;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;IAInC,kEAAkE;;IAElE,4FAA4F;;QAnC5F,sEAAsE;;QAEtE,oFAAoF;;;IAmCpF;;;;;OAKG;;IAEH;;;;;OAKG;;;;aAIH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAM/E,qFAAqF;AACrF,eAAO,MAAM,8BAA8B;;;;IAIzC,oFAAoF;;;QAjEpF,sEAAsE;;QAEtE,oFAAoF;;;aAkEpF,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAEhG,iFAAiF;AACjF,eAAO,MAAM,4BAA4B;;;;aAIvC,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE5F,2DAA2D;AAC3D,eAAO,MAAM,kCAAkC;;IAE7C;;;;OAIG;;IAEH,+DAA+D;;IAE/D;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kCAAkC,CAAC,CAAA"}
@@ -34,6 +34,29 @@ export const LOCAL_RUNNER_LABELS = {
34
34
  vllm: 'vLLM',
35
35
  custom: 'Custom',
36
36
  };
37
+ /**
38
+ * One model a user has ENABLED on a runner, plus what they have DECLARED about it.
39
+ *
40
+ * The id alone is not enough, because a local model is not in the curated catalog: nothing
41
+ * upstream knows whether `muse-glimmer:30b` reads images the way a `MODEL_CATALOG` entry's
42
+ * flavour declares it. The OpenAI-compatible `/models` probe cannot answer it either (it
43
+ * returns ids and nothing else), so the person who pulled the weights is the only source
44
+ * there is, and this is where they say so.
45
+ *
46
+ * `acceptsImages` is deliberately THREE-STATE, mirroring `ModelRef.acceptsImages`:
47
+ * `true` (the runner serves it with image input), `false` (declared text-only) and ABSENT
48
+ * (nobody has said). The third is the default and is NOT a "no": a run withholds the design
49
+ * renders either way, but reports `unknown_model_image_input` rather than
50
+ * `model_no_image_input`, which is the difference between "declare it and this works" and
51
+ * "this model cannot". Collapsing them would let a multimodal local model read as text-only
52
+ * forever with nothing saying the platform never asked.
53
+ */
54
+ export const localModelDeclarationSchema = v.object({
55
+ /** The model id as the runner serves it (e.g. `muse-glimmer:30b`). */
56
+ id: v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200)),
57
+ /** Whether this runner serves the model with IMAGE input. Absent ⇒ not declared. */
58
+ acceptsImages: v.optional(v.boolean()),
59
+ });
37
60
  /**
38
61
  * Why a runner base URL is refused by the deployment's local-runner policy. The SPA maps
39
62
  * each member to translated copy (`localModels.urlReason.*`), so the operator-facing
@@ -60,8 +83,15 @@ export const localModelEndpointSchema = v.object({
60
83
  baseUrl: v.string(),
61
84
  /** Whether a (write-only) API key is stored for this endpoint. */
62
85
  hasApiKey: v.boolean(),
63
- /** The model ids the user has enabled from this runner (surfaced in the picker). */
64
- models: v.array(v.string()),
86
+ /** The models the user has enabled from this runner, with what they declared about each. */
87
+ models: v.array(localModelDeclarationSchema),
88
+ /**
89
+ * Whether part of this endpoint's stored model list could not be READ and was discarded (a row
90
+ * written before declarations existed held bare strings). Reported rather than swallowed because
91
+ * a discarded list and a runner nobody enabled a model on are the same `models: []` and opposite
92
+ * facts: only one of them is fixed by re-ticking, and nothing else anywhere would say so.
93
+ */
94
+ unreadableModels: v.boolean(),
65
95
  /**
66
96
  * Why this stored endpoint is currently unusable under the deployment's runner-URL
67
97
  * policy, or `null` when it is fine. A row written while LAN hosts were permitted must
@@ -75,7 +105,6 @@ export const localModelEndpointSchema = v.object({
75
105
  const baseUrlSchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(300), v.url());
76
106
  const labelSchema = v.pipe(v.string(), v.trim(), v.maxLength(60));
77
107
  const apiKeySchema = v.pipe(v.string(), v.maxLength(400));
78
- const modelIdSchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));
79
108
  /** Create or replace the signed-in user's endpoint for a runner (one per runner). */
80
109
  export const upsertLocalModelEndpointSchema = v.object({
81
110
  provider: localRunnerSchema,
@@ -83,7 +112,7 @@ export const upsertLocalModelEndpointSchema = v.object({
83
112
  baseUrl: baseUrlSchema,
84
113
  /** Optional bearer key (most local runners ignore it); stored encrypted at rest. */
85
114
  apiKey: v.optional(apiKeySchema),
86
- models: v.array(modelIdSchema),
115
+ models: v.array(localModelDeclarationSchema),
87
116
  });
88
117
  /** Probe a runner endpoint for reachability + the models it currently serves. */
89
118
  export const testLocalModelEndpointSchema = v.object({
@@ -94,7 +123,11 @@ export const testLocalModelEndpointSchema = v.object({
94
123
  /** The result of probing a runner endpoint's `/models`. */
95
124
  export const localModelEndpointTestResultSchema = v.object({
96
125
  reachable: v.boolean(),
97
- /** Model ids the runner reports (empty when unreachable). */
126
+ /**
127
+ * Model ids the runner reports (empty when unreachable). Bare ids, NOT declarations: the
128
+ * probe reads an OpenAI-compatible `/models` list, which carries no modality, and inventing
129
+ * one here would put a guess where {@link localModelDeclarationSchema} keeps an absence.
130
+ */
98
131
  models: v.array(v.string()),
99
132
  /** Human-readable failure reason when `reachable` is false. */
100
133
  error: v.optional(v.string()),
@@ -1 +1 @@
1
- {"version":3,"file":"localModels.js","sourceRoot":"","sources":["../src/localModels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localModels.js","sourceRoot":"","sources":["../src/localModels.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,11 @@ export declare const listLocalModelEndpointsContract: {
32
32
  readonly label: v.StringSchema<undefined>;
33
33
  readonly baseUrl: v.StringSchema<undefined>;
34
34
  readonly hasApiKey: v.BooleanSchema<undefined>;
35
- readonly models: v.ArraySchema<v.StringSchema<undefined>, undefined>;
35
+ readonly models: v.ArraySchema<v.ObjectSchema<{
36
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
37
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
38
+ }, undefined>, undefined>;
39
+ readonly unreadableModels: v.BooleanSchema<undefined>;
36
40
  readonly urlBlockedReason: v.NullableSchema<v.PicklistSchema<readonly ["invalid_url", "scheme_not_allowed", "credentials_not_allowed", "query_or_fragment_not_allowed", "host_not_loopback", "host_not_local"], undefined>, undefined>;
37
41
  readonly createdAt: v.NumberSchema<undefined>;
38
42
  readonly updatedAt: v.NumberSchema<undefined>;
@@ -53,7 +57,10 @@ export declare const upsertLocalModelEndpointContract: {
53
57
  readonly label: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 60, undefined>]>, undefined>;
54
58
  readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 300, undefined>, v.UrlAction<string, undefined>]>;
55
59
  readonly apiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 400, undefined>]>, undefined>;
56
- readonly models: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
60
+ readonly models: v.ArraySchema<v.ObjectSchema<{
61
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
62
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
63
+ }, undefined>, undefined>;
57
64
  }, undefined>;
58
65
  readonly responsesByStatusCode: {
59
66
  readonly '4xx': v.ObjectSchema<{
@@ -83,7 +90,11 @@ export declare const upsertLocalModelEndpointContract: {
83
90
  readonly label: v.StringSchema<undefined>;
84
91
  readonly baseUrl: v.StringSchema<undefined>;
85
92
  readonly hasApiKey: v.BooleanSchema<undefined>;
86
- readonly models: v.ArraySchema<v.StringSchema<undefined>, undefined>;
93
+ readonly models: v.ArraySchema<v.ObjectSchema<{
94
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
95
+ readonly acceptsImages: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
96
+ }, undefined>, undefined>;
97
+ readonly unreadableModels: v.BooleanSchema<undefined>;
87
98
  readonly urlBlockedReason: v.NullableSchema<v.PicklistSchema<readonly ["invalid_url", "scheme_not_allowed", "credentials_not_allowed", "query_or_fragment_not_allowed", "host_not_loopback", "host_not_local"], undefined>, undefined>;
88
99
  readonly createdAt: v.NumberSchema<undefined>;
89
100
  readonly updatedAt: v.NumberSchema<undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"localModels.d.ts","sourceRoot":"","sources":["../../src/routes/localModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAwB5B,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM3C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzC,CAAA"}
1
+ {"version":3,"file":"localModels.d.ts","sourceRoot":"","sources":["../../src/routes/localModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAwB5B,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM3C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.296.0",
3
+ "version": "0.297.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",