@tocca-systems/twp-cli 0.91.0 → 0.92.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.
Files changed (100) hide show
  1. package/CHANGELOG.public.md +6 -0
  2. package/README.md +43 -1
  3. package/dist/{agent-IVJ5DCFU.js → agent-SX7Z5BVN.js} +2 -2
  4. package/dist/{agent-loop-XPV5PNE5.js → agent-loop-QV7WHT7B.js} +2 -2
  5. package/dist/{ai-dispatch-FTZKQHEL.js → ai-dispatch-YPQGMOBK.js} +1 -1
  6. package/dist/{analysis-DIWOPBN6.js → analysis-6MPLKJUS.js} +2 -2
  7. package/dist/{announcement-KOXBNHSN.js → announcement-4ZK63ONY.js} +2 -2
  8. package/dist/{api-command-NPZNPEDG.js → api-command-K6I3WSI4.js} +4 -4
  9. package/dist/{app-DSTRIAS3.js → app-Z6NIVNWQ.js} +4 -4
  10. package/dist/{attendance-correct-XM26CE65.js → attendance-correct-X67ITW3J.js} +2 -2
  11. package/dist/{attendance-lists-VNAHH3R4.js → attendance-lists-RVJIQAAM.js} +2 -2
  12. package/dist/audit-log-ZGK7IVLD.js +53 -0
  13. package/dist/{backlog-LCGG5HRB.js → backlog-ZHON6HED.js} +1 -1
  14. package/dist/{budget-OYBU4JFH.js → budget-FEEEYUX2.js} +2 -2
  15. package/dist/{chunk-ARSMSBCO.js → chunk-3S52X3Z7.js} +1 -1
  16. package/dist/{chunk-MPGJU5A7.js → chunk-3UOVTIM6.js} +1 -1
  17. package/dist/{chunk-M36DAHMH.js → chunk-6DM366P6.js} +48 -40
  18. package/dist/{chunk-INS77QHY.js → chunk-6EQLA56A.js} +1 -1
  19. package/dist/{chunk-EGOE26U7.js → chunk-7UAJ3ZY7.js} +1 -1
  20. package/dist/{chunk-EQTXWU2Y.js → chunk-BPLDHTAS.js} +1 -1
  21. package/dist/{chunk-FCC7JJR5.js → chunk-BROJYH74.js} +1 -1
  22. package/dist/{chunk-P673SKUV.js → chunk-D6MAASMD.js} +1 -1
  23. package/dist/{chunk-U2CRCBJ3.js → chunk-ELW4VTSK.js} +1 -1
  24. package/dist/{chunk-U3XIH7WP.js → chunk-FLLSRBFZ.js} +1 -1
  25. package/dist/{chunk-NYQYDX7G.js → chunk-HZNC2UFL.js} +1 -1
  26. package/dist/{chunk-3BP2257G.js → chunk-IQL7NZKM.js} +1 -1
  27. package/dist/{chunk-OVV2PTZF.js → chunk-ISLZWSHN.js} +1 -1
  28. package/dist/{chunk-5STCZEOX.js → chunk-JBAVETQP.js} +1 -1
  29. package/dist/chunk-JQQP7JLQ.js +4 -0
  30. package/dist/chunk-LGNYEROA.js +12 -0
  31. package/dist/{chunk-23MEOBJF.js → chunk-MQOHOOJP.js} +1 -1
  32. package/dist/{chunk-YPS5XHYE.js → chunk-N3I76TL6.js} +1 -1
  33. package/dist/{chunk-U6KPYJTM.js → chunk-NB2GXB27.js} +1 -1
  34. package/dist/{chunk-VLBWNFQW.js → chunk-NELPXRBC.js} +1 -1
  35. package/dist/{chunk-T7MUDWUH.js → chunk-PBMHUH73.js} +1 -1
  36. package/dist/{chunk-Q5NZXJNI.js → chunk-RZA3PZNH.js} +1 -1
  37. package/dist/{chunk-GZEES7MK.js → chunk-UVTOBRHP.js} +1 -1
  38. package/dist/{chunk-UCPK53K4.js → chunk-VBIZ6U7C.js} +1 -1
  39. package/dist/{chunk-QK4KT7ZP.js → chunk-VOSADZUE.js} +2 -2
  40. package/dist/{chunk-EQXJOEOK.js → chunk-VROESTZQ.js} +1 -1
  41. package/dist/{chunk-T3PYPLTG.js → chunk-Y4U3F4UM.js} +2 -2
  42. package/dist/cli.js +25 -9
  43. package/dist/{commands-UNR6KFRZ.js → commands-23GMSCTQ.js} +9 -9
  44. package/dist/{commands-FOEEAVJQ.js → commands-MNYRRJBT.js} +1 -1
  45. package/dist/{company-BW3U437C.js → company-YFHD4RLP.js} +3 -3
  46. package/dist/{completion-PMEHZYXB.js → completion-KPMCNLV2.js} +1 -1
  47. package/dist/{contract-2MANNVJT.js → contract-C7PTM573.js} +2 -2
  48. package/dist/{department-LT3IM65L.js → department-JZVWFUCI.js} +1 -1
  49. package/dist/{deposit-RYRCQ2U7.js → deposit-NUWEBC7M.js} +2 -2
  50. package/dist/{domain-knowledge-Q2YMI7I2.js → domain-knowledge-QDSWQW4E.js} +1 -1
  51. package/dist/{estimate-MMS326SE.js → estimate-GJEDV3D5.js} +3 -3
  52. package/dist/{evaluation-KSZPNKBM.js → evaluation-KQPTG4G3.js} +2 -2
  53. package/dist/{expense-J7KGZKLH.js → expense-NFQY5NZN.js} +1 -1
  54. package/dist/{faq-FJUCNBEB.js → faq-QVRTJ3KS.js} +2 -2
  55. package/dist/{fiscal-year-AFO5CWDN.js → fiscal-year-GL3RFX6H.js} +1 -1
  56. package/dist/{holiday-F24HA4K6.js → holiday-FUYMZVGX.js} +2 -2
  57. package/dist/{inquiry-IAAJYTXP.js → inquiry-XMM6EHNJ.js} +1 -1
  58. package/dist/{invoice-A3X3JF2H.js → invoice-MLJEVQA4.js} +2 -2
  59. package/dist/{job-title-PF4C6D6U.js → job-title-JHTVL7OO.js} +1 -1
  60. package/dist/{knowledge-2YF7CJKA.js → knowledge-MROBIUE5.js} +2 -2
  61. package/dist/{leave-2JNN3V3D.js → leave-GXVOULRK.js} +2 -2
  62. package/dist/{license-FMUHJGV4.js → license-XUPFMAGX.js} +1 -1
  63. package/dist/{login-history-WDEJ5LVA.js → login-history-JIWV62KF.js} +1 -1
  64. package/dist/{logout-guard-PEETWT4A.js → logout-guard-HUCILXP7.js} +1 -1
  65. package/dist/{media-R3XOKVJ6.js → media-FKKQA223.js} +3 -3
  66. package/dist/{notification-4YXX6H3D.js → notification-YAT6O2TK.js} +1 -1
  67. package/dist/{oneshot-ZCGHYKQM.js → oneshot-HV5VMNFX.js} +1 -1
  68. package/dist/{outlook-ZRFSKSJ3.js → outlook-GXWQLCR6.js} +1 -1
  69. package/dist/{plan-submit-WP25FEYE.js → plan-submit-I5QAVNZN.js} +1 -1
  70. package/dist/{position-M2MEJBUK.js → position-33HC7ETC.js} +1 -1
  71. package/dist/{project-EF2JKWVC.js → project-O6TQKZBJ.js} +2 -2
  72. package/dist/{prospect-R6346ME5.js → prospect-LQ2RLIBN.js} +2 -2
  73. package/dist/{purchase-XCTYVG4N.js → purchase-E25SBHR2.js} +3 -3
  74. package/dist/{receivable-FVLXVO2S.js → receivable-M3IUSRB7.js} +2 -2
  75. package/dist/{redmine-EUFN35BT.js → redmine-OIBKHGK3.js} +1 -1
  76. package/dist/{registry-TMAWS2IQ.js → registry-QHNBNSNA.js} +1 -1
  77. package/dist/{report-6Q3JV4DN.js → report-TS7D6YF5.js} +1 -1
  78. package/dist/{run-OT5I4KNA.js → run-AHNWMLZ4.js} +2 -2
  79. package/dist/{sales-ai-review-TTWTHKQJ.js → sales-ai-review-KYYUF5HG.js} +2 -2
  80. package/dist/{sales-master-VKS2HENV.js → sales-master-UNKMFZDV.js} +2 -2
  81. package/dist/{sales-numbering-W2W57UPY.js → sales-numbering-URGXUTUX.js} +2 -2
  82. package/dist/{search-N45JL2PU.js → search-OEOAUIW3.js} +1 -1
  83. package/dist/{segment-3MKCPWT2.js → segment-H7FFI52Z.js} +1 -1
  84. package/dist/{server-settings-RNJ6RVTE.js → server-settings-TFVXMOJB.js} +1 -1
  85. package/dist/{setup-ICJPTYKW.js → setup-FX2IUBHT.js} +1 -1
  86. package/dist/{skill-E6P5HKO3.js → skill-BJFHENEO.js} +2 -2
  87. package/dist/{skill-check-ZXDV5MWP.js → skill-check-VNUNX6IO.js} +1 -1
  88. package/dist/{staffing-board-LWUCHN7P.js → staffing-board-2ZV2Q6TC.js} +2 -2
  89. package/dist/{supplier-payment-AUT2FZBR.js → supplier-payment-2OVDNHBD.js} +2 -2
  90. package/dist/{support-OUQWV5KP.js → support-6NZCSDPJ.js} +1 -1
  91. package/dist/{task-7FOEUQJ6.js → task-GLFAR4GN.js} +3 -3
  92. package/dist/{teams-FOR3O7KH.js → teams-KNXVEWMD.js} +1 -1
  93. package/dist/{user-7KEMCG3C.js → user-L6NYXPV6.js} +3 -3
  94. package/dist/{user-contract-type-MPZQ7Y2P.js → user-contract-type-2PUE2JQL.js} +1 -1
  95. package/dist/user-group-EIYVFUTB.js +69 -0
  96. package/dist/{worker-agent-4E5P75SJ.js → worker-agent-2BARDPDL.js} +1 -1
  97. package/dist/{workflow-G7QZZPAX.js → workflow-P4SJX6YR.js} +2 -2
  98. package/package.json +1 -1
  99. package/dist/chunk-BHVUGTHP.js +0 -4
  100. package/dist/chunk-IAPKSXMG.js +0 -12
@@ -11,6 +11,12 @@
11
11
  `CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
12
12
  -->
13
13
 
14
+ ## 0.92.0
15
+
16
+ `twp user-group` で、ユーザーグループの一覧・作成・更新と、メンバーの追加・削除ができるようになりました(管理者のみ)。指定しなかった項目やほかのメンバーは変わりません。
17
+
18
+ 監査ログを CLI から確認できるようになりました(`twp audit-log`)。誰がいつ何を変えたかを、期間・操作した人・対象のユーザー・プロジェクト・操作の種類で絞り込んで一覧し、画面と同じ CSV に書き出せます。組織管理者の権限が要ります。
19
+
14
20
  ## 0.91.0
15
21
 
16
22
  `twp user unlock` で、ログイン失敗でロックされたユーザーのロックを解除できるようになりました(組織管理者のみ)。解除前にロックされているかを表示します。
package/README.md CHANGED
@@ -20,9 +20,10 @@ TWP(Tocca Working Platform)を、ターミナルから使うための CLI
20
20
  |---|---|
21
21
  | **できる** | AI との会話(ストリーミング表示)。手元のファイルの読み書き・検索、コマンド実行、git の読み取り——いずれも**実行前に確認**します |
22
22
  | **できる** | `twp project` / `twp task` によるプロジェクト・タスクの読み書き(一覧・取得・作成・更新・削除・コメント) |
23
- | **できる** | `twp user` によるテナントのユーザーの作成・更新・失効(退社)と招待(1件・CSV 一括・再送・取消)、ユーザーと所属(部署・役職)の参照(一覧・取得・所属の履歴)、所属の付け替え(異動)・作成・更新・終了・削除、在籍者の棚卸と人事台帳 CSV との突き合わせ、`twp login-history` によるログイン履歴の一覧(期間・ユーザー・IP・結果で絞り込み)と集計。作成・更新・招待と取得、所属の書き込み、他人の所属の参照、棚卸、ログイン履歴は組織管理者の権限が要ります |
23
+ | **できる** | `twp user` によるテナントのユーザーの作成・更新・失効(退社)と招待(1件・CSV 一括・再送・取消)、ユーザーと所属(部署・役職)の参照(一覧・取得・所属の履歴)、所属の付け替え(異動)・作成・更新・終了・削除、在籍者の棚卸と人事台帳 CSV との突き合わせ、`twp login-history` によるログイン履歴の一覧(期間・ユーザー・IP・結果で絞り込み)と集計、`twp audit-log` による監査ログ(誰がいつ何を変えたか)の一覧・集計・CSV 出力。作成・更新・招待と取得、所属の書き込み、他人の所属の参照、棚卸、ログイン履歴、監査ログは組織管理者の権限が要ります |
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
+ | **できる** | `twp user-group` によるユーザーグループの一覧・取得・作成・更新と、メンバーの一覧・追加・外す操作。取得・作成・更新とメンバーの操作は管理者の権限が要ります(グループの削除はサーバに無いので、表示区分を非表示にして外します) |
26
27
  | **できる** | `twp inquiry category` による問い合わせカテゴリの一覧・取得・作成・更新(通知先の設定・末尾への並べ替えを含む)。取得・作成・更新は問い合わせ機能の管理者の権限が要ります |
27
28
  | **できる** | `twp evaluation` / `twp goal-sheet` による人事評価と目標シートの読み取り(評価期間・見てよい範囲の評価と目標シートの一覧・部下の評価の状況・評価の詳細とプロジェクト別評価・自分の目標シート・受け取ったフィードバック)と書き込み(目標シートの書き換え・提出、評価段の入力、フィードバックの下書き保存・送信・公開、`twp project evaluation create` によるプロジェクトでの要員評価の作成)、評価期間の作成・変更・削除・締め・締め解除、評価基準(A〜E の説明)の表示・置き換え、`twp role-template` による役割テンプレートの一覧・作成・変更・削除。評価期間・評価基準・役割テンプレートの書き込みは管理者の権限が要ります |
28
29
  | **できる** | `twp support` によるシステムサポートへの依頼(依頼者側)の一覧・詳細(コメントの経過を含む)・起票(添付3件まで)・コメント・完了・再問い合わせ・取り下げと、カテゴリの一覧。運営側(回答・ステータス変更)は扱いません |
@@ -472,6 +473,23 @@ E0012,Wiki管理,editor
472
473
  - 権限は変わったがサーバがライセンスの更新に失敗した件があれば、結果を出したうえで終了コード 3 で終わります
473
474
  - 変更が本人の画面・API に効くまで最大5分ほどかかります(サーバの設定により最長30分)
474
475
 
476
+ ### テナントの操作記録(監査ログ)を見る・CSV に書き出す
477
+
478
+ 組織管理者向けです。画面の「組織管理 > 監査ログ」と同じ記録(タスクの作成・更新・削除とコメント、プロジェクト本体・メンバーの変更)を引きます。CLI 自身の判断記録(下の「監査ログ」= `~/.twp/logs/`)とは別物です。
479
+
480
+ ```
481
+ twp audit-log list [--from <日付>] [--to <日付>] [--user <ユーザー>] [--target-user <ユーザー>] [--project <プロジェクト>] [--action <操作>] [--all]
482
+ twp audit-log stats [--days <日数>] # 直近の操作を種類ごとに数える(既定 7 日・最大 90)
483
+ twp audit-log export --out <パス.csv> --from <日付> [--to <日付>] [絞り込み…] # 画面の「CSVエクスポート」と同じ CSV
484
+ ```
485
+
486
+ - `--from` / `--to` は日付(`YYYY-MM-DD`)で、**日本時間の1日**として扱います。`export` で `--to` を省くと日本時間の今日までです
487
+ - `--user` は操作した人、`--target-user` は変更の対象になった人(メンバー・PM/PL 等の変更)、`--project` はプロジェクトのコード・ID・名前(完全一致。同名が複数あればコードを求めます)です。ユーザーは ID・メールアドレス・社員番号・氏名・`me` で指定できます
488
+ - `--action` は `create` / `update` / `delete` / `comment_add` / `comment_update` / `comment_delete` です。プロジェクト本体・メンバーの変更は操作の種類を持たないので、`--action` を付けると出ません
489
+ - **表(table / text / tsv)には変更前後の値とコメント本文を出しません**(氏名・メール等の個人情報を含みうるため)。中身は `--output json` か CSV で見てください
490
+ - 絞り込みはサーバが読んだ後に掛かるので、件数が少ないページにも「続きがあります」が付くことがあります。絞り込んで探すときは `--all` を付けてください
491
+ - CSV はサーバが1回に **1,000 行まで**しか出しません。届いたら stderr で知らせるので、期間を分けて書き出すか `twp audit-log list --all --output json` で取ってください。絞り込みを付けると、該当が疎なときは 1,000 行に届かなくても欠けることがあります(その旨も知らせます)。`stats` もサーバが直近 1,000 件までしか数えません(届いたら知らせます)
492
+
475
493
  ### 組織マスタ(部署・役職・職位・セグメント・契約形態・事業年度設定)を扱う
476
494
 
477
495
  作成・更新・削除は管理者向けです。一覧・取得・ツリー・所属者は、ログインしていれば使えます。
@@ -514,6 +532,30 @@ twp fiscal-year delete <年度> --yes
514
532
  - **プロジェクトから参照されているセグメント、契約(終了済みの履歴を含む)から参照されている契約形態も削除できません。** サーバの理由に続けて無効化のコマンド(セグメントは `--status inactive`、契約形態は `--active false`)を案内します
515
533
  - ヘルプは `twp department help` / `twp position help` / `twp job-title help` / `twp segment help` / `twp user-contract-type help` / `twp fiscal-year help`
516
534
 
535
+ ### ユーザーグループを扱う
536
+
537
+ ユーザーグループはワークフローの承認先・通知先、レポートの権限、お知らせの配信対象などで使われます。一覧はログインしていれば使え、それ以外は管理者向けです。
538
+
539
+ ```
540
+ twp user-group list [--keyword <語>] [--display visible|hidden] [--select-type all|admin-only]
541
+ twp user-group get <グループ>
542
+ twp user-group create --name <グループ名> [--member <ユーザー>…] [--display visible|hidden] [--select-type all|admin-only] [--sort <整数>]
543
+ twp user-group update <グループ> [--name <グループ名>] [--display …] [--select-type …] [--sort <整数>] [--member <ユーザー>… | --no-members]
544
+
545
+ twp user-group member list <グループ>
546
+ twp user-group member create <グループ> --user <ユーザー> [--user <ユーザー>…]
547
+ twp user-group member delete <グループ> --user <ユーザー> [--user <ユーザー>…] --yes
548
+ ```
549
+
550
+ - **入社・異動で1人ずつ出し入れするなら `member create` / `member delete` を使ってください。** 今のメンバーを読み、指定した人だけを足す/外して送ります(他のメンバーはそのまま)
551
+ - `update` は指定した項目だけを変えます。サーバの更新はグループの全項目とメンバーを置き換える作りなので、CLI は送る直前に今の値を読み、指定しなかった項目(選択区分を含む)とメンバーをそのまま送り返します。**`update --member` はメンバーを指定した人だけに置き換えます**(足すのではありません)。`--no-members` で空にします。**今のメンバーが外れるときは `--yes` が要ります**(`member delete` と同じ)
552
+ - 削除済みのユーザーの所属は、サーバが詳細に返さないため、更新系を送ると消えます(画面で保存したときと同じ)
553
+ - 送る前に「メンバー: n人 → m人(追加・外す)」を stderr に出します。`--dry-run` で送る内容を確かめられます
554
+ - `<グループ>` はグループ名か ID、`--member` / `--user` はユーザーの ID・メールアドレス・社員番号・氏名で指定できます。グループ一覧は10分キャッシュするので、作成・改名の直後に名前で指定するときは `--refresh` を付けてください(ID ならそのまま通ります)
555
+ - 表示区分(`--display`)は `visible`(表示)/ `hidden`(非表示=選択肢に出さない)、選択区分(`--select-type`)は `all`(管理者・一般ユーザーが選べる)/ `admin-only`(管理者のみ)です。管理者以外の `list` には選択区分が「全員」のグループだけが返ります
556
+ - **グループの削除はできません**(サーバにも画面にも削除が無い)。使わなくなったグループは `update --display hidden` で選択肢から外してください
557
+ - ヘルプは `twp user-group help` / `twp user-group member help`
558
+
517
559
  ### カレンダーマスタ(祝日・営業日)を扱う
518
560
 
519
561
  ```bash
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{SCHEDULE_HELP,parseSchedule}from"./chunk-EQTXWU2Y.js";import"./chunk-WVCEKC7V.js";import"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,AGENT_SESSIONS_PATH}from"./chunk-M36DAHMH.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";
4
- 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";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";
3
+ import{SCHEDULE_HELP,parseSchedule}from"./chunk-BPLDHTAS.js";import"./chunk-WVCEKC7V.js";import"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,AGENT_SESSIONS_PATH}from"./chunk-6DM366P6.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";
4
+ import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.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";var LABEL="\u5B9A\u671F\u5B9F\u884C";var LIST_COLUMNS=["schedule_id","name","enabled","schedule","repository_full_name","next_run_at","last_run_at","disabled_reason","owner_user_id"];var GET_COLUMNS=["schedule_id","name","enabled","schedule","repository_full_name","base_branch","ai_provider","ai_model","next_run_at","last_run_at","last_session_id","consecutive_failures","disabled_reason","owner_user_id","can_edit","can_disable","created_at","updated_at"];var RUN_COLUMNS=["run_id","created_at","t\
6
6
  rigger","result","skip_reason","session_id","pr_url","error_message"];var NAME_MAX_CHARS=100;var INSTRUCTION_MAX_CHARS=1e4;var RUNS_MAX_LIMIT=100;var FORBIDDEN="AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6A5F\u80FD\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\uFF08agent\uFF09\u304C\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u4ED6\u30E6\u30FC\u30B6\u30FC\u306E\u5B9A\u671F\u5B9F\u884C\u3092\u5909\u66F4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u3002\u7DE8\u96C6\u30FB\u524A\u9664\u30FB\u6709\u52B9\u5316\u30FB\u4ECA\u3059\u3050\u5B9F\u884C\u306F\u30AA\u30FC\u30CA\u30FC\u672C\u4EBA\u3060\u3051\u3001\u7121\u52B9\u5316\u306F\u30AA\u30FC\u30CA\u30FC\u3068\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u7BA1\u7406\u8005\u304C\u3067\u304D\u307E\u3059\u3002";
7
7
  var SCHEDULE_REF_HELP="<\u5B9A\u671F\u5B9F\u884C> \u306F\u5B9A\u671F\u5B9F\u884C ID\uFF08twp agent schedule list \u306E schedule_id \u5217\uFF09\u3067\u3059\u3002";var CREDIT_CONFIRMATION="AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u3059\u308B\u64CD\u4F5C";function usageOf(op){return`twp agent schedule ${op} help`}function noArgs(input,op){if(input.args.length>0)throw new UsageError(`schedule ${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{stepToItem}from"./chunk-3D734ED2.js";import"./chunk-NXPLTDN4.js";import{loadLocalConfig}from"./chunk-INS77QHY.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import{loadAiConfig}from"./chunk-FABDZBDZ.js";import{SKILL_PREFIX_RE,setSkillPrefix}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,
4
- isPrivateProjectRef}from"./chunk-RMFLTSOV.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}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-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";
3
+ import{stepToItem}from"./chunk-3D734ED2.js";import{loadLocalConfig}from"./chunk-6EQLA56A.js";import"./chunk-VYDPW2YO.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-TTST7UDR.js";import"./chunk-NXPLTDN4.js";import{loadAiConfig}from"./chunk-FABDZBDZ.js";import{SKILL_PREFIX_RE,setSkillPrefix}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,
4
+ isPrivateProjectRef}from"./chunk-RMFLTSOV.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";
5
5
  import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u306E\u30A2\u30A4\u30C6\u30E0";var STATUSES=["pending","processing","completed","failed"];var AI_TYPES=["claude","gemini","codex","copilot"];var EFFORTS=["low","medium","high","xhigh","max"];var PRIORITIES=["P0","P1","P2","P3"];var LIST_COLUMNS=["item_id","status","task_key","label","ai_type","ai_effort","runner_id","created_at"];var GET_COLUMNS=["item_id","status","task_key","label","prompt","ai_type","ai_model","ai_effort","runn\
6
6
  er_id","attempt_count","reclaim_count","error_message","created_by_name","created_at","started_at","completed_at"];var HISTORY_COLUMNS=["item_id","status","task_key","skill","ai_type","runner_id","duration_ms","cost_usd","created_at"];var PLAN_RESULTS=["enqueued","empty","json_not_found","ai_failed","error","skipped","gated","locked","abandoned"];var PLAN_HISTORY_COLUMNS=["plan_run_id","result","runner_id","ai_type","duration_ms","cost_usd","step_count","started_at"];var PROJECT_FLAG={name:"--pr\
7
7
  oject",summary:"\u30AD\u30E5\u30FC\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\u3002\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ITEM_FLAG={name:"--item",summary:"\u30A2\u30A4\u30C6\u30E0\u306E ID\uFF08item_id\uFF09\u3002\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF08\u4E21\u65B9\u6307\u5B9A\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{failureHint,isAuthError,isCliFatalText,isRateLimited,isServerAiType,isUntrusted,maxTurnsReached,rateLimitWaitSeconds,tailForScan}from"./chunk-MBPJV745.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-3OCV6SOR.js";import{detectAiClis}from"./chunk-5SONMN6K.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{ClaudeStreamRenderer}from"./chunk-NXPLTDN4.js";import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,
3
+ import{failureHint,isAuthError,isCliFatalText,isRateLimited,isServerAiType,isUntrusted,maxTurnsReached,rateLimitWaitSeconds,tailForScan}from"./chunk-MBPJV745.js";import{detectAiClis}from"./chunk-5SONMN6K.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-3OCV6SOR.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{ClaudeStreamRenderer}from"./chunk-NXPLTDN4.js";import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,
4
4
  detectClaudeAutoSwitch,isClaudeAi,isUsableModelId,modelFitsRoute,resolveSpawnTarget,usesBedrock,wrapWithAutoSwitch}from"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import"./chunk-RMFLTSOV.js";import"./chunk-IXT2X5BZ.js";import"./chunk-VFPY2A23.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";
5
5
  import"./chunk-5WGOHFAS.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import{spawnSync}from"child_process";import fs2 from"fs";import path2 from"path";import{spawn}from"child_process";import fs from"fs";import path from"path";var DEFAULT_AI_TIMING={abortGraceMs:5e3,abortReapMs:2e3,pollIntervalMs:5e3};function resolveTiming(over){return{abortGraceMs:over?.abortGraceMs??DEFAULT_AI_TIMING.abortGraceMs,abortReapMs:over?.abortReapMs??DEFAULT_AI_TIMING.abortReapMs,pollIntervalMs:over?.pollIntervalMs??DEFAULT_AI_TIMING.pollIntervalMs}}var MAX_RETAINED_BYTES=4*1024*1024;function closeStream(stream){return new Promise(resolve=>{if(stream===null)return resolve();stream.once("error",()=>resolve());stream.end(()=>resolve())})}function buildArgs(req,cfg,env,workspace){
6
6
  const warnings=[];const requested=(req.model??"").trim();const usable=requested!==""&&isUsableModelId(requested);if(requested!==""&&!usable){warnings.push(`ai_model '${requested}' \u306F\u4F7F\u3048\u306A\u3044\u5F62\u3067\u3059 \u2192 \u30AB\u30C6\u30B4\u30EA\u65E2\u5B9A\u306E\u30E2\u30C7\u30EB\u3092\u4F7F\u3044\u307E\u3059`)}const fitsRoute=!usable||!isClaudeAi(req.ai)||modelFitsRoute(requested,env);if(usable&&!fitsRoute){warnings.push(`ai_model '${requested}' \u306F\u73FE\u5728\u306E\u5B9F\u884C\u7D4C\u8DEF\u3067\u306F\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\uFF08\u3053\u306E\u6A5F\u4F53\u306F ${usesBedrock(
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{DEPARTMENT_FLAG,FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,USER_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,levelGuidance,listIn,manhourNotes,manhourQuery,manhourRows,monthColumns,monthRange,monthsBetween,noArgs,periodNote,profitRows,rangeNotes,recordOf,resolveFilters,resolvedOrUndefined,responseMonths,staffKpiRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-U6KPYJTM.js";import"./chunk-23MEOBJF.js";import"./chunk-UVCJXHWN.js";
4
- 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";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";
3
+ import{DEPARTMENT_FLAG,FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,USER_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,levelGuidance,listIn,manhourNotes,manhourQuery,manhourRows,monthColumns,monthRange,monthsBetween,noArgs,periodNote,profitRows,rangeNotes,recordOf,resolveFilters,resolvedOrUndefined,responseMonths,staffKpiRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-NB2GXB27.js";import"./chunk-MQOHOOJP.js";import"./chunk-UVCJXHWN.js";
4
+ import"./chunk-EXT4AIDF.js";import"./chunk-3UOVTIM6.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-6DM366P6.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";
5
5
  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{DEPARTMENT_FLAG,FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,USER_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,levelGuidance,listIn,manhourNotes,manhourQuery,manhourRows,monthColumns,monthRange,monthsBetween,noArgs,periodNote,profitRows,rangeNotes,recordOf,resolveFilters,resolvedOrUndefined,responseMonths,staffKpiRows,workloadDistributionNotes,workloadDistributionRows};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{composeDocument,htmlToText,metaLine}from"./chunk-62GRAKUD.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{ANNOUNCEMENTS_PATH}from"./chunk-M36DAHMH.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,positiveInteger}from"./chunk-MI6HVYR2.js";
4
- import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";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="\u304A\u77E5\u3089\u305B";var LIST_COLUMNS=["id","publish_start_at","sender_name","category_name","title","is_read","require_confirmation","is_confirmed"];var UNCONFIRMED_COLUMNS=["id","publish_start_at","publish_end_at","importance","title"];var GET_COLUMNS=["id","title","sender_name","category_name","importance_name","publish_start_at","publish_end_at","is_organization","is_read","require_confirmation","is_confirmed","allow_replies","link_url"];var REPLY_COLUMNS=["id","created_at","\
3
+ import{composeDocument,htmlToText,metaLine}from"./chunk-62GRAKUD.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{ANNOUNCEMENTS_PATH}from"./chunk-6DM366P6.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,
4
+ positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";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="\u304A\u77E5\u3089\u305B";var LIST_COLUMNS=["id","publish_start_at","sender_name","category_name","title","is_read","require_confirmation","is_confirmed"];var UNCONFIRMED_COLUMNS=["id","publish_start_at","publish_end_at","importance","title"];var GET_COLUMNS=["id","title","sender_name","category_name","importance_name","publish_start_at","publish_end_at","is_organization","is_read","require_confirmation","is_confirmed","allow_replies","link_url"];var REPLY_COLUMNS=["id","created_at","\
5
5
  user_name","is_mine","content"];var REPLY_MAX_CHARS=2e3;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(" ")}`,`twp announcement ${op} help`)}}function checkId(raw,help){const id=raw.trim();if(id==="")throw new UsageError("\u304A\u77E5\u3089\u305B\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",help);if(!isSafePathSegment(id)){throw new UsageError(`\u304A\u77E5\u3089\u305B\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\
6
6
  \u5024\u3067\u3059: ${id}`,"\u304A\u77E5\u3089\u305B\u306E ID \u306F twp announcement list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return id}function announcementId(input,op){const help=`twp announcement ${op} help`;const[raw,...rest]=input.args;if(rest.length>0)throw new UsageError(`${op} \u304C\u53D7\u3051\u53D6\u308C\u308B\u304A\u77E5\u3089\u305B ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,help);return checkId(raw??"",help)}function announcementIds(input){
7
7
  const help="twp announcement read help";if(input.args.length===0)throw new UsageError("\u304A\u77E5\u3089\u305B\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",help);return[...new Set(input.args.map(raw=>checkId(raw,help)))]}function itemPath(id,suffix=""){return`${ANNOUNCEMENTS_PATH}/${encodeURIComponent(id)}${suffix}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==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`)}
@@ -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-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
- 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
- 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-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=>/^\{[^/{}]+\}$/.
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-VOSADZUE.js";import"./chunk-LGNYEROA.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
+ 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-6DM366P6.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"./chunk-II5RVJQN.js";
5
+ import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-3ZRMMBP5.js";import{ApiResponseError,EXIT_OK,EXIT_WAIT_TIMEOUT,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{
6
+ httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-JQQP7JLQ.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.
@@ -1,9 +1,9 @@
1
1
  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
- 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-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.
4
+ diffStat}from"./chunk-VRBI2NPI.js";import{require_fuzzysort}from"./chunk-DIMZRTLE.js";import"./chunk-N2UVRM3Z.js";import"./chunk-6DM366P6.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-UVTOBRHP.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
+ nextMode}from"./chunk-2LOT54OO.js";import"./chunk-JQQP7JLQ.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-OT5I4KNA.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-AHNWMLZ4.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,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{PUNCH_TYPES,assertMonthOpen,attendanceDomain}from"./chunk-23MEOBJF.js";import"./chunk-UVCJXHWN.js";import{dateFlag,monthFlag}from"./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";import{isSafePathSegment}from"./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{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,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";var CREATE_USAGE="twp attendance record create --date <YYYY-MM-DD> --time <HH:MM> --type <clock-in|clock-out|break-start|break-end|switch> [--project <\u30B3\u30FC\u30C9|ID>] [--task <\u30BF\u30B9\u30AFID>] [--memo <\u30E1\u30E2>]";var UPDATE_USAGE="twp attendance record update <\u8A18\u9332ID> --memo <\u30E1\u30E2> [--month <YYYY-MM>]";var DELETE_USAGE="twp attendance record delete <\u8A18\u9332ID> --reason <\u7406\u7531> --yes [--month <YYYY-MM>]";var MOVE_USAGE="twp attendance record move <\u8A18\u9332\
3
+ import{PUNCH_TYPES,assertMonthOpen,attendanceDomain}from"./chunk-MQOHOOJP.js";import"./chunk-UVCJXHWN.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-3UOVTIM6.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-6DM366P6.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";
4
+ import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,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";var CREATE_USAGE="twp attendance record create --date <YYYY-MM-DD> --time <HH:MM> --type <clock-in|clock-out|break-start|break-end|switch> [--project <\u30B3\u30FC\u30C9|ID>] [--task <\u30BF\u30B9\u30AFID>] [--memo <\u30E1\u30E2>]";var UPDATE_USAGE="twp attendance record update <\u8A18\u9332ID> --memo <\u30E1\u30E2> [--month <YYYY-MM>]";var DELETE_USAGE="twp attendance record delete <\u8A18\u9332ID> --reason <\u7406\u7531> --yes [--month <YYYY-MM>]";var MOVE_USAGE="twp attendance record move <\u8A18\u9332\
5
5
  ID> --project <\u30B3\u30FC\u30C9|ID> [--month <YYYY-MM>]";var TEXT_MAX=500;var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var TIME_PATTERN=/^(\d{2}):(\d{2})(?::(\d{2}))?$/;var CLOSED_REASON="\u30B5\u30FC\u30D0\u306F\u7DE0\u3081\u6E08\u307F\u306E\u6708\u3078\u306E\u4FEE\u6B63\u3092\u62D2\u5426\u305B\u305A\u7DE0\u3081\u306E\u96C6\u8A08\u3092\u6D17\u3044\u66FF\u3048\u308B\u306E\u3067\u3001CLI \u304C\u9001\u308B\u524D\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002";
6
6
  var FORBIDDEN="\u81EA\u5206\u306E\u6253\u523B\u306E\u4FEE\u6B63\u306B\u306F\u6253\u523B\u4FEE\u6B63\u306E\u6A29\u9650\uFF08\u30E6\u30FC\u30B6\u30FC\u8A2D\u5B9A\u306E\u300C\u6253\u523B\u4FEE\u6B63\u300D\uFF09\u3068\u52E4\u6020\u306E\u5229\u7528\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";var RECORD_COLUMNS=["id","type","type_label","recorded_at","year_month","project_id","t\
7
7
  ask_id","memo","is_manual","deleted_at"];var LABELS={clock_in:"\u51FA\u52E4",clock_out:"\u9000\u52E4",break_start:"\u4F11\u61A9\u958B\u59CB",break_end:"\u4F11\u61A9\u7D42\u4E86",switch:"\u5207\u66FF"};var TYPE_ORDER={break_start:1,break_end:2,switch:3,clock_out:4,clock_in:5};function zonedParts(epochMs,timeZone){const parts=new Intl.DateTimeFormat("en-US",{timeZone,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}).formatToParts(new Date(
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{hoursMinutes}from"./chunk-23MEOBJF.js";import"./chunk-UVCJXHWN.js";import{monthFlag}from"./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";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";
4
- import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,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";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ME_FLAG={name:"--me",summary:"\u81EA\u5206\u306E\u5206\u3060\u3051\u3092\u8868\u793A\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\u30FB\u7BA1\u7406\u8005\uFF09",takesValue:false};var FORBIDDEN_ADMIN="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u5168\u54E1\u5206\uFF08--me \u306A\u3057\uFF09\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u3001\u81EA\u5206\u306E\u5206\uFF08--me\uFF09\u306F\u52E4\u6020\u306E\u5229\u7528\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";
3
+ import{hoursMinutes}from"./chunk-MQOHOOJP.js";import"./chunk-UVCJXHWN.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-3UOVTIM6.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-6DM366P6.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";
4
+ import"./chunk-MI6HVYR2.js";import"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,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";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ME_FLAG={name:"--me",summary:"\u81EA\u5206\u306E\u5206\u3060\u3051\u3092\u8868\u793A\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\u30FB\u7BA1\u7406\u8005\uFF09",takesValue:false};var FORBIDDEN_ADMIN="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u5168\u54E1\u5206\uFF08--me \u306A\u3057\uFF09\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u3001\u81EA\u5206\u306E\u5206\uFF08--me\uFF09\u306F\u52E4\u6020\u306E\u5229\u7528\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";
5
5
  function listBody(spec,body){if(!isRecord(body)||!Array.isArray(body[spec.key])){throw new ApiResponseError(`${spec.label}\u306E\u5FDC\u7B54\u306B ${spec.key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function monthListOperation(spec){const usage=`twp ${spec.domain} list [--month <YYYY-MM>] [--me]`;return{name:"list",summary:`\u6708\u306E${spec.label}\u3092\u4E00\u89A7\u3059\u308B\uFF08--me \u3067\u81EA\u5206\u306E\u5206\u30FB\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\uFF1D\u7BA1\u7406\u8005\uFF09`,
6
6
  usage,description:`GET ${spec.path} \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u5168\u54E1\u5206\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\uFF09\u3002--me \u3092\u4ED8\u3051\u308B\u3068 GET ${spec.path}/me\uFF08\u81EA\u5206\u306E\u5206\uFF09\u3067\u3059\u3002
7
7
  --month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002
@@ -0,0 +1,53 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{dateFlag}from"./chunk-EXT4AIDF.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-VSJBJXZO.js";import fs from"fs";var LABEL="\u76E3\u67FB\u30ED\u30B0";var PATH="/api/v2/admin/tenant/audit-logs";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 ACTIONS=["create","update","delete","comment_add","comment_update","comment_delete"];var MAX_LIMIT=100;var SERVER_SCAN_LIMIT=1e3;var MAX_STATS_DAYS=90;var COMMENT_AS_OPERATION=new Set(["project_member","project"]);var JST_OFFSET_MS=9*
4
+ 60*60*1e3;var LIST_COLUMNS=["created_at","operation","created_by_name","entity_type","task_key","target"];function todayJst(now=new Date){return new Date(now.getTime()+JST_OFFSET_MS).toISOString().slice(0,10)}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(" ")}`,`twp audit-log ${op} help`)}}function actionFilter(input){const raw=nonEmpty(input.flags,"--action");if(raw===void 0)return void 0;
5
+ const value=raw.trim().toLowerCase();if(!ACTIONS.includes(value)){throw new UsageError(`--action \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,`${ACTIONS.join(" / ")} \u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function period(input,defaultTo){const from=dateFlag(input.flags,"--from");const to=dateFlag(input.flags,"--to")??(from===void 0?void 0:defaultTo);if(from!==void 0&&to!==void 0&&from>to){throw new UsageError(`\
6
+ --from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u3067\u3059`)}return{from,to}}var FILTER_FLAGS=[{name:"--from",summary:"\u3053\u306E\u65E5\u4EE5\u964D\uFF08YYYY-MM-DD\u30FB\u65E5\u672C\u6642\u9593\u306E\u305D\u306E\u65E5\u306E 0:00 \u304B\u3089\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--to",summary:"\u3053\u306E\u65E5\u4EE5\u524D\uFF08YYYY-MM-DD\u30FB\u65E5\u672C\u6642\u9593\u306E\u305D\u306E\u65E5\u306E\u7D42\u308F\u308A\u307E\u3067\uFF09",takesValue:true,
7
+ placeholder:"<\u65E5\u4ED8>"},{name:"--user",summary:"\u64CD\u4F5C\u3057\u305F\u4EBA\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"--target-user",summary:"\u5909\u66F4\u306E\u5BFE\u8C61\u306B\u306A\u3063\u305F\u4EBA\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30E1\u30F3\u30D0\u30FC\u30FBPM/PL \u7B49\u306E\u5909\u66F4\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u30FBID\u30FB\u540D\u524D\uFF09",
8
+ takesValue:true,placeholder:"<\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>"},{name:"--action",summary:`\u64CD\u4F5C\u306E\u7A2E\u985E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08${ACTIONS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u64CD\u4F5C>"}];var FILTER_HELP=`\u7D5E\u308A\u8FBC\u307F:
9
+ --from / --to \u306F\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09\u3067\u3001\u65E5\u672C\u6642\u9593\u306E1\u65E5\u3068\u3057\u3066\u6271\u3044\u307E\u3059\u3002
10
+ --user \u306F\u64CD\u4F5C\u3057\u305F\u4EBA\u3001--target-user \u306F\u5909\u66F4\u306E\u5BFE\u8C61\u306B\u306A\u3063\u305F\u4EBA\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u30FBPM/PL \u7B49\u306E\u5909\u66F4\u3002
11
+ \u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u304C\u8A18\u9332\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308B\u524D\u306E\u8A18\u9332\u306F\u30E1\u30F3\u30D0\u30FC\u306E\u8FFD\u52A0\u30FB\u524A\u9664\u3060\u3051\u304C\u5F53\u305F\u308A\u307E\u3059\uFF09\u3067\u3059\u3002
12
+ <\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
13
+ --project \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u30FBID\u30FB\u540D\u524D\uFF08\u5B8C\u5168\u4E00\u81F4\uFF09\u3067\u3059\uFF08\u30BF\u30B9\u30AF\u306E\u64CD\u4F5C\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672C\u4F53\u306E\u5909\u66F4\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u5909\u66F4\u304C\u5F53\u305F\u308A\u307E\u3059\uFF09\u3002
14
+ --action \u306F ${ACTIONS.join(" / ")} \u3067\u3059\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672C\u4F53\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u5909\u66F4\u306F\u64CD\u4F5C\u306E\u7A2E\u985E\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u3001
15
+ --action \u3092\u4ED8\u3051\u308B\u3068\u51FA\u306A\u304F\u306A\u308A\u307E\u3059\u3002`;async function prepareFilters(input,ctx,op,check){noArgs(input,op);check();const values={};const user=nonEmpty(input.flags,"--user");if(user!==void 0)values["userId"]=(await ctx.resolver.user(user,"--user")).id;const target=nonEmpty(input.flags,"--target-user");if(target!==void 0)values["targetUserId"]=(await ctx.resolver.user(target,"--target-user")).id;const project=nonEmpty(input.flags,"--project");if(project!==
16
+ void 0)values["projectId"]=(await ctx.resolver.projectByCodeOrName(project,"--project")).id;return Object.keys(values).length===0?input:withResolved(input,values)}var FILTER_KEYS=["--user","--target-user","--project","--action"];function hasFilter(input){return FILTER_KEYS.some(name=>input.flags.has(name))}function filterQuery(input,defaultTo){const{from,to}=period(input,defaultTo);return{from,to,user_id:input.flags.has("--user")?requireResolved(input,"userId"):void 0,target_user_id:input.flags.
17
+ has("--target-user")?requireResolved(input,"targetUserId"):void 0,project_id:input.flags.has("--project")?requireResolved(input,"projectId"):void 0,action:actionFilter(input)}}function envelope(body,what){if(!isRecord(body)||body["result"]!==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}\
18
+ \u4E00\u89A7`,itemsKey:"items"});function listRows(body){envelope(body,`${LABEL}\u4E00\u89A7`);return listPaging.items(body)}function summarizeEntry(row){const source=isRecord(row)?row:{};const entityType=typeof source["entity_type"]==="string"?source["entity_type"]:null;const comment=typeof source["comment"]==="string"&&source["comment"]!==""?source["comment"]:null;const operation=entityType!==null&&COMMENT_AS_OPERATION.has(entityType)&&comment!==null?comment:source["action"]??null;const subject=source["\
19
+ task_subject"];return{created_at:source["created_at"]??null,operation,created_by_name:source["created_by_name"]??source["created_by"]??null,entity_type:entityType??"task",task_key:source["task_key"]??null,target:typeof subject==="string"&&subject!==""?subject:source["entity_title"]??null}}function statsRow(body){const row=envelope(body,`${LABEL}\u306E\u96C6\u8A08`);if(typeof row["total_actions"]!=="number"){throw new ApiResponseError(`${LABEL}\u306E\u96C6\u8A08\u306E\u5FDC\u7B54\u306B total_actions \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
20
+ return Object.fromEntries(Object.entries(row).filter(([key])=>key!=="result"))}function countCsvRecords(text){let lines=0;let inQuote=false;let pending=false;for(const ch of text.startsWith("\uFEFF")?text.slice(1):text){if(ch==='"')inQuote=!inQuote;if(ch==="\n"&&!inQuote){lines+=1;pending=false}else if(ch!=="\r"){pending=true}}if(pending)lines+=1;return Math.max(0,lines-1)}function checkList(input){period(input);actionFilter(input);const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&
21
+ 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 checkExport(input){if(!input.flags.has("--from")){throw new UsageError("export \u306B\u306F --from \u304C\u5FC5\u8981\u3067\u3059","\u4F8B: twp audit-log export --o\
22
+ ut audit.csv --from 2026-10-01")}period(input,todayJst());actionFilter(input)}var FILTER_USAGE="[--from <\u65E5\u4ED8>] [--to <\u65E5\u4ED8>] [--user <\u30E6\u30FC\u30B6\u30FC>] [--target-user <\u30E6\u30FC\u30B6\u30FC>] [--project <\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8>] [--action <\u64CD\u4F5C>]";var listOperation={name:"list",summary:`${LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u671F\u9593\u30FB\u64CD\u4F5C\u8005\u30FB\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30FB\u64CD\u4F5C\u3067\u7D5E\u308A\u8FBC\u3081\u308B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09`,
23
+ usage:`twp audit-log list ${FILTER_USAGE} [--all] [--limit <\u4EF6\u6570>]`,description:`\u65B0\u3057\u3044\u9806\u306B\u51FA\u3057\u307E\u3059\u3002\u8AB0\u304C\u3044\u3064\u4F55\u3092\u5909\u3048\u305F\u304B\uFF08\u30BF\u30B9\u30AF\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672C\u4F53\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E1\u30F3\u30D0\u30FC\u306E\u5909\u66F4\uFF09\u3092\u8FFD\u3046\u306E\u306B\u4F7F\u3044\u307E\u3059\u3002
24
+
25
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
26
+ operation \u306F\u64CD\u4F5C\u306E\u7A2E\u985E\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672C\u4F53\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u8A18\u9332\u306F\u300C\u30E1\u30F3\u30D0\u30FC\u8FFD\u52A0\u300D\u7B49\u306E\u5185\u5BB9\uFF09\u3001target \u306F\u30BF\u30B9\u30AF\u4EF6\u540D\u304B\u5BFE\u8C61\u540D\u3067\u3059\u3002
27
+ \u5909\u66F4\u524D\u5F8C\u306E\u5024\uFF08changes\uFF09\u3068\u30B3\u30E1\u30F3\u30C8\u672C\u6587\uFF08comment\uFF09\u306F\u500B\u4EBA\u60C5\u5831\u3092\u542B\u307F\u3046\u308B\u306E\u3067\u8981\u7D04\u5217\u306B\u51FA\u3057\u307E\u305B\u3093\u3002
28
+ --output json\uFF08API \u304C\u8FD4\u3059\u5168\u9805\u76EE\uFF09\u304B twp audit-log export\uFF08CSV\uFF09\u3067\u898B\u3066\u304F\u3060\u3055\u3044\u3002
29
+
30
+ `+FILTER_HELP+`
31
+
32
+ \u7D5E\u308A\u8FBC\u307F\u306F\u30B5\u30FC\u30D0\u304C\u8AAD\u3093\u3060\u5F8C\u306B\u639B\u304B\u308B\u306E\u3067\u3001--limit\uFF08\u65E2\u5B9A 50\u30FB\u6700\u5927 ${MAX_LIMIT}\uFF09\u306B\u6E80\u305F\u306A\u3044\u30DA\u30FC\u30B8\u306B
33
+ \u300C\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u300D\u304C\u4ED8\u304F\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u7D5E\u308A\u8FBC\u3093\u3067\u63A2\u3059\u3068\u304D\u306F --all \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002
34
+
35
+ `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,...FILTER_FLAGS],paging:listPaging,forbidden:FORBIDDEN,prepare:(input,ctx)=>prepareFilters(input,ctx,"list",()=>checkList(input)),plan(input){noArgs(input,"list");const limit=checkList(input);return{method:"GET",path:PATH,query:{...filterQuery(input),limit,cursor:nonEmpty(input.flags,"--cursor")}}},summarize:body=>listRows(body).map(summarizeEntry),raw:body=>listRows(body)};var statsOperation={name:"stats",summary:`\u76F4\u8FD1\u306E${LABEL}\u3092\u96C6\u8A08\u3059\u308B\uFF08\u64CD\u4F5C\u306E\u7A2E\u985E\u3054\u3068\u306E\u4EF6\
36
+ \u6570\u30FB\u64CD\u4F5C\u3057\u305F\u4EBA\u6570\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:"twp audit-log stats [--days <\u65E5\u6570>]",description:`\u76F4\u8FD1 --days \u65E5\uFF08\u65E2\u5B9A 7\u30FB\u6700\u5927 ${MAX_STATS_DAYS}\uFF09\u306E\u64CD\u4F5C\u3092\u3001\u7A2E\u985E\u3054\u3068\u306B\u6570\u3048\u307E\u3059\uFF08\u671F\u9593\u306F\u30B5\u30FC\u30D0\u304C\u4ECA\u306E\u6642\u523B\u304B\u3089\u9061\u3063\u3066\u6C7A\u3081\u307E\u3059\uFF09\u3002
37
+ \u26A0 \u30B5\u30FC\u30D0\u306F\u65B0\u3057\u3044\u9806\u306B ${SERVER_SCAN_LIMIT.toLocaleString("en-US")} \u4EF6\u307E\u3067\u3057\u304B\u6570\u3048\u307E\u305B\u3093\u3002total_actions \u304C ${SERVER_SCAN_LIMIT.toLocaleString("en-US")} \u306B\u5C4A\u3044\u305F\u3089
38
+ \u5B9F\u969B\u3088\u308A\u5C11\u306A\u304F\u51FA\u3066\u3044\u308B\u306E\u3067\u3001twp audit-log list --from <\u65E5\u4ED8> --all \u3067\u6570\u3048\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08stderr \u3067\u3082\u8A00\u3044\u307E\u3059\uFF09\u3002
39
+ \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672C\u4F53\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u5909\u66F4\u306F\u7A2E\u985E\u3054\u3068\u306E\u4EF6\u6570\u306B\u5165\u3089\u305A\u3001total_actions \u306B\u3060\u3051\u5165\u308A\u307E\u3059\u3002`,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,
40
+ "--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`)}return{method:"GET",path:`${PATH}/stats`,query:{days}}},summarize:statsRow,raw:statsRow,notes(body){const total=isRecord(body)?body["total_actions"]:void 0;return typeof total==="number"&&total>=SERVER_SCAN_LIMIT?[`\u30B5\u30FC\u30D0\u306F\u65B0\u3057\u3044\u9806\u306B ${SERVER_SCAN_LIMIT} \u4EF6\u307E\u3067\u3057\u304B\u6570\u3048\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u96C6\u8A08\u306F\u5B9F\u969B\u3088\u308A\u5C11\
41
+ \u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u6B63\u78BA\u306A\u4EF6\u6570\u306F twp audit-log list --from <\u65E5\u4ED8> --all \u3067\u6570\u3048\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]:[]}};var exportOperation={name:"export",summary:`${LABEL}\u3092 CSV \u306B\u66F8\u304D\u51FA\u3059\uFF08--out\u30FB\u753B\u9762\u306E\u300CCSV\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u300D\u3068\u540C\u3058\u5185\u5BB9\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:`twp \
42
+ audit-log export --out <\u30D1\u30B9.csv> [--force] --from <\u65E5\u4ED8> ${FILTER_USAGE.replace("[--from <\u65E5\u4ED8>] ","")}`,description:`\u753B\u9762\u306E\u300CCSV\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u300D\u3068\u540C\u3058 CSV\uFF08UTF-8\u30FBBOM \u4ED8\u304D\u30FB\u5217\u306F \u65E5\u6642 / \u64CD\u4F5C\u8005 / \u64CD\u4F5C\u7A2E\u5225 / \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8ID / \u30BF\u30B9\u30AF\u30AD\u30FC /
43
+ \u30BF\u30B9\u30AF\u4EF6\u540D / \u5909\u66F4\u5185\u5BB9 / \u30B3\u30E1\u30F3\u30C8\uFF09\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D7\u3051\u53D6\u3063\u3066\u66F8\u304D\u51FA\u3057\u307E\u3059\u3002\u5909\u66F4\u524D\u5F8C\u306E\u5024\u3068\u30B3\u30E1\u30F3\u30C8\u672C\u6587\u3092\u542B\u3080\u306E\u3067\u6271\u3044\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
44
+ --from \u306F\u5FC5\u9808\u3067\u3059\u3002--to \u3092\u7701\u304F\u3068\u65E5\u672C\u6642\u9593\u306E\u4ECA\u65E5\u307E\u3067\u3067\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002
45
+ \u26A0 \u30B5\u30FC\u30D0\u306F1\u56DE\u306B ${SERVER_SCAN_LIMIT.toLocaleString("en-US")} \u884C\u307E\u3067\u3057\u304B\u51FA\u3057\u307E\u305B\u3093\u3002\u5C4A\u3044\u305F\u3089\u53E4\u3044\u5206\u304C\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308B\u306E\u3067\uFF08stderr \u3067\u3082\u8A00\u3044\u307E\u3059\uFF09\u3001
46
+ \u671F\u9593\u3092\u5206\u3051\u3066\u66F8\u304D\u51FA\u3059\u304B\u3001twp audit-log list --all --output json \u3067\u5168\u4EF6\u3092\u53D6\u3063\u3066\u304F\u3060\u3055\u3044\u3002
47
+ \u7D5E\u308A\u8FBC\u307F\u3092\u4ED8\u3051\u305F\u3068\u304D\u306F\u3001\u8A72\u5F53\u304C\u758E\u3060\u3068\u4E0A\u9650\u3088\u308A\u5C11\u306A\u304F\u3066\u3082\u5207\u308C\u3066\u3044\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u8AAD\u307F\u8DB3\u3057\u306F5\u56DE\u307E\u3067\u3002stderr \u3067\u3082\u8A00\u3044\u307E\u3059\uFF09\u3002
48
+
49
+ `+FILTER_HELP,flags:[{name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false},...FILTER_FLAGS],download:{outFlag:"--out",forceFlag:"--force"},forbidden:FORBIDDEN,prepare:(input,ctx)=>prepareFilters(input,ctx,"export",()=>checkExport(input)),plan(input){noArgs(input,"\
50
+ export");checkExport(input);return{method:"GET",path:`${PATH}/export`,query:filterQuery(input,todayJst())}},summarize:body=>body,raw:body=>body,notes(body,input){const file=isRecord(body)?body["path"]:void 0;if(typeof file!=="string")return[];let rows;try{rows=countCsvRecords(fs.readFileSync(file,"utf8"))}catch{return[]}if(rows>=SERVER_SCAN_LIMIT){return[`${rows} \u884C\u3067\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\uFF08${SERVER_SCAN_LIMIT} \u884C\uFF09\u306B\u5C4A\u304D\u307E\u3057\u305F\u3002\u65B0\u3057\u3044\u9806\u306B\u5207\u3089\u308C\u3001\u671F\u9593\u306E\u53E4\u3044\u5074\u304C\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002--from / --to \u3067\u671F\u9593\u3092\u5206\u3051\
51
+ \u3066\u66F8\u304D\u51FA\u3059\u304B\u30011\u65E5\u3067\u3082\u4E0A\u9650\u306B\u5C4A\u304F\u306A\u3089 twp audit-log list --from <\u65E5\u4ED8> --to <\u65E5\u4ED8> --all --output json \u3067\u5168\u4EF6\u3092\u53D6\u3063\u3066\u304F\u3060\u3055\u3044\u3002`]}const notes=[`${rows} \u884C\u3092\u66F8\u304D\u51FA\u3057\u307E\u3057\u305F\u3002`];if(hasFilter(input)){notes.push(`\u7D5E\u308A\u8FBC\u307F\uFF08--user / --target-user / --project / --action\uFF09\u306F\u30B5\u30FC\u30D0\u304C\u8AAD\u3093\u3060\u5F8C\u306B\u639B\u304B\u308A\u3001\u8AAD\u307F\u8DB3\u3057\u306F5\u56DE\u307E\u3067\u3067\u3059\u3002\u8A72\u5F53\u304C\u758E\u3060\u3068 ${SERVER_SCAN_LIMIT}\
52
+ \u884C\u306B\u5C4A\u304B\u306A\u304F\u3066\u3082\u53E4\u3044\u5074\u304C\u6B20\u3051\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u5168\u4EF6\u304B\u78BA\u304B\u3081\u308B\u306B\u306F\u3001\u540C\u3058\u6761\u4EF6\u306E twp audit-log list --all --output json \u3068\u4EF6\u6570\u3092\u7A81\u304D\u5408\u308F\u305B\u3066\u304F\u3060\u3055\u3044\u3002`)}return notes}};var auditLogDomain={name:"audit-log",summary:"\u30C6\u30CA\u30F3\u30C8\u306E\u76E3\u67FB\u30ED\u30B0\uFF08\u4E00\u89A7\u30FB\u96C6\u8A08\u30FBCSV \u51FA\u529B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
53
+ operations:[listOperation,statsOperation,exportOperation]};export{ACTIONS,SERVER_SCAN_LIMIT,auditLogDomain,countCsvRecords,summarizeEntry,todayJst};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-M36DAHMH.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";
3
+ import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-6DM366P6.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";
4
4
  import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,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";var DEFAULT_COUNT=20;var MAX_COUNT=100;var NUMERIC=/^[0-9]+$/;var ISSUE_REF=/^(?:[A-Za-z0-9_]+-[0-9]+|[0-9]+)$/;var DATE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;var SPACE_COLUMNS=["id","space_url"];var PROJECT_COLUMNS=["id","projectKey","name"];var ISSUE_LIST_COLUMNS=["issueKey","summary","status","assignee","priority","dueDate","updated","descriptionTruncated"];var ISSUE_GET_COLUMNS=["id","issueKey","projectId","summary","description","descriptionTruncated","status","issueType","priority","assignee","cr\
5
5
  eatedUser","parentIssueId","startDate","dueDate","estimatedHours","actualHours","created","updated"];var ISSUE_JSON_SHAPE_HELP='--output json \u306E\u5F62\uFF08Backlog API \u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09:\n TWP \u30B5\u30FC\u30D0\u304C\u6574\u3048\u305F\u5F62\u3067\u8FD4\u308A\u307E\u3059\u3002Backlog API \u306E\u8AB2\u984C\u3092\u305D\u306E\u307E\u307E\u8AAD\u3080\u524D\u63D0\u3067\u66F8\u304F\u3068\u58CA\u308C\u307E\u3059\u3002\n - status / priority / resolution / issueType / assignee / createdUser / updatedUser \u306F\n \u540D\u524D\u306E\u6587\u5B57\u5217\u3067\u3059\uFF08{id, name} \u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002ID \u306F statusId / issueTypeId /\n assigneeId \u2026 \u306E\u3088\u3046\u306B\u672B\u5C3E Id \u306E\u5225\u30AD\u30FC\u306B\u3042\u308A\u307E\u3059\u3002\u672A\u8A2D\u5B9A\u306A\u3089\u4E21\u65B9 null \u3067\u3059\u3002\n - category / versions / milestone \u306F {id, name} \u306E\u914D\u5217\u306E\u307E\u307E\u3067\u3059\uFF08\u8907\u6570\u4ED8\u3051\u3089\u308C\u308B\u305F\u3081\u3001\n \
6
6
  \u540D\u524D\u3068 ID \u3092\u5225\u30AD\u30FC\u3078\u5206\u3051\u308B\u3068\u5BFE\u5FDC\u304C\u5D29\u308C\u307E\u3059\uFF09\u3002customFields \u3082\u914D\u5217\u3067\u3059\u3002\n \u4F8B\uFF081\u4EF6\u30FB\u629C\u7C8B\uFF09:\n {"id": 1234, "issueKey": "PRJ-12", "summary": "\u2026",\n "statusId": 1, "status": "\u672A\u5BFE\u5FDC", "issueTypeId": 56, "issueType": "\u30BF\u30B9\u30AF",\n "assigneeId": 91, "assignee": "\u8C37 \u6A39",\n "category": [{"id": 7, "name": "\u8A2D\u8A08"}], "milestone": [], ...}\n --query \u3082\u3053\u306E\u5F62\u306B\u5F53\u305F\u308A\u307E\u3059\uFF08issue list \u306E\u4F8B: --query "[].{key: issueKey, type: issueType}"\uFF09\u3002';
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel}from"./chunk-EGOE26U7.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
- 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{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel};
3
+ import{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel}from"./chunk-7UAJ3ZY7.js";import"./chunk-NB2GXB27.js";import"./chunk-MQOHOOJP.js";import"./chunk-UVCJXHWN.js";import"./chunk-EXT4AIDF.js";import"./chunk-3UOVTIM6.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-M763HXDH.js";import"./chunk-W4NLJ2YK.js";import"./chunk-6DM366P6.js";
4
+ import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-MI6HVYR2.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{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel};
@@ -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-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";
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-3UOVTIM6.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-6DM366P6.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")}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{ORG_MASTER_LIMIT}from"./chunk-M36DAHMH.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
3
+ import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{ORG_MASTER_LIMIT}from"./chunk-6DM366P6.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
4
4
  map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.
5
5
  NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function numberValue(field,raw){
6
6
  const trimmed=raw.trim();const value=/^\d+(\.\d+)?$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isFinite(value)||value<field.min||value>field.max){throw new UsageError(`${field.flag} \u306F ${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B\u306E\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}var TIME_RE=/^\d{2}:\d{2}$/;function timeValue(flag,raw){const value=raw.