@tangle-network/agent-interface 2.18.0 → 2.20.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.
@@ -1,118 +1,106 @@
1
- const CHECKED = "2026-09-22";
1
+ import { claim, kbEntry } from "./entry.js";
2
+ const CHECKED = "2026-10-04";
3
+ const source = (url, locator) => ({
4
+ url,
5
+ locator,
6
+ checkedAt: CHECKED,
7
+ authority: "primary",
8
+ });
2
9
  const claudeDocs = "https://platform.claude.com/docs/en";
3
- const openaiDocs = "https://developers.openai.com/api/docs";
4
- /** A router surface is listed only with a dated check that the router served the id. */
5
- function routerCheck(note) {
6
- return {
10
+ const opusGuide = source(`${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-opus-5-5`, "Tools for complex visual inputs; unattended agentic runs; time signals for multiagent harnesses");
11
+ const fableGuide = source(`${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-fable-5-1`, "Finish the whole task; batch independent tool calls; keep the conversation history append-only");
12
+ const sonnetGuide = source(`${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-sonnet-5`, "Code review harnesses; tone and writing style");
13
+ const deepseekModel = source("https://api-docs.deepseek.com/quick_start/pricing/#model-details", "Model details; footnote 1");
14
+ const deepseekThinking = source("https://api-docs.deepseek.com/guides/thinking_mode/", "Thinking mode toggle and effort control; tool calls");
15
+ const glmModel = source("https://docs.z.ai/guides/llm/glm-5.3#feature-changes", "Feature changes");
16
+ const kimiModel = source("https://platform.kimi.ai/docs/guide/kimi-k3-quickstart", "Reasoning effort; vision input; important limits");
17
+ /** Historical acceptance records, not a current serving or quality check. */
18
+ function routerClaim(note) {
19
+ return claim(`The 2026-09-22 record reports ${note}; this audit recovered no attached trace and made no new router request.`, {
7
20
  url: "https://router.tangle.tools/v1/chat/completions",
21
+ checkedAt: "2026-09-22",
22
+ authority: "local",
23
+ locator: "models.ts at d949682; historical routerCheck note",
24
+ }, "local-observation");
25
+ }
26
+ /** Each row refers to the dated catalog in the retained source audit. */
27
+ function codexCatalogClaim(id, defaultEffort, ultra) {
28
+ return claim(`Codex cache observed at 2026-10-04T05:31:58Z (client 0.160.0): 272000 context, default ${defaultEffort}, efforts low through max${ultra ? " plus ultra" : ""}. This account/client catalog is not a serving receipt; a later cache written by 0.155.0 lacked GPT-6.1 Sol.`, {
29
+ url: "file://~/.codex/models_cache.json",
8
30
  checkedAt: CHECKED,
31
+ authority: "local",
32
+ locator: `research/anthropic-openai.md#local-codex-catalog-evidence; slug ${id}`,
33
+ }, "local-observation");
34
+ }
35
+ function historicalCodexClaim(id, catalogSource) {
36
+ const note = catalogSource
37
+ ? `codex-cli 0.156.1 served list; \`codex exec -m ${id}\` returned OK`
38
+ : "codex-cli 0.156.1 on a ChatGPT account returned OK";
39
+ return claim(`The 2026-09-22 record reports ${note}; no attached trace was recovered in this audit.`, {
40
+ url: catalogSource
41
+ ? "file://~/.codex/models_cache.json"
42
+ : `cli:codex exec -m ${id} 'Reply with exactly: OK'`,
43
+ checkedAt: "2026-09-22",
9
44
  note,
10
- };
45
+ authority: "local",
46
+ locator: "models.ts at d949682; historical CLI check",
47
+ }, "local-observation");
11
48
  }
12
- /**
13
- * Current frontier models, from vendor sources read on 2026-09-22.
14
- *
15
- * `prompt` lines go into the model's prompt; `operator` lines configure the
16
- * run. Vendor facts carry their source. Nothing here compares one model with
17
- * another.
18
- */
49
+ /** Source-backed facts and conditional advice. API controls never become agent instructions. */
19
50
  export const profileKbModels = [
20
- {
51
+ kbEntry({
21
52
  id: "claude-opus-5-5",
22
53
  name: "Claude Opus 5.5",
23
54
  vendor: "Anthropic",
24
55
  surfaces: ["api"],
25
56
  aliases: ["anthropic/claude-opus-5-5", "anthropic.claude-opus-5-5"],
26
57
  defaultEffort: "medium",
27
- sources: [
28
- { url: `${claudeDocs}/models/opus-5-5/overview`, checkedAt: CHECKED },
29
- {
30
- url: `${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-opus-5-5`,
31
- checkedAt: CHECKED,
32
- },
33
- {
34
- url: "https://www.anthropic.com/claude-opus-5-5-system-card",
35
- checkedAt: CHECKED,
36
- note: "system card, linked from the model overview",
37
- },
38
- ],
39
- prompt: [
40
- "Keep the task's parts in a checklist you update, and keep working until every item is done or blocked.",
41
- "Put status notes and recommendations in the same message as your next tool call; end the turn only when the work is complete or nothing can move without the user.",
42
- "Before acting on a loosely specified task, explore the relevant files, records, and sources, including ones the task does not name, and use what you find.",
43
- "When a lead agent can delegate, run independent slices in parallel subagents and pace the work to finish early.",
44
- "For dense charts, diagrams, or screenshots, crop and zoom with the available image tools before reading values.",
45
- ],
46
- operator: [
47
- "Model id claude-opus-5-5; 1M context, 128K max output; released 2026-09-22.",
48
- "Adaptive thinking is always on. Start at effort medium, measure low for cost, and reserve xhigh and max for measured gains.",
49
- "Set max_tokens to 128000 for long agentic turns: thinking counts toward it.",
50
- "Keep history append-only and pass thinking blocks back unchanged; change instructions with mid-conversation system messages.",
51
- "Set thinking display to updates to receive progress notes between tool calls.",
52
- "For unattended loops, treat a text-only end of turn as a report: name the open items in a short user message, at most two or three times.",
53
- "For multi-agent runs, append elapsed time against a budget (for example `elapsed 340s / 1200s`) to each message.",
54
- ],
55
- },
56
- {
58
+ claims: [
59
+ claim("Claude API: 1M context, 128K ordinary output; adaptive thinking is always enabled, default effort medium. Preserve returned thinking and its conversation prefix.", source("https://platform.claude.com/docs/en/models/opus-5-5/overview", "Overview; capabilities; good to know")),
60
+ claim("For dense charts or screenshots, inspect small details using available crop or zoom tools.", opusGuide, "vendor-guidance", "agent"),
61
+ claim("For unattended runs that stop with unfinished work, explicit completion tracking and bounded continuation are vendor tuning candidates; interactive confirmations still apply.", opusGuide, "vendor-guidance"),
62
+ claim("For an already-authorized agent team, elapsed-time and budget signals are a tuning candidate; hard timeouts need enforcement outside the prompt, and time pressure can reduce verification.", opusGuide, "vendor-guidance"),
63
+ ],
64
+ }),
65
+ kbEntry({
57
66
  id: "claude-fable-5-1",
58
67
  name: "Claude Fable 5.1",
59
68
  vendor: "Anthropic",
60
69
  surfaces: ["api"],
61
70
  aliases: ["anthropic/claude-fable-5-1", "anthropic.claude-fable-5-1"],
62
71
  defaultEffort: "high",
63
- sources: [
64
- { url: `${claudeDocs}/models/fable-5-1/overview`, checkedAt: CHECKED },
65
- {
66
- url: `${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-fable-5-1`,
67
- checkedAt: CHECKED,
68
- },
69
- ],
70
- prompt: [
71
- "You are operating autonomously: for reversible actions that follow from the request, proceed without asking; stop only for destructive actions or scope changes the user must decide.",
72
- "Before ending your turn, check your last paragraph: if it is a plan, a list of next steps, or a promise, do that work now with tool calls.",
73
- "The request sets the scope: deliver all of it, keep changes to what it needs, and report other findings as follow-ups.",
74
- "First privately list what you need next; then request every item that does not depend on another's result in one response.",
75
- "Say in a line what you are about to do, give brief updates while you work, and close with a recap that stands on its own.",
76
- "Edit files surgically when a targeted edit gives the same result.",
77
- "Write plainly: when a literal phrase is available, use it.",
72
+ claims: [
73
+ claim("Claude API: 1M context, 128K ordinary output; always-on adaptive thinking, default effort high.", source("https://platform.claude.com/docs/en/models/fable-5-1/overview", "Overview; capabilities")),
74
+ claim("The vendor offers optional remedies for demonstrated early stopping, serial independent calls, overediting and writing problems. Apply the matching remedy within the task scope and authorization.", fableGuide, "vendor-guidance"),
75
+ claim("Keep history append-only; supported turn-scoped reminders remain appended. When subagents are already used, nonblocking spawn and later results let the lead continue, but do not guarantee useful overlap.", fableGuide, "vendor-guidance"),
78
76
  ],
79
- operator: [
80
- "Model id claude-fable-5-1; 1M context, 128K max output; released 2026-09-01. For demanding reasoning and long-horizon agentic work.",
81
- "Adaptive thinking only. Start at effort high and sweep low, medium, xhigh, and max against your evals.",
82
- "Keep history append-only; send per-turn reminders as turn-scoped system messages (clear_at next_user_message).",
83
- "Let the lead agent keep working while subagents run: return from the spawn tool immediately and deliver results in a later user message.",
84
- "At xhigh and max, leave max_tokens room for thinking plus the deliverable.",
85
- ],
86
- },
87
- {
77
+ }),
78
+ kbEntry({
88
79
  id: "claude-sonnet-5",
89
80
  name: "Claude Sonnet 5",
90
81
  vendor: "Anthropic",
91
82
  surfaces: ["api", "router"],
92
83
  aliases: ["anthropic/claude-sonnet-5", "anthropic.claude-sonnet-5"],
93
84
  defaultEffort: "high",
94
- sources: [
95
- { url: `${claudeDocs}/models/overview`, checkedAt: CHECKED },
96
- {
97
- url: `${claudeDocs}/build-with-claude/prompt-engineering/prompting-claude-sonnet-5`,
98
- checkedAt: CHECKED,
99
- },
100
- routerCheck("claude-sonnet-5 returned HTTP 200"),
101
- ],
102
- prompt: [
103
- "Apply each instruction to every case it names; where an instruction should apply broadly, the prompt says so.",
104
- "For review work, report every issue you find with a confidence and severity; a later step filters them.",
105
- "Give regular, short progress updates through long agentic work.",
106
- ],
107
- operator: [
108
- "Model id claude-sonnet-5; 1M context, 128K max output.",
109
- "Adaptive thinking is on by default. Effort defaults to high; use xhigh for the hardest coding and agentic tasks.",
110
- "Instructions are followed literally, especially at low effort: state scope explicitly.",
111
- "Give the task, intent, and constraints up front in the first turn.",
112
- "Temperature, top_p, and top_k stay at defaults; steer tone and variety in the prompt.",
85
+ claims: [
86
+ claim("Claude API: active legacy model; 1M context, 128K output. Adaptive thinking defaults on with effort high; disabled thinking is also supported.", source("https://platform.claude.com/docs/en/models/sonnet-5/overview", "Capabilities; availability")),
87
+ claim("For review, specify the desired precision/recall and name any actual downstream filter; do not invent one to justify broad reporting.", sonnetGuide, "vendor-guidance"),
88
+ claim("Nondefault temperature, top_p and top_k are rejected.", sonnetGuide),
89
+ routerClaim("claude-sonnet-5 returned HTTP 200"),
90
+ ],
91
+ }),
92
+ kbEntry({
93
+ id: "claude-sonnet-5-5",
94
+ name: "Claude Sonnet 5.5",
95
+ vendor: "Anthropic",
96
+ surfaces: ["api"],
97
+ aliases: ["anthropic/claude-sonnet-5-5", "anthropic.claude-sonnet-5-5"],
98
+ defaultEffort: "high",
99
+ claims: [
100
+ claim("Claude API: released 2026-09-28; 1M context, 128K output; adaptive thinking with default effort high. between_tools is the lowest thinking setting and requires effort high or below; do not reuse Sonnet 5 disabled-thinking assumptions.", source("https://platform.claude.com/docs/en/models/sonnet-5-5/overview", "Overview; capabilities; good to know")),
113
101
  ],
114
- },
115
- {
102
+ }),
103
+ kbEntry({
116
104
  id: "claude-haiku-4-5",
117
105
  name: "Claude Haiku 4.5",
118
106
  vendor: "Anthropic",
@@ -122,291 +110,153 @@ export const profileKbModels = [
122
110
  "anthropic/claude-haiku-4-5",
123
111
  "anthropic.claude-haiku-4-5",
124
112
  ],
125
- sources: [
126
- { url: `${claudeDocs}/models/haiku-4-5/overview`, checkedAt: CHECKED },
127
- ],
128
- prompt: [
129
- "Answer directly and keep each step scoped to the task in hand.",
130
- ],
131
- operator: [
132
- "Model id claude-haiku-4-5-20251001 (alias claude-haiku-4-5); 200K context, 64K max output.",
133
- "Uses manual extended thinking (thinking.type enabled with budget_tokens); it takes no effort parameter.",
134
- "Retirement date: 2026-10-15 at the earliest.",
113
+ claims: [
114
+ claim("Claude API alias claude-haiku-4-5 resolves to claude-haiku-4-5-20251001; 200K context, 64K output. Manual extended thinking uses budget_tokens and accepts no effort parameter. Retirement is not before 2026-10-15, not scheduled on that date.", source("https://platform.claude.com/docs/en/models/haiku-4-5/overview", "Model IDs; capabilities; availability")),
135
115
  ],
136
- },
137
- {
116
+ }),
117
+ kbEntry({
138
118
  id: "gpt-6-pro",
139
119
  name: "GPT-6 Pro",
140
120
  vendor: "OpenAI",
141
121
  surfaces: ["chatgpt"],
142
122
  aliases: ["GPT-6 Pro"],
143
- sources: [
144
- {
145
- url: "https://help.openai.com/en/articles/20001354-gpt-56-and-gpt-6-pro-in-chatgpt",
146
- checkedAt: CHECKED,
147
- note: "read through search results; direct fetch returned HTTP 403",
148
- },
149
- { url: "https://learn.chatgpt.com/docs/prompting", checkedAt: CHECKED },
123
+ claims: [
124
+ claim("GPT-6 Pro is a ChatGPT product mode powered by Astra, with plan/workspace-dependent access and allowances. This entry establishes no API model ID.", source("https://help.openai.com/en/articles/20001354-gpt-56-and-gpt-6-pro-in-chatgpt", "GPT-6 Pro availability; usage limits")),
150
125
  ],
151
- prompt: [
152
- "Start with the result you want, then give the goal, the context that helps, the output format, and what must stay unchanged.",
153
- "Describe a process only when the process itself matters; otherwise leave room to search, compare, and adjust.",
154
- "End with a final check: confirm each deliverable and flag anything you could not verify.",
155
- ],
156
- operator: [
157
- "A ChatGPT model mode powered by GPT-6 Astra, on Pro, Business, and Enterprise plans. It has a weekly usage limit.",
158
- "No API model id; reach it through ChatGPT (chatgpt-fleet).",
126
+ }),
127
+ kbEntry({
128
+ id: "gpt-6.1-sol",
129
+ name: "GPT-6.1 Sol",
130
+ vendor: "OpenAI",
131
+ surfaces: ["codex", "api"],
132
+ aliases: ["openai/gpt-6.1-sol"],
133
+ defaultEffort: "medium",
134
+ claims: [
135
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts low, medium, high, xhigh and max. API default is medium. Tool calling requires Responses.", source("https://developers.openai.com/api/docs/models/gpt-6.1-sol", "Model description; reasoning effort; context/output limits; supported endpoints")),
136
+ codexCatalogClaim("gpt-6.1-sol", "low", true),
159
137
  ],
160
- },
161
- {
138
+ }),
139
+ kbEntry({
162
140
  id: "gpt-6-astra",
163
141
  name: "GPT-6 Astra",
164
142
  vendor: "OpenAI",
165
143
  surfaces: ["codex", "api"],
166
144
  aliases: ["openai/gpt-6-astra"],
167
145
  defaultEffort: "medium",
168
- sources: [
169
- { url: `${openaiDocs}/models/gpt-6-astra`, checkedAt: CHECKED },
170
- {
171
- url: `${openaiDocs}/guides/latest-model?model=gpt-6-astra`,
172
- checkedAt: CHECKED,
173
- note: "Using GPT-6: prompting guidance",
174
- },
175
- { url: "https://learn.chatgpt.com/docs/models", checkedAt: CHECKED },
176
- {
177
- url: "cli:codex exec -m gpt-6-astra 'Reply with exactly: OK'",
178
- checkedAt: CHECKED,
179
- note: "codex-cli 0.156.1 on a ChatGPT account returned OK",
180
- },
181
- ],
182
- prompt: [
183
- "Infer the user's intent and task scope from the instructions and prior context, bias toward action, and carry the intended task to completion.",
184
- "When you can parallelize work by delegating tasks to another agent, do so with the collaboration tools.",
185
- "Write clear, concise paragraphs that each develop one idea; use lists only for parallel or sequential items.",
186
- ],
187
- operator: [
188
- "Built for end-to-end work with sustained reasoning across many tools: coding, computer use, research, and documents.",
189
- "API: 1,050,000-token context, 128K max output; efforts low, medium, high, xhigh, max.",
190
- "Codex: 272K context; efforts low to max plus ultra, which delegates tasks automatically; default medium.",
191
- ],
192
- },
193
- {
146
+ claims: [
147
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts low, medium, high, xhigh and max. Tool calling requires Responses.", source("https://developers.openai.com/api/docs/models/gpt-6-astra", "Model description; reasoning effort; context/output limits; supported endpoints")),
148
+ codexCatalogClaim("gpt-6-astra", "medium", true),
149
+ claim("The GPT-6 guide describes Astra prompting patterns; delegation, autonomy and testing examples remain conditional on tools, authorization and workload. Other family members need their own evaluation.", source("https://developers.openai.com/api/docs/guides/latest-model?model=gpt-6-astra", "Prompting best practices; subagent delegation; testing and verification"), "vendor-guidance"),
150
+ historicalCodexClaim("gpt-6-astra", false),
151
+ ],
152
+ }),
153
+ kbEntry({
194
154
  id: "gpt-6-sol",
195
155
  name: "GPT-6 Sol",
196
156
  vendor: "OpenAI",
197
157
  surfaces: ["codex", "api"],
198
158
  aliases: ["openai/gpt-6-sol"],
199
159
  defaultEffort: "medium",
200
- sources: [
201
- { url: `${openaiDocs}/models/gpt-6-sol`, checkedAt: CHECKED },
202
- {
203
- url: `${openaiDocs}/guides/latest-model?model=gpt-6-sol`,
204
- checkedAt: CHECKED,
205
- note: "Using GPT-6: prompting guidance",
206
- },
207
- {
208
- url: "cli:codex exec -m gpt-6-sol 'Reply with exactly: OK'",
209
- checkedAt: CHECKED,
210
- note: "codex-cli 0.156.1 on a ChatGPT account returned OK",
211
- },
160
+ claims: [
161
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts none, low, medium, high, xhigh and max. API default is medium. Responses supports tools; Chat Completions function calling requires effort none.", source("https://developers.openai.com/api/docs/models/gpt-6-sol", "Model description; reasoning effort; context/output limits; supported endpoints")),
162
+ codexCatalogClaim("gpt-6-sol", "medium", true),
163
+ historicalCodexClaim("gpt-6-sol", false),
212
164
  ],
213
- prompt: [
214
- "Treat a request such as 'can you', 'I want to', or 'help me' as an instruction to do the work.",
215
- "The user's explicit instructions take precedence over a skill's instructions; if a skill makes you pause or ask, name the SKILL.md file.",
216
- "Carry the task to completion and report the checks you ran.",
217
- ],
218
- operator: [
219
- "Built for complex coding and agentic workflows, and for ambiguous or high-value tasks that need analysis and polish.",
220
- "API: 1,050,000-token context, 128K max output; efforts none, low, medium (default), high, xhigh, max. Inputs over 272K tokens bill at 2x input and 1.5x output.",
221
- "Codex: 272K context; efforts low to max plus ultra; default medium.",
222
- "Use the Responses API for built-in tools; Chat Completions supports function calling only at effort none.",
223
- ],
224
- },
225
- {
165
+ }),
166
+ kbEntry({
226
167
  id: "gpt-6-luna",
227
168
  name: "GPT-6 Luna",
228
169
  vendor: "OpenAI",
229
170
  surfaces: ["codex", "api"],
230
171
  aliases: ["openai/gpt-6-luna"],
231
172
  defaultEffort: "medium",
232
- sources: [
233
- { url: `${openaiDocs}/models/gpt-6-luna`, checkedAt: CHECKED },
234
- { url: "https://learn.chatgpt.com/docs/models", checkedAt: CHECKED },
235
- {
236
- url: "cli:codex exec -m gpt-6-luna 'Reply with exactly: OK'",
237
- checkedAt: CHECKED,
238
- note: "codex-cli 0.156.1 on a ChatGPT account returned OK",
239
- },
240
- ],
241
- prompt: [
242
- "Work to the stated success criteria and output format for each item.",
243
- "Scale testing to the change: once the targeted checks pass, test further only when new changes or failures justify it.",
173
+ claims: [
174
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts none, low, medium, high, xhigh and max. API default is medium. Responses supports tools; Chat Completions function calling requires effort none.", source("https://developers.openai.com/api/docs/models/gpt-6-luna", "Model description; reasoning effort; context/output limits; supported endpoints")),
175
+ codexCatalogClaim("gpt-6-luna", "medium", false),
176
+ historicalCodexClaim("gpt-6-luna", false),
244
177
  ],
245
- operator: [
246
- "Built for focused, high-volume tasks with known success criteria: summarization, extraction, and focused coding.",
247
- "API: 1,050,000-token context, 128K max output; efforts none, low, medium (default), high, xhigh, max.",
248
- "Codex: 272K context; efforts low to max; default medium.",
249
- ],
250
- },
251
- {
178
+ }),
179
+ kbEntry({
252
180
  id: "gpt-5.6-sol",
253
181
  name: "GPT-5.6 Sol",
254
182
  vendor: "OpenAI",
255
183
  surfaces: ["codex", "api", "router"],
256
184
  aliases: ["openai/gpt-5.6-sol"],
257
185
  defaultEffort: "medium",
258
- sources: [
259
- {
260
- url: "https://developers.openai.com/api/docs/models/gpt-5.6-sol",
261
- checkedAt: CHECKED,
262
- },
263
- {
264
- url: "https://openai.com/index/builders-guide-to-gpt-5-6/",
265
- checkedAt: CHECKED,
266
- note: "read through search results; direct fetch returned HTTP 403",
267
- },
268
- {
269
- url: "file://~/.codex/models_cache.json",
270
- checkedAt: CHECKED,
271
- note: "codex-cli 0.156.1 served list; `codex exec -m gpt-5.6-sol` returned OK",
272
- },
273
- routerCheck("gpt-5.6-sol returned HTTP 200"),
274
- ],
275
- prompt: [
276
- "Work from the outcome: know what good looks like and the stopping condition, then choose the method yourself.",
277
- "Carry the task to completion: gather context, plan, implement, verify, and report the evidence.",
278
- "Run independent reads and checks in parallel.",
279
- ],
280
- operator: [
281
- "Flagship GPT-5.6 tier for complex professional work: architecture, security review, repo-wide debugging.",
282
- "Keep the system prompt lean: objective, context, hard constraints, approval boundaries, success criteria, required evidence, and output format.",
283
- "Efforts: none, low, medium (API default), high, xhigh, max; Codex adds ultra, which runs parallel agents. Codex lists low as its default for this model.",
284
- "1,050,000-token context, 128K max output.",
285
- ],
286
- },
287
- {
186
+ claims: [
187
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts none, low, medium, high, xhigh and max. API default is medium.", source("https://developers.openai.com/api/docs/models/gpt-5.6-sol", "Model description; reasoning effort; context/output limits; supported endpoints")),
188
+ claim("OpenAI API name gpt-5.6 aliases to gpt-5.6-sol.", source("https://developers.openai.com/api/docs/models/gpt-5.6-sol", "Model description; reasoning effort; context/output limits; supported endpoints")),
189
+ codexCatalogClaim("gpt-5.6-sol", "low", true),
190
+ historicalCodexClaim("gpt-5.6-sol", true),
191
+ routerClaim("gpt-5.6-sol returned HTTP 200"),
192
+ ],
193
+ }),
194
+ kbEntry({
288
195
  id: "gpt-5.6-terra",
289
196
  name: "GPT-5.6 Terra",
290
197
  vendor: "OpenAI",
291
198
  surfaces: ["codex", "api", "router"],
292
199
  aliases: ["openai/gpt-5.6-terra"],
293
200
  defaultEffort: "medium",
294
- sources: [
295
- {
296
- url: "https://developers.openai.com/api/docs/models/gpt-5.6-terra",
297
- checkedAt: CHECKED,
298
- },
299
- {
300
- url: "file://~/.codex/models_cache.json",
301
- checkedAt: CHECKED,
302
- note: "codex-cli 0.156.1 served list; `codex exec -m gpt-5.6-terra` returned OK",
303
- },
304
- routerCheck("gpt-5.6-terra returned HTTP 200"),
305
- ],
306
- prompt: [
307
- "Work from the outcome and the stopping condition; choose the method yourself and verify before you report.",
308
- ],
309
- operator: [
310
- "Balanced GPT-5.6 tier for everyday professional coding.",
311
- "Efforts: none, low, medium (default), high, xhigh, max; Codex adds ultra.",
312
- "1,050,000-token context, 128K max output.",
313
- ],
314
- },
315
- {
201
+ claims: [
202
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts none, low, medium, high, xhigh and max. API default is medium.", source("https://developers.openai.com/api/docs/models/gpt-5.6-terra", "Model description; reasoning effort; context/output limits; supported endpoints")),
203
+ codexCatalogClaim("gpt-5.6-terra", "medium", true),
204
+ historicalCodexClaim("gpt-5.6-terra", true),
205
+ routerClaim("gpt-5.6-terra returned HTTP 200"),
206
+ ],
207
+ }),
208
+ kbEntry({
316
209
  id: "gpt-5.6-luna",
317
210
  name: "GPT-5.6 Luna",
318
211
  vendor: "OpenAI",
319
212
  surfaces: ["codex", "api", "router"],
320
213
  aliases: ["openai/gpt-5.6-luna"],
321
214
  defaultEffort: "medium",
322
- sources: [
323
- {
324
- url: "https://developers.openai.com/api/docs/models/gpt-5.6-luna",
325
- checkedAt: CHECKED,
326
- },
327
- {
328
- url: "file://~/.codex/models_cache.json",
329
- checkedAt: CHECKED,
330
- note: "codex-cli 0.156.1 served list; `codex exec -m gpt-5.6-luna` returned OK",
331
- },
332
- routerCheck("gpt-5.6-luna returned HTTP 200"),
333
- ],
334
- prompt: [
335
- "Follow the stated format exactly and finish each item before moving to the next.",
336
- ],
337
- operator: [
338
- "GPT-5.6 tier for cost-sensitive, high-volume work: summarizing, labeling, extraction, scaffolds.",
339
- "Efforts: none, low, medium (default), high, xhigh, max. Raise effort for harder items.",
340
- "1,050,000-token context, 128K max output.",
341
- ],
342
- },
343
- {
215
+ claims: [
216
+ claim("OpenAI API: 1,050,000-token context, 128K output; efforts none, low, medium, high, xhigh and max. API default is medium.", source("https://developers.openai.com/api/docs/models/gpt-5.6-luna", "Model description; reasoning effort; context/output limits; supported endpoints")),
217
+ codexCatalogClaim("gpt-5.6-luna", "medium", false),
218
+ historicalCodexClaim("gpt-5.6-luna", true),
219
+ routerClaim("gpt-5.6-luna returned HTTP 200"),
220
+ ],
221
+ }),
222
+ kbEntry({
344
223
  id: "deepseek-v4.1-flash",
345
224
  name: "DeepSeek V4.1 Flash",
346
225
  vendor: "DeepSeek",
347
226
  surfaces: ["api", "router"],
348
227
  aliases: ["deepseek-flash", "deepseek/deepseek-v4.1-flash"],
349
- sources: [
350
- {
351
- url: "https://api-docs.deepseek.com/news/news260910/",
352
- checkedAt: CHECKED,
353
- },
354
- {
355
- url: "https://api-docs.deepseek.com/quick_start/pricing",
356
- checkedAt: CHECKED,
357
- },
358
- routerCheck("deepseek/deepseek-v4.1-flash returned HTTP 200 and served that id"),
359
- ],
360
- prompt: [
361
- "State the goal and the finished result up front, and use the tools you are given to check your work.",
362
- ],
363
- operator: [
364
- "Vendor API id deepseek-flash (released 2026-09-10); on the Tangle router, deepseek/deepseek-v4.1-flash.",
365
- "1M context, 384K max output; thinking mode is the default and non-thinking is available. Native vision.",
366
- "OpenCode supports it as an official partner harness.",
228
+ claims: [
229
+ claim("DeepSeek API ID deepseek-flash denotes V4.1-Flash: 1M context, 384K output, vision and tools; non-thinking mode is available. Router naming is a separate contract.", deepseekModel),
230
+ claim("Thinking defaults on at high. Native efforts are low, high and max; minimal maps to low, medium/xhigh to high, and ultra to max. With tools, preserve all previous reasoning_content, including turns without tool calls.", deepseekThinking),
231
+ routerClaim("deepseek/deepseek-v4.1-flash returned HTTP 200 and served that id"),
367
232
  ],
368
- },
369
- {
233
+ }),
234
+ kbEntry({
370
235
  id: "glm-5.3",
371
236
  name: "GLM-5.3",
372
237
  vendor: "Z.ai",
373
238
  surfaces: ["api", "router"],
374
239
  aliases: ["z-ai/glm-5.3", "zai-coding-plan/glm-5.3"],
375
240
  defaultEffort: "ultracode",
376
- sources: [
377
- { url: "https://docs.z.ai/guides/llm/glm-5.3", checkedAt: CHECKED },
378
- routerCheck("glm-5.3 returned HTTP 200, served as z-ai/glm-5.3"),
379
- ],
380
- prompt: [
381
- "Work the task through to a verified result, using the tools to run and check each change.",
382
- ],
383
- operator: [
384
- "Model id glm-5.3; text only; 1M context, 128K max output. Built for long-horizon software engineering.",
385
- "Reasoning is always on: thinking.type enabled with reasoning_effort low, high, or max (default). Use max for coding.",
386
- ],
387
- },
388
- {
241
+ claims: [
242
+ claim("Z.ai direct API: text-only, 1M context, 128K output; thinking cannot be disabled. reasoning_effort accepts only low, high or max, default max.", glmModel),
243
+ claim("Coding Plan maps none/minimal/low to low, medium/high to high, and xhigh/max to max; this mapping does not apply to direct GLM-5.3 API requests.", source("https://docs.z.ai/guides/capabilities/thinking#core-parameters", "Core parameters; Coding Plan mappings")),
244
+ claim("Z.ai recommends max for complex coding; no local effort sweep establishes its value for this workload.", glmModel, "vendor-guidance"),
245
+ routerClaim("glm-5.3 returned HTTP 200, served as z-ai/glm-5.3"),
246
+ ],
247
+ }),
248
+ kbEntry({
389
249
  id: "kimi-k3",
390
250
  name: "Kimi K3",
391
251
  vendor: "Moonshot AI",
392
252
  surfaces: ["api", "router"],
393
253
  aliases: ["moonshotai/kimi-k3", "kimi-code/k3"],
394
254
  defaultEffort: "ultracode",
395
- sources: [
396
- {
397
- url: "https://platform.kimi.ai/docs/guide/kimi-k3-quickstart",
398
- checkedAt: CHECKED,
399
- },
400
- routerCheck("kimi-k3 returned HTTP 200, served as moonshotai/kimi-k3"),
401
- ],
402
- prompt: [
403
- "Navigate the repository, run the code, and iterate against tests, logs, and runtime output until the result holds.",
404
- ],
405
- operator: [
406
- "Model id kimi-k3; 1M context; native vision. For long-horizon coding, knowledge work, and reasoning.",
407
- "Thinking is always on: reasoning_effort low, high, or max (default).",
408
- "Sampling is fixed (temperature 1.0, top_p 0.95); omit sampling parameters.",
409
- "Return the complete assistant message unchanged in multi-turn and tool-call histories.",
255
+ claims: [
256
+ claim("Moonshot API ID kimi-k3: 1M context, native vision, always-on thinking; reasoning_effort low, high or max, default max. The CLI alias kimi-code/k3 belongs to a different configuration surface.", kimiModel),
257
+ claim("Omit fixed sampling fields. Replay complete assistant messages unchanged, including reasoning and tool calls. Vision uses structured base64 or uploaded-file content, not public image URLs.", kimiModel),
258
+ claim("For large tool catalogs, tool search followed by dynamic declarations is vendor guidance; the backend must implement retrieval and the K3-specific declaration protocol.", source("https://platform.kimi.ai/docs/guide/kimi-k3-tool-calling-best-practice", "Declare a search tool; use tool_choice; inject tool definitions"), "vendor-guidance"),
259
+ routerClaim("kimi-k3 returned HTTP 200, served as moonshotai/kimi-k3"),
410
260
  ],
411
- },
261
+ }),
412
262
  ];
@@ -6,7 +6,7 @@ import type { ProfileKbDiscrepancy, ProfileKbLearning } from "./types.js";
6
6
  */
7
7
  export declare const profileKbLearnings: readonly ProfileKbLearning[];
8
8
  /**
9
- * Names the platform asked for that vendor sources state differently, as read
10
- * on 2026-09-22. Recorded instead of guessed.
9
+ * Historical naming and availability checks from 2026-09-22. Their dates and
10
+ * observations are retained; they do not establish current service or identity.
11
11
  */
12
12
  export declare const profileKbDiscrepancies: readonly ProfileKbDiscrepancy[];