@deepraxis/sdk 0.1.1-dev.da8587f → 0.1.1-dev.daf2585
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/METHODS.md +126 -1
- package/README.md +1 -1
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.js +1 -1
- package/dist/generated/sdk.gen.d.ts +330 -10
- package/dist/generated/sdk.gen.js +1045 -9
- package/dist/generated/types.gen.d.ts +27474 -21959
- package/dist/helpers/browser-actions.d.ts +84 -0
- package/dist/helpers/browser-actions.js +141 -0
- package/dist/helpers/browser-connect.d.ts +26 -2
- package/dist/helpers/browser-connect.js +263 -25
- package/dist/helpers/browser-decisions.d.ts +44 -0
- package/dist/helpers/browser-decisions.js +53 -0
- package/dist/helpers/browser-documentation.d.ts +1 -1
- package/dist/helpers/browser-documentation.js +20 -11
- package/dist/operations.generated.d.ts +1830 -12
- package/dist/operations.generated.js +2263 -12
- package/dist/resources.generated.d.ts +118 -1
- package/dist/resources.generated.js +86 -0
- package/package.json +1 -1
|
@@ -5670,13 +5670,18 @@ export declare const operations: readonly [{
|
|
|
5670
5670
|
readonly resource: "browser.contexts";
|
|
5671
5671
|
readonly method: "list";
|
|
5672
5672
|
readonly summary: "列出浏览器上下文";
|
|
5673
|
-
readonly description: "分页列出当前账户保存的登录态,按登录态 ID 升序排列。每项返回名称、标签及保存内容的统计信息;将 nextCursor 原样传入读取下一页,直到其为 null
|
|
5673
|
+
readonly description: "分页列出当前账户保存的登录态,按登录态 ID 升序排列。每项返回名称、标签及保存内容的统计信息;将 nextCursor 原样传入读取下一页,直到其为 null。传 name 时只返回该名称的登录态;名称在当前账户内唯一,所以最多一条。";
|
|
5674
5674
|
readonly http: "GET";
|
|
5675
5675
|
readonly path: "/browser/v1/contexts";
|
|
5676
5676
|
readonly streaming: "no";
|
|
5677
5677
|
readonly pagination: false;
|
|
5678
5678
|
readonly pathParams: readonly [];
|
|
5679
5679
|
readonly query: readonly [{
|
|
5680
|
+
readonly name: "name";
|
|
5681
|
+
readonly type: "string";
|
|
5682
|
+
readonly required: false;
|
|
5683
|
+
readonly description: "按登录态名称精确匹配;名称在当前账户内唯一,所以最多返回一条。省略时列出全部登录态。";
|
|
5684
|
+
}, {
|
|
5680
5685
|
readonly name: "cursor";
|
|
5681
5686
|
readonly type: "string";
|
|
5682
5687
|
readonly required: false;
|
|
@@ -5963,6 +5968,25 @@ export declare const operations: readonly [{
|
|
|
5963
5968
|
readonly description: "会话操作指令;REQUEST_RELEASE 表示请求关闭浏览器并结束会话。";
|
|
5964
5969
|
}];
|
|
5965
5970
|
};
|
|
5971
|
+
}, {
|
|
5972
|
+
readonly resource: "browser.sessions.actions";
|
|
5973
|
+
readonly method: "create";
|
|
5974
|
+
readonly summary: "执行页面动作";
|
|
5975
|
+
readonly description: "在会话的浏览器里执行一个页面动作并返回结果,由浏览器服务执行,客户端不需要 Playwright。同一会话的动作按到达顺序串行执行,单个动作 30 秒内完成。先用 snapshot 读取页面:元素带 [ref=eN],click、fill 按 ref 操作;ref 只在最近一次快照里有效,页面跳转后失效(409 ACTION_REF_STALE,重新 snapshot)。省略 tab 时作用于当前标签页。";
|
|
5976
|
+
readonly http: "POST";
|
|
5977
|
+
readonly path: "/browser/v1/sessions/{sessionId}/actions";
|
|
5978
|
+
readonly streaming: "no";
|
|
5979
|
+
readonly pagination: false;
|
|
5980
|
+
readonly pathParams: readonly [{
|
|
5981
|
+
readonly name: "sessionId";
|
|
5982
|
+
readonly sdkName: "sessionId";
|
|
5983
|
+
readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
|
|
5984
|
+
}];
|
|
5985
|
+
readonly query: readonly [];
|
|
5986
|
+
readonly body: {
|
|
5987
|
+
readonly required: true;
|
|
5988
|
+
readonly fields: readonly [];
|
|
5989
|
+
};
|
|
5966
5990
|
}, {
|
|
5967
5991
|
readonly resource: "browser.sessions";
|
|
5968
5992
|
readonly method: "retrieveDebug";
|
|
@@ -7958,8 +7982,8 @@ export declare const operations: readonly [{
|
|
|
7958
7982
|
}, {
|
|
7959
7983
|
readonly resource: "cut.projects.analysis";
|
|
7960
7984
|
readonly method: "create";
|
|
7961
|
-
readonly summary: "Analyze project media";
|
|
7962
|
-
readonly description: "Request silence, filler-word or
|
|
7985
|
+
readonly summary: "Analyze project media or measure the project mix";
|
|
7986
|
+
readonly description: "Request silence, filler-word, scene or beat analysis for selected bound assets before editing, or measure the mix the timeline itself renders with kind mix. That kind is a render job, not a read: it answers pending with retry_after_sec and an id. Poll by calling this same method again with body { kinds: [\"mix\"], id } (there is no separate retrieve method); that call reads the measurement and renders nothing. The answer only exists once the audio has been rendered and measured. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible. Silence measures transcript-based speech pauses, not music or loudness. A completed transcript without words returns ready with empty segments and reason no_speech; no completed transcript returns unsupported with reason no_transcript. A failed transcription remains failed. kind mix is separate: it reports the project mix loudness, the loudness of each role and where music masks speech, so an editor can fix the mix rather than guess at it.";
|
|
7963
7987
|
readonly http: "POST";
|
|
7964
7988
|
readonly path: "/cut/v1/projects/{project_id}/analysis";
|
|
7965
7989
|
readonly streaming: "no";
|
|
@@ -7982,9 +8006,29 @@ export declare const operations: readonly [{
|
|
|
7982
8006
|
readonly name: "kinds";
|
|
7983
8007
|
readonly type: "array";
|
|
7984
8008
|
readonly itemType: "string";
|
|
7985
|
-
readonly enum: readonly ["silence", "filler", "scenes"];
|
|
8009
|
+
readonly enum: readonly ["silence", "filler", "scenes", "beats", "mix"];
|
|
7986
8010
|
readonly required: true;
|
|
7987
|
-
readonly description: "Analysis types to request
|
|
8011
|
+
readonly description: "Analysis types to request. silence, filler, scenes and beats analyze the selected source assets and are read from the media library; mix measures the project's own rendered mix and is requested on its own.";
|
|
8012
|
+
}, {
|
|
8013
|
+
readonly name: "from";
|
|
8014
|
+
readonly type: "number";
|
|
8015
|
+
readonly required: false;
|
|
8016
|
+
readonly description: "Range start for kind mix, in seconds on the project clock. Omitted with to, the whole timeline is measured, capped at 120 seconds. Ignored by the asset kinds.";
|
|
8017
|
+
}, {
|
|
8018
|
+
readonly name: "to";
|
|
8019
|
+
readonly type: "number";
|
|
8020
|
+
readonly required: false;
|
|
8021
|
+
readonly description: "Range end for kind mix, in seconds on the project clock, exclusive. An end up to 0.05 s past the timeline's end (a rounded duration) is read as the end; further past is refused. A range longer than 120 seconds is refused; request several ranges instead.";
|
|
8022
|
+
}, {
|
|
8023
|
+
readonly name: "revision";
|
|
8024
|
+
readonly type: "integer";
|
|
8025
|
+
readonly required: false;
|
|
8026
|
+
readonly description: "Optional committed project revision to measure; omission uses the current revision. Mix only.";
|
|
8027
|
+
}, {
|
|
8028
|
+
readonly name: "id";
|
|
8029
|
+
readonly type: "string";
|
|
8030
|
+
readonly required: false;
|
|
8031
|
+
readonly description: "Poll one running mix measurement by the id its first call returned. Sending id reads that measurement and renders nothing.";
|
|
7988
8032
|
}];
|
|
7989
8033
|
};
|
|
7990
8034
|
}, {
|
|
@@ -8101,7 +8145,7 @@ export declare const operations: readonly [{
|
|
|
8101
8145
|
readonly name: "folder";
|
|
8102
8146
|
readonly type: "string";
|
|
8103
8147
|
readonly required: false;
|
|
8104
|
-
readonly description: "Optional destination path within the bound media library; omitted uses its default folder.";
|
|
8148
|
+
readonly description: "Optional destination path within the bound media library; omitted uses its default folder. Naming a binding or a folder also imports the finished video into that media library as an asset. Omit both and the export is a file only: read file.url to download it.";
|
|
8105
8149
|
}, {
|
|
8106
8150
|
readonly name: "name";
|
|
8107
8151
|
readonly type: "string";
|
|
@@ -8116,7 +8160,7 @@ export declare const operations: readonly [{
|
|
|
8116
8160
|
readonly name: "binding";
|
|
8117
8161
|
readonly type: "string";
|
|
8118
8162
|
readonly required: false;
|
|
8119
|
-
readonly description: "Writable binding name used as the export destination; omission uses default_upload.";
|
|
8163
|
+
readonly description: "Writable binding name used as the export destination; omission uses default_upload. Naming a binding or a folder also imports the finished video into that media library as an asset. Omit both and the export is a file only; read file.url to download it.";
|
|
8120
8164
|
}, {
|
|
8121
8165
|
readonly name: "revision";
|
|
8122
8166
|
readonly type: "integer";
|
|
@@ -8127,6 +8171,11 @@ export declare const operations: readonly [{
|
|
|
8127
8171
|
readonly type: "object";
|
|
8128
8172
|
readonly required: false;
|
|
8129
8173
|
readonly description: "Loudness normalization target. Omitted, the export is normalized to -14 LUFS integrated and -1 dBTP true peak, the level short-video and streaming platforms play at; null renders without normalization. Normalization adds analysis and rendering work.";
|
|
8174
|
+
}, {
|
|
8175
|
+
readonly name: "poster";
|
|
8176
|
+
readonly type: "object";
|
|
8177
|
+
readonly required: false;
|
|
8178
|
+
readonly description: "Cover frame, in seconds on the project clock. Omitted, the cover is the first frame with picture that is not inside a fade-in or a transition — a black opening no longer makes the library thumbnail black. A frame inside a transition is skipped, and a timeline that is black throughout keeps its first frame (reported as BLACK_FIRST_FRAME). The frame actually used is reported as poster_at on the export.";
|
|
8130
8179
|
}];
|
|
8131
8180
|
};
|
|
8132
8181
|
}, {
|
|
@@ -8197,7 +8246,7 @@ export declare const operations: readonly [{
|
|
|
8197
8246
|
readonly resource: "cut.projects.renders";
|
|
8198
8247
|
readonly method: "create";
|
|
8199
8248
|
readonly summary: "Create draft range render";
|
|
8200
|
-
readonly description: "Render one interval of the timeline so you can hear or look at how that passage comes out, without publishing anything to a media library. Choose kind audio for the mixed soundtrack as an .m4a file, or kind video for a draft-quality .mp4 with picture and sound. from and to are seconds on the project clock and must satisfy 0 <= from < to, to <= the timeline duration, and to - from <= 120; a longer passage is requested in several 分段请求 ranges and joined by the caller. The result is a temporary file (purpose user_data) that expires 24 hours after it is stored and is never imported into a library, so it is not a deliverable and carries no cut-export tag. HTTP 202 only accepts the job; poll praxis.cut.renders.retrieve using the returned id until status is done or failed, then read url while it lasts. A draft also bills like a draft export, by rendered seconds. Each project runs at most 2 draft renders at a time, a budget separate from its exports; a third answers HTTP 429 CUT_BUSY and the same call succeeds once one finishes.";
|
|
8249
|
+
readonly description: "Render one interval of the timeline so you can hear or look at how that passage comes out, without publishing anything to a media library. Choose kind audio for the mixed soundtrack as an .m4a file, or kind video for a draft-quality .mp4 with picture and sound. from and to are seconds on the project clock and must satisfy 0 <= from < to, to <= the timeline duration (an end up to 0.05 s past it, a rounded duration, is read as the end), and to - from <= 120; a longer passage is requested in several 分段请求 ranges and joined by the caller. The result is a temporary file (purpose user_data) that expires 24 hours after it is stored and is never imported into a library, so it is not a deliverable and carries no cut-export tag. HTTP 202 only accepts the job; poll praxis.cut.renders.retrieve using the returned id until status is done or failed, then read url while it lasts. A draft also bills like a draft export, by rendered seconds. Each project runs at most 2 draft renders at a time, a budget separate from its exports; a third answers HTTP 429 CUT_BUSY and the same call succeeds once one finishes.";
|
|
8201
8250
|
readonly http: "POST";
|
|
8202
8251
|
readonly path: "/cut/v1/projects/{project_id}/renders";
|
|
8203
8252
|
readonly streaming: "no";
|
|
@@ -8347,7 +8396,7 @@ export declare const operations: readonly [{
|
|
|
8347
8396
|
readonly resource: "cut.projects";
|
|
8348
8397
|
readonly method: "execute";
|
|
8349
8398
|
readonly summary: "Execute editing script";
|
|
8350
|
-
readonly description: "Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project: `const t = AddTrack(\"video\"); Insert(t, {type: \"color\", color: \"#123456\", start: 0, length: 3}); Print(t);`\n\n<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `
|
|
8399
|
+
readonly description: "Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project: `const t = AddTrack(\"video\"); Insert(t, {type: \"color\", color: \"#123456\", start: 0, length: 3}); Print(t);`\n\n<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `duration` is seconds.\n- `GetTranscript` — Transcript words in source microseconds.\n- `GetAnalysis` — Silence, filler, scene or beat segments.\n- `ListTransitions` — Join transition kinds and parameters.\n- `ListEffects` — Visual-effect catalog and parameters.\n- `ListAnimations` — Animation presets by phase and target.\n- `ListFonts` — Font families, weights and scripts.\n- `ListTextStyles` — Text style presets for `style.preset`.\n- `ListTextTemplates` — Multi-layer templates and their slots.\n- `Insert` — Add a clip; a track never overlaps itself.\n- `Append` — Add a clip at the end of a track.\n- `Update` — Change named fields; the rest stay.\n- `SetSpeed` — Change rate, keeping source or duration.\n- `Delete` — Remove a clip. There is no `Remove`.\n- `Join` — Overlap clips; followers shift, track shortens.\n- `UpdateJoin` — Change a join's length or effect.\n- `DeleteJoin` — Remove a join; restore the butt cut.\n- `Split` — Cut a clip in two at a time.\n- `Trim` — Move one clip edge by seconds.\n- `Move` — Set a clip's start or track.\n- `RippleDeleteRange` — Cut a time range and close the gap.\n- `AddTrack` — Add a video, audio or caption track.\n- `UpdateTrack` — Change a track's name, lock, gain or role.\n- `DeleteTrack` — Remove a track and its clips.\n- `SetSettings` — Change canvas, frame rate or background.\n- `AddCaptionsFromTranscript` — Captions from a clip's kept words.\n- `InsertTemplate` — Insert a template and fill its slots.\n- `AlignCaptions` — Rebuild captions from text punctuation.\n- `ImportCaptions` — Import SRT or WebVTT onto captions.\n- `ExportCaptions` — Export captions as SRT or WebVTT.\n- `SetMarker` — Label a timeline position.\n- `Print` — Append values to the result's `prints`.\n- `Preview` — Up to 8 frames as inline PNG data URLs.\n\n#### Fields (fields)\n\n- `type` — Clip kind; decides which fields apply.\n- `start` — Clip start in seconds; snaps to frames.\n- `length` — Duration; video and audio may omit it or write \"auto\".\n- `media` — Source `{ libraryId, assetId }`.\n- `sourceIn` — First source second kept; default 0.\n- `sourceOut` — Exclusive source end; read-only.\n- `text` — Text of a text or caption clip.\n- `color` — Solid colour of a color clip.\n- `shape` — Shape clip kind: `rect` or `ellipse`.\n- `width` — Shape width, a fraction of canvas width.\n- `height` — Shape height, a fraction of canvas height.\n- `radius` — Rect corner rounding, in 1080-height px.\n- `fill` — Shape or text paint: colour or gradient.\n- `stroke` — Shape outline: colour and width.\n- `transform` — Position, scale, rotation, opacity, crop, blur.\n- `fit` — contain, cover, fill or none.\n- `blend` — Layer blend mode; null clears.\n- `style` — Text styling: font, fill, strokes, glow, position.\n- `style.position` — top, middle or bottom; omit it, never null.\n- `playback` — Rate, direction, audio policy, or freeze.\n- `volumeDb` — Audio level in dB; 0 is source level.\n- `gain` — Keyframed audio level in dB.\n- `fadeIn` — Fade-in seconds at the clip's start.\n- `fadeOut` — Fade-out seconds at the clip's end.\n- `duck` — Lower this clip while another track plays.\n- `animate` — Transform keyframes; `at` is clip-relative seconds.\n- `reveal` — Per-character, word or line reveal timing.\n- `animation` — Preset slots `{ in, out, loop }`; null clears.\n- `effects` — Effect stack, at most 8; null clears.\n- `transitionIn` — Entrance effect: kind plus seconds.\n- `transitionOut` — Exit effect: kind plus seconds.\n- `mask` — Shape, path or track matte.\n- `words` — Caption words with clip-local times.\n\n#### Error codes (errors)\n\n- `JOIN_CONFLICT` — A join is invalid or blocks this edit.\n- `INVALID_TRANSITION` — Bad transition kind, parameter or length.\n- `INVALID_STYLE` — A style value is out of range.\n- `INVALID_MASK` — A mask definition is malformed.\n- `MASK_IN_USE` — The edit would break a live mask.\n- `TOO_MANY_MASKS` — At most 16 masks per project.\n- `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.\n- `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.\n- `INVALID_PLAYBACK` — A playback object is partial or malformed.\n- `UNKNOWN_FONT` — The family is not in `ListFonts()`.\n- `UNKNOWN_FIELD` — The field name is not accepted here.\n- `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.\n- `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.\n- `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.\n- `OVERLAP` — Two clips on one track would share time.\n- `OUT_OF_SOURCE` — The clip would read past its source.\n- `LOCKED_TRACK` — The edit targets a locked track.\n- `UNBOUND_LIBRARY` — The library is not bound to the project.\n- `TRACK_KIND_MISMATCH` — The clip type does not fit the track.\n- `NOT_FOUND` — The named id is not in this project.\n- `TOO_SHORT` — The result would be under one frame.\n- `INVALID_DUCK` — Bad `duck` level or a missing track.\n- `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.\n- `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.\n- `ANIMATION_TOO_LONG` — In plus out exceed the clip length.\n- `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.\n- `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.\n- `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.\n- `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.\n- `TOO_MANY_EFFECTS` — More than 8 effects on one clip.\n- `PROJECT_NOT_FOUND` — No visible project has this id.\n- `EXPORT_NOT_FOUND` — No such export in this project.\n- `DRAFT_RENDER_NOT_FOUND` — No such draft render.\n- `VERSION_NOT_FOUND` — No saved version has this revision.\n- `LIBRARY_NOT_FOUND` — The library is missing or invisible.\n- `BINDING_INVALID` — The binding request is malformed.\n- `BINDING_IN_USE` — Clips still use this library's assets.\n- `NOTHING_TO_UNDO` — No earlier revision to return to.\n- `NOTHING_TO_REDO` — No undone revision is waiting.\n- `UNDO_CONFLICT` — The revision to undo is no longer head.\n- `REVISION_CONFLICT` — The project moved; your revision is stale.\n- `CUT_BUSY` — The project is busy; retry.\n- `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.\n- `SCRIPT_ERROR` — The script threw or did not parse.\n- `SCRIPT_LIMIT` — An execute budget was exceeded.\n- `OPS_REJECTED` — An op failed; the whole edit rolled back.\n- `EDIT_EXPIRED` — The saved edit id is over ten minutes old.\n- `MEDIA_NOT_FOUND` — The asset id is not in that library.\n- `MEDIA_OFFLINE` — The asset cannot be fetched right now.\n- `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.\n- `MEDIA_IMPORT_FAILED` — Importing media failed.\n- `FRAME_OUT_OF_RANGE` — The preview time is outside the project.\n- `PROJECT_TOO_LARGE` — The project exceeds the size limit.\n- `RESPONSE_TOO_LARGE` — The response would exceed its budget.\n- `EXPORT_FAILED` — The render failed; read `error.cause`.\n- `INVALID_PARAMS` — The request is malformed.\n- `PERMISSION_DENIED` — This credential may not do that here.\n- `NOT_IMPLEMENTED` — Not available on this platform yet.\n- `INTERNAL` — Unexpected failure; retry with the request id.\n<!-- cut-reference:end -->\n";
|
|
8351
8400
|
readonly http: "POST";
|
|
8352
8401
|
readonly path: "/cut/v1/projects/{project_id}:execute";
|
|
8353
8402
|
readonly streaming: "no";
|
|
@@ -9367,7 +9416,7 @@ export declare const operations: readonly [{
|
|
|
9367
9416
|
readonly resource: "devops.projects.testReports";
|
|
9368
9417
|
readonly method: "create";
|
|
9369
9418
|
readonly summary: "Upload an external test report";
|
|
9370
|
-
readonly description: "Record the results of a run executed outside Praxis by uploading a CTRF or JUnit report.
|
|
9419
|
+
readonly description: "Record the results of a run executed outside Praxis by uploading a CTRF or JUnit report. Nothing has to exist first: a first upload from CI creates the run it reports on (executor external) and catalogues the cases the report names, so there is no setup call before the first result. When the report already belongs to a run, pass ref and the upload joins it; the run's counts and verdict are recomputed from the report. Uploading the same reportId again is idempotent and counts once, so a retry after a timeout is safe — and a reported case is catalogued once, however many reports carry it. The report's bytes are kept as a file (the file field of the answer) rather than in the results database, so the original document stays retrievable.";
|
|
9371
9420
|
readonly http: "POST";
|
|
9372
9421
|
readonly path: "/devops/v1/projects/{project}/test-reports";
|
|
9373
9422
|
readonly streaming: "no";
|
|
@@ -9442,7 +9491,7 @@ export declare const operations: readonly [{
|
|
|
9442
9491
|
readonly resource: "devops.projects.testRuns";
|
|
9443
9492
|
readonly method: "create";
|
|
9444
9493
|
readonly summary: "Create a test run";
|
|
9445
|
-
readonly description: "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued returns as soon as the run exists, finished waits for a verdict and
|
|
9494
|
+
readonly description: "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued, the default, returns as soon as the run exists; started waits until the run has begun, except for an external run, which is answered at once because it leaves queued only when your own CI uploads; finished waits for a verdict. The wait is bounded at about 25 seconds, and a wait that reaches that bound returns the run as it stands rather than failing — read state to see whether it finished. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.";
|
|
9446
9495
|
readonly http: "POST";
|
|
9447
9496
|
readonly path: "/devops/v1/projects/{project}/test-runs";
|
|
9448
9497
|
readonly streaming: "no";
|
|
@@ -9485,7 +9534,18 @@ export declare const operations: readonly [{
|
|
|
9485
9534
|
readonly type: "string";
|
|
9486
9535
|
readonly enum: readonly ["queued", "started", "finished"];
|
|
9487
9536
|
readonly required: false;
|
|
9488
|
-
readonly description: "How far the call waits before answering
|
|
9537
|
+
readonly description: "How far the call waits before answering, bounded at about 25 seconds; omit it for queued, which returns at once. The wait reads the run's own state, so a wait that reaches the bound returns the run as it stands instead of failing — check state before assuming the request was honoured.";
|
|
9538
|
+
}, {
|
|
9539
|
+
readonly name: "executor";
|
|
9540
|
+
readonly type: "string";
|
|
9541
|
+
readonly enum: readonly ["cloud", "external"];
|
|
9542
|
+
readonly required: false;
|
|
9543
|
+
readonly description: "Who carries the run out. cloud, the default, runs the selected cases in Praxis at the commit; external creates a run that waits for your own CI to upload a report with test-reports.";
|
|
9544
|
+
}, {
|
|
9545
|
+
readonly name: "requestId";
|
|
9546
|
+
readonly type: "string";
|
|
9547
|
+
readonly required: false;
|
|
9548
|
+
readonly description: "A key you choose to make creating this run idempotent: repeating the call with the same requestId returns the run it created instead of starting another, so a retry after a timeout is safe.";
|
|
9489
9549
|
}];
|
|
9490
9550
|
};
|
|
9491
9551
|
}, {
|
|
@@ -9706,6 +9766,11 @@ export declare const operations: readonly [{
|
|
|
9706
9766
|
readonly type: "string";
|
|
9707
9767
|
readonly required: false;
|
|
9708
9768
|
readonly description: "The cursor from the previous page's nextPageToken. Treat it as opaque and never build one yourself; omit it for the first page.";
|
|
9769
|
+
}, {
|
|
9770
|
+
readonly name: "filter";
|
|
9771
|
+
readonly type: "string";
|
|
9772
|
+
readonly required: false;
|
|
9773
|
+
readonly description: "AIP-160 equality filter over one declared field, for example result=failed to read only a run's failures. Fields an execution list does not declare are refused with INVALID_ARGUMENT rather than ignored.";
|
|
9709
9774
|
}, {
|
|
9710
9775
|
readonly name: "orderBy";
|
|
9711
9776
|
readonly type: "string";
|
|
@@ -13908,6 +13973,47 @@ export declare const operations: readonly [{
|
|
|
13908
13973
|
readonly description: "Node id that should survive, from nodes.list or search; the merged node's relations and aliases move to it.";
|
|
13909
13974
|
}];
|
|
13910
13975
|
};
|
|
13976
|
+
}, {
|
|
13977
|
+
readonly resource: "ontology.nodes";
|
|
13978
|
+
readonly method: "retrieveNeighborhood";
|
|
13979
|
+
readonly summary: "Retrieve neighborhood";
|
|
13980
|
+
readonly description: "Load the subgraph around one node instead of the whole graph — the read to use when a screen or an agent needs the context of one entity. Returns the start node, every node within depth hops of it, the relations whose both ends are in that set, and truncated true when the node limit cut the walk short. direction chooses which way relations are followed; as_of and include_invalid read the graph as those parameters do elsewhere. Visibility is exactly nodes.retrieve's — a node you may reach but not read comes back restricted with its name only, and relations touching it are withheld, so this read never reaches further than a node read does. The node id comes from nodes.list, nodes.create or a changeset; an unknown one answers ONTOLOGY_NODE_NOT_FOUND, the same answer nodes.retrieve gives.";
|
|
13981
|
+
readonly http: "GET";
|
|
13982
|
+
readonly path: "/ontology/v1/nodes/{node_id}/neighborhood";
|
|
13983
|
+
readonly streaming: "no";
|
|
13984
|
+
readonly pagination: false;
|
|
13985
|
+
readonly pathParams: readonly [{
|
|
13986
|
+
readonly name: "node_id";
|
|
13987
|
+
readonly sdkName: "node_id";
|
|
13988
|
+
readonly description: "Node id returned by nodes.list, nodes.create or a changeset, in the form ond_ followed by 32 lowercase letters or digits; a name or an external record id is not accepted.";
|
|
13989
|
+
}];
|
|
13990
|
+
readonly query: readonly [{
|
|
13991
|
+
readonly name: "depth";
|
|
13992
|
+
readonly type: "integer";
|
|
13993
|
+
readonly required: false;
|
|
13994
|
+
readonly description: "How many hops from the given node to walk, 1 to 3; defaults to 1. A value outside that range is refused 400 rather than clamped, so the answer is never a smaller graph than the one asked for.";
|
|
13995
|
+
}, {
|
|
13996
|
+
readonly name: "limit";
|
|
13997
|
+
readonly type: "integer";
|
|
13998
|
+
readonly required: false;
|
|
13999
|
+
readonly description: "Maximum nodes to return, 1 to 500; defaults to 200. When the walk reaches this many nodes it stops and reports truncated true, so treat a truncated answer as a sample of the neighborhood rather than all of it. This bound is not the list routes' page size, and there is no cursor to resume from.";
|
|
14000
|
+
}, {
|
|
14001
|
+
readonly name: "direction";
|
|
14002
|
+
readonly type: "string";
|
|
14003
|
+
readonly enum: readonly ["out", "in", "both"];
|
|
14004
|
+
readonly required: false;
|
|
14005
|
+
readonly description: "Which way to follow relations from each node walked; out follows relations the node is the source of, in follows those it is the target of, both follows either. Defaults to both. Relations between two returned nodes are included whichever direction brought the second node in.";
|
|
14006
|
+
}, {
|
|
14007
|
+
readonly name: "as_of";
|
|
14008
|
+
readonly type: "string";
|
|
14009
|
+
readonly required: false;
|
|
14010
|
+
readonly description: "ISO 8601 timestamp; walk the graph as it was then — a node recorded later is absent and a relation invalidated since still counts. Omit to read current state.";
|
|
14011
|
+
}, {
|
|
14012
|
+
readonly name: "include_invalid";
|
|
14013
|
+
readonly type: "boolean";
|
|
14014
|
+
readonly required: false;
|
|
14015
|
+
readonly description: "Set true to walk relations whose invalid_at has passed, which is how a fact that stopped being true stays reachable. Omit or false to walk currently valid relations only.";
|
|
14016
|
+
}];
|
|
13911
14017
|
}, {
|
|
13912
14018
|
readonly resource: "ontology.relations";
|
|
13913
14019
|
readonly method: "list";
|
|
@@ -15982,6 +16088,1718 @@ export declare const operations: readonly [{
|
|
|
15982
16088
|
readonly description: "Whether to filter out adult or unsafe content from results. Not supported for `fast` or `ultra-fast` search depths.";
|
|
15983
16089
|
}];
|
|
15984
16090
|
};
|
|
16091
|
+
}, {
|
|
16092
|
+
readonly resource: "studio.codexes";
|
|
16093
|
+
readonly method: "list";
|
|
16094
|
+
readonly summary: "List the reference libraries of this organization";
|
|
16095
|
+
readonly description: "List the reference libraries this API key organization owns, each with how many entries it holds, so you can choose the one a work draws on. Continue with next_page_token until the answer stops carrying one. A library is shared across works, so the list is the whole organization's rather than one work's.";
|
|
16096
|
+
readonly http: "GET";
|
|
16097
|
+
readonly path: "/studio/v1/codexes";
|
|
16098
|
+
readonly streaming: "no";
|
|
16099
|
+
readonly pagination: false;
|
|
16100
|
+
readonly pathParams: readonly [];
|
|
16101
|
+
readonly query: readonly [{
|
|
16102
|
+
readonly name: "page_size";
|
|
16103
|
+
readonly type: "integer";
|
|
16104
|
+
readonly required: false;
|
|
16105
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16106
|
+
}, {
|
|
16107
|
+
readonly name: "page_token";
|
|
16108
|
+
readonly type: "string";
|
|
16109
|
+
readonly required: false;
|
|
16110
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16111
|
+
}];
|
|
16112
|
+
}, {
|
|
16113
|
+
readonly resource: "studio.codexes";
|
|
16114
|
+
readonly method: "create";
|
|
16115
|
+
readonly summary: "Create a reference library";
|
|
16116
|
+
readonly description: "Create a reference library: a shared store of the people, places, products and facts a piece draws on, reusable across works. Attach it to a work with the work update call, and the entries it holds then reach the context packs of that work's units. A library is not private to one work, so the same brand facts can serve every piece that mentions them.";
|
|
16117
|
+
readonly http: "POST";
|
|
16118
|
+
readonly path: "/studio/v1/codexes";
|
|
16119
|
+
readonly streaming: "no";
|
|
16120
|
+
readonly pagination: false;
|
|
16121
|
+
readonly pathParams: readonly [];
|
|
16122
|
+
readonly query: readonly [];
|
|
16123
|
+
readonly body: {
|
|
16124
|
+
readonly required: true;
|
|
16125
|
+
readonly fields: readonly [{
|
|
16126
|
+
readonly name: "name";
|
|
16127
|
+
readonly type: "string";
|
|
16128
|
+
readonly required: true;
|
|
16129
|
+
readonly description: "Name of the new library, written so a person can tell it apart from the organization's other libraries.";
|
|
16130
|
+
}, {
|
|
16131
|
+
readonly name: "description";
|
|
16132
|
+
readonly type: "string";
|
|
16133
|
+
readonly required: false;
|
|
16134
|
+
readonly description: "What this library is for; it is shown wherever the library is chosen and reaches nobody's context pack by itself.";
|
|
16135
|
+
}, {
|
|
16136
|
+
readonly name: "labels";
|
|
16137
|
+
readonly type: "object";
|
|
16138
|
+
readonly required: false;
|
|
16139
|
+
readonly description: "Caller-chosen key and value pairs kept on a resource; the keys are the caller's own names and no platform meaning is attached to them.";
|
|
16140
|
+
}];
|
|
16141
|
+
};
|
|
16142
|
+
}, {
|
|
16143
|
+
readonly resource: "studio.codexes";
|
|
16144
|
+
readonly method: "delete";
|
|
16145
|
+
readonly summary: "Delete a reference library";
|
|
16146
|
+
readonly description: "Delete a library and every entry inside it. A library attached to any work is refused with CODEX_IN_USE, because deleting it would silently strip the reference material those units draw on; detach it from the work first. This cannot be undone, so confirm which library the identifier names.";
|
|
16147
|
+
readonly http: "DELETE";
|
|
16148
|
+
readonly path: "/studio/v1/codexes/{codex}";
|
|
16149
|
+
readonly streaming: "no";
|
|
16150
|
+
readonly pagination: false;
|
|
16151
|
+
readonly pathParams: readonly [{
|
|
16152
|
+
readonly name: "codex";
|
|
16153
|
+
readonly sdkName: "codex";
|
|
16154
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16155
|
+
}];
|
|
16156
|
+
readonly query: readonly [];
|
|
16157
|
+
}, {
|
|
16158
|
+
readonly resource: "studio.codexes";
|
|
16159
|
+
readonly method: "retrieve";
|
|
16160
|
+
readonly summary: "Read one reference library";
|
|
16161
|
+
readonly description: "Read one reference library: its name, its description, its labels and how many entries it holds. Read this to confirm a library exists before attaching it to a work; the entries themselves are listed with the entry list call, because a library may hold more of them than fit in one answer.";
|
|
16162
|
+
readonly http: "GET";
|
|
16163
|
+
readonly path: "/studio/v1/codexes/{codex}";
|
|
16164
|
+
readonly streaming: "no";
|
|
16165
|
+
readonly pagination: false;
|
|
16166
|
+
readonly pathParams: readonly [{
|
|
16167
|
+
readonly name: "codex";
|
|
16168
|
+
readonly sdkName: "codex";
|
|
16169
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16170
|
+
}];
|
|
16171
|
+
readonly query: readonly [];
|
|
16172
|
+
}, {
|
|
16173
|
+
readonly resource: "studio.codexes";
|
|
16174
|
+
readonly method: "update";
|
|
16175
|
+
readonly summary: "Rename a reference library or change its description";
|
|
16176
|
+
readonly description: "Change the library itself: its name, its description or its labels. Send update_mask naming exactly the fields you change; a field left out keeps its value. The entries inside are untouched, and a work that has the library attached keeps it attached under the new name.";
|
|
16177
|
+
readonly http: "PATCH";
|
|
16178
|
+
readonly path: "/studio/v1/codexes/{codex}";
|
|
16179
|
+
readonly streaming: "no";
|
|
16180
|
+
readonly pagination: false;
|
|
16181
|
+
readonly pathParams: readonly [{
|
|
16182
|
+
readonly name: "codex";
|
|
16183
|
+
readonly sdkName: "codex";
|
|
16184
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16185
|
+
}];
|
|
16186
|
+
readonly query: readonly [];
|
|
16187
|
+
readonly body: {
|
|
16188
|
+
readonly required: true;
|
|
16189
|
+
readonly fields: readonly [{
|
|
16190
|
+
readonly name: "updateMask";
|
|
16191
|
+
readonly type: "array";
|
|
16192
|
+
readonly itemType: "string";
|
|
16193
|
+
readonly required: true;
|
|
16194
|
+
readonly description: "Field paths this call changes, such as name, description or labels; a field left out keeps its value.";
|
|
16195
|
+
}, {
|
|
16196
|
+
readonly name: "name";
|
|
16197
|
+
readonly type: "string";
|
|
16198
|
+
readonly required: false;
|
|
16199
|
+
readonly description: "New name of the library, replacing the previous one when name is named in the update mask.";
|
|
16200
|
+
}, {
|
|
16201
|
+
readonly name: "description";
|
|
16202
|
+
readonly type: "string";
|
|
16203
|
+
readonly required: false;
|
|
16204
|
+
readonly description: "New description of what the library is for; it replaces the previous description rather than appending to it.";
|
|
16205
|
+
}, {
|
|
16206
|
+
readonly name: "labels";
|
|
16207
|
+
readonly type: "object";
|
|
16208
|
+
readonly required: false;
|
|
16209
|
+
readonly description: "Caller-chosen key and value pairs kept on a resource; the keys are the caller's own names and no platform meaning is attached to them.";
|
|
16210
|
+
}];
|
|
16211
|
+
};
|
|
16212
|
+
}, {
|
|
16213
|
+
readonly resource: "studio.codexes.entries";
|
|
16214
|
+
readonly method: "list";
|
|
16215
|
+
readonly summary: "List the entries of a reference library";
|
|
16216
|
+
readonly description: "List the entries of one library in pages, each with its type, its name, its aliases and whether it is always present in context. Use it to see what a work already knows before adding an entry, since a duplicate name is refused rather than merged. Continue with next_page_token until the answer stops carrying one.";
|
|
16217
|
+
readonly http: "GET";
|
|
16218
|
+
readonly path: "/studio/v1/codexes/{codex}/entries";
|
|
16219
|
+
readonly streaming: "no";
|
|
16220
|
+
readonly pagination: false;
|
|
16221
|
+
readonly pathParams: readonly [{
|
|
16222
|
+
readonly name: "codex";
|
|
16223
|
+
readonly sdkName: "codex";
|
|
16224
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16225
|
+
}];
|
|
16226
|
+
readonly query: readonly [{
|
|
16227
|
+
readonly name: "page_size";
|
|
16228
|
+
readonly type: "integer";
|
|
16229
|
+
readonly required: false;
|
|
16230
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16231
|
+
}, {
|
|
16232
|
+
readonly name: "page_token";
|
|
16233
|
+
readonly type: "string";
|
|
16234
|
+
readonly required: false;
|
|
16235
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16236
|
+
}];
|
|
16237
|
+
}, {
|
|
16238
|
+
readonly resource: "studio.codexes.entries";
|
|
16239
|
+
readonly method: "create";
|
|
16240
|
+
readonly summary: "Add an entry to a reference library";
|
|
16241
|
+
readonly description: "Add one entry: a character, a place, a product, a source of facts. Give it the type the genre uses, the name the text will mention, and the description and facts that should reach a writer when it is mentioned. Aliases and excluded phrases keep detection honest, so a common word inside an idiom is not mistaken for the entry. A name already used in the library is refused.";
|
|
16242
|
+
readonly http: "POST";
|
|
16243
|
+
readonly path: "/studio/v1/codexes/{codex}/entries";
|
|
16244
|
+
readonly streaming: "no";
|
|
16245
|
+
readonly pagination: false;
|
|
16246
|
+
readonly pathParams: readonly [{
|
|
16247
|
+
readonly name: "codex";
|
|
16248
|
+
readonly sdkName: "codex";
|
|
16249
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16250
|
+
}];
|
|
16251
|
+
readonly query: readonly [];
|
|
16252
|
+
readonly body: {
|
|
16253
|
+
readonly required: true;
|
|
16254
|
+
readonly fields: readonly [{
|
|
16255
|
+
readonly name: "type";
|
|
16256
|
+
readonly type: "string";
|
|
16257
|
+
readonly enum: readonly ["character", "location", "item", "lore", "event", "source", "fact", "reference", "product", "audience", "brand", "persona", "footage"];
|
|
16258
|
+
readonly required: true;
|
|
16259
|
+
readonly description: "What kind of thing this entry is, from the types the genre's libraries carry.";
|
|
16260
|
+
}, {
|
|
16261
|
+
readonly name: "name";
|
|
16262
|
+
readonly type: "string";
|
|
16263
|
+
readonly required: true;
|
|
16264
|
+
readonly description: "Name as the text will mention it; it must be unique inside this library after normalization, and it is what a unit claims when it links this entry.";
|
|
16265
|
+
}, {
|
|
16266
|
+
readonly name: "aliases";
|
|
16267
|
+
readonly type: "array";
|
|
16268
|
+
readonly itemType: "string";
|
|
16269
|
+
readonly required: false;
|
|
16270
|
+
readonly description: "Other spellings the text may use, each matched like the name; use them instead of adding a second entry for the same thing.";
|
|
16271
|
+
}, {
|
|
16272
|
+
readonly name: "case_sensitive";
|
|
16273
|
+
readonly type: "boolean";
|
|
16274
|
+
readonly required: false;
|
|
16275
|
+
readonly description: "Whether matching distinguishes letter case; leave it false unless the name collides with an ordinary word in another case.";
|
|
16276
|
+
}, {
|
|
16277
|
+
readonly name: "exclude_phrases";
|
|
16278
|
+
readonly type: "array";
|
|
16279
|
+
readonly itemType: "string";
|
|
16280
|
+
readonly required: false;
|
|
16281
|
+
readonly description: "Phrases in which this name must not count as a mention, such as a longer idiom containing it.";
|
|
16282
|
+
}, {
|
|
16283
|
+
readonly name: "description";
|
|
16284
|
+
readonly type: "string";
|
|
16285
|
+
readonly required: false;
|
|
16286
|
+
readonly description: "What a writer should know, in the words the piece should be able to use; this text reaches the context pack.";
|
|
16287
|
+
}, {
|
|
16288
|
+
readonly name: "facts";
|
|
16289
|
+
readonly type: "object";
|
|
16290
|
+
readonly required: false;
|
|
16291
|
+
readonly description: "Fact ledger entries for this entry, keyed by the caller's own names; they reach the context pack and are compared for consistency.";
|
|
16292
|
+
}, {
|
|
16293
|
+
readonly name: "notes";
|
|
16294
|
+
readonly type: "string";
|
|
16295
|
+
readonly required: false;
|
|
16296
|
+
readonly description: "Notes for people only, which never reach a writer's context pack.";
|
|
16297
|
+
}, {
|
|
16298
|
+
readonly name: "tracking";
|
|
16299
|
+
readonly type: "string";
|
|
16300
|
+
readonly enum: readonly ["always", "when_mentioned", "never"];
|
|
16301
|
+
readonly required: false;
|
|
16302
|
+
readonly description: "When this entry reaches a context pack; when_mentioned is the default and keeps the pack small.";
|
|
16303
|
+
}, {
|
|
16304
|
+
readonly name: "relations";
|
|
16305
|
+
readonly type: "array";
|
|
16306
|
+
readonly itemType: "object";
|
|
16307
|
+
readonly required: false;
|
|
16308
|
+
readonly description: "Entries this one relates to at creation, each naming the target and the label that reads from this entry to it.";
|
|
16309
|
+
}, {
|
|
16310
|
+
readonly name: "images";
|
|
16311
|
+
readonly type: "array";
|
|
16312
|
+
readonly itemType: "string";
|
|
16313
|
+
readonly required: false;
|
|
16314
|
+
readonly description: "Images to attach, referenced by file identifiers that belong to this organization.";
|
|
16315
|
+
}];
|
|
16316
|
+
};
|
|
16317
|
+
}, {
|
|
16318
|
+
readonly resource: "studio.codexes.entries";
|
|
16319
|
+
readonly method: "delete";
|
|
16320
|
+
readonly summary: "Delete a reference entry";
|
|
16321
|
+
readonly description: "Delete one entry from a library, which also removes the mentions and the links that pointed at it. Units that claimed it keep their text; only the reference goes away. This cannot be undone, so confirm the name of the entry before deleting it, and prefer changing its tracking setting to never when it should stop reaching writers but stay recorded.";
|
|
16322
|
+
readonly http: "DELETE";
|
|
16323
|
+
readonly path: "/studio/v1/codexes/{codex}/entries/{entry}";
|
|
16324
|
+
readonly streaming: "no";
|
|
16325
|
+
readonly pagination: false;
|
|
16326
|
+
readonly pathParams: readonly [{
|
|
16327
|
+
readonly name: "codex";
|
|
16328
|
+
readonly sdkName: "codex";
|
|
16329
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16330
|
+
}, {
|
|
16331
|
+
readonly name: "entry";
|
|
16332
|
+
readonly sdkName: "entry";
|
|
16333
|
+
readonly description: "Entry being addressed, by its name inside this library or by its ent_ identifier; a name containing a slash is passed by identifier instead.";
|
|
16334
|
+
}];
|
|
16335
|
+
readonly query: readonly [];
|
|
16336
|
+
}, {
|
|
16337
|
+
readonly resource: "studio.codexes.entries";
|
|
16338
|
+
readonly method: "retrieve";
|
|
16339
|
+
readonly summary: "Read one reference entry";
|
|
16340
|
+
readonly description: "Read one entry in full: its description, its fact ledger, its relations to other entries, its detection settings and its images. Read it before changing it, because an update replaces the fields it names rather than merging them. The entry is addressed by its name in this library, or by its ent_ identifier.";
|
|
16341
|
+
readonly http: "GET";
|
|
16342
|
+
readonly path: "/studio/v1/codexes/{codex}/entries/{entry}";
|
|
16343
|
+
readonly streaming: "no";
|
|
16344
|
+
readonly pagination: false;
|
|
16345
|
+
readonly pathParams: readonly [{
|
|
16346
|
+
readonly name: "codex";
|
|
16347
|
+
readonly sdkName: "codex";
|
|
16348
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16349
|
+
}, {
|
|
16350
|
+
readonly name: "entry";
|
|
16351
|
+
readonly sdkName: "entry";
|
|
16352
|
+
readonly description: "Entry being addressed, by its name inside this library or by its ent_ identifier; a name containing a slash is passed by identifier instead.";
|
|
16353
|
+
}];
|
|
16354
|
+
readonly query: readonly [];
|
|
16355
|
+
}, {
|
|
16356
|
+
readonly resource: "studio.codexes.entries";
|
|
16357
|
+
readonly method: "update";
|
|
16358
|
+
readonly summary: "Change what a reference entry says";
|
|
16359
|
+
readonly description: "Change one entry: its type, its name, its aliases, its description, its facts, its notes, its tracking setting, its images or its relations. Send update_mask naming exactly the fields you change, because a field the mask leaves out keeps its value while a list field the mask names is replaced whole. Renaming an entry changes what the text has to mention for detection to find it.";
|
|
16360
|
+
readonly http: "PATCH";
|
|
16361
|
+
readonly path: "/studio/v1/codexes/{codex}/entries/{entry}";
|
|
16362
|
+
readonly streaming: "no";
|
|
16363
|
+
readonly pagination: false;
|
|
16364
|
+
readonly pathParams: readonly [{
|
|
16365
|
+
readonly name: "codex";
|
|
16366
|
+
readonly sdkName: "codex";
|
|
16367
|
+
readonly description: "Reference library being addressed, given by its cdx_ identifier; a library has no name-based address, so read the library list first when only the name is known.";
|
|
16368
|
+
}, {
|
|
16369
|
+
readonly name: "entry";
|
|
16370
|
+
readonly sdkName: "entry";
|
|
16371
|
+
readonly description: "Entry being addressed, by its name inside this library or by its ent_ identifier; a name containing a slash is passed by identifier instead.";
|
|
16372
|
+
}];
|
|
16373
|
+
readonly query: readonly [];
|
|
16374
|
+
readonly body: {
|
|
16375
|
+
readonly required: true;
|
|
16376
|
+
readonly fields: readonly [{
|
|
16377
|
+
readonly name: "updateMask";
|
|
16378
|
+
readonly type: "array";
|
|
16379
|
+
readonly itemType: "string";
|
|
16380
|
+
readonly required: true;
|
|
16381
|
+
readonly description: "Field paths this call changes, such as name, description or facts.成立年份; a field left out keeps its value, and a list field named here is replaced whole.";
|
|
16382
|
+
}, {
|
|
16383
|
+
readonly name: "type";
|
|
16384
|
+
readonly type: "string";
|
|
16385
|
+
readonly enum: readonly ["character", "location", "item", "lore", "event", "source", "fact", "reference", "product", "audience", "brand", "persona", "footage"];
|
|
16386
|
+
readonly required: false;
|
|
16387
|
+
readonly description: "New kind for this entry, which changes how it is shown and how genres treat it.";
|
|
16388
|
+
}, {
|
|
16389
|
+
readonly name: "name";
|
|
16390
|
+
readonly type: "string";
|
|
16391
|
+
readonly required: false;
|
|
16392
|
+
readonly description: "New name for this entry, which also changes what the text has to mention for detection to find it.";
|
|
16393
|
+
}, {
|
|
16394
|
+
readonly name: "aliases";
|
|
16395
|
+
readonly type: "array";
|
|
16396
|
+
readonly itemType: "string";
|
|
16397
|
+
readonly required: false;
|
|
16398
|
+
readonly description: "Complete set of aliases, replacing the previous ones.";
|
|
16399
|
+
}, {
|
|
16400
|
+
readonly name: "case_sensitive";
|
|
16401
|
+
readonly type: "boolean";
|
|
16402
|
+
readonly required: false;
|
|
16403
|
+
readonly description: "Whether matching distinguishes letter case.";
|
|
16404
|
+
}, {
|
|
16405
|
+
readonly name: "exclude_phrases";
|
|
16406
|
+
readonly type: "array";
|
|
16407
|
+
readonly itemType: "string";
|
|
16408
|
+
readonly required: false;
|
|
16409
|
+
readonly description: "Complete set of phrases in which this name must not count as a mention.";
|
|
16410
|
+
}, {
|
|
16411
|
+
readonly name: "description";
|
|
16412
|
+
readonly type: "string";
|
|
16413
|
+
readonly required: false;
|
|
16414
|
+
readonly description: "New text a writer should know, replacing the previous description rather than appending to it.";
|
|
16415
|
+
}, {
|
|
16416
|
+
readonly name: "facts";
|
|
16417
|
+
readonly type: "object";
|
|
16418
|
+
readonly required: false;
|
|
16419
|
+
readonly description: "Complete fact ledger for this entry, replacing the previous one, so a fact removed here stops reaching writers.";
|
|
16420
|
+
}, {
|
|
16421
|
+
readonly name: "notes";
|
|
16422
|
+
readonly type: "string";
|
|
16423
|
+
readonly required: false;
|
|
16424
|
+
readonly description: "New notes for people only, which never reach a writer's context pack.";
|
|
16425
|
+
}, {
|
|
16426
|
+
readonly name: "tracking";
|
|
16427
|
+
readonly type: "string";
|
|
16428
|
+
readonly enum: readonly ["always", "when_mentioned", "never"];
|
|
16429
|
+
readonly required: false;
|
|
16430
|
+
readonly description: "When this entry reaches a context pack.";
|
|
16431
|
+
}, {
|
|
16432
|
+
readonly name: "relations";
|
|
16433
|
+
readonly type: "array";
|
|
16434
|
+
readonly itemType: "object";
|
|
16435
|
+
readonly required: false;
|
|
16436
|
+
readonly description: "Complete relation set for this entry, replacing the previous one; leave it out to keep the relations as they are.";
|
|
16437
|
+
}, {
|
|
16438
|
+
readonly name: "images";
|
|
16439
|
+
readonly type: "array";
|
|
16440
|
+
readonly itemType: "string";
|
|
16441
|
+
readonly required: false;
|
|
16442
|
+
readonly description: "Complete set of images, replacing the previous ones.";
|
|
16443
|
+
}];
|
|
16444
|
+
};
|
|
16445
|
+
}, {
|
|
16446
|
+
readonly resource: "studio.genres";
|
|
16447
|
+
readonly method: "list";
|
|
16448
|
+
readonly summary: "List the genres Studio can write";
|
|
16449
|
+
readonly description: "List the genre catalog so you can choose how a piece is structured before creating a draft. Each genre names its unit kinds, draft properties, deterministic checks and writing rules, and by default only the genres open today are returned. Read the chosen genre in full with studioGenresGet before the first write, because its kinds and limits decide what that draft accepts.";
|
|
16450
|
+
readonly http: "GET";
|
|
16451
|
+
readonly path: "/studio/v1/genres";
|
|
16452
|
+
readonly streaming: "no";
|
|
16453
|
+
readonly pagination: false;
|
|
16454
|
+
readonly pathParams: readonly [];
|
|
16455
|
+
readonly query: readonly [{
|
|
16456
|
+
readonly name: "include_unavailable";
|
|
16457
|
+
readonly type: "boolean";
|
|
16458
|
+
readonly required: false;
|
|
16459
|
+
readonly description: "Set to true to also list genres that are catalogued but not open yet; their available_from field says which delivery stage opens them. Leave it false to see only the genres a draft can be created with today.";
|
|
16460
|
+
}];
|
|
16461
|
+
}, {
|
|
16462
|
+
readonly resource: "studio.genres";
|
|
16463
|
+
readonly method: "retrieve";
|
|
16464
|
+
readonly summary: "Read one genre with its built-in templates";
|
|
16465
|
+
readonly description: "Read the full rules of one genre: its unit kinds and what each may contain, the draft properties with their limits, the deterministic checks the software runs, the semantic review list, and the built-in templates that can seed a draft. Ask for this before creating a draft of that genre, and again when a write is refused for an unknown kind, a property limit or a block type the genre does not allow.";
|
|
16466
|
+
readonly http: "GET";
|
|
16467
|
+
readonly path: "/studio/v1/genres/{genre}";
|
|
16468
|
+
readonly streaming: "no";
|
|
16469
|
+
readonly pagination: false;
|
|
16470
|
+
readonly pathParams: readonly [{
|
|
16471
|
+
readonly name: "genre";
|
|
16472
|
+
readonly sdkName: "genre";
|
|
16473
|
+
readonly description: "Genre key from the genre list, such as novel_long or xiaohongshu_note; pass the key exactly, never the display name.";
|
|
16474
|
+
}];
|
|
16475
|
+
readonly query: readonly [];
|
|
16476
|
+
}, {
|
|
16477
|
+
readonly resource: "studio.platforms";
|
|
16478
|
+
readonly method: "list";
|
|
16479
|
+
readonly summary: "List the platforms a work can be produced for";
|
|
16480
|
+
readonly description: "List rendition targets with the format each needs, whether it receives a finished piece through an API, a draft box or an export, and the hard limits a piece must respect. Pass a genre to see only the platforms that genre produces by default. Read one platform in full before rendering, because its limits decide whether the rendition validates.";
|
|
16481
|
+
readonly http: "GET";
|
|
16482
|
+
readonly path: "/studio/v1/platforms";
|
|
16483
|
+
readonly streaming: "no";
|
|
16484
|
+
readonly pagination: false;
|
|
16485
|
+
readonly pathParams: readonly [];
|
|
16486
|
+
readonly query: readonly [{
|
|
16487
|
+
readonly name: "genre";
|
|
16488
|
+
readonly type: "string";
|
|
16489
|
+
readonly required: false;
|
|
16490
|
+
readonly description: "A genre key from the genre list; when given, only the platforms that genre produces by default are returned. Omit it to list every platform open today.";
|
|
16491
|
+
}];
|
|
16492
|
+
}, {
|
|
16493
|
+
readonly resource: "studio.platforms";
|
|
16494
|
+
readonly method: "retrieve";
|
|
16495
|
+
readonly summary: "Read the rules of one platform";
|
|
16496
|
+
readonly description: "Read one platform in full: the format it consumes, how it receives a finished piece, the preview fidelity the Console can offer, the limits on title, body, image count and aspect, and whether a connected channel is required. Read this before creating a rendition, and again when validation reports that the piece breaks a platform limit.";
|
|
16497
|
+
readonly http: "GET";
|
|
16498
|
+
readonly path: "/studio/v1/platforms/{platform}";
|
|
16499
|
+
readonly streaming: "no";
|
|
16500
|
+
readonly pagination: false;
|
|
16501
|
+
readonly pathParams: readonly [{
|
|
16502
|
+
readonly name: "platform";
|
|
16503
|
+
readonly sdkName: "platform";
|
|
16504
|
+
readonly description: "Versioned platform key from the platform list, such as x@1 or xiaohongshu@1; the version suffix is part of the key.";
|
|
16505
|
+
}];
|
|
16506
|
+
readonly query: readonly [];
|
|
16507
|
+
}, {
|
|
16508
|
+
readonly resource: "studio.styles";
|
|
16509
|
+
readonly method: "list";
|
|
16510
|
+
readonly summary: "List the writing styles of this organization";
|
|
16511
|
+
readonly description: "List the styles this API key organization owns, each with its name and description, so you can choose the voice a work should be written in. Continue with next_page_token until the answer stops carrying one. Read one style in full before attaching it, because its samples are what actually shape the writing.";
|
|
16512
|
+
readonly http: "GET";
|
|
16513
|
+
readonly path: "/studio/v1/styles";
|
|
16514
|
+
readonly streaming: "no";
|
|
16515
|
+
readonly pagination: false;
|
|
16516
|
+
readonly pathParams: readonly [];
|
|
16517
|
+
readonly query: readonly [{
|
|
16518
|
+
readonly name: "page_size";
|
|
16519
|
+
readonly type: "integer";
|
|
16520
|
+
readonly required: false;
|
|
16521
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16522
|
+
}, {
|
|
16523
|
+
readonly name: "page_token";
|
|
16524
|
+
readonly type: "string";
|
|
16525
|
+
readonly required: false;
|
|
16526
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16527
|
+
}];
|
|
16528
|
+
}, {
|
|
16529
|
+
readonly resource: "studio.styles";
|
|
16530
|
+
readonly method: "create";
|
|
16531
|
+
readonly summary: "Create a writing style";
|
|
16532
|
+
readonly description: "Create a style: the voice a piece is written in, held as samples rather than as adjectives. Samples matter more than a description, so paste one to five paragraphs of writing the piece should sound like, and put the words to avoid into avoid so the banned-word check uses them. Attach a style to a work, or to one draft of it, and its samples then reach every context pack.";
|
|
16533
|
+
readonly http: "POST";
|
|
16534
|
+
readonly path: "/studio/v1/styles";
|
|
16535
|
+
readonly streaming: "no";
|
|
16536
|
+
readonly pagination: false;
|
|
16537
|
+
readonly pathParams: readonly [];
|
|
16538
|
+
readonly query: readonly [];
|
|
16539
|
+
readonly body: {
|
|
16540
|
+
readonly required: true;
|
|
16541
|
+
readonly fields: readonly [{
|
|
16542
|
+
readonly name: "name";
|
|
16543
|
+
readonly type: "string";
|
|
16544
|
+
readonly required: true;
|
|
16545
|
+
readonly description: "Name of the style, written so a person can tell it apart from the organization's other styles.";
|
|
16546
|
+
}, {
|
|
16547
|
+
readonly name: "description";
|
|
16548
|
+
readonly type: "string";
|
|
16549
|
+
readonly required: false;
|
|
16550
|
+
readonly description: "Short description of the voice, shown wherever a style is chosen.";
|
|
16551
|
+
}, {
|
|
16552
|
+
readonly name: "samples";
|
|
16553
|
+
readonly type: "array";
|
|
16554
|
+
readonly itemType: "string";
|
|
16555
|
+
readonly required: false;
|
|
16556
|
+
readonly description: "One to five paragraphs of writing in the intended voice; these paragraphs are what reach a writer, so choose them carefully.";
|
|
16557
|
+
}, {
|
|
16558
|
+
readonly name: "use";
|
|
16559
|
+
readonly type: "array";
|
|
16560
|
+
readonly itemType: "string";
|
|
16561
|
+
readonly required: false;
|
|
16562
|
+
readonly description: "Wording and habits to keep, stated as instructions a writer can follow rather than as adjectives.";
|
|
16563
|
+
}, {
|
|
16564
|
+
readonly name: "avoid";
|
|
16565
|
+
readonly type: "array";
|
|
16566
|
+
readonly itemType: "string";
|
|
16567
|
+
readonly required: false;
|
|
16568
|
+
readonly description: "Words and stock phrases to avoid, which also become the banned-word check for drafts that use this style.";
|
|
16569
|
+
}, {
|
|
16570
|
+
readonly name: "glossary";
|
|
16571
|
+
readonly type: "object";
|
|
16572
|
+
readonly required: false;
|
|
16573
|
+
readonly description: "Terms mapped from a wrong spelling to the right one; each pair becomes a deterministic check on the text.";
|
|
16574
|
+
}];
|
|
16575
|
+
};
|
|
16576
|
+
}, {
|
|
16577
|
+
readonly resource: "studio.styles";
|
|
16578
|
+
readonly method: "delete";
|
|
16579
|
+
readonly summary: "Delete a writing style";
|
|
16580
|
+
readonly description: "Delete a style, which detaches it from every work and draft that used it; those units then stop receiving its samples and glossary in their context packs. This cannot be undone, so confirm the style identifier before deleting it, and read the work first when it is not certain which style it uses.";
|
|
16581
|
+
readonly http: "DELETE";
|
|
16582
|
+
readonly path: "/studio/v1/styles/{style}";
|
|
16583
|
+
readonly streaming: "no";
|
|
16584
|
+
readonly pagination: false;
|
|
16585
|
+
readonly pathParams: readonly [{
|
|
16586
|
+
readonly name: "style";
|
|
16587
|
+
readonly sdkName: "style";
|
|
16588
|
+
readonly description: "Style being addressed, by its sty_ identifier; a style has no name-based address, so read the style list first when only the name is known.";
|
|
16589
|
+
}];
|
|
16590
|
+
readonly query: readonly [];
|
|
16591
|
+
}, {
|
|
16592
|
+
readonly resource: "studio.styles";
|
|
16593
|
+
readonly method: "retrieve";
|
|
16594
|
+
readonly summary: "Read one writing style";
|
|
16595
|
+
readonly description: "Read one style in full: its samples, the wording to use and to avoid, and its glossary of wrong-to-right terms. Read it before attaching it to a work, since samples decide the sound of the writing far more than the description does, and a glossary term also becomes a deterministic check against the text.";
|
|
16596
|
+
readonly http: "GET";
|
|
16597
|
+
readonly path: "/studio/v1/styles/{style}";
|
|
16598
|
+
readonly streaming: "no";
|
|
16599
|
+
readonly pagination: false;
|
|
16600
|
+
readonly pathParams: readonly [{
|
|
16601
|
+
readonly name: "style";
|
|
16602
|
+
readonly sdkName: "style";
|
|
16603
|
+
readonly description: "Style being addressed, by its sty_ identifier; a style has no name-based address, so read the style list first when only the name is known.";
|
|
16604
|
+
}];
|
|
16605
|
+
readonly query: readonly [];
|
|
16606
|
+
}, {
|
|
16607
|
+
readonly resource: "studio.styles";
|
|
16608
|
+
readonly method: "update";
|
|
16609
|
+
readonly summary: "Change a writing style";
|
|
16610
|
+
readonly description: "Change a style: its name, its description, its samples, its use and avoid lists, or its glossary. Send update_mask naming exactly the fields you change; a list the mask names is replaced whole. Adding a term to the glossary or to avoid also changes what the deterministic checks flag, so a work that uses this style sees new findings on its next check.";
|
|
16611
|
+
readonly http: "PATCH";
|
|
16612
|
+
readonly path: "/studio/v1/styles/{style}";
|
|
16613
|
+
readonly streaming: "no";
|
|
16614
|
+
readonly pagination: false;
|
|
16615
|
+
readonly pathParams: readonly [{
|
|
16616
|
+
readonly name: "style";
|
|
16617
|
+
readonly sdkName: "style";
|
|
16618
|
+
readonly description: "Style being addressed, by its sty_ identifier; a style has no name-based address, so read the style list first when only the name is known.";
|
|
16619
|
+
}];
|
|
16620
|
+
readonly query: readonly [];
|
|
16621
|
+
readonly body: {
|
|
16622
|
+
readonly required: true;
|
|
16623
|
+
readonly fields: readonly [{
|
|
16624
|
+
readonly name: "updateMask";
|
|
16625
|
+
readonly type: "array";
|
|
16626
|
+
readonly itemType: "string";
|
|
16627
|
+
readonly required: true;
|
|
16628
|
+
readonly description: "Field paths this call changes, such as description, samples or avoid; a list named here is replaced whole and a field left out keeps its value.";
|
|
16629
|
+
}, {
|
|
16630
|
+
readonly name: "name";
|
|
16631
|
+
readonly type: "string";
|
|
16632
|
+
readonly required: false;
|
|
16633
|
+
readonly description: "New name of the style, replacing the previous one when name is named in the update mask.";
|
|
16634
|
+
}, {
|
|
16635
|
+
readonly name: "description";
|
|
16636
|
+
readonly type: "string";
|
|
16637
|
+
readonly required: false;
|
|
16638
|
+
readonly description: "New description of the voice, replacing the previous one.";
|
|
16639
|
+
}, {
|
|
16640
|
+
readonly name: "samples";
|
|
16641
|
+
readonly type: "array";
|
|
16642
|
+
readonly itemType: "string";
|
|
16643
|
+
readonly required: false;
|
|
16644
|
+
readonly description: "Complete set of sample paragraphs, replacing the previous ones; removing a sample removes it from every later context pack.";
|
|
16645
|
+
}, {
|
|
16646
|
+
readonly name: "use";
|
|
16647
|
+
readonly type: "array";
|
|
16648
|
+
readonly itemType: "string";
|
|
16649
|
+
readonly required: false;
|
|
16650
|
+
readonly description: "Complete set of wording and habits to keep, replacing the previous ones.";
|
|
16651
|
+
}, {
|
|
16652
|
+
readonly name: "avoid";
|
|
16653
|
+
readonly type: "array";
|
|
16654
|
+
readonly itemType: "string";
|
|
16655
|
+
readonly required: false;
|
|
16656
|
+
readonly description: "Complete set of words and phrases to avoid, replacing the previous ones and with them the banned-word check.";
|
|
16657
|
+
}, {
|
|
16658
|
+
readonly name: "glossary";
|
|
16659
|
+
readonly type: "object";
|
|
16660
|
+
readonly required: false;
|
|
16661
|
+
readonly description: "Complete glossary, replacing the previous one; a pair removed here stops being checked.";
|
|
16662
|
+
}];
|
|
16663
|
+
};
|
|
16664
|
+
}, {
|
|
16665
|
+
readonly resource: "studio.templates";
|
|
16666
|
+
readonly method: "list";
|
|
16667
|
+
readonly summary: "List the templates a genre can start from";
|
|
16668
|
+
readonly description: "List templates: the built-in starting structures of each genre, followed by the ones this organization saved. Pass a genre to see only the templates that genre can use. A template is used once when a draft is created and is then detached, so changing a template never rewrites a draft that already started from it.";
|
|
16669
|
+
readonly http: "GET";
|
|
16670
|
+
readonly path: "/studio/v1/templates";
|
|
16671
|
+
readonly streaming: "no";
|
|
16672
|
+
readonly pagination: false;
|
|
16673
|
+
readonly pathParams: readonly [];
|
|
16674
|
+
readonly query: readonly [{
|
|
16675
|
+
readonly name: "genre";
|
|
16676
|
+
readonly type: "string";
|
|
16677
|
+
readonly required: false;
|
|
16678
|
+
readonly description: "Genre key to filter by; when given, only the built-in and saved templates of that genre are returned. Omit it to list every genre's templates together.";
|
|
16679
|
+
}, {
|
|
16680
|
+
readonly name: "page_size";
|
|
16681
|
+
readonly type: "integer";
|
|
16682
|
+
readonly required: false;
|
|
16683
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16684
|
+
}, {
|
|
16685
|
+
readonly name: "page_token";
|
|
16686
|
+
readonly type: "string";
|
|
16687
|
+
readonly required: false;
|
|
16688
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16689
|
+
}];
|
|
16690
|
+
}, {
|
|
16691
|
+
readonly resource: "studio.templates";
|
|
16692
|
+
readonly method: "create";
|
|
16693
|
+
readonly summary: "Save a starting structure as a template";
|
|
16694
|
+
readonly description: "Save a unit tree as a reusable template for one genre, so the same structure can seed later drafts. Give the genre, a name, the outline of units with their intents, and optionally the writing guidance a writer should follow. Creating a template from an existing draft is a separate milestone and answers NOT_IMPLEMENTED, so build the outline here instead.";
|
|
16695
|
+
readonly http: "POST";
|
|
16696
|
+
readonly path: "/studio/v1/templates";
|
|
16697
|
+
readonly streaming: "no";
|
|
16698
|
+
readonly pagination: false;
|
|
16699
|
+
readonly pathParams: readonly [];
|
|
16700
|
+
readonly query: readonly [];
|
|
16701
|
+
readonly body: {
|
|
16702
|
+
readonly required: true;
|
|
16703
|
+
readonly fields: readonly [{
|
|
16704
|
+
readonly name: "genre";
|
|
16705
|
+
readonly type: "string";
|
|
16706
|
+
readonly required: true;
|
|
16707
|
+
readonly description: "Genre the template belongs to; a draft of another genre cannot use it.";
|
|
16708
|
+
}, {
|
|
16709
|
+
readonly name: "name";
|
|
16710
|
+
readonly type: "string";
|
|
16711
|
+
readonly required: true;
|
|
16712
|
+
readonly description: "Name of the template, shown where a draft chooses its starting structure.";
|
|
16713
|
+
}, {
|
|
16714
|
+
readonly name: "guide";
|
|
16715
|
+
readonly type: "string";
|
|
16716
|
+
readonly required: false;
|
|
16717
|
+
readonly description: "Writing guidance that reaches the first context pack of a draft created from this template.";
|
|
16718
|
+
}, {
|
|
16719
|
+
readonly name: "outline";
|
|
16720
|
+
readonly type: "array";
|
|
16721
|
+
readonly itemType: "object";
|
|
16722
|
+
readonly required: true;
|
|
16723
|
+
readonly description: "Unit tree the template creates, in draft order, with children nested inside their parent.";
|
|
16724
|
+
}];
|
|
16725
|
+
};
|
|
16726
|
+
}, {
|
|
16727
|
+
readonly resource: "studio.templates";
|
|
16728
|
+
readonly method: "delete";
|
|
16729
|
+
readonly summary: "Delete a saved template";
|
|
16730
|
+
readonly description: "Delete a template this organization saved. A built-in template belongs to the catalog and cannot be deleted, so this answers TEMPLATE_NOT_FOUND for one. Drafts that already started from the template are unaffected, because the template was detached when they were created. This cannot be undone.";
|
|
16731
|
+
readonly http: "DELETE";
|
|
16732
|
+
readonly path: "/studio/v1/templates/{template}";
|
|
16733
|
+
readonly streaming: "no";
|
|
16734
|
+
readonly pagination: false;
|
|
16735
|
+
readonly pathParams: readonly [{
|
|
16736
|
+
readonly name: "template";
|
|
16737
|
+
readonly sdkName: "template";
|
|
16738
|
+
readonly description: "Template being addressed: a saved one by its tmpl_ identifier, or a built-in one by its key, optionally prefixed with its genre as in novel_long:three_act when several genres share the key.";
|
|
16739
|
+
}];
|
|
16740
|
+
readonly query: readonly [];
|
|
16741
|
+
}, {
|
|
16742
|
+
readonly resource: "studio.templates";
|
|
16743
|
+
readonly method: "retrieve";
|
|
16744
|
+
readonly summary: "Read one template";
|
|
16745
|
+
readonly description: "Read one template: its genre, the writing guidance it carries and the unit outline it seeds, with each unit's intent. Address a saved template by its identifier and a built-in one by its key, alone or with its genre prefix such as novel_long:three_act when two genres share a key. Read it before creating a draft from it, because the template decides the structure the draft starts with.";
|
|
16746
|
+
readonly http: "GET";
|
|
16747
|
+
readonly path: "/studio/v1/templates/{template}";
|
|
16748
|
+
readonly streaming: "no";
|
|
16749
|
+
readonly pagination: false;
|
|
16750
|
+
readonly pathParams: readonly [{
|
|
16751
|
+
readonly name: "template";
|
|
16752
|
+
readonly sdkName: "template";
|
|
16753
|
+
readonly description: "Template being addressed: a saved one by its tmpl_ identifier, or a built-in one by its key, optionally prefixed with its genre as in novel_long:three_act when several genres share the key.";
|
|
16754
|
+
}];
|
|
16755
|
+
readonly query: readonly [];
|
|
16756
|
+
}, {
|
|
16757
|
+
readonly resource: "studio.themes";
|
|
16758
|
+
readonly method: "list";
|
|
16759
|
+
readonly summary: "List the rendition themes of a platform";
|
|
16760
|
+
readonly description: "List themes: the layouts a rendition is produced with, for one platform or for all of them. Pass a platform to see only the themes that platform can use. A theme decides the page or card a rendition is built into, so read the chosen theme before creating a rendition rather than after the output looks wrong.";
|
|
16761
|
+
readonly http: "GET";
|
|
16762
|
+
readonly path: "/studio/v1/themes";
|
|
16763
|
+
readonly streaming: "no";
|
|
16764
|
+
readonly pagination: false;
|
|
16765
|
+
readonly pathParams: readonly [];
|
|
16766
|
+
readonly query: readonly [{
|
|
16767
|
+
readonly name: "platform";
|
|
16768
|
+
readonly type: "string";
|
|
16769
|
+
readonly required: false;
|
|
16770
|
+
readonly description: "Versioned platform key to filter by, such as wechat_mp@1; when given, only themes for that platform are returned. Omit it to list every platform's themes together.";
|
|
16771
|
+
}, {
|
|
16772
|
+
readonly name: "page_size";
|
|
16773
|
+
readonly type: "integer";
|
|
16774
|
+
readonly required: false;
|
|
16775
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16776
|
+
}, {
|
|
16777
|
+
readonly name: "page_token";
|
|
16778
|
+
readonly type: "string";
|
|
16779
|
+
readonly required: false;
|
|
16780
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16781
|
+
}];
|
|
16782
|
+
}, {
|
|
16783
|
+
readonly resource: "studio.themes";
|
|
16784
|
+
readonly method: "create";
|
|
16785
|
+
readonly summary: "Create a rendition theme";
|
|
16786
|
+
readonly description: "Create a theme for one platform: the HTML and CSS a written piece is rendered into, plus the fixed header and footer every rendition carries. A DOCX platform takes a reference document instead of markup, and a card theme takes its aspect, width and fonts. An agent may write a theme here, which is how a new layout appears without a release.";
|
|
16787
|
+
readonly http: "POST";
|
|
16788
|
+
readonly path: "/studio/v1/themes";
|
|
16789
|
+
readonly streaming: "no";
|
|
16790
|
+
readonly pagination: false;
|
|
16791
|
+
readonly pathParams: readonly [];
|
|
16792
|
+
readonly query: readonly [];
|
|
16793
|
+
readonly body: {
|
|
16794
|
+
readonly required: true;
|
|
16795
|
+
readonly fields: readonly [{
|
|
16796
|
+
readonly name: "platform";
|
|
16797
|
+
readonly type: "string";
|
|
16798
|
+
readonly required: true;
|
|
16799
|
+
readonly description: "Versioned platform key this theme renders for, taken from the platform list.";
|
|
16800
|
+
}, {
|
|
16801
|
+
readonly name: "name";
|
|
16802
|
+
readonly type: "string";
|
|
16803
|
+
readonly required: true;
|
|
16804
|
+
readonly description: "Name of the theme, shown wherever a rendition chooses its layout.";
|
|
16805
|
+
}, {
|
|
16806
|
+
readonly name: "html";
|
|
16807
|
+
readonly type: "string";
|
|
16808
|
+
readonly required: false;
|
|
16809
|
+
readonly description: "HTML template with a small mustache-like subset over the title, the units and the pages; give it for a markup platform.";
|
|
16810
|
+
}, {
|
|
16811
|
+
readonly name: "css";
|
|
16812
|
+
readonly type: "string";
|
|
16813
|
+
readonly required: false;
|
|
16814
|
+
readonly description: "Stylesheet applied to the markup, folded inline for a platform that requires inline styles.";
|
|
16815
|
+
}, {
|
|
16816
|
+
readonly name: "reference_docx";
|
|
16817
|
+
readonly type: "string";
|
|
16818
|
+
readonly required: false;
|
|
16819
|
+
readonly description: "Reference document giving a DOCX rendition its styles, by file identifier; give it instead of markup for a word-processor platform.";
|
|
16820
|
+
}, {
|
|
16821
|
+
readonly name: "header";
|
|
16822
|
+
readonly type: "string";
|
|
16823
|
+
readonly required: false;
|
|
16824
|
+
readonly description: "Fragment placed at the top of every rendition this theme produces.";
|
|
16825
|
+
}, {
|
|
16826
|
+
readonly name: "footer";
|
|
16827
|
+
readonly type: "string";
|
|
16828
|
+
readonly required: false;
|
|
16829
|
+
readonly description: "Fragment placed at the bottom of every rendition this theme produces.";
|
|
16830
|
+
}, {
|
|
16831
|
+
readonly name: "card";
|
|
16832
|
+
readonly type: "object";
|
|
16833
|
+
readonly required: false;
|
|
16834
|
+
readonly description: "How a card rendition is laid out: its proportions, its width and the fonts it expects.";
|
|
16835
|
+
}];
|
|
16836
|
+
};
|
|
16837
|
+
}, {
|
|
16838
|
+
readonly resource: "studio.themes";
|
|
16839
|
+
readonly method: "delete";
|
|
16840
|
+
readonly summary: "Delete a rendition theme";
|
|
16841
|
+
readonly description: "Delete a theme this organization created. A built-in theme belongs to the platform and cannot be deleted, so this answers THEME_NOT_FOUND for one. Renditions already produced with the theme keep their output, because the produced file no longer depends on the theme. This cannot be undone.";
|
|
16842
|
+
readonly http: "DELETE";
|
|
16843
|
+
readonly path: "/studio/v1/themes/{theme}";
|
|
16844
|
+
readonly streaming: "no";
|
|
16845
|
+
readonly pagination: false;
|
|
16846
|
+
readonly pathParams: readonly [{
|
|
16847
|
+
readonly name: "theme";
|
|
16848
|
+
readonly sdkName: "theme";
|
|
16849
|
+
readonly description: "Theme being addressed: a saved one by its thm_ identifier, or a built-in one by its key; the identifier is what the theme list returns for an organization's own theme.";
|
|
16850
|
+
}];
|
|
16851
|
+
readonly query: readonly [];
|
|
16852
|
+
}, {
|
|
16853
|
+
readonly resource: "studio.themes";
|
|
16854
|
+
readonly method: "retrieve";
|
|
16855
|
+
readonly summary: "Read one rendition theme";
|
|
16856
|
+
readonly description: "Read one theme in full: the HTML template and stylesheet it renders with, the header and footer it always carries, the reference document a DOCX rendition uses, or the card proportions a card rendition uses. Read it before creating a rendition with it, because a theme decides what the output looks like and a DOCX theme is a file rather than markup.";
|
|
16857
|
+
readonly http: "GET";
|
|
16858
|
+
readonly path: "/studio/v1/themes/{theme}";
|
|
16859
|
+
readonly streaming: "no";
|
|
16860
|
+
readonly pagination: false;
|
|
16861
|
+
readonly pathParams: readonly [{
|
|
16862
|
+
readonly name: "theme";
|
|
16863
|
+
readonly sdkName: "theme";
|
|
16864
|
+
readonly description: "Theme being addressed: a saved one by its thm_ identifier, or a built-in one by its key; the identifier is what the theme list returns for an organization's own theme.";
|
|
16865
|
+
}];
|
|
16866
|
+
readonly query: readonly [];
|
|
16867
|
+
}, {
|
|
16868
|
+
readonly resource: "studio.themes";
|
|
16869
|
+
readonly method: "update";
|
|
16870
|
+
readonly summary: "Change a rendition theme";
|
|
16871
|
+
readonly description: "Change a theme: its name, its markup, its stylesheet, or the fixed fragments around every rendition. Send update_mask naming exactly the fields you change. Changing a theme does not rewrite renditions already produced with an earlier version, because each rendition records the theme version it was built from.";
|
|
16872
|
+
readonly http: "PATCH";
|
|
16873
|
+
readonly path: "/studio/v1/themes/{theme}";
|
|
16874
|
+
readonly streaming: "no";
|
|
16875
|
+
readonly pagination: false;
|
|
16876
|
+
readonly pathParams: readonly [{
|
|
16877
|
+
readonly name: "theme";
|
|
16878
|
+
readonly sdkName: "theme";
|
|
16879
|
+
readonly description: "Theme being addressed: a saved one by its thm_ identifier, or a built-in one by its key; the identifier is what the theme list returns for an organization's own theme.";
|
|
16880
|
+
}];
|
|
16881
|
+
readonly query: readonly [];
|
|
16882
|
+
readonly body: {
|
|
16883
|
+
readonly required: true;
|
|
16884
|
+
readonly fields: readonly [{
|
|
16885
|
+
readonly name: "updateMask";
|
|
16886
|
+
readonly type: "array";
|
|
16887
|
+
readonly itemType: "string";
|
|
16888
|
+
readonly required: true;
|
|
16889
|
+
readonly description: "Field paths this call changes, such as name, css or footer; a field left out keeps its value.";
|
|
16890
|
+
}, {
|
|
16891
|
+
readonly name: "name";
|
|
16892
|
+
readonly type: "string";
|
|
16893
|
+
readonly required: false;
|
|
16894
|
+
readonly description: "New name of the theme, replacing the previous one when name is named in the update mask.";
|
|
16895
|
+
}, {
|
|
16896
|
+
readonly name: "html";
|
|
16897
|
+
readonly type: "string";
|
|
16898
|
+
readonly required: false;
|
|
16899
|
+
readonly description: "New HTML template, replacing the previous one for renditions produced after this change.";
|
|
16900
|
+
}, {
|
|
16901
|
+
readonly name: "css";
|
|
16902
|
+
readonly type: "string";
|
|
16903
|
+
readonly required: false;
|
|
16904
|
+
readonly description: "New stylesheet, replacing the previous one.";
|
|
16905
|
+
}, {
|
|
16906
|
+
readonly name: "reference_docx";
|
|
16907
|
+
readonly type: "string";
|
|
16908
|
+
readonly required: false;
|
|
16909
|
+
readonly description: "New reference document for a DOCX rendition, by file identifier; it replaces the previous one.";
|
|
16910
|
+
}, {
|
|
16911
|
+
readonly name: "header";
|
|
16912
|
+
readonly type: "string";
|
|
16913
|
+
readonly required: false;
|
|
16914
|
+
readonly description: "New top fragment, replacing the previous one.";
|
|
16915
|
+
}, {
|
|
16916
|
+
readonly name: "footer";
|
|
16917
|
+
readonly type: "string";
|
|
16918
|
+
readonly required: false;
|
|
16919
|
+
readonly description: "New bottom fragment, replacing the previous one.";
|
|
16920
|
+
}, {
|
|
16921
|
+
readonly name: "card";
|
|
16922
|
+
readonly type: "object";
|
|
16923
|
+
readonly required: false;
|
|
16924
|
+
readonly description: "How a card rendition is laid out: its proportions, its width and the fonts it expects.";
|
|
16925
|
+
}];
|
|
16926
|
+
};
|
|
16927
|
+
}, {
|
|
16928
|
+
readonly resource: "studio.works";
|
|
16929
|
+
readonly method: "list";
|
|
16930
|
+
readonly summary: "List the works of this organization";
|
|
16931
|
+
readonly description: "List works owned by the API key organization so you can find the one being discussed, with its drafts and how long ago each moved. Archived works are left out unless you ask for them. Continue with next_page_token until the answer stops carrying one; the summaries carry no unit bodies, so read a work before writing in it.";
|
|
16932
|
+
readonly http: "GET";
|
|
16933
|
+
readonly path: "/studio/v1/works";
|
|
16934
|
+
readonly streaming: "no";
|
|
16935
|
+
readonly pagination: false;
|
|
16936
|
+
readonly pathParams: readonly [];
|
|
16937
|
+
readonly query: readonly [{
|
|
16938
|
+
readonly name: "page_size";
|
|
16939
|
+
readonly type: "integer";
|
|
16940
|
+
readonly required: false;
|
|
16941
|
+
readonly description: "How many items this page returns, 1 to 100; omitted uses the service default. Treat the answer as one page, not the whole set, and keep following next_page_token while it is present.";
|
|
16942
|
+
}, {
|
|
16943
|
+
readonly name: "page_token";
|
|
16944
|
+
readonly type: "string";
|
|
16945
|
+
readonly required: false;
|
|
16946
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
16947
|
+
}, {
|
|
16948
|
+
readonly name: "archived";
|
|
16949
|
+
readonly type: "boolean";
|
|
16950
|
+
readonly required: false;
|
|
16951
|
+
readonly description: "Set to true to list archived works instead of active ones; each page lists one of the two, never both.";
|
|
16952
|
+
}];
|
|
16953
|
+
}, {
|
|
16954
|
+
readonly resource: "studio.works";
|
|
16955
|
+
readonly method: "create";
|
|
16956
|
+
readonly summary: "Create a work with its goal";
|
|
16957
|
+
readonly description: "Create a work: one deliverable piece plus everything around it. Pass the goal the writing serves — the reader, what that reader should get or do, the one-sentence message and the constraints — and the original brief the person gave in their own words. A slug is derived from the title unless you pass one. The work starts with no drafts; create the first one with the drafts create call, because the genre decides the structure.";
|
|
16958
|
+
readonly http: "POST";
|
|
16959
|
+
readonly path: "/studio/v1/works";
|
|
16960
|
+
readonly streaming: "no";
|
|
16961
|
+
readonly pagination: false;
|
|
16962
|
+
readonly pathParams: readonly [];
|
|
16963
|
+
readonly query: readonly [];
|
|
16964
|
+
readonly body: {
|
|
16965
|
+
readonly required: true;
|
|
16966
|
+
readonly fields: readonly [{
|
|
16967
|
+
readonly name: "title";
|
|
16968
|
+
readonly type: "string";
|
|
16969
|
+
readonly required: true;
|
|
16970
|
+
readonly description: "Working title of the new work, used in lists and in the Console; it does not become any rendition title.";
|
|
16971
|
+
}, {
|
|
16972
|
+
readonly name: "slug";
|
|
16973
|
+
readonly type: "string";
|
|
16974
|
+
readonly required: false;
|
|
16975
|
+
readonly description: "Organization-unique name to address the work by; omit it and one is derived from the title.";
|
|
16976
|
+
}, {
|
|
16977
|
+
readonly name: "goal";
|
|
16978
|
+
readonly type: "object";
|
|
16979
|
+
readonly required: true;
|
|
16980
|
+
readonly description: "What this work is for: who reads it, what that reader should get or do, the one message it carries, and the limits it is written under.";
|
|
16981
|
+
}, {
|
|
16982
|
+
readonly name: "brief";
|
|
16983
|
+
readonly type: "object";
|
|
16984
|
+
readonly required: false;
|
|
16985
|
+
readonly description: "The original requirement as it arrives with a new work: the person's text, any attached source files, and the points split from it.";
|
|
16986
|
+
}, {
|
|
16987
|
+
readonly name: "codexes";
|
|
16988
|
+
readonly type: "array";
|
|
16989
|
+
readonly itemType: "string";
|
|
16990
|
+
readonly required: false;
|
|
16991
|
+
readonly description: "Reference libraries to attach at creation; a library owned by another organization is refused rather than attached.";
|
|
16992
|
+
}, {
|
|
16993
|
+
readonly name: "style";
|
|
16994
|
+
readonly type: "string";
|
|
16995
|
+
readonly required: false;
|
|
16996
|
+
readonly description: "Style to attach to the work, whose samples and glossary then reach every context pack unless a draft overrides it.";
|
|
16997
|
+
}, {
|
|
16998
|
+
readonly name: "labels";
|
|
16999
|
+
readonly type: "object";
|
|
17000
|
+
readonly required: false;
|
|
17001
|
+
readonly description: "Caller-chosen key and value pairs kept on a resource; the keys are the caller's own names and no platform meaning is attached to them.";
|
|
17002
|
+
}, {
|
|
17003
|
+
readonly name: "requestId";
|
|
17004
|
+
readonly type: "string";
|
|
17005
|
+
readonly required: false;
|
|
17006
|
+
readonly description: "Caller-chosen key that makes this create safe to repeat: the same value answers the first result instead of creating a second work.";
|
|
17007
|
+
}];
|
|
17008
|
+
};
|
|
17009
|
+
}, {
|
|
17010
|
+
readonly resource: "studio.works";
|
|
17011
|
+
readonly method: "retrieve";
|
|
17012
|
+
readonly summary: "Read a work, optionally with one draft and unit";
|
|
17013
|
+
readonly description: "Read a work and, in the same answer, whatever part of it the page needs: pass draft to get that draft with its todos, its unit outline and its properties, and unit to get one unit with its blocks and Markdown body. This is the call that opens an editing session, because it answers the goal, the brief, the current revisions and the unit to write in one round trip.";
|
|
17014
|
+
readonly http: "GET";
|
|
17015
|
+
readonly path: "/studio/v1/works/{work}";
|
|
17016
|
+
readonly streaming: "no";
|
|
17017
|
+
readonly pagination: false;
|
|
17018
|
+
readonly pathParams: readonly [{
|
|
17019
|
+
readonly name: "work";
|
|
17020
|
+
readonly sdkName: "work";
|
|
17021
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17022
|
+
}];
|
|
17023
|
+
readonly query: readonly [{
|
|
17024
|
+
readonly name: "draft";
|
|
17025
|
+
readonly type: "string";
|
|
17026
|
+
readonly required: false;
|
|
17027
|
+
readonly description: "Draft to include in the answer, either its in-work key such as novel or its drf_ identifier; when it is given, the answer also carries that draft's todos, outline and current unit.";
|
|
17028
|
+
}, {
|
|
17029
|
+
readonly name: "unit";
|
|
17030
|
+
readonly type: "string";
|
|
17031
|
+
readonly required: false;
|
|
17032
|
+
readonly description: "Unit to include in the answer, written as its in-work number without a hash, such as 12; it returns that unit with its blocks and Markdown body.";
|
|
17033
|
+
}, {
|
|
17034
|
+
readonly name: "expand";
|
|
17035
|
+
readonly type: "array";
|
|
17036
|
+
readonly itemType: "string";
|
|
17037
|
+
readonly enum: readonly ["status", "drafts", "outline", "unit"];
|
|
17038
|
+
readonly required: false;
|
|
17039
|
+
readonly description: "Extra parts to include, comma separated: status for the draft todo list, drafts for the draft summaries, outline for the unit tree without bodies, and unit for the current unit with its body.";
|
|
17040
|
+
}];
|
|
17041
|
+
}, {
|
|
17042
|
+
readonly resource: "studio.works";
|
|
17043
|
+
readonly method: "update";
|
|
17044
|
+
readonly summary: "Change the title, goal or attached libraries";
|
|
17045
|
+
readonly description: "Change work-level settings: the title, the slug, the goal, the attached reference libraries, the style or the archived flag. Send update_mask naming exactly the fields you change; a field left out keeps its value. Pass expected_revision to have the write refused when someone else changed the work first, and note that changing the message makes every draft derived from it stale.";
|
|
17046
|
+
readonly http: "PATCH";
|
|
17047
|
+
readonly path: "/studio/v1/works/{work}";
|
|
17048
|
+
readonly streaming: "no";
|
|
17049
|
+
readonly pagination: false;
|
|
17050
|
+
readonly pathParams: readonly [{
|
|
17051
|
+
readonly name: "work";
|
|
17052
|
+
readonly sdkName: "work";
|
|
17053
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17054
|
+
}];
|
|
17055
|
+
readonly query: readonly [];
|
|
17056
|
+
readonly body: {
|
|
17057
|
+
readonly required: true;
|
|
17058
|
+
readonly fields: readonly [{
|
|
17059
|
+
readonly name: "updateMask";
|
|
17060
|
+
readonly type: "array";
|
|
17061
|
+
readonly itemType: "string";
|
|
17062
|
+
readonly required: true;
|
|
17063
|
+
readonly description: "Field paths this call changes, spelled as they appear in the work, such as title or goal.message; a field left out keeps its value.";
|
|
17064
|
+
}, {
|
|
17065
|
+
readonly name: "expectedRevision";
|
|
17066
|
+
readonly type: "integer";
|
|
17067
|
+
readonly required: false;
|
|
17068
|
+
readonly description: "Work revision the caller read; when the work moved past it the write is refused with REVISION_CONFLICT and nothing changes.";
|
|
17069
|
+
}, {
|
|
17070
|
+
readonly name: "title";
|
|
17071
|
+
readonly type: "string";
|
|
17072
|
+
readonly required: false;
|
|
17073
|
+
readonly description: "New working title of the work, replacing the previous one when title is named in the update mask.";
|
|
17074
|
+
}, {
|
|
17075
|
+
readonly name: "slug";
|
|
17076
|
+
readonly type: "string";
|
|
17077
|
+
readonly required: false;
|
|
17078
|
+
readonly description: "New organization-unique name; the previous slug keeps resolving so existing links do not break.";
|
|
17079
|
+
}, {
|
|
17080
|
+
readonly name: "goal";
|
|
17081
|
+
readonly type: "object";
|
|
17082
|
+
readonly required: false;
|
|
17083
|
+
readonly description: "What this work is for: who reads it, what that reader should get or do, the one message it carries, and the limits it is written under.";
|
|
17084
|
+
}, {
|
|
17085
|
+
readonly name: "codexes";
|
|
17086
|
+
readonly type: "array";
|
|
17087
|
+
readonly itemType: "string";
|
|
17088
|
+
readonly required: false;
|
|
17089
|
+
readonly description: "Complete set of reference libraries to keep attached; a library left out is detached from the work.";
|
|
17090
|
+
}, {
|
|
17091
|
+
readonly name: "style";
|
|
17092
|
+
readonly type: "string";
|
|
17093
|
+
readonly required: false;
|
|
17094
|
+
readonly description: "Style to attach to the work, replacing the previous one; send an empty value to detach the style entirely.";
|
|
17095
|
+
}, {
|
|
17096
|
+
readonly name: "labels";
|
|
17097
|
+
readonly type: "object";
|
|
17098
|
+
readonly required: false;
|
|
17099
|
+
readonly description: "Caller-chosen key and value pairs kept on a resource; the keys are the caller's own names and no platform meaning is attached to them.";
|
|
17100
|
+
}, {
|
|
17101
|
+
readonly name: "archived";
|
|
17102
|
+
readonly type: "boolean";
|
|
17103
|
+
readonly required: false;
|
|
17104
|
+
readonly description: "Set to true to archive the work, which hides it from the default list without deleting anything.";
|
|
17105
|
+
}];
|
|
17106
|
+
};
|
|
17107
|
+
}, {
|
|
17108
|
+
readonly resource: "studio.works";
|
|
17109
|
+
readonly method: "updateBrief";
|
|
17110
|
+
readonly summary: "Add to or correct the original brief";
|
|
17111
|
+
readonly description: "Extend the original brief: append text, attach files, add points taken from an outline, edit one point, or drop a point. Points are how the software checks that every requirement landed in a written unit, so split the person's outline into points here rather than burying them in prose. The brief carries its own revision, separate from the work and from each draft.";
|
|
17112
|
+
readonly http: "PATCH";
|
|
17113
|
+
readonly path: "/studio/v1/works/{work}/brief";
|
|
17114
|
+
readonly streaming: "no";
|
|
17115
|
+
readonly pagination: false;
|
|
17116
|
+
readonly pathParams: readonly [{
|
|
17117
|
+
readonly name: "work";
|
|
17118
|
+
readonly sdkName: "work";
|
|
17119
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17120
|
+
}];
|
|
17121
|
+
readonly query: readonly [];
|
|
17122
|
+
readonly body: {
|
|
17123
|
+
readonly required: true;
|
|
17124
|
+
readonly fields: readonly [{
|
|
17125
|
+
readonly name: "expectedRevision";
|
|
17126
|
+
readonly type: "integer";
|
|
17127
|
+
readonly required: false;
|
|
17128
|
+
readonly description: "Brief revision the caller read; a mismatch is refused with REVISION_CONFLICT rather than merged.";
|
|
17129
|
+
}, {
|
|
17130
|
+
readonly name: "text";
|
|
17131
|
+
readonly type: "string";
|
|
17132
|
+
readonly required: false;
|
|
17133
|
+
readonly description: "Text to append to the stored brief, added after what is already there and never replacing it.";
|
|
17134
|
+
}, {
|
|
17135
|
+
readonly name: "attachments";
|
|
17136
|
+
readonly type: "array";
|
|
17137
|
+
readonly itemType: "string";
|
|
17138
|
+
readonly required: false;
|
|
17139
|
+
readonly description: "Source files to keep with the brief, added to the ones already attached.";
|
|
17140
|
+
}, {
|
|
17141
|
+
readonly name: "addPoints";
|
|
17142
|
+
readonly type: "array";
|
|
17143
|
+
readonly itemType: "string";
|
|
17144
|
+
readonly required: false;
|
|
17145
|
+
readonly description: "New requirement points to split out of the brief; each receives the next free key in order.";
|
|
17146
|
+
}, {
|
|
17147
|
+
readonly name: "editPoints";
|
|
17148
|
+
readonly type: "array";
|
|
17149
|
+
readonly itemType: "object";
|
|
17150
|
+
readonly required: false;
|
|
17151
|
+
readonly description: "Existing points to reword, each naming the key it keeps and the text that replaces it.";
|
|
17152
|
+
}, {
|
|
17153
|
+
readonly name: "removePoints";
|
|
17154
|
+
readonly type: "array";
|
|
17155
|
+
readonly itemType: "string";
|
|
17156
|
+
readonly required: false;
|
|
17157
|
+
readonly description: "Keys of points to drop; a dropped key is never reused, so later points keep their own keys.";
|
|
17158
|
+
}];
|
|
17159
|
+
};
|
|
17160
|
+
}, {
|
|
17161
|
+
readonly resource: "studio.works.drafts";
|
|
17162
|
+
readonly method: "list";
|
|
17163
|
+
readonly summary: "List the drafts a work carries";
|
|
17164
|
+
readonly description: "List every draft of one work, each with its genre, its size and whether it is out of date against what it was derived from. Use it to choose the draft a later call works in: the key beside each draft is what the draft path segment takes. This list is not paged, because a work carries a handful of drafts rather than thousands.";
|
|
17165
|
+
readonly http: "GET";
|
|
17166
|
+
readonly path: "/studio/v1/works/{work}/drafts";
|
|
17167
|
+
readonly streaming: "no";
|
|
17168
|
+
readonly pagination: false;
|
|
17169
|
+
readonly pathParams: readonly [{
|
|
17170
|
+
readonly name: "work";
|
|
17171
|
+
readonly sdkName: "work";
|
|
17172
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17173
|
+
}];
|
|
17174
|
+
readonly query: readonly [];
|
|
17175
|
+
}, {
|
|
17176
|
+
readonly resource: "studio.works.drafts";
|
|
17177
|
+
readonly method: "create";
|
|
17178
|
+
readonly summary: "Create a draft of a genre inside a work";
|
|
17179
|
+
readonly description: "Create a draft: one way of delivering the work, written in one genre. The genre decides the unit kinds, the properties and the checks, so read it first with the genre call and pass its key. A template may seed the unit tree, an outline may be given instead, and derived_from records that this draft is built from the goal message or from another draft of the work. The work may hold several drafts, one per platform or per length.";
|
|
17180
|
+
readonly http: "POST";
|
|
17181
|
+
readonly path: "/studio/v1/works/{work}/drafts";
|
|
17182
|
+
readonly streaming: "no";
|
|
17183
|
+
readonly pagination: false;
|
|
17184
|
+
readonly pathParams: readonly [{
|
|
17185
|
+
readonly name: "work";
|
|
17186
|
+
readonly sdkName: "work";
|
|
17187
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17188
|
+
}];
|
|
17189
|
+
readonly query: readonly [];
|
|
17190
|
+
readonly body: {
|
|
17191
|
+
readonly required: true;
|
|
17192
|
+
readonly fields: readonly [{
|
|
17193
|
+
readonly name: "genre";
|
|
17194
|
+
readonly type: "string";
|
|
17195
|
+
readonly required: true;
|
|
17196
|
+
readonly description: "Genre key the draft is written in, taken from the genre list; it decides the unit kinds, the properties and the checks.";
|
|
17197
|
+
}, {
|
|
17198
|
+
readonly name: "title";
|
|
17199
|
+
readonly type: "string";
|
|
17200
|
+
readonly required: false;
|
|
17201
|
+
readonly description: "Page title of the new draft; omit it and one is derived from the genre and the work title.";
|
|
17202
|
+
}, {
|
|
17203
|
+
readonly name: "mode";
|
|
17204
|
+
readonly type: "string";
|
|
17205
|
+
readonly enum: readonly ["skeleton", "space"];
|
|
17206
|
+
readonly required: false;
|
|
17207
|
+
readonly description: "Structure mode to create the draft in; omit it and the genre default applies, which is skeleton for most genres.";
|
|
17208
|
+
}, {
|
|
17209
|
+
readonly name: "template";
|
|
17210
|
+
readonly type: "string";
|
|
17211
|
+
readonly required: false;
|
|
17212
|
+
readonly description: "Template to seed the unit tree from, by template identifier or built-in key; when an outline is also given, the outline wins because the person's own structure is authoritative.";
|
|
17213
|
+
}, {
|
|
17214
|
+
readonly name: "outline";
|
|
17215
|
+
readonly type: "array";
|
|
17216
|
+
readonly itemType: "object";
|
|
17217
|
+
readonly required: false;
|
|
17218
|
+
readonly description: "Unit tree to create the draft with, given by the caller instead of a template; children nest, and a unit without a kind takes the genre default for its position.";
|
|
17219
|
+
}, {
|
|
17220
|
+
readonly name: "derivedFrom";
|
|
17221
|
+
readonly type: "object";
|
|
17222
|
+
readonly required: false;
|
|
17223
|
+
readonly description: "What the new draft should be derived from, so the service can record the source revision for later staleness checks.";
|
|
17224
|
+
}, {
|
|
17225
|
+
readonly name: "props";
|
|
17226
|
+
readonly type: "object";
|
|
17227
|
+
readonly required: false;
|
|
17228
|
+
readonly description: "Initial values for the genre properties, keyed by property key; a value the genre does not define is refused rather than stored.";
|
|
17229
|
+
}, {
|
|
17230
|
+
readonly name: "requestId";
|
|
17231
|
+
readonly type: "string";
|
|
17232
|
+
readonly required: false;
|
|
17233
|
+
readonly description: "Caller-chosen key that makes this create safe to repeat: the same value answers the first draft instead of creating a second one.";
|
|
17234
|
+
}];
|
|
17235
|
+
};
|
|
17236
|
+
}, {
|
|
17237
|
+
readonly resource: "studio.works.drafts";
|
|
17238
|
+
readonly method: "retrieve";
|
|
17239
|
+
readonly summary: "Read one draft with optional units and todos";
|
|
17240
|
+
readonly description: "Read one draft: its genre, its properties, its revisions, whether it is stale, and optionally its unit tree and its todo list. Pass expand to add the parts you need in this one call instead of reading them separately. Read this before writing to the draft, because the revision it returns is the precondition the next write has to carry.";
|
|
17241
|
+
readonly http: "GET";
|
|
17242
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}";
|
|
17243
|
+
readonly streaming: "no";
|
|
17244
|
+
readonly pagination: false;
|
|
17245
|
+
readonly pathParams: readonly [{
|
|
17246
|
+
readonly name: "work";
|
|
17247
|
+
readonly sdkName: "work";
|
|
17248
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17249
|
+
}, {
|
|
17250
|
+
readonly name: "draft";
|
|
17251
|
+
readonly sdkName: "draft";
|
|
17252
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17253
|
+
}];
|
|
17254
|
+
readonly query: readonly [{
|
|
17255
|
+
readonly name: "expand";
|
|
17256
|
+
readonly type: "array";
|
|
17257
|
+
readonly itemType: "string";
|
|
17258
|
+
readonly enum: readonly ["units", "status"];
|
|
17259
|
+
readonly required: false;
|
|
17260
|
+
readonly description: "Extra parts to include, comma separated: units adds the unit tree without bodies, and status adds the computed todo list of this draft.";
|
|
17261
|
+
}];
|
|
17262
|
+
}, {
|
|
17263
|
+
readonly resource: "studio.works.drafts";
|
|
17264
|
+
readonly method: "update";
|
|
17265
|
+
readonly summary: "Change a draft title, key, properties or style";
|
|
17266
|
+
readonly description: "Change the draft itself rather than its units: its page title, its in-work key, its generic properties, the style that overrides the work style, or its mode. Send update_mask naming exactly the fields you change. Changing the key keeps the previous one resolving, so old links and old references still work; a key another draft of the work already uses answers DRAFT_KEY_TAKEN.";
|
|
17267
|
+
readonly http: "PATCH";
|
|
17268
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}";
|
|
17269
|
+
readonly streaming: "no";
|
|
17270
|
+
readonly pagination: false;
|
|
17271
|
+
readonly pathParams: readonly [{
|
|
17272
|
+
readonly name: "work";
|
|
17273
|
+
readonly sdkName: "work";
|
|
17274
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17275
|
+
}, {
|
|
17276
|
+
readonly name: "draft";
|
|
17277
|
+
readonly sdkName: "draft";
|
|
17278
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17279
|
+
}];
|
|
17280
|
+
readonly query: readonly [];
|
|
17281
|
+
readonly body: {
|
|
17282
|
+
readonly required: true;
|
|
17283
|
+
readonly fields: readonly [{
|
|
17284
|
+
readonly name: "updateMask";
|
|
17285
|
+
readonly type: "array";
|
|
17286
|
+
readonly itemType: "string";
|
|
17287
|
+
readonly required: true;
|
|
17288
|
+
readonly description: "Field paths this call changes, such as title, key or props.topics; a field left out keeps its value.";
|
|
17289
|
+
}, {
|
|
17290
|
+
readonly name: "expectedRevision";
|
|
17291
|
+
readonly type: "integer";
|
|
17292
|
+
readonly required: false;
|
|
17293
|
+
readonly description: "Draft revision the caller read; a mismatch is refused with REVISION_CONFLICT and nothing changes. Omit it only for structure calls that genuinely do not depend on the current state.";
|
|
17294
|
+
}, {
|
|
17295
|
+
readonly name: "title";
|
|
17296
|
+
readonly type: "string";
|
|
17297
|
+
readonly required: false;
|
|
17298
|
+
readonly description: "New page title of the draft, replacing the previous one when title is named in the update mask.";
|
|
17299
|
+
}, {
|
|
17300
|
+
readonly name: "key";
|
|
17301
|
+
readonly type: "string";
|
|
17302
|
+
readonly required: false;
|
|
17303
|
+
readonly description: "New in-work key; the previous key keeps resolving so existing links and references do not break.";
|
|
17304
|
+
}, {
|
|
17305
|
+
readonly name: "props";
|
|
17306
|
+
readonly type: "object";
|
|
17307
|
+
readonly required: false;
|
|
17308
|
+
readonly description: "Property values to set, keyed by the genre property key; a property the genre does not define is refused.";
|
|
17309
|
+
}, {
|
|
17310
|
+
readonly name: "style";
|
|
17311
|
+
readonly type: "string";
|
|
17312
|
+
readonly required: false;
|
|
17313
|
+
readonly description: "Style to attach to this draft, overriding the work style; send an empty value to fall back to the work style.";
|
|
17314
|
+
}, {
|
|
17315
|
+
readonly name: "mode";
|
|
17316
|
+
readonly type: "string";
|
|
17317
|
+
readonly enum: readonly ["skeleton", "space"];
|
|
17318
|
+
readonly required: false;
|
|
17319
|
+
readonly description: "Structure mode to switch the draft to; switching away from skeleton does not delete units that already exist.";
|
|
17320
|
+
}];
|
|
17321
|
+
};
|
|
17322
|
+
}, {
|
|
17323
|
+
readonly resource: "studio.works.drafts";
|
|
17324
|
+
readonly method: "retrieveExport";
|
|
17325
|
+
readonly summary: "Export the draft as Markdown or plain text";
|
|
17326
|
+
readonly description: "Read the whole draft as one document in Markdown or plain text, returned synchronously in the answer. This is the quick path for a person who wants the text now; a file in a platform format, a card image or a docx comes from creating a rendition instead. Ask for text rather than markdown when the reader should not see block anchors or heading syntax.";
|
|
17327
|
+
readonly http: "GET";
|
|
17328
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/export";
|
|
17329
|
+
readonly streaming: "no";
|
|
17330
|
+
readonly pagination: false;
|
|
17331
|
+
readonly pathParams: readonly [{
|
|
17332
|
+
readonly name: "work";
|
|
17333
|
+
readonly sdkName: "work";
|
|
17334
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17335
|
+
}, {
|
|
17336
|
+
readonly name: "draft";
|
|
17337
|
+
readonly sdkName: "draft";
|
|
17338
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17339
|
+
}];
|
|
17340
|
+
readonly query: readonly [{
|
|
17341
|
+
readonly name: "format";
|
|
17342
|
+
readonly type: "string";
|
|
17343
|
+
readonly enum: readonly ["markdown", "text"];
|
|
17344
|
+
readonly required: true;
|
|
17345
|
+
readonly description: "Format to render the draft in: markdown keeps headings, list markers and block anchors, and text drops the markup entirely.";
|
|
17346
|
+
}];
|
|
17347
|
+
}, {
|
|
17348
|
+
readonly resource: "studio.works.drafts";
|
|
17349
|
+
readonly method: "retrieveOutline";
|
|
17350
|
+
readonly summary: "Read the whole unit outline as Markdown";
|
|
17351
|
+
readonly description: "Read the draft structure as one Markdown page: one line per unit carrying its number, structure name, intent, status, length and revision, followed by the unit list itself. Use it to plan a sequence of writes without reading every unit, since it carries no body text. Read one unit in full with the unit call once you know which one to write.";
|
|
17352
|
+
readonly http: "GET";
|
|
17353
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/outline";
|
|
17354
|
+
readonly streaming: "no";
|
|
17355
|
+
readonly pagination: false;
|
|
17356
|
+
readonly pathParams: readonly [{
|
|
17357
|
+
readonly name: "work";
|
|
17358
|
+
readonly sdkName: "work";
|
|
17359
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17360
|
+
}, {
|
|
17361
|
+
readonly name: "draft";
|
|
17362
|
+
readonly sdkName: "draft";
|
|
17363
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17364
|
+
}];
|
|
17365
|
+
readonly query: readonly [];
|
|
17366
|
+
}, {
|
|
17367
|
+
readonly resource: "studio.works.drafts";
|
|
17368
|
+
readonly method: "retrieveReview";
|
|
17369
|
+
readonly summary: "Read a review pass over the whole draft";
|
|
17370
|
+
readonly description: "Read everything a reviewer needs in one answer: the deterministic check results, the semantic review list the genre asks a reader to judge, the brief coverage showing which unit claims each requirement point, and the body text. When the draft is long the body is a synopsis with an excerpt around each unit and next_page_token carries the full text. This is the call an agent makes before writing review comments.";
|
|
17371
|
+
readonly http: "GET";
|
|
17372
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/review";
|
|
17373
|
+
readonly streaming: "no";
|
|
17374
|
+
readonly pagination: false;
|
|
17375
|
+
readonly pathParams: readonly [{
|
|
17376
|
+
readonly name: "work";
|
|
17377
|
+
readonly sdkName: "work";
|
|
17378
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17379
|
+
}, {
|
|
17380
|
+
readonly name: "draft";
|
|
17381
|
+
readonly sdkName: "draft";
|
|
17382
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17383
|
+
}];
|
|
17384
|
+
readonly query: readonly [{
|
|
17385
|
+
readonly name: "page_token";
|
|
17386
|
+
readonly type: "string";
|
|
17387
|
+
readonly required: false;
|
|
17388
|
+
readonly description: "Cursor from the previous answer's next_page_token; it is opaque, so pass it back unchanged and never build one from an id or an offset.";
|
|
17389
|
+
}];
|
|
17390
|
+
}, {
|
|
17391
|
+
readonly resource: "studio.works.drafts.status";
|
|
17392
|
+
readonly method: "list";
|
|
17393
|
+
readonly summary: "Read the computed todo list of a draft";
|
|
17394
|
+
readonly description: "Read what is outstanding in one draft, computed from the data rather than from a plan: a unit without an intent, a body behind its intent, an unclaimed brief point, a failed check, a stale rendition. Each item names the layer it belongs to and suggests the call that resolves it. Follow the list instead of inventing an order, and re-read it after a batch of writes.";
|
|
17395
|
+
readonly http: "GET";
|
|
17396
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/status";
|
|
17397
|
+
readonly streaming: "no";
|
|
17398
|
+
readonly pagination: false;
|
|
17399
|
+
readonly pathParams: readonly [{
|
|
17400
|
+
readonly name: "work";
|
|
17401
|
+
readonly sdkName: "work";
|
|
17402
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17403
|
+
}, {
|
|
17404
|
+
readonly name: "draft";
|
|
17405
|
+
readonly sdkName: "draft";
|
|
17406
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17407
|
+
}];
|
|
17408
|
+
readonly query: readonly [];
|
|
17409
|
+
}, {
|
|
17410
|
+
readonly resource: "studio.works.drafts.units";
|
|
17411
|
+
readonly method: "create";
|
|
17412
|
+
readonly summary: "Add one unit to the draft tree";
|
|
17413
|
+
readonly description: "Add a unit to the structure: a chapter, a scene, a section, an argument or a product depending on the genre. Say where it goes with parent and after, give it the structure name people will use to manage it, and write the intent that says what it has to accomplish. Adding a unit changes the draft revision, so pass expected_revision, and the new unit itself starts with no body.";
|
|
17414
|
+
readonly http: "POST";
|
|
17415
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/units";
|
|
17416
|
+
readonly streaming: "no";
|
|
17417
|
+
readonly pagination: false;
|
|
17418
|
+
readonly pathParams: readonly [{
|
|
17419
|
+
readonly name: "work";
|
|
17420
|
+
readonly sdkName: "work";
|
|
17421
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17422
|
+
}, {
|
|
17423
|
+
readonly name: "draft";
|
|
17424
|
+
readonly sdkName: "draft";
|
|
17425
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17426
|
+
}];
|
|
17427
|
+
readonly query: readonly [];
|
|
17428
|
+
readonly body: {
|
|
17429
|
+
readonly required: true;
|
|
17430
|
+
readonly fields: readonly [{
|
|
17431
|
+
readonly name: "kind";
|
|
17432
|
+
readonly type: "string";
|
|
17433
|
+
readonly required: true;
|
|
17434
|
+
readonly description: "Structural kind of the new unit, which must be one the genre allows at that position of the tree.";
|
|
17435
|
+
}, {
|
|
17436
|
+
readonly name: "name";
|
|
17437
|
+
readonly type: "string";
|
|
17438
|
+
readonly required: true;
|
|
17439
|
+
readonly description: "Structure name used to manage the tree, such as 场景 2 · 找上门; it is not the heading the finished piece shows.";
|
|
17440
|
+
}, {
|
|
17441
|
+
readonly name: "heading";
|
|
17442
|
+
readonly type: "string";
|
|
17443
|
+
readonly required: false;
|
|
17444
|
+
readonly description: "Heading the finished piece shows for this unit; leave it out when the genre wants the structure name kept out of the output.";
|
|
17445
|
+
}, {
|
|
17446
|
+
readonly name: "parent";
|
|
17447
|
+
readonly type: "string";
|
|
17448
|
+
readonly required: false;
|
|
17449
|
+
readonly description: "Unit this one should sit under, by number or identifier; null or omitted places it at the top level.";
|
|
17450
|
+
}, {
|
|
17451
|
+
readonly name: "after";
|
|
17452
|
+
readonly type: "string";
|
|
17453
|
+
readonly required: false;
|
|
17454
|
+
readonly description: "Sibling this one should follow, by number or identifier; null or omitted appends it at the end of its level.";
|
|
17455
|
+
}, {
|
|
17456
|
+
readonly name: "synopsis";
|
|
17457
|
+
readonly type: "string";
|
|
17458
|
+
readonly required: false;
|
|
17459
|
+
readonly description: "What this unit has to accomplish, written as the story so far for the units after it; a unit with a synopsis is outlined rather than merely planned.";
|
|
17460
|
+
}, {
|
|
17461
|
+
readonly name: "points";
|
|
17462
|
+
readonly type: "array";
|
|
17463
|
+
readonly itemType: "string";
|
|
17464
|
+
readonly required: false;
|
|
17465
|
+
readonly description: "Points this unit hits, called beats, arguments or selling points depending on the genre.";
|
|
17466
|
+
}, {
|
|
17467
|
+
readonly name: "brief_points";
|
|
17468
|
+
readonly type: "array";
|
|
17469
|
+
readonly itemType: "string";
|
|
17470
|
+
readonly required: false;
|
|
17471
|
+
readonly description: "Keys of the brief points this unit claims, which is how the coverage check follows each requirement to a unit.";
|
|
17472
|
+
}];
|
|
17473
|
+
};
|
|
17474
|
+
}, {
|
|
17475
|
+
readonly resource: "studio.works.drafts.units";
|
|
17476
|
+
readonly method: "batchCreate";
|
|
17477
|
+
readonly summary: "Add a whole outline of units at once";
|
|
17478
|
+
readonly description: "Create many units in one write from a nested outline, which is how a structure is built after the person approved a plan. Nesting in the outline becomes the parent chain, numbers are assigned in order, and the draft gets one revision for the whole batch rather than one per unit. Sending the same outline twice would duplicate it, so pass the draft revision you read and repeat the call only after a refusal.";
|
|
17479
|
+
readonly http: "POST";
|
|
17480
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/units:batchCreate";
|
|
17481
|
+
readonly streaming: "no";
|
|
17482
|
+
readonly pagination: false;
|
|
17483
|
+
readonly pathParams: readonly [{
|
|
17484
|
+
readonly name: "work";
|
|
17485
|
+
readonly sdkName: "work";
|
|
17486
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17487
|
+
}, {
|
|
17488
|
+
readonly name: "draft";
|
|
17489
|
+
readonly sdkName: "draft";
|
|
17490
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17491
|
+
}];
|
|
17492
|
+
readonly query: readonly [];
|
|
17493
|
+
readonly body: {
|
|
17494
|
+
readonly required: true;
|
|
17495
|
+
readonly fields: readonly [{
|
|
17496
|
+
readonly name: "expected_revision";
|
|
17497
|
+
readonly type: "integer";
|
|
17498
|
+
readonly required: false;
|
|
17499
|
+
readonly description: "Draft revision the caller read; a mismatch is refused, which is what stops a repeated batch from duplicating a structure.";
|
|
17500
|
+
}, {
|
|
17501
|
+
readonly name: "parent";
|
|
17502
|
+
readonly type: "string";
|
|
17503
|
+
readonly required: false;
|
|
17504
|
+
readonly description: "Unit the whole outline should hang under, by number or identifier; null or omitted builds it at the top level.";
|
|
17505
|
+
}, {
|
|
17506
|
+
readonly name: "outline";
|
|
17507
|
+
readonly type: "array";
|
|
17508
|
+
readonly itemType: "object";
|
|
17509
|
+
readonly required: true;
|
|
17510
|
+
readonly description: "Units to create in order, with children nested inside their parent; the nesting becomes the parent chain of the created units.";
|
|
17511
|
+
}];
|
|
17512
|
+
};
|
|
17513
|
+
}, {
|
|
17514
|
+
readonly resource: "studio.works.drafts.units";
|
|
17515
|
+
readonly method: "batchUpdate";
|
|
17516
|
+
readonly summary: "Write intents for many units in one call";
|
|
17517
|
+
readonly description: "Change the intent of several units in one write: the synopsis, the points and the brief points each of them claims. Bodies are not part of this call, because a body is written one unit at a time with its own revision; here the whole batch shares the draft revision you read. Use it to lay out a plan across the tree, then write bodies one by one.";
|
|
17518
|
+
readonly http: "POST";
|
|
17519
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}/units:batchUpdate";
|
|
17520
|
+
readonly streaming: "no";
|
|
17521
|
+
readonly pagination: false;
|
|
17522
|
+
readonly pathParams: readonly [{
|
|
17523
|
+
readonly name: "work";
|
|
17524
|
+
readonly sdkName: "work";
|
|
17525
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17526
|
+
}, {
|
|
17527
|
+
readonly name: "draft";
|
|
17528
|
+
readonly sdkName: "draft";
|
|
17529
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17530
|
+
}];
|
|
17531
|
+
readonly query: readonly [];
|
|
17532
|
+
readonly body: {
|
|
17533
|
+
readonly required: true;
|
|
17534
|
+
readonly fields: readonly [{
|
|
17535
|
+
readonly name: "expected_revision";
|
|
17536
|
+
readonly type: "integer";
|
|
17537
|
+
readonly required: false;
|
|
17538
|
+
readonly description: "Draft revision the caller read; a mismatch is refused, so a plan written from a stale outline cannot land.";
|
|
17539
|
+
}, {
|
|
17540
|
+
readonly name: "updates";
|
|
17541
|
+
readonly type: "array";
|
|
17542
|
+
readonly itemType: "object";
|
|
17543
|
+
readonly required: true;
|
|
17544
|
+
readonly description: "Units to change, each naming the unit and the intent fields it takes; a body is never part of a batch, because bodies are written one unit at a time.";
|
|
17545
|
+
}];
|
|
17546
|
+
};
|
|
17547
|
+
}, {
|
|
17548
|
+
readonly resource: "studio.works.drafts";
|
|
17549
|
+
readonly method: "rebase";
|
|
17550
|
+
readonly summary: "Confirm a draft already follows its source";
|
|
17551
|
+
readonly description: "Clear the stale flag after checking that the draft still matches what it was derived from: the recorded source revision moves to the source current revision without touching any unit. Call it after the source moved and you have brought this draft up to date, not to make the flag disappear while the text is still behind. It answers the same shape as a draft write, and the draft revision does not move.";
|
|
17552
|
+
readonly http: "POST";
|
|
17553
|
+
readonly path: "/studio/v1/works/{work}/drafts/{draft}:rebase";
|
|
17554
|
+
readonly streaming: "no";
|
|
17555
|
+
readonly pagination: false;
|
|
17556
|
+
readonly pathParams: readonly [{
|
|
17557
|
+
readonly name: "work";
|
|
17558
|
+
readonly sdkName: "work";
|
|
17559
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17560
|
+
}, {
|
|
17561
|
+
readonly name: "draft";
|
|
17562
|
+
readonly sdkName: "draft";
|
|
17563
|
+
readonly description: "Draft being addressed, either its in-work key such as novel or its drf_ identifier; a key renamed earlier still resolves through its previous value.";
|
|
17564
|
+
}];
|
|
17565
|
+
readonly query: readonly [];
|
|
17566
|
+
readonly body: {
|
|
17567
|
+
readonly required: false;
|
|
17568
|
+
readonly fields: readonly [{
|
|
17569
|
+
readonly name: "expectedRevision";
|
|
17570
|
+
readonly type: "integer";
|
|
17571
|
+
readonly required: false;
|
|
17572
|
+
readonly description: "Draft revision the caller read; a mismatch is refused rather than confirming a draft that changed under the caller.";
|
|
17573
|
+
}];
|
|
17574
|
+
};
|
|
17575
|
+
}, {
|
|
17576
|
+
readonly resource: "studio.works.units";
|
|
17577
|
+
readonly method: "retrieve";
|
|
17578
|
+
readonly summary: "Read one unit with its blocks and Markdown";
|
|
17579
|
+
readonly description: "Read one unit: its intent, its status, its revision, its links to reference entries, and its body as both blocks and Markdown. The Markdown carries each block identifier inline as an anchor comment, so a rewrite can keep the identifiers of the blocks it keeps. Read this before writing the body, because the revision it returns is the precondition that write has to carry.";
|
|
17580
|
+
readonly http: "GET";
|
|
17581
|
+
readonly path: "/studio/v1/works/{work}/units/{unit}";
|
|
17582
|
+
readonly streaming: "no";
|
|
17583
|
+
readonly pagination: false;
|
|
17584
|
+
readonly pathParams: readonly [{
|
|
17585
|
+
readonly name: "work";
|
|
17586
|
+
readonly sdkName: "work";
|
|
17587
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17588
|
+
}, {
|
|
17589
|
+
readonly name: "unit";
|
|
17590
|
+
readonly sdkName: "unit";
|
|
17591
|
+
readonly description: "Unit being addressed, written as its in-work number such as 12, as #12, or as its unt_ identifier; the number never changes when the unit is moved.";
|
|
17592
|
+
}];
|
|
17593
|
+
readonly query: readonly [{
|
|
17594
|
+
readonly name: "view";
|
|
17595
|
+
readonly type: "string";
|
|
17596
|
+
readonly enum: readonly ["full", "basic"];
|
|
17597
|
+
readonly required: false;
|
|
17598
|
+
readonly description: "How much of the unit to return: full includes the blocks and the Markdown body, and basic returns the unit row without the body for a cheap status check.";
|
|
17599
|
+
}];
|
|
17600
|
+
}, {
|
|
17601
|
+
readonly resource: "studio.works.units";
|
|
17602
|
+
readonly method: "update";
|
|
17603
|
+
readonly summary: "Change a unit intent, body or status";
|
|
17604
|
+
readonly description: "Change one unit: its name, its heading, its synopsis and points, the brief points it claims, its status, its links to reference entries, or its body as a whole Markdown text. A body write requires expected_revision, because replacing the whole text would drop blocks someone else inserted. The answer carries the unit as it now stands, so read the next field of the answer instead of re-reading the unit.";
|
|
17605
|
+
readonly http: "PATCH";
|
|
17606
|
+
readonly path: "/studio/v1/works/{work}/units/{unit}";
|
|
17607
|
+
readonly streaming: "no";
|
|
17608
|
+
readonly pagination: false;
|
|
17609
|
+
readonly pathParams: readonly [{
|
|
17610
|
+
readonly name: "work";
|
|
17611
|
+
readonly sdkName: "work";
|
|
17612
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17613
|
+
}, {
|
|
17614
|
+
readonly name: "unit";
|
|
17615
|
+
readonly sdkName: "unit";
|
|
17616
|
+
readonly description: "Unit being addressed, written as its in-work number such as 12, as #12, or as its unt_ identifier; the number never changes when the unit is moved.";
|
|
17617
|
+
}];
|
|
17618
|
+
readonly query: readonly [];
|
|
17619
|
+
readonly body: {
|
|
17620
|
+
readonly required: true;
|
|
17621
|
+
readonly fields: readonly [{
|
|
17622
|
+
readonly name: "expected_revision";
|
|
17623
|
+
readonly type: "integer";
|
|
17624
|
+
readonly required: false;
|
|
17625
|
+
readonly description: "Unit revision the caller read; required whenever body is sent, because replacing the whole text would discard blocks another writer inserted since.";
|
|
17626
|
+
}, {
|
|
17627
|
+
readonly name: "name";
|
|
17628
|
+
readonly type: "string";
|
|
17629
|
+
readonly required: false;
|
|
17630
|
+
readonly description: "New structure name of the unit, used by people and agents to manage the tree.";
|
|
17631
|
+
}, {
|
|
17632
|
+
readonly name: "heading";
|
|
17633
|
+
readonly type: "string";
|
|
17634
|
+
readonly required: false;
|
|
17635
|
+
readonly description: "New heading the finished piece shows; send an empty value to remove the heading entirely.";
|
|
17636
|
+
}, {
|
|
17637
|
+
readonly name: "synopsis";
|
|
17638
|
+
readonly type: "string";
|
|
17639
|
+
readonly required: false;
|
|
17640
|
+
readonly description: "New synopsis of what this unit has to accomplish; changing it advances the intent revision, which leaves any existing body behind it.";
|
|
17641
|
+
}, {
|
|
17642
|
+
readonly name: "points";
|
|
17643
|
+
readonly type: "array";
|
|
17644
|
+
readonly itemType: "string";
|
|
17645
|
+
readonly required: false;
|
|
17646
|
+
readonly description: "Complete set of points this unit hits, replacing the previous ones.";
|
|
17647
|
+
}, {
|
|
17648
|
+
readonly name: "brief_points";
|
|
17649
|
+
readonly type: "array";
|
|
17650
|
+
readonly itemType: "string";
|
|
17651
|
+
readonly required: false;
|
|
17652
|
+
readonly description: "Complete set of brief point keys this unit claims, replacing the previous claims so coverage follows the latest intent.";
|
|
17653
|
+
}, {
|
|
17654
|
+
readonly name: "body";
|
|
17655
|
+
readonly type: "string";
|
|
17656
|
+
readonly required: false;
|
|
17657
|
+
readonly description: "Whole body as Markdown with block anchors kept inline; the blocks named by anchors keep their identifiers, and paragraphs without an anchor become new blocks.";
|
|
17658
|
+
}, {
|
|
17659
|
+
readonly name: "synopsis_from_body";
|
|
17660
|
+
readonly type: "boolean";
|
|
17661
|
+
readonly required: false;
|
|
17662
|
+
readonly description: "Set to true together with body to record that the synopsis now describes what the text actually says rather than what was planned.";
|
|
17663
|
+
}, {
|
|
17664
|
+
readonly name: "status";
|
|
17665
|
+
readonly type: "string";
|
|
17666
|
+
readonly enum: readonly ["idea", "outlined", "writing", "drafted", "revised", "final"];
|
|
17667
|
+
readonly required: false;
|
|
17668
|
+
readonly description: "Unit status to set; moving to final declares the unit done, and changing it afterwards needs the confirmation flag.";
|
|
17669
|
+
}, {
|
|
17670
|
+
readonly name: "links";
|
|
17671
|
+
readonly type: "object";
|
|
17672
|
+
readonly required: false;
|
|
17673
|
+
readonly description: "Reference entries to tie to a unit or untie from it, beyond the mentions detected in its text.";
|
|
17674
|
+
}, {
|
|
17675
|
+
readonly name: "seconds";
|
|
17676
|
+
readonly type: "integer";
|
|
17677
|
+
readonly required: false;
|
|
17678
|
+
readonly description: "Duration of this unit in seconds for a video genre, which its length checks measure; send null to clear it.";
|
|
17679
|
+
}, {
|
|
17680
|
+
readonly name: "confirm_final_edit";
|
|
17681
|
+
readonly type: "boolean";
|
|
17682
|
+
readonly required: false;
|
|
17683
|
+
readonly description: "Confirmation that a unit marked final may change; send it only when the person themselves asked for the change, never to make a refusal go away.";
|
|
17684
|
+
}];
|
|
17685
|
+
};
|
|
17686
|
+
}, {
|
|
17687
|
+
readonly resource: "studio.works.units.blocks";
|
|
17688
|
+
readonly method: "patch";
|
|
17689
|
+
readonly summary: "Edit a unit body block by block";
|
|
17690
|
+
readonly description: "Change a body by naming the blocks to insert, replace or delete instead of resending the whole text. This is the safe way for a writer that only touches part of a unit, because a block another writer changed after your revision is refused rather than overwritten. The revision is required, and the answer carries the unit with its blocks so the next edit can address them.";
|
|
17691
|
+
readonly http: "POST";
|
|
17692
|
+
readonly path: "/studio/v1/works/{work}/units/{unit}/blocks:patch";
|
|
17693
|
+
readonly streaming: "no";
|
|
17694
|
+
readonly pagination: false;
|
|
17695
|
+
readonly pathParams: readonly [{
|
|
17696
|
+
readonly name: "work";
|
|
17697
|
+
readonly sdkName: "work";
|
|
17698
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17699
|
+
}, {
|
|
17700
|
+
readonly name: "unit";
|
|
17701
|
+
readonly sdkName: "unit";
|
|
17702
|
+
readonly description: "Unit being addressed, written as its in-work number such as 12, as #12, or as its unt_ identifier; the number never changes when the unit is moved.";
|
|
17703
|
+
}];
|
|
17704
|
+
readonly query: readonly [];
|
|
17705
|
+
readonly body: {
|
|
17706
|
+
readonly required: true;
|
|
17707
|
+
readonly fields: readonly [{
|
|
17708
|
+
readonly name: "expected_revision";
|
|
17709
|
+
readonly type: "integer";
|
|
17710
|
+
readonly required: true;
|
|
17711
|
+
readonly description: "Unit revision the caller read; it is required, and when a block this call touches changed after it the whole call is refused rather than applied partially.";
|
|
17712
|
+
}, {
|
|
17713
|
+
readonly name: "ops";
|
|
17714
|
+
readonly type: "array";
|
|
17715
|
+
readonly itemType: "object";
|
|
17716
|
+
readonly required: true;
|
|
17717
|
+
readonly description: "Operations in the order they apply; each one addresses existing blocks by identifier, so an order that deletes before replacing what it deleted is refused.";
|
|
17718
|
+
}, {
|
|
17719
|
+
readonly name: "confirm_final_edit";
|
|
17720
|
+
readonly type: "boolean";
|
|
17721
|
+
readonly required: false;
|
|
17722
|
+
readonly description: "Confirmation that a unit marked final may change; send it only when the person themselves asked for the change.";
|
|
17723
|
+
}];
|
|
17724
|
+
};
|
|
17725
|
+
}, {
|
|
17726
|
+
readonly resource: "studio.works.units";
|
|
17727
|
+
readonly method: "retrieveContext";
|
|
17728
|
+
readonly summary: "Read the context pack for writing one unit";
|
|
17729
|
+
readonly description: "Read everything a writer needs before touching one unit: the genre rules, the goal, the brief, the style, the upstream source, the reference entries this unit draws on, the synopses of the units before it, and the intent of this unit, assembled in a fixed order and measured against a token budget. Entries left out say why, so a missing detail is visible rather than silent. Same input gives the same pack, which is what makes a written result reproducible.";
|
|
17730
|
+
readonly http: "GET";
|
|
17731
|
+
readonly path: "/studio/v1/works/{work}/units/{unit}/context";
|
|
17732
|
+
readonly streaming: "no";
|
|
17733
|
+
readonly pagination: false;
|
|
17734
|
+
readonly pathParams: readonly [{
|
|
17735
|
+
readonly name: "work";
|
|
17736
|
+
readonly sdkName: "work";
|
|
17737
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17738
|
+
}, {
|
|
17739
|
+
readonly name: "unit";
|
|
17740
|
+
readonly sdkName: "unit";
|
|
17741
|
+
readonly description: "Unit being addressed, written as its in-work number such as 12, as #12, or as its unt_ identifier; the number never changes when the unit is moved.";
|
|
17742
|
+
}];
|
|
17743
|
+
readonly query: readonly [{
|
|
17744
|
+
readonly name: "budget_tokens";
|
|
17745
|
+
readonly type: "integer";
|
|
17746
|
+
readonly required: false;
|
|
17747
|
+
readonly description: "Token budget the pack must fit into; the reference and previous sections are cut to fit it while the genre, brief and unit sections always arrive whole. Omit it to use the service default.";
|
|
17748
|
+
}];
|
|
17749
|
+
}, {
|
|
17750
|
+
readonly resource: "studio.works.units";
|
|
17751
|
+
readonly method: "move";
|
|
17752
|
+
readonly summary: "Move a unit to another place in the tree";
|
|
17753
|
+
readonly description: "Move a unit under another parent or after another sibling, without changing its number, its identifier, its intent or its body. A move that would put a unit inside its own descendant, or that would cross into another draft, is refused. Only the moved unit changes, so the revision to pass is its own.";
|
|
17754
|
+
readonly http: "POST";
|
|
17755
|
+
readonly path: "/studio/v1/works/{work}/units/{unit}:move";
|
|
17756
|
+
readonly streaming: "no";
|
|
17757
|
+
readonly pagination: false;
|
|
17758
|
+
readonly pathParams: readonly [{
|
|
17759
|
+
readonly name: "work";
|
|
17760
|
+
readonly sdkName: "work";
|
|
17761
|
+
readonly description: "The work being addressed, either its organization-unique slug or its wk_ identifier; a slug case is what a person would say, and a renamed slug still resolves through its old value.";
|
|
17762
|
+
}, {
|
|
17763
|
+
readonly name: "unit";
|
|
17764
|
+
readonly sdkName: "unit";
|
|
17765
|
+
readonly description: "Unit being addressed, written as its in-work number such as 12, as #12, or as its unt_ identifier; the number never changes when the unit is moved.";
|
|
17766
|
+
}];
|
|
17767
|
+
readonly query: readonly [];
|
|
17768
|
+
readonly body: {
|
|
17769
|
+
readonly required: true;
|
|
17770
|
+
readonly fields: readonly [{
|
|
17771
|
+
readonly name: "expected_revision";
|
|
17772
|
+
readonly type: "integer";
|
|
17773
|
+
readonly required: false;
|
|
17774
|
+
readonly description: "Unit revision the caller read; a mismatch is refused so a move never lands on a unit someone else just changed.";
|
|
17775
|
+
}, {
|
|
17776
|
+
readonly name: "parent";
|
|
17777
|
+
readonly type: "string";
|
|
17778
|
+
readonly required: false;
|
|
17779
|
+
readonly description: "Unit to move this one under, by number or identifier; null or omitted moves it to the top level.";
|
|
17780
|
+
}, {
|
|
17781
|
+
readonly name: "after";
|
|
17782
|
+
readonly type: "string";
|
|
17783
|
+
readonly required: false;
|
|
17784
|
+
readonly description: "Sibling to place this unit after, by number or identifier; null or omitted puts it first among its new siblings.";
|
|
17785
|
+
}];
|
|
17786
|
+
};
|
|
17787
|
+
}, {
|
|
17788
|
+
readonly resource: "studio.works";
|
|
17789
|
+
readonly method: "resolve";
|
|
17790
|
+
readonly summary: "Resolve a loose reference to a work, draft or unit";
|
|
17791
|
+
readonly description: "Turn a loose reference into the address the other calls take: a slug, a work title, a draft key or a unit number, as a person or another tool would say it. A hit answers the work slug and, when the reference pointed deeper, the draft key and unit number; a miss answers an empty resolved value with up to three near matches instead of failing. Use it when a person names something instead of an id.";
|
|
17792
|
+
readonly http: "GET";
|
|
17793
|
+
readonly path: "/studio/v1/works:resolve";
|
|
17794
|
+
readonly streaming: "no";
|
|
17795
|
+
readonly pagination: false;
|
|
17796
|
+
readonly pathParams: readonly [];
|
|
17797
|
+
readonly query: readonly [{
|
|
17798
|
+
readonly name: "ref";
|
|
17799
|
+
readonly type: "string";
|
|
17800
|
+
readonly required: true;
|
|
17801
|
+
readonly description: "What the caller said, such as a work slug, a work title, a draft key with a unit number like novel#12, or a title with a typo; it is matched loosely and never has to be an identifier.";
|
|
17802
|
+
}];
|
|
15985
17803
|
}, {
|
|
15986
17804
|
readonly resource: "ticket.activity";
|
|
15987
17805
|
readonly method: "retrieve";
|