@tocca-systems/twp-cli 0.93.0 → 0.94.1

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.
Files changed (36) hide show
  1. package/CHANGELOG.public.md +8 -0
  2. package/README.md +21 -4
  3. package/dist/{agent-loop-HMSOMXFI.js → agent-loop-ED3PVMVI.js} +1 -1
  4. package/dist/{api-command-W5NBP6LO.js → api-command-JCHG6Z7G.js} +1 -1
  5. package/dist/{app-ATZXNSKN.js → app-W3MKOXGY.js} +3 -3
  6. package/dist/{chunk-VRRDGI2I.js → chunk-2J5A4Q7U.js} +8 -7
  7. package/dist/{chunk-XIAZ6ZJG.js → chunk-3TDGVH3E.js} +1 -1
  8. package/dist/{chunk-7T5CEF6J.js → chunk-42XM4ZF6.js} +1 -1
  9. package/dist/chunk-5YJSWKQG.js +18 -0
  10. package/dist/chunk-C7MCP63I.js +51 -0
  11. package/dist/{chunk-MSZWJ24L.js → chunk-DJCPPFTI.js} +3 -3
  12. package/dist/{chunk-6EQLA56A.js → chunk-INS77QHY.js} +1 -1
  13. package/dist/{settings-command-TEVH2MNY.js → chunk-MTK4WY54.js} +12 -11
  14. package/dist/chunk-NJL3H2BB.js +7 -0
  15. package/dist/chunk-QBUVJBZ2.js +13 -0
  16. package/dist/cli.js +19 -12
  17. package/dist/{commands-A3RLFXMI.js → commands-G3KAD2J7.js} +1 -1
  18. package/dist/{commands-QNVPMZDX.js → commands-VUDISST6.js} +30 -27
  19. package/dist/{completion-YB2UIXEL.js → completion-INVEPDAF.js} +6 -5
  20. package/dist/{dispatch-GSBMRWQ4.js → dispatch-ZRC3TVFT.js} +1 -1
  21. package/dist/{license-YOBNOTSR.js → license-S35KLEJW.js} +1 -1
  22. package/dist/{logout-guard-HUCILXP7.js → logout-guard-PEETWT4A.js} +1 -1
  23. package/dist/{media-SE6FZLQG.js → media-FNQUGMR5.js} +1 -1
  24. package/dist/orientation-command-PQ3QXDPE.js +25 -0
  25. package/dist/{plan-submit-3LCM44YE.js → plan-submit-7724A3OV.js} +1 -1
  26. package/dist/{registry-PJBXIHUK.js → registry-LSCY5JIU.js} +1 -1
  27. package/dist/{run-DHHIH5A3.js → run-6LVGXIBB.js} +1 -1
  28. package/dist/server-settings-DR3KPUCD.js +4 -0
  29. package/dist/settings-command-3SLINN5N.js +3 -0
  30. package/dist/{setup-FX2IUBHT.js → setup-ICJPTYKW.js} +1 -1
  31. package/dist/{user-PWZUOZGI.js → user-Y244LJW3.js} +6 -6
  32. package/package.json +1 -1
  33. package/dist/chunk-EOXTDZTA.js +0 -13
  34. package/dist/chunk-HPBAAKJS.js +0 -49
  35. package/dist/chunk-ISLZWSHN.js +0 -17
  36. package/dist/server-settings-TFVXMOJB.js +0 -4
@@ -11,6 +11,14 @@
11
11
  `CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
12
12
  -->
13
13
 
14
+ ## 0.94.1
15
+
16
+ ユーザー権限の変更で見込むライセンスの増減が、タスク管理・勤怠管理などを含むすべてのライセンス対象機能で正しく表示されるようになりました。
17
+
18
+ ## 0.94.0
19
+
20
+ `twp task-loop orientation` で、計画AIへ渡す「志向性」(軸ごとの重み 0〜100 と全体の ON/OFF)を表示・変更できるようになりました。OFF にしても値は保持され、ON に戻すと元の値で渡ります。`settings pull|push` でも扱えます。
21
+
14
22
  ## 0.93.0
15
23
 
16
24
  `twp faq notion-import` で、Notion のデータベースから社内FAQを取り込めるようになりました(対応付けの確認・変換結果のプレビュー・進捗の確認・キャンセルを含みます)。
package/README.md CHANGED
@@ -469,7 +469,7 @@ E0012,Wiki管理,editor
469
469
 
470
470
  - **送る前に全件を検査し、不正な行(ユーザーが見つからない・機能とレベルの組み合わせ・同じ人と機能の重複)が1つでもあれば1件も送りません**(行番号と理由をすべて出して終了コード 2)
471
471
  - 続けて今の権限・ライセンスの割当・空きを読み、「誰の・どの機能が・何から何へ・ライセンスがどうなるか」を stderr に出します。`--dry-run` はここまでで止まります。**割り当てるライセンスの空きが足りない機能があれば、機能名と不足数を出して1件も送りません**
472
- - ライセンスの割当・解除はサーバが権限の変更に合わせて行います。**いまサーバがライセンスを動かすのは問い合わせ管理・コンテンツ管理・ワークフロー(admin)・ヒアリング(admin)だけ**で、それ以外の機能は権限を変えてもライセンスは割り当ても解除もされません(画面から変えた場合も同じ。該当するときは stderr で知らせます)
472
+ - ライセンスの割当・解除はサーバが権限の変更に合わせて行います。**ライセンスが要るレベルへ変えると割り当て、そこから外すと解除します**(Wiki・顧客の viewer やワークフロー・ヒアリングの member のような無償のレベルは席を使いません。画面から変えた場合も同じです)
473
473
  - ライセンスの増減は送る前の**見込み**で、最終的な判定はサーバがします。空きが読めない機能は事前検査をせずに知らせます
474
474
  - 送信は1件(1人の1機能)ずつで、失敗したらそこで止め、成功・失敗・未送信の件と、成功した件を元に戻すコマンドを出します(終了コード 3)
475
475
  - 権限は変わったがサーバがライセンスの更新に失敗した件があれば、結果を出したうえで終了コード 3 で終わります
@@ -1254,7 +1254,7 @@ twp license assignments <機能コード|機能名> | --all-features [--inactive
1254
1254
  - `bulk-restore` はゴミ箱から戻す操作です(アーカイブの解除ではありません)。`bulk-delete --permanent` は**ゴミ箱にあるファイルだけ**を完全に削除します(先に `bulk-delete` でゴミ箱へ移してください)
1255
1255
  - `twp storage get` は使用量・上限・残量と種類別の内訳を出します(管理者のみ。アップロード前の容量検査は誰でも自動で行われます)
1256
1256
  - **`twp license list` は画面の「課金管理 > ライセンス状況」と同じ枠・使用数を出します**(購入済みは Stripe の契約中のシートだけ)。シートの購入・削減は画面から行ってください
1257
- - **`twp license assignments` の判定(findings)は、失効済み/機能権限が none/`--inactive-days` 日(既定60・最大90)ログインの記録が無い/ユーザーが見つからない、の4種類です。** 最終ログインは `twp user export` と同じくログイン履歴(90日で消える・SSO は 2026-09-26 より前の分が記録されていない)から読むので、oauth の人は判定しません。各行の `release_command` は権限を none にしてライセンスを外す `twp user permission update` のコマンド案です。**打ってもサーバが割当を外さない行(ライセンスの要らないレベル・権限の変更でライセンスが動かない機能・ユーザーが見つからない)には出しません**——その行は画面の「ライセンス管理」から外してください
1257
+ - **`twp license assignments` の判定(findings)は、失効済み/機能権限が none/`--inactive-days` 日(既定60・最大90)ログインの記録が無い/ユーザーが見つからない、の4種類です。** 最終ログインは `twp user export` と同じくログイン履歴(90日で消える・SSO は 2026-09-26 より前の分が記録されていない)から読むので、oauth の人は判定しません。各行の `release_command` は権限を none にしてライセンスを外す `twp user permission update` のコマンド案です。**打ってもサーバが割当を外さない行(ライセンスの要らないレベル・ユーザーが見つからない)には出しません**——その行は画面の「ライセンス管理」から外してください
1258
1258
  - **AI 生成(`twp media image create` / `twp media document create`)は生成物をメディアライブラリに保存し、`--out` を付けるとそのファイルをそのまま書き出します。** 付けなければファイルIDを出して終わります(あとから `twp media download` で取れます)。AI クレジットを消費するので `--yes` が要ります(送る内容は `--dry-run` で確認できます)。`--from <ファイルID>` を付けると、その画像を元にしたリミックスになります
1259
1259
  - 書き出し先が既にあるときは、**生成を送る前に**止まります(クレジットを使ってから「書けません」で落ちません)。取得だけが失敗したときは、ファイルIDと `twp media download` のコマンドを出して失敗で終わります(生成し直す必要はありません)
1260
1260
  - **生成の回数制限(1分あたりの回数・ユーザーごと)に当たっても自動では打ち直しません**(生成は1回ごとに課金されるため)。待つ秒数を stderr に出して終了コード 4 で終わります
@@ -2271,7 +2271,7 @@ twp task-loop charter pull --project <キー|UUID> [--out CONSTITUTION.md] #
2271
2271
 
2272
2272
  ### 憲章以外のループ設定をファイルとサーバで受け渡す
2273
2273
 
2274
- AI 割当(`ai`)・注入文面(`prompts`。憲章を除く)・ループ間隔(`loop.interval_sec`)・契約結果の意味づけ(`outcomes`)を、JSON ファイルとの間で登録・展開できます。作法は憲章(`charter`)と同じです。
2274
+ AI 割当(`ai`)・注入文面(`prompts`。憲章を除く)・ループ間隔(`loop.interval_sec`)・契約結果の意味づけ(`outcomes`)・志向性(`orientation`)を、JSON ファイルとの間で登録・展開できます。作法は憲章(`charter`)と同じです。
2275
2275
 
2276
2276
  ```bash
2277
2277
  twp task-loop settings pull --project <キー|UUID> [--out loop-settings.json] # サーバ → ファイル
@@ -2279,7 +2279,7 @@ twp task-loop settings push --project <キー|UUID> --file loop-settings.json
2279
2279
  ```
2280
2280
 
2281
2281
  - **pull は全キーを書き出します**(未設定のキーは `null`)。取得時点の `revision` も書きます。憲章は含みません(`charter pull` を使います)。既存ファイルと違うときは差分を表示し、`--yes` を付けたときだけ上書きします
2282
- - **push はファイルに書いたキーだけを変えます(部分更新)。** `ai.<キー>`・`prompts.<キー>`・`loop.<キー>` は書かれていれば置き換え、`null` なら未設定に戻します。書いていないキーと憲章は変えません。`outcomes` は書かれていれば配列全体を置き換えます
2282
+ - **push はファイルに書いたキーだけを変えます(部分更新)。** `ai.<キー>`・`prompts.<キー>`・`loop.<キー>` は書かれていれば置き換え、`null` なら未設定に戻します。書いていないキーと憲章は変えません。`outcomes` は書かれていれば配列全体を置き換えます。`orientation` は書かれていれば全体を置き換え、`null` なら未設定に戻します
2283
2283
  - `prompts.charter` を書いたファイルは受け付けません(`charter push` を使います)。サーバが知らないキー(綴り間違い等)があるときも、送る前に止めます
2284
2284
  - **push は `--yes` なしでは登録しません。** 変わるキーごとの差分(注入文面は行単位)と revision を表示し、確定用のコマンド(`--yes --revision <番号>`)を案内します。その後サーバが更新されていれば 409 で止まります
2285
2285
  - **ファイルの `revision` より後にサーバが更新されていると、`--revision` なしの `--yes` では登録しません。** pull したファイルは全キーを持つので、そのまま送ると取得後に他で直されたキーを元に戻すためです。差分を確認して案内どおり `--revision` を付けるか、pull し直してください(`revision` を書いていないファイルはこの確認をしません)
@@ -2287,6 +2287,23 @@ twp task-loop settings push --project <キー|UUID> --file loop-settings.json
2287
2287
  - `ai` の `_comment` で始まるキーは注記として無視します
2288
2288
  - 実行中のループは次のサイクルで新しい revision を読みます。書き込みの権限・終了コードは憲章と同じ規約です
2289
2289
 
2290
+ ### 志向性(計画AIへ渡す重み)を操作する
2291
+
2292
+ 計画AIに「いまどこに重みを置くか」を、軸ごとの重み(各 0〜100 の独立した値。合計100の配分ではありません)で渡せます。軸とスキルの対応は持たず、軸の意味をどう計画へ反映するかは計画AIが判断します。
2293
+
2294
+ ```bash
2295
+ twp task-loop orientation show --project <キー|UUID> # 現在の ON/OFF と各軸
2296
+ twp task-loop orientation add <key> <ラベル> <0-100> [説明] --project <キー|UUID> # 軸を足す
2297
+ twp task-loop orientation set <key> <0-100> --project <キー|UUID> # 重みを変える
2298
+ twp task-loop orientation remove <key> --project <キー|UUID> # 軸を外す
2299
+ twp task-loop orientation on|off --project <キー|UUID> # 全体の ON/OFF
2300
+ ```
2301
+
2302
+ - **ON のときだけ**計画のプロンプトに志向性の節が入ります。OFF・未設定・軸0件では何も渡しません。**OFF にしても軸と値は残り、ON に戻すと元の値で渡ります**。渡した回の志向性は計画の実行記録(`twp task-loop plan-history`)に残ります
2303
+ - 未設定のプロジェクトで `add` すると OFF の志向性が作られます。渡し始めるには `on` を実行してください
2304
+ - `key` は英小文字で始まる英小文字・数字・ハイフン(64文字まで)、ラベルは50文字・説明は500文字まで、軸は20件までです
2305
+ - 書き込みの作法は `settings push` と同じです。`--yes` なしでは変更前後と revision を表示して止まり、確定用のコマンド(`--yes --revision <番号>`)を案内します。その後サーバが更新されていれば 409 で止まります
2306
+
2290
2307
  ### スキル定義をファイルとサーバで受け渡す
2291
2308
 
2292
2309
  ループ用のスキル定義(`.claude/commands/<名前>.md` と同じ markdown)を、プロジェクト単位でサーバに登録・展開できます。サーバのスキル名 `<名前>` はファイル `<ディレクトリ>/<名前>.md` に対応します(既定のディレクトリは `.claude/commands`、`--dir` で変更)。
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{stepToItem}from"./chunk-P54LCXEY.js";import{loadLocalConfig}from"./chunk-6EQLA56A.js";import"./chunk-VYDPW2YO.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-TTST7UDR.js";import"./chunk-BABZL52A.js";import{loadAiConfig}from"./chunk-FABDZBDZ.js";import{SKILL_PREFIX_RE,setSkillPrefix}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,
3
+ import{stepToItem}from"./chunk-P54LCXEY.js";import{loadLocalConfig}from"./chunk-INS77QHY.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-BABZL52A.js";import{loadAiConfig}from"./chunk-FABDZBDZ.js";import{SKILL_PREFIX_RE,setSkillPrefix}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,
4
4
  isPrivateProjectRef}from"./chunk-RMFLTSOV.js";import"./chunk-5TKHN3A5.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";
5
5
  import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u306E\u30A2\u30A4\u30C6\u30E0";var STATUSES=["pending","processing","completed","failed"];var AI_TYPES=["claude","gemini","codex","copilot"];var EFFORTS=["low","medium","high","xhigh","max"];var PRIORITIES=["P0","P1","P2","P3"];var LIST_COLUMNS=["item_id","status","task_key","label","ai_type","ai_effort","runner_id","created_at"];var GET_COLUMNS=["item_id","status","task_key","label","prompt","ai_type","ai_model","ai_effort","runn\
6
6
  er_id","attempt_count","reclaim_count","error_message","created_by_name","created_at","started_at","completed_at"];var HISTORY_COLUMNS=["item_id","status","task_key","skill","ai_type","runner_id","duration_ms","cost_usd","created_at"];var PLAN_RESULTS=["enqueued","empty","json_not_found","ai_failed","error","skipped","gated","locked","abandoned"];var PLAN_HISTORY_COLUMNS=["plan_run_id","result","runner_id","ai_type","duration_ms","cost_usd","step_count","started_at"];var PROJECT_FLAG={name:"--pr\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-XIAZ6ZJG.js";import"./chunk-MSZWJ24L.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-24AJQUDZ.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-3TDGVH3E.js";import"./chunk-DJCPPFTI.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-24AJQUDZ.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
4
4
  import{readBody}from"./chunk-A3VGBVQP.js";import{ALLOW_REDACTED_FLAG,NO_REDACT_FLAG,NO_REDACT_NOTICE}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-5TKHN3A5.js";import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";
5
5
  import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-3ZRMMBP5.js";import{ApiResponseError,EXIT_OK,EXIT_WAIT_TIMEOUT,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{
6
6
  httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-X3F7DOP5.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MIN_SEGMENT_CHARS=3;var parsedCache=new WeakMap;function splitSegments(path){return path.split("/").filter(segment=>segment!=="")}function parseRoutes(routes){const cached=parsedCache.get(routes);if(cached!==void 0)return cached;const parsed=[];for(const[key,domain]of Object.entries(routes.routes)){const space=key.indexOf(" ");if(space<=0)continue;const template=key.slice(space+1);parsed.push({method:key.slice(0,space),template,domain,segments:splitSegments(template).map(segment=>/^\{[^/{}]+\}$/.
@@ -2,8 +2,8 @@ import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{RESIDENT_TOKEN_CAP,activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,describeAuditLog,describeToolCatalog,displayCwd,executeTool,findProjectTwpSubdir,localTools,lstatOrNull,parseFrontMatter,parseRule,persistProjectAllow,projectPermissionsPath,projectRootFor,readFileTool,residentInputs,resolveGitExecutable,runTurn,secretReason}from"./chunk-PTLUNRQS.js";import"./chunk-NZ7WI4RZ.js";import{buildDiffLines,
4
4
  diffStat}from"./chunk-VRBI2NPI.js";import{require_fuzzysort}from"./chunk-DIMZRTLE.js";import"./chunk-N2UVRM3Z.js";import"./chunk-5TKHN3A5.js";import"./chunk-4DOPQ74T.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{RelayError,builtinCatalog,classifyModelSwitch,createRuntime,loadCachedCatalog,modelLabel,pickModel,specFor,toModelInfos}from"./chunk-LLBLGHHZ.js";
5
- import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import{proxyDiagnostics}from"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,isBelowMinSupported,minSupportedBlockMessage}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import{configReadDirs,twpHomeDir}from"./chunk-RZVI6PMW.js";import{parseArgv}from"./chunk-HPBAAKJS.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
- nextMode}from"./chunk-2LOT54OO.js";import"./chunk-X3F7DOP5.js";import"./chunk-EOXTDZTA.js";import"./chunk-QQRJLH6B.js";import{isFullWidth,isWide,stringWidth,stripAnsi}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{__commonJS,__export,__require,__toESM}from"./chunk-VSJBJXZO.js";var require_react_production=__commonJS({"node_modules/react/cjs/react.production.js"(exports){"use strict";var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");var REACT_PORTAL_TYPE=Symbol.for("react.portal");var REACT_FRAGMENT_TYPE=Symbol.for("react.fragment");var REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode");var REACT_PROFILER_TYPE=Symbol.for("react.profiler");var REACT_CONSUMER_TYPE=Symbol.for("react.consumer");var REACT_CONTEXT_TYPE=Symbol.for("react.context");var REACT_FORWARD_REF_TYPE=Symbol.
5
+ import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import{proxyDiagnostics}from"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,isBelowMinSupported,minSupportedBlockMessage}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import{configReadDirs,twpHomeDir}from"./chunk-RZVI6PMW.js";import{parseArgv}from"./chunk-C7MCP63I.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
+ nextMode}from"./chunk-2LOT54OO.js";import"./chunk-NJL3H2BB.js";import"./chunk-X3F7DOP5.js";import"./chunk-QBUVJBZ2.js";import"./chunk-QQRJLH6B.js";import{isFullWidth,isWide,stringWidth,stripAnsi}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{__commonJS,__export,__require,__toESM}from"./chunk-VSJBJXZO.js";var require_react_production=__commonJS({"node_modules/react/cjs/react.production.js"(exports){"use strict";var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");var REACT_PORTAL_TYPE=Symbol.for("react.portal");var REACT_FRAGMENT_TYPE=Symbol.for("react.fragment");var REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode");var REACT_PROFILER_TYPE=Symbol.for("react.profiler");var REACT_CONSUMER_TYPE=Symbol.for("react.consumer");var REACT_CONTEXT_TYPE=Symbol.for("react.context");var REACT_FORWARD_REF_TYPE=Symbol.
7
7
  for("react.forward_ref");var REACT_SUSPENSE_TYPE=Symbol.for("react.suspense");var REACT_MEMO_TYPE=Symbol.for("react.memo");var REACT_LAZY_TYPE=Symbol.for("react.lazy");var REACT_ACTIVITY_TYPE=Symbol.for("react.activity");var REACT_VIEW_TRANSITION_TYPE=Symbol.for("react.view_transition");var MAYBE_ITERATOR_SYMBOL=Symbol.iterator;function getIteratorFn(maybeIterable){if(null===maybeIterable||"object"!==typeof maybeIterable)return null;maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||
8
8
  maybeIterable["@@iterator"];return"function"===typeof maybeIterable?maybeIterable:null}var ReactNoopUpdateQueue={isMounted:function(){return false},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};var assign=Object.assign;var emptyObject={};function Component(props,context,updater){this.props=props;this.context=context;this.refs=emptyObject;this.updater=updater||ReactNoopUpdateQueue}Component.prototype.isReactComponent={};Component.prototype.setState=
9
9
  function(partialState,callback){if("object"!==typeof partialState&&"function"!==typeof partialState&&null!=partialState)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,partialState,callback,"setState")};Component.prototype.forceUpdate=function(callback){this.updater.enqueueForceUpdate(this,callback,"forceUpdate")};function ComponentDummy(){}ComponentDummy.prototype=Component.prototype;function PureComponent2(props,context,updater){
@@ -1212,7 +1212,7 @@ cwd()){const listed=await gitListFiles(cwd2);const raw=listed??await walkFiles(c
1212
1212
  1;const after=/^[^\s]*/.exec(text.slice(cursor))?.[0]??"";return{query,start,end:cursor+after.length}}var TWP_SLASH_ROUTES={"/tasks":{domain:"task",operation:"list"},"/task":{domain:"task",operation:"get"},"/projects":{domain:"project",operation:"list"}};function isTwpSlashCommand(name){return Object.hasOwn(TWP_SLASH_ROUTES,name)}async function runTwpSlashCommand(name,args,deps){const route=TWP_SLASH_ROUTES[name];if(!Object.hasOwn(TWP_SLASH_ROUTES,name)||route===void 0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9: ${name}
1213
1213
  `}}const parsed=parseArgv([route.domain,route.operation,...args]);if(parsed.command!=="domain"||parsed.domain!==route.domain){return{code:2,out:"",err:`${name}: \u3053\u306E\u5F15\u6570\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08${args.join(" ")}\uFF09
1214
1214
  `}}if(parsed.unknown.length>0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u5F15\u6570: ${parsed.unknown.join(" ")}
1215
- `}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-DHHIH5A3.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
1215
+ `}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-6LVGXIBB.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
1216
1216
  {},argv:parsed.domainArgv,help:parsed.domainHelp,globals,version:deps.version,io,...deps.fetchImpl!==void 0?{fetchImpl:deps.fetchImpl}:{}});return{code,out,err}}catch(e){return{code:1,out,err:`${err}${e.message}
1217
1217
  `}}}var GIT_LOG_OUTPUT=["9f3c1a2 feat(ui): \u4E00\u89A7\u306E\u30D5\u30A3\u30EB\u30BF\u3092 URL \u30AF\u30A8\u30EA\u3068\u540C\u671F\u3059\u308B","4b8e0d7 fix(ui): \u4EEE\u60F3\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u884C\u9AD8\u3055\u3092\u5B9F\u6E2C\u5024\u306B\u5408\u308F\u305B\u308B","c15a99e refactor(api): \u4E00\u89A7\u53D6\u5F97\u306E\u30DA\u30FC\u30B8\u30F3\u30B0\u51E6\u7406\u3092\u5171\u901A\u5316\u3059\u308B","2d70f4b test: \u4E00\u89A7\u30D5\u30A3\u30EB\u30BF\u306E\u56DE\u5E30\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B",
1218
1218
  "a6e2b38 fix(api): \u7A7A\u306E\u691C\u7D22\u6761\u4EF6\u3067\u5168\u4EF6\u8FD4\u3089\u306A\u3044\u3088\u3046\u306B\u3059\u308B","7c40d51 chore(deps): \u958B\u767A\u4F9D\u5B58\u3092\u6700\u65B0\u3078\u66F4\u65B0\u3059\u308B","e83b1c6 docs: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u624B\u9806\u306B Node 22 \u306E\u524D\u63D0\u3092\u8FFD\u8A18\u3059\u308B","b91f7a4 fix(ui): \u30E2\u30FC\u30C0\u30EB\u306E\u91CD\u306A\u308A\u9806\u3092\u6307\u5B9A\u3059\u308B","5a2c8e0 perf(api): \u4E00\u89A7\u306E N+1 \u3092\u89E3\u6D88\u3059\u308B",
@@ -1,15 +1,16 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-ZFSQJAYZ.js";import{DEPARTMENTS_PATH}from"./chunk-4DOPQ74T.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";
4
- import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var SEAT_MOVING_LEVELS={inquiry:["admin","member"],content_management:["admin","member"],workflow:["admin"],hearing:["admin"]};function levelHoldsSeat(feature,level){return SEAT_MOVING_LEVELS[feature]?.includes(level)??false}function permissionMovesSeat(feature){return Object.hasOwn(SEAT_MOVING_LEVELS,feature)}var LICENSE_FEATURE_NAMES={content_management:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406",inquiry:"\u554F\u3044\u5408\u308F\u305B\u7BA1\u7406",workflow:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",hearing:"\u30D2\u30A2\u30EA\u30F3\u30B0",task_management:"\u30BF\u30B9\u30AF\u7BA1\u7406",sales:"\u53D6\u5F15\u7BA1\u7406",attendance:"\u52E4\u6020\u7BA1\u7406",report:"\u30EC\u30DD\u30FC\u30C8",hr_management:"\u4EBA\u6750\u7BA1\u7406",learning:"\u5B66\u7FD2\u7BA1\u7406",expense:"\u7D4C\u8CBB\u7BA1\u7406",test:"\
4
+ import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var SEAT_MOVING_LEVELS={inquiry:["admin","member"],content_management:["admin","member"],workflow:["admin"],hearing:["admin"],task_management:["admin","member"],sales:["admin","member"],attendance:["admin","paid_leave_admin","member"],report:["admin","member"],hr_management:["admin","member"],learning:["admin","member"],expense:["admin","member"],test:["admin","member"],chat:["admin","member"],customer:["admin","editor"],survey:["admin","member"],organization_survey:["admin"],feedback:["admin","\
5
+ member"],notes:["admin","member"],wiki_management:["admin","editor"],meeting_minutes:["admin","member"],equipment_management:["admin","member"],floor_map:["admin","member"]};function levelHoldsSeat(feature,level){return SEAT_MOVING_LEVELS[feature]?.includes(level)??false}function permissionMovesSeat(feature){return Object.hasOwn(SEAT_MOVING_LEVELS,feature)}var LICENSE_FEATURE_NAMES={content_management:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406",inquiry:"\u554F\u3044\u5408\u308F\u305B\u7BA1\u7406",workflow:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",hearing:"\u30D2\u30A2\u30EA\u30F3\u30B0",task_management:"\u30BF\u30B9\u30AF\u7BA1\u7406",sales:"\u53D6\u5F15\u7BA1\u7406",attendance:"\u52E4\u6020\u7BA1\u7406",report:"\u30EC\u30DD\u30FC\u30C8",hr_management:"\u4EBA\u6750\u7BA1\u7406",learning:"\u5B66\u7FD2\u7BA1\u7406",expense:"\u7D4C\u8CBB\u7BA1\u7406",test:"\
5
6
  \u30B7\u30CA\u30EA\u30AA\u30C6\u30B9\u30C8\u7BA1\u7406",chat:"\u30C1\u30E3\u30C3\u30C8",customer:"\u9867\u5BA2\u7BA1\u7406",survey:"\u30A2\u30F3\u30B1\u30FC\u30C8",organization_survey:"\u7D44\u7E54\u30B5\u30FC\u30D9\u30A4",feedback:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",notes:"\u30CE\u30FC\u30C8",wiki_management:"Wiki",meeting_minutes:"\u8B70\u4E8B\u9332",equipment_management:"\u5099\u54C1\u7BA1\u7406",floor_map:"\u30D5\u30ED\u30A2\u30DE\u30C3\u30D7"};var LICENSES_PATH="/api/v2/licenses";var FORBIDDEN="\
6
7
  \u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp license \u306F\u30C6\u30CA\u30F3\u30C8\u306E\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var LIST_USAGE="twp license list";var ASSIGNMENTS_USAGE="twp license assignments <\u6A5F\u80FD\u30B3\u30FC\u30C9|\u6A5F\u80FD\u540D> | --all-features [--inactive-days <\u65E5\u6570>]";var ASSIGNMENTS_HELP="twp license assignments help";var RELEASE_COMMAND_MISSING="release_command \u304C\u7A7A\u306E\u884C\u306F\u3001\u6A29\u9650\u3092 non\
7
- e \u306B\u3057\u3066\u3082\u30B5\u30FC\u30D0\u304C\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u5916\u3055\u306A\u3044\u884C\u3067\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u8981\u3089\u306A\u3044\u30EC\u30D9\u30EB\u30FB\u6A29\u9650\u306E\u5909\u66F4\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u52D5\u304B\u306A\u3044\u6A5F\u80FD\u30FB\u30E6\u30FC\u30B6\u30FC\u304C\u898B\u3064\u304B\u3089\u306A\u3044\uFF09\u3002\u753B\u9762\u306E\u300C\u30E9\u30A4\u30BB\u30F3\u30B9\u7BA1\u7406\u300D\u304B\u3089\u5916\u3057\u3066\u304F\u3060\u3055\u3044";
8
- var DEPARTMENT_LIMIT=1e3;function featureName(code){return LICENSE_FEATURE_NAMES[code]??code}function featureSegment(code){if(!/^[a-z][a-z0-9_]*$/.test(code)){throw new ApiResponseError(`\u6A5F\u80FD\u30B3\u30FC\u30C9\u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${code}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return code}function resolveFeature(value){const trimmed=value.trim();if(Object.hasOwn(LICENSE_FEATURE_NAMES,trimmed))return trimmed;
9
- const byName=Object.entries(LICENSE_FEATURE_NAMES).find(([,name])=>name===trimmed);if(byName!==void 0)return byName[0];if(/^[a-z][a-z0-9_]*$/.test(trimmed))return trimmed;throw new UsageError(`\u6A5F\u80FD\u300C${value}\u300D\u304C\u5206\u304B\u308A\u307E\u305B\u3093`,`\u6A5F\u80FD\u30B3\u30FC\u30C9\uFF08attendance \u7B49\uFF09\u304B\u753B\u9762\u306E\u8868\u793A\u540D\uFF08\u52E4\u6020\u7BA1\u7406 \u7B49\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4E00\u89A7\u306F twp license list \u3067\u898B\u3089\u308C\u307E\u3059\u3002`)}
10
- function readLicenses(body){const licenses=isRecord(body)?body["licenses"]:void 0;if(Array.isArray(licenses)&&licenses.length===0)return[];if(!isRecord(licenses))throw new ApiResponseError("\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5FDC\u7B54\u306B licenses \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const num=v=>typeof v==="number"?v:null;return Object.entries(licenses).map(([code,usage])=>[code,isRecord(usage)?{used:num(
11
- usage["used"]),total:num(usage["total"]),available:num(usage["available"]),free:num(usage["free"])}:{used:null,total:null,available:null,free:null}])}async function seatDetail(send,code){const body=await send({method:"GET",path:`${LICENSES_PATH}/${featureSegment(code)}/seats`});if(!isRecord(body)||body["feature_code"]!==code){throw new ApiResponseError(`\u30B7\u30FC\u30C8\u306E\u5FDC\u7B54\u304C ${code} \u306E\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
12
- return body}function listBody(body){if(!isRecord(body)||!Array.isArray(body["rows"]))throw new ApiResponseError("\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E00\u89A7\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002");return body["rows"]}function scheduledText(row){if(row.scheduled_quantity===null)return null;return`${row.scheduled_effective_date??"\u65E5\u4ED8\u4E0D\u660E"} \u306B ${row.scheduled_quantity} \u30B7\u30FC\u30C8\u3078\u524A\u6E1B`}
8
+ e \u306B\u3057\u3066\u3082\u30B5\u30FC\u30D0\u304C\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u5916\u3055\u306A\u3044\u884C\u3067\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u8981\u3089\u306A\u3044\u30EC\u30D9\u30EB\u30FB\u30E6\u30FC\u30B6\u30FC\u304C\u898B\u3064\u304B\u3089\u306A\u3044\uFF09\u3002\u753B\u9762\u306E\u300C\u30E9\u30A4\u30BB\u30F3\u30B9\u7BA1\u7406\u300D\u304B\u3089\u5916\u3057\u3066\u304F\u3060\u3055\u3044";var DEPARTMENT_LIMIT=1e3;function featureName(code){return LICENSE_FEATURE_NAMES[code]??
9
+ code}function featureSegment(code){if(!/^[a-z][a-z0-9_]*$/.test(code)){throw new ApiResponseError(`\u6A5F\u80FD\u30B3\u30FC\u30C9\u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${code}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return code}function resolveFeature(value){const trimmed=value.trim();if(Object.hasOwn(LICENSE_FEATURE_NAMES,trimmed))return trimmed;const byName=Object.entries(LICENSE_FEATURE_NAMES).find(([,name])=>name===trimmed);if(byName!==
10
+ void 0)return byName[0];if(/^[a-z][a-z0-9_]*$/.test(trimmed))return trimmed;throw new UsageError(`\u6A5F\u80FD\u300C${value}\u300D\u304C\u5206\u304B\u308A\u307E\u305B\u3093`,`\u6A5F\u80FD\u30B3\u30FC\u30C9\uFF08attendance \u7B49\uFF09\u304B\u753B\u9762\u306E\u8868\u793A\u540D\uFF08\u52E4\u6020\u7BA1\u7406 \u7B49\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4E00\u89A7\u306F twp license list \u3067\u898B\u3089\u308C\u307E\u3059\u3002`)}function readLicenses(body){const licenses=isRecord(
11
+ body)?body["licenses"]:void 0;if(Array.isArray(licenses)&&licenses.length===0)return[];if(!isRecord(licenses))throw new ApiResponseError("\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5FDC\u7B54\u306B licenses \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");const num=v=>typeof v==="number"?v:null;return Object.entries(licenses).map(([code,usage])=>[code,isRecord(usage)?{used:num(usage["used"]),total:num(usage["total"]),available:num(
12
+ usage["available"]),free:num(usage["free"])}:{used:null,total:null,available:null,free:null}])}async function seatDetail(send,code){const body=await send({method:"GET",path:`${LICENSES_PATH}/${featureSegment(code)}/seats`});if(!isRecord(body)||body["feature_code"]!==code){throw new ApiResponseError(`\u30B7\u30FC\u30C8\u306E\u5FDC\u7B54\u304C ${code} \u306E\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}
13
+ function listBody(body){if(!isRecord(body)||!Array.isArray(body["rows"]))throw new ApiResponseError("\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E00\u89A7\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002");return body["rows"]}function scheduledText(row){if(row.scheduled_quantity===null)return null;return`${row.scheduled_effective_date??"\u65E5\u4ED8\u4E0D\u660E"} \u306B ${row.scheduled_quantity} \u30B7\u30FC\u30C8\u3078\u524A\u6E1B`}
13
14
  var FINDING_LABEL={user_missing:"\u30E6\u30FC\u30B6\u30FC\u304C\u898B\u3064\u304B\u3089\u306A\u3044",disabled:"\u5931\u52B9\u6E08\u307F\u306A\u306E\u306B\u5272\u5F53\u304C\u6B8B\u3063\u3066\u3044\u308B",permission_none:"\u6A5F\u80FD\u6A29\u9650\u304C none \u306A\u306E\u306B\u5272\u5F53\u304C\u6B8B\u3063\u3066\u3044\u308B",inactive:"\u9577\u671F\u9593\u30ED\u30B0\u30A4\u30F3\u306E\u8A18\u9332\u304C\u7121\u3044"};function str(value){return typeof value==="string"&&value!==""?value:null}function releaseCommand(userId,code,currentLevel){
14
15
  if(currentLevel===null||!levelHoldsSeat(code,currentLevel))return null;return`twp user permission update ${shellQuote(userId)} --feature ${shellQuote(code)} --level none`}function judge(row,inactiveDays,now){const findings=[];const disabled=row.auth_type==="disabled";if(disabled)findings.push("disabled");if(row.current_level==="none")findings.push("permission_none");if(!disabled&&row.last_login_status!=="sso_not_recorded"&&row.last_login_status!=="not_checked"&&!recentlyHired(row.hire_date,inactiveDays,
15
16
  now)&&(row.last_login_at===null||daysBetween(row.last_login_at,now)>inactiveDays)){findings.push("inactive")}return findings}async function departmentNames(send,ctx){const body=await send({method:"GET",path:DEPARTMENTS_PATH,query:{limit:DEPARTMENT_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new ApiResponseError("\u90E8\u7F72\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-MSZWJ24L.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-24AJQUDZ.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-5TKHN3A5.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-4DOPQ74T.js";
3
+ import{loadDomain}from"./chunk-DJCPPFTI.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-24AJQUDZ.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-5TKHN3A5.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-4DOPQ74T.js";
4
4
  import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";
5
5
  import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredBacklogSpace,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import{HELP_TOKEN}from"./chunk-X3F7DOP5.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";
6
6
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{placeholderTaskKey,stepToItem}from"./chunk-P54LCXEY.js";import{localDate}from"./chunk-6EQLA56A.js";import{redactLoopOutput}from"./chunk-BABZL52A.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-UZUV5FYG.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs from"fs";import path from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
3
+ import{placeholderTaskKey,stepToItem}from"./chunk-P54LCXEY.js";import{localDate}from"./chunk-INS77QHY.js";import{redactLoopOutput}from"./chunk-BABZL52A.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-UZUV5FYG.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs from"fs";import path from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
4
4
  floor((now.getTime()-ts)/6e4)}return null}function inflightEntries(items,now=new Date,staleHours=INFLIGHT_STALE_HOURS){const staleMinutes=staleHours*60;const byKey=new Map;for(const item of items){const key=(item.task_key??"").trim();if(!key)continue;const ageMinutes=ageMinutesOf(item,now);if(ageMinutes!==null&&ageMinutes>staleMinutes)continue;const entry={key,runner:item.runner_id??"-",ageMinutes,label:(item.label??"").slice(0,60)};const prev=byKey.get(key);if(!prev||(entry.ageMinutes??-1)>(prev.
5
5
  ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}async function createItem(api,body){const res=await api.create(redactItemBody(body));if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function redactItemBody(body){const out={...body};for(const key of["prompt","label"]){if(typeof out[key]==="string")
6
6
  out[key]=redactLoopOutput(out[key])}return out}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"items");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){
@@ -0,0 +1,18 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{DEFAULT_INTERVAL_SEC}from"./chunk-INS77QHY.js";import{CHAIN_KEYS,reloadAiConfig}from"./chunk-FABDZBDZ.js";import{describeError}from"./chunk-UZUV5FYG.js";import{isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{parseOrientation}from"./chunk-NJL3H2BB.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var PROMPT_KEYS=["charter","charter_prefix","charter_suffix","plan_preamble","step_budget","non_interactive_note","safe_mode_note"];function parseServerSettings(res){const json=res.json;if(json===null||typeof json!=="object"||Array.isArray(json))return null;const top=json;const data=top["data"];const b=data!==null&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data?data:top;const revision=b["revision"];if(typeof revision!=="number"||!Number.isInteger(revision)||revision<0)return null;
4
+ const rawAi=b["ai"];const ai=rawAi!==null&&typeof rawAi==="object"&&!Array.isArray(rawAi)?Object.fromEntries(Object.entries(rawAi).filter(([,v])=>v!==null&&v!==void 0)):{};const prompts={};const rawPrompts=b["prompts"];if(rawPrompts!==null&&typeof rawPrompts==="object"&&!Array.isArray(rawPrompts)){for(const key of PROMPT_KEYS){const v=rawPrompts[key];if(typeof v==="string")prompts[key]=v}}const rawLoop=b["loop"];const rawInterval=rawLoop!==null&&typeof rawLoop==="object"&&!Array.isArray(rawLoop)?
5
+ rawLoop["interval_sec"]:void 0;const intervalSec=typeof rawInterval==="number"&&Number.isInteger(rawInterval)&&rawInterval>0?rawInterval:null;const rawOutcomes=b["outcomes"];const outcomeSkills=Array.isArray(rawOutcomes)?[...new Set(rawOutcomes.map(r=>r!==null&&typeof r==="object"?r["skill"]:void 0).filter(v=>typeof v==="string"&&v.trim()!==""))]:[];return{revision,ai,prompts,intervalSec,outcomeSkills,orientation:parseOrientation(b["orientation"])}}function formatConfigHash(aiHash,revision,ai,charter){
6
+ return`${aiHash};r=${revision};ai=${ai};charter=${charter}`}function renderStepBudget(template,vars){return template.replaceAll("{timeout_min}",String(vars.timeoutMin)).replaceAll("{soft_min}",String(vars.softMin)).replaceAll("{wrap_up_min}",String(vars.wrapUpMin))}var LoopSettingsApplier=class{constructor(deps){this.deps=deps}deps;last=null;lastWarning="";lastAiWarning="";lastSummary="";serverAiApplied=false;lastSafeWarning="";lastInterval="";async apply(){const{config,log}=this.deps;const outcome=await this.
7
+ fetch();const warning=outcome.warning??"";if(warning!==""&&warning!==this.lastWarning)log(` \u26A0\uFE0F ${warning}`);else if(warning===""&&this.lastWarning!=="")log("\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u518D\u3073\u53D6\u5F97\u3067\u304D\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F");this.lastWarning=warning;const settings=outcome.settings;config.serverPrompts=settings?.prompts??{};config.outcomeSkills=settings?.outcomeSkills??[];config.orientation=settings?.
8
+ orientation??null;const safeNote=config.serverPrompts.safe_mode_note;const safeWarning=config.safeMode&&safeNote!==void 0?safeNote===""?"\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u304C\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u3092\u7A7A\u306B\u3057\u3066\u3044\u307E\u3059\uFF08\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u7981\u6B62\u306E\u6307\u793A\u304C\u30D7\u30ED\u30F3\u30D7\u30C8\u306B\u8F09\u308A\u307E\u305B\u3093\uFF09":
9
+ "\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u3002\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u306F\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u6587\u9762\u306B\u5DEE\u3057\u66FF\u308F\u3063\u3066\u3044\u307E\u3059":"";if(safeWarning!==""&&safeWarning!==this.lastSafeWarning)log(` \u26A0\uFE0F ${safeWarning}`);this.lastSafeWarning=safeWarning;const serverAi=settings!==null&&Object.keys(settings.ai).length>0?settings.ai:null;const layer=serverAi??
10
+ (this.serverAiApplied?{}:null);const r=reloadAiConfig(config.ai,config.aiSource.inline,config.aiSource.file,config.workspace,layer);if(r.status!=="kept"||layer!==null)this.serverAiApplied=serverAi!==null;const aiWarning=r.warnings.join("\n");if(aiWarning!==""&&aiWarning!==this.lastAiWarning){for(const w of r.warnings)log(` \u26A0\uFE0F ${w}`)}else if(aiWarning===""&&this.lastAiWarning!==""&&r.status!=="skipped"){log("AI \u5272\u5F53\u30D5\u30A1\u30A4\u30EB\u3092\u518D\u3073\u8AAD\u3081\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F")}
11
+ this.lastAiWarning=aiWarning;if(r.status==="updated"){log(r.hashBefore===r.hashAfter?`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashAfter} \u306F\u4E0D\u5909\uFF1D\u9396\u304B\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u306E\u5909\u66F4\uFF09`:`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashBefore} \u2192 ${r.hashAfter}\uFF09`)}const fromServer=outcome.
12
+ source==="cached"?"cached":"server";this.applyInterval(settings,fromServer);const inline=config.aiSource.inline;const effectiveServerKeys=serverAi===null?[]:Object.keys(serverAi).filter(k=>!(CHAIN_KEYS.includes(k)&&inline!==void 0&&k in inline));const aiOrigin=effectiveServerKeys.length>0?fromServer:inline!==void 0&&Object.keys(inline).length>0||config.ai.fileLayer!==null?"local":"builtin";const charterOrigin=this.charterOrigin(settings,fromServer);const revision=settings?.revision??0;config.configHash=
13
+ formatConfigHash(config.ai.hash(),revision,aiOrigin,charterOrigin);const serverPromptKeys=Object.keys(config.serverPrompts);const summary=`\u30EB\u30FC\u30D7\u8A2D\u5B9A: ${settings===null?"\u30B5\u30FC\u30D0\u5024\u306A\u3057":`${outcome.source==="cached"?"\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F\u30B5\u30FC\u30D0\u5024":"\u30B5\u30FC\u30D0"} revision ${revision}`}\uFF08AI\u5272\u5F53=${aiOrigin}${effectiveServerKeys.length>0?`\u30FB\u30B5\u30FC\u30D0 ${effectiveServerKeys.length}\u30AD\u30FC`:
14
+ ""} \uFF0F \u61B2\u7AE0=${charterOrigin} \uFF0F \u30B5\u30FC\u30D0\u306E\u6587\u9762=${serverPromptKeys.length>0?serverPromptKeys.join(","):"\u306A\u3057"}\uFF09`;if(summary!==this.lastSummary)log(summary);this.lastSummary=summary}applyInterval(settings,fromServer){const{config,log}=this.deps;if(config.intervalSource==="cli")return;const serverSec=settings?.intervalSec??null;const source=serverSec!==null?fromServer:"default";config.intervalSec=serverSec??DEFAULT_INTERVAL_SEC;config.intervalSource=
15
+ source;const line=`INTERVAL: ${config.intervalSec}s\uFF08\u53D6\u5F97\u5143: ${source}\uFF09`;if(line!==this.lastInterval)log(` ${line}`);this.lastInterval=line}charterOrigin(settings,fromServer){const{config}=this.deps;if(!config.charterEnabled)return"off";if(settings!==null&&settings.prompts.charter!==void 0)return fromServer;const file=config.charterFile;if(file===null||file.trim()==="")return"builtin";const resolved=path.isAbsolute(file)?file:path.resolve(config.workspace,file);try{fs.accessSync(
16
+ resolved,fs.constants.R_OK);return fs.statSync(resolved).isFile()?"local":"builtin"}catch{return"builtin"}}async fetch(){if(isPrivateProjectId(this.deps.config.projectId??""))return{settings:null,source:"none",warning:null};const res=await this.deps.api.request("GET","/settings");const parsed=res.ok?parseServerSettings(res):null;if(parsed!==null){this.last=parsed;return{settings:parsed,source:"server",warning:null}}const transient=res.status===null||res.status>=500||res.ok;const reason=stripTerminalControls(
17
+ res.ok?`\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5148\u982D: ${res.raw.slice(0,120)}\uFF09`:describeError(res));if(transient&&this.last!==null){return{settings:this.last,source:"cached",warning:`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${reason}\uFF09\u3002\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F revision ${this.last.revision} \u3067\u8D70\u308A\u307E\u3059`}}return{settings:null,source:"none",warning:`\
18
+ \u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${reason}\uFF09\u3002\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\uFF08ai_config_file / charter_file\uFF09\u3068\u7D44\u307F\u8FBC\u307F\u65E2\u5B9A\u3067\u8D70\u308A\u307E\u3059`}}};export{PROMPT_KEYS,parseServerSettings,formatConfigHash,renderStepBudget,LoopSettingsApplier};
@@ -0,0 +1,51 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{ORIENTATION_OPS}from"./chunk-NJL3H2BB.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-X3F7DOP5.js";import{BOOLEAN_FLAGS,dispatch,resolveRoute,rewriteQueueCommand}from"./chunk-QBUVJBZ2.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(rawArgv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,orientationArgs:[],includeStopped:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,
4
+ domainArgv:[],domainHelp:false,dryRun:false,debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const queue=rewriteQueueCommand(rawArgv);if(queue.moved!==void 0){out.movedCommand=queue.moved;return out}const argv=queue.argv;const route=resolveRoute(dispatch(argv));const consumed=new Set;const[firstIndex,secondIndex]=route.consumed;if(route.kind==="builtin"){out.command=route.command;if(route.action!==void 0)out.taskLoopAction=route.action;for(const index of route.consumed)consumed.
5
+ add(index)}else if(route.kind==="domain"){if(route.domain===HELP_TOKEN){if(route.operation===void 0){out.command="help";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.operation)){out.command="domain";out.domain=route.operation;out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}else if(route.operation===API_TOKEN){out.command="api";out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==
6
+ void 0)consumed.add(secondIndex)}}else if(route.domain===API_TOKEN){out.command="api";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.domain)){out.command="domain";out.domain=route.domain;if(route.operation!==void 0)out.operation=route.operation;for(const index of route.consumed)consumed.add(index)}}const hasSubcommandToken=route.kind==="builtin"||route.kind==="domain"&&(route.domain===HELP_TOKEN||route.domain===API_TOKEN||isDomainName(route.domain));const isDomainRoute=out.
7
+ command==="domain"||out.command==="api";const takeValue=(i,flag,inline)=>{const value=inline??argv[i+1];if(value===void 0||inline===void 0&&value.startsWith("-")){out.unknown.push(flag);return{step:0}}if(value.trim()===""){out.unknown.push(inline===void 0?`${flag} `:`${flag}=${inline}`);return{step:0}}return{value,step:inline===void 0?1:0}};let optionsClosed=false;for(let i=0;i<argv.length;i++){if(consumed.has(i))continue;const raw=argv[i];if(raw===void 0)continue;if(isDomainRoute&&raw==="--")optionsClosed=
8
+ true;const{name:arg,value:inline}=splitFlagToken(raw);if(isDomainRoute&&(optionsClosed||!GLOBAL_FLAGS.has(arg))){out.domainArgv.push(raw);continue}if(inline!==void 0&&BOOLEAN_FLAGS.has(arg)){out.unknown.push(raw);continue}switch(arg){case"-h":case"--help":if(isDomainRoute)out.domainHelp=true;else out.command="help";break;case"-v":case"--version":out.command="version";break;case"--no-tui":out.noTui=true;break;case"--doctor":out.doctor=true;break;case"--password":out.loginMethod="password";break;case"\
9
+ --token":out.loginMethod="token";break;case"--no-browser":out.loginNoBrowser=true;break;case"--profile":{const{value,step}=takeValue(i,"--profile",inline);if(value!==void 0){out.profile=value;i+=step}break}case"-p":case"--print":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(hasSubcommandToken){out.unknown.push(raw)}else if(next==="-"){out.command="print";out.promptFromStdin=true;out.prompt="";i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.command="\
10
+ print";out.prompt=next;i+=step}else{out.unknown.push(raw)}break}case"--output":{const{value,step}=takeValue(i,"--output",inline);if(value!==void 0){out.output=value;i+=step}break}case"--query":{const{value,step}=takeValue(i,"--query",inline);if(value!==void 0){out.query=value;i+=step}break}case"--dry-run":out.dryRun=true;break;case"--debug":out.debug=true;break;case"--refresh":out.refresh=true;break;case"--tenant":{const{value,step}=takeValue(i,"--tenant",inline);if(value!==void 0){out.tenant=value;
11
+ i+=step}break}case"--mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isModeId(next)){out.mode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.unknown.push(inline!==void 0?raw:`--mode ${next}`);i+=step}else{out.unknown.push("--mode")}break}case"--permission-mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isPermissionModeId(next)){out.permissionMode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("\
12
+ -"))){out.unknown.push(inline!==void 0?raw:`--permission-mode ${next}`);i+=step}else{out.unknown.push("--permission-mode")}break}case"--allowed-tools":case"--disallowed-tools":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){(arg==="--allowed-tools"?out.allowedTools:out.disallowedTools).push(value);i+=step}break}case"--model":{const{value,step}=takeValue(i,"--model",inline);if(value!==void 0){out.model=value;i+=step}break}case"--safe":out.safe=true;break;case"--daemon":out.daemon=true;
13
+ break;case"--force-runner":out.forceRunner=true;break;case"--force":out.stopForce=true;break;case"--drain":out.stopDrain=true;break;case"--project":{const{value,step}=takeValue(i,"--project",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{const{value,step}=takeValue(i,"--engine",inline);if(value!==void 0){out.engine=value;i+=step}break}case"--interval":case"--max-cycles":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){const n=Number.parseInt(value,10);if(Number.
14
+ isInteger(n)&&n>0){if(arg==="--interval")out.interval=n;else out.maxCycles=n}else{out.unknown.push(inline!==void 0?raw:`${arg} ${value}`)}i+=step}break}case"--yes":case"-y":out.yes=true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-fi\
15
+ le":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{
16
+ if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--from":{const{value:v,step}=takeValue(i,"--from",inline);if(v!==void 0){out.revisionFrom=v;i+=step}break}case"\
17
+ --to":{const{value:v,step}=takeValue(i,"--to",inline);if(v!==void 0){out.revisionTo=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}break}case"--config":{const{value:v,step}=takeValue(i,"--config",inline);if(v!==void 0){out.skillConfig=v;i+=step}break}case"--all":out.skillAll=true;break;case"--include-stopped":out.includeStopped=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.
18
+ command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&isRevisionAwareOp(raw)){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="schedule"){if(out.scheduleOp===void 0&&isScheduleOp(raw)){out.scheduleOp=raw;break}if(out.scheduleOp==="config"&&out.scheduleConfigOp===void 0&&(raw==="pull"||raw==="push")){out.scheduleConfigOp=raw;break}if(out.scheduleOp==="delete"&&out.scheduleId===void 0&&!raw.startsWith("-")){out.scheduleId=raw;break}}if(out.command===
19
+ "task-loop"&&out.taskLoopAction==="settings"&&out.settingsOp===void 0&&(raw==="push"||raw==="pull")){out.settingsOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="orientation"){if(out.orientationOp===void 0&&ORIENTATION_OPS.includes(raw)){out.orientationOp=raw;break}if(out.orientationOp!==void 0&&!raw.startsWith("-")){out.orientationArgs.push(raw);break}}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}if(out.
20
+ command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&(raw==="report"||raw==="list")){out.capacityOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0&&(raw==="list"||raw==="remove")){out.runnerOp=raw;break}if(out.runnerOp==="remove"&&out.runnerTargetId===void 0&&!raw.startsWith("-")){out.runnerTargetId=raw;break}}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(isRevisionAwareOp(raw)||isSkillManageOp(
21
+ raw)||raw==="check")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){
22
+ if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod==="browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("-\
23
+ -daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)
24
+ out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==
25
+ void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config");if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to");if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami"||out.command==="task-loop"&&out.
26
+ taskLoopAction==="status"||out.command==="task-loop"&&out.taskLoopAction==="skill"&&(out.skillOp==="list"||out.skillOp==="show"||out.skillOp==="check")||out.command==="task-loop"&&out.taskLoopAction==="runner"||out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp==="list";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}else if(out.command==="task-loop"&&(out.skillOp==="check"||out.taskLoopAction==="run\
27
+ ner"&&out.runnerOp==="remove")&&out.query!==void 0){out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&(out.taskLoopAction!=="schedule"||out.scheduleOp!==void 0)){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");
28
+ if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");
29
+ out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){const yesConfirms=out.taskLoopAction==="charter"||out.taskLoopAction==="skill"||out.taskLoopAction==="settings"||out.taskLoopAction==="orientation"&&out.orientationOp!=="show"||out.taskLoopAction==="runner"&&out.runnerOp==="remove"||out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0&&out.scheduleOp!=="list";if(out.yes&&!yesConfirms)out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push(
30
+ "--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.
31
+ unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction===
32
+ "charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.charterOp);if((out.charterOp==="history"||out.charterOp==="diff")&&out.yes)
33
+ out.unknown.push("--yes");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.
34
+ unknown.push(SKILL_OP_REQUIRED)}else if(out.skillOp==="check"){if(out.skillName!==void 0)out.unknown.push("skill check \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5168\u30B9\u30AD\u30EB\u3092\u691C\u67FB\u3057\u307E\u3059\uFF09");if(out.skillAll)out.unknown.push("--all");if(out.yes)out.unknown.push("--yes")}else if(out.skillOp==="list"&&out.skillAll){out.unknown.push("--all")}else if(out.skillOp==="list"&&out.skillName!==void 0){out.
35
+ unknown.push(`skill list \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${out.skillName}`)}else if(out.skillOp==="list"){}else if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306F --all \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u540D\u30921\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(out.skillName===void 0&&!out.skillAll){out.unknown.push(out.skillOp==="\
36
+ push"||out.skillOp==="pull"?`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`:`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}if(out.skillOp!=="push"&&out.skillOp!=="revert"&&out.skillOp!==
37
+ "delete"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.skillOp);if((out.skillOp==="history"||out.skillOp==="diff"||out.skillOp==="list"||out.skillOp==="show")&&out.yes){out.unknown.push("--yes")}if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillOp!=="check"&&out.skillConfig!==void 0)out.unknown.push("--config");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.
38
+ unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="settings"){if(out.settingsOp===void 0)out.unknown.push("settings \u306B\u306F push / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");
39
+ if(out.settingsOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.settingsOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.settingsOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==
40
+ void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="orientation"){if(out.orientationOp===void 0)out.unknown.push(`orientation \u306B\u306F ${ORIENTATION_OPS.join(" / ")} \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)
41
+ out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revisi\
42
+ on");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report / list \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");
43
+ if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="tas\
44
+ k-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0)out.unknown.push("runner \u306B\u306F list / remove \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.runnerOp==="remove"&&out.runnerTargetId===void 0){out.unknown.push("runner remove \u306B\u306F runner_id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==
45
+ void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0){const op=out.scheduleOp;const takesFile=op==="push"||op==="config"&&
46
+ out.scheduleConfigOp==="push";if(op==="config"&&out.scheduleConfigOp===void 0){out.unknown.push("schedule config \u306B\u306F pull \u304B push \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(op==="delete"&&out.scheduleId===void 0)out.unknown.push("schedule delete \u306B\u306F\u5B9A\u7FA9ID\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(takesFile&&out.charterFile===void 0)out.unknown.push(`schedule ${op==="push"?"push":"config push"} \u306B\u306F --file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);
47
+ if(!takesFile&&out.charterFile!==void 0)out.unknown.push("--file");if(!(op==="config"&&out.scheduleConfigOp==="pull")&&out.charterOut!==void 0)out.unknown.push("--out");if((op==="list"||op==="config"&&out.scheduleConfigOp!=="push")&&out.charterRevision!==void 0){out.unknown.push("--revision")}if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==
48
+ void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.includeStopped&&!(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp==="list")){out.unknown.push("--include-stopped")}if(out.command==="task-loop"&&out.taskLoopAction!==
49
+ "skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"&&out.taskLoopAction!=="charter"){if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--\
50
+ check")}return out}function isScheduleOp(raw){return raw==="list"||raw==="push"||raw==="delete"||raw==="config"}function isSkillManageOp(raw){return raw==="list"||raw==="show"||raw==="delete"}var SKILL_OP_REQUIRED="skill \u306B\u306F push / pull / list / show / delete / history / diff / revert / check \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044";function isRevisionAwareOp(raw){return raw==="push"||raw==="pull"||raw==="history"||raw==="diff"||raw==="revert"}
51
+ function pushRevisionFlagErrors(out,op){if(op!=="diff"&&out.revisionFrom!==void 0)out.unknown.push("--from");if(op!=="diff"&&op!=="revert"&&out.revisionTo!==void 0)out.unknown.push("--to")}export{GLOBAL_FLAGS,parseArgv};
@@ -1,12 +1,12 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- var LOADERS={agent:async()=>(await import("./agent-JNWPWVHF.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-HMSOMXFI.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-JH6UAUHC.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-UP5QD5OD.js")).analysisDomain,announcement:async()=>(await import("./announcement-A3J2DYSQ.js")).announcementDomain,"api-key":async()=>(await import("./api-key-YSHTZPY2.js")).apiKeyDomain,attendance:async()=>(await import("./attendance-correct-GBJUPRTU.js")).
3
+ var LOADERS={agent:async()=>(await import("./agent-JNWPWVHF.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-ED3PVMVI.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-JH6UAUHC.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-UP5QD5OD.js")).analysisDomain,announcement:async()=>(await import("./announcement-A3J2DYSQ.js")).announcementDomain,"api-key":async()=>(await import("./api-key-YSHTZPY2.js")).apiKeyDomain,attendance:async()=>(await import("./attendance-correct-GBJUPRTU.js")).
4
4
  attendanceDomainWithRecords,"audit-log":async()=>(await import("./audit-log-ZGK7IVLD.js")).auditLogDomain,backlog:async()=>(await import("./backlog-VJWLVDSM.js")).backlogDomain,budget:async()=>(await import("./budget-VUMWU762.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-QF4ZGAGF.js")).businessPlaceDomain,company:async()=>(await import("./company-HUP72FGC.js")).companyDomain,
5
5
  contract:async()=>(await import("./contract-WE37KVDC.js")).contractDomain,customer:async()=>(await import("./company-HUP72FGC.js")).customerDomain,department:async()=>(await import("./department-5V4W37PU.js")).departmentDomain,deposit:async()=>(await import("./deposit-VI3KTO7N.js")).depositDomain,estimate:async()=>(await import("./estimate-5GPJ33DO.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-5Q5GHKM3.js")).evaluationDomain,expense:async()=>(await import("./expense-F5UUXTGV.js")).
6
6
  expenseDomain,faq:async()=>(await import("./faq-QBCNTMXP.js")).faqDomain,"fiscal-year":async()=>(await import("./fiscal-year-CVYFYGRR.js")).fiscalYearDomain,holiday:async()=>(await import("./holiday-UPF22P5V.js")).holidayDomain,"goal-sheet":async()=>(await import("./evaluation-5Q5GHKM3.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-57RLTCK2.js")).inquiryDomain,invoice:async()=>(await import("./invoice-FL42M3A4.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-LEHO7TBW.js")).
7
- jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-NOORBHDM.js")).knowledgeDomain,leave:async()=>(await import("./leave-7BXZEIEQ.js")).leaveDomain,license:async()=>(await import("./license-YOBNOTSR.js")).licenseDomain,"login-history":async()=>(await import("./login-history-RCUHEEYE.js")).loginHistoryDomain,media:async()=>(await import("./media-SE6FZLQG.js")).mediaDomain,meeting:async()=>(await import("./knowledge-CELSHUX6.js")).meetingDomain,note:async()=>(await import("./knowledge-CELSHUX6.js")).
7
+ jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-NOORBHDM.js")).knowledgeDomain,leave:async()=>(await import("./leave-7BXZEIEQ.js")).leaveDomain,license:async()=>(await import("./license-S35KLEJW.js")).licenseDomain,"login-history":async()=>(await import("./login-history-RCUHEEYE.js")).loginHistoryDomain,media:async()=>(await import("./media-FNQUGMR5.js")).mediaDomain,meeting:async()=>(await import("./knowledge-CELSHUX6.js")).meetingDomain,note:async()=>(await import("./knowledge-CELSHUX6.js")).
8
8
  noteDomain,notification:async()=>(await import("./notification-BE6KRW5R.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).onedriveDomain,outlook:async()=>(await import("./outlook-RWEUIFAI.js")).outlookDomain,payee:async()=>(await import("./sales-master-QF4ZGAGF.js")).payeeDomain,position:async()=>(await import("./position-YAC32O37.js")).positionDomain,project:async()=>(await import("./project-EQQEF622.js")).projectDomain,prospect:async()=>(await import("./prospect-C3OWZPUJ.js")).
9
9
  prospectDomain,purchase:async()=>(await import("./purchase-7NN4SIER.js")).purchaseDomain,qualification:async()=>(await import("./skill-J2HXRXLF.js")).qualificationDomain,receivable:async()=>(await import("./receivable-4UCQ5G4R.js")).receivableDomain,redmine:async()=>(await import("./redmine-THH5YMND.js")).redmineDomain,report:async()=>(await import("./report-TQRJJEGK.js")).reportDomain,"role-template":async()=>(await import("./evaluation-5Q5GHKM3.js")).roleTemplateDomain,"rou\
10
10
  nding-setting":async()=>(await import("./sales-numbering-I4CGWWLF.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-QF4ZGAGF.js")).sealImpressionDomain,search:async()=>(await import("./search-65MA22AA.js")).searchDomain,segment:async()=>(await import("./segment-PTTW7IJM.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-BIGQFPVN.js")).shiftDomain,skill:async()=>(await import("./skill-J2HXRXLF.js")).skillDomain,"staffing-board":async()=>(await import("./staffing-board-FSZ6WM2E.js")).
11
- staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-OOX5NQH5.js")).supplierPaymentDomain,support:async()=>(await import("./support-LWKDMVP7.js")).supportDomain,task:async()=>(await import("./task-XF3MUGDE.js")).taskDomain,teams:async()=>(await import("./teams-J66HFCF5.js")).teamsDomain,user:async()=>(await import("./user-PWZUOZGI.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-XM4G3TX5.js")).
11
+ staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-OOX5NQH5.js")).supplierPaymentDomain,support:async()=>(await import("./support-LWKDMVP7.js")).supportDomain,task:async()=>(await import("./task-XF3MUGDE.js")).taskDomain,teams:async()=>(await import("./teams-J66HFCF5.js")).teamsDomain,user:async()=>(await import("./user-Y244LJW3.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-XM4G3TX5.js")).
12
12
  userContractTypeDomain,"user-group":async()=>(await import("./user-group-5V3L7WYR.js")).userGroupDomain,wiki:async()=>(await import("./knowledge-CELSHUX6.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-BIGQFPVN.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-G6MC436V.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-KTXVWCPN.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseCapacityProbe}from"./chunk-VYDPW2YO.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import{validateHooks}from"./chunk-TTST7UDR.js";import{DEFAULT_CLAUDE_LAUNCHER,loadAiConfig}from"./chunk-FABDZBDZ.js";import{projectFileKey}from"./chunk-RMFLTSOV.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";function stringField(value,key,fallback,warnings){if(value===void 0||value===null)return fallback;if(typeof value!=="string"||value.trim()===""){warnings.push(`claude_launcher.${key} \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A '${fallback}' \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.trim()}function argvField(value,key,fallback,warnings,allowEmpty){if(value===void 0||value===null)return fallback;
3
+ import{parseOperations}from"./chunk-CVX2YWHC.js";import{parseCapacityProbe}from"./chunk-VYDPW2YO.js";import{validateHooks}from"./chunk-TTST7UDR.js";import{DEFAULT_CLAUDE_LAUNCHER,loadAiConfig}from"./chunk-FABDZBDZ.js";import{projectFileKey}from"./chunk-RMFLTSOV.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";function stringField(value,key,fallback,warnings){if(value===void 0||value===null)return fallback;if(typeof value!=="string"||value.trim()===""){warnings.push(`claude_launcher.${key} \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A '${fallback}' \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.trim()}function argvField(value,key,fallback,warnings,allowEmpty){if(value===void 0||value===null)return fallback;
4
4
  if(!Array.isArray(value)){warnings.push(`claude_launcher.${key} \u306F\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A [${fallback.join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}for(const v of value){if(typeof v!=="string"||v.trim()===""){warnings.push(`claude_launcher.${key} \u306E\u8981\u7D20\u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A [${fallback.
5
5
  join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}}if(value.length===0&&!allowEmpty){warnings.push(`claude_launcher.${key} \u306F1\u3064\u4EE5\u4E0A\u306E\u5F15\u6570\u304C\u8981\u308A\u307E\u3059\uFF08\u65E2\u5B9A [${fallback.join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.map(v=>v.trim())}function probeMatchField(value,warnings){const raw=stringField(value,"probe_match",DEFAULT_CLAUDE_LAUNCHER.probeMatch,warnings);try{new RegExp(raw,"m")}catch(err){
6
6
  warnings.push(`claude_launcher.probe_match \u306F\u6B63\u898F\u8868\u73FE\u3068\u3057\u3066\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08${err.message}\uFF09\u3002\u65E2\u5B9A '${DEFAULT_CLAUDE_LAUNCHER.probeMatch}' \u3092\u4F7F\u3044\u307E\u3059`);return DEFAULT_CLAUDE_LAUNCHER.probeMatch}return raw}var NOT_YET_APPLIED=[{key:"probe",get:c=>c.probe},{key:"probe_match",get:c=>c.probeMatch},{key:"exec_args",get:c=>c.execArgs},{key:"active_args",get:c=>c.activeArgs}];function sameAsDefault(key,parsed){
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{apiExit,currentRevisionOf,errorDetail,pickNumber,printDiff,readUtf8Strict,shellQuote}from"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{EXIT_API_SERVER,EXIT_FAILURE,EXIT_OK,EXIT_USAGE}from"./chunk-VFPY2A23.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import*as fs from"fs";var DEFAULT_SETTINGS_FILE="loop-settings.json";var MAP_SECTIONS=["ai","prompts","loop"];var SECTIONS=[...MAP_SECTIONS,"outcomes"];var REVISION_KEY="revision";async function runSettingsCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const readFile=deps.readFile??readUtf8Strict;const writeFile=deps.writeFile??((p,c)=>fs.writeFileSync(p,c,"utf8"));const exists=deps.exists??(p=>fs.existsSync(
4
- p));return opts.op==="push"?push(deps.api,opts,{out,err,readFile}):pull(deps.api,opts,{out,err,readFile,writeFile,exists})}function serializeSettings(s){const prompts={...s.prompts};delete prompts["charter"];return`${JSON.stringify({[REVISION_KEY]:s.revision,ai:s.ai,prompts,loop:s.loop,outcomes:s.outcomes},null,2)}
3
+ import{apiExit,currentRevisionOf,errorDetail,pickNumber,printDiff,readUtf8Strict,shellQuote}from"./chunk-A4LFG7MW.js";import{EXIT_API_SERVER,EXIT_FAILURE,EXIT_OK,EXIT_USAGE}from"./chunk-VFPY2A23.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import*as fs from"fs";var DEFAULT_SETTINGS_FILE="loop-settings.json";var MAP_SECTIONS=["ai","prompts","loop"];var SECTIONS=[...MAP_SECTIONS,"outcomes","orientation"];var REVISION_KEY="revision";async function runSettingsCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const readFile=deps.readFile??readUtf8Strict;const writeFile=deps.writeFile??((p,c)=>fs.writeFileSync(p,c,"utf8"));const exists=deps.
4
+ exists??(p=>fs.existsSync(p));return opts.op==="push"?push(deps.api,opts,{out,err,readFile}):pull(deps.api,opts,{out,err,readFile,writeFile,exists})}function serializeSettings(s){const prompts={...s.prompts};delete prompts["charter"];return`${JSON.stringify({[REVISION_KEY]:s.revision,ai:s.ai,prompts,loop:s.loop,outcomes:s.outcomes,orientation:s.orientation},null,2)}
5
5
  `}async function pull(api,opts,io){const target=opts.out??DEFAULT_SETTINGS_FILE;const current=await fetchState(api,io.err);if(typeof current==="number")return current;const content=serializeSettings(current);const source=`\u30B5\u30FC\u30D0\uFF08revision ${current.revision}${current.updatedByName?`\u30FB${current.updatedByName}`:""}\uFF09`;if(io.exists(target)){let local;try{local=io.readFile(target)}catch(e){io.err(`\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${target}\
6
6
  \uFF08${e.message}\uFF09
7
7
  `);return EXIT_FAILURE}if(local===content){io.out(`${target} \u306F\u30B5\u30FC\u30D0\uFF08revision ${current.revision}\uFF09\u3068\u540C\u3058\u3067\u3059\u3002\u5909\u66F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
@@ -13,7 +13,7 @@ ${target} \u3092\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u4E
13
13
  `);return EXIT_USAGE}let expected;if(opts.revision!==void 0){if(!/^\d+$/.test(opts.revision)||!Number.isSafeInteger(Number(opts.revision))){io.err(`--revision \u306F0\u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${opts.revision}
14
14
  `);return EXIT_USAGE}if(!opts.yes){io.err("--revision \u306F --yes \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--yes \u306A\u3057\u3067\u306F\u767B\u9332\u3057\u307E\u305B\u3093\uFF09\n");return EXIT_USAGE}expected=Number(opts.revision)}let parsed;try{parsed=JSON.parse(io.readFile(opts.file).replace(/^\uFEFF/,""))}catch(e){io.err(`\u30D5\u30A1\u30A4\u30EB\u3092 JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093: ${opts.file}\uFF08${e.message}\uFF09
15
15
  `);return EXIT_USAGE}const current=await fetchState(api,io.err);if(typeof current==="number")return current;const merged=mergeLocal(current,parsed);if(typeof merged==="string"){io.err(`\u26D4 ${opts.file}: ${merged}
16
- `);return EXIT_USAGE}const{next,changes,outcomesChanged,loopChanged,fileRevision}=merged;const stale=fileRevision!==null&&fileRevision!==current.revision;if(changes.length===0){io.out(`\u5DEE\u5206\u306F\u3042\u308A\u307E\u305B\u3093\uFF08revision ${current.revision}\uFF09\u3002\u767B\u9332\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
16
+ `);return EXIT_USAGE}const{next,changes,outcomesChanged,loopChanged,orientationChanged,fileRevision}=merged;const stale=fileRevision!==null&&fileRevision!==current.revision;if(changes.length===0){io.out(`\u5DEE\u5206\u306F\u3042\u308A\u307E\u305B\u3093\uFF08revision ${current.revision}\uFF09\u3002\u767B\u9332\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
17
17
  `);return EXIT_OK}io.out(`\u30B5\u30FC\u30D0\uFF08revision ${current.revision}\uFF09\u304B\u3089\u5909\u308F\u308B\u30AD\u30FC: ${changes.map(c=>c.label).join(", ")}
18
18
  `);for(const c of changes){io.out("\n");if(c.text){printDiff(io.out,`${c.label}\uFF08\u30B5\u30FC\u30D0${c.before===null?"\u30FB\u672A\u8A2D\u5B9A":""}\uFF09`,`${c.label}\uFF08${opts.file}${c.after===null?"\u30FB\u672A\u8A2D\u5B9A\u306B\u623B\u3059":""}\uFF09`,str(c.before),str(c.after));if(str(c.before)===str(c.after)){io.out(`\uFF08\u9055\u3044\u306F${c.after===null?"\u7A7A\u6587\u5B57 \u2192 \u672A\u8A2D\u5B9A\uFF08\u7D44\u307F\u8FBC\u307F\u65E2\u5B9A\u306B\u623B\u3059\uFF09":"\u672A\u8A2D\u5B9A \u2192 \u7A7A\u6587\u5B57\uFF08\u7D44\u307F\u8FBC\u307F\u65E2\
19
19
  \u5B9A\u3092\u7A7A\u306B\u3059\u308B\uFF09"}\u3067\u3059\uFF09
@@ -23,21 +23,22 @@ ${target} \u3092\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u4E
23
23
  `);return EXIT_USAGE}if(!opts.yes){io.out(`
24
24
  \u767B\u9332\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u3053\u306E\u5DEE\u5206\u3067\u78BA\u5B9A\u3059\u308B\u306B\u306F\u6B21\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08revision ${current.revision} \u3092\u9001\u308B\u306E\u3067\u3001\u305D\u306E\u5F8C\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3055\u308C\u3066\u3044\u308C\u3070 409 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF09:
25
25
  ${confirmCommand(opts,current.revision)}
26
- `);return EXIT_USAGE}const payload={ai:next.ai,prompts:next.prompts,revision};if(loopChanged)payload["loop"]=next.loop;if(outcomesChanged)payload["outcomes"]=next.outcomes;const res=await api.request("PUT","/settings",payload);if(!res.ok){if(res.status===409){const now=currentRevisionOf(res);io.err(`\u26D4 409: revision ${revision} \u3067\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306F${now!==null?` revision ${now} \u306B`:""}\u66F4\u65B0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u753B\u9762\u3067\u7DE8\u96C6\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4E0A\u66F8\u304D\u305B\u305A\u306B\u6B62\u3081\u307E\u3057\u305F\uFF08\u5DEE\u5206\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089\u3084\u308A\u76F4\u3057\u3066\
27
- \u304F\u3060\u3055\u3044\uFF09
26
+ `);return EXIT_USAGE}const payload={ai:next.ai,prompts:next.prompts,revision};if(loopChanged)payload["loop"]=next.loop;if(outcomesChanged)payload["outcomes"]=next.outcomes;if(orientationChanged)payload["orientation"]=next.orientation;return putSettings(api,payload,revision,io,"settings pull")}async function putSettings(api,payload,revision,io,recheck){const res=await api.request("PUT","/settings",payload);if(!res.ok){if(res.status===409){const now=currentRevisionOf(res);io.err(`\u26D4 409: revision ${revision}\
27
+ \u3067\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306F${now!==null?` revision ${now} \u306B`:""}\u66F4\u65B0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u753B\u9762\u3067\u7DE8\u96C6\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4E0A\u66F8\u304D\u305B\u305A\u306B\u6B62\u3081\u307E\u3057\u305F\uFF08\u5DEE\u5206\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089\u3084\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09
28
28
  ${errorDetail(res)}
29
29
  `);return apiExit(res)}io.err(`\u26D4 \u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u767B\u9332\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
30
- `);return apiExit(res)}const saved=parseState(res);if(saved===null){io.err(`\u26A0\uFE0F \u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3002\u53CD\u6620\u3055\u308C\u305F\u304B\u3092 settings pull \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
30
+ `);return apiExit(res)}const saved=parseState(res);if(saved===null){io.err(`\u26A0\uFE0F \u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3002\u53CD\u6620\u3055\u308C\u305F\u304B\u3092 ${recheck} \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
31
31
  `);return EXIT_API_SERVER}io.out(`\u767B\u9332\u3057\u307E\u3057\u305F: revision ${saved.revision}\uFF08\u66F4\u65B0\u8005: ${saved.updatedByName||"\u4E0D\u660E"}${saved.updatedAt?`\u30FB${saved.updatedAt}`:""}\uFF09\u3002\u30EB\u30FC\u30D7\u306F\u6B21\u306E\u30B5\u30A4\u30AF\u30EB\u3067\u3053\u306E revision \u3092\u8AAD\u307F\u307E\u3059
32
32
  `);return EXIT_OK}function mergeLocal(current,local){if(!isObject(local))return"\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB\u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08settings pull \u306E\u51FA\u529B\u306E\u5F62\uFF09";const unknownTop=Object.keys(local).filter(k=>k!==REVISION_KEY&&!SECTIONS.includes(k));if(unknownTop.length>0){return`\u6271\u3048\u306A\u3044\u30AD\u30FC\u304C\u3042\u308A\u307E\u3059: ${unknownTop.join(", ")}\uFF08\u6271\u3048\u308B\u306E\u306F ${[
33
- REVISION_KEY,...SECTIONS].join(" / ")}\uFF09`}let fileRevision=null;if(Object.hasOwn(local,REVISION_KEY)){fileRevision=pickNumber(local,REVISION_KEY);if(fileRevision===null)return`${REVISION_KEY} \u306F0\u4EE5\u4E0A\u306E\u6574\u6570\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08settings pull \u304C\u66F8\u3044\u305F\u53D6\u5F97\u6642\u70B9\u306E\u7248\uFF09`}const next={ai:{...current.ai},prompts:{...current.prompts},loop:{...current.loop},outcomes:current.outcomes};const changes=[];let loopChanged=false;
34
- for(const section of MAP_SECTIONS){if(!Object.hasOwn(local,section))continue;const value=local[section];if(!isObject(value))return`${section} \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u672A\u8A2D\u5B9A\u306B\u623B\u3059\u30AD\u30FC\u306F null\uFF09`;if(section==="prompts"&&Object.hasOwn(value,"charter")){return"prompts.charter\uFF08\u61B2\u7AE0\uFF09\u306F\u3053\u3053\u3067\u306F\u6271\u3044\u307E\u305B\u3093\u3002twp task-loop charter push \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044"}
33
+ REVISION_KEY,...SECTIONS].join(" / ")}\uFF09`}let fileRevision=null;if(Object.hasOwn(local,REVISION_KEY)){fileRevision=pickNumber(local,REVISION_KEY);if(fileRevision===null)return`${REVISION_KEY} \u306F0\u4EE5\u4E0A\u306E\u6574\u6570\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08settings pull \u304C\u66F8\u3044\u305F\u53D6\u5F97\u6642\u70B9\u306E\u7248\uFF09`}const next={ai:{...current.ai},prompts:{...current.prompts},loop:{...current.loop},outcomes:current.outcomes,orientation:current.orientation};
34
+ const changes=[];let loopChanged=false;for(const section of MAP_SECTIONS){if(!Object.hasOwn(local,section))continue;const value=local[section];if(!isObject(value))return`${section} \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u672A\u8A2D\u5B9A\u306B\u623B\u3059\u30AD\u30FC\u306F null\uFF09`;if(section==="prompts"&&Object.hasOwn(value,"charter")){return"prompts.charter\uFF08\u61B2\u7AE0\uFF09\u306F\u3053\u3053\u3067\u306F\u6271\u3044\u307E\u305B\u3093\u3002twp task-loop charter push \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044"}
35
35
  const base=current[section];const keys=Object.keys(value).filter(k=>!(section==="ai"&&k.startsWith("_comment")));const unknown=keys.filter(k=>!Object.hasOwn(base,k)||k==="__proto__");if(unknown.length>0){return`\u30B5\u30FC\u30D0\u304C\u77E5\u3089\u306A\u3044\u30AD\u30FC\u3067\u3059: ${unknown.map(k=>`${section}.${k}`).join(", ")}\uFF08\u7DB4\u308A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002settings pull \u3067\u4E00\u89A7\u3092\u51FA\u305B\u307E\u3059\uFF09`}for(const key of keys){
36
36
  const after=value[key];const before=base[key]??null;if(section==="prompts"&&after!==null&&typeof after!=="string"){return`prompts.${key} \u306F\u6587\u5B57\u5217\u304B null \u306B\u3057\u3066\u304F\u3060\u3055\u3044`}if(canonical(before)===canonical(after))continue;next[section][key]=after;if(section==="loop")loopChanged=true;changes.push({label:`${section}.${key}`,before,after,text:section==="prompts"})}}let outcomesChanged=false;if(Object.hasOwn(local,"outcomes")){const value=local["outcomes"];
37
- if(!Array.isArray(value))return"outcomes \u306F\u914D\u5217\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u672A\u8A2D\u5B9A\u306B\u3059\u308B\u5834\u5408\u306F []\uFF09";if(canonical(current.outcomes)!==canonical(value)){next.outcomes=value;outcomesChanged=true;changes.push({label:"outcomes",before:current.outcomes,after:value,text:false})}}return{next,changes,outcomesChanged,loopChanged,fileRevision}}function canonical(v){return JSON.stringify(v,(_k,val)=>isObject(val)?Object.fromEntries(Object.
37
+ if(!Array.isArray(value))return"outcomes \u306F\u914D\u5217\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u672A\u8A2D\u5B9A\u306B\u3059\u308B\u5834\u5408\u306F []\uFF09";if(canonical(current.outcomes)!==canonical(value)){next.outcomes=value;outcomesChanged=true;changes.push({label:"outcomes",before:current.outcomes,after:value,text:false})}}let orientationChanged=false;if(Object.hasOwn(local,"orientation")){const value=local["orientation"];if(value!==null&&!isObject(value))return"orientation \u306F\
38
+ \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304B null\uFF08\u672A\u8A2D\u5B9A\u306B\u623B\u3059\uFF09\u306B\u3057\u3066\u304F\u3060\u3055\u3044";if(canonical(current.orientation)!==canonical(value)){next.orientation=value;orientationChanged=true;changes.push({label:"orientation",before:current.orientation,after:value,text:false})}}return{next,changes,outcomesChanged,loopChanged,orientationChanged,fileRevision}}function canonical(v){return JSON.stringify(v,(_k,val)=>isObject(val)?Object.fromEntries(Object.
38
39
  keys(val).sort().map(k=>[k,val[k]])):val)??"null"}function pretty(v){return v===null||v===void 0?"":`${JSON.stringify(v,null,2)}
39
40
  `}function str(v){return typeof v==="string"?v:""}function isObject(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)}async function fetchState(api,err){const res=await api.request("GET","/settings");if(!res.ok){err(`\u26D4 \u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
40
41
  `);return apiExit(res)}const state=parseState(res);if(state===null){err(`\u26D4 \u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
41
42
  `);return EXIT_API_SERVER}return state}function body(res){const json=res.json??{};const data=json["data"];if(isObject(data)&&"revision"in data)return data;return json}function parseState(res){const b=body(res);const revision=pickNumber(b,"revision");if(revision===null)return null;const sections={};for(const s of MAP_SECTIONS){const v=b[s];if(!isObject(v))return null;sections[s]=v}const outcomes=b["outcomes"];return{ai:sections.ai??{},prompts:sections.prompts??{},loop:sections.loop??{},outcomes:Array.
42
- isArray(outcomes)?outcomes:[],revision,updatedByName:typeof b["updated_by_name"]==="string"?b["updated_by_name"]:"",updatedAt:typeof b["updated_at"]==="string"?b["updated_at"]:""}}function confirmCommand(opts,revision){const parts=["twp task-loop settings push","--project",shellQuote(opts.projectRef)];if(opts.profile!==void 0)parts.push("--profile",shellQuote(opts.profile));parts.push("--file",shellQuote(opts.file??DEFAULT_SETTINGS_FILE),"--yes","--revision",String(revision));return parts.join("\
43
- ")}export{DEFAULT_SETTINGS_FILE,mergeLocal,runSettingsCommand,serializeSettings};
43
+ isArray(outcomes)?outcomes:[],orientation:b["orientation"]??null,revision,updatedByName:typeof b["updated_by_name"]==="string"?b["updated_by_name"]:"",updatedAt:typeof b["updated_at"]==="string"?b["updated_at"]:""}}function confirmCommand(opts,revision){const parts=["twp task-loop settings push","--project",shellQuote(opts.projectRef)];if(opts.profile!==void 0)parts.push("--profile",shellQuote(opts.profile));parts.push("--file",shellQuote(opts.file??DEFAULT_SETTINGS_FILE),"--yes","--revision",String(
44
+ revision));return parts.join(" ")}export{DEFAULT_SETTINGS_FILE,runSettingsCommand,serializeSettings,putSettings,mergeLocal,fetchState};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var ORIENTATION_OPS=["show","set","on","off","add","remove"];var ORIENTATION_AXES_MAX=20;var ORIENTATION_LABEL_MAX=50;var ORIENTATION_DESCRIPTION_MAX=500;var ORIENTATION_WEIGHT_MAX=100;var ORIENTATION_KEY_PATTERN=/^[a-z][a-z0-9-]{0,63}$/;function parseOrientation(raw){if(raw===null||typeof raw!=="object"||Array.isArray(raw))return null;const o=raw;if(typeof o["enabled"]!=="boolean")return null;const rawAxes=Array.isArray(o["axes"])?o["axes"]:[];const axes=[];for(const a of rawAxes){if(a===null||
4
+ typeof a!=="object"||Array.isArray(a))continue;const axis=a;const{key,label,weight}=axis;if(typeof key!=="string"||typeof label!=="string")continue;if(typeof weight!=="number"||!Number.isInteger(weight)||weight<0||weight>ORIENTATION_WEIGHT_MAX)continue;const description=typeof axis["description"]==="string"&&axis["description"]!==""?axis["description"]:null;axes.push({key,label,description,weight})}return{enabled:o["enabled"],axes}}function effectiveOrientation(o){return o!==null&&o!==void 0&&o.
5
+ enabled&&o.axes.length>0?o:null}function oneLine(s){return s.replace(/\s*[\r\n]+\s*/g," ").trim()}function renderOrientationSection(o){const eff=effectiveOrientation(o);if(eff===null)return"";const lines=eff.axes.map(a=>{const desc=a.description===null?"":` \u2014 ${oneLine(a.description)}`;return`- ${oneLine(a.label)}\uFF08${a.key}\uFF09: ${a.weight}${desc}`});return["\u3010\u5FD7\u5411\u6027\uFF08\u904B\u7528\u5074\u304C\u3044\u307E\u91CD\u307F\u3092\u7F6E\u304D\u305F\u3044\u65B9\u5411\uFF09\u3011",
6
+ "\u8EF8\u3054\u3068\u306E\u91CD\u307F\uFF08\u5404 0\u301C100 \u306E\u72EC\u7ACB\u3057\u305F\u5024\u3002\u5408\u8A08100\u306E\u914D\u5206\u3067\u306F\u306A\u3044\uFF09\u3067\u3059\u3002\u61B2\u7AE0\uFF08A2 \u62C5\u4FDD\uFF1E\u30EA\u30FC\u30C9\u30BF\u30A4\u30E0\uFF1E\u30B9\u30EB\u30FC\u30D7\u30C3\u30C8\u30FBT2 \u51FA\u53E3\u512A\u5148\u30FBT4\uFF09\u3068\u8A08\u753B\u30B9\u30AD\u30EB\u306E\u5404\u30B2\u30FC\u30C8\u304C\u5E38\u306B\u4E0A\u4F4D\u3067\u3001\u5FD7\u5411\u6027\u306F\u305D\u308C\u3089\u3067\u6C7A\u307E\u3063\u305F\u5F8C\u306E\u67A0\u914D\u5206\u30FB\u540C\u9806\u4F4D\u5185\u306E\u9078\u5B9A\u306B\u3060\u3051\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002",
7
+ ...lines].join("\n")}export{ORIENTATION_OPS,ORIENTATION_AXES_MAX,ORIENTATION_LABEL_MAX,ORIENTATION_DESCRIPTION_MAX,ORIENTATION_WEIGHT_MAX,ORIENTATION_KEY_PATTERN,parseOrientation,effectiveOrientation,renderOrientationSection};
@@ -0,0 +1,13 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","settings","orientation","plan","capacity","runner"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--di\
4
+ r","--from","--to","--config","--output","--query"]);var BOOLEAN_FLAGS=new Set(["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--include-stopped","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===
5
+ void 0)continue;if(arg.startsWith("-")&&arg!=="-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}var TASK_LOOP_QUEUE_ACTIONS=["item",
6
+ "history","plan-history"];var QUEUE_DOMAIN="agent-loop";function rewriteQueueCommand(argv){const{tokens,indexes}=dispatch(argv);const[first,second]=tokens;if(first===QUEUE_DOMAIN||first==="help"&&second===QUEUE_DOMAIN)return{argv,moved:QUEUE_DOMAIN};const[firstIndex,secondIndex]=indexes;if(first!=="task-loop"||second===void 0||firstIndex===void 0||secondIndex===void 0||!TASK_LOOP_QUEUE_ACTIONS.includes(second)){return{argv}}const next=[...argv];next[firstIndex]=QUEUE_DOMAIN;if(second==="item")next.
7
+ splice(secondIndex,1);return{argv:next}}var MOVED_QUEUE_COMMAND_MESSAGE=`\`twp agent-loop\` \u306F \`twp task-loop\` \u306B\u7D71\u5408\u3057\u307E\u3057\u305F\u3002\u6B21\u306E\u3088\u3046\u306B\u6253\u3063\u3066\u304F\u3060\u3055\u3044:
8
+ twp agent-loop <\u64CD\u4F5C> ... \u2192 twp task-loop item <\u64CD\u4F5C> ...
9
+ twp agent-loop history list ... \u2192 twp task-loop history list ...
10
+ twp agent-loop plan-history list ... \u2192 twp task-loop plan-history list ...
11
+ \u8A73\u3057\u304F\u306F twp task-loop item help
12
+ `;function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==
13
+ void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{action:"run"}:{},consumed}}if(second!==void 0&&secondIndex!==void 0)consumed.push(secondIndex);return{kind:"domain",domain:first,...second!==void 0?{operation:second}:{},consumed}}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,BOOLEAN_FLAGS,dispatch,TASK_LOOP_QUEUE_ACTIONS,QUEUE_DOMAIN,rewriteQueueCommand,MOVED_QUEUE_COMMAND_MESSAGE,resolveRoute};