@crossworks/client-types 0.232.39 → 0.232.45

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/model-pools.ts +111 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossworks/client-types",
3
- "version": "0.232.39",
3
+ "version": "0.232.45",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -0,0 +1,111 @@
1
+ /**
2
+ * The pool vocabulary for the /models curator: which curated lists exist and
3
+ * what each is for. Served to the client by GET /api/model-pools (server-driven
4
+ * on purpose — a new pool needs no contract-package release, same pattern as
5
+ * KNOWN_KEY_SERVICES).
6
+ *
7
+ * `agents` is ONE shared pool: every conversational agent/specialist (assistant
8
+ * through coder) picks from the same premium list. Each ai_worker kind gets its
9
+ * own pool. `embedding` is deliberately absent — the 768-dim local singleton is
10
+ * not switchable (docs/embeddings.md), so curating it would be a trap.
11
+ */
12
+
13
+ export type ModelPoolDef = {
14
+ id: string;
15
+ label: string;
16
+ /** What the pool's consumer does — shown to the curator and the picker. */
17
+ description: string;
18
+ /** Which side of the split it belongs to. */
19
+ group: 'agents' | 'workers';
20
+ };
21
+
22
+ export const MODEL_POOLS: readonly ModelPoolDef[] = [
23
+ {
24
+ id: 'agents',
25
+ label: 'Agents / Responders',
26
+ description:
27
+ 'The shared premium pool: the assistant persona, team responder, and every specialist (pages, tables, coder, appsmith, researcher…). Frontier chat models with strong tool use.',
28
+ group: 'agents',
29
+ },
30
+ {
31
+ id: 'extractor',
32
+ label: 'Extractor',
33
+ description:
34
+ 'Reads every ingested item and produces the summary, facts, and entities. Highest call volume in the system — needs cheap, fast, reliable structured output.',
35
+ group: 'workers',
36
+ },
37
+ {
38
+ id: 'summarizer',
39
+ label: 'Summarizer',
40
+ description: 'Condenses text wherever a summary is needed. Cheap, fast workhorse.',
41
+ group: 'workers',
42
+ },
43
+ {
44
+ id: 'reflector',
45
+ label: 'Reflector',
46
+ description: 'Periodic memory-reflection passes over recent activity. Cheap, fast workhorse.',
47
+ group: 'workers',
48
+ },
49
+ {
50
+ id: 'document',
51
+ label: 'Document reader',
52
+ description:
53
+ 'Reads whole documents natively (PDF understanding). Needs a multimodal model that accepts document input.',
54
+ group: 'workers',
55
+ },
56
+ {
57
+ id: 'vision',
58
+ label: 'Read images',
59
+ description: 'Pulls text and meaning out of images (uploads, extracted document images).',
60
+ group: 'workers',
61
+ },
62
+ {
63
+ id: 'image_gen',
64
+ label: 'Image generation',
65
+ description: 'Generates images. Provider-specific catalog (Gemini image, DALL-E, …).',
66
+ group: 'workers',
67
+ },
68
+ {
69
+ id: 'tts',
70
+ label: 'Assistant voice (TTS)',
71
+ description:
72
+ 'Turns replies into speech. Provider-specific catalog (Grok voice, GPT-4o TTS voices, ElevenLabs).',
73
+ group: 'workers',
74
+ },
75
+ {
76
+ id: 'stt',
77
+ label: 'Transcribe (STT)',
78
+ description:
79
+ 'Speech to text for voice notes and video ingest (Whisper family, grok-stt, gpt-4o-mini-transcribe).',
80
+ group: 'workers',
81
+ },
82
+ {
83
+ id: 'search',
84
+ label: 'Web search',
85
+ description:
86
+ 'The standard web-search answer tier. Must be a search-native model (Perplexity Sonar family).',
87
+ group: 'workers',
88
+ },
89
+ {
90
+ id: 'search_advanced',
91
+ label: 'Deep web search',
92
+ description: 'The strong search tier for hard or conflicting questions (sonar-pro class).',
93
+ group: 'workers',
94
+ },
95
+ {
96
+ id: 'narrator',
97
+ label: 'Narrator',
98
+ description:
99
+ 'Turns tool outcomes and events into short prose for the user. Off the critical path — cheap.',
100
+ group: 'workers',
101
+ },
102
+ {
103
+ id: 'suggester',
104
+ label: 'Follow-up suggester',
105
+ description:
106
+ 'Generates the follow-up suggestion chips after a reply. Cheapest of all; has a fallback chain (suggester → narrator → summarizer).',
107
+ group: 'workers',
108
+ },
109
+ ];
110
+
111
+ export const MODEL_POOL_IDS = new Set(MODEL_POOLS.map((p) => p.id));