コマンド一覧
oniyanma の操作はすべてコマンドに集約されている。UI ボタン・キーボードショートカット・⌘K パレット・アプリ内 AI コンソール・MCP の5経路が、例外なくこの 125 個を通る。
ここに載っている引数表は、アプリが実行時に AI へ渡す toolDefs() を packages/app/src/command/registry.ts から読んで生成したもの。手で書き写していないので、実装とズレない。
呼び出し方は window.oniyanma、座標系の約束はリファレンス概要を参照。
早見表
読み取り専用 の 29 個は、読み取り専用サーフェス(surface: 'read')でも実行できる。確認ゲート は機械から呼ぶと一度ドライランを挟む。
| コマンド | 印 | 概要 |
|---|---|---|
| 表示 | ||
setMeasureMode | 計測モードを切替(off / distance=2点間距離 / path=折れ線 / area=水平投影面積 … | |
addMeasurePoint | 計測に点を1つ追加する(実座標 m) | |
undoMeasurePoint | 計測で最後に打った点を1つ取り消す(計測点は Undo 履歴に入らないので undo では戻らない) | |
getPickedPoint | 画面で最後に指した箇所の実座標(m)を返す(計測モードに関係なく、当たったクリックを記録している) | |
clearMeasure | 進行中の計測を取り消す(打った点をすべて消す) | |
setColorMode | カラーモードを切替(rgb / intensity / elevation=標高 / classificati… | |
setDeviationSurface | 差分解析ヒートマップが比較する設計面(TIN)を選ぶ | |
setDeviationRange | 差分解析ヒートマップの色レンジ(m) | |
setPointSize | 点サイズ(px)を設定 | |
setEdl | EDL 陰影の強さを設定(0=なし) | |
setGrid | グリッド/座標軸の表示切替 | |
setBasemap | ベースマップ(地理院タイル・標準地図)の表示切替 | |
getBasemapStatus | 読 | ベースマップの状態 |
setBudget | 点数バジェット(描画点上限)を設定 | |
setBackend | 描画エンジンを切替(webgl / webgpu) | |
| カメラ / ナビゲーション | ||
home | 俯瞰(3面等角)ホームビューへ戻る | |
lookAlong | データ全体を指定方向から見る | |
setNavMode | ナビモード切替(orbit=注視点まわり回転+ズーム / walk=自由フライ: 左ドラッグ視線・ホイール前後… | |
getCamera | 読 | カメラの現在位置と注視点を実座標(m)で取得 |
setCameraReal | カメラを実座標(m)で配置 | |
saveView | 現在のカメラ位置と注視点に名前を付けて保存する(pos/target を渡せばその位置を保存) | |
listViews | 読 | 保存済みの視点の一覧 |
gotoView | 保存済みの視点へカメラを移動する | |
deleteView | 保存済みの視点を削除する | |
nameRegion | 現在の選択(min/max を渡せば代わりにその箱)に名前を付けて保存する | |
listRegions | 読 | 名前を付けた領域の一覧 |
selectRegion | 名前付き領域の選択を呼び戻す(listRegions の id を渡す) | |
deleteRegion | 名前付き領域を削除する | |
measureDistance | 読 | 2つの実座標(m)間の距離を返す(distance=直線, horizontal=水平, vertical=垂… |
measureAngle | 読 | 3点の角度を返す(vertex を挟む2辺の空間角 |
measureHeight | 読 | 2点の比高を返す(dz は符号つき、勾配は gradePercent と 1:n の gradeRatio) |
measureVolume | 読 | 多角形の土量(プリズム法) |
measureLineOffset | 読 | 基準線(a→b)から点pへの垂直距離(offset, 符号なし)と、aからの線上距離(station, aより… |
| 断面 | ||
setSection | 断面(スラブ)を設定 | |
querySection | 読 | 指定した断面(スラブ)の寸法(幅m×高さm)と点数を返す |
| 選択 | ||
selectBox | 整列(シーン)フレームの AABB で点を選択 | |
selectAll | 読み込み済みの全体を選択(整列フレームの全体 AABB を述語にする) | |
clearSelection | 選択を解除 | |
zoomToSelection | 現在の選択が画面に収まるようカメラを寄せる(選択が無ければ ok:false) | |
| 非破壊編集 | ||
hideSelection | 確 | 選択点を非表示にする(表示から除くだけ |
deleteSelection | 確 | 選択点を削除する(成果物から除く=書き出し・集計から除外 |
reclassifySelection | 確 | 選択点の分類(classification)を変更(発行者は AI として記録される) |
colorSelection | 確 | 選択点を色で上書き('#rrggbb' か 0xRRGGBB 数値) |
undo | 操作を1つ元に戻す(点編集・TIN・カラーモード・データ読み込み等) | |
redo | 操作をやり直す | |
clearEdits | 確 | 全編集をクリア(協働中は全参加者の編集が対象) |
| データ | ||
loadData | 点群を読み込む(既存を置換) | |
addData | 点群を追加読込(既存に重畳) | |
addAlignedSource | 2点群をICP位置合わせ(サーバ側ジョブ alignToReference)してから読み込む | |
removeSource | ソースを削除(listSources / getState の id 指定) | |
setSourceVisible | ソースの表示/非表示 | |
setSourceObservedAt | ソースの観測時刻(いつ撮ったか | |
loadSplat | 3DGS(Splat)を読み込む(既存を置換 | |
removeSplat | 3DGS(Splat)表示を解除して点群表示に戻す | |
addSurface | J-LandXML(TIN 設計面)・DXF(3DFACEのみ)・SHP(MultiPatchのTriangl… | |
setSurfaceVisible | 参照サーフェス(TIN)の表示/非表示(id は getState().surfaces 参照) | |
removeSurface | 参照サーフェス(TIN)を削除(id は getState().surfaces 参照) | |
queryDesignDeviation | 読 | 設計面(TIN)との垂直方向の乖離を集計する(表示は変えない) |
createDesignDeviationFindings | 設計面との乖離が大きい箇所に所見を自動起票する(queryDesignDeviationのclustersを使… | |
| 写真セット | ||
addPhotoSet | 写真セット(撮影1回=1マニフェスト)を読み込む(design 0004 M1) | |
listPhotos | 写真の一覧を返す | |
setPhotoCameras | 撮影位置(カメラのあった場所)を3Dに出すかの切替 | |
getPhoto | 写真1件の詳細(原寸/サムネイルURL)を返す | |
rotatePhoto | 写真の向きを手で直す(2026-09-21) | |
| カメラ姿勢セット | ||
addCameraPoses | カメラ姿勢セットを読み込む(design 0004 M2) | |
listCameraPoseSets | 読み込んであるカメラ姿勢セットの一覧を返す(design 0004 M2) | |
setPlacement | 姿勢セットの位置合わせ(placement)を作成/更新する(design 0004 M2/M3) | |
lookThroughPhoto | 3Dカメラを写真の視点に合わせる(design 0004 M2) | |
| 2D→3D投影 | ||
projectPoint | 読 | 写真上の1点(ピクセル座標)を実座標(m)に投影する(design 0004 M4) |
projectPoint | 読 | 写真上の1点(ピクセル座標)を実座標(m)に投影する(design 0004 M4) |
projectPoints | 読 | 写真上の複数点をまとめて実座標へ投影する(design 0004 M4) |
| 検出インポート | ||
previewDetectionImport | importDetections に渡す前に、同じ入力を検証・投影だけして結果の内訳を返す(design 00… | |
importDetections | 外部の損傷検出AIの出力を下書きFindingとして一括取り込む(design 0004の続き、E2の検出イン… | |
| 多視点統合 | ||
queryMergeCandidates | 読 | 3D位置(実座標m)が近い所見(写真ごとの検出)を同一損傷の候補としてグループ化する(E2「多視点統合」) |
mergeFindings | 確 | 複数の所見(写真ごとの検出)を「同じ実世界の損傷」として1件に統合する(queryMergeCandidate… |
unmergeFinding | 統合($mergedInto)を取り消し、一覧・帳票に戻す | |
confirmFinding | AI検出(importDetectionsが作った所見)をレビューで採用として確定する(E2 検出インポートの… | |
rejectFinding | AI検出(importDetectionsが作った所見)をレビューで却下する(削除ではない——一覧・統合候補か… | |
| 問い合わせ(Query) | ||
queryElevation | 読 | 標高(実Z, m)分布を取得: |
queryClasses | 読 | 分類(classification)ヒストグラムを取得: {total, counts:{class:数}} |
queryLayers | 読 | レイヤ(ソース)別情報: [{id,name,visible,residentPoints,alignedBo… |
querySelection | 読 | 現在の選択の点数と整列フレーム AABB を取得: |
queryBoxCount | 読 | 整列フレーム AABB 内の点数を取得(min/max は alignedBounds 範囲内の座標): {c… |
queryCrs | 読 | 座標参照系と座標フレームを取得(EPSG / 軸順=east-north|north-east、未宣言なら省略… |
setAlignYaw | 確 | 整列角度(yaw)を手動で追加調整する(度、現在値に加算) |
| 書き出し | ||
exportSelection | 選択点を書き出す(実座標m, class, RGB) | |
exportCloud | 編集を適用した点群全体(選択に絞らない・可視ソースのオクツリー全体)をLAS 1.4として書き出す | |
cropSelectionToCopc | 現在の選択範囲を独立したCOPCとして切り出す(サーバ側ジョブ cropToCopc) | |
convertToCopc | 生の LAS/LAZ を COPC に変換する(サーバ側ジョブ cropToCopc を全空間boundsで実… | |
classifyGroundToSource | 地表面分類(サーバ側ジョブ classifyGround、PDAL の ground コマンド) | |
removeOutliersToSource | ノイズ点除去(サーバ側ジョブ removeOutliers、PDAL filters.outlier統計的手法) | |
decimateToSource | 点間引き(サーバ側ジョブ decimate、PDAL filters.decimation) | |
removeDuplicatesToSource | 重複点除去(サーバ側ジョブ removeDuplicates、PDAL filters.voxelcenter… | |
colorizeByElevationToSource | 標高(Z)を色にマッピングして着色(サーバ側ジョブ colorizeByElevation、PDAL filt… | |
generateTinSurface | TIN生成+LandXML変換(サーバ側ジョブ generateTin) | |
generateContoursJob | 等高線生成(サーバ側ジョブ generateContours) | |
generateDtmJob | DTM(GeoTIFF)生成(サーバ側ジョブ generateDtm) | |
generateDsmJob | DSM(GeoTIFF)生成(サーバ側ジョブ generateDsm) | |
generateMeshJob | TIN/メッシュ生成(サーバ側ジョブ generateMesh) | |
| 所見(Finding) | ||
defineFindingType | 所見の型(点検要領の項目定義)を作成/更新する | |
listFindingTypes | 読 | 所見の型の一覧: [{id,label,standard,entryId,version,published,… |
getFindingTypeSchema | 読 | 所見の型を JSON Schema として取得する(createFinding の fields に渡せる形 |
createFinding | 所見を起票する(下書き | |
updateFinding | 所見の一部を更新する(変更したいフィールドだけ渡す | |
queryFindings | 読 | 所見を type(typeId)・検出AIの生ラベル(sourceLabel、部分一致)・3D位置の近さ(ne… |
listFindings | 読 | 所見の一覧 |
getFinding | 読 | 所見1件の詳細 |
publishFinding | 所見を公開する(発注者に見える版として確定 | |
unpublishFinding | 所見の公開を取り下げる(下書きに戻す | |
deleteFinding | 確 | 所見を取り下げる(記録は残るが一覧と公開面から外れる |
restoreFinding | 取り下げた所見を戻す(取り下げ中に入った編集もそのまま戻る) | |
commentFinding | 所見に返信する(thread) | |
editComment | 返信の本文を直す(id は返信そのもの | |
listComments | 読 | 所見への返信を古い順に返す: [{id,text,actor,createdAt,editedAt,edite… |
exportFindings | 所見を書き出す(既定は公開版のみ=発注者に渡せる形) | |
exportFindingsForm23 | 所見をbridge_form23型(様式2/3準拠、defineFindingTypeで登録済みが前提)の項目… | |
| 束(Batch) | ||
listBatches | 読 | 束(ひと続きの操作=人間の連続操作 / AI の1ターン)の一覧を新しい順で返す |
revertBatch | 確 | 束(ひと続きの操作)を丸ごと戻す |
acceptBatch | status:'proposed'の束(まだ人が採用していないAIの提案)を採用する | |
queryBatchImpact | 読 | 束が触る点の件数・opの種類・中心位置(実座標m、frameRealPointにそのまま渡せる)・aligne… |
getBatch | 読 | 束1件の詳細(intent は全文) |
| 永続化 | ||
saveEdits | 現在の非破壊編集をサイドカー(.oniyanma.json)としてダウンロード保存(元データは変更しない) | |
| Project フォルダ | ||
createFolder | Project 内データの分類フォルダを作る(design 0024 | |
moveFolder | フォルダ自身を別のフォルダの中へ移す(design 0024 M2) | |
moveAssetToFolder | Asset の所属フォルダを変える(getState / listProjectFolders 相当の id … | |
deleteFolder | 確 | フォルダを削除する |
読 = 読み取り専用 / 確 = 確認ゲートあり
表示
見え方だけを変える。データにも編集ログにも触らないので、Undo の対象外。
setMeasureMode
計測モードを切替(off / distance=2点間距離 / path=折れ線 / area=水平投影面積 / angle=角度(3点の空間角)/ height=高さ(比高と勾配)/ volume=土量 / guideline=基準線からの離れ(オフセット))。打ちかけの点は消える。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
mode | string | ✔ | 'off' | 'distance' | 'path' | 'area' | 'angle' | 'height' | 'volume' | 'guideline' |
addMeasurePoint
計測に点を1つ追加する(実座標 m)。点群にスナップせず渡した座標をそのまま測る。要 setMeasureMode(off では追加しない)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
point | number[] | ✔ | 要素 3 個 |
undoMeasurePoint
計測で最後に打った点を1つ取り消す(計測点は Undo 履歴に入らないので undo では戻らない)。
引数なし。
getPickedPoint
画面で最後に指した箇所の実座標(m)を返す(計測モードに関係なく、当たったクリックを記録している)。tolerance は「返る点はこの幅の中のどれか」の幅(m)——許容円は画面の px で決まるので遠くから押すほど広い。一度も当たっていなければ point は null。listPhotos の seesPoint にそのまま渡せる。
引数なし。
clearMeasure
進行中の計測を取り消す(打った点をすべて消す)。
引数なし。
setColorMode
カラーモードを切替(rgb / intensity / elevation=標高 / classification=分類、要 分類済みデータ(未分類なら全点同色。queryClasses で確かめられる。地面/非地面は classifyGroundToSource で作れる) / deviation=差分解析ヒートマップ、要setDeviationSurface)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
mode | string | ✔ | 'rgb' | 'intensity' | 'elevation' | 'classification' | 'deviation' |
setDeviationSurface
差分解析ヒートマップが比較する設計面(TIN)を選ぶ。surfaceId を省略すると解除(全点グレーに戻す)。id は getState().surfaces 参照。表示にはさらに setColorMode(mode:'deviation') が要る。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
surfaceId | number | — |
setDeviationRange
差分解析ヒートマップの色レンジ(m)。|乖離|がこの値以上で色が飽和する(既定0.1m、0より大きい値)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
range | number | ✔ | 0.001 〜 ∞ |
setPointSize
点サイズ(px)を設定。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
px | number | ✔ | 0.5 〜 8 |
setEdl
EDL 陰影の強さを設定(0=なし)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
strength | number | ✔ | 0 〜 2 |
setGrid
グリッド/座標軸の表示切替。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
on | boolean | ✔ | — |
setBasemap
ベースマップ(地理院タイル・標準地図)の表示切替。対応CRS(JGD2011平面直角座標系, EPSG:6669-6687)以外では効かない。結果はgetBasemapStatusで確認できる。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
on | boolean | ✔ | — |
getBasemapStatus
読み取り専用
ベースマップの状態。'on'|'off'|'no-data'(データ未読込)|'unsupported-crs'(対応CRS以外)|'unknown-axis-order'(軸順がファイルに書かれておらず推測しない)。
引数なし。
setBudget
点数バジェット(描画点上限)を設定。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
points | number | ✔ | 100000 〜 ∞ |
setBackend
描画エンジンを切替(webgl / webgpu)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
kind | string | ✔ | 'webgl' | 'webgpu' |
カメラ / ナビゲーション
カメラの配置と移動モード。座標はすべて実座標 (m) で受け渡す。
home
俯瞰(3面等角)ホームビューへ戻る。
引数なし。
lookAlong
データ全体を指定方向から見る。axis は「カメラを置く方向=どちらから見るか」([0,0,1]=真上から見下ろす, [0,0,-1]=真下から見上げる, [1,0,0]=+X側から, [0,1,0]=+Y側から)。ズームは維持。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
axis | number[] | ✔ | 要素 3 個 |
setNavMode
ナビモード切替(orbit=注視点まわり回転+ズーム / walk=自由フライ: 左ドラッグ視線・ホイール前後・WASD移動、制限なし)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
mode | string | ✔ | 'orbit' | 'walk' |
getCamera
読み取り専用
カメラの現在位置と注視点を実座標(m)で取得。
引数なし。
setCameraReal
カメラを実座標(m)で配置。pos=カメラ位置, target=注視点。オービットに切替。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
pos | number[] | ✔ | 要素 3 個 |
target | number[] | ✔ | 要素 3 個 |
saveView
現在のカメラ位置と注視点に名前を付けて保存する(pos/target を渡せばその位置を保存)。「全員をこの視点へ」の起点。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
name | string | ✔ | — |
pos | number[] | 要素 3 個 | |
target | number[] | 要素 3 個 |
listViews
読み取り専用
保存済みの視点の一覧。
引数なし。
gotoView
保存済みの視点へカメラを移動する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
deleteView
保存済みの視点を削除する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
nameRegion
現在の選択(min/max を渡せば代わりにその箱)に名前を付けて保存する。以後 selectRegion(id) で名前から呼び戻せる(意味的接地)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
name | string | ✔ | — |
min | number[] | 要素 3 個 | |
max | number[] | 要素 3 個 |
listRegions
読み取り専用
名前を付けた領域の一覧。
引数なし。
selectRegion
名前付き領域の選択を呼び戻す(listRegions の id を渡す)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
deleteRegion
名前付き領域を削除する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
measureDistance
読み取り専用
2つの実座標(m)間の距離を返す(distance=直線, horizontal=水平, vertical=垂直)。表示は変えない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
a | number[] | ✔ | 要素 3 個 |
b | number[] | ✔ | 要素 3 個 |
measureAngle
読み取り専用
3点の角度を返す(vertex を挟む2辺の空間角。deg / rad)。表示は変えない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
vertex | number[] | ✔ | 要素 3 個 |
a | number[] | ✔ | 要素 3 個 |
b | number[] | ✔ | 要素 3 個 |
measureHeight
読み取り専用
2点の比高を返す(dz は符号つき、勾配は gradePercent と 1:n の gradeRatio)。表示は変えない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
a | number[] | ✔ | 要素 3 個 |
b | number[] | ✔ | 要素 3 個 |
measureVolume
読み取り専用
多角形の土量(プリズム法)。polygon は実座標(m)の配列、base は 'mean'(既定・打った点の平均標高)または数値の標高。cut/fill を分けて返し、凹多角形などは warnings に理由を入れる。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
polygon | array[] | ✔ | — |
base | string | — | |
baseZ | number | — |
measureLineOffset
読み取り専用
基準線(a→b)から点pへの垂直距離(offset, 符号なし)と、aからの線上距離(station, aより手前は負・bより先は線分長を超える)を返す。表示は変えない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
a | number[] | ✔ | 要素 3 個 |
b | number[] | ✔ | 要素 3 個 |
p | number[] | ✔ | 要素 3 個 |
断面
整列フレームの軸並行スラブで表示を切り取る。点は消えず、表示から外れるだけ。
setSection
断面(スラブ)を設定。axis 0=X 1=Y 2=Z、pos/thick は 0..1(整列フレーム基準)。on=false で解除。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
on | boolean | ✔ | — |
axis | number | 0 | 1 | 2 | |
pos | number | 0 〜 1 | |
thick | number | 0 〜 1 |
querySection
読み取り専用
指定した断面(スラブ)の寸法(幅m×高さm)と点数を返す。setSectionと同じ引数(axis/pos/thick)。表示は変えない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
axis | number | 0 | 1 | 2 | |
pos | number | 0 〜 1 | |
thick | number | 0 〜 1 |
選択
選択は点の ID 集合ではなく述語(この形の中にある点、という条件)。だから LOD が点を捨てて再ロードしても、カメラを動かしても、同じ点が選ばれ続ける。
selectBox
整列(シーン)フレームの AABB で点を選択。min/max は getState().alignedBounds の範囲内の座標。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
min | number[] | ✔ | 要素 3 個 |
max | number[] | ✔ | 要素 3 個 |
selectAll
読み込み済みの全体を選択(整列フレームの全体 AABB を述語にする)。
引数なし。
clearSelection
選択を解除。
引数なし。
zoomToSelection
現在の選択が画面に収まるようカメラを寄せる(選択が無ければ ok:false)。
引数なし。
非破壊編集
現在の選択に対して適用する。原本 .copc.laz は一切書き換えない。発行者(human / ai / api)が Command ログに刻まれ、Undo は発行者ごとに効く。
hideSelection
確認ゲート
選択点を非表示にする(表示から除くだけ。書き出し・集計には含まれる。非破壊・発行者は AI として記録される)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
deleteSelection
確認ゲート
選択点を削除する(成果物から除く=書き出し・集計から除外。原本 COPC は不変で Undo 可能。非破壊・発行者は AI として記録される)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
reclassifySelection
確認ゲート
選択点の分類(classification)を変更(発行者は AI として記録される)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
class | number | ✔ | 0 〜 255 |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
colorSelection
確認ゲート
選択点を色で上書き('#rrggbb' か 0xRRGGBB 数値)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
color | string | ✔ | — |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
undo
操作を1つ元に戻す(点編集・TIN・カラーモード・データ読み込み等)。
引数なし。
redo
操作をやり直す。
引数なし。
clearEdits
確認ゲート
全編集をクリア(協働中は全参加者の編集が対象)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
データ
点群ソースと参照サーフェス(TIN)の読込・重畳・表示切替。
loadData
点群を読み込む(既存を置換)。COPC のほか生 LAS/LAZ にも対応。大きい生 LAS は自動で間引きプレビューになる(計測・所見は使えなくなる)。間引けない圧縮 LAZ が大きい場合だけ confirm-required を返す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
force | boolean | 間引かず全点を読む(巨大ファイルではタブが落ちうる) |
addData
点群を追加読込(既存に重畳)。COPC のほか生 LAS/LAZ にも対応。大きい生 LAS は自動で間引きプレビューになる(計測・所見は使えなくなる)。間引けない圧縮 LAZ が大きい場合だけ confirm-required を返す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
force | boolean | 間引かず全点を読む(巨大ファイルではタブが落ちうる) |
addAlignedSource
2点群をICP位置合わせ(サーバ側ジョブ alignToReference)してから読み込む。inputUri を referenceUri(省略時は先頭ソースのURL)に位置合わせした結果を outputUri へ書き出し、既定でそのままシーンに追加する。ジョブ完了まで数十秒〜かかる場合がある(点数依存)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
inputUri | string | ✔ | 位置合わせして追加する側の点群 uri(その Project の Asset 台帳に登録済みのもの) |
outputUri | string | 位置合わせ後の結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
referenceUri | string | 基準側の点群 uri(台帳に登録済みのもの)。省略時は現在の先頭ソースのURLを使う | |
maxIterations | number | ICPの最大反復回数(省略時はジョブ側の既定値) | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない |
removeSource
ソースを削除(listSources / getState の id 指定)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | number | ✔ | — |
setSourceVisible
ソースの表示/非表示。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | number | ✔ | — |
visible | boolean | ✔ | — |
setSourceObservedAt
ソースの観測時刻(いつ撮ったか。ISO8601)を記録する。記録専用で表示も計算も変わらない。sys.createdAt(いつ記録したか)とは別物。observedAt を省略すると「不明」に戻す(setDeviationSurface と同じ流儀)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | number | ✔ | — |
observedAt | string | ISO8601(例 2026-07-14T00:00:00.000Z)。省略で不明に戻す |
loadSplat
3DGS(Splat)を読み込む(既存を置換。add 相当は無し)。モバイルではサイズしきい値超で confirm-required を返す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
force | boolean | サイズしきい値ゲートを上書き |
removeSplat
3DGS(Splat)表示を解除して点群表示に戻す。
引数なし。
addSurface
J-LandXML(TIN 設計面)・DXF(3DFACEのみ)・SHP(MultiPatchのTriangleStrip/Fanのみ)・IFC を読み込み点群に重畳(要点群読込済み)。urlの拡張子(.dxf/.shp/.ifc)で判定。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
setSurfaceVisible
参照サーフェス(TIN)の表示/非表示(id は getState().surfaces 参照)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | number | ✔ | — |
visible | boolean | ✔ | — |
removeSurface
参照サーフェス(TIN)を削除(id は getState().surfaces 参照)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | number | ✔ | — |
queryDesignDeviation
読み取り専用
設計面(TIN)との垂直方向の乖離を集計する(表示は変えない)。dz=実測Z-設計Z(符号付き, m)。TINの範囲外の点は対象外。clusters は |dz| 降順、最大 maxClusters 件(既定20)。返るのは推定値で、basis(走査対象)/axis(距離の取り方)/coverage(設計面が覆っていた割合)/lodRatio(常駐点が全点に占める割合)がその性質を示す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
surfaceId | number | ✔ | — |
thresholdM | number | ✔ | — |
clusterSizeM | number | — | |
maxClusters | number | — |
createDesignDeviationFindings
設計面との乖離が大きい箇所に所見を自動起票する(queryDesignDeviationのclustersを使う)。全箇所を先に型検証し、1件でも型に合わなければ1件も作らない。fieldsは全所見共通のベース値、valueFieldを指定すればそのフィールドに乖離量(m, 符号付き)を書き込む。起票される所見は $provenance に「LODサンプルを垂直方向で測った推定値」であることを凍結して持つ(レビュー対象になる)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
surfaceId | number | ✔ | — |
thresholdM | number | ✔ | — |
typeId | string | ✔ | — |
fields | object | ✔ | — |
valueField | string | — | |
clusterSizeM | number | — | |
maxFindings | number | — |
写真セット
写真1枚ずつではなく撮影1回=1マニフェストの単位で読み込む(design 0004 M1)。カメラ姿勢が無い段階でも一覧・閲覧・起票に使える(案Aの上位互換)。readonly は付けていない——写真の一覧を読み専用トークンに晒すのは点群の座標より露出が大きい、という design 0004 の未解決の論点による。
addPhotoSet
写真セット(撮影1回=1マニフェスト)を読み込む(design 0004 M1)。カメラ姿勢が無くても閲覧・起票に使える。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
label | string | — |
listPhotos
写真の一覧を返す。setId で絞り込み・limit で件数制限。seesPoint に実座標 [x,y,z](単位 m)を渡すと、その点を画角に捉えている写真だけを近い順に返し、各件に projection(画素u,v とその画素空間の大きさ・カメラからの距離・1画素が覆う大きさ metersPerPixel・位置合わせの残差 rms とその画素換算)が付く。画角に入っているかしか見ていない——遮蔽は見ていないので、橋桁の裏の点でも向きが合えば返る(写っている写真ではなく候補)。seesPointTolerance に点の位置の不確かさ(m)を渡すと、それが各写真で何画素に当たるか(uncertaintyPixels)が付く——近接では数mのずれが別の部材を指すので、これと metersPerPixel を見ずに「その部材が写っている」と読まない。姿勢か placement が無い写真は判定できないので候補に出ず、枚数は seesPoint.skipped に出る(黙って0件にしない)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
setId | string | — | |
limit | number | — | |
seesPoint | number[] | 要素 3 個 | |
seesPointTolerance | number | — |
setPhotoCameras
撮影位置(カメラのあった場所)を3Dに出すかの切替。既定は off——数十枚あると点群よりマーカーが多くなる。3Dで指した点の候補は、この切替に関係なく強調表示される。一覧は切り替えた時点の姿勢で作るので、写真や姿勢を後から読み込んだら入れ直す(位置合わせの変更には自動で追随する)。返り値の count は実際に出した枚数。0 でも理由は1つではないので skipped に内訳(noPose / noIntrinsics / noPlacement / unusablePlacement / ambiguousId)を返す——ambiguousId は同じ写真に食い違う姿勢が当たっている(姿勢セットの重複や同名衝突)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
on | boolean | ✔ | — |
getPhoto
写真1件の詳細(原寸/サムネイルURL)を返す。id は listPhotos が返す形。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
rotatePhoto
写真の向きを手で直す(2026-09-21)。画素は回さない——見るときの角度だけを記録するので、クロップ矩形も検出 bbox もカメラ内部パラメータも動かない。photo に listPhotos の id を渡せば1枚、photoSet に setKey を渡せばセット全体。rotation を省略すると時計回りに90度進める(4回で一周して戻る)。clear: true で撮った側の申告(manifest の displayRotation)へ戻す。人が直した値が申告より優先される。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
photo | string | 1枚だけ直す場合。listPhotos が返す id | |
photoSet | string | セット全体を直す場合。getPhoto が返す setKey(ADR 0021) | |
rotation | number | 0 | 90 | 180 | 270 / 時計回りの角度。省略すると現在から90度進める | |
clear | boolean | 手で直した値を取り消して、撮った側の申告へ戻す |
カメラ姿勢セット
COLMAP sparse/0(cameras.bin / images.bin)を読み、写真の視点に3Dカメラを合わせる(design 0004 M2)。位置合わせ(placement)が unknown のままだと lookThroughPhoto は precondition-failed で実行できない——確認すれば実行できるわけではなく、合わせ込みが済むまで原理的に無理という区別(confirm-required とは違う)。
addCameraPoses
カメラ姿勢セットを読み込む(design 0004 M2)。位置合わせ(setPlacement)が無ければ写真の視点には使えない。format は呼び出し側が明示する(既定 colmap = sparse/0 ディレクトリの URL)。URL やファイル名から推測しないのは、別形式を COLMAP として読むと「失敗」ではなく姿勢がでたらめな結果になるため。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
url | string | ✔ | — |
label | string | — | |
format | string | 'colmap' / 既定 colmap。未対応の形式は invalid-argument で断る(黙って colmap として読まない) |
listCameraPoseSets
読み込んであるカメラ姿勢セットの一覧を返す(design 0004 M2)。id は setPlacement の poseSet にそのまま渡せる。placement は位置合わせの現況(未設定なら null、kind:"unknown" は方位が決まっていない印)。sessions は姿勢の名前に付いている撮影セッション名で、oohashi の placement-seed.json の session と同じ文字列。cameras は撮影位置が点群の bbox(水平・許容150m)に入った数で、offTarget が true なら過半数が外れている(=「視点へ」が空へ飛ぶ状態)。券付きの url は返さない——同じセットを指すには id を使う。
引数なし。
setPlacement
姿勢セットの位置合わせ(placement)を作成/更新する(design 0004 M2/M3)。transform を直接指定する(手動/既知の相似変換)か、correspondences(SfM座標↔実座標の対応点、3組以上)を渡してGCP対応から最小二乗フィットする。既存の同じposeSetへの割り当てがあれば更新する。置けたら cameras を返す(数えられた時だけ)——inside/total は撮影位置が点群の bbox(水平・許容150m)に入った数で、offTarget は過半数が入らなかったこと、nearestDistanceM は最も近いカメラが bbox の縁から離れている水平距離(m)。止めはしないが、0/42 のまま先へ進むと「視点へ」が何も無い空間へ飛ぶ。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
poseSet | string | ✔ | CameraPoseSet の id(addCameraPoses が返す setId) |
transform | object | {kind:'unknown'} または {kind:'similarity', s, q:[w,x,y,z], t:[x,y,z], method:'gcp'|'icp'|'manual', rms?}。correspondences と同時には使えない | |
correspondences | object[] | {sfm:[x,y,z], real:[x,y,z]} の配列(3組以上、SfM側が一直線でないこと)。渡すと method:gcp で自動フィットする |
lookThroughPhoto
3Dカメラを写真の視点に合わせる(design 0004 M2)。注視点(orbitの回転中心)は移動後の視界から引き直す=光軸上の点群までの距離。カメラはその注視点から光軸上を distanceScale 倍の距離まで下がった位置に置く(既定2倍)——写真の視点そのものに立つと被写体が画角いっぱいで全体像が見えないため。1で写真の視点そのもの、上限1000(それ以上は写真の範囲が1px未満になり何も見えない)。placementが未設定/unknownのままだと実行できない(precondition-failed)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
photoId | string | ✔ | — |
distanceScale | number | — |
2D→3D投影
写真上のピクセルを実座標(m)に投影する(design 0004 M4)。点群が薄い面では交差せず、投影できなかった検出は例外ではなく ok:false で返る。placement が unknown のままだと precondition-failed——確認すれば実行できる confirm-required とは違い、合わせ込みが済むまで原理的に実行できない。返るのは位置であって形ではない(ひび割れ等の細い形状は点群の解像度より細かい)。
projectPoint
読み取り専用
写真上の1点(ピクセル座標)を実座標(m)に投影する(design 0004 M4)。点群が薄い/抜けている面では交差せず、投影できなかった検出として ok:false で返る(例外にしない)。placementが未設定/unknownならprecondition-failed。位置は出るが形は出ない——ひび割れ等の細い形状は点群の解像度より細かいので、返るのは1点。imageWidth/imageHeightを渡すと、u/vをその画素空間(呼び出し側が実際に座標を拾った画像の解像度。design 0020 M2aの写真タイル等)からカメラ内部パラメータの解像度へアスペクト比を保ったまま比例変換してから投影する(importDetectionsと同じ変換。省略時はu/vをカメラ内部パラメータの解像度のまま扱う——従来どおり)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
photoId | string | ✔ | — |
u | number | ✔ | — |
v | number | ✔ | — |
imageWidth | number | — | |
imageHeight | number | — |
projectPoint
読み取り専用
写真上の1点(ピクセル座標)を実座標(m)に投影する(design 0004 M4)。点群が薄い/抜けている面では交差せず、投影できなかった検出として ok:false で返る(例外にしない)。placementが未設定/unknownならprecondition-failed。位置は出るが形は出ない——ひび割れ等の細い形状は点群の解像度より細かいので、返るのは1点。imageWidth/imageHeightを渡すと、u/vをその画素空間(呼び出し側が実際に座標を拾った画像の解像度。design 0020 M2aの写真タイル等)からカメラ内部パラメータの解像度へアスペクト比を保ったまま比例変換してから投影する(importDetectionsと同じ変換。省略時はu/vをカメラ内部パラメータの解像度のまま扱う——従来どおり)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
photoId | string | ✔ | — |
u | number | ✔ | — |
v | number | ✔ | — |
imageWidth | number | — | |
imageHeight | number | — |
projectPoints
読み取り専用
写真上の複数点をまとめて実座標へ投影する(design 0004 M4)。各点は projectPoint と同じ形で返る。レイの束を1回の走査でまとめる最適化はまだ実装していない(正しさを先に確定し、性能はdocs/design/0004に記録した既知の課題として残した)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
photoId | string | ✔ | — |
points | object[] | ✔ | — |
検出インポート
外部の損傷検出AIの出力(bbox / polygon / confidence)を下書き Finding として一括取り込む(E2)。全件を先に型検証・写真の姿勢を確認し、1件でも通らなければ1件も作らない。取り込みは1つの束(kind:'import')にまとめ、revertBatch で丸ごと戻せる。損傷区分は typeId/fields として所見の型定義(ADR 0010)へ写し、このスキーマには焼き込まない。
previewDetectionImport
importDetections に渡す前に、同じ入力を検証・投影だけして結果の内訳を返す(design 0020「外部検出の取り込み」)。何も作らない——Finding も束も作らず、返すのは件数(total)・投影できない件数(noIntersection)・姿勢が無い写真 id(unknownPhotoIds)・写真本体へ解決できない写真 id(unresolvedPhotoIds)。検証は importDetections と同じ関数を通すので、形式が壊れていればここでも同じ例外で止まる(=1件も作らずに止まることを渡す前に確かめられる)。姿勢が無い写真だけは1件目で止めず全部集める——どの写真 id が未知かを人が直せるようにするため。unknownPhotoIds が空でなければ importDetections は束ごと失敗する(importable:false)。id の列挙は先頭50件までで、件数は別に返す。投影は検出ごとに点群へレイを飛ばすので、そのまま importDetections を呼ぶと同じ計算をもう一度行う。noIntersection はその時点の点群のスナップショット——LOD の読み込みや表示状態が変われば取り込み時の値は変わりうる(ゲートではなく情報で、記録に残る $pin と件数は importDetections が返す実測の方)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
schemaVersion | string | '1.0' | |
source | object | — | |
intent | string | — | |
detections | object[] | ✔ | — |
importDetections
外部の損傷検出AIの出力を下書きFindingとして一括取り込む(design 0004の続き、E2の検出インポートスキーマ)。全件を先に型検証・写真の姿勢を確認し、1件でも通らなければ1件も作らない(createDesignDeviationFindingsと同じ規律)。取り込みは1つの束(Batch, kind:'import')にまとめ、丸ごとrevertBatchで戻せる。各detectionはbbox(COCO準拠 [x,y,width,height], 絶対px, 左上原点)/polygon(単一リング)/projectionPointのいずれかで画像上の代表点を指定し、写真のカメラ姿勢を使って実座標へ投影する(位置は出るが形は出ない——常に1点になる)。imageWidth/imageHeightは検出AIが推論に使った画像の解像度で、カメラ姿勢セット(COLMAP)のカメラ内部パラメータの解像度へアスペクト比を保ったまま比例変換する(addCameraPosesで登録した解像度が基準。写真アセットの解像度ではない)。crop/letterbox padding/EXIF回転/歪み補正済みの画像で推論したdetectionはv1では対象外(比例変換では座標が黙ってズレる)。損傷区分はtypeId/fieldsが決め、このスキーマには焼き込まない。confidenceは無ければnullで持つ(1.0で埋めない)。photoIdとbbox/polygon/projectionPointは$sourcePhoto/$sourceBboxとしてFindingに保存する(トリアージUIが写真をクロップ表示する用途。呼び出し側が渡した画素空間のまま、$pin用の内部変換とは別に持つ)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
schemaVersion | string | '1.0' | |
source | object | — | |
intent | string | — | |
detections | object[] | ✔ | — |
多視点統合
写真ごとの検出($pin を持つ所見)を3D近傍でグループ化し、人の確認を経て1件に統合する(E2)。自動統合は候補の提示に留め、確定は mergeFindings を別途呼ぶ側の責務。統合は削除ではなく $mergedInto を刻むだけなので、unmergeFinding で個別に戻せる。
queryMergeCandidates
読み取り専用
3D位置(実座標m)が近い所見(写真ごとの検出)を同一損傷の候補としてグループ化する(E2「多視点統合」)。表示・データは変えない読み取り専用——統合の確定は mergeFindings を別途呼ぶ。batchId/typeId で対象を絞れる(未指定なら全件)。$pin の無い所見(投影できなかった検出)は対象外。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
radiusM | number | ✔ | 同じ損傷とみなす距離(m)。単連結法で推移的に繋がる |
batchId | string | — | |
typeId | string | — |
mergeFindings
確認ゲート
複数の所見(写真ごとの検出)を「同じ実世界の損傷」として1件に統合する(queryMergeCandidatesのgroupを渡す想定)。生き残る所見(primaryId省略時は$confidence最大のもの。同点は先頭)以外は$mergedIntoを刻んで一覧・帳票から外す(削除はしない。unmergeFindingで戻せる)。生き残る所見のfieldsは変更しない——値の自動統合は「調書の数字が黙って変わる」危険があるため行わない(必要ならupdateFindingで別途直す)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
ids | string[] | ✔ | — |
primaryId | string | — | |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
unmergeFinding
統合($mergedInto)を取り消し、一覧・帳票に戻す。統合されていなければ何もしない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
confirmFinding
AI検出(importDetectionsが作った所見)をレビューで採用として確定する(E2 検出インポートのレビュー)。値そのものは変えない(fields の修正は updateFinding で別途行う)。返信・統合済みには使えない。人間の発行者からしか呼べない(AIが自分の検出を自分で採用できると、レビューという仕組みの意味が無くなる。acceptBatchと同じ理由)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
rejectFinding
AI検出(importDetectionsが作った所見)をレビューで却下する(削除ではない——一覧・統合候補から外れるが記録は残り、restoreFindingでは戻せない。取り消すにはupdateFindingでreviewを直す)。人間の所見を取り下げる場合はdeleteFindingを使う(削除と却下は構造的に別物)。返信・統合済みには使えない。人間の発行者からしか呼べない(confirmFindingと同じ理由で一貫性を優先する。将来AIによる一次却下を許す場合はここだけ緩める)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
問い合わせ(Query)
シーンを数値で問い合わせる。件数は断りが無い限り resident 基準(いま表示している LOD サンプル)で、全点走査ではない。すべて読み取り専用サーフェスに含まれる。
queryElevation
読み取り専用
標高(実Z, m)分布を取得: {min,max,mean,count,bins[]}。bins はヒストグラムの区間数(既定16)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
bins | number | 2 〜 128 |
queryClasses
読み取り専用
分類(classification)ヒストグラムを取得: {total, counts:{class:数}}。編集の分類上書きを反映。
引数なし。
queryLayers
読み取り専用
レイヤ(ソース)別情報: [{id,name,visible,residentPoints,alignedBounds[6]}](bounds は整列フレーム)。
引数なし。
querySelection
読み取り専用
現在の選択の点数と整列フレーム AABB を取得: {count, alignedBounds[6]|null}。
引数なし。
queryBoxCount
読み取り専用
整列フレーム AABB 内の点数を取得(min/max は alignedBounds 範囲内の座標): {count}。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
min | number[] | ✔ | 要素 3 個 |
max | number[] | ✔ | 要素 3 個 |
queryCrs
読み取り専用
座標参照系と座標フレームを取得(EPSG / 軸順=east-north|north-east、未宣言なら省略 / 鉛直基準=標高|楕円体高 / offset・alignYaw)。計測値や書き出しが何基準かの確認用。再投影は行わない。
引数なし。
setAlignYaw
確認ゲート
整列角度(yaw)を手動で追加調整する(度、現在値に加算)。表示だけの回転で実座標(m)は変わらない。全ソースの読み直しになるため、既存の編集/選択/参照サーフェスは失われる(可視状態は引き継ぐ)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
deltaDeg | number | ✔ | — |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
書き出し
ブラウザのダウンロードを起こしつつ、戻り値にも中身を載せる——AI はファイルダイアログを見られないので、返り値に入っていないと成果を確認できない。
exportSelection
選択点を書き出す(実座標m, class, RGB)。ファイルDL+概要を返す。format='csv'(既定)|'geojson'。resident=表示中サンプル基準。削除済みの点は除外し excludedDeleted で件数を返す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
format | string | 'csv' | 'geojson' |
exportCloud
編集を適用した点群全体(選択に絞らない・可視ソースのオクツリー全体)をLAS 1.4として書き出す。ファイルDLを起こす。既定は非圧縮(.las)で、compress:trueならLAZ(.laz)——同じ内容で数分の1になるが、他ソフトが読めるかは相手次第なので既定は変えていない。deleteされた点は除外(excludedDeletedで件数)、hideされた点は含む。点数が多いとconfirm-requiredを返す(force:trueで再実行)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
force | boolean | 点数しきい値ゲートを上書き | |
compress | boolean | 既定false。trueならLAZ(圧縮)で書き出す |
cropSelectionToCopc
現在の選択範囲を独立したCOPCとして切り出す(サーバ側ジョブ cropToCopc)。選択のAABBを実座標へ変換して渡す。元の生ファイルをそのまま切り出すため非破壊編集(削除/分類変更等)は反映されない。ジョブ完了まで数秒〜かかる場合がある。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 切り出したCOPCの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 切り出し元の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う |
convertToCopc
生の LAS/LAZ を COPC に変換する(サーバ側ジョブ cropToCopc を全空間boundsで実行)。大きい圧縮LAZはビューアが直接開けないのでこれを通す。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 変換結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない)。拡張子は .copc.laz を推奨 | |
inputUri | string | 変換元の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない |
classifyGroundToSource
地表面分類(サーバ側ジョブ classifyGround、PDAL の ground コマンド)。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 分類結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 分類対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない | |
slope | number | 0-90。省略時はジョブ側の既定値 | |
cellSize | number | 0.1-100。既定 1.0。細かくできるかは入力の広さ次第——SMRF の格子は範囲÷cellSize の二乗で増えるので、収まらない入力はサーバが実行前に拒否し、収まる cellSize を数字で返す | |
maxWindowSize | number | 1-200 |
removeOutliersToSource
ノイズ点除去(サーバ側ジョブ removeOutliers、PDAL filters.outlier統計的手法)。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 除去結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない | |
meanK | number | 2-50。省略時はジョブ側の既定値 | |
multiplier | number | 0.1-10 |
decimateToSource
点間引き(サーバ側ジョブ decimate、PDAL filters.decimation)。stepごとに1点残す(1/stepに間引かれる、公式ドキュメントの文言とは逆の実挙動)。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 間引き結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない | |
step | number | ✔ | 2-1000。stepごとに1点残す |
removeDuplicatesToSource
重複点除去(サーバ側ジョブ removeDuplicates、PDAL filters.voxelcenternearestneighbor)。ボクセル中心最近傍の実点だけを残す。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 除去結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない | |
cellSize | number | 0.0001-10(m)。省略時はジョブ側の既定値(0.01) |
colorizeByElevationToSource
標高(Z)を色にマッピングして着色(サーバ側ジョブ colorizeByElevation、PDAL filters.colorinterp)。既存RGBは上書きされる。既定でシーンに追加読込する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | 着色結果の出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけでシーンには追加しない |
generateTinSurface
TIN生成+LandXML変換(サーバ側ジョブ generateTin)。地表面点群からGreedy Projection Triangulationで三角形分割し、oniyanmaが読めるLandXML形式で書き出す。既定で参照サーフェスとして追加する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | LandXMLの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
load | boolean | 既定true。falseならジョブを実行するだけで読み込まない | |
multiplier | number | 0.1-20。省略時はジョブ側の既定値(2) | |
radius | number | 0.01-1000。省略時はジョブ側の既定値(5) |
generateContoursJob
等高線生成(サーバ側ジョブ generateContours)。DTMを一時生成しGeoJSONの等高線を書き出す。oniyanmaクライアントに読み込む経路は無く、出力先URLへの書き込みのみ行う。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | GeoJSONの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
interval | number | 0.01-1000(m)。省略時はジョブ側の既定値(1.0) | |
resolution | number | 0.1-100(DTM生成時のラスタ解像度) |
generateDtmJob
DTM(GeoTIFF)生成(サーバ側ジョブ generateDtm)。地表面分類→IDW補間でラスタ化。oniyanmaクライアントに読み込む経路は無く、出力先URLへの書き込みのみ行う。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | GeoTIFFの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
resolution | number | 0.1-100。省略時はジョブ側の既定値(1.0) |
generateDsmJob
DSM(GeoTIFF)生成(サーバ側ジョブ generateDsm)。地表面分類・抽出をせず全点をラスタ化。oniyanmaクライアントに読み込む経路は無く、出力先URLへの書き込みのみ行う。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | GeoTIFFの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
resolution | number | 0.1-100。省略時はジョブ側の既定値(1.0) |
generateMeshJob
TIN/メッシュ生成(サーバ側ジョブ generateMesh)。地表面点群をGreedy Projection Triangulationで三角形分割しPLYとして書き出す。oniyanmaクライアントにPLYを読む経路は無く、出力先URLへの書き込みのみ行う(LandXMLとして読み込みたい場合はgenerateTinSurfaceを使う)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
outputUri | string | PLYの出力先 uri(oniyanma://projects/{projectId}/…)。省略時は自動で決まる(同じジョブを2回回しても上書きしない) | |
inputUri | string | 対象の点群 uri(その Project の Asset 台帳に登録済みのもの。外部ストレージなら URL そのまま)。省略時はソースが単一かつURL由来ならそれを使う | |
multiplier | number | 0.1-20。省略時はジョブ側の既定値(2) | |
radius | number | 0.01-1000。省略時はジョブ側の既定値(5) |
所見(Finding)
点検要領の項目定義をデータとして持ち、そこから所見を起票する。型を定義すれば、その型がそのまま JSON Schema になって AI のツール定義に載る。
defineFindingType
所見の型(点検要領の項目定義)を作成/更新する。def = {id, label, standard?, fields:[{id,label,type:text|number|enum|boolean|date|link|measurement, required?, unit?, options?, min?, max?, maxLength?, linkTo?, description?}]}。同じ id があれば新しい版として更新する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
def | object | ✔ | — |
listFindingTypes
読み取り専用
所見の型の一覧: [{id,label,standard,entryId,version,published,fields:[{id,label,type,required,unit,options}]}]。
引数なし。
getFindingTypeSchema
読み取り専用
所見の型を JSON Schema として取得する(createFinding の fields に渡せる形。顧客が定義した型がそのままツール定義になる)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
typeId | string | ✔ | — |
createFinding
所見を起票する(下書き。発注者には publishFinding するまで見えない)。fields は型定義に従う値、pin は位置(実座標 m, 任意)。sourcePhoto/sourceBboxを渡すと、写真上を指して起票した所見として$provenanceに観測来歴を刻む(design 0020 M2a、ADR 0021)。両方一緒に渡すこと(片方だけは invalid-argument)。sourcePhotoはPhotoSetの安定id(managedならAsset台帳のid、URL読込ならmanifestのurl)とセット内photoIdの組——getPhoto/listPhotosが返すのはこれとは別の実行時id(photoset-N::fileId)なので、そのまま渡さないこと。actorは人間として記録し、$reviewは付けない(トリアージの列には入らない)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
typeId | string | ✔ | — |
fields | object | ✔ | — |
pin | number[] | 要素 3 個 | |
pinAccuracy | object | 位置の確からしさ(画面のクリックで箇所を決めたときだけ)。distance=カメラからの距離(m)、tolerance=そのときの許容円の world 半径(m)=返る点がこの幅の中のどれかであること。後から「この位置はどれだけ確からしいか」を読むために起票時に刻む | |
sourcePhoto | object | — | |
sourceBbox | object | — |
updateFinding
所見の一部を更新する(変更したいフィールドだけ渡す。値 null でそのフィールドを消す)。公開済みなら再度 publishFinding するまで発注者には旧版が見える。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
fields | object | ✔ | — |
queryFindings
読み取り専用
所見を type(typeId)・検出AIの生ラベル(sourceLabel、部分一致)・3D位置の近さ(near+maxDistance)で絞り込む。「あの主桁のひび割れ」のように名前の無い検出をAIが指すための読み取り専用クエリ(listFindingsはview切替のみで絞り込みを持たない)。near指定時は距離の近い順に返し、$pinの無い所見(投影できなかった検出)は近さの判定ができないため除外する(near未指定なら$pinの有無に関わらず残す)。返信・統合済み・却下済みの所見は対象外。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
typeId | string | — | |
sourceLabel | string | 検出AIの生ラベルの部分一致(大小無視) | |
near | number[] | 要素 3 個 / 実座標(m) [x,y,z]。指定時は近い順に返す | |
maxDistance | number | near指定時のみ有効。単位m | |
limit | number | — |
listFindings
読み取り専用
所見の一覧。view='draft'(下書き含む全部・既定) | 'published'(発注者に見える公開版だけ) | 'deleted'(取り下げ済みも含む)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
view | string | 'draft' | 'published' | 'deleted' |
getFinding
読み取り専用
所見1件の詳細。型定義と参照(前回点検の所見など)を1段だけ解決して返す。links[].exists=false は参照先が消えていることを意味する。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
publishFinding
所見を公開する(発注者に見える版として確定。保存の副作用ではなく明示的な操作)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
unpublishFinding
所見の公開を取り下げる(下書きに戻す。内容は変わらないので版は進まない)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
deleteFinding
確認ゲート
所見を取り下げる(記録は残るが一覧と公開面から外れる。restoreFinding で戻せる)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
restoreFinding
取り下げた所見を戻す(取り下げ中に入った編集もそのまま戻る)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
commentFinding
所見に返信する(thread)。id は親の所見、text が本文。返信は所見の一覧・書き出しには出ない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
text | string | ✔ | — |
editComment
返信の本文を直す(id は返信そのもの。所見の本文を直すのは updateFinding)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
text | string | ✔ | — |
listComments
読み取り専用
所見への返信を古い順に返す: [{id,text,actor,createdAt,editedAt,editedBy}]。actor は書き手(後から誰が直しても変わらない)。editedAt / editedBy は後から直した場合のみ。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
exportFindings
所見を書き出す(既定は公開版のみ=発注者に渡せる形)。format='csv'(既定)|'geojson'、view='published'(既定)|'draft'(下書きも含む・社内用)。ファイルDL+概要を返す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
format | string | 'csv' | 'geojson' | |
view | string | 'published' | 'draft' |
exportFindingsForm23
所見をbridge_form23型(様式2/3準拠、defineFindingTypeで登録済みが前提)の項目順でCSVに書き出す(E3様式適合エクスポート)。exportFindingsの汎用CSVと違い列を様式の記入順で固定する。国交省の電子納品要領(XML)や様式そのもの(.xlsx)ではなく、様式2/3の項目に対応するCSV——貼り付けて使う想定。bridge_form23型を使っていない所見は列がすべて空になる。既定は公開版のみ。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
view | string | 'published' | 'draft' |
束(Batch)
ひと続きの操作を1単位として読み、丸ごと戻す。AI の1ターンが1束で、同じ指示から出た束は runId で上にまとめられる(revert の単位を「1指示」にすると、途中で人が割り込んだ操作まで巻き込むため、細かい方を単位にしている)。
提案の採用・却下(acceptBatch / rejectBatch)はまだ無い——「AI が自分の提案を自分で採用できてしまう」という論点が残っている。
listBatches
読み取り専用
束(ひと続きの操作=人間の連続操作 / AI の1ターン)の一覧を新しい順で返す。status='applied'(適用済み)|'proposed'(提案・未適用)|'reverted'(取り消し済み) で絞れる。limit は既定 50・上限 200(範囲外は丸めて実際の値を limit で返す)。intent は先頭 200 文字だけ(全文は getBatch)。total より件数が少なければ切れている。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
status | string | 'applied' | 'proposed' | 'reverted' | |
limit | number | 1 〜 200 |
revertBatch
確認ゲート
束(ひと続きの操作)を丸ごと戻す。戻すのは編集の op と、kind:'import' の束が作った所見(Entry)——import は新規作成しかしないので安全に取り下げられる。それ以外の束(human/aiTurn/macro)はEntryの更新前の値を保存していないため、Entryは戻らない(戻っていない件数を返すので確認できる)。他人が作った束は戻せない。status:'proposed'の束(まだ人が採用していないAIの提案)に対して呼ぶと「却下」になる——opは最初から適用されていないので、そのまま消えるだけで忠実な戻し方になる(acceptBatchで採用する前に呼ぶ)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。
補足
戻るのは編集の op(非表示 / 削除 / 分類 / 色)だけ。所見などの Entry の変更は戻りません——中間の版をどこにも保存していないため、「戻す」を名乗ると戻ったつもりで戻っていない状態を作ります。戻せなかった件数は entriesNotReverted で返るので、人が判断できます。
補足
協働中は共有ログから消えるので全員の画面で戻ります。逆に、他の参加者が作った束は戻せません(not-owner)——認証が無い今、「自分の作業しか戻せない」という現状の規律を緩めないためです。
acceptBatch
status:'proposed'の束(まだ人が採用していないAIの提案)を採用する。opは何も動かさず、束のstatusを'applied'にするだけ——それだけでevaluate()の除外対象から外れ、以後は通常の束と同じに見える。proposed以外の束には使えない(却下はrevertBatchを使う)。人間の発行者からしか呼べない(AIが自分の提案を自分で採用できてしまうと、提案という仕組みの意味が無くなるため)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
queryBatchImpact
読み取り専用
束が触る点の件数・opの種類・中心位置(実座標m、frameRealPointにそのまま渡せる)・alignedBounds(整列フレームのAABB、参考値)を返す(resident基準、表示は変えない)。HISTの提案束をaccept/reject判断する前に、影響を数で確認し、中心へカメラを寄せてから採否する用途。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
getBatch
読み取り専用
束1件の詳細(intent は全文)。fields の参照(Link)は1段だけ解決して links に返す。取り下げ済みの束も読める(記録は残る)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
id | string | ✔ | — |
永続化
サイドカー(<dataset>.oniyanma.json)への保存。元データは変更しない。
saveEdits
現在の非破壊編集をサイドカー(.oniyanma.json)としてダウンロード保存(元データは変更しない)。
引数なし。
Project フォルダ
Project 内データの分類フォルダ(入れ子にできる)。台帳(D1)側の永続構造で、design 0007 のルーム同期(今開いているものの ephemeral な状態)とは別軸。?project= で開いている時だけ使える。
createFolder
Project 内データの分類フォルダを作る(design 0024。入れ子にできる)。名前は自由な文字列。parentFolderId を省略するとルート直下に作る。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
name | string | ✔ | — |
parentFolderId | string | — |
moveFolder
フォルダ自身を別のフォルダの中へ移す(design 0024 M2)。parentFolderId を省略するとルート直下へ。自分自身・自分の子孫は指定できない。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
folderId | string | ✔ | — |
parentFolderId | string | — |
moveAssetToFolder
Asset の所属フォルダを変える(getState / listProjectFolders 相当の id 指定)。folderId を省略するとルート直下へ戻す。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
assetId | string | ✔ | — |
folderId | string | — |
deleteFolder
確認ゲート
フォルダを削除する。中身(Asset・子フォルダ)は1つ上の階層へ繰り上がる(Asset 自体は削除しない)。
| 引数 | 型 | 必須 | 制約 |
|---|---|---|---|
folderId | string | ✔ | — |
confirm | boolean | 確認済みとして実行する。省略/false なら実行せず影響件数(ドライラン)だけを返す |
確認ゲート
機械(ai / api)が confirm 無しで呼ぶと実行されず、影響件数だけが返る。件数を見たうえで confirm: true を付けて再実行すると適用される。人間の UI 操作は通過する。詳細は確認ゲート。