@somewhere-tech/cli 0.37.19 → 0.37.20

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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@somewhere-tech/cli",
3
- "version": "0.37.19",
3
+ "version": "0.37.20",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@somewhere-tech/cli",
9
- "version": "0.37.19",
9
+ "version": "0.37.20",
10
10
  "bundleDependencies": [
11
11
  "@modelcontextprotocol/sdk",
12
12
  "chokidar",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@somewhere-tech/cli",
3
- "version": "0.37.19",
4
- "description": "CLI for somewhere.tech — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
3
+ "version": "0.37.20",
4
+ "description": "CLI for somewhere.tech \u2014 auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
5
5
  "keywords": [
6
6
  "somewhere",
7
7
  "somewhere.tech",
@@ -3,7 +3,7 @@
3
3
  "source_files": {
4
4
  "worker/containers/compile/declared-data-contract.cjs": "abdf0a0f238f9d7ecccc8aa3ede7cd25778194d0b9c68cc6c44aa776de46d122",
5
5
  "worker/containers/compile/groups-types.cjs": "f0f38ca6f160561f997b20af44763bd07232deb2668a536cd52c1974fcfed2c8",
6
- "worker/containers/compile/runtime-types.cjs": "b37bb3a251ef0dde6c699f7941de537c28088f180bb3850808d97db2f76c866c",
6
+ "worker/containers/compile/runtime-types.cjs": "7d2e647e6a7301b4158f8d45d5c52da9aac3b6fb6f8118be5a5cde62c40462fc",
7
7
  "worker/containers/compile/schema-types.cjs": "97941a4f80f50f4a48b828a6a2695f6f0c606ab6e74b4511fbb99e786dc4f0c4",
8
8
  "worker/containers/compile/typed-data.cjs": "57b458e16a373e42d48a0e527317fcdf609299ae368eb539a8b582b9a47abb15",
9
9
  "worker/containers/compile/typed-files.cjs": "a0b1818afbc7673f84583c76436a3b3ca1d1fdf63d8d8db138b36646103f0708",
@@ -27,5 +27,5 @@
27
27
  "worker/src/utils/managed-groups/errors.ts": "4830b1ad7357a79760b0bcc68884e562cfbc07d12a37cc73651a6fcb256d682f",
28
28
  "worker/src/utils/managed-groups/policy.ts": "2259a883645c8bfd607ead7c37387f3ffd42ac9dfb86722c72b224adb498511e"
29
29
  },
30
- "sha256": "d9b4c27c75353337c46ac93abb2816cfb60a77930957778a1b52c5ded6e9128e"
30
+ "sha256": "849e3664a55c1c5fb67faf54b0866db9b1d10b10807dd8a5631893a775a626d8"
31
31
  }
@@ -2347,8 +2347,45 @@ interface SomewhereAiModerationResult {
2347
2347
  model: string;
2348
2348
  provider: string;
2349
2349
  }
2350
+ // sw.ai.evaluate: typed decisions. Probabilities are model output, not
2351
+ // calibrated guarantees; choose thresholds from labelled cases.
2352
+ type SomewhereAiEvaluateQuestion =
2353
+ | { type: 'noul'; instructions: string | SomewhereJsonObject | readonly unknown[]; criteria?: { true?: unknown; false?: unknown } }
2354
+ | { type: 'choice'; instructions: string | SomewhereJsonObject | readonly unknown[]; criteria: Record<string, unknown> }
2355
+ | { type: 'score'; instructions: string | SomewhereJsonObject | readonly unknown[]; criteria: readonly unknown[] };
2356
+ type SomewhereAiEvaluateImage =
2357
+ | string
2358
+ | { content_type: 'image/png' | 'image/jpeg' | 'image/webp'; base64: string };
2359
+ type SomewhereAiEvaluateOptions<Q extends Record<string, SomewhereAiEvaluateQuestion>> = {
2360
+ state: string | SomewhereJsonObject | readonly unknown[];
2361
+ questions: Q;
2362
+ } & (
2363
+ // Text routes to jev and images to clef-flash when model is omitted; jev reads text only.
2364
+ | { model: 'jev'; images?: never }
2365
+ | { model?: 'clef-flash'; images?: readonly SomewhereAiEvaluateImage[] }
2366
+ );
2367
+ interface SomewhereAiEvaluateNoulAnswer { type: 'noul'; noul: number }
2368
+ interface SomewhereAiEvaluateChoiceAnswer<O extends string = string> {
2369
+ type: 'choice'; choice: O; probabilities: Record<O, number>; confidence: number;
2370
+ }
2371
+ interface SomewhereAiEvaluateScoreAnswer {
2372
+ type: 'score'; score: number; legend: Record<string, unknown>; probabilities: Record<string, number>; confidence: number;
2373
+ }
2374
+ type SomewhereAiEvaluateAnswer<Q> =
2375
+ Q extends { type: 'noul' } ? SomewhereAiEvaluateNoulAnswer
2376
+ : Q extends { type: 'choice'; criteria: infer C } ? SomewhereAiEvaluateChoiceAnswer<Extract<keyof C, string>>
2377
+ : Q extends { type: 'score' } ? SomewhereAiEvaluateScoreAnswer
2378
+ : never;
2379
+ interface SomewhereAiEvaluateResult<Q extends Record<string, SomewhereAiEvaluateQuestion>> {
2380
+ model: 'clef-flash' | 'jev';
2381
+ provider_model: string;
2382
+ routed_by: 'model' | 'images' | 'text';
2383
+ answers: { [K in keyof Q]: SomewhereAiEvaluateAnswer<Q[K]> };
2384
+ usage: { input_tokens: number };
2385
+ cost: SomewhereAiCost;
2386
+ }
2350
2387
  interface SomewhereAiCatalogEntry {
2351
- feature: 'transcribe' | 'tts' | 'generate_image' | 'remove_background' | 'embed' | 'complete';
2388
+ feature: 'transcribe' | 'tts' | 'generate_image' | 'remove_background' | 'embed' | 'complete' | 'evaluate';
2352
2389
  model: string;
2353
2390
  provider: string;
2354
2391
  label: string;
@@ -2386,6 +2423,7 @@ interface SomewhereRuntimeAi {
2386
2423
  removeBackground(options: SomewhereAiRemoveBackgroundOptions): Promise<never>;
2387
2424
  embeddings(options: SomewhereAiEmbeddingsOptions): Promise<SomewhereAiEmbeddingsResult>;
2388
2425
  moderate(text: string): Promise<SomewhereAiModerationResult>;
2426
+ evaluate<const Q extends Record<string, SomewhereAiEvaluateQuestion>>(options: SomewhereAiEvaluateOptions<Q>): Promise<SomewhereAiEvaluateResult<Q>>;
2389
2427
  catalog(): Promise<SomewhereAiCatalog>;
2390
2428
  }
2391
2429