@spinabot/brigade 1.19.2 → 1.19.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.
@@ -9,9 +9,12 @@
9
9
  * via the `~/.brigade/models.json` mechanism Pi exposes for custom providers.
10
10
  * Each model the user has pulled becomes a Pi `Model<"openai-completions">`.
11
11
  *
12
- * Capability inference is best-effort Ollama doesn't tell us a model's
13
- * context window or whether it reasons. We pattern-match the model name
14
- * against well-known families and fall back to safe defaults.
12
+ * Capability detection is AUTHORITATIVE where possible: Ollama's POST /api/show
13
+ * returns a `capabilities` array (e.g. ["completion","tools","thinking","vision"])
14
+ * that tells us directly whether a model REASONS, supports TOOLS, and accepts
15
+ * IMAGES. We read that first and only fall back to name-pattern guessing when the
16
+ * probe is unavailable (older daemon / offline). Context window still isn't
17
+ * reported, so that stays a safe default.
15
18
  */
16
19
  export interface OllamaModelSummary {
17
20
  id: string;
@@ -38,6 +41,15 @@ export interface InferredCapabilities {
38
41
  input: ("text" | "image")[];
39
42
  }
40
43
  export declare function inferOllamaModelCapabilities(modelId: string): InferredCapabilities;
44
+ /**
45
+ * AUTHORITATIVE capability probe — POST /api/show for one model and return its
46
+ * lower-cased `capabilities` array. This is the source of truth for whether a
47
+ * model REASONS (`"thinking"`), supports TOOLS (`"tools"`), and accepts IMAGES
48
+ * (`"vision"`) — far better than guessing from the model name. Best-effort:
49
+ * returns null on any failure (older Ollama, daemon down, timeout) so callers
50
+ * fall back to `inferOllamaModelCapabilities`.
51
+ */
52
+ export declare function fetchOllamaCapabilities(modelId: string, baseUrl?: string): Promise<string[] | null>;
41
53
  /**
42
54
  * Write Brigade's Ollama provider entry into Pi's `~/.brigade/models.json`.
43
55
  * Pi's `ModelRegistry.refresh()` picks this up and exposes the models as
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/integrations/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAqC5G;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC5B;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAiDlF;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC5C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAC1C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAyB,GAChC,OAAO,CAAC,OAAO,CAAC,CAclB"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/integrations/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwBH,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAqC5G;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC5B;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAiDlF;AAQD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAyB,GAChC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAoB1B;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC5C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Df;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAC1C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAyB,GAChC,OAAO,CAAC,OAAO,CAAC,CAclB"}
@@ -9,9 +9,12 @@
9
9
  * via the `~/.brigade/models.json` mechanism Pi exposes for custom providers.
10
10
  * Each model the user has pulled becomes a Pi `Model<"openai-completions">`.
11
11
  *
12
- * Capability inference is best-effort Ollama doesn't tell us a model's
13
- * context window or whether it reasons. We pattern-match the model name
14
- * against well-known families and fall back to safe defaults.
12
+ * Capability detection is AUTHORITATIVE where possible: Ollama's POST /api/show
13
+ * returns a `capabilities` array (e.g. ["completion","tools","thinking","vision"])
14
+ * that tells us directly whether a model REASONS, supports TOOLS, and accepts
15
+ * IMAGES. We read that first and only fall back to name-pattern guessing when the
16
+ * probe is unavailable (older daemon / offline). Context window still isn't
17
+ * reported, so that stays a safe default.
15
18
  */
16
19
  import * as fs from "node:fs/promises";
17
20
  import path from "node:path";
@@ -98,6 +101,39 @@ export function inferOllamaModelCapabilities(modelId) {
98
101
  const input = vision ? ["text", "image"] : ["text"];
99
102
  return { reasoning, contextWindow, maxTokens, input };
100
103
  }
104
+ /**
105
+ * AUTHORITATIVE capability probe — POST /api/show for one model and return its
106
+ * lower-cased `capabilities` array. This is the source of truth for whether a
107
+ * model REASONS (`"thinking"`), supports TOOLS (`"tools"`), and accepts IMAGES
108
+ * (`"vision"`) — far better than guessing from the model name. Best-effort:
109
+ * returns null on any failure (older Ollama, daemon down, timeout) so callers
110
+ * fall back to `inferOllamaModelCapabilities`.
111
+ */
112
+ export async function fetchOllamaCapabilities(modelId, baseUrl = DEFAULT_BASE_URL) {
113
+ const url = `${baseUrl.replace(/\/$/, "")}/api/show`;
114
+ const controller = new AbortController();
115
+ const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
116
+ try {
117
+ const res = await fetch(url, {
118
+ method: "POST",
119
+ headers: { "Content-Type": "application/json" },
120
+ body: JSON.stringify({ model: modelId }),
121
+ signal: controller.signal,
122
+ });
123
+ if (!res.ok)
124
+ return null;
125
+ const body = (await res.json());
126
+ if (!Array.isArray(body.capabilities))
127
+ return null;
128
+ return body.capabilities.map((c) => String(c).toLowerCase());
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ finally {
134
+ clearTimeout(timer);
135
+ }
136
+ }
101
137
  /**
102
138
  * Write Brigade's Ollama provider entry into Pi's `~/.brigade/models.json`.
103
139
  * Pi's `ModelRegistry.refresh()` picks this up and exposes the models as
@@ -117,18 +153,25 @@ export async function writeOllamaToModelsJson(modelsJsonPath, baseUrl, models) {
117
153
  catch {
118
154
  // File missing or unparseable — start fresh. Pi treats an absent file as no config.
119
155
  }
120
- const modelDefs = models.map((m) => {
121
- const caps = inferOllamaModelCapabilities(m.id);
156
+ // Prefer Ollama's own /api/show `capabilities` (authoritative for reasoning /
157
+ // tools / vision); fall back to the name heuristic only when the probe fails.
158
+ // Probes run in parallel, so total added latency is ~one request, not N.
159
+ const modelDefs = await Promise.all(models.map(async (m) => {
160
+ const guess = inferOllamaModelCapabilities(m.id);
161
+ const caps = await fetchOllamaCapabilities(m.id, baseUrl);
162
+ const reasoning = caps ? caps.includes("thinking") : guess.reasoning;
163
+ const vision = caps ? caps.includes("vision") : guess.input.includes("image");
164
+ const input = vision ? ["text", "image"] : ["text"];
122
165
  return {
123
166
  id: m.id,
124
167
  name: m.name + (m.parameterSize ? ` (${m.parameterSize})` : ""),
125
- reasoning: caps.reasoning,
126
- input: caps.input,
127
- contextWindow: caps.contextWindow,
128
- maxTokens: caps.maxTokens,
168
+ reasoning,
169
+ input,
170
+ contextWindow: guess.contextWindow,
171
+ maxTokens: guess.maxTokens,
129
172
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, // local = free
130
173
  };
131
- });
174
+ }));
132
175
  existing.providers["ollama"] = {
133
176
  baseUrl: `${baseUrl.replace(/\/$/, "")}/v1`,
134
177
  api: "openai-completions",
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/integrations/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/integrations/ollama.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spinabot/brigade",
3
- "version": "1.19.2",
3
+ "version": "1.19.3",
4
4
  "description": "Brigade — your personal AI crew",
5
5
  "homepage": "https://brigade.spinabot.com",
6
6
  "author": "Spinabot <hello@brigade-agent.ai>",