@vellumai/cli 0.10.12-dev.202607271505.0de19b2 → 0.10.12-dev.202607271705.ff78929

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/cli",
3
- "version": "0.10.12-dev.202607271505.0de19b2",
3
+ "version": "0.10.12-dev.202607271705.ff78929",
4
4
  "description": "CLI tools for vellum-assistant",
5
5
  "type": "module",
6
6
  "exports": {
@@ -83,7 +83,7 @@ describe("vellum flags --assistant routing", () => {
83
83
  fetchCalls.push({ url, method });
84
84
  if (method === "PATCH") {
85
85
  return jsonResponse({
86
- key: "voice-mode",
86
+ key: "browser",
87
87
  enabled: true,
88
88
  defaultEnabled: false,
89
89
  label: "Voice Mode",
@@ -133,7 +133,7 @@ describe("vellum flags --assistant routing", () => {
133
133
  "vellum",
134
134
  "flags",
135
135
  "set",
136
- "voice-mode",
136
+ "browser",
137
137
  "true",
138
138
  "--assistant",
139
139
  "Bob",
@@ -146,7 +146,7 @@ describe("vellum flags --assistant routing", () => {
146
146
  // bob-2 has assistantId.length === 5, so port = 7800 + 5 = 7805.
147
147
  expect(fetchCalls[0].url).toContain("http://127.0.0.1:7805");
148
148
  expect(fetchCalls[0].url).toContain(
149
- "/v1/assistants/bob-2/feature-flags/voice-mode",
149
+ "/v1/assistants/bob-2/feature-flags/browser",
150
150
  );
151
151
  });
152
152
 
@@ -166,7 +166,7 @@ describe("vellum flags --assistant routing", () => {
166
166
  "--assistant",
167
167
  "Bob",
168
168
  "set",
169
- "voice-mode",
169
+ "browser",
170
170
  "true",
171
171
  ];
172
172
 
@@ -174,7 +174,7 @@ describe("vellum flags --assistant routing", () => {
174
174
 
175
175
  expect(fetchCalls.length).toBe(1);
176
176
  expect(fetchCalls[0].url).toContain(
177
- "/v1/assistants/bob-2/feature-flags/voice-mode",
177
+ "/v1/assistants/bob-2/feature-flags/browser",
178
178
  );
179
179
  });
180
180
 
@@ -188,7 +188,7 @@ describe("vellum flags --assistant routing", () => {
188
188
  ],
189
189
  "alice-1",
190
190
  );
191
- process.argv = ["bun", "vellum", "flags", "set", "voice-mode", "true"];
191
+ process.argv = ["bun", "vellum", "flags", "set", "browser", "true"];
192
192
 
193
193
  await flags();
194
194
 
@@ -196,7 +196,7 @@ describe("vellum flags --assistant routing", () => {
196
196
  // alice-1 has assistantId.length === 7, so port = 7800 + 7 = 7807.
197
197
  expect(fetchCalls[0].url).toContain("http://127.0.0.1:7807");
198
198
  expect(fetchCalls[0].url).toContain(
199
- "/v1/assistants/alice-1/feature-flags/voice-mode",
199
+ "/v1/assistants/alice-1/feature-flags/browser",
200
200
  );
201
201
  });
202
202
 
@@ -207,7 +207,7 @@ describe("vellum flags --assistant routing", () => {
207
207
  "vellum",
208
208
  "flags",
209
209
  "set",
210
- "voice-mode",
210
+ "browser",
211
211
  "true",
212
212
  "--assistant",
213
213
  "Ghost",
@@ -227,7 +227,7 @@ describe("vellum flags --assistant routing", () => {
227
227
  "vellum",
228
228
  "flags",
229
229
  "set",
230
- "voice-mode",
230
+ "browser",
231
231
  "true",
232
232
  "--assistant",
233
233
  ];
@@ -298,14 +298,14 @@ describe("vellum flags cross-environment hint", () => {
298
298
  test("gateway-unreachable error gains the hint when another env has assistants", async () => {
299
299
  writeLockfile([makeEntry("alice-1", { name: "Alice" })], "alice-1");
300
300
  seedDevAssistant();
301
- process.argv = ["bun", "vellum", "flags", "set", "voice-mode", "true"];
301
+ process.argv = ["bun", "vellum", "flags", "set", "browser", "true"];
302
302
  await expect(flags()).rejects.toThrow(/Install vellum Command/);
303
303
  });
304
304
 
305
305
  test("gateway-unreachable error stays bare when no other env has assistants", async () => {
306
306
  writeLockfile([makeEntry("alice-1", { name: "Alice" })], "alice-1");
307
307
  // xdgDataHome is empty — detection finds nothing, so the message is intact.
308
- process.argv = ["bun", "vellum", "flags", "set", "voice-mode", "true"];
308
+ process.argv = ["bun", "vellum", "flags", "set", "browser", "true"];
309
309
  let error: Error | undefined;
310
310
  try {
311
311
  await flags();
@@ -93,13 +93,13 @@ function printHelp(): void {
93
93
  " $ vellum flags # list flags for active assistant",
94
94
  );
95
95
  console.log(
96
- " $ vellum flags get voice-mode # inspect one flag",
96
+ " $ vellum flags get browser # inspect one flag",
97
97
  );
98
98
  console.log(
99
- " $ vellum flags set voice-mode true # enable a flag",
99
+ " $ vellum flags set browser true # enable a flag",
100
100
  );
101
101
  console.log(
102
- " $ vellum flags set voice-mode true --assistant eval-1 # target by name/id",
102
+ " $ vellum flags set browser true --assistant eval-1 # target by name/id",
103
103
  );
104
104
  }
105
105
 
@@ -4,9 +4,9 @@ import { parseFeatureFlagArgs } from "./flag-args";
4
4
 
5
5
  describe("parseFeatureFlagArgs", () => {
6
6
  test("single flag produces env var and empty remaining", () => {
7
- const result = parseFeatureFlagArgs(["--flag", "voice-mode=true"]);
7
+ const result = parseFeatureFlagArgs(["--flag", "browser=true"]);
8
8
  expect(result).toEqual({
9
- envVars: { VELLUM_FLAG_VOICE_MODE: "true" },
9
+ envVars: { VELLUM_FLAG_BROWSER: "true" },
10
10
  remaining: [],
11
11
  });
12
12
  });
@@ -75,7 +75,7 @@ describe("parseFeatureFlagArgs", () => {
75
75
  "process.exit",
76
76
  );
77
77
  expect(errorSpy).toHaveBeenCalledWith(
78
- 'Error: invalid flag key "UPPER". Keys must be kebab-case (e.g. "voice-mode")',
78
+ 'Error: invalid flag key "UPPER". Keys must be kebab-case (e.g. "browser")',
79
79
  );
80
80
 
81
81
  exitSpy.mockRestore();
@@ -1,4 +1,4 @@
1
- /** Only allow simple kebab-case keys (e.g. "voice-mode", "browser"). */
1
+ /** Only allow simple kebab-case keys (e.g. "browser", "contacts"). */
2
2
  const ALLOWED_KEY_RE = /^[a-z0-9][a-z0-9-]*$/;
3
3
 
4
4
  /**
@@ -38,7 +38,7 @@ export function parseFeatureFlagArgs(args: string[]): {
38
38
 
39
39
  if (!ALLOWED_KEY_RE.test(key)) {
40
40
  console.error(
41
- `Error: invalid flag key "${key}". Keys must be kebab-case (e.g. "voice-mode")`,
41
+ `Error: invalid flag key "${key}". Keys must be kebab-case (e.g. "browser")`,
42
42
  );
43
43
  process.exit(1);
44
44
  }
@@ -76,6 +76,7 @@ const PROVIDER_LABELS: Record<LlmProviderId, string> = {
76
76
  atlascloud: "Atlas Cloud",
77
77
  together: "Together AI",
78
78
  baseten: "Baseten",
79
+ poolside: "Poolside",
79
80
  };
80
81
 
81
82
  export function formatProviderName(provider: LlmProviderId): string {
@@ -194,6 +195,9 @@ export function inferProviderFromModel(model: string): string | undefined {
194
195
  if (model.startsWith("thinkingmachines/")) {
195
196
  return "baseten";
196
197
  }
198
+ if (model.startsWith("poolside/")) {
199
+ return "poolside";
200
+ }
197
201
  if (model.includes("/")) {
198
202
  return "openrouter";
199
203
  }
@@ -32,6 +32,7 @@ export const LLM_PROVIDER_ENV_VAR_NAMES: Record<string, string> = {
32
32
  together: "TOGETHER_API_KEY",
33
33
  litellm: "LITELLM_API_KEY",
34
34
  baseten: "BASETEN_API_KEY",
35
+ poolside: "POOLSIDE_API_KEY",
35
36
  };
36
37
 
37
38
  /** Search-provider env var names. Mirrors `SEARCH_PROVIDER_CATALOG` BYOK entries. */