@tocca-systems/twp-cli 0.90.0 → 0.91.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,14 @@
11
11
  `CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
12
12
  -->
13
13
 
14
+ ## 0.91.0
15
+
16
+ `twp user unlock` で、ログイン失敗でロックされたユーザーのロックを解除できるようになりました(組織管理者のみ)。解除前にロックされているかを表示します。
17
+
18
+ `twp user create` / `update` で、二段階認証の方式、打刻修正権限・コスト管理者・分析者、社員識別子、個人連絡先、緊急連絡先を設定できるようになりました。`twp user update --clear <項目>` で値を消すこともできます。
19
+
20
+ ログイン履歴を CLI から確認できるようになりました(`twp login-history`)。期間・ユーザー・IP アドレス・結果(成功・失敗・ロック・IP 制限)で絞り込んだ一覧と、結果ごとの件数の集計を出せます。アカウントのロックの原因や、見覚えのない場所からのログインを調べるのに使えます。組織管理者の権限が要ります。
21
+
14
22
  ## 0.90.0
15
23
 
16
24
  `twp project template` で、プロジェクトテンプレートの一覧・作成・変更・削除、既存プロジェクトからのテンプレート作成、テンプレートからの新しいプロジェクト作成をコマンドから行えるようになりました。
package/README.md CHANGED
@@ -20,7 +20,7 @@ TWP(Tocca Working Platform)を、ターミナルから使うための CLI
20
20
  |---|---|
21
21
  | **できる** | AI との会話(ストリーミング表示)。手元のファイルの読み書き・検索、コマンド実行、git の読み取り——いずれも**実行前に確認**します |
22
22
  | **できる** | `twp project` / `twp task` によるプロジェクト・タスクの読み書き(一覧・取得・作成・更新・削除・コメント) |
23
- | **できる** | `twp user` によるテナントのユーザーの作成・更新・失効(退社)と招待(1件・CSV 一括・再送・取消)、ユーザーと所属(部署・役職)の参照(一覧・取得・所属の履歴)、所属の付け替え(異動)・作成・更新・終了・削除、在籍者の棚卸と人事台帳 CSV との突き合わせ。作成・更新・招待と取得、所属の書き込み、他人の所属の参照、棚卸は組織管理者の権限が要ります |
23
+ | **できる** | `twp user` によるテナントのユーザーの作成・更新・失効(退社)と招待(1件・CSV 一括・再送・取消)、ユーザーと所属(部署・役職)の参照(一覧・取得・所属の履歴)、所属の付け替え(異動)・作成・更新・終了・削除、在籍者の棚卸と人事台帳 CSV との突き合わせ、`twp login-history` によるログイン履歴の一覧(期間・ユーザー・IP・結果で絞り込み)と集計。作成・更新・招待と取得、所属の書き込み、他人の所属の参照、棚卸、ログイン履歴は組織管理者の権限が要ります |
24
24
  | **できる** | `twp skill` / `twp qualification` によるスキルマスタ・資格マスタの一覧、スキル・スキルカテゴリの作成・更新・削除とカテゴリ内の並び替え、資格マスタの作成・更新・削除と CSV 一括登録・資格制度の説明文の更新(いずれも管理者のみ)、スキルマップの表示(部署で絞り込める)とスキル保有者の横断検索(所属付き)、自分のスキルプロファイルへの自己評価の提出(`--yes` が要ります)、`twp user skills` / `qualifications` / `trainings` / `contracts` によるユーザーのスキル評価・保有資格・研修受講履歴・雇用契約の参照。スキルマップと横断検索は HR管理者、雇用契約は原価管理者か管理者、研修履歴は人事管理の権限が要ります |
25
25
  | **できる** | `twp department` / `twp position` / `twp job-title` / `twp segment` / `twp user-contract-type` / `twp fiscal-year` による組織マスタ(部署・役職・職位・セグメント・契約形態・事業年度設定)の一覧・取得・作成・更新・削除、`twp holiday` / `twp business-hours` によるカレンダーマスタ(祝日・営業日)の読み書きと CSV の出し入れと、部署ツリー・部署の所属者の表示。作成・更新・削除は管理者の権限が要ります |
26
26
  | **できる** | `twp inquiry category` による問い合わせカテゴリの一覧・取得・作成・更新(通知先の設定・末尾への並べ替えを含む)。取得・作成・更新は問い合わせ機能の管理者の権限が要ります |
@@ -287,12 +287,20 @@ twp user assignment list <ユーザー> [--current] # 本人・上長・組織
287
287
  twp user create --name <氏名> --email <メールアドレス> --password-file <パス|->
288
288
  [--role admin|user] [--kana <フリガナ>] [--hire-date <YYYY-MM-DD>] [--employee-code <社員番号>]
289
289
  [--display true|false] [--memberlist true|false] [--org-chart true|false] [--dashboard true|false]
290
- twp user update <ユーザー> [上と同じ項目] [--auth-type all|password|oauth|disabled]
290
+ [--two-factor none|email|sms] [--two-factor-tel <電話番号>]
291
+ [--punch-correction true|false] [--cost-manager true|false] [--analyst true|false]
292
+ [--employee-identifier <社員識別子>] [--personal-email <メール>] [--personal-tel <電話番号>]
293
+ [--emergency-name <氏名>] [--emergency-address <住所>] [--emergency-tel <電話番号>]
294
+ [--emergency-relationship <続柄>]
295
+ twp user update <ユーザー> [上と同じ項目] [--auth-type all|password|oauth|disabled] [--clear <項目>]…
291
296
  ```
292
297
 
293
298
  - **パスワードはコマンド行に置けません**(シェルの履歴とプロセス一覧に残るため)。`--password-file` にファイルのパスを渡すか、`-` を渡して標準入力から渡します。末尾の改行1つは取り除きます。8文字以上です
294
299
  - `--role` を省くと一般ユーザー(`user`)で作成します。表示フラグを省くと、すべて表示する(`true`)で作成します。機能権限はテナントの既定で付与され、ライセンスの空きが足りない機能は付与されずに stderr へ出ます
295
300
  - **`twp user update` は指定した項目だけを変更します**(指定しなかった項目は変わりません)。何も指定しないとエラーになります
301
+ - 値を消すときは `--clear <項目>` を使います(複数回指定できます)。消せるのは `kana` / `employee-code` / `two-factor-tel` / `employee-identifier` / `personal-email` / `personal-tel` / `emergency-name` / `emergency-address` / `emergency-tel` / `emergency-relationship` / `hire-date` です。同じ項目に値と `--clear` を両方渡すとエラーになります
302
+ - 二段階認証は `--two-factor none`(なし)/ `email`(メール)/ `sms`(SMS)で指定します。`sms` にするときは `--two-factor-tel` に送り先を登録してください(`create` では必須。`update` で省くと登録済みの番号へ送ります)。端末を紛失した人は `twp user update <ユーザー> --two-factor email` などで切り替えます
303
+ - 個人連絡先・緊急連絡先の値は結果にも `--dry-run` / `--debug` の本文にも出しません(画面共有やログに残るため)。`--dry-run` で送る値まで確かめるときは `--no-redact` を付けます
296
304
  - **表示フラグを外したユーザーは社員番号では指定できません**(メールアドレスか ID で指定してください)。作成・更新の直後に社員番号で指定するときは `--refresh` を付けます(ユーザー一覧は10分キャッシュします)
297
305
  - メールアドレスが既に使われているなどでサーバが断ったときは、その理由を出して終了コード 3 で終わります
298
306
 
@@ -317,6 +325,17 @@ twp user update yamada@example.com --auth-type all \
317
325
 
318
326
  - 失効かどうかは `twp user get <ユーザー>` の `auth_type` で確認できます。退職日・所属の終了・ライセンスの回収はこのコマンドでは行いません(所属の終了は `twp user assignment end`)
319
327
 
328
+ #### ログイン失敗でロックされたユーザーを解除する
329
+
330
+ ```bash
331
+ twp user unlock yamada@example.com
332
+ ```
333
+
334
+ - ログインの失敗回数が上限を超えてロックされたユーザーを、すぐにログインできる状態へ戻します(失敗回数も 0 に戻ります)。パスワードは変わりません
335
+ - 送る前にユーザーの詳細を読み、ロックされているかを表示します(`--dry-run` でも表示します)。ロック中かどうかは `twp user get <ユーザー>` の `is_locked`(`1` ならロック中)でも確認できます
336
+ - ロックされていないユーザーを指定しても止めません(サーバは成功を返し、失敗回数が 0 に戻るだけです)
337
+ - 組織管理者だけが使えます。組織管理者でも、組織設定のアカウントロック「管理者による手動解除」が無効なテナントでは解除できません(その旨を案内します。ロック時間の経過かパスワードリセットで解除してください。どちらも組織設定で有効なときだけ解除されます)
338
+
320
339
  ### 所属を付け替える(異動)・作成する・終了する
321
340
 
322
341
  組織管理者向けです。
@@ -364,7 +383,7 @@ twp user export --output tsv > inventory.tsv # 表計算
364
383
 
365
384
  - **列**: `user_id` / 氏名 / メールアドレス / 社員番号 / 入社日 / 主所属の部署・役職 / 上長 / 権限(機能ごとのレベル。`none` は省く)/ パートナーか / 認証タイプ / 表示フラグ / 最終ログイン。**個人連絡先(個人メール・緊急連絡先など)は出しません**。tsv / table では `=` `+` `-` `@` で始まる値の先頭に `'` を付けます(表計算ソフトが式として読まないように)
366
385
  - **表示フラグを外したユーザーも既定で含めます**(表示フラグだけ外して失効させていない人を見つけるため)。表示中のユーザーだけにするなら `--exclude-hidden`。失効済みも出すなら `--include-disabled`
367
- - **最終ログインはログイン履歴から取ります。** ログイン履歴は90日で消えるので「90日以内の記録なし」は一度もログインしていないという意味ではありません。また **Google / Microsoft の SSO でのログインは記録されない**ため、認証タイプが `oauth` の人は「判定不能」と出し、長期未ログインの判定から外します
386
+ - **最終ログインはログイン履歴から取ります。** ログイン履歴は90日で消えるので「90日以内の記録なし」は一度もログインしていないという意味ではありません。また **Google / Microsoft の SSO でのログインは 2026-09-26 のサーバ更新より前の分が記録されていない**ため、認証タイプが `oauth` の人は「判定不能」と出し、長期未ログインの判定から外します。履歴そのものは `twp login-history list` で見られます
368
387
  - `--file` を付けると差分だけを出します。`kind` 列は次のとおりです
369
388
 
370
389
  | `kind` | 意味 |
@@ -381,6 +400,25 @@ twp user export --output tsv > inventory.tsv # 表計算
381
400
  - 各行の `user_id` は `twp user update` / `twp user assignment` へ渡せます。`suggestion` 列は次に打つコマンドの**案**です(失効・異動・役職変更・招待)。`'<異動日>'` などの `<…>` は埋めてから、対象が自分自身や共用の管理アカウントでないことを確かめて実行してください。`twp user assignment move` は上長を引き継がないので、必要なら `--manager` も付けます
382
401
  - 1人あたり最大3往復します。本番の API レート制限に合わせて1分あたり200本までに抑えて送るため、数百人のテナントでは数分かかります。対象が `--max-users`(既定 2,000 人)を超えると、詳細を読む前に止まります
383
402
 
403
+ ### ログイン履歴を見る
404
+
405
+ 組織管理者向けです。アカウントがロックされた原因や、見覚えのない IP アドレスからのログインを調べるのに使います。
406
+
407
+ ```
408
+ twp login-history list [--from <日付|日時>] [--to <日付|日時>] [--result success|failure|locked|ip_blocked] [--all]
409
+ twp login-history list --user <ユーザー> [--result failure] # 1人分(ID・メール・社員番号・氏名・me)
410
+ twp login-history list --ip <IPアドレス> # その IP からのログイン
411
+ twp login-history stats [--days <日数>] # 直近の試行を結果ごとに集計(既定7日・最大90日)
412
+ ```
413
+
414
+ - **新しい順に出ます。** `--output table` などの要約列は `timestamp` / `result` / `email` / `ip_address` / `failure_reason` で、`--output json` は `user_id` / `user_agent` を含む全項目です。時刻は UTC(末尾 `Z`)です
415
+ - `--from` / `--to` は日付(`YYYY-MM-DD`・日本時間の1日)か、時差付きの日時(`2026-10-01T09:00:00+09:00`)で指定します
416
+ - **`--user` と `--ip` は併用できません**(サーバが別の索引を引くため)。どちらかを付けた一覧は続きのページが無く `--limit`(既定100・最大500)件までなので、件数が届いたら stderr で知らせます。期間を狭めて取り直してください
417
+ - `--result` はサーバが読んだ後に絞るので、0件のページに「続きがあります」が付くことがあります。`--result` で探すときは `--all` を付けてください
418
+ - `stats` はサーバが新しい順に1,000件までしか数えません。`total_attempts` が1,000に届いたら実際より少ないので、stderr の案内に従って `list --all` で数え直してください
419
+ - **履歴は90日で消えます。** Google / Microsoft の SSO でのログインは、2026-09-26 のサーバ更新より前の分が記録されていません
420
+ - ヘルプは `twp login-history help`
421
+
384
422
  ### ユーザーを招待する
385
423
 
386
424
  組織管理者向けです。招待されたメールアドレスへ招待メールが届き、本人が氏名とパスワードを入力して登録します。
@@ -1113,7 +1151,7 @@ twp license assignments <機能コード|機能名> | --all-features [--inactive
1113
1151
  - `bulk-restore` はゴミ箱から戻す操作です(アーカイブの解除ではありません)。`bulk-delete --permanent` は**ゴミ箱にあるファイルだけ**を完全に削除します(先に `bulk-delete` でゴミ箱へ移してください)
1114
1152
  - `twp storage get` は使用量・上限・残量と種類別の内訳を出します(管理者のみ。アップロード前の容量検査は誰でも自動で行われます)
1115
1153
  - **`twp license list` は画面の「課金管理 > ライセンス状況」と同じ枠・使用数を出します**(購入済みは Stripe の契約中のシートだけ)。シートの購入・削減は画面から行ってください
1116
- - **`twp license assignments` の判定(findings)は、失効済み/機能権限が none/`--inactive-days` 日(既定60・最大90)ログインの記録が無い/ユーザーが見つからない、の4種類です。** 最終ログインは `twp user export` と同じくログイン履歴(90日で消える・SSO は記録されない)から読むので、oauth の人は判定しません。各行の `release_command` は権限を none にしてライセンスを外す `twp user permission update` のコマンド案です。**打ってもサーバが割当を外さない行(ライセンスの要らないレベル・権限の変更でライセンスが動かない機能・ユーザーが見つからない)には出しません**——その行は画面の「ライセンス管理」から外してください
1154
+ - **`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` のコマンド案です。**打ってもサーバが割当を外さない行(ライセンスの要らないレベル・権限の変更でライセンスが動かない機能・ユーザーが見つからない)には出しません**——その行は画面の「ライセンス管理」から外してください
1117
1155
  - **AI 生成(`twp media image create` / `twp media document create`)は生成物をメディアライブラリに保存し、`--out` を付けるとそのファイルをそのまま書き出します。** 付けなければファイルIDを出して終わります(あとから `twp media download` で取れます)。AI クレジットを消費するので `--yes` が要ります(送る内容は `--dry-run` で確認できます)。`--from <ファイルID>` を付けると、その画像を元にしたリミックスになります
1118
1156
  - 書き出し先が既にあるときは、**生成を送る前に**止まります(クレジットを使ってから「書けません」で落ちません)。取得だけが失敗したときは、ファイルIDと `twp media download` のコマンドを出して失敗で終わります(生成し直す必要はありません)
1119
1157
  - **生成の回数制限(1分あたりの回数・ユーザーごと)に当たっても自動では打ち直しません**(生成は1回ごとに課金されるため)。待つ秒数を stderr に出して終了コード 4 で終わります
@@ -1,9 +1,9 @@
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-ZTDDOUS4.js";import"./chunk-Y5XM6W3S.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.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-QK4KT7ZP.js";import"./chunk-IAPKSXMG.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-SZOEBJGI.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
4
4
  import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";import{ALLOW_REDACTED_FLAG,NO_REDACT_FLAG,NO_REDACT_NOTICE}from"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-IXT2X5BZ.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,
5
5
  envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.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{httpFetch}from"./chunk-J7QYPKVK.js";
6
- import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-C6U2CGX7.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=>/^\{[^/{}]+\}$/.
6
+ import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-BHVUGTHP.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=>/^\{[^/{}]+\}$/.
7
7
  test(segment)?null:segment)})}parsedCache.set(routes,parsed);return parsed}function matches(route,segments){if(route.segments.length!==segments.length)return false;return route.segments.every((literal,i)=>literal===null||literal===segments[i])}function compareSpecificity(a,b){const literals=route=>route.segments.filter(segment=>segment!==null).length;const diff=literals(b)-literals(a);if(diff!==0)return diff;for(let i=0;i<a.segments.length;i+=1){const aLiteral=a.segments[i]!==null;const bLiteral=b.
8
8
  segments[i]!==null;if(aLiteral!==bLiteral)return aLiteral?-1:1}return 0}function lookupRoute(routes,method,path){const segments=splitSegments(path);const hits=parseRoutes(routes).filter(route=>matches(route,segments));const sameMethod=hits.filter(route=>route.method===method).sort(compareSpecificity);const best=sameMethod[0];if(best!==void 0)return{kind:"matched",domain:best.domain,template:best.template};if(hits.length>0){const[top]=[...hits].sort(compareSpecificity);const template=top.template;
9
9
  const methods=[...new Set(hits.filter(route=>route.template===template).map(route=>route.method))].sort();return{kind:"method-mismatch",template,methods}}return{kind:"unknown"}}function pickOperation(operations,method,template){return operations.find(op=>op.method===method&&op.path===template)??null}async function suggestRoutes(routes,path,limit=5){const{default:fuzzysort}=await import("./fuzzysort-DFVKV4B4.js");const parsed=parseRoutes(routes);const templates=[...new Set(parsed.map(route=>route.
@@ -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-4DUZIRGL.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-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.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-IWY2SNST.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
- nextMode}from"./chunk-2LOT54OO.js";import"./chunk-C6U2CGX7.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-GZEES7MK.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
+ nextMode}from"./chunk-2LOT54OO.js";import"./chunk-BHVUGTHP.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.
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-3UJFGBQR.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-OT5I4KNA.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,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-7PTFN3H7.js";import{DEPARTMENTS_PATH}from"./chunk-M36DAHMH.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";
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-M36DAHMH.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
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:"\
5
5
  \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
6
  \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\
@@ -41,8 +41,8 @@ auth_type / last_login_at / findings\uFF08\u5224\u5B9A\uFF09/ release_command\uF
41
41
 
42
42
  \u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u306E\u6CE8\u610F\uFF08twp user export \u3068\u540C\u3058\uFF09:
43
43
  - \u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u306F${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u3067\u6D88\u3048\u307E\u3059\u3002\u300C\u8A18\u9332\u306A\u3057\u300D\u306F\u4E00\u5EA6\u3082\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044\u3001\u3068\u3044\u3046\u610F\u5473\u3067\u306F\u3042\u308A\u307E\u305B\u3093
44
- - Google / Microsoft \u306E SSO \u3067\u306E\u30ED\u30B0\u30A4\u30F3\u306F\u8A18\u9332\u3055\u308C\u307E\u305B\u3093\u3002oauth \u306E\u4EBA\u306F\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u51FA\u3057\u307E\u3059\u3002
45
- all \u306E\u4EBA\u304C SSO \u3060\u3051\u3067\u4F7F\u3063\u3066\u3044\u308B\u5834\u5408\u3082\u8A18\u9332\u306F\u6B8B\u3089\u306A\u3044\u306E\u3067\u3001inactive \u306F\u5916\u3059\u524D\u306B\u672C\u4EBA\u306B\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044
44
+ - Google / Microsoft \u306E SSO \u3067\u306E\u30ED\u30B0\u30A4\u30F3\u306F 2026-09-26 \u306E\u30B5\u30FC\u30D0\u66F4\u65B0\u3088\u308A\u524D\u306E\u5206\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
45
+ oauth \u306E\u4EBA\u306F\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u51FA\u3057\u307E\u3059\u3002all \u306E\u4EBA\u304C SSO \u3060\u3051\u3067\u4F7F\u3063\u3066\u3044\u308B\u5834\u5408\u3082\u8A18\u9332\u304C\u6B20\u3051\u3066\u3044\u308B\u306E\u3067\u3001inactive \u306F\u5916\u3059\u524D\u306B\u672C\u4EBA\u306B\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044
46
46
 
47
47
  ${RELEASE_COMMAND_MISSING}\u3002
48
48
  --output tsv \u3067\u306F\u3001= + - @ \u3067\u59CB\u307E\u308B\u5024\u306E\u5148\u982D\u306B ' \u3092\u4ED8\u3051\u3066\u3001\u8868\u8A08\u7B97\u30BD\u30D5\u30C8\u304C\u5F0F\u3068\u3057\u3066\u8AAD\u307E\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\u3002
@@ -52,4 +52,5 @@ ASSIGNMENTS_USAGE)}const inactiveDays=positiveInteger(input.flags,"--inactive-da
52
52
  const resolved={inactiveDays:String(inactiveDays)};if(!all)resolved["feature"]=resolveFeature(input.args[0]);return withResolved(input,resolved)},plan:input=>input.flags.has("--all-features")?{method:"GET",path:LICENSES_PATH}:assignmentsPlan(requireResolved(input,"feature")),plannedNotes:input=>[(input.flags.has("--all-features")?"\u3053\u306E\u3042\u3068\u6A5F\u80FD\u3054\u3068\u306B\u5272\u5F53\u4E00\u89A7\u3092 GET \u3057\u3001":"\u3053\u306E\u3042\u3068")+"\u90E8\u7F72\u4E00\u89A7\u3068\u3001\u5272\u5F53\u80051\u4EBA\u305A\u3064\u306E\u8A73\u7D30\u30FB\u73FE\u5728\u306E\u6240\u5C5E\u30FB\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u3092 GET \
53
53
  \u3057\u307E\u3059\uFF08\u8AAD\u307F\u53D6\u308A\u3060\u3051\uFF09\u3002"],execute:collectAssignments,summarize:body=>assignmentsBody(body).rows.map(row=>Object.fromEntries(ASSIGNMENT_COLUMNS.map(c=>{if(c==="findings")return[c,row.findings.length===0?null:row.findings.map(f=>FINDING_LABEL[f]).join("\u30FB")];if(c==="last_login_at")return[c,row.findings.includes("user_missing")?null:lastLoginText(row)];return[c,spreadsheetSafe(row[c])]}))),raw:body=>assignmentsBody(body).rows,notes(body){const result=assignmentsBody(
54
54
  body);const counts=new Map;for(const row of result.rows)for(const f of row.findings)counts.set(f,(counts.get(f)??0)+1);const notes=[`${result.features} \u6A5F\u80FD\u30FB${result.rows.length} \u4EF6\u306E\u5272\u5F53\u3092\u8AAD\u307F\u307E\u3057\u305F\u3002`];notes.push(counts.size===0?"\u68DA\u5378\u3067\u6C17\u306B\u306A\u308B\u5272\u5F53\u306F\u3042\u308A\u307E\u305B\u3093\u3002":`\u5224\u5B9A: ${[...counts].map(([f,n])=>`${FINDING_LABEL[f]} ${n}\u4EF6`).join(" / ")}`);const sso=new Set(result.
55
- rows.filter(r=>r.last_login_status==="sso_not_recorded").map(r=>r.user_id)).size;if(sso>0)notes.push(`\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E ${sso} \u4EBA\u306F\u3001SSO \u306E\u30ED\u30B0\u30A4\u30F3\u304C\u8A18\u9332\u3055\u308C\u306A\u3044\u305F\u3081\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u5224\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002`);if(result.rows.some(r=>r.findings.length>0&&r.release_command===null))notes.push(`${RELEASE_COMMAND_MISSING}\u3002`);return notes}}]};export{levelHoldsSeat,permissionMovesSeat,LICENSE_FEATURE_NAMES,resolveFeature,readLicenses,releaseCommand,judge,licenseDomain};
55
+ rows.filter(r=>r.last_login_status==="sso_not_recorded").map(r=>r.user_id)).size;if(sso>0)notes.push(`\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E ${sso} \u4EBA\u306F\u3001SSO \u306E\u30ED\u30B0\u30A4\u30F3\u306F 2026-09-26 \u306E\u30B5\u30FC\u30D0\u66F4\u65B0\u3088\u308A\u524D\u306E\u5206\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u5224\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002`);if(result.rows.some(r=>r.findings.length>
56
+ 0&&r.release_command===null))notes.push(`${RELEASE_COMMAND_MISSING}\u3002`);return notes}}]};export{levelHoldsSeat,permissionMovesSeat,LICENSE_FEATURE_NAMES,resolveFeature,readLicenses,releaseCommand,judge,licenseDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseCsvRecords}from"./chunk-7PTFN3H7.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,targetId,updateFlags}from"./chunk-MPGJU5A7.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-M763HXDH.js";import{QUALIFICATIONS_PATH,SKILLS_PATH,SKILL_CATEGORIES_PATH,resolveNamed}from"./chunk-M36DAHMH.js";import{ULID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";
3
+ import{parseCsvRecords}from"./chunk-ZFSQJAYZ.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,targetId,updateFlags}from"./chunk-MPGJU5A7.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-M763HXDH.js";import{QUALIFICATIONS_PATH,SKILLS_PATH,SKILL_CATEGORIES_PATH,resolveNamed}from"./chunk-M36DAHMH.js";import{ULID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";
4
4
  import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var GROUPED_PATH="/api/v2/organization/skills/grouped";var SKILL_MAP_PATH="/api/v2/organization/skill-map";var USERS_LIST_PATH="/api/v2/admin/users/list";var USERS_PAGE_LIMIT=100;var USERS_MAX_PAGES=50;var HR_FORBIDDEN="HR\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\uFF08twp skill map / who\uFF09\u306F\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u53C2\u7167\u3067\u304D\u307E\u3059";function groupedSkillRows(body){
5
5
  const categories=isRecord(body)?body["categories"]:void 0;if(!Array.isArray(categories)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u4E00\u89A7\u306E\u5FDC\u7B54\u306B categories \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return categories.flatMap(group=>{const category=isRecord(group)&&isRecord(group["category"])?group["category"]:{};const skills=isRecord(group)&&Array.isArray(group["skills"])?group["\
6
6
  skills"]:[];return skills.filter(isRecord).map(skill=>({...skill,category_id:skill["category_id"]??category["id"]??null,category_name:category["name"]??null}))})}function groupedCategories(body){groupedSkillRows(body);return body["categories"]}function skillMatrix(body){const matrix=isRecord(body)?body["matrix"]:void 0;if(!Array.isArray(matrix)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u306E\u5FDC\u7B54\u306B matrix \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-hours","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","faq","fiscal-year","goal-sheet","holiday","inquiry","invoice","job-title","knowledge","leave","license","login-history","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable",
4
+ "redmine","report","role-template","rounding-setting","seal-impression","search","segment","shift","skill","staffing-board","storage","supplier-payment","support","task","teams","user","user-contract-type","wiki","workchange","worker-agent","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-C6U2CGX7.js";import{BOOLEAN_FLAGS,dispatch,resolveRoute,rewriteQueueCommand}from"./chunk-EOXTDZTA.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,includeStopped:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],
3
+ import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-BHVUGTHP.js";import{BOOLEAN_FLAGS,dispatch,resolveRoute,rewriteQueueCommand}from"./chunk-EOXTDZTA.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,includeStopped:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],
4
4
  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.add(index)}else if(route.
5
5
  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!==void 0)consumed.
6
6
  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.command===
@@ -0,0 +1,12 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var LOADERS={agent:async()=>(await import("./agent-IVJ5DCFU.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-XPV5PNE5.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-TTWTHKQJ.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-DIWOPBN6.js")).analysisDomain,announcement:async()=>(await import("./announcement-KOXBNHSN.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-XM26CE65.js")).attendanceDomainWithRecords,
4
+ backlog:async()=>(await import("./backlog-LCGG5HRB.js")).backlogDomain,budget:async()=>(await import("./budget-OYBU4JFH.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-VKS2HENV.js")).businessPlaceDomain,company:async()=>(await import("./company-BW3U437C.js")).companyDomain,contract:async()=>(await import("./contract-2MANNVJT.js")).contractDomain,customer:async()=>(await import("./company-BW3U437C.js")).
5
+ customerDomain,department:async()=>(await import("./department-LT3IM65L.js")).departmentDomain,deposit:async()=>(await import("./deposit-RYRCQ2U7.js")).depositDomain,estimate:async()=>(await import("./estimate-MMS326SE.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-KSZPNKBM.js")).evaluationDomain,expense:async()=>(await import("./expense-J7KGZKLH.js")).expenseDomain,faq:async()=>(await import("./faq-FJUCNBEB.js")).faqDomain,"fiscal-year":async()=>(await import("./fiscal-year-AFO5CWDN.js")).
6
+ fiscalYearDomain,holiday:async()=>(await import("./holiday-F24HA4K6.js")).holidayDomain,"goal-sheet":async()=>(await import("./evaluation-KSZPNKBM.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-IAAJYTXP.js")).inquiryDomain,invoice:async()=>(await import("./invoice-A3X3JF2H.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-PF4C6D6U.js")).jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-Q2YMI7I2.js")).knowledgeDomain,leave:async()=>(await import("./leave-2JNN3V3D.js")).
7
+ leaveDomain,license:async()=>(await import("./license-FMUHJGV4.js")).licenseDomain,"login-history":async()=>(await import("./login-history-WDEJ5LVA.js")).loginHistoryDomain,media:async()=>(await import("./media-R3XOKVJ6.js")).mediaDomain,meeting:async()=>(await import("./knowledge-2YF7CJKA.js")).meetingDomain,note:async()=>(await import("./knowledge-2YF7CJKA.js")).noteDomain,notification:async()=>(await import("./notification-4YXX6H3D.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).
8
+ onedriveDomain,outlook:async()=>(await import("./outlook-ZRFSKSJ3.js")).outlookDomain,payee:async()=>(await import("./sales-master-VKS2HENV.js")).payeeDomain,position:async()=>(await import("./position-M2MEJBUK.js")).positionDomain,project:async()=>(await import("./project-EF2JKWVC.js")).projectDomain,prospect:async()=>(await import("./prospect-R6346ME5.js")).prospectDomain,purchase:async()=>(await import("./purchase-XCTYVG4N.js")).purchaseDomain,qualification:async()=>(await import("./skill-E6P5HKO3.js")).
9
+ qualificationDomain,receivable:async()=>(await import("./receivable-FVLXVO2S.js")).receivableDomain,redmine:async()=>(await import("./redmine-EUFN35BT.js")).redmineDomain,report:async()=>(await import("./report-6Q3JV4DN.js")).reportDomain,"role-template":async()=>(await import("./evaluation-KSZPNKBM.js")).roleTemplateDomain,"rounding-setting":async()=>(await import("./sales-numbering-W2W57UPY.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-VKS2HENV.js")).
10
+ sealImpressionDomain,search:async()=>(await import("./search-N45JL2PU.js")).searchDomain,segment:async()=>(await import("./segment-3MKCPWT2.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-VNAHH3R4.js")).shiftDomain,skill:async()=>(await import("./skill-E6P5HKO3.js")).skillDomain,"staffing-board":async()=>(await import("./staffing-board-LWUCHN7P.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-AUT2FZBR.js")).
11
+ supplierPaymentDomain,support:async()=>(await import("./support-OUQWV5KP.js")).supportDomain,task:async()=>(await import("./task-7FOEUQJ6.js")).taskDomain,teams:async()=>(await import("./teams-FOR3O7KH.js")).teamsDomain,user:async()=>(await import("./user-7KEMCG3C.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-MPZQ7Y2P.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-2YF7CJKA.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-VNAHH3R4.js")).
12
+ workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-4E5P75SJ.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-G7QZZPAX.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-Y5XM6W3S.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-SZOEBJGI.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{Resolver,requireDefaultProject}from"./chunk-M36DAHMH.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,
3
+ import{loadDomain}from"./chunk-IAPKSXMG.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-SZOEBJGI.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{Resolver,requireDefaultProject}from"./chunk-M36DAHMH.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,
4
4
  TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-IXT2X5BZ.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
- 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-C6U2CGX7.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";
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-BHVUGTHP.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?"":`
7
7
  \u64CD\u4F5C:
8
8
  ${alignedList(resource.operations.map(op=>[op.name,op.summary]))}
@@ -40,10 +40,10 @@ normalizeValue(user.department_name??"")){diffs.push({...base("department_mismat
40
40
  entry.line),twp_value:user.position_name,ledger_value:entry.position,suggestion:user.assignment_id===null?null:`twp user assignment update ${shellQuote(user.assignment_id)} --user ${shellQuote(user.user_id)} `+flagSegment("--position",entry.position)})}}for(const user of inventory){if(!user.can_login)continue;if(!matched.has(user.user_id)){diffs.push({...base("not_in_ledger",user,null),twp_value:user.auth_type,suggestion:disableCommand(user.user_id)})}if(user.last_login_status==="sso_not_recorde\
41
41
  d"||recentlyHired(user.hire_date,inactiveDays,now))continue;if(user.last_login_at===null||daysBetween(user.last_login_at,now)>inactiveDays){diffs.push({...base("inactive",user,null),twp_value:user.last_login_at??`${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u4EE5\u5185\u306E\u30ED\u30B0\u30A4\u30F3\u8A18\u9332\u306A\u3057`})}}return diffs}var INVENTORY_COLUMNS=["user_id","user_name","email","employee_code","hire_date","department_name","position_name","manager_name","role","is_partner","permissions","a\
42
42
  uth_type","display_flg","last_login_at"];var DIFF_COLUMNS=["kind","kind_label","user_id","user_name","email","employee_code","auth_type","is_partner","ledger_line","twp_value","ledger_value","suggestion"];function exportBody(body){if(!isRecord(body)||!Array.isArray(body["rows"])||body["mode"]!=="inventory"&&body["mode"]!=="diff"){throw new ApiResponseError("\u68DA\u5378\u306E\u7D50\u679C\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002")}
43
- return body}function permissionText(levels){if(levels===null)return"\uFF08\u53D6\u5F97\u3067\u304D\u305A\uFF09";const granted=Object.entries(levels).filter(([,level])=>level!=="none"&&level!=="").sort(([a],[b])=>a.localeCompare(b));return granted.length===0?"\uFF08\u306A\u3057\uFF09":granted.map(([feature,level])=>`${feature}:${level}`).join(";")}function lastLoginText(row){switch(row.last_login_status){case"recorded":return row.last_login_at;case"sso_not_recorded":return"\u5224\u5B9A\u4E0D\u80FD\uFF08SSO \u306F\u8A18\u9332\u3055\u308C\u306A\u3044\uFF09";case"\
44
- not_recorded":return`${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u4EE5\u5185\u306E\u8A18\u9332\u306A\u3057`;default:return null}}function spreadsheetSafe(value){return typeof value==="string"&&/^[=+\-@\t\r]/.test(value)?`'${value}`:value}function flagValue(input,flag){const raw=input.flags.get(flag);if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,HELP);return raw}function ledgerOf(input){const raw=input.
45
- resolved?.["ledger"];return raw===void 0?void 0:JSON.parse(raw)}var COLUMN_FLAGS=LEDGER_ROLES.map(role=>({name:`--${role}-column`,summary:`\u53F0\u5E33\u306E${ROLE_LABEL[role]}\u306E\u5217\u540D\uFF08\u65E2\u5B9A\u306F ${COLUMN_CANDIDATES[role].slice(0,3).join(" / ")} \u306A\u3069\u304B\u3089\u63A2\u3059\uFF09`,takesValue:true,placeholder:"<\u5217\u540D>"}));var exportOperation={name:"export",summary:"\u5728\u7C4D\u8005\u3092\u68DA\u5378\u3059\u308B\uFF08\u6240\u5C5E\u30FB\u5F79\u8077\u30FB\u4E0A\u9577\u30FB\u6A29\u9650\u30FB\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u4ED8\u304D\u30FB\u4EBA\u4E8B\u53F0\u5E33 CSV \u3068\u306E\u5DEE\u5206\uFF09",
46
- usage:USAGE,description:`\u5728\u7C4D\u8005\uFF08\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C disabled \u3067\u306A\u3044\u30E6\u30FC\u30B6\u30FC\uFF09\u30921\u4EBA1\u884C\u3067\u51FA\u3057\u307E\u3059\u3002\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u307F\u307E\u3059
43
+ return body}function permissionText(levels){if(levels===null)return"\uFF08\u53D6\u5F97\u3067\u304D\u305A\uFF09";const granted=Object.entries(levels).filter(([,level])=>level!=="none"&&level!=="").sort(([a],[b])=>a.localeCompare(b));return granted.length===0?"\uFF08\u306A\u3057\uFF09":granted.map(([feature,level])=>`${feature}:${level}`).join(";")}function lastLoginText(row){switch(row.last_login_status){case"recorded":return row.last_login_at;case"sso_not_recorded":return"\u5224\u5B9A\u4E0D\u80FD\uFF08SSO \u306F 2026-09-26 \u3088\
44
+ \u308A\u524D\u304C\u672A\u8A18\u9332\uFF09";case"not_recorded":return`${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u4EE5\u5185\u306E\u8A18\u9332\u306A\u3057`;default:return null}}function spreadsheetSafe(value){return typeof value==="string"&&/^[=+\-@\t\r]/.test(value)?`'${value}`:value}function flagValue(input,flag){const raw=input.flags.get(flag);if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,HELP);
45
+ return raw}function ledgerOf(input){const raw=input.resolved?.["ledger"];return raw===void 0?void 0:JSON.parse(raw)}var COLUMN_FLAGS=LEDGER_ROLES.map(role=>({name:`--${role}-column`,summary:`\u53F0\u5E33\u306E${ROLE_LABEL[role]}\u306E\u5217\u540D\uFF08\u65E2\u5B9A\u306F ${COLUMN_CANDIDATES[role].slice(0,3).join(" / ")} \u306A\u3069\u304B\u3089\u63A2\u3059\uFF09`,takesValue:true,placeholder:"<\u5217\u540D>"}));var exportOperation={name:"export",summary:"\u5728\u7C4D\u8005\u3092\u68DA\u5378\u3059\u308B\uFF08\u6240\u5C5E\u30FB\u5F79\u8077\u30FB\u4E0A\u9577\u30FB\u6A29\u9650\u30FB\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u4ED8\u304D\u30FB\u4EBA\u4E8B\u53F0\u5E33 CSV \u3068\u306E\u5DEE\u5206\
46
+ \uFF09",usage:USAGE,description:`\u5728\u7C4D\u8005\uFF08\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C disabled \u3067\u306A\u3044\u30E6\u30FC\u30B6\u30FC\uFF09\u30921\u4EBA1\u884C\u3067\u51FA\u3057\u307E\u3059\u3002\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u307F\u307E\u3059
47
47
  \uFF08\u8868\u793A\u30D5\u30E9\u30B0\u3060\u3051\u5916\u3057\u3066\u5931\u52B9\u3055\u305B\u3066\u3044\u306A\u3044\u4EBA\u3092\u898B\u3064\u3051\u308B\u305F\u3081\uFF09\u3002--exclude-hidden \u3067\u8868\u793A\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u306B\u7D5E\u308C\u307E\u3059\u3002
48
48
  --include-disabled \u3067\u5931\u52B9\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u51FA\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\u3002
49
49
 
@@ -54,8 +54,9 @@ manager_name\uFF08\u4E3B\u6240\u5C5E\u306E\u4E0A\u9577\uFF09/ role / is_partner
54
54
 
55
55
  \u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u306F\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u304B\u3089\u53D6\u308A\u307E\u3059\u3002\u6B21\u306E2\u70B9\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
56
56
  - \u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u306F90\u65E5\u3067\u6D88\u3048\u307E\u3059\u3002\u300C90\u65E5\u4EE5\u5185\u306E\u8A18\u9332\u306A\u3057\u300D\u306F\u4E00\u5EA6\u3082\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044\u3001\u3068\u3044\u3046\u610F\u5473\u3067\u306F\u3042\u308A\u307E\u305B\u3093
57
- - Google / Microsoft \u306E SSO \u3067\u306E\u30ED\u30B0\u30A4\u30F3\u306F\u8A18\u9332\u3055\u308C\u307E\u305B\u3093\u3002\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u51FA\u3057\u3001
58
- \u9577\u671F\u672A\u30ED\u30B0\u30A4\u30F3\uFF08inactive\uFF09\u306E\u5224\u5B9A\u304B\u3089\u5916\u3057\u307E\u3059\u3002all \u306E\u30E6\u30FC\u30B6\u30FC\u304C SSO \u3060\u3051\u3067\u4F7F\u3063\u3066\u3044\u308B\u5834\u5408\u3082\u8A18\u9332\u306F\u6B8B\u308A\u307E\u305B\u3093
57
+ - Google / Microsoft \u306E SSO \u3067\u306E\u30ED\u30B0\u30A4\u30F3\u306F 2026-09-26 \u306E\u30B5\u30FC\u30D0\u66F4\u65B0\u3088\u308A\u524D\u306E\u5206\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
58
+ \u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u51FA\u3057\u3001\u9577\u671F\u672A\u30ED\u30B0\u30A4\u30F3\uFF08inactive\uFF09\u306E\u5224\u5B9A\u304B\u3089\u5916\u3057\u307E\u3059\u3002
59
+ all \u306E\u30E6\u30FC\u30B6\u30FC\u304C SSO \u3060\u3051\u3067\u4F7F\u3063\u3066\u3044\u308B\u5834\u5408\u3082\u8A18\u9332\u304C\u6B20\u3051\u3066\u3044\u307E\u3059\uFF08\u5C65\u6B74\u306F twp login-history list \u3067\u898B\u3089\u308C\u307E\u3059\uFF09
59
60
 
60
61
  --file <\u53F0\u5E33CSV> \u3092\u4ED8\u3051\u308B\u3068\u3001\u4EBA\u4E8B\u53F0\u5E33\u3068\u306E\u5DEE\u5206\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF081\u884C\u76EE\u306F\u898B\u51FA\u3057\u3002UTF-8 \u3068 Shift_JIS \u3092\u8AAD\u3081\u307E\u3059\uFF09:
61
62
  not_in_ledger TWP \u3067\u5931\u52B9\u3057\u3066\u3044\u306A\u3044\u304C\u53F0\u5E33\u306B\u3044\u306A\u3044\uFF08\u9000\u793E\u6642\u306E\u5931\u52B9\u6F0F\u308C\u3002\u30D1\u30FC\u30C8\u30CA\u30FC\u3084\u5171\u7528\u30A2\u30AB\u30A6\u30F3\u30C8\u3082\u51FA\u307E\u3059\uFF09
@@ -86,6 +87,6 @@ const maxUsers=positiveInteger(input.flags,"--max-users")??DEFAULT_MAX_USERS;con
86
87
  rows.length} \u884C\u3092\u8AAD\u307F\u307E\u3057\u305F\u3002\u4F7F\u3046\u5217: ${used.join("\u3001")}`)}return notes},async execute(input,ctx){const{rows,scanned}=await collectInventory(input,ctx);const disabled=rows.filter(r=>!r.can_login).length;const ssoUndetermined=rows.filter(r=>r.can_login&&r.last_login_status==="sso_not_recorded").length;const excludedHidden=input.flags.has("--exclude-hidden");const ledger=ledgerOf(input);if(ledger===void 0){const visible=input.flags.has("--include-disa\
87
88
  bled")?rows:rows.filter(r=>r.can_login);return{mode:"inventory",rows:visible,scanned,disabled,ssoUndetermined,excludedHidden}}const diffs=diffAgainstLedger(rows,ledger.rows,ledger.columns,Number(requireResolved(input,"inactiveDays")),new Date);return{mode:"diff",rows:diffs,scanned,disabled,ssoUndetermined,excludedHidden}},summarize(body){const result=exportBody(body);if(result.mode==="diff"){return result.rows.map(row=>Object.fromEntries(DIFF_COLUMNS.map(c=>[c,spreadsheetSafe(row[c])])))}return result.
88
89
  rows.map(row=>Object.fromEntries(INVENTORY_COLUMNS.map(c=>{if(c==="permissions")return[c,permissionText(row.permissions)];if(c==="last_login_at")return[c,lastLoginText(row)];if(c==="manager_name")return[c,spreadsheetSafe(row.manager_name??row.manager_id)];return[c,spreadsheetSafe(row[c])]})))},raw:body=>exportBody(body).rows,notes(body){const result=exportBody(body);const notes=[`${result.scanned} \u4EBA\u3092\u8AAD\u307F\u307E\u3057\u305F\uFF08\u3046\u3061\u5931\u52B9\u6E08\u307F ${result.disabled}\
89
- \u4EBA\uFF09\u3002`+(result.excludedHidden?"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u5BFE\u8C61\u5916\u3067\u3059\uFF08--exclude-hidden\uFF09\u3002":"")];if(result.ssoUndetermined>0){notes.push(`\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E ${result.ssoUndetermined} \u4EBA\u306F\u3001SSO \u306E\u30ED\u30B0\u30A4\u30F3\u304C\u8A18\u9332\u3055\u308C\u306A\u3044\u305F\u3081\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u5224\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002`)}
90
+ \u4EBA\uFF09\u3002`+(result.excludedHidden?"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u5BFE\u8C61\u5916\u3067\u3059\uFF08--exclude-hidden\uFF09\u3002":"")];if(result.ssoUndetermined>0){notes.push(`\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E ${result.ssoUndetermined} \u4EBA\u306F\u3001SSO \u306E\u30ED\u30B0\u30A4\u30F3\u306F 2026-09-26 \u306E\u30B5\u30FC\u30D0\u66F4\u65B0\u3088\u308A\u524D\u306E\u5206\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u5224\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002`)}
90
91
  if(result.mode==="diff"){const counts=new Map;for(const row of result.rows)counts.set(row.kind,(counts.get(row.kind)??0)+1);notes.push(counts.size===0?"\u53F0\u5E33\u3068\u306E\u5DEE\u5206\u306F\u3042\u308A\u307E\u305B\u3093\u3002":`\u5DEE\u5206: ${[...counts].map(([kind,n])=>`${kind} ${n}\u4EF6`).join(" / ")}`);if(result.excludedHidden){notes.push("--exclude-hidden \u306E\u305F\u3081\u3001\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u307E\u307E\u5931\u52B9\u3057\u3066\u3044\u306A\u3044\u30E6\u30FC\u30B6\u30FC\uFF08\u5931\u52B9\u6F0F\u308C\uFF09\u306F\u51FA\u3066\u3044\u307E\u305B\u3093\u3002\u307E\u305F\u3001\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C missing_in_twp\uFF08\u767B\u9332\u6F0F\u308C\uFF09\u3068\u3057\u3066\u51FA\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002")}}
91
92
  return notes}};export{LOGIN_HISTORY_RETENTION_DAYS,DEFAULT_INACTIVE_DAYS,CONCURRENCY,parseCsvRecords,pacedSender,mapPool,userDetail,primaryAssignment,lastLogin,daysBetween,recentlyHired,lastLoginText,spreadsheetSafe,exportOperation};
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-IWY2SNST.js";import"./chunk-2LOT54OO.js";import"./chunk-C6U2CGX7.js";import"./chunk-EOXTDZTA.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.90.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-GZEES7MK.js";import"./chunk-2LOT54OO.js";import"./chunk-BHVUGTHP.js";import"./chunk-EOXTDZTA.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.91.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -740,8 +740,12 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
740
740
  twp user create \u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u30D1\u30B9\u30EF\u30FC\u30C9\u306F --password-file\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
741
741
  twp user update <\u30E6\u30FC\u30B6\u30FC>
742
742
  \u30E6\u30FC\u30B6\u30FC\u3092\u66F4\u65B0\u3059\u308B\uFF08--auth-type disabled \u3067\u5931\u52B9\uFF1D\u9000\u793E\uFF09
743
+ twp user unlock <\u30E6\u30FC\u30B6\u30FC>
744
+ \u30ED\u30B0\u30A4\u30F3\u5931\u6557\u3067\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u3092\u89E3\u9664\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
743
745
  twp user export [--file <\u53F0\u5E33CSV>]
744
746
  \u5728\u7C4D\u8005\u3092\u68DA\u5378\u3059\u308B\uFF08--file \u3067\u4EBA\u4E8B\u53F0\u5E33\u3068\u306E\u5DEE\u5206\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
747
+ twp login-history list \u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08--from/--to\u30FB--user\u30FB--ip\u30FB--result\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
748
+ twp login-history stats \u30ED\u30B0\u30A4\u30F3\u306E\u8A66\u884C\u3092\u7D50\u679C\u3054\u3068\u306B\u96C6\u8A08\u3059\u308B\uFF08--days\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
745
749
  twp user permission list <\u30E6\u30FC\u30B6\u30FC>
746
750
  1\u4EBA\u306E\u6A5F\u80FD\u6A29\u9650\u3068\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u5F53\u3092\u4E26\u3079\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
747
751
  twp user permission update <\u30E6\u30FC\u30B6\u30FC> --feature <\u6A5F\u80FD> --level <\u30EC\u30D9\u30EB>
@@ -1468,16 +1472,16 @@ TUI \u5185:
1468
1472
  TWP API \u3092\u547C\u3079\u307E\u3059\u3002TWP API \u306E\u30C4\u30FC\u30EB\u306F\u65E2\u5B9A\u3067\u78BA\u8A8D\u304C\u51FA\u307E\u3059\uFF08-p \u3067\u306F\u62D2\u5426\u3002--allowed-tools \u3067\u540D\u524D\u3092\u8A31\u53EF\uFF09\u3002
1469
1473
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
1470
1474
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
1471
- `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-XT4VB4LJ.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-636S3VU3.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1472
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-TGKZPLKO.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-DONZ3M6N.js");process.exitCode=
1475
+ `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-XT4VB4LJ.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-PMEHZYXB.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1476
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-TMAWS2IQ.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-DONZ3M6N.js");process.exitCode=
1473
1477
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
1474
1478
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.movedCommand!==void 0){const{MOVED_QUEUE_COMMAND_MESSAGE}=await import("./dispatch-GSBMRWQ4.js");process.stderr.write(MOVED_QUEUE_COMMAND_MESSAGE);process.exitCode=2;return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
1475
1479
 
1476
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-3UJFGBQR.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1477
- {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-OJORMKTD.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1480
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-OT5I4KNA.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1481
+ {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-NPZNPEDG.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1478
1482
  profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-5NJSC26F.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-FOEEAVJQ.js");
1479
- const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-ULMFP3LH.js");process.exitCode=await runTaskLoop(
1483
+ const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-UNR6KFRZ.js");process.exitCode=await runTaskLoop(
1480
1484
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,scheduleOp:args.scheduleOp,scheduleConfigOp:args.scheduleConfigOp,scheduleId:args.scheduleId,charterOp:args.charterOp,charterInput:args.
1481
1485
  charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,settingsOp:args.settingsOp,skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,skillConfig:args.skillConfig,output:args.output,query:args.query,revisionFrom:args.revisionFrom,revisionTo:args.revisionTo,planOp:args.planOp,capacityOp:args.capacityOp,includeStopped:args.includeStopped,runnerOp:args.runnerOp,runnerId:args.runnerTargetId,planEmpty:args.planEmpty,planCheck:args.planCheck,
1482
1486
  yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-ZCGHYKQM.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:
1483
- {},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-V6K6YNWR.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
1487
+ {},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-DSTRIAS3.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-6M5NUVJJ.js";import{NO_PLAN_SESSION,RECENT_ADVANCE_WINDOW_HOURS,buildDynamicBlocks,buildRecentCandidateIndex,createItem,enqueueBlockerRecovery,enqueueDevVerifyForMerged,enqueueReleasePartialMergeRerun,enqueueReleasePhase5Recovery,fileSkillNames,findRecentCandidate,formatInflightEntry,formatPlanResultLine,formatRecentAdvance,formatResumeHold,inflightEntries,inflightStaleHours,openPlanSession,parseOutcomeCode,
4
- parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,resolveResumeHold,shouldSuppressForResume,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-Q5NZXJNI.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-MBPJV745.js";import{ServerSkillCatalog,formatSkillOrigins}from"./chunk-3OCV6SOR.js";import{claudeConfigDir,
5
- resolveDetectDeps}from"./chunk-5SONMN6K.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-OVV2PTZF.js";import"./chunk-VRBI2NPI.js";import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,stepToItem,zeroTargetDropReasons}from"./chunk-3D734ED2.js";
3
+ import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-6M5NUVJJ.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-OVV2PTZF.js";import{NO_PLAN_SESSION,RECENT_ADVANCE_WINDOW_HOURS,buildDynamicBlocks,buildRecentCandidateIndex,createItem,enqueueBlockerRecovery,enqueueDevVerifyForMerged,enqueueReleasePartialMergeRerun,enqueueReleasePhase5Recovery,fileSkillNames,findRecentCandidate,formatInflightEntry,formatPlanResultLine,formatRecentAdvance,formatResumeHold,
4
+ inflightEntries,inflightStaleHours,openPlanSession,parseOutcomeCode,parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,resolveResumeHold,shouldSuppressForResume,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-Q5NZXJNI.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-MBPJV745.js";import{ServerSkillCatalog,
5
+ formatSkillOrigins}from"./chunk-3OCV6SOR.js";import{claudeConfigDir,resolveDetectDeps}from"./chunk-5SONMN6K.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import"./chunk-VRBI2NPI.js";import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,stepToItem,zeroTargetDropReasons}from"./chunk-3D734ED2.js";
6
6
  import{redactLoopOutput}from"./chunk-NXPLTDN4.js";import{buildLoopConfig,evaluateOwnership,exportStateDirEnv,localConfigPath,loopStateDir}from"./chunk-INS77QHY.js";import{describeOperations,evaluatePlanGate,planGateStatePath,recordPlanned}from"./chunk-CVX2YWHC.js";import{CapacityReporter}from"./chunk-VYDPW2YO.js";import{formatHookIds,formatHookWiring,runHook,runPrefetch,runPreflight}from"./chunk-TTST7UDR.js";import{exclusiveInflightEntries,formatExclusiveEntry,normalizeSkillName,
7
7
  spawnSyncResolved}from"./chunk-FABDZBDZ.js";import{setSkillPrefix,skillCommand,skillFromPrompt,stripSkillCommand}from"./chunk-6CS5L24D.js";import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{AgentLoopApi,describeError,filterByStatus,isPermanent,pick,pickString}from"./chunk-UZUV5FYG.js";import{PRIVATE_PROJECT_REF,isPrivateProjectId,isPrivateProjectRef,privateProjectId,projectFileKey}from"./chunk-RMFLTSOV.js";import{ULID_RE,loopProjectIdPolicy,resolveProjectRef}from"./chunk-HVZUXLQ4.js";
8
8
  import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{joinFor}from"./chunk-PMOUHEJQ.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import{effectiveApiUrl,resolveProfile}from"./chunk-EDF4U5BT.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
@@ -313,7 +313,7 @@ profile:opts.profile})}if(opts.action==="runner"){if(opts.runnerOp===void 0){pro
313
313
  if(opts.action==="schedule"&&opts.scheduleOp!==void 0){const{runScheduleDefCommand}=await import("./schedule-def-command-OFCA5VH3.js");return runScheduleDefCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.scheduleOp,configOp:opts.scheduleConfigOp,id:opts.scheduleId,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="settings"){if(opts.settingsOp===void 0){process.stderr.write("settings \u306B\u306F pu\
314
314
  sh / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u30EB\u30FC\u30D7\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}const{runSettingsCommand}=await import("./settings-command-TEVH2MNY.js");return runSettingsCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.settingsOp,
315
315
  file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="skill"){if(opts.skillOp===void 0){process.stderr.write("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\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u30B9\u30AD\u30EB\u5B9A\u7FA9\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");
316
- return 2}if(opts.skillOp==="check"){const{runSkillCheck}=await import("./skill-check-3RWESZ4O.js");return runSkillCheck({api:new AgentLoopApi({apiUrl,projectId,session})},{configPath:opts.skillConfig,defaultConfigPath:localConfigPath(projectId),output:opts.output})}if(opts.skillOp==="list"||opts.skillOp==="show"||opts.skillOp==="delete"){const{runSkillManageCommand}=await import("./skill-manage-command-Z4MLSACA.js");return runSkillManageCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.
316
+ return 2}if(opts.skillOp==="check"){const{runSkillCheck}=await import("./skill-check-ZXDV5MWP.js");return runSkillCheck({api:new AgentLoopApi({apiUrl,projectId,session})},{configPath:opts.skillConfig,defaultConfigPath:localConfigPath(projectId),output:opts.output})}if(opts.skillOp==="list"||opts.skillOp==="show"||opts.skillOp==="delete"){const{runSkillManageCommand}=await import("./skill-manage-command-Z4MLSACA.js");return runSkillManageCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.
317
317
  skillOp,name:opts.skillName,output:opts.output,query:opts.query,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.skillOp!=="push"&&opts.skillOp!=="pull"){const{runRevisionCommand}=await import("./revision-command-KT7NMRES.js");return runRevisionCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{target:"skill",op:opts.skillOp,name:opts.skillName,from:opts.revisionFrom,to:opts.revisionTo,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.
318
318
  profile})}const{runSkillCommand}=await import("./skill-command-4VMZ2H6A.js");return runSkillCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.skillOp,name:opts.skillName,all:opts.skillAll===true,dir:opts.skillDir,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const config=buildLoopConfig({projectId,projectRef,apiUrl,safeMode:opts.safe,daemon:opts.daemon,...opts.maxCycles!==void 0?{maxCycles:opts.maxCycles}:{},...opts.interval!==void 0?{intervalSec:opts.
319
319
  interval}:{},forceRunner:opts.forceRunner,...opts.engine!==void 0?{engine:opts.engine}:{},version:opts.version});const api=new AgentLoopApi({apiUrl,projectId,session});if(opts.action==="capacity"){if(opts.capacityOp!=="report"){process.stderr.write("capacity \u306B\u306F report / list \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}for(const warning of config.warnings)process.stderr.write(`\u26A0\uFE0F ${warning}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{GLOBAL_FLAGS}from"./chunk-IWY2SNST.js";import"./chunk-2LOT54OO.js";import{API_TOKEN,DOMAIN_NAMES,HELP_TOKEN,isDomainName}from"./chunk-C6U2CGX7.js";import{BUILTIN_COMMANDS,QUEUE_DOMAIN,TASK_LOOP_ACTIONS,TASK_LOOP_QUEUE_ACTIONS,VALUE_FLAGS,rewriteQueueCommand}from"./chunk-EOXTDZTA.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var EXTRA_TOP_LEVEL=[API_TOKEN,HELP_TOKEN,"completion","configure"];var COMPLETION_SHELLS=["bash","zsh","fish","powershell"];var TOP_LEVEL_FLAGS=["--help","--version","-p","--print","--profile","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--no-tui","--doctor"];var DOMAIN_GLOBAL_FLAGS=[...GLOBAL_FLAGS].filter(flag=>flag.startsWith("--"));function staticValues(flag,ctx){if(flag==="--output")return OUTPUT_FORMATS;if(flag==="--profile")return ctx.profileNames();return void 0}
3
+ import{GLOBAL_FLAGS}from"./chunk-GZEES7MK.js";import"./chunk-2LOT54OO.js";import{API_TOKEN,DOMAIN_NAMES,HELP_TOKEN,isDomainName}from"./chunk-BHVUGTHP.js";import{BUILTIN_COMMANDS,QUEUE_DOMAIN,TASK_LOOP_ACTIONS,TASK_LOOP_QUEUE_ACTIONS,VALUE_FLAGS,rewriteQueueCommand}from"./chunk-EOXTDZTA.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var EXTRA_TOP_LEVEL=[API_TOKEN,HELP_TOKEN,"completion","configure"];var COMPLETION_SHELLS=["bash","zsh","fish","powershell"];var TOP_LEVEL_FLAGS=["--help","--version","-p","--print","--profile","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--no-tui","--doctor"];var DOMAIN_GLOBAL_FLAGS=[...GLOBAL_FLAGS].filter(flag=>flag.startsWith("--"));function staticValues(flag,ctx){if(flag==="--output")return OUTPUT_FORMATS;if(flag==="--profile")return ctx.profileNames();return void 0}
4
4
  function positionals(words,takesValue){const out=[];for(let i=0;i<words.length;i++){const word=words[i]??"";if(word==="--"){out.push(...words.slice(i+1));break}if(word.startsWith("-")){if(!word.includes("=")&&takesValue(word))i++;continue}out.push(word)}return out}function byPrefix(candidates,current){const seen=new Set;for(const candidate of candidates){if(candidate.startsWith(current))seen.add(candidate)}return[...seen]}function remainingFlags(flags,words){const used=new Set(words.filter(w=>w.
5
5
  startsWith("--")).map(w=>w.split("=")[0]));return[...flags.filter(f=>f.repeatable===true||!used.has(f.name)).map(f=>f.name),...DOMAIN_GLOBAL_FLAGS.filter(f=>!used.has(f))]}async function complete(rawWords,current,ctx){const queue=rewriteQueueCommand(rawWords);if(queue.moved!==void 0)return[];const words=queue.argv;const previous=words[words.length-1];if(previous!==void 0&&previous.startsWith("--")&&!previous.includes("=")){const values=staticValues(previous,ctx);if(values!==void 0)return byPrefix(
6
6
  values,current)}const eq=current.indexOf("=");if(current.startsWith("--")&&eq>0){const flag=current.slice(0,eq);const values=staticValues(flag,ctx);return values===void 0?[]:byPrefix(values.map(v=>`${flag}=${v}`),current)}const pos=positionals(words,flag=>VALUE_FLAGS.has(flag));const[first,second]=pos;if(first===void 0){if(current.startsWith("-"))return byPrefix([...TOP_LEVEL_FLAGS,...DOMAIN_GLOBAL_FLAGS],current);return byPrefix([...BUILTIN_COMMANDS,...DOMAIN_NAMES.filter(name=>name!==QUEUE_DOMAIN),
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseCsvRecords}from"./chunk-7PTFN3H7.js";import{importRejection}from"./chunk-EGOE26U7.js";import{decodeCsvText}from"./chunk-QLENN5DD.js";import"./chunk-U6KPYJTM.js";import"./chunk-23MEOBJF.js";import"./chunk-UVCJXHWN.js";import"./chunk-EXT4AIDF.js";import"./chunk-MPGJU5A7.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";
3
+ import{parseCsvRecords}from"./chunk-ZFSQJAYZ.js";import{importRejection}from"./chunk-EGOE26U7.js";import{decodeCsvText}from"./chunk-QLENN5DD.js";import"./chunk-U6KPYJTM.js";import"./chunk-23MEOBJF.js";import"./chunk-UVCJXHWN.js";import"./chunk-EXT4AIDF.js";import"./chunk-MPGJU5A7.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";
4
4
  import"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.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-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";
5
5
  import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var NAME="holiday";var LABEL="\u795D\u65E5";var READ_PATH="/api/v2/holidays";var ADMIN_PATH="/api/v2/admin/tenant/holidays";var DATE_RE=/^\d{4}-\d{2}-\d{2}$/;var YEAR_RE=/^\d{4}$/;var NAME_MAX=100;var IMPORT_MAX_BYTES=1024*1024;var SHOWN_DIFF=30;var COLUMNS=["date","name"];var IMPACT="\u795D\u65E5\u306F\u52E4\u6020\u306E\u96C6\u8A08\uFF08\u4F11\u65E5\u52B4\u50CD\u30FB\u6240\u5B9A\u65E5\u6570\uFF09\u3068\u55B6\u696D\u65E5\u6570\u306E\u8A08\u7B97\u306B\u52B9\u304D\u307E\u3059\u3002\u7DE0\u3081\u6E08\u307F\u306E\u6708\u306E\u795D\u65E5\u3092\u5909\u3048\u3066\u3082\u3001\u7DE0\u3081\u305F\u96C6\u8A08\u306F\u81EA\u52D5\u3067\u306F\u76F4\u308A\u307E\u305B\u3093\u3002";
6
6
  var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FBCSV \u306E\u51FA\u3057\u5165\u308C\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;var DATE_FLAG={name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var NAME_FLAG={name:"--name",summary:`\u795D\u65E5\u540D\uFF08${NAME_MAX}\
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{LICENSE_FEATURE_NAMES,judge,licenseDomain,readLicenses,releaseCommand,resolveFeature}from"./chunk-AVOZLZA5.js";import"./chunk-7PTFN3H7.js";import"./chunk-QLENN5DD.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";
3
+ import{LICENSE_FEATURE_NAMES,judge,licenseDomain,readLicenses,releaseCommand,resolveFeature}from"./chunk-3BP2257G.js";import"./chunk-ZFSQJAYZ.js";import"./chunk-QLENN5DD.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";
4
4
  import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{LICENSE_FEATURE_NAMES,judge,licenseDomain,readLicenses,releaseCommand,resolveFeature};
@@ -0,0 +1,48 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{LOGIN_HISTORY_RETENTION_DAYS}from"./chunk-ZFSQJAYZ.js";import"./chunk-QLENN5DD.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";
4
+ import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74";var PATH="/api/v2/admin/tenant/login-history";var FORBIDDEN=`\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u898B\u3089\u308C\u307E\u3059`;var RESULTS=["success","failure","locked","ip_blocked"];var MAX_LIMIT=500;var DEFAULT_LIMIT=100;var STATS_SCAN_LIMIT=1e3;var MAX_STATS_DAYS=90;var LIST_COLUMNS=["timestamp","result","email","ip_address","failure_\
5
+ reason"];var RECORDING_HELP=`\u8A18\u9332\u306B\u3064\u3044\u3066:
6
+ - \u5C65\u6B74\u306F${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u3067\u6D88\u3048\u307E\u3059\u3002\u305D\u308C\u3088\u308A\u524D\u306F\u51FA\u307E\u305B\u3093\uFF08\u300C\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044\u300D\u3068\u306F\u9650\u308A\u307E\u305B\u3093\uFF09\u3002
7
+ - Google / Microsoft \u306E SSO \u30ED\u30B0\u30A4\u30F3\u306F\u30012026-09-26\uFF08UTC\uFF09\u306E\u30B5\u30FC\u30D0\u66F4\u65B0\u3088\u308A\u524D\u306E\u5206\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
8
+ twp user export \u304C SSO \u306E\u30E6\u30FC\u30B6\u30FC\u306E\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u3057\u3066\u6271\u3046\u306E\u306F\u3053\u306E\u305F\u3081\u3067\u3059\u3002
9
+ - \u6642\u523B\uFF08timestamp\uFF09\u306F UTC \u3067\u3059\uFF08\u672B\u5C3E Z\uFF09\u3002`;var DATE_RE=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIME_RE=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?(Z|[+-]\d{2}:\d{2})$/;var JST_OFFSET_MS=9*60*60*1e3;var UUID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function noArgs(input,op){if(input.args.length>0){throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,
10
+ `twp login-history ${op} help`)}}function toUtcBound(raw,flag){const value=raw.trim();const ymd=/^(\d{4})-(\d{2})-(\d{2})/.exec(value);const utcMidnight=ymd===null?NaN:Date.UTC(Number(ymd[1]),Number(ymd[2])-1,Number(ymd[3]));if(ymd!==null){const check=new Date(utcMidnight);if(check.getUTCFullYear()!==Number(ymd[1])||check.getUTCMonth()!==Number(ymd[2])-1||check.getUTCDate()!==Number(ymd[3])){throw new UsageError(`${flag} \u306B\u5B9F\u5728\u3057\u306A\u3044\u65E5\u4ED8\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059: ${raw}`)}}
11
+ let ms;if(DATE_RE.test(value)){ms=utcMidnight-JST_OFFSET_MS+(flag==="--to"?24*60*60*1e3:0);const iso=new Date(ms).toISOString().slice(0,19);return flag==="--to"?`${new Date(ms-1e3).toISOString().slice(0,19)}.999999Z`:`${iso}.000000Z`}if(!DATETIME_RE.test(value)||Number.isNaN(Date.parse(value))){throw new UsageError(`${flag} \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${raw}`,"\u65E5\u4ED8\uFF08YYYY-MM-DD\u30FB\u65E5\u672C\u6642\u9593\u306E1\u65E5\uFF09\u304B\u3001\u6642\u5DEE\u4ED8\u304D\u306E\u65E5\u6642\uFF082026-10-01T09:00:00+09:00 / 2026-10-01T00:00:00Z\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
12
+ ms=Date.parse(value);const micro=/\.(\d{1,6})/.exec(value)?.[1]?.padEnd(6,"0")??"000000";return`${new Date(ms).toISOString().slice(0,19)}.${micro}Z`}function resultFilter(input){const raw=nonEmpty(input.flags,"--result");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!RESULTS.includes(value)){throw new UsageError(`--result \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,`${RESULTS.join(" / ")} \u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
13
+ return value}function listLimit(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>MAX_LIMIT){throw new UsageError(`--limit \u306F ${MAX_LIMIT} \u307E\u3067\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${limit}\uFF09`,"\u30B5\u30FC\u30D0\u304C1\u56DE\u306B\u8FD4\u305B\u308B\u4E0A\u9650\u3067\u3059\u3002\u7D9A\u304D\u306F --all \u3067\u8FBF\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}return limit}function envelope(body,what){if(!isRecord(body)||body["resu\
14
+ lt"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}var listPaging=envelopePaging({label:`${LABEL}\u4E00\u89A7`,itemsKey:"histories"});function listRows(body){envelope(body,`${LABEL}\u4E00\u89A7`);return listPaging.items(body)}function statsRow(body){const row=envelope(body,`${LABEL}\u306E\u96C6\u8A08`);if(typeof row["total_a\
15
+ ttempts"]!=="number"){throw new ApiResponseError(`${LABEL}\u306E\u96C6\u8A08\u306E\u5FDC\u7B54\u306B total_attempts \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return Object.fromEntries(Object.entries(row).filter(([key])=>key!=="result"))}var LIST_USAGE="twp login-history list [--from <\u65E5\u4ED8|\u65E5\u6642>] [--to <\u65E5\u4ED8|\u65E5\u6642>] [--user <\u30E6\u30FC\u30B6\u30FC> | --ip <IP\u30A2\u30C9\u30EC\u30B9>] [--result <\u7D50\u679C>] [--all] [--limit <\u4EF6\u6570>]";
16
+ var listOperation={name:"list",summary:`${LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u671F\u9593\u30FB\u30E6\u30FC\u30B6\u30FC\u30FBIP\u30FB\u7D50\u679C\u3067\u7D5E\u308A\u8FBC\u3081\u308B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:LIST_USAGE,description:`\u65B0\u3057\u3044\u9806\u306B\u51FA\u3057\u307E\u3059\u3002\u30ED\u30C3\u30AF\u306E\u539F\u56E0\u3084\u3001\u898B\u899A\u3048\u306E\u306A\u3044 IP \u304B\u3089\u306E\u30ED\u30B0\u30A4\u30F3\u3092\u8ABF\u3079\u308B\u306E\u306B\u4F7F\u3044\u307E\u3059\u3002
17
+ --result \u306F ${RESULTS.join(" / ")}\uFF08\u6210\u529F / \u5931\u6557 / \u30ED\u30C3\u30AF\u4E2D\u306E\u8A66\u884C / IP \u5236\u9650\u3067\u62D2\u5426\uFF09\u3067\u3059\u3002
18
+ --from / --to \u306F\u65E5\u4ED8\uFF08YYYY-MM-DD\u30FB\u65E5\u672C\u6642\u9593\u306E1\u65E5\uFF09\u304B\u3001\u6642\u5DEE\u4ED8\u304D\u306E\u65E5\u6642\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002
19
+
20
+ \u26A0 --user \u3068 --ip \u306F\u30B5\u30FC\u30D0\u306E\u5225\u306E\u7D22\u5F15\u3092\u5F15\u304F\u306E\u3067\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u3061\u3089\u304B\u3092\u4ED8\u3051\u305F\u3068\u304D\u306F:
21
+ - \u7D9A\u304D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\uFF08--limit \u4EF6\u307E\u3067\u30FB\u65E2\u5B9A ${DEFAULT_LIMIT}\u30FB\u6700\u5927 ${MAX_LIMIT}\uFF09\u3002\u4EF6\u6570\u304C --limit \u306B\u5C4A\u3044\u305F\u3089
22
+ stderr \u3067\u8A00\u3046\u306E\u3067\u3001--from / --to \u3067\u671F\u9593\u3092\u72ED\u3081\u3066\u304F\u3060\u3055\u3044
23
+ - --result \u306F --limit \u4EF6\u3092\u53D6\u3063\u305F\u5F8C\u306B\u7D5E\u308B\u306E\u3067\u3001\u6307\u5B9A\u3088\u308A\u5C11\u306A\u304F\u51FA\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059
24
+ - \u5B58\u5728\u3057\u306A\u3044\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u306E\u5931\u6557\u306F\u30E6\u30FC\u30B6\u30FC\u306B\u7D10\u3065\u304B\u306A\u3044\u306E\u3067 --user \u3067\u306F\u51FA\u307E\u305B\u3093\u3002
25
+ --ip \u304B\u3001\u7D5E\u308A\u8FBC\u307F\u306A\u3057\u306E --output json \u3092 --query \u3067 email \u306B\u7D5E\u3063\u3066\u63A2\u3057\u3066\u304F\u3060\u3055\u3044
26
+ \u3069\u3061\u3089\u3082\u4ED8\u3051\u306A\u3044\u4E00\u89A7\u3067\u3082\u3001--result \u306F\u30B5\u30FC\u30D0\u304C1\u30DA\u30FC\u30B8\u5206\u3092\u8AAD\u3093\u3060\u5F8C\u306B\u7D5E\u308B\u306E\u3067\u30010\u4EF6\u306E\u30DA\u30FC\u30B8\u306B
27
+ \u300C\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u300D\u304C\u4ED8\u304F\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002--result \u3067\u63A2\u3059\u3068\u304D\u306F --all \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002
28
+
29
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u9805\u76EE\uFF08user_id / user_agent \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002
30
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
31
+
32
+ <\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002
33
+
34
+ `+RECORDING_HELP+"\n\n"+LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--from",summary:"\u3053\u306E\u65E5\u6642\u4EE5\u964D\uFF08\u65E5\u4ED8\u3060\u3051\u306A\u3089\u65E5\u672C\u6642\u9593\u306E\u305D\u306E\u65E5\u306E 0:00\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8|\u65E5\u6642>"},{name:"--to",summary:"\u3053\u306E\u65E5\u6642\u4EE5\u524D\uFF08\u65E5\u4ED8\u3060\u3051\u306A\u3089\u65E5\u672C\u6642\u9593\u306E\u305D\u306E\u65E5\u306E\u7D42\u308F\u308A\uFF09",takesValue:true,placeholder:"<\
35
+ \u65E5\u4ED8|\u65E5\u6642>"},{name:"--user",summary:"\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u5C65\u6B74\u3060\u3051\uFF08--ip \u3068\u4F75\u7528\u4E0D\u53EF\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"--ip",summary:"\u3053\u306E IP \u30A2\u30C9\u30EC\u30B9\u304B\u3089\u306E\u5C65\u6B74\u3060\u3051\uFF08\u5B8C\u5168\u4E00\u81F4\u30FB--user \u3068\u4F75\u7528\u4E0D\u53EF\uFF09",takesValue:true,placeholder:"<IP\u30A2\u30C9\u30EC\u30B9>"},{name:"--result",summary:`\u7D50\u679C\u3067\
36
+ \u7D5E\u308A\u8FBC\u3080\uFF08${RESULTS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u7D50\u679C>"}],paging:listPaging,forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,"list");const ref=nonEmpty(input.flags,"--user");if(ref===void 0)return input;if(input.flags.has("--ip")){throw new UsageError("--user \u3068 --ip \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","\u30B5\u30FC\u30D0\u306F\u3069\u3061\u3089\u304B\u4E00\u65B9\u306E\u7D22\u5F15\u3057\u304B\u5F15\u304D\u307E\u305B\u3093\u3002\u7247\u65B9\u3067\u53D6\u3063\u3066\u304B\u3089 --output json \u3068 --query \u3067\u7D5E\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}
37
+ const user=await ctx.resolver.user(ref,"--user");return withResolved(input,{userId:user.id})},plan(input){noArgs(input,"list");const byUser=input.flags.has("--user");const ip=nonEmpty(input.flags,"--ip")?.trim();if(byUser&&ip!==void 0){throw new UsageError("--user \u3068 --ip \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","\u30B5\u30FC\u30D0\u306F\u3069\u3061\u3089\u304B\u4E00\u65B9\u306E\u7D22\u5F15\u3057\u304B\u5F15\u304D\u307E\u305B\u3093\u3002")}if((byUser||ip!==void 0)&&input.flags.has("\
38
+ --cursor")){throw new UsageError("--user / --ip \u3092\u4ED8\u3051\u305F\u4E00\u89A7\u306B\u306F\u7D9A\u304D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\uFF08--cursor \u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09",LIST_USAGE)}const from=input.flags.get("--from");const to=input.flags.get("--to");const fromUtc=from===void 0?void 0:toUtcBound(from,"--from");const toUtc=to===void 0?void 0:toUtcBound(to,"--to");if(fromUtc!==void 0&&toUtc!==void 0&&fromUtc>toUtc){throw new UsageError(`--f\
39
+ rom\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u3067\u3059`)}const limit=listLimit(input);return{method:"GET",path:PATH,query:{from:fromUtc,to:toUtc,user_id:byUser?requireResolved(input,"userId"):void 0,ip_address:ip,result:resultFilter(input),limit,cursor:nonEmpty(input.flags,"--cursor")}}},summarize:body=>listRows(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listRows(body),notes(body,input){if(!input.flags.has("--user")&&!input.flags.has("--ip"))return[];const limit=positiveInteger(
40
+ input.flags,"--limit")??DEFAULT_LIMIT;const count=isRecord(body)&&Array.isArray(body["histories"])?body["histories"].length:0;if(count===0&&UUID_RE.test(input.flags.get("--user")?.trim()??"")){return["--user \u306E ID \u306F\u30E6\u30FC\u30B6\u30FC\u306E\u5B9F\u5728\u3092\u78BA\u304B\u3081\u305A\u306B\u9001\u3063\u3066\u3044\u307E\u3059\u30020\u4EF6\u306A\u3089 ID \u306E\u8AA4\u308A\u3082\u7591\u3063\u3066\u304F\u3060\u3055\u3044\uFF08twp user get <ID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002"]}
41
+ if(count>=limit){return[`${count} \u4EF6\u3067\u4E0A\u9650\uFF08--limit ${limit}\uFF09\u306B\u5C4A\u304D\u307E\u3057\u305F\u3002\u3053\u308C\u3088\u308A\u53E4\u3044\u5C65\u6B74\u306F\u51FA\u3066\u3044\u307E\u305B\u3093\u3002--from / --to \u3067\u671F\u9593\u3092\u72ED\u3081\u3066\u304F\u3060\u3055\u3044\u3002`]}if(input.flags.has("--result")){return[`--result \u306F\u30B5\u30FC\u30D0\u304C\u65B0\u3057\u3044\u9806\u306B ${limit} \u4EF6\u3092\u53D6\u3063\u305F\u5F8C\u306B\u7D5E\u3063\u3066\u3044\u307E\u3059\u3002\u305D\u308C\u3088\u308A\u53E4\u3044\u8A72\u5F53\u5206\u306F\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`]}
42
+ return[]}};var statsOperation={name:"stats",summary:`\u76F4\u8FD1\u306E${LABEL}\u3092\u96C6\u8A08\u3059\u308B\uFF08\u7D50\u679C\u3054\u3068\u306E\u4EF6\u6570\u30FB\u30E6\u30FC\u30B6\u30FC\u6570\u30FBIP \u6570\u30FB\u6210\u529F\u7387\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:"twp login-history stats [--days <\u65E5\u6570>]",description:`\u76F4\u8FD1 --days \u65E5\uFF08\u65E2\u5B9A 7\u30FB\u6700\u5927 ${MAX_STATS_DAYS}\uFF09\u306E\u30ED\u30B0\u30A4\u30F3\u306E\u8A66\u884C\u3092\u3001\u7D50\u679C\u3054\u3068\u306B\u6570\u3048\u307E\u3059\u3002
43
+ \u26A0 \u30B5\u30FC\u30D0\u306F\u65B0\u3057\u3044\u9806\u306B ${STATS_SCAN_LIMIT.toLocaleString("en-US")} \u4EF6\u307E\u3067\u3057\u304B\u6570\u3048\u307E\u305B\u3093\u3002total_attempts \u304C ${STATS_SCAN_LIMIT.toLocaleString("en-US")} \u306B\u5C4A\u3044\u305F\u3089
44
+ \u5B9F\u969B\u3088\u308A\u5C11\u306A\u304F\u51FA\u3066\u3044\u308B\u306E\u3067\u3001twp login-history list --from <\u65E5\u4ED8> --all \u3067\u6570\u3048\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08stderr \u3067\u3082\u8A00\u3044\u307E\u3059\uFF09\u3002
45
+
46
+ `+RECORDING_HELP,flags:[{name:"--days",summary:`\u96C6\u8A08\u3059\u308B\u65E5\u6570\uFF081\u301C${MAX_STATS_DAYS}\u30FB\u65E2\u5B9A 7\uFF09`,takesValue:true,placeholder:"<\u65E5\u6570>"}],forbidden:FORBIDDEN,plan(input){noArgs(input,"stats");const days=positiveInteger(input.flags,"--days");if(days!==void 0&&days>MAX_STATS_DAYS){throw new UsageError(`--days \u306F ${MAX_STATS_DAYS} \u307E\u3067\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${days}\uFF09`,`\u5C65\u6B74\u306F ${LOGIN_HISTORY_RETENTION_DAYS}\
47
+ \u65E5\u3067\u6D88\u3048\u307E\u3059\u3002`)}return{method:"GET",path:`${PATH}/stats`,query:{days}}},summarize:statsRow,raw:statsRow,notes(body){const total=isRecord(body)?body["total_attempts"]:void 0;return typeof total==="number"&&total>=STATS_SCAN_LIMIT?[`\u30B5\u30FC\u30D0\u306F\u65B0\u3057\u3044\u9806\u306B ${STATS_SCAN_LIMIT} \u4EF6\u307E\u3067\u3057\u304B\u6570\u3048\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u96C6\u8A08\u306F\u5B9F\u969B\u3088\u308A\u5C11\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u6B63\u78BA\u306A\u4EF6\u6570\u306F twp login-history list --from <\u65E5\u4ED8> --all \u3067\u6570\u3048\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]:
48
+ []}};var loginHistoryDomain={name:"login-history",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\uFF08\u4E00\u89A7\u30FB\u96C6\u8A08\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",operations:[listOperation,statsOperation]};export{STATS_SCAN_LIMIT,loginHistoryDomain,toUtcBound};
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{checkOutTarget}from"./chunk-ZTDDOUS4.js";import"./chunk-Y5XM6W3S.js";import"./chunk-GFLGXGWE.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import{contentTypeFor,inspectLocalFile}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";
3
+ import{checkOutTarget}from"./chunk-QK4KT7ZP.js";import"./chunk-IAPKSXMG.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-SZOEBJGI.js";import{contentTypeFor,inspectLocalFile}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";
4
4
  import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
5
- import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-C6U2CGX7.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
5
+ import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-BHVUGTHP.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
6
6
  import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
7
7
  "string"||typeof name!=="string"||parentId!==null&&parentId!==void 0&&typeof parentId!=="string"){throw new ApiResponseError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u884C\u306B id / name / parent_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const path2=typeof row["path"]==="string"?row["path"]:`/${name}`;return{id,name,parentId:parentId??null,path:path2}})}function resolveFolderPath(rows,input){
8
8
  const segments=folderPathSegments(input);const ids=new Set(rows.map(row=>row.id));const isTop=row=>row.parentId===null||!ids.has(row.parentId);let level=rows.filter(isTop);let walked="";for(const[index,segment]of segments.entries()){const hits=level.filter(row=>row.name===segment);const here=walked===""?"\u6700\u4E0A\u4F4D":`\u300C${walked}\u300D\u306E\u4E0B`;if(hits.length===0){const names=level.map(row=>row.name);throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${input}\
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-Y5XM6W3S.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-IAPKSXMG.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-ZTDDOUS4.js";import"./chunk-Y5XM6W3S.js";import"./chunk-GFLGXGWE.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import"./chunk-RX5HWI4L.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";
4
- import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-C6U2CGX7.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-QK4KT7ZP.js";import"./chunk-IAPKSXMG.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-SZOEBJGI.js";import"./chunk-RX5HWI4L.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";
4
+ import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-BHVUGTHP.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
5
5
  import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames}from"./chunk-H7XVCIL7.js";import"./chunk-7PTFN3H7.js";import"./chunk-QLENN5DD.js";import"./chunk-MPGJU5A7.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";
3
+ import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames}from"./chunk-ARSMSBCO.js";import"./chunk-ZFSQJAYZ.js";import"./chunk-QLENN5DD.js";import"./chunk-MPGJU5A7.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-M36DAHMH.js";
4
4
  import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ScheduleApi,flag}from"./chunk-6M5NUVJJ.js";import{DEFAULT_SKILL_DIR,fetchList,fetchSkill}from"./chunk-MYBIPHZ7.js";import{DEFAULT_CHARTER_FILE}from"./chunk-LH4AZKLT.js";import{apiExit,errorDetail,pickNumber,readUtf8Strict}from"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-TTST7UDR.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";
3
+ import{DEFAULT_CHARTER_FILE}from"./chunk-LH4AZKLT.js";import{ScheduleApi,flag}from"./chunk-6M5NUVJJ.js";import{DEFAULT_SKILL_DIR,fetchList,fetchSkill}from"./chunk-MYBIPHZ7.js";import{apiExit,errorDetail,pickNumber,readUtf8Strict}from"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-TTST7UDR.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";
4
4
  import"./chunk-UZUV5FYG.js";import"./chunk-RMFLTSOV.js";import{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE}from"./chunk-VFPY2A23.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var KIND_LABEL={broken_ref:"\u58CA\u308C\u305F\u53C2\u7167",missing_plan_skill:"\u8A08\u753B\u30B9\u30AD\u30EB\u304C\u7121\u3044",missing_release_recovery:"\u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306E\u30B9\u30AD\u30EB\u304C\u7121\u3044",missing_follow_up:"\u5F8C\u7D9A\u6295\u5165\u306E\u30B9\u30AD\u30EB\u304C\u7121\u3044",missing_schedule_skill:"\u5B9A\u671F\u67A0\u306E\u30B9\u30AD\u30EB\u304C\u7121\u3044",stale_path:"\u53E4\u3044\u30D1\u30B9"};function defaultReadConfig(p){try{return readUtf8Strict(
5
5
  p)}catch(e){if(e.code==="ENOENT")return null;throw e}}function escapeRe(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function clip(line){const t=line.trim();return t.length>200?`${t.slice(0,200)}\u2026`:t}function referencesInLine(line,prefix){const p=escapeRe(prefix);const out=[];const slash=prefix===""?/^[ \t]*\/([a-z][a-z0-9-]*)(?=[ \t]|$)/g:new RegExp(`(?<![A-Za-z0-9_.~:/-])\\/(${p}[a-z0-9][a-z0-9-]*)(?![A-Za-z0-9_/*-])`,"g");for(const m of line.matchAll(slash))out.push(m[1]??"");if(prefix!==
6
6
  ""){const prose=new RegExp(`\u30B9\u30AD\u30EB\\s*\`\\/?(${p}[a-z][a-z0-9-]*)\``,"g");for(const m of line.matchAll(prose))out.push(m[1]??"")}return out.filter(n=>n!=="")}var STALE_PATHS=[new RegExp(`${escapeRe(DEFAULT_SKILL_DIR)}/`),new RegExp(`\\]\\([^)]*${escapeRe(DEFAULT_CHARTER_FILE)}[^)]*\\)`)];function invokedName(invocation){return invocation.trim().replace(/^\//,"").split(/\s+/)[0]??""}function byName(a,b){return a<b?-1:a>b?1:0}function checkCorpus(input){const problems=[];const referenced=new Set;
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-T3PYPLTG.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-H7XVCIL7.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-AVOZLZA5.js";import"./chunk-GLOGPK4Y.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-7PTFN3H7.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-U6KPYJTM.js";import"./chunk-23MEOBJF.js";
3
+ import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-T3PYPLTG.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-ARSMSBCO.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-3BP2257G.js";import"./chunk-GLOGPK4Y.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-ZFSQJAYZ.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-U6KPYJTM.js";import"./chunk-23MEOBJF.js";
4
4
  import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-UVCJXHWN.js";import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-MPGJU5A7.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-M36DAHMH.js";
5
5
  import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,
6
6
  UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\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")}
@@ -281,22 +281,32 @@ async execute(input,ctx){const userId=requireResolved(input,"userId");const deta
281
281
  filter(row=>row.license_assigned&&(row.level===null||row.level==="none"));return stale.length===0?[]:[`\u6A29\u9650\u304C none\uFF08\u307E\u305F\u306F\u5B9A\u7FA9\u306B\u7121\u3044\uFF09\u306A\u306E\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u5F53\u304C\u6B8B\u3063\u3066\u3044\u308B\u6A5F\u80FD: ${stale.map(row=>row.feature_name).join("\u30FB")}`]}};var userPermissionResource={name:"permission",summary:"\u6A5F\u80FD\u6A29\u9650\uFF081\u4EBA\u306E\u4E00\u89A7\u30FB\u5909\u66F4\uFF0FCSV \u4E00\u62EC\u3002\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u5F53\u30FB\u89E3\u9664\u306F\u30B5\u30FC\u30D0\u304C\u9023\u52D5\uFF09",
282
282
  operations:[listOperation2,updateOperation2]};var LIST_COLUMNS3=["user_id","user_name","email","employee_code","department_name","position_name","role","display_flg"];var GET_COLUMNS=["user_id","user_name","user_name_kana","email","employee_code","role","auth_type","hire_date","is_locked","display_flg","memberlist_flg","org_chart_flg","dashboard_flg"];var EMPLOYMENT_TYPES=["employee","partner"];var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userObject(body){if(!isRecord(body)||typeof body["user_id"]!==
283
283
  "string"){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u8A73\u7D30\u306E\u5FDC\u7B54\u306B user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const rest={...body};delete rest["result"];return rest}var TEXT_FIELDS=[{flag:"--name",key:"user_name",label:"\u6C0F\u540D",maxChars:255,summary:"\u6C0F\u540D",placeholder:"<\u6C0F\u540D>"},{flag:"--kana",key:"user_name_kana",label:"\u30D5\u30EA\u30AC\u30CA",maxChars:255,
284
- summary:"\u6C0F\u540D\u306E\u30D5\u30EA\u30AC\u30CA",placeholder:"<\u30D5\u30EA\u30AC\u30CA>"},{flag:"--email",key:"login_id",label:"\u30ED\u30B0\u30A4\u30F3ID",maxChars:255,summary:"\u30ED\u30B0\u30A4\u30F3ID\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF09",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--employee-code",key:"employee_code",label:"\u793E\u54E1\u756A\u53F7",maxChars:50,summary:"\u793E\u54E1\u756A\u53F7",placeholder:"<\u793E\u54E1\u756A\u53F7>"}];var DISPLAY_FIELDS=[
285
- {flag:"--display",key:"display_flg",summary:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u30FB\u9078\u629E\u80A2\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--memberlist",key:"memberlist_flg",summary:"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--org-chart",key:"org_chart_flg",summary:"\u7D44\u7E54\u56F3\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--dashboard",key:"dashboard_flg",summary:"\u30C0\u30C3\u30B7\
286
- \u30E5\u30DC\u30FC\u30C9\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"}];var ROLE_TO_TYPE={user:"0",admin:"1"};var AUTH_TYPES=["all","password","oauth","disabled"];var PASSWORD_MIN_CHARS=8;var PASSWORD_FILE_MAX_BYTES=4096;var PASSWORD_FILE_FLAG={name:"--password-file",summary:"\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var ROLE_FLAG={name:"--role",summary:"\
287
- \u7A2E\u5225\uFF08admin: \u7BA1\u7406\u8005 / user: \u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|user>"};var HIRE_DATE_FLAG={name:"--hire-date",summary:"\u5165\u793E\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var AUTH_TYPE_FLAG={name:"--auth-type",summary:"\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF08all / password / oauth / disabled\uFF1D\u5931\u52B9\u30FB\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>"};var FIELD_FLAGS=[...TEXT_FIELDS.
288
- map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:f.placeholder})),ROLE_FLAG,HIRE_DATE_FLAG,...DISPLAY_FIELDS.map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:"<true|false>"})),PASSWORD_FILE_FLAG];var PASSWORD_HELP="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u30B3\u30DE\u30F3\u30C9\u884C\u306B\u7F6E\u3051\u307E\u305B\u3093\uFF08\u30B7\u30A7\u30EB\u306E\u5C65\u6B74\u3068\u30D7\u30ED\u30BB\u30B9\u4E00\u89A7\u306B\u6B8B\u308B\u305F\u3081\uFF09\u3002\n--password-file <\u30D1\u30B9> \u3067\u6E21\u3059\u304B\u3001--password-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u672B\u5C3E\u306E\u6539\u884C1\u3064\u306F\u53D6\u308A\u9664\u304D\u307E\u3059\uFF08echo \u3067\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u3067\u3082\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u30028\u6587\u5B57\u4EE5\u4E0A\u3067\u3059\u3002";
284
+ summary:"\u6C0F\u540D\u306E\u30D5\u30EA\u30AC\u30CA",placeholder:"<\u30D5\u30EA\u30AC\u30CA>"},{flag:"--email",key:"login_id",label:"\u30ED\u30B0\u30A4\u30F3ID",maxChars:255,summary:"\u30ED\u30B0\u30A4\u30F3ID\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF09",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--employee-code",key:"employee_code",label:"\u793E\u54E1\u756A\u53F7",maxChars:50,summary:"\u793E\u54E1\u756A\u53F7",placeholder:"<\u793E\u54E1\u756A\u53F7>"},{flag:"--\
285
+ two-factor-tel",key:"two_factor_tel",label:"\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u7528\u306E\u96FB\u8A71\u756A\u53F7",maxChars:20,summary:"\u4E8C\u6BB5\u968E\u8A8D\u8A3C\uFF08SMS\uFF09\u306E\u9001\u308A\u5148\u96FB\u8A71\u756A\u53F7",placeholder:"<\u96FB\u8A71\u756A\u53F7>"},{flag:"--employee-identifier",key:"employee_identifier",label:"\u793E\u54E1\u8B58\u5225\u5B50",maxChars:255,summary:"\u793E\u54E1\u8B58\u5225\u5B50\uFF08\u4EBA\u6750\u60C5\u5831\uFF09",placeholder:"<\u8B58\u5225\u5B50>"},{flag:"--\
286
+ personal-email",key:"personal_email",label:"\u500B\u4EBA\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",maxChars:255,summary:"\u500B\u4EBA\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--personal-tel",key:"personal_tel",label:"\u500B\u4EBA\u96FB\u8A71\u756A\u53F7",maxChars:20,summary:"\u500B\u4EBA\u96FB\u8A71\u756A\u53F7",placeholder:"<\u96FB\u8A71\u756A\u53F7>"},{flag:"--emergency-name",key:"emergency_contact_name",label:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u6C0F\u540D",
287
+ maxChars:255,summary:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u6C0F\u540D",placeholder:"<\u6C0F\u540D>"},{flag:"--emergency-address",key:"emergency_contact_address",label:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u4F4F\u6240",maxChars:1e3,summary:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u4F4F\u6240",placeholder:"<\u4F4F\u6240>"},{flag:"--emergency-tel",key:"emergency_contact_tel",label:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u96FB\u8A71\u756A\u53F7",maxChars:50,summary:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u96FB\u8A71\u756A\u53F7",
288
+ placeholder:"<\u96FB\u8A71\u756A\u53F7>"},{flag:"--emergency-relationship",key:"emergency_contact_relationship",label:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u7D9A\u67C4",maxChars:255,summary:"\u7DCA\u6025\u9023\u7D61\u5148\u306E\u7D9A\u67C4",placeholder:"<\u7D9A\u67C4>"}];var PERMISSION_FIELDS=[{flag:"--punch-correction",key:"punch_correction_flg",summary:"\u6253\u523B\u4FEE\u6B63\u6A29\u9650\uFF08true / false\uFF09"},{flag:"--cost-manager",key:"cost_manager_flg",summary:"\u30B3\u30B9\u30C8\u7BA1\u7406\u8005\uFF08true / false\uFF09"},
289
+ {flag:"--analyst",key:"analyst_flg",summary:"\u5206\u6790\u8005\uFF08true / false\uFF09"}];var TWO_FACTOR_TYPES={none:"0",email:"1",sms:"2"};var CLEARABLE={kana:"user_name_kana","employee-code":"employee_code","two-factor-tel":"two_factor_tel","employee-identifier":"employee_identifier","personal-email":"personal_email","personal-tel":"personal_tel","emergency-name":"emergency_contact_name","emergency-address":"emergency_contact_address","emergency-tel":"emergency_contact_tel","emergency-relatio\
290
+ nship":"emergency_contact_relationship","hire-date":"hire_date"};function lookup(table,key){return Object.hasOwn(table,key)?table[key]:void 0}var SENSITIVE_BODY="\u500B\u4EBA\u9023\u7D61\u5148\u30FB\u7DCA\u6025\u9023\u7D61\u5148\u3092\u542B\u307F\u3046\u308B";var DISPLAY_FIELDS=[{flag:"--display",key:"display_flg",summary:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u30FB\u9078\u629E\u80A2\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--memberlist",key:"memberlist_flg",summary:"\u30E1\
291
+ \u30F3\u30D0\u30FC\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--org-chart",key:"org_chart_flg",summary:"\u7D44\u7E54\u56F3\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--dashboard",key:"dashboard_flg",summary:"\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"}];var ROLE_TO_TYPE={user:"0",admin:"1"};var AUTH_TYPES=["all","password","oauth","disabled"];var PASSWORD_MIN_CHARS=8;var PASSWORD_FILE_MAX_BYTES=4096;
292
+ var PASSWORD_FILE_FLAG={name:"--password-file",summary:"\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var ROLE_FLAG={name:"--role",summary:"\u7A2E\u5225\uFF08admin: \u7BA1\u7406\u8005 / user: \u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|user>"};var HIRE_DATE_FLAG={name:"--hire-date",summary:"\u5165\u793E\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"\
293
+ <YYYY-MM-DD>"};var AUTH_TYPE_FLAG={name:"--auth-type",summary:"\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF08all / password / oauth / disabled\uFF1D\u5931\u52B9\u30FB\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>"};var TWO_FACTOR_FLAG={name:"--two-factor",summary:"\u4E8C\u6BB5\u968E\u8A8D\u8A3C\uFF08none: \u306A\u3057 / email: \u30E1\u30FC\u30EB / sms: SMS\uFF09",takesValue:true,placeholder:"<none|email|sms>"};var CLEAR_FLAG={name:"--clear",summary:`\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08${Object.
294
+ keys(CLEARABLE).join(" / ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09`,takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var FIELD_FLAGS=[...TEXT_FIELDS.map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:f.placeholder})),ROLE_FLAG,HIRE_DATE_FLAG,TWO_FACTOR_FLAG,...PERMISSION_FIELDS.map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:"<true|false>"})),...DISPLAY_FIELDS.map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:"\
295
+ <true|false>"})),PASSWORD_FILE_FLAG];var PASSWORD_HELP="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u30B3\u30DE\u30F3\u30C9\u884C\u306B\u7F6E\u3051\u307E\u305B\u3093\uFF08\u30B7\u30A7\u30EB\u306E\u5C65\u6B74\u3068\u30D7\u30ED\u30BB\u30B9\u4E00\u89A7\u306B\u6B8B\u308B\u305F\u3081\uFF09\u3002\n--password-file <\u30D1\u30B9> \u3067\u6E21\u3059\u304B\u3001--password-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u672B\u5C3E\u306E\u6539\u884C1\u3064\u306F\u53D6\u308A\u9664\u304D\u307E\u3059\uFF08echo \u3067\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u3067\u3082\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u30028\u6587\u5B57\u4EE5\u4E0A\u3067\u3059\u3002";
289
296
  var PASSWORD_HINT="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F --password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3059\u304B\u3001\u5024\u306B\u300C-\u300D\u3092\u6E21\u3057\u3066\u6A19\u6E96\u5165\u529B\u304B\u3089\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF088\u6587\u5B57\u4EE5\u4E0A\uFF09\u3002";var DISPLAY_HELP="--display / --memberlist / --org-chart / --dashboard \u306F true \u304B false \u3067\u3059\uFF08\u753B\u9762\u306E\u300C\u8868\u793A\u8A2D\u5B9A\u300D\uFF09\u3002";
290
- function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function roleType(input){const raw=input.flags.get("--role");if(raw===void 0)return void 0;const type=ROLE_TO_TYPE[raw.trim().toLowerCase()];if(type===void 0){throw new UsageError(`--role \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F admin\uFF08\u7BA1\u7406\u8005\uFF09/ user\uFF08\u4E00\u822C\uFF09\u3067\u3059\u3002")}
291
- return type}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){const file=input.flags.get(PASSWORD_FILE_FLAG.
292
- name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
297
+ var PROFILE_HELP="--two-factor \u306F none\uFF08\u306A\u3057\uFF09/ email\uFF08\u30E1\u30FC\u30EB\uFF09/ sms\uFF08SMS\uFF09\u3067\u3059\uFF08\u753B\u9762\u306E\u300C\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u300D\uFF09\u3002\n sms \u306B\u3059\u308B\u3068\u304D\u306F --two-factor-tel \u306B\u9001\u308A\u5148\u306E\u96FB\u8A71\u756A\u53F7\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u672A\u767B\u9332\u3060\u3068\u30B3\u30FC\u30C9\u304C\u5C4A\u304D\u307E\u305B\u3093\uFF09\u3002\n--punch-correction\uFF08\u6253\u523B\u4FEE\u6B63\u6A29\u9650\uFF09/ --cost-manager\uFF08\u30B3\u30B9\u30C8\u7BA1\u7406\u8005\uFF09/ --analyst\uFF08\u5206\u6790\u8005\uFF09\u306F true \u304B false \u3067\u3059\u3002\n\u500B\u4EBA\u9023\u7D61\u5148\uFF08--personal-email / --personal-tel\uFF09\u3068\u7DCA\u6025\u9023\u7D61\u5148\uFF08--emergency-name / --emergency-address /\n--emergency-tel / --emergency-relationship\uFF09\u3001--employee-identifier\uFF08\u793E\u54E1\u8B58\u5225\u5B50\uFF09\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u500B\u4EBA\u9023\u7D61\u5148\u30FB\u7DCA\u6025\u9023\u7D61\u5148\u306E\u5024\u306F\u7D50\u679C\u306B\u3082 --dry-run / --debug \u306E\u672C\u6587\u306B\u3082\u51FA\u3057\u307E\u305B\u3093\uFF08\u753B\u9762\u5171\u6709\u3084\u30ED\u30B0\u306B\u6B8B\u308B\u305F\u3081\u3002\n --dry-run \u3067\u9001\u308B\u5024\u307E\u3067\u78BA\u304B\u3081\u308B\u3068\u304D\u306F --no-redact\
298
+ \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function roleType(input){const raw=input.flags.get("--role");if(raw===void 0)return void 0;const type=lookup(ROLE_TO_TYPE,raw.trim().toLowerCase());if(type===void 0){throw new UsageError(`--role \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F admin\uFF08\u7BA1\u7406\u8005\uFF09/ user\uFF08\u4E00\u822C\uFF09\u3067\u3059\u3002")}
299
+ return type}function twoFactorType(input){const raw=input.flags.get(TWO_FACTOR_FLAG.name);if(raw===void 0)return void 0;const type=lookup(TWO_FACTOR_TYPES,raw.trim().toLowerCase());if(type===void 0){throw new UsageError(`--two-factor \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${Object.keys(TWO_FACTOR_TYPES).join(" / ")} \u3067\u3059\u3002`)}return type}function clearedKeys(input){const keys=[];for(const raw of repeatedValues(
300
+ input,CLEAR_FLAG.name)){const item=raw.trim().toLowerCase().replace(/^--/,"");const key=lookup(CLEARABLE,item);if(key===void 0){throw new UsageError(`--clear \u306B\u6E21\u305B\u306A\u3044\u9805\u76EE\u3067\u3059: ${raw}`,`\u6E21\u305B\u308B\u9805\u76EE: ${Object.keys(CLEARABLE).join(" / ")}`)}if(input.flags.has(`--${item}`)){throw new UsageError(`--${item} \u3068 --clear ${item} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u5024\u3092\u5909\u3048\u308B\u304B\u3001\u6D88\u3059\u304B\u306E\u3069\u3061\u3089\u304B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
301
+ if(!keys.includes(key))keys.push(key)}return keys}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){
302
+ const file=input.flags.get(PASSWORD_FILE_FLAG.name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
293
303
  const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--password\
294
304
  -file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \u306E\u30D5\
295
305
  \u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){const value=boundedText(
296
- input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;for(const field of DISPLAY_FIELDS){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.key]=value}return body}function writeAck2(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\
297
- \u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["featur\
298
- e"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-file <\
299
- \u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
306
+ input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;const twoFactor=twoFactorType(input);if(twoFactor!==void 0)body["two_factor_authentication_type"]=twoFactor;for(const field of[...PERMISSION_FIELDS,...DISPLAY_FIELDS]){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.
307
+ key]=value}return body}function writeAck2(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===
308
+ 0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["feature"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
309
+ usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-file <\u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--two-factor none|email|sms] [--punch-correction true|false] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
300
310
  \u8868\u793A\u30D5\u30E9\u30B0\u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08\u3059\u3079\u3066 true\uFF1D\u8868\u793A\u3059\u308B\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
301
311
  \u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3067\u4ED8\u4E0E\u3055\u308C\u307E\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u6A5F\u80FD\u306F\u4ED8\u4E0E\u3055\u308C\u305A\u3001stderr \u306B\u51FA\u307E\u3059\uFF09\u3002
302
312
 
@@ -304,12 +314,16 @@ ${PASSWORD_HELP}
304
314
 
305
315
  ${DISPLAY_HELP}
306
316
 
307
- \u4F5C\u6210\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002\u7D9A\u3051\u3066 twp user get <ID> \u3067\u5185\u5BB9\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user create \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:FIELD_FLAGS,async prepare(input){if(input.args.length>0){throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
308
- args.join(" ")}`,"twp user create help")}const body=userFields(input);for(const[flag,key]of[["--name","user_name"],["--email","login_id"]]){if(body[key]===void 0)throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp user create help")}if(!input.flags.has(PASSWORD_FILE_FLAG.name)){throw new UsageError("--password-file \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",PASSWORD_HINT)}const password=await readPassword(input,"twp user create help");return withResolved(
309
- input,{password})},plan(input){const body=userFields(input);if(body["type"]===void 0)body["type"]=ROLE_TO_TYPE["user"];return{method:"POST",path:"/api/v2/admin/users",body:{...body,password:requireResolved(input,"password")}}},plannedNotes:input=>input.flags.has("--role")?[]:["--role \u672A\u6307\u5B9A\u306E\u305F\u3081\u3001\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002"],summarize:body=>pick(writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),
310
- ["user_id","message"]),raw:body=>writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),notes:body=>licenseNotes(body)};var UPDATE_FLAGS=[...FIELD_FLAGS,AUTH_TYPE_FLAG,USER_REF_FLAG];var updateOperation3={name:"update",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u66F4\u65B0\u3059\u308B\uFF08\u5931\u52B9\u3092\u542B\u3080\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user update <\u30E6\u30FC\u30B6\u30FC> [--auth-type all|password|oauth|disabled] [--display true|false] [--memberlist true|false] [--or\
311
- g-chart true|false] [--dashboard true|false] [--name <\u6C0F\u540D>] \u2026",description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
317
+ ${PROFILE_HELP}
318
+
319
+ \u4F5C\u6210\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002\u7D9A\u3051\u3066 twp user get <ID> \u3067\u5185\u5BB9\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user create \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",sensitiveBody:SENSITIVE_BODY,flags:FIELD_FLAGS,async prepare(input){if(input.args.length>0){throw new UsageError(
320
+ `create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user create help")}const body=userFields(input);for(const[flag,key]of[["--name","user_name"],["--email","login_id"]]){if(body[key]===void 0)throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp user create help")}if(body["two_factor_authentication_type"]===TWO_FACTOR_TYPES["sms"]&&body["two_factor_tel"]===void 0){throw new UsageError("--two-factor sms \u306B\u306F \
321
+ --two-factor-tel \u3082\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u306E\u30B3\u30FC\u30C9\u3092 SMS \u3067\u9001\u308B\u96FB\u8A71\u756A\u53F7\u3067\u3059\u3002")}if(!input.flags.has(PASSWORD_FILE_FLAG.name)){throw new UsageError("--password-file \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",PASSWORD_HINT)}const password=await readPassword(input,"twp user create help");return withResolved(input,{password})},plan(input){const body=userFields(input);
322
+ if(body["type"]===void 0)body["type"]=ROLE_TO_TYPE["user"];return{method:"POST",path:"/api/v2/admin/users",body:{...body,password:requireResolved(input,"password")}}},plannedNotes:input=>input.flags.has("--role")?[]:["--role \u672A\u6307\u5B9A\u306E\u305F\u3081\u3001\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002"],summarize:body=>pick(writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),["user_id","message"]),raw:body=>writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),
323
+ notes:body=>licenseNotes(body)};var UPDATE_FLAGS=[...FIELD_FLAGS,AUTH_TYPE_FLAG,CLEAR_FLAG,USER_REF_FLAG];var updateOperation3={name:"update",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u66F4\u65B0\u3059\u308B\uFF08\u5931\u52B9\u3092\u542B\u3080\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user update <\u30E6\u30FC\u30B6\u30FC> [--auth-type all|password|oauth|disabled] [--display true|false] [--memberlist true|false] [--org-chart true|false] [--dashboard true|false] [--name <\u6C0F\u540D>] [--two-factor none\
324
+ |email|sms] [--clear <\u9805\u76EE>] \u2026",description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
312
325
  \u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
326
+ \u5024\u3092\u6D88\u3059\u3068\u304D\u306F --clear <\u9805\u76EE> \u3092\u4F7F\u3044\u307E\u3059\uFF08${Object.keys(CLEARABLE).join(" / ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09\u3002
313
327
 
314
328
  \u9000\u793E\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u3001\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092 disabled\uFF08\u753B\u9762\u306E\u300C\u7121\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u300D\uFF09\u306B\u3057\u3066\u5931\u52B9\u3055\u305B\u307E\u3059\u3002
315
329
  \u5931\u52B9\u3055\u305B\u308B\u3068\u3001\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306F\u65B0\u3057\u304F\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u305A\u3001\u767A\u884C\u6E08\u307F\u306E\u30C8\u30FC\u30AF\u30F3\u3068 API \u30AD\u30FC\u3082\u30B5\u30FC\u30D0\u304C\u5931\u52B9\u3055\u305B\u307E\u3059\u3002
@@ -325,13 +339,24 @@ ${USER_REF_HELP}
325
339
 
326
340
  ${PASSWORD_HELP}
327
341
 
328
- ${DISPLAY_HELP}`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user update \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:UPDATE_FLAGS,async prepare(input,ctx){const changed=[...FIELD_FLAGS,AUTH_TYPE_FLAG].some(flag=>input.flags.has(flag.name));if(!changed){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u6307\u5B9A\u3067\u304D\u308B\u9805\u76EE: ${[
329
- ...FIELD_FLAGS,AUTH_TYPE_FLAG].map(flag=>flag.name).join("\u3001")}`)}userFields(input);authType(input);const password=await readPassword(input,"twp user update help");const resolved=await prepareUser(input,ctx,"twp user update help");return password===void 0?resolved:withResolved(resolved,{password})},plan(input){const userId=requireResolved(input,"userId");const body=userFields(input);const auth=authType(input);if(auth!==void 0)body["auth_type"]=auth;const password=input.resolved?.["password"];
330
- if(password!==void 0)body["password"]=password;return{method:"PUT",path:`/api/v2/admin/users/${userPath(input)}`,body:{user_id:userId,update_fields:Object.keys(body),...body}}},plannedNotes:input=>{if(authType(input)!=="disabled")return[];const ref=(input.args[0]??input.flags.get("--user")??"").trim().toLowerCase();const notes=["\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u5931\u52B9\u3055\u305B\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\u3002\u767A\u884C\u6E08\u307F\u306E\u30C8\u30FC\u30AF\u30F3\u30FBAPI \u30AD\u30FC\u3082\u30B5\u30FC\u30D0\u304C\u5931\u52B9\u3055\u305B\u307E\u3059\uFF09\u3002"];
331
- if(ref==="me")notes.push("\u5BFE\u8C61\u306F\u81EA\u5206\u81EA\u8EAB\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u3068\u3001\u3053\u306E\u3042\u3068 twp \u306E\u64CD\u4F5C\u3082\u30ED\u30B0\u30A4\u30F3\u3082\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002");return notes},summarize:body=>pick(writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),["message"]),raw:body=>writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),notes:body=>licenseNotes(body)};var userDomain={name:"user",summary:"\u30C6\
332
- \u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u5931\u52B9\u30FB\u62DB\u5F85\u30FB\u68DA\u5378\u30FB\u6A5F\u80FD\u6A29\u9650\uFF09\u3068\u6240\u5C5E\uFF08\u53C2\u7167\u30FB\u4ED8\u3051\u66FF\u3048\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\uFF09\u30FB\u30B9\u30AD\u30EB\u8A55\u4FA1\u30FB\u8CC7\u683C\u30FB\u7814\u4FEE\u5C65\u6B74\u30FB\u96C7\u7528\u5951\u7D04\u306E\u53C2\u7167",operations:[{name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08\u90E8\u7F72\u30FB\u5F79\
333
- \u8077\u30FB\u96C7\u7528\u533A\u5206\u30FB\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3081\u308B\uFF09",usage:"twp user list [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--employment employee|partner] [--keyword <\u8A9E>] [--include-hidden] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4E3B\u6240\u5C5E\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF09\u3002\n--employment \u306F employee\uFF08\u793E\u54E1\uFF09\u304B partner\uFF08\u30D1\u30FC\u30C8\u30CA\u30FC\uFF09\u3067\u3059\u3002\n--include-hidden \u306F\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\uFF08\u7D44\u7E54\
334
- \u7BA1\u7406\u8005\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\uFF09\u3002\n\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u4E00\u89A7\u306B\u542B\u307E\u308C\u307E\u3059\u3002\u5931\u52B9\u304B\u3069\u3046\u304B\u306F twp user get \u306E auth_type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\n\uFF08\u5168\u54E1\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092\u4E00\u89A7\u3067\u898B\u308B\u306A\u3089 twp user export --include-disabled\uFF09\u3002\n\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08user_id / user_name / email / employee_code / department_name / position_name / role / display_flg\uFF09\u3067\u3059\u3002\n\n"+
342
+ ${DISPLAY_HELP}
343
+
344
+ ${PROFILE_HELP}`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user update \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",sensitiveBody:SENSITIVE_BODY,flags:UPDATE_FLAGS,async prepare(input,ctx){const changed=[...FIELD_FLAGS,AUTH_TYPE_FLAG].some(flag=>input.flags.has(flag.name))||repeatedValues(input,CLEAR_FLAG.name).length>0;if(!changed){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
345
+ `\u6307\u5B9A\u3067\u304D\u308B\u9805\u76EE: ${[...FIELD_FLAGS,AUTH_TYPE_FLAG,CLEAR_FLAG].map(flag=>flag.name).join("\u3001")}`)}userFields(input);authType(input);const cleared=clearedKeys(input);if(input.flags.get(TWO_FACTOR_FLAG.name)?.trim().toLowerCase()==="sms"&&cleared.includes("two_factor_tel")){throw new UsageError("--two-factor sms \u3068 --clear two-factor-tel \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","SMS \u306E\u9001\u308A\u5148\u304C\u7121\u304F\u306A\u308A\u3001\u30B3\u30FC\u30C9\u304C\u5C4A\u304B\u306A\u304F\u306A\u308A\u307E\u3059\u3002")}
346
+ const password=await readPassword(input,"twp user update help");const resolved=await prepareUser(input,ctx,"twp user update help");return password===void 0?resolved:withResolved(resolved,{password})},plan(input){const userId=requireResolved(input,"userId");const body=userFields(input);for(const key of clearedKeys(input))body[key]=null;const auth=authType(input);if(auth!==void 0)body["auth_type"]=auth;const password=input.resolved?.["password"];if(password!==void 0)body["password"]=password;return{
347
+ method:"PUT",path:`/api/v2/admin/users/${userPath(input)}`,body:{user_id:userId,update_fields:Object.keys(body),...body}}},plannedNotes:input=>{const notes=[];if(twoFactorType(input)===TWO_FACTOR_TYPES["sms"]&&!input.flags.has("--two-factor-tel")){notes.push("SMS \u306E\u30B3\u30FC\u30C9\u306F\u767B\u9332\u6E08\u307F\u306E\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u7528\u306E\u96FB\u8A71\u756A\u53F7\u3078\u9001\u308A\u307E\u3059\u3002\u672A\u767B\u9332\u306A\u3089 --two-factor-tel \u3082\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
348
+ if(clearedKeys(input).includes("two_factor_tel")&&!input.flags.has(TWO_FACTOR_FLAG.name)){notes.push("\u4E8C\u6BB5\u968E\u8A8D\u8A3C\u304C SMS \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u3001\u96FB\u8A71\u756A\u53F7\u3092\u6D88\u3059\u3068\u30B3\u30FC\u30C9\u304C\u5C4A\u304B\u306A\u304F\u306A\u308A\u307E\u3059\uFF08--two-factor \u3082\u898B\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002")}if(authType(input)!=="disabled")return notes;const ref=(input.args[0]??input.flags.get("--user")??"").trim().
349
+ toLowerCase();notes.push("\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u5931\u52B9\u3055\u305B\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\u3002\u767A\u884C\u6E08\u307F\u306E\u30C8\u30FC\u30AF\u30F3\u30FBAPI \u30AD\u30FC\u3082\u30B5\u30FC\u30D0\u304C\u5931\u52B9\u3055\u305B\u307E\u3059\uFF09\u3002");if(ref==="me")notes.push("\u5BFE\u8C61\u306F\u81EA\u5206\u81EA\u8EAB\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u3068\u3001\u3053\u306E\u3042\u3068 twp \u306E\u64CD\u4F5C\u3082\u30ED\u30B0\u30A4\u30F3\u3082\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002");
350
+ return notes},summarize:body=>pick(writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),["message"]),raw:body=>writeAck2(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),notes:body=>licenseNotes(body)};var ADMIN_UNLOCK_DISABLED="\u7BA1\u7406\u8005\u306B\u3088\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u89E3\u9664\u306F\u7121\u52B9";var UNLOCK_COLUMNS=["id","email","name","login_failure_count","account_locked_at"];function unlockedUser(body){const ack=writeAck2(body,"\u30ED\u30C3\u30AF\u89E3\u9664");
351
+ const user=ack["user"];if(!isRecord(user)){throw new ApiResponseError("\u30ED\u30C3\u30AF\u89E3\u9664\u306E\u5FDC\u7B54\u306B user \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{message:ack["message"],...user}}var unlockOperation={name:"unlock",summary:"\u30ED\u30B0\u30A4\u30F3\u5931\u6557\u3067\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u306E\u30ED\u30C3\u30AF\u3092\u89E3\u9664\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
352
+ usage:"twp user unlock <\u30E6\u30FC\u30B6\u30FC>",description:"\u30ED\u30B0\u30A4\u30F3\u306E\u5931\u6557\u56DE\u6570\u304C\u4E0A\u9650\u3092\u8D85\u3048\u3066\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u3092\u3001\u3059\u3050\u306B\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u308B\u72B6\u614B\u3078\u623B\u3057\u307E\u3059\uFF08\u5931\u6557\u56DE\u6570\u3082 0 \u306B\u623B\u308A\u307E\u3059\uFF09\u3002\n\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u306F twp user get <\u30E6\u30FC\u30B6\u30FC> \u306E is_locked\uFF081 \u306A\u3089\u30ED\u30C3\u30AF\u4E2D\uFF09\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\n\n\u9001\u308B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u306E\u8A73\u7D30\u3092\u8AAD\u307F\u3001\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u304B\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u306A\u3044\u30E6\u30FC\u30B6\u30FC\u3092\u6307\u5B9A\u3057\u3066\u3082\u6B62\u3081\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306F\u6210\u529F\u3092\u8FD4\u3057\u3001\u5931\u6557\u56DE\u6570\u304C 0 \u306B\u623B\u308B\u3060\u3051\u3067\u3059\uFF09\u3002\n\n\u30C6\u30CA\u30F3\u30C8\u306E\u8A2D\u5B9A\uFF08\u7D44\u7E54\u8A2D\u5B9A\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u300C\u7BA1\u7406\u8005\u306B\u3088\u308B\u624B\u52D5\u89E3\u9664\u300D\uFF09\u304C\u7121\u52B9\u3060\u3068\u3001\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u3082\u89E3\u9664\u3067\u304D\u307E\u305B\u3093\u3002\n\u305D\u306E\u5834\u5408\u306F\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3001\u30ED\u30C3\u30AF\u6642\u9593\u306E\u7D4C\u904E\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\uFF08\u3069\u3061\u3089\u3082\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A\u3067\u6709\u52B9\u306A\u3068\u304D\uFF09\u3067\u89E3\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n"+
353
+ USER_REF_HELP,forbidden:body=>{const server=`${body?.error_description??""}${body?.message??""}`;if(server.includes(ADMIN_UNLOCK_DISABLED)){return"\u3053\u306E\u30C6\u30CA\u30F3\u30C8\u3067\u306F\u3001\u7BA1\u7406\u8005\u306B\u3088\u308B\u30ED\u30C3\u30AF\u89E3\u9664\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u7D44\u7E54\u8A2D\u5B9A\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u30ED\u30C3\u30AF\u300C\u7BA1\u7406\u8005\u306B\u3088\u308B\u624B\u52D5\u89E3\u9664\u300D\u3092\u6709\u52B9\u306B\u3059\u308B\u304B\u3001\u30ED\u30C3\u30AF\u6642\u9593\u306E\u7D4C\u904E\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u30EA\u30BB\u30C3\u30C8\uFF08\u3069\u3061\u3089\u3082\u30C6\u30CA\u30F3\u30C8\u8A2D\u5B9A\u3067\u6709\u52B9\u306A\u3068\u304D\uFF09\u3067\u89E3\u9664\u3057\u3066\u304F\u3060\u3055\u3044"}
354
+ return"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user unlock \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059"},flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user unlock help"),plan:input=>({method:"POST",path:`/api/v2/admin/users/${userPath(input,"/unlock")}`}),plannedNotes:()=>["\u9001\u308B\u524D\u306B GET /api/v2/admin/users/{id} \u3067\u30ED\u30C3\u30AF\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u307E\u3059\u3002"],
355
+ async preview(input,ctx){const user=userObject(await ctx.send({method:"GET",path:`/api/v2/admin/users/${userPath(input)}`}));const name=typeof user["user_name"]==="string"?user["user_name"]:String(user["user_id"]);const locked=user["is_locked"];if(locked==="1"||locked===true||locked===1){return{notes:[`${name} \u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30ED\u30C3\u30AF\u3092\u89E3\u9664\u3057\u307E\u3059\u3002`],warnings:[]}}if(locked==="0"||locked===false||locked===0){return{
356
+ notes:[`${name} \u306F\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u9001\u3063\u3066\u3082\u30ED\u30B0\u30A4\u30F3\u306E\u5931\u6557\u56DE\u6570\u304C 0 \u306B\u623B\u308B\u3060\u3051\u3067\u3059\u3002`],warnings:[]}}return{notes:[`${name} \u306E\u30ED\u30C3\u30AF\u72B6\u614B\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08is_locked \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u305D\u306E\u307E\u307E\u89E3\u9664\u3092\u9001\u308A\u307E\u3059\u3002`],
357
+ warnings:[]}},summarize:body=>pick(unlockedUser(body),["message",...UNLOCK_COLUMNS]),raw:body=>unlockedUser(body)};var userDomain={name:"user",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u5931\u52B9\u30FB\u30ED\u30C3\u30AF\u89E3\u9664\u30FB\u62DB\u5F85\u30FB\u68DA\u5378\u30FB\u6A5F\u80FD\u6A29\u9650\uFF09\u3068\u6240\u5C5E\uFF08\u53C2\u7167\u30FB\u4ED8\u3051\u66FF\u3048\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\uFF09\u30FB\u30B9\u30AD\u30EB\u8A55\u4FA1\u30FB\u8CC7\u683C\u30FB\u7814\u4FEE\u5C65\u6B74\u30FB\u96C7\u7528\u5951\u7D04\u306E\u53C2\u7167",
358
+ operations:[{name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\u30FB\u96C7\u7528\u533A\u5206\u30FB\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3081\u308B\uFF09",usage:"twp user list [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--employment employee|partner] [--keyword <\u8A9E>] [--include-hidden] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\
359
+ \u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4E3B\u6240\u5C5E\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF09\u3002\n--employment \u306F employee\uFF08\u793E\u54E1\uFF09\u304B partner\uFF08\u30D1\u30FC\u30C8\u30CA\u30FC\uFF09\u3067\u3059\u3002\n--include-hidden \u306F\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\uFF09\u3002\n\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u4E00\u89A7\u306B\u542B\u307E\u308C\u307E\u3059\u3002\u5931\u52B9\u304B\u3069\u3046\u304B\u306F twp user get \u306E auth_type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\n\uFF08\u5168\u54E1\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092\u4E00\u89A7\u3067\u898B\u308B\u306A\u3089 twp user export --include-disabled\uFF09\u3002\n\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08user_id / user_name / email / employee_code / department_name / position_name / role / display_flg\uFF09\u3067\u3059\u3002\n\n"+
335
360
  LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--department",summary:"\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"},{name:"--position",summary:"\u4E3B\u6240\u5C5E\u306E\u5F79\u8077\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u5F79\u8077>"},{name:"--employment",summary:"\u96C7\u7528\u533A\u5206\u3067\u7D5E\u308A\u8FBC\u3080\uFF08employee / partner\uFF09",
336
361
  takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--keyword",summary:"\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--include-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],paging:listPaging,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
337
362
  args.join(" ")}`,"twp user list help")}const employment=nonEmpty(input.flags,"--employment");if(employment!==void 0&&!EMPLOYMENT_TYPES.includes(employment)){throw new UsageError(`--employment \u306B\u300C${employment}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${EMPLOYMENT_TYPES.join(" / ")} \u3067\u3059`)}const resolved={};const department=nonEmpty(input.flags,"--department");if(department!==void 0)resolved["departmentId"]=(await ctx.resolver.
@@ -340,4 +365,4 @@ input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"
340
365
  v\uFF09\u306B\u306F\u500B\u4EBA\u9023\u7D61\u5148\u3092\u51FA\u3057\u307E\u305B\u3093\u3002--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user get \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user get help"),plan:input=>({method:"\
341
366
  GET",path:`/api/v2/admin/users/${userPath(input)}`}),summarize:body=>pick(userObject(body),GET_COLUMNS),raw:body=>userObject(body)},{name:"projects",summary:"\u6307\u5B9A\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C\u53C2\u753B\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user projects <\u30E6\u30FC\u30B6\u30FC>",description:"GET /api/v2/admin/users/{id}/projects\u3002\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\
342
367
  \u3059\u3002\nmember_start_date / member_end_date \u306F\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u53C2\u753B\u671F\u9593\u3067\u3059\uFF08start_date / end_date \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u671F\u9593\uFF09\u3002\n\u81EA\u5206\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u304F\u3066\u3082 twp project mine \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+USER_REF_HELP,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user projects \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF08\u81EA\u5206\u306E\u5206\u306F twp pro\
343
- ject mine\uFF09",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user projects help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input,"/projects")}`}),summarize:body=>assignedProjectItems(body).map(row=>pick(row,ASSIGNED_PROJECT_COLUMNS)),raw:body=>assignedProjectItems(body)},createOperation2,updateOperation3,exportOperation,...userHrOperations],subresources:[userAssignmentResource,userInviteResource,userPermissionResource]};export{userDomain};
368
+ ject mine\uFF09",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user projects help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input,"/projects")}`}),summarize:body=>assignedProjectItems(body).map(row=>pick(row,ASSIGNED_PROJECT_COLUMNS)),raw:body=>assignedProjectItems(body)},createOperation2,updateOperation3,unlockOperation,exportOperation,...userHrOperations],subresources:[userAssignmentResource,userInviteResource,userPermissionResource]};export{userDomain};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.90.0",
3
+ "version": "0.91.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-hours","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","faq","fiscal-year","goal-sheet","holiday","inquiry","invoice","job-title","knowledge","leave","license","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable","redmine","repo\
4
- rt","role-template","rounding-setting","seal-impression","search","segment","shift","skill","staffing-board","storage","supplier-payment","support","task","teams","user","user-contract-type","wiki","workchange","worker-agent","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,12 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var LOADERS={agent:async()=>(await import("./agent-IVJ5DCFU.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-XPV5PNE5.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-TTWTHKQJ.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-DIWOPBN6.js")).analysisDomain,announcement:async()=>(await import("./announcement-KOXBNHSN.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-XM26CE65.js")).attendanceDomainWithRecords,
4
- backlog:async()=>(await import("./backlog-LCGG5HRB.js")).backlogDomain,budget:async()=>(await import("./budget-OYBU4JFH.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-VKS2HENV.js")).businessPlaceDomain,company:async()=>(await import("./company-BW3U437C.js")).companyDomain,contract:async()=>(await import("./contract-2MANNVJT.js")).contractDomain,customer:async()=>(await import("./company-BW3U437C.js")).
5
- customerDomain,department:async()=>(await import("./department-LT3IM65L.js")).departmentDomain,deposit:async()=>(await import("./deposit-RYRCQ2U7.js")).depositDomain,estimate:async()=>(await import("./estimate-MMS326SE.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-KSZPNKBM.js")).evaluationDomain,expense:async()=>(await import("./expense-J7KGZKLH.js")).expenseDomain,faq:async()=>(await import("./faq-FJUCNBEB.js")).faqDomain,"fiscal-year":async()=>(await import("./fiscal-year-AFO5CWDN.js")).
6
- fiscalYearDomain,holiday:async()=>(await import("./holiday-KF2RVJSU.js")).holidayDomain,"goal-sheet":async()=>(await import("./evaluation-KSZPNKBM.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-IAAJYTXP.js")).inquiryDomain,invoice:async()=>(await import("./invoice-A3X3JF2H.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-PF4C6D6U.js")).jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-Q2YMI7I2.js")).knowledgeDomain,leave:async()=>(await import("./leave-2JNN3V3D.js")).
7
- leaveDomain,license:async()=>(await import("./license-MRXITCY7.js")).licenseDomain,media:async()=>(await import("./media-IQ2AIN67.js")).mediaDomain,meeting:async()=>(await import("./knowledge-2YF7CJKA.js")).meetingDomain,note:async()=>(await import("./knowledge-2YF7CJKA.js")).noteDomain,notification:async()=>(await import("./notification-4YXX6H3D.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-Z43D26SJ.js")).onedriveDomain,outlook:async()=>(await import("./outlook-ZRFSKSJ3.js")).
8
- outlookDomain,payee:async()=>(await import("./sales-master-VKS2HENV.js")).payeeDomain,position:async()=>(await import("./position-M2MEJBUK.js")).positionDomain,project:async()=>(await import("./project-EF2JKWVC.js")).projectDomain,prospect:async()=>(await import("./prospect-R6346ME5.js")).prospectDomain,purchase:async()=>(await import("./purchase-XCTYVG4N.js")).purchaseDomain,qualification:async()=>(await import("./skill-Z3DEECEK.js")).qualificationDomain,receivable:async()=>(await import("./receivable-FVLXVO2S.js")).
9
- receivableDomain,redmine:async()=>(await import("./redmine-EUFN35BT.js")).redmineDomain,report:async()=>(await import("./report-6Q3JV4DN.js")).reportDomain,"role-template":async()=>(await import("./evaluation-KSZPNKBM.js")).roleTemplateDomain,"rounding-setting":async()=>(await import("./sales-numbering-W2W57UPY.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-VKS2HENV.js")).sealImpressionDomain,search:async()=>(await import("./search-N45JL2PU.js")).searchDomain,
10
- segment:async()=>(await import("./segment-3MKCPWT2.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-VNAHH3R4.js")).shiftDomain,skill:async()=>(await import("./skill-Z3DEECEK.js")).skillDomain,"staffing-board":async()=>(await import("./staffing-board-LWUCHN7P.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-AUT2FZBR.js")).supplierPaymentDomain,support:async()=>(await import("./support-OUQWV5KP.js")).
11
- supportDomain,task:async()=>(await import("./task-7FOEUQJ6.js")).taskDomain,teams:async()=>(await import("./teams-FOR3O7KH.js")).teamsDomain,user:async()=>(await import("./user-TRXOR2Q6.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-MPZQ7Y2P.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-2YF7CJKA.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-VNAHH3R4.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-4E5P75SJ.js")).
12
- workerAgentDomain,workflow:async()=>(await import("./workflow-G7QZZPAX.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};