ブロックハッシュとリビジョンによって保護された prose ops(insert、replace、delete、move、set、restore)を使用し、ブロック ID または引用された単語によって社内 Space ドキュメントを編集
Space ドキュメントを prose ops で編集します。最新バージョンに対して順序どおり、かつオールオアナッシングで適用されます(その間にユーザーが入力したテキストは保持されます)。Ops: insert {target, side, source} · replace {target, with} · delete {target} · move {target, to:{target, side}} · set {target, attrs:{kind|checked|background|rows|spec|caption}} · restore {rev}(その呼び出し内で唯一の op、payload.ifRev = 最新リビジョン)。Targets: {"kind":"find","text":"…","nth"?} 現状の単語 · {"kind":"blocks","ids":[…]} read または ack から取得した完全な ID · {"kind":"root"}(side: start/end) · {"kind":"cell","table","row","col"}。source/with = {"from":{"kind":"inline","content":…},"as":"text"|"markdown"|"blocks"}: text は書式を保持したままその場で文言を変更します。markdown はブロックを再作成します。blocks は JSON ノードツリーです(テーブルの行: [{"type":"row","content":[{"type":"cell",…}]}])。pending(保留中)のブロックは、その ID を "## Heading" + 本文 で置換することで入力されます(ガードなし)。その後の編集では、その ack 内の ID を使用します。ブロック全体の replace/delete には "ifHash"(最新の h)と "ifRev"(それを表示した読み取り時の rev)を含めます。複数の ID またはセルには "ifRev" を指定します。"force" は上書きを明示的に指示された場合のみ使用します。見出し ID に対する side "end" = そのセクションの末尾、リスト/テーブル/行 ID に対する side "end" = その内部への追加となります。set: リストの kind は bullet|ordered|check、チェックリスト項目の checked、セルの background は #f0efec #fbebeb #f9ece7 #f9eeda #e5f4e4 #e7f1fb #efedff のいずれか(null でクリア)です。列(Column): すべての行 ID において "each":true を指定して insert します。チャートとダイアグラム: チャートブロックは rows + spec から描画され、画像になることはありません。ダイアグラムブロックは boxes + connectors から描画されます。埋め込みチップ <?claude block chart?> + blocks {"chart":{"type":"chart","spec":{…},"rows":[…],"caption":"…"}}(または "type":"diagram")で配置し、その ID に対して set attrs {rows|spec|caption} を実行して変更します。チップ: Markdown 内に <?claude block key?> を配置し、"blocks" 内にチップを配置します。mention は {"user":"me"}(リクエスト元のユーザー)、既存メンバーのユーザー ID、またはユーザーが明示的に指定した場合のみメールアドレスを指定します(推測して指定しないでください)。mention {"ref":"project/<doc id>"} は別のドキュメントにリンクします。date {"value":"YYYY-MM-DD"} は実行可能な日付にのみ使用します。このワークスペースのメンバーおよびドキュメントのみが解決されます。画像とファイル: まず Blob を作成し(create_space_document_blob)、その Markdown()を挿入します。別のワークスペースの blob/<id> は拒否されます。拒否された場合は何も書き込まれません。error.code(guard_mismatch: ブロックが変更されたため error.data に現状が表示されます。そこからやり直してください。force は決して使用しないでください。find_none: 再度読み取り、現在の記述を引用してください。block_gone: 誰かが削除したため、決して再作成しないでください。missing_guard、cell_none、last_block、same_anchor、place_arity、shape、bad_request)および error.param(op のパス)を含む 409 が返されます。
curl -X POST "https://api.orchestor.io/v1/space/documents/%3Cdocument_id%3E/edit" \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-ID: wks_abc123" \ -H "Content-Type: application/json" \ -d '{ "answering": "string", "ifRev": 1, "ops": [ { "each": true, "op": "insert", "side": "before", "source": { "as": "text", "blocks": {}, "from": { "content": "string", "kind": "inline" } }, "target": { "kind": "find", "nth": 1, "text": "string", "within": { "col": 1, "kind": "cell", "row": 1, "table": "string" } } } ]}'{ "data": { "ops": [ { "notices": [ "<string>" ], "op": "<string>", "xml": "<string>" } ], "rev": 0 }}Orchestor API キーを取得
ワークスペースの設定から API キーを作成します。