@superdoc/sdk 2.27.0-next.4 → 2.27.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.
- package/README.md +34 -0
- package/dist/agent/actions.cjs +62 -24
- package/dist/agent/actions.js +62 -24
- package/dist/embedded-prompts.generated.cjs +1 -1
- package/dist/embedded-prompts.generated.js +1 -1
- package/dist/embedded-tools.generated.cjs +5 -5
- package/dist/embedded-tools.generated.js +5 -5
- package/dist/generated/client.cjs +4 -0
- package/dist/generated/client.d.ts +1012 -62
- package/dist/generated/client.js +4 -0
- package/dist/generated/contract.cjs +1 -1
- package/dist/generated/contract.js +1 -1
- package/dist/presets/full.cjs +4 -0
- package/dist/presets/full.js +4 -0
- package/dist/prompts/full-addendum.md +1 -0
- package/dist/runtime/sdk-version.generated.cjs +1 -1
- package/dist/runtime/sdk-version.generated.d.ts +1 -1
- package/dist/runtime/sdk-version.generated.js +1 -1
- package/package.json +7 -7
- package/tools/catalog.json +42 -2
- package/tools/generation-receipt.json +25 -25
- package/tools/tools-policy.json +1 -1
- package/tools/tools.anthropic.json +42 -2
- package/tools/tools.generic.json +42 -2
- package/tools/tools.openai.json +42 -2
- package/tools/tools.vercel.json +42 -2
package/dist/presets/full.cjs
CHANGED
|
@@ -66,6 +66,7 @@ Where things live (ids for superdoc_api_call):
|
|
|
66
66
|
- Page layout: doc.sections.list → sectionId, then doc.sections.setPageMargins / setPageSetup / setColumns / setPageNumbering / setTitlePage / setPageBorders; doc.create.sectionBreak.
|
|
67
67
|
- Header / footer text: doc.sections.list → doc.headerFooters.list → (if the slot has no explicit part) doc.headerFooters.parts.create {kind} → doc.headerFooters.refs.set {target:{kind:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant}, refId}. A new part already holds ONE empty paragraph: write into it (doc.blocks.list {in:<story>} for its blockId, then doc.insert {value, type:"text", in:<story>, blockId, offset:0}); do not add a second paragraph. Header/footer doc.insert and doc.replace refuse block targets: use target:{kind:"selection", start:{kind:"text", blockId, offset}, end:{kind:"text", blockId, offset}} plus in:<story>. Story = {kind:"story", storyType:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant}. Page number: doc.fields.insert {mode:"raw", instruction:"PAGE", at:{kind:"text", story:<same story>, segments:[{blockId, range:{start:N, end:N}}]}} after the text "Page " (N = its length); "Page N of M" adds " of " and a NUMPAGES field. Alignment: doc.format.paragraph.setAlignment with the story on the target. Odd/even variants need doc.sections.setOddEvenHeadersFooters {enabled:true} first, then one part per variant.
|
|
68
68
|
- Section breaks: doc.create.sectionBreak {at:{kind:"after", target:{kind:"block", nodeType, nodeId:<last paragraph of the closing section>}}, representation:"attachToPreviousParagraph", breakType:"nextPage"} closes the section on that paragraph, as Word does; {at:{kind:"before", target:<first paragraph of the new section>}} is the same boundary; {kind:"documentEnd"} appends a new final section. Then doc.sections.list for the new sectionId and doc.sections.setPageNumbering {start:1} to restart numbering. Add one only when the task needs a new section; never delete the paragraph hosting a break to remove it.
|
|
69
|
+
- Table designs: doc.styles.getTheme reads the document palette; doc.tables.listPresets {source:"word"} returns IDs and appearance (follow nextOffset). Choose by header treatment, bandedRows.effect and fill/themeColor, and borders.layout. Accent slots are document-dependent; resolve every role through colorSchemeMapping (text/background aliases use t1/t2/bg1/bg2 keys) and apply hex tint/shade. Missing style properties inherit; direct cell formatting overrides them. doc.tables.applyPreset {nodeId, preset:<returned id>, styleOptions:{headerRow:true, bandedRows:true, bandedColumns:false}} applies a design while preserving direct formatting; choose other flags to match the task. Border-only banding does not create alternating fills. Check requested constraints and preconditions before mutating.
|
|
69
70
|
- Tables: doc.tables.setBorders / applyBorderPreset / setShading (table or cell background) / setCellProperties / setColumnWidth / setRowHeight / mergeCells / splitCell / sort / setStyle / setLayout; cell text formatting via doc.format.apply on the cell paragraph (new cells must match their siblings' run formatting — read a sibling with superdoc_inspect includeTableCellRuns:true). A NEW table (create_table, markdown) gets 1pt black borders: when the document already has tables, copy their convention (width, border colour and weight: superdoc_inspect / doc.tables.get a sibling) with doc.tables.setLayout and setBorders. A border weight the request leaves open is Word's 0.5pt. Table background = setShading on the table node, not shade_cells per cell.
|
|
70
71
|
- Formatting: doc.format.apply {target|ref, inline:{bold, italic, underline, color, fontSize, fontFamily, highlight}}; paragraph: doc.format.paragraph.setAlignment / setIndentation / setSpacing / setBorder / setShading / setKeepOptions / setTabStop / setNumbering. Units: colours are bare hex ("0000FF"), fontSize and letterSpacing in points, paragraph indentation and spacing in twips (20 = 1pt, 1440 = 1 inch), setBorder size in eighths of a point (1pt = 8) and space in points (Word's default is 1), table widths in twips where the schema says dxa. Box border: ONE batch of four setBorder {target, side:top|bottom|left|right, style:"single", size, color}; no paragraph setBorders exists.
|
|
71
72
|
- Whole-body font/size: ONE doc.format.apply with target {kind:"selection", start:{kind:"text", blockId:<first paragraph>, offset:0}, end:{kind:"text", blockId:<last paragraph>, offset:<length>}}, not set_font_family or per-paragraph calls; headers, footers and notes are separate story calls.
|
|
@@ -102,6 +103,7 @@ const QUICK_REFERENCE_IDS = [
|
|
|
102
103
|
'doc.format.paragraph.setIndentation',
|
|
103
104
|
'doc.format.paragraph.setSpacing',
|
|
104
105
|
'doc.format.paragraph.setKeepOptions',
|
|
106
|
+
'doc.styles.getTheme',
|
|
105
107
|
'doc.styles.getCatalog',
|
|
106
108
|
'doc.styles.create',
|
|
107
109
|
'doc.comments.list',
|
|
@@ -112,6 +114,8 @@ const QUICK_REFERENCE_IDS = [
|
|
|
112
114
|
'doc.trackChanges.list',
|
|
113
115
|
'doc.trackChanges.get',
|
|
114
116
|
'doc.trackChanges.decide',
|
|
117
|
+
'doc.tables.listPresets',
|
|
118
|
+
'doc.tables.applyPreset',
|
|
115
119
|
'doc.tables.get',
|
|
116
120
|
'doc.tables.getProperties',
|
|
117
121
|
'doc.tables.getCells',
|
package/dist/presets/full.js
CHANGED
|
@@ -63,6 +63,7 @@ Where things live (ids for superdoc_api_call):
|
|
|
63
63
|
- Page layout: doc.sections.list → sectionId, then doc.sections.setPageMargins / setPageSetup / setColumns / setPageNumbering / setTitlePage / setPageBorders; doc.create.sectionBreak.
|
|
64
64
|
- Header / footer text: doc.sections.list → doc.headerFooters.list → (if the slot has no explicit part) doc.headerFooters.parts.create {kind} → doc.headerFooters.refs.set {target:{kind:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant}, refId}. A new part already holds ONE empty paragraph: write into it (doc.blocks.list {in:<story>} for its blockId, then doc.insert {value, type:"text", in:<story>, blockId, offset:0}); do not add a second paragraph. Header/footer doc.insert and doc.replace refuse block targets: use target:{kind:"selection", start:{kind:"text", blockId, offset}, end:{kind:"text", blockId, offset}} plus in:<story>. Story = {kind:"story", storyType:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant}. Page number: doc.fields.insert {mode:"raw", instruction:"PAGE", at:{kind:"text", story:<same story>, segments:[{blockId, range:{start:N, end:N}}]}} after the text "Page " (N = its length); "Page N of M" adds " of " and a NUMPAGES field. Alignment: doc.format.paragraph.setAlignment with the story on the target. Odd/even variants need doc.sections.setOddEvenHeadersFooters {enabled:true} first, then one part per variant.
|
|
65
65
|
- Section breaks: doc.create.sectionBreak {at:{kind:"after", target:{kind:"block", nodeType, nodeId:<last paragraph of the closing section>}}, representation:"attachToPreviousParagraph", breakType:"nextPage"} closes the section on that paragraph, as Word does; {at:{kind:"before", target:<first paragraph of the new section>}} is the same boundary; {kind:"documentEnd"} appends a new final section. Then doc.sections.list for the new sectionId and doc.sections.setPageNumbering {start:1} to restart numbering. Add one only when the task needs a new section; never delete the paragraph hosting a break to remove it.
|
|
66
|
+
- Table designs: doc.styles.getTheme reads the document palette; doc.tables.listPresets {source:"word"} returns IDs and appearance (follow nextOffset). Choose by header treatment, bandedRows.effect and fill/themeColor, and borders.layout. Accent slots are document-dependent; resolve every role through colorSchemeMapping (text/background aliases use t1/t2/bg1/bg2 keys) and apply hex tint/shade. Missing style properties inherit; direct cell formatting overrides them. doc.tables.applyPreset {nodeId, preset:<returned id>, styleOptions:{headerRow:true, bandedRows:true, bandedColumns:false}} applies a design while preserving direct formatting; choose other flags to match the task. Border-only banding does not create alternating fills. Check requested constraints and preconditions before mutating.
|
|
66
67
|
- Tables: doc.tables.setBorders / applyBorderPreset / setShading (table or cell background) / setCellProperties / setColumnWidth / setRowHeight / mergeCells / splitCell / sort / setStyle / setLayout; cell text formatting via doc.format.apply on the cell paragraph (new cells must match their siblings' run formatting — read a sibling with superdoc_inspect includeTableCellRuns:true). A NEW table (create_table, markdown) gets 1pt black borders: when the document already has tables, copy their convention (width, border colour and weight: superdoc_inspect / doc.tables.get a sibling) with doc.tables.setLayout and setBorders. A border weight the request leaves open is Word's 0.5pt. Table background = setShading on the table node, not shade_cells per cell.
|
|
67
68
|
- Formatting: doc.format.apply {target|ref, inline:{bold, italic, underline, color, fontSize, fontFamily, highlight}}; paragraph: doc.format.paragraph.setAlignment / setIndentation / setSpacing / setBorder / setShading / setKeepOptions / setTabStop / setNumbering. Units: colours are bare hex ("0000FF"), fontSize and letterSpacing in points, paragraph indentation and spacing in twips (20 = 1pt, 1440 = 1 inch), setBorder size in eighths of a point (1pt = 8) and space in points (Word's default is 1), table widths in twips where the schema says dxa. Box border: ONE batch of four setBorder {target, side:top|bottom|left|right, style:"single", size, color}; no paragraph setBorders exists.
|
|
68
69
|
- Whole-body font/size: ONE doc.format.apply with target {kind:"selection", start:{kind:"text", blockId:<first paragraph>, offset:0}, end:{kind:"text", blockId:<last paragraph>, offset:<length>}}, not set_font_family or per-paragraph calls; headers, footers and notes are separate story calls.
|
|
@@ -99,6 +100,7 @@ const QUICK_REFERENCE_IDS = [
|
|
|
99
100
|
'doc.format.paragraph.setIndentation',
|
|
100
101
|
'doc.format.paragraph.setSpacing',
|
|
101
102
|
'doc.format.paragraph.setKeepOptions',
|
|
103
|
+
'doc.styles.getTheme',
|
|
102
104
|
'doc.styles.getCatalog',
|
|
103
105
|
'doc.styles.create',
|
|
104
106
|
'doc.comments.list',
|
|
@@ -109,6 +111,8 @@ const QUICK_REFERENCE_IDS = [
|
|
|
109
111
|
'doc.trackChanges.list',
|
|
110
112
|
'doc.trackChanges.get',
|
|
111
113
|
'doc.trackChanges.decide',
|
|
114
|
+
'doc.tables.listPresets',
|
|
115
|
+
'doc.tables.applyPreset',
|
|
112
116
|
'doc.tables.get',
|
|
113
117
|
'doc.tables.getProperties',
|
|
114
118
|
'doc.tables.getCells',
|
|
@@ -13,6 +13,7 @@ Recipes (ids for superdoc_api_call unless a helper is named):
|
|
|
13
13
|
- Footnote / endnote: superdoc_perform_action {action:"insert_footnote", anchorText:"Confidential Information", occurrence:1, content:"…", noteType:"footnote"}. The mark lands right after the phrase. Raw form: doc.footnotes.insert {type, content, at:{kind:"text", segments:[{blockId, range:{start,end}}]}}.
|
|
14
14
|
- Picture: superdoc_perform_action {action:"insert_image", src:"eval-logo.png", position:"after", anchorText:"…", caption:"Figure 1 — …"} (file path, URL, or data URI; omit position/anchorText for document end). Centre it afterwards with format_paragraph on the image's paragraph and the caption if asked. Fine-tuning: doc.images.setSize / setWrapType / setPosition / setAltText.
|
|
15
15
|
- Shade a header row / column / table: superdoc_perform_action {action:"shade_cells", tableOrdinal:1, rowIndex:0, color:"D9D9D9"}. Borders: doc.tables.setBorders / applyBorderPreset; cell props: doc.tables.setCellProperties (cell target only); widths/heights: setColumnWidth / setRowHeight / distributeRows / distributeColumns; merge/split: mergeCells / splitCell; sort; setStyle / applyStyle / setLayout.
|
|
16
|
+
- Built-in Word table style (Grid Table 4 – Accent 1, List Table 3, Plain Table 2, …): doc.tables.listPresets {source:"word", query:"Grid Table 4"} returns preset IDs (follow nextOffset for more), then doc.tables.applyPreset {nodeId, preset:<returned id>, styleOptions:{headerRow, bandedRows, firstColumn, …}}. Read doc.styles.getTheme to resolve appearance color refs against this document, including colorSchemeMapping for all roles and hex tint/shade; never assume an accent slot is green. Select header fill, shading banding (not border-only bands), and border layout from appearance. Missing properties inherit and direct formatting overrides style cues. Use the "-accent-N" preset for theme colours, never accentColor. Direct edit only. doc.tables.getStyles lists styles already in the document; applyStyle references one of those IDs.
|
|
16
17
|
- New table cells that must match neighbours: after insert_table_row / setCellText, read a sibling cell's run properties (superdoc_inspect with table runs) and apply them with doc.format.apply {target:{kind:"selection", start:{kind:"text", blockId:<cell paragraph>, offset:0}, end:{kind:"text", blockId, offset:<text length>}}, inline:{fontSize, fontFamily, bold, …}}. A new cell with default formatting next to 10pt siblings is a bug.
|
|
17
18
|
- Page layout: doc.sections.list first (sectionId), then doc.sections.setPageMargins / setPageSetup (size, orientation) / setColumns / setPageNumbering / setTitlePage / setOddEvenHeadersFooters / setPageBorders / setBreakType; doc.create.sectionBreak for a new section.
|
|
18
19
|
- Header / footer text: (1) doc.sections.list → sectionId; (2) doc.headerFooters.list → which slots exist and whether the slot is explicit; (3) if the slot has no explicit part: doc.headerFooters.parts.create {kind:"header"|"footer"} → refId, then doc.headerFooters.refs.set {target:{kind:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant:"default"|"first"|"even"}, refId}; (4) write text with doc.create.paragraph {text, in:{kind:"story", storyType:"headerFooterSlot", section:{kind:"section", sectionId}, headerFooterKind, variant}, at:{kind:"documentEnd"}}; (5) page number: doc.fields.insert {mode:"raw", instruction:"PAGE", at:{kind:"text", story:<that same story>, segments:[{blockId:<the paragraph you created>, range:{start:N, end:N}}]}} where N is the offset inside that paragraph. Repeat for variant "first"/"even" when the document uses different first/even pages (headerFooters.list tells you).
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
// AUTO-GENERATED by scripts/embed-version.mjs — DO NOT EDIT.
|
|
4
4
|
// Source of truth: package.json. Regenerated on every SDK build so the
|
|
5
5
|
// SDK retains its own version identity when bundled into another package.
|
|
6
|
-
const SDK_VERSION = '2.27.0
|
|
6
|
+
const SDK_VERSION = '2.27.0';
|
|
7
7
|
|
|
8
8
|
exports.SDK_VERSION = SDK_VERSION;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "2.27.0
|
|
1
|
+
export declare const SDK_VERSION = "2.27.0";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// AUTO-GENERATED by scripts/embed-version.mjs — DO NOT EDIT.
|
|
2
2
|
// Source of truth: package.json. Regenerated on every SDK build so the
|
|
3
3
|
// SDK retains its own version identity when bundled into another package.
|
|
4
|
-
export const SDK_VERSION = '2.27.0
|
|
4
|
+
export const SDK_VERSION = '2.27.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc/sdk",
|
|
3
|
-
"version": "2.27.0
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"description": "Node SDK for SuperDoc, wrapping the SuperDoc CLI to read and edit .docx files from JavaScript and TypeScript.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "AGPL-3.0",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"typescript": "^5.9.2"
|
|
39
39
|
},
|
|
40
40
|
"optionalDependencies": {
|
|
41
|
-
"@superdoc/sdk-darwin-arm64": "2.27.0
|
|
42
|
-
"@superdoc/sdk-darwin-x64": "2.27.0
|
|
43
|
-
"@superdoc/sdk-linux-x64": "2.27.0
|
|
44
|
-
"@superdoc/sdk-linux-arm64": "2.27.0
|
|
45
|
-
"@superdoc/sdk-windows-x64": "2.27.0
|
|
41
|
+
"@superdoc/sdk-darwin-arm64": "2.27.0",
|
|
42
|
+
"@superdoc/sdk-darwin-x64": "2.27.0",
|
|
43
|
+
"@superdoc/sdk-linux-x64": "2.27.0",
|
|
44
|
+
"@superdoc/sdk-linux-arm64": "2.27.0",
|
|
45
|
+
"@superdoc/sdk-windows-x64": "2.27.0"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"typecheck": "tsc --noEmit",
|
|
54
54
|
"typecheck:consumer": "tsc --noEmit --strict --skipLibCheck --target ES2022 --module NodeNext --moduleResolution NodeNext ../../../../tests/consumer-typecheck/src/sdk-per-open-collaboration-auth.mts ../../../../tests/consumer-typecheck/src/sdk-replace-file.mts ../../../../tests/consumer-typecheck/src/sdk-retained-paragraph.mts ../../../../tests/consumer-typecheck/src/sdk-state-directory.mts ../../../../tests/consumer-typecheck/src/sdk-agent-evidence.mts ../../../../tests/consumer-typecheck/src/sdk-custom-actions.mts ../../../../tests/consumer-typecheck/src/sd4807-sdk-inspect.mts ../../../../tests/consumer-typecheck/src/sdk-tracked-only-policy.mts ../../../../tests/consumer-typecheck/src/sdk-tracked-review-route.mts ../../../../tests/consumer-typecheck/src/sd5266-sdk-placeholder-null.mts ../../../../tests/consumer-typecheck/src/sdk-schema-types.mts",
|
|
55
55
|
"test:agent-actions": "bun test src/__tests__/actions.test.ts src/__tests__/agent-runtime.test.ts src/__tests__/execution-context.test.ts src/__tests__/custom-actions.test.ts src/__tests__/textbox-snapshot.test.ts",
|
|
56
|
-
"test:cli-host": "bun test src/__tests__/diff-tracked-styles.e2e.test.ts src/__tests__/diff-direct-styles.e2e.test.ts src/__tests__/default-cli-optimization.e2e.test.ts src/runtime/__tests__/host-spawn-args.test.ts src/runtime/__tests__/cli-host.test.ts src/__tests__/tracked-review-route.test.ts src/__tests__/cli-document-lifecycle.e2e.test.ts src/__tests__/request-timeout-ms.e2e.test.ts src/__tests__/agent-evidence.e2e.test.ts src/__tests__/agent-apply.e2e.test.ts src/__tests__/find-text.e2e.test.ts src/__tests__/custom-actions.e2e.test.ts src/__tests__/typed-engine-cli-a3c.e2e.test.ts",
|
|
56
|
+
"test:cli-host": "bun test src/__tests__/diff-tracked-styles.e2e.test.ts src/__tests__/diff-direct-styles.e2e.test.ts src/__tests__/default-cli-optimization.e2e.test.ts src/runtime/__tests__/host-spawn-args.test.ts src/runtime/__tests__/cli-host.test.ts src/__tests__/tracked-review-route.test.ts src/__tests__/cli-document-lifecycle.e2e.test.ts src/__tests__/request-timeout-ms.e2e.test.ts src/__tests__/full-preset-table-presets.e2e.test.ts src/__tests__/agent-evidence.e2e.test.ts src/__tests__/agent-apply.e2e.test.ts src/__tests__/find-text.e2e.test.ts src/__tests__/custom-actions.e2e.test.ts src/__tests__/typed-engine-cli-a3c.e2e.test.ts",
|
|
57
57
|
"smoke:product-action": "node scripts/product-action-smoke.mjs"
|
|
58
58
|
}
|
|
59
59
|
}
|
package/tools/catalog.json
CHANGED
|
@@ -3547,11 +3547,25 @@
|
|
|
3547
3547
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3548
3548
|
},
|
|
3549
3549
|
"contextualSpacing": {
|
|
3550
|
-
"
|
|
3550
|
+
"oneOf": [
|
|
3551
|
+
{
|
|
3552
|
+
"type": "boolean"
|
|
3553
|
+
},
|
|
3554
|
+
{
|
|
3555
|
+
"type": "null"
|
|
3556
|
+
}
|
|
3557
|
+
],
|
|
3551
3558
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3552
3559
|
},
|
|
3553
3560
|
"pageBreakBefore": {
|
|
3554
|
-
"
|
|
3561
|
+
"oneOf": [
|
|
3562
|
+
{
|
|
3563
|
+
"type": "boolean"
|
|
3564
|
+
},
|
|
3565
|
+
{
|
|
3566
|
+
"type": "null"
|
|
3567
|
+
}
|
|
3568
|
+
],
|
|
3555
3569
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3556
3570
|
},
|
|
3557
3571
|
"suppressAutoHyphens": {
|
|
@@ -5482,6 +5496,32 @@
|
|
|
5482
5496
|
"minLength": 1,
|
|
5483
5497
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5484
5498
|
},
|
|
5499
|
+
"authorIdentity": {
|
|
5500
|
+
"anyOf": [
|
|
5501
|
+
{
|
|
5502
|
+
"type": "object",
|
|
5503
|
+
"properties": {
|
|
5504
|
+
"providerId": {
|
|
5505
|
+
"type": "string",
|
|
5506
|
+
"minLength": 1
|
|
5507
|
+
},
|
|
5508
|
+
"userId": {
|
|
5509
|
+
"type": "string",
|
|
5510
|
+
"minLength": 1
|
|
5511
|
+
}
|
|
5512
|
+
},
|
|
5513
|
+
"additionalProperties": false,
|
|
5514
|
+
"required": [
|
|
5515
|
+
"providerId",
|
|
5516
|
+
"userId"
|
|
5517
|
+
]
|
|
5518
|
+
},
|
|
5519
|
+
{
|
|
5520
|
+
"type": "null"
|
|
5521
|
+
}
|
|
5522
|
+
],
|
|
5523
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5524
|
+
},
|
|
5485
5525
|
"metadata": {
|
|
5486
5526
|
"type": "object",
|
|
5487
5527
|
"additionalProperties": true,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"formatVersion": 1,
|
|
3
|
-
"contractHash": "
|
|
4
|
-
"documentApiSourceHash": "
|
|
5
|
-
"generatorHash": "
|
|
3
|
+
"contractHash": "6d03c60721081c3b4d6e3d4d677688ad1967f58b267a85824de5a42330a71c87",
|
|
4
|
+
"documentApiSourceHash": "e5454994813cc71a8ddf8337b720983a15a457f653ec183ec33e749980fe4dd5",
|
|
5
|
+
"generatorHash": "c5e5b6ecc72f3cea42d5979a48eb077e160442cb6ab0f1048cd33aeaea6dc41f",
|
|
6
6
|
"inputs": {
|
|
7
7
|
"apps/cli/src/host/sdk-policy.ts": "df3587f39b4888a7b11135cc453126febb6fa8e4d3fb59b3f4f9169b4364dcd3",
|
|
8
8
|
"packages/sdk/codegen/src/artifacts.mjs": "1e03c94c1da3cca73a078b5ab445f891409e6053eb695d52933628226c7f1583",
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
"packages/sdk/codegen/src/node22-core-characters.json": "ba26df167c0853b955b6e04d856a899a7c83865c7b5834d80645d1b41d66c693",
|
|
19
19
|
"packages/sdk/codegen/src/shared.mjs": "a411e7ea4fab43b5b08b00294c746ff7063ceddbae66ece8d8c5990f131e0f7c",
|
|
20
20
|
"packages/sdk/codegen/src/targets.mjs": "62c5ae3e3813e07b37e62487d973bac60ef6bea558a01f3ace2e0c6e8374e147",
|
|
21
|
-
"packages/sdk/langs/node/package.json": "
|
|
21
|
+
"packages/sdk/langs/node/package.json": "848a13c5e9dfe02cce0aa7f7367bbe880be2cc646769d211464d9b26fb27e4e0",
|
|
22
22
|
"packages/sdk/langs/node/scripts/embed-prompts.mjs": "1b1641bf89cad962a4ff11d93f301fe5a4e32fe856cd3c9586106d8aaab4ad80",
|
|
23
23
|
"packages/sdk/langs/node/scripts/embed-tools.mjs": "4cd8b0605b088421ea1fdf8e4e19c70f571f4e3352309a1480491600122e7bb3",
|
|
24
24
|
"packages/sdk/langs/node/scripts/embed-version.mjs": "95e2ff3a7c15cb38130e12f04c8a96c901a5e55d9960610ebefa37178fd19cde",
|
|
25
25
|
"packages/sdk/langs/node/src/agent/action-descriptors.json": "b2afbe8a23454bf807f7220172fb6211ccd098849f1ca27dc3546fdc352c8e48",
|
|
26
|
-
"packages/sdk/langs/node/src/agent/actions.ts": "
|
|
26
|
+
"packages/sdk/langs/node/src/agent/actions.ts": "b5fdb14fdb8a79e3b44513d07b52a304f12d75300c4ae3d63efbb7c0795529bf",
|
|
27
27
|
"packages/sdk/langs/node/src/agent/catalog.ts": "2b602247785611b1c8bfdf59fb2c03a810ec4bc2346655ec9e76d979bb382179",
|
|
28
28
|
"packages/sdk/langs/node/src/presets/core.ts": "b0f32dfc94ddfc86ad96a676da26b526edfcd5f658bfc077d880df69c057c214",
|
|
29
|
-
"packages/sdk/langs/node/src/prompts/full-addendum.md": "
|
|
29
|
+
"packages/sdk/langs/node/src/prompts/full-addendum.md": "6dbe191b0f72d144adb2c04fe1e3eba9e399aa7e081405bb98ead9a91b92113b",
|
|
30
30
|
"packages/sdk/langs/node/src/prompts/mcp-prompt.md": "ba1e239877b2b316744477e3ca7b6982fa265edb1358759209cc439457728e8b",
|
|
31
31
|
"packages/sdk/langs/node/src/prompts/system-prompt.md": "dd9bdac644843db2f4964ea091f5c832b8c8eb058703861210374037c077bb92",
|
|
32
32
|
"packages/sdk/langs/node/src/runtime/tracked-support.ts": "779efa7c8a949090aa83e7db93d4fa84500e7563a2d47c464305f4513c424e6f",
|
|
33
|
-
"packages/sdk/langs/rust/Cargo.toml": "
|
|
33
|
+
"packages/sdk/langs/rust/Cargo.toml": "52527b242b65b534d6afa0eae090817c5d0a49205f8ad3c099bb074121a2c391",
|
|
34
34
|
"packages/sdk/langs/rust/rust-toolchain.toml": "080d1c422a980a506912db5c2cc9fbedcf1df1fe4c8de676934ab7c421c5d768",
|
|
35
35
|
"packages/sdk/scripts/sdk-generate.mjs": "fc5b0cb07a39972694a0c60cfef19b2e166ec12890fb5060e97b2b818f746ef3",
|
|
36
36
|
"packages/sdk/scripts/sdk-platform-targets.mjs": "1c9d5d29f346bdccad4dadcabca371d8a2943b1613ad5a673dcee8ecfac511b5",
|
|
@@ -42,49 +42,49 @@
|
|
|
42
42
|
"outputs": {
|
|
43
43
|
"packages/sdk/langs/rust/src/generated/mod.rs": {
|
|
44
44
|
"id": "rust-mod",
|
|
45
|
-
"sha256": "
|
|
45
|
+
"sha256": "4f2ae3fe2633820f36231e1abc0cfc42e16115ece738078d9d91a0c6ff97b7bd",
|
|
46
46
|
"consumers": [
|
|
47
47
|
"rust"
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
50
|
"packages/sdk/langs/rust/src/generated/types.rs": {
|
|
51
51
|
"id": "rust-types",
|
|
52
|
-
"sha256": "
|
|
52
|
+
"sha256": "14a9854bf2ba5a132011a58f9ee20118d6001d7305c0810bc399d92dbf1a3752",
|
|
53
53
|
"consumers": [
|
|
54
54
|
"rust"
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
57
|
"packages/sdk/langs/rust/src/generated/operations.rs": {
|
|
58
58
|
"id": "rust-operations",
|
|
59
|
-
"sha256": "
|
|
59
|
+
"sha256": "d093e8c0c3d071f64343ee7a72da290577baa122c582785c89e8b1cf30bcb352",
|
|
60
60
|
"consumers": [
|
|
61
61
|
"rust"
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"packages/sdk/langs/rust/assets/contract.json": {
|
|
65
65
|
"id": "rust-contract",
|
|
66
|
-
"sha256": "
|
|
66
|
+
"sha256": "493e8e98802aa54eb97a09d70f11badcf419fc3b2bc78251d0469e4b9fc1cb15",
|
|
67
67
|
"consumers": [
|
|
68
68
|
"rust"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"packages/sdk/langs/rust/assets/action-policy.json": {
|
|
72
72
|
"id": "rust-action-policy",
|
|
73
|
-
"sha256": "
|
|
73
|
+
"sha256": "fe323f1a81199fcc5ff7a6c7c8f908eabede979427c31fe9866d908e18fe4730",
|
|
74
74
|
"consumers": [
|
|
75
75
|
"rust"
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"packages/sdk/langs/node/src/generated/contract.ts": {
|
|
79
79
|
"id": "node-contract",
|
|
80
|
-
"sha256": "
|
|
80
|
+
"sha256": "d28a622130bf1528f0e34791454ff3decc7ac15fe3d774dc0457592e11c35221",
|
|
81
81
|
"consumers": [
|
|
82
82
|
"node"
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
85
|
"packages/sdk/langs/node/src/generated/client.ts": {
|
|
86
86
|
"id": "node-client",
|
|
87
|
-
"sha256": "
|
|
87
|
+
"sha256": "5ab8c98f9ae255d2d32700abf1f4a7d6c6cd3a181c03c39c54f7ef3fd8c2cbe9",
|
|
88
88
|
"consumers": [
|
|
89
89
|
"node"
|
|
90
90
|
]
|
|
@@ -98,14 +98,14 @@
|
|
|
98
98
|
},
|
|
99
99
|
"packages/sdk/langs/python/superdoc/generated/contract.py": {
|
|
100
100
|
"id": "python-contract",
|
|
101
|
-
"sha256": "
|
|
101
|
+
"sha256": "43a0fdf830052da45ccf86ba11039a2d793cae62abe666eec0af211988128767",
|
|
102
102
|
"consumers": [
|
|
103
103
|
"python"
|
|
104
104
|
]
|
|
105
105
|
},
|
|
106
106
|
"packages/sdk/langs/python/superdoc/generated/client.py": {
|
|
107
107
|
"id": "python-client",
|
|
108
|
-
"sha256": "
|
|
108
|
+
"sha256": "ba0dbaa3606207137b368befadee7eca6ca98ff3157a7f9b328b403a8aa72912",
|
|
109
109
|
"consumers": [
|
|
110
110
|
"python"
|
|
111
111
|
]
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"packages/sdk/tools/catalog.json": {
|
|
142
142
|
"id": "tool-catalog",
|
|
143
|
-
"sha256": "
|
|
143
|
+
"sha256": "8ed0e6de53f58906af5e2557c436b887a347d6aa19972dc7f96dcf21387185a5",
|
|
144
144
|
"consumers": [
|
|
145
145
|
"node",
|
|
146
146
|
"python",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
},
|
|
150
150
|
"packages/sdk/tools/tools-policy.json": {
|
|
151
151
|
"id": "tool-policy",
|
|
152
|
-
"sha256": "
|
|
152
|
+
"sha256": "761dee9c779e349ccd1d0f0fb9062615c650fe471058ce01a0acb572bac7e043",
|
|
153
153
|
"consumers": [
|
|
154
154
|
"node",
|
|
155
155
|
"python"
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
},
|
|
158
158
|
"packages/sdk/tools/tools.openai.json": {
|
|
159
159
|
"id": "tools-openai",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
161
161
|
"consumers": [
|
|
162
162
|
"node",
|
|
163
163
|
"python",
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
},
|
|
167
167
|
"packages/sdk/tools/tools.anthropic.json": {
|
|
168
168
|
"id": "tools-anthropic",
|
|
169
|
-
"sha256": "
|
|
169
|
+
"sha256": "cae209818a7cd1a8c5b9e9d540ac103d96df4403f1cb259e96d0ad56f57a2b32",
|
|
170
170
|
"consumers": [
|
|
171
171
|
"node",
|
|
172
172
|
"python",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
"packages/sdk/tools/tools.vercel.json": {
|
|
177
177
|
"id": "tools-vercel",
|
|
178
|
-
"sha256": "
|
|
178
|
+
"sha256": "6c4e9958cdf2baf0e4caa77d7a094119bf1dc218b3254f85931e6b66984ef240",
|
|
179
179
|
"consumers": [
|
|
180
180
|
"node",
|
|
181
181
|
"python",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
},
|
|
185
185
|
"packages/sdk/tools/tools.generic.json": {
|
|
186
186
|
"id": "tools-generic",
|
|
187
|
-
"sha256": "
|
|
187
|
+
"sha256": "357580eec809e66757d2d4be777c8a374eddc7e818cb1d574b5f51012ed09058",
|
|
188
188
|
"consumers": [
|
|
189
189
|
"node",
|
|
190
190
|
"python",
|
|
@@ -217,21 +217,21 @@
|
|
|
217
217
|
},
|
|
218
218
|
"packages/sdk/langs/node/src/embedded-prompts.generated.ts": {
|
|
219
219
|
"id": "node-embedded-prompts",
|
|
220
|
-
"sha256": "
|
|
220
|
+
"sha256": "4f15851ce14cdd81db1c74b5e746e63d205706e89865e808fc1d38c74bd6d0f3",
|
|
221
221
|
"consumers": [
|
|
222
222
|
"node"
|
|
223
223
|
]
|
|
224
224
|
},
|
|
225
225
|
"packages/sdk/langs/node/src/embedded-tools.generated.ts": {
|
|
226
226
|
"id": "node-embedded-tools",
|
|
227
|
-
"sha256": "
|
|
227
|
+
"sha256": "d10266bcf94f298ca9b03f5875114c7ae15dd916adb526d7e392963ba027db07",
|
|
228
228
|
"consumers": [
|
|
229
229
|
"node"
|
|
230
230
|
]
|
|
231
231
|
},
|
|
232
232
|
"packages/sdk/langs/node/src/runtime/sdk-version.generated.ts": {
|
|
233
233
|
"id": "node-sdk-version",
|
|
234
|
-
"sha256": "
|
|
234
|
+
"sha256": "9cb574f6524877aeee34afe64e36a96bb1cb92ddc49f2e4a52c4d463c404dd45",
|
|
235
235
|
"consumers": [
|
|
236
236
|
"node"
|
|
237
237
|
]
|
package/tools/tools-policy.json
CHANGED
|
@@ -3347,11 +3347,25 @@
|
|
|
3347
3347
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3348
3348
|
},
|
|
3349
3349
|
"contextualSpacing": {
|
|
3350
|
-
"
|
|
3350
|
+
"oneOf": [
|
|
3351
|
+
{
|
|
3352
|
+
"type": "boolean"
|
|
3353
|
+
},
|
|
3354
|
+
{
|
|
3355
|
+
"type": "null"
|
|
3356
|
+
}
|
|
3357
|
+
],
|
|
3351
3358
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3352
3359
|
},
|
|
3353
3360
|
"pageBreakBefore": {
|
|
3354
|
-
"
|
|
3361
|
+
"oneOf": [
|
|
3362
|
+
{
|
|
3363
|
+
"type": "boolean"
|
|
3364
|
+
},
|
|
3365
|
+
{
|
|
3366
|
+
"type": "null"
|
|
3367
|
+
}
|
|
3368
|
+
],
|
|
3355
3369
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3356
3370
|
},
|
|
3357
3371
|
"suppressAutoHyphens": {
|
|
@@ -5091,6 +5105,32 @@
|
|
|
5091
5105
|
"minLength": 1,
|
|
5092
5106
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5093
5107
|
},
|
|
5108
|
+
"authorIdentity": {
|
|
5109
|
+
"anyOf": [
|
|
5110
|
+
{
|
|
5111
|
+
"type": "object",
|
|
5112
|
+
"properties": {
|
|
5113
|
+
"providerId": {
|
|
5114
|
+
"type": "string",
|
|
5115
|
+
"minLength": 1
|
|
5116
|
+
},
|
|
5117
|
+
"userId": {
|
|
5118
|
+
"type": "string",
|
|
5119
|
+
"minLength": 1
|
|
5120
|
+
}
|
|
5121
|
+
},
|
|
5122
|
+
"additionalProperties": false,
|
|
5123
|
+
"required": [
|
|
5124
|
+
"providerId",
|
|
5125
|
+
"userId"
|
|
5126
|
+
]
|
|
5127
|
+
},
|
|
5128
|
+
{
|
|
5129
|
+
"type": "null"
|
|
5130
|
+
}
|
|
5131
|
+
],
|
|
5132
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5133
|
+
},
|
|
5094
5134
|
"metadata": {
|
|
5095
5135
|
"type": "object",
|
|
5096
5136
|
"additionalProperties": true,
|
package/tools/tools.generic.json
CHANGED
|
@@ -3393,11 +3393,25 @@
|
|
|
3393
3393
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3394
3394
|
},
|
|
3395
3395
|
"contextualSpacing": {
|
|
3396
|
-
"
|
|
3396
|
+
"oneOf": [
|
|
3397
|
+
{
|
|
3398
|
+
"type": "boolean"
|
|
3399
|
+
},
|
|
3400
|
+
{
|
|
3401
|
+
"type": "null"
|
|
3402
|
+
}
|
|
3403
|
+
],
|
|
3397
3404
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3398
3405
|
},
|
|
3399
3406
|
"pageBreakBefore": {
|
|
3400
|
-
"
|
|
3407
|
+
"oneOf": [
|
|
3408
|
+
{
|
|
3409
|
+
"type": "boolean"
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
"type": "null"
|
|
3413
|
+
}
|
|
3414
|
+
],
|
|
3401
3415
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3402
3416
|
},
|
|
3403
3417
|
"suppressAutoHyphens": {
|
|
@@ -5206,6 +5220,32 @@
|
|
|
5206
5220
|
"minLength": 1,
|
|
5207
5221
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5208
5222
|
},
|
|
5223
|
+
"authorIdentity": {
|
|
5224
|
+
"anyOf": [
|
|
5225
|
+
{
|
|
5226
|
+
"type": "object",
|
|
5227
|
+
"properties": {
|
|
5228
|
+
"providerId": {
|
|
5229
|
+
"type": "string",
|
|
5230
|
+
"minLength": 1
|
|
5231
|
+
},
|
|
5232
|
+
"userId": {
|
|
5233
|
+
"type": "string",
|
|
5234
|
+
"minLength": 1
|
|
5235
|
+
}
|
|
5236
|
+
},
|
|
5237
|
+
"additionalProperties": false,
|
|
5238
|
+
"required": [
|
|
5239
|
+
"providerId",
|
|
5240
|
+
"userId"
|
|
5241
|
+
]
|
|
5242
|
+
},
|
|
5243
|
+
{
|
|
5244
|
+
"type": "null"
|
|
5245
|
+
}
|
|
5246
|
+
],
|
|
5247
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5248
|
+
},
|
|
5209
5249
|
"metadata": {
|
|
5210
5250
|
"type": "object",
|
|
5211
5251
|
"additionalProperties": true,
|
package/tools/tools.openai.json
CHANGED
|
@@ -3355,11 +3355,25 @@
|
|
|
3355
3355
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3356
3356
|
},
|
|
3357
3357
|
"contextualSpacing": {
|
|
3358
|
-
"
|
|
3358
|
+
"oneOf": [
|
|
3359
|
+
{
|
|
3360
|
+
"type": "boolean"
|
|
3361
|
+
},
|
|
3362
|
+
{
|
|
3363
|
+
"type": "null"
|
|
3364
|
+
}
|
|
3365
|
+
],
|
|
3359
3366
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3360
3367
|
},
|
|
3361
3368
|
"pageBreakBefore": {
|
|
3362
|
-
"
|
|
3369
|
+
"oneOf": [
|
|
3370
|
+
{
|
|
3371
|
+
"type": "boolean"
|
|
3372
|
+
},
|
|
3373
|
+
{
|
|
3374
|
+
"type": "null"
|
|
3375
|
+
}
|
|
3376
|
+
],
|
|
3363
3377
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3364
3378
|
},
|
|
3365
3379
|
"suppressAutoHyphens": {
|
|
@@ -5108,6 +5122,32 @@
|
|
|
5108
5122
|
"minLength": 1,
|
|
5109
5123
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5110
5124
|
},
|
|
5125
|
+
"authorIdentity": {
|
|
5126
|
+
"anyOf": [
|
|
5127
|
+
{
|
|
5128
|
+
"type": "object",
|
|
5129
|
+
"properties": {
|
|
5130
|
+
"providerId": {
|
|
5131
|
+
"type": "string",
|
|
5132
|
+
"minLength": 1
|
|
5133
|
+
},
|
|
5134
|
+
"userId": {
|
|
5135
|
+
"type": "string",
|
|
5136
|
+
"minLength": 1
|
|
5137
|
+
}
|
|
5138
|
+
},
|
|
5139
|
+
"additionalProperties": false,
|
|
5140
|
+
"required": [
|
|
5141
|
+
"providerId",
|
|
5142
|
+
"userId"
|
|
5143
|
+
]
|
|
5144
|
+
},
|
|
5145
|
+
{
|
|
5146
|
+
"type": "null"
|
|
5147
|
+
}
|
|
5148
|
+
],
|
|
5149
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5150
|
+
},
|
|
5111
5151
|
"metadata": {
|
|
5112
5152
|
"type": "object",
|
|
5113
5153
|
"additionalProperties": true,
|
package/tools/tools.vercel.json
CHANGED
|
@@ -3355,11 +3355,25 @@
|
|
|
3355
3355
|
"description": "Line spacing rule. Required when 'line' is set. Only for action 'set_spacing'. Omit for other actions."
|
|
3356
3356
|
},
|
|
3357
3357
|
"contextualSpacing": {
|
|
3358
|
-
"
|
|
3358
|
+
"oneOf": [
|
|
3359
|
+
{
|
|
3360
|
+
"type": "boolean"
|
|
3361
|
+
},
|
|
3362
|
+
{
|
|
3363
|
+
"type": "null"
|
|
3364
|
+
}
|
|
3365
|
+
],
|
|
3359
3366
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3360
3367
|
},
|
|
3361
3368
|
"pageBreakBefore": {
|
|
3362
|
-
"
|
|
3369
|
+
"oneOf": [
|
|
3370
|
+
{
|
|
3371
|
+
"type": "boolean"
|
|
3372
|
+
},
|
|
3373
|
+
{
|
|
3374
|
+
"type": "null"
|
|
3375
|
+
}
|
|
3376
|
+
],
|
|
3363
3377
|
"description": "Only for action 'set_flow_options'. Omit for other actions."
|
|
3364
3378
|
},
|
|
3365
3379
|
"suppressAutoHyphens": {
|
|
@@ -5108,6 +5122,32 @@
|
|
|
5108
5122
|
"minLength": 1,
|
|
5109
5123
|
"description": "Caller-owned author image URL. Only for action 'create'. Omit for other actions."
|
|
5110
5124
|
},
|
|
5125
|
+
"authorIdentity": {
|
|
5126
|
+
"anyOf": [
|
|
5127
|
+
{
|
|
5128
|
+
"type": "object",
|
|
5129
|
+
"properties": {
|
|
5130
|
+
"providerId": {
|
|
5131
|
+
"type": "string",
|
|
5132
|
+
"minLength": 1
|
|
5133
|
+
},
|
|
5134
|
+
"userId": {
|
|
5135
|
+
"type": "string",
|
|
5136
|
+
"minLength": 1
|
|
5137
|
+
}
|
|
5138
|
+
},
|
|
5139
|
+
"additionalProperties": false,
|
|
5140
|
+
"required": [
|
|
5141
|
+
"providerId",
|
|
5142
|
+
"userId"
|
|
5143
|
+
]
|
|
5144
|
+
},
|
|
5145
|
+
{
|
|
5146
|
+
"type": "null"
|
|
5147
|
+
}
|
|
5148
|
+
],
|
|
5149
|
+
"description": "Explicit provider-issued comment account. Omitted author attribution inherits the configured identity; explicit author fields opt out of a configured identity unless a pair is supplied. Null explicitly opts out. Unconfigured identities keep existing name-only export behavior. Only for action 'create'. Omit for other actions."
|
|
5150
|
+
},
|
|
5111
5151
|
"metadata": {
|
|
5112
5152
|
"type": "object",
|
|
5113
5153
|
"additionalProperties": true,
|