You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note neither subblock `id` is `channel` — the canonical id is a third name that both members map
232
+
onto, and it is the only one that survives serialization.
233
+
231
234
**Critical Canonical Param Rules:**
232
235
-`canonicalParamId` must NOT match any subblock's `id` in the block
233
-
-`canonicalParamId` must be unique per operation/condition context
234
-
- Only use `canonicalParamId` to link basic/advanced alternatives for the same logical parameter
236
+
-`canonicalParamId` must be unique **block-wide**, not per operation. `buildCanonicalIndex` keys
237
+
groups by `canonicalParamId` across all subblocks and a group holds exactly one `basicId`, so two
238
+
operations that each need their own pair must use two different canonical ids
239
+
- Only use `canonicalParamId` to link basic/advanced alternatives for the same logical parameter.
240
+
A pair carries ONE concept — for files that means upload (basic) + file reference (advanced), as
241
+
in Gmail attachments (`blocks/blocks/gmail.ts`). Never overload the advanced side with alternate
242
+
identifiers like a URL or a provider asset ID; give those their own subblocks, mark all the
243
+
mutually exclusive sources `required: false`, and enforce "exactly one" at execution
235
244
-`mode` only controls UI visibility, NOT serialization. Without `canonicalParamId`, both basic and advanced field values would be sent
236
245
- Every subblock `id` must be unique within the block. Duplicate IDs cause conflicts even with different conditions
237
246
-**Required consistency:** If one subblock in a canonical group has `required: true`, ALL subblocks in that group must have `required: true` (prevents bypassing validation by switching modes)
Copy file name to clipboardExpand all lines: .agents/skills/add-model/SKILL.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -151,8 +151,8 @@ The Consumption Matrix (Step 2) tells you which capability *flags* are honored b
151
151
152
152
If the entry has `capabilities.thinking` or `capabilities.reasoningEffort`, it appears in the autogenerated "Streamed thinking and tool calls" table on the Agent block docs page:
153
153
154
-
-**Anthropic-family (`anthropic`, `azure-anthropic`) thinking models MUST declare `capabilities.thinking.streamed`** (`'full' | 'summary' | 'none'`) — visibility varies per Claude generation. Verify against the provider's thinking/display docs (e.g. Anthropic's "controlling thinkingdisplay" page and per-model "what's new" notes): generations that default `thinking.display` to `omitted` (Opus 4.7+, Sonnet 5, Fable 5) are `'summary'` — Sim opts back in with `display: 'summarized'` on agent-events runs; older generations that return full thinking deltas are`'full'`. `bun run agent-stream-docs:check` (CI) fails if the field is missing.
155
-
- Other families usually omit the field and inherit the provider default in `getThinkingStreamVisibility` (Gemini/OpenAI → summaries, Bedrock → none, OpenAI-compat vendors → full raw CoT). Set it explicitly only when the model deviates from its family.
154
+
-**Anthropic-family (`anthropic`, `azure-anthropic`) thinking models MUST declare `capabilities.thinking.streamed`** (`'full' | 'summary' | 'none'`). Verify against Anthropic's current thinking-displayand streaming docs: visible thinking returned by the API is summarized, including when Sim opts models whose default display is `omitted` into `display: 'summarized'` on agent-events runs, so current Claude thinking models use `'summary'`. Use`'full'` only if future official API docs explicitly guarantee raw thinking deltas. `bun run agent-stream-docs:check` (CI) fails if the field is missing.
155
+
- Other families usually omit the field and inherit the provider default in `getThinkingStreamVisibility` (Gemini/OpenAI → summaries; Bedrock/Meta → none; OpenAI-compatible vendors with documented reasoning fields → full deltas). Set it explicitly only when the model deviates from its family.
156
156
- After inserting the entry, run `bun run agent-stream-docs:generate` and commit the regenerated `apps/docs/content/docs/en/workflows/blocks/agent.mdx` — CI diffs it.
157
157
- Include the `streamed` value (with its source URL) in the verification report when set.
Note neither subblock `id` is `channel` — the canonical id is a third name that both members map
231
+
onto, and it is the only one that survives serialization.
232
+
230
233
**Critical Canonical Param Rules:**
231
234
-`canonicalParamId` must NOT match any subblock's `id` in the block
232
-
-`canonicalParamId` must be unique per operation/condition context
233
-
- Only use `canonicalParamId` to link basic/advanced alternatives for the same logical parameter
235
+
-`canonicalParamId` must be unique **block-wide**, not per operation. `buildCanonicalIndex` keys
236
+
groups by `canonicalParamId` across all subblocks and a group holds exactly one `basicId`, so two
237
+
operations that each need their own pair must use two different canonical ids
238
+
- Only use `canonicalParamId` to link basic/advanced alternatives for the same logical parameter.
239
+
A pair carries ONE concept — for files that means upload (basic) + file reference (advanced), as
240
+
in Gmail attachments (`blocks/blocks/gmail.ts`). Never overload the advanced side with alternate
241
+
identifiers like a URL or a provider asset ID; give those their own subblocks, mark all the
242
+
mutually exclusive sources `required: false`, and enforce "exactly one" at execution
234
243
-`mode` only controls UI visibility, NOT serialization. Without `canonicalParamId`, both basic and advanced field values would be sent
235
244
- Every subblock `id` must be unique within the block. Duplicate IDs cause conflicts even with different conditions
236
245
-**Required consistency:** If one subblock in a canonical group has `required: true`, ALL subblocks in that group must have `required: true` (prevents bypassing validation by switching modes)
Copy file name to clipboardExpand all lines: .claude/commands/add-model.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -150,8 +150,8 @@ The Consumption Matrix (Step 2) tells you which capability *flags* are honored b
150
150
151
151
If the entry has `capabilities.thinking` or `capabilities.reasoningEffort`, it appears in the autogenerated "Streamed thinking and tool calls" table on the Agent block docs page:
152
152
153
-
-**Anthropic-family (`anthropic`, `azure-anthropic`) thinking models MUST declare `capabilities.thinking.streamed`** (`'full' | 'summary' | 'none'`) — visibility varies per Claude generation. Verify against the provider's thinking/display docs (e.g. Anthropic's "controlling thinkingdisplay" page and per-model "what's new" notes): generations that default `thinking.display` to `omitted` (Opus 4.7+, Sonnet 5, Fable 5) are `'summary'` — Sim opts back in with `display: 'summarized'` on agent-events runs; older generations that return full thinking deltas are`'full'`. `bun run agent-stream-docs:check` (CI) fails if the field is missing.
154
-
- Other families usually omit the field and inherit the provider default in `getThinkingStreamVisibility` (Gemini/OpenAI → summaries, Bedrock → none, OpenAI-compat vendors → full raw CoT). Set it explicitly only when the model deviates from its family.
153
+
-**Anthropic-family (`anthropic`, `azure-anthropic`) thinking models MUST declare `capabilities.thinking.streamed`** (`'full' | 'summary' | 'none'`). Verify against Anthropic's current thinking-displayand streaming docs: visible thinking returned by the API is summarized, including when Sim opts models whose default display is `omitted` into `display: 'summarized'` on agent-events runs, so current Claude thinking models use `'summary'`. Use`'full'` only if future official API docs explicitly guarantee raw thinking deltas. `bun run agent-stream-docs:check` (CI) fails if the field is missing.
154
+
- Other families usually omit the field and inherit the provider default in `getThinkingStreamVisibility` (Gemini/OpenAI → summaries; Bedrock/Meta → none; OpenAI-compatible vendors with documented reasoning fields → full deltas). Set it explicitly only when the model deviates from its family.
155
155
- After inserting the entry, run `bun run agent-stream-docs:generate` and commit the regenerated `apps/docs/content/docs/en/workflows/blocks/agent.mdx` — CI diffs it.
156
156
- Include the `streamed` value (with its source URL) in the verification report when set.
0 commit comments