@tocca-systems/twp-cli 0.62.0 → 0.64.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.
- package/CHANGELOG.public.md +8 -0
- package/README.md +33 -0
- package/dist/{agent-TLKSUAYA.js → agent-UAOZYMQM.js} +1 -1
- package/dist/{agent-loop-SWXPY3OD.js → agent-loop-GPPUR2WD.js} +1 -1
- package/dist/{ai-dispatch-EEX3FOFD.js → ai-dispatch-FZDFJ4TN.js} +4 -4
- package/dist/{analysis-XO3WRAJR.js → analysis-RKWGO7UY.js} +1 -1
- package/dist/{announcement-LNG32J6X.js → announcement-ASKS53LL.js} +1 -1
- package/dist/{api-command-G2TNSWKE.js → api-command-N2OJNJBC.js} +3 -3
- package/dist/{app-AOB26ORS.js → app-QA2HKG6E.js} +3 -3
- package/dist/{attendance-correct-3C2BHJQG.js → attendance-correct-KBNPGFGR.js} +1 -1
- package/dist/{attendance-lists-VMOIE3XO.js → attendance-lists-C7TO3GQ2.js} +1 -1
- package/dist/{backlog-D5LZIEN4.js → backlog-AWOTTGPB.js} +1 -1
- package/dist/{budget-RENLLCYQ.js → budget-Z6ILL7AU.js} +1 -1
- package/dist/{chunk-3YG7EN3Y.js → chunk-234WHKGS.js} +2 -2
- package/dist/{chunk-EWRZ4GSN.js → chunk-4CR64SNH.js} +2 -2
- package/dist/{chunk-QZBE4KC2.js → chunk-4P7EYEL5.js} +2 -2
- package/dist/{chunk-EO3M43TN.js → chunk-5LPELULJ.js} +1 -1
- package/dist/{chunk-SLD6FCXA.js → chunk-6PQO3AYP.js} +1 -1
- package/dist/{chunk-HEQCEFAW.js → chunk-FDRXS6ZU.js} +1 -1
- package/dist/{chunk-T4YEQWJO.js → chunk-FITASHOM.js} +2 -2
- package/dist/{chunk-MYWDL3WX.js → chunk-ITRTFBV3.js} +70 -66
- package/dist/{chunk-WBSAJ3P2.js → chunk-JYCJ4N6T.js} +1 -1
- package/dist/{chunk-T5CRU4DB.js → chunk-LAAKI3GS.js} +1 -1
- package/dist/{chunk-4PROMNXI.js → chunk-NQWTPHUO.js} +1 -1
- package/dist/chunk-PIB6MGG5.js +15 -0
- package/dist/chunk-QHX5YFMM.js +23 -0
- package/dist/{chunk-LMYOCAEY.js → chunk-RROCQRRY.js} +1 -1
- package/dist/{chunk-52V2AZ7D.js → chunk-RWR7OHVP.js} +1 -1
- package/dist/chunk-RZ2NZE4U.js +36 -0
- package/dist/chunk-THOBFX2S.js +10 -0
- package/dist/{chunk-BZJJAJGN.js → chunk-UIHNYBME.js} +1 -1
- package/dist/{chunk-CSXCHRYE.js → chunk-VV4GTQ2L.js} +1 -1
- package/dist/{chunk-7LFYDASU.js → chunk-XPPT3MUY.js} +2 -2
- package/dist/{chunk-E3KMIBSP.js → chunk-YKI7NYBD.js} +1 -1
- package/dist/cli.js +23 -8
- package/dist/{commands-RCCF5ZRU.js → commands-HK7DUMUJ.js} +18 -14
- package/dist/{company-F3IGQMOJ.js → company-YPDJZ3SE.js} +2 -2
- package/dist/{completion-WKXK7VGT.js → completion-7RHQKR5U.js} +4 -4
- package/dist/{contract-OWR27GIO.js → contract-2Y5VN3TR.js} +2 -2
- package/dist/{department-3QDHMZ5P.js → department-K4EFC6NW.js} +1 -1
- package/dist/{deposit-IPYESXIQ.js → deposit-NTLHIMJL.js} +1 -1
- package/dist/{estimate-4P67OZWB.js → estimate-C5LUNIWR.js} +3 -3
- package/dist/{evaluation-ZA23GR7P.js → evaluation-ZWUHSENB.js} +1 -1
- package/dist/{expense-GEOAM7B3.js → expense-BXJ7QYMP.js} +1 -1
- package/dist/{inquiry-3SCMJOEM.js → inquiry-KHPPTYN6.js} +1 -1
- package/dist/{invoice-ONTG53HY.js → invoice-VV2NT4A3.js} +2 -2
- package/dist/{job-title-OQQH5W6C.js → job-title-RCSL5Y2Z.js} +1 -1
- package/dist/{knowledge-IX7AZIBJ.js → knowledge-BLU6RHS5.js} +1 -1
- package/dist/{leave-7HMMZPCR.js → leave-RJBCHZCQ.js} +1 -1
- package/dist/{media-GAL5WENN.js → media-OIAOW546.js} +3 -3
- package/dist/{notification-ZT23M4R6.js → notification-KPMGELOR.js} +1 -1
- package/dist/{oneshot-4NIS4J4S.js → oneshot-OWEBFX5O.js} +1 -1
- package/dist/plan-submit-AWMD7XOY.js +3 -0
- package/dist/{position-HWBHYAD2.js → position-NY5LRELH.js} +1 -1
- package/dist/{project-3ROID2HA.js → project-4MEGZ326.js} +1 -1
- package/dist/{prospect-7B5UWFLH.js → prospect-7D2WK56K.js} +2 -2
- package/dist/{purchase-QVINV4TM.js → purchase-S7W67LJP.js} +3 -3
- package/dist/{receivable-66MYAIVR.js → receivable-GFJTEELC.js} +1 -1
- package/dist/redmine-P3EMFFHY.js +35 -0
- package/dist/{registry-JABWR2GZ.js → registry-GRRRT3I6.js} +1 -1
- package/dist/{report-XFTM4GCX.js → report-FUIVLC7B.js} +1 -1
- package/dist/{run-5COXNYKX.js → run-LSWFO4IY.js} +2 -2
- package/dist/{sales-ai-review-IVRISSWX.js → sales-ai-review-P36TTQRO.js} +1 -1
- package/dist/{sales-master-BGVF2AZL.js → sales-master-3CGHEFKF.js} +2 -2
- package/dist/{sales-numbering-4423JWN6.js → sales-numbering-3M2C2MAI.js} +1 -1
- package/dist/{search-TMROBRYD.js → search-U3QNPR4D.js} +1 -1
- package/dist/{server-skills-5CKBIIQ4.js → server-skills-IFTDV3IQ.js} +1 -1
- package/dist/{setup-U22KITRG.js → setup-MUPUY2AX.js} +1 -1
- package/dist/{skill-S7EPMW5Z.js → skill-C4TGG7SH.js} +1 -1
- package/dist/{supplier-payment-O7GZSKGD.js → supplier-payment-KG57PNWJ.js} +2 -2
- package/dist/{support-U3VY5JI5.js → support-BRVAJ7IH.js} +1 -1
- package/dist/{task-EQBPQ7H4.js → task-RYBYPM4N.js} +2 -2
- package/dist/{user-XYUB54QT.js → user-3DE46776.js} +2 -2
- package/dist/{worker-agent-VPRWBAWG.js → worker-agent-XCJGZHMT.js} +1 -1
- package/dist/{workflow-GMP6W5EF.js → workflow-MMEOWZJC.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-5BDE3A3N.js +0 -34
- package/dist/chunk-MPEHKAAL.js +0 -15
- package/dist/chunk-YNRONUTZ.js +0 -10
package/CHANGELOG.public.md
CHANGED
|
@@ -11,6 +11,14 @@
|
|
|
11
11
|
`CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
|
+
## 0.64.0
|
|
15
|
+
|
|
16
|
+
`twp redmine` を追加しました。TWP の個人設定(外部システム連携)に登録した Redmine のチケット本文・コメント・添付を読めます(`issue get` / `attachment download` など)。書き込みはできません。
|
|
17
|
+
|
|
18
|
+
## 0.63.0
|
|
19
|
+
|
|
20
|
+
エージェントループの計画AIが `twp task-loop plan submit` で計画を提出できるようになりました。検査に落ちた step は理由つきで返るので、計画AIがその場で直して出し直せます。
|
|
21
|
+
|
|
14
22
|
## 0.62.0
|
|
15
23
|
|
|
16
24
|
`twp task-loop` のループ設定に `operations.plan_gate` を追加しました。計画の前に指定したコマンドで入力の指紋を取り、前回の計画から変化が無ければ計画の AI を起動しません(コマンドが失敗したときや、`max_skip_sec` を過ぎたときは計画します)。
|
package/README.md
CHANGED
|
@@ -1350,6 +1350,27 @@ twp backlog issue update <課題キー> [--assignee <名前|ID>] [--status <
|
|
|
1350
1350
|
- 担当の解除(未設定に戻す)はできません
|
|
1351
1351
|
- ⚠ **失敗しても機械的に再実行しないでください。** Backlog に冪等キーは無く、投稿が届いた後に応答の読み取りだけ失敗した場合、再実行すると同じコメントが二重に残ります(終了コードだけでは区別できません。`twp backlog comment list <課題キー>` で実物を確かめてください)
|
|
1352
1352
|
|
|
1353
|
+
### Redmine のチケットを読む
|
|
1354
|
+
|
|
1355
|
+
TWP の個人設定(外部システム連携)に登録した Redmine を通して、チケットの本文・コメント・添付を読みます。書き込み(チケット更新・コメント投稿)はできません。
|
|
1356
|
+
|
|
1357
|
+
```
|
|
1358
|
+
twp redmine space list # 登録済みの接続先(--space に渡す ID)
|
|
1359
|
+
twp redmine project list [--space <ID|URL>] [--all]
|
|
1360
|
+
twp redmine issue list [--project <識別子|ID>] [--status open|closed|*|<ID>] [--assignee me|<ID>]
|
|
1361
|
+
[--limit <件数>] [--cursor <カーソル>] [--all]
|
|
1362
|
+
twp redmine issue get <チケット番号> # 本文・コメント(journals)・添付一覧
|
|
1363
|
+
twp redmine attachment list <チケット番号> # id / filename / filesize
|
|
1364
|
+
twp redmine attachment download <添付ID> --out <パス> # 実体をファイルへ書き出す
|
|
1365
|
+
```
|
|
1366
|
+
|
|
1367
|
+
- **接続先の登録が1件だけなら `--space` は省略できます**(そのとき、どの接続先を使ったかを必ず表示します)。2件以上なら `--space` で指定してください。`--space` には ID のほか、表示名・接続先URL・ホスト名が使えます
|
|
1368
|
+
- `twp redmine issue get` の `--output json` は Redmine の応答をそのまま返します。コメントは `journals` に入り、ステータス・担当などの変更履歴(`details`)も含まれます
|
|
1369
|
+
- `twp redmine issue list` の既定は Redmine と同じく**未完了のチケットだけ**です。完了済みも含めるときは `--status '*'` を付けてください
|
|
1370
|
+
- 一覧は `--all` で最後まで辿れます(`--limit` の上限は 100 です)
|
|
1371
|
+
- `twp redmine attachment download` は `twp backlog attachment download` と同じく **`--out` のパスへ実体を書き出し、既存ファイルは `--force` を付けたときだけ上書きします**。添付ID は `twp redmine attachment list` の `id` で、ファイル名では指定できません
|
|
1372
|
+
- 接続先が IP 制限などで TWP から届かないときは、その旨のエラーで失敗します(終了コード 4)
|
|
1373
|
+
|
|
1353
1374
|
### Microsoft 365(Outlook・Teams・OneDrive)を読む
|
|
1354
1375
|
|
|
1355
1376
|
TWP に Microsoft アカウントでログインしたことがあるユーザーは、自分のメール・予定・Teams・OneDrive を読めます。メールの送信・返信・転送、Teams のチャット送信・チャネル投稿・スレッド返信、予定の作成・更新・削除、OneDrive へのアップロードと共有リンクの作成もできます。
|
|
@@ -1815,6 +1836,18 @@ twp task-loop skill pull --project <キー|UUID> --all # サーバの全件
|
|
|
1815
1836
|
- **ループはキュー項目の `/<名前>` をサーバ版で実行します。** サーバに登録されたスキルはサーバ版が、登録されていないスキル(または本文を取得できなかったとき)は作業ディレクトリのファイルが使われます。サーバ版は作業ディレクトリへ書き出さずに実行します(claude にはプロンプト内で展開して渡します)
|
|
1816
1837
|
- どちらで走ったかはループのログとステップログに `skill=server@rev<番号>` / `skill=file` として残ります。一覧はサイクルごとに1回だけ取得し、本文は内容が変わったスキルだけを取り直します
|
|
1817
1838
|
|
|
1839
|
+
### 計画AIが計画を提出する(`plan submit`)
|
|
1840
|
+
|
|
1841
|
+
```bash
|
|
1842
|
+
twp task-loop plan submit --file plan.json # ファイルから(- なら標準入力)
|
|
1843
|
+
twp task-loop plan submit --empty # 積むものが無い(0件)
|
|
1844
|
+
twp task-loop plan submit --file plan.json --check # 検査だけ(提出しない)
|
|
1845
|
+
```
|
|
1846
|
+
|
|
1847
|
+
- **計画フェーズの中でだけ使えます。** ループが計画AIを起動するときにだけ鍵(環境変数 `TWP_LOOP_PLAN_TOKEN` / `TWP_LOOP_PLAN_DIR`)を渡し、計画フェーズが終わると無効にします。それ以外で打つと終了コード `2` で拒否します
|
|
1848
|
+
- 計画の形は応答の文章に書く場合と同じ `{"steps": [{"skill": "...", "args": "...", "label": "...", "priority": "P2"}]}` です。step ごとに受理/棄却と理由(存在しないスキル・`/twp-` 付きのスキル名・雛形のままのタスクキー・同じタスクキーの重複・型の誤り)を表と JSON で表示し、棄却が1件でもあれば何も提出せず終了コード `1` で終わります。直して出し直すと、最後に受理された提出が有効です
|
|
1849
|
+
- **提出しただけではキューに積まれません。** 計画AIの終了後にループが一度に登録します(他ランナーが処理中・キュー待ち等の検査はこのとき従来どおり行います)。提出が無いときは、従来どおり応答の文章から計画を取り出します
|
|
1850
|
+
|
|
1818
1851
|
### 必要なもの
|
|
1819
1852
|
|
|
1820
1853
|
- 使う AI CLI が**インストール済みかつログイン済み**であること(`twp task-loop setup` が検出し、使えないものは理由を出して止まります)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{AGENT_REPOSITORIES_PATH,AGENT_SESSIONS_PATH}from"./chunk-
|
|
3
|
+
import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{AGENT_REPOSITORIES_PATH,AGENT_SESSIONS_PATH}from"./chunk-ITRTFBV3.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";
|
|
4
4
|
import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var SESSION_COLUMNS=["sessionId","status","repositoryFullName","baseBranch","workBranch","prUrl","aiModel","myRole","createdAt"];var SESSION_GET_COLUMNS=["sessionId","status","repositoryFullName","repositoryId","baseBranch","workBranch","branchName","prUrl","errorMessage","aiProvider","aiModel","sessionMode","executionMode","masterUserName","myRole","createdAt","updatedAt","completedAt","instructions"];var CHAT_COLUMNS=["timestamp","role","user_name","content"];var REPOSITORY_COLUMNS=["id","full\
|
|
5
5
|
_name","default_branch","private"];var BRANCH_COLUMNS=["name","protected"];var DIFF_COLUMNS=["path","status","additions","deletions"];var INSTRUCTION_MAX_CHARS=1e4;var ACTIVE=new Set(["created","pending","provisioning","running"]);var FAILED=new Set(["failed","cancelled","expired"]);var WAIT_POLL_INTERVAL_MS=5e3;var WAIT_DEFAULT_SECONDS=300;var WAIT_MAX_SECONDS=540;var WAIT_CHAT_SCAN_LIMIT=2e3;var sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));var SESSION_REF_HELP="<\u30BB\u30C3\u30B7\u30E7\u30F3> \u306F\u30BB\u30C3\u30B7\u30E7\u30F3 ID\uFF08twp \
|
|
6
6
|
agent session list \u306E sessionId \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 ${op} help`}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(" ")}`,usageOf(op))}function single(input,op,label,hint){const values=input.args.map(arg=>arg.trim());if(values.length>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{stepToItem}from"./chunk-QEWCTKPV.js";import
|
|
3
|
+
import{stepToItem}from"./chunk-QEWCTKPV.js";import"./chunk-DXUFECE7.js";import{loadLocalConfig}from"./chunk-2B7A3OY7.js";import{loadAiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-N2UVRM3Z.js";import"./chunk-AT432SCP.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";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\
|
|
5
5
|
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 PROJECT_FLAG={name:"--project",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:"\
|
|
6
6
|
<\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:"<\u30A2\u30A4\u30C6\u30E0ID>"};var FORBIDDEN_CORE="\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\uFF08admin \u30ED\u30FC\u30EB\uFF09\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u500B\u4EBA\u30AD\u30E5\u30FC\u3092\u9664\u304F\uFF09";
|
|
@@ -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-ZOOEH7ZE.js";import{detectAiClis}from"./chunk-T4QZO6RQ.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-
|
|
3
|
+
import{failureHint,isAuthError,isCliFatalText,isRateLimited,isServerAiType,isUntrusted,maxTurnsReached,rateLimitWaitSeconds,tailForScan}from"./chunk-ZOOEH7ZE.js";import{detectAiClis}from"./chunk-T4QZO6RQ.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-PIB6MGG5.js";import"./chunk-YJZT3UD3.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{ClaudeStreamRenderer}from"./chunk-DXUFECE7.js";import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,
|
|
4
4
|
detectClaudeAutoSwitch,isClaudeAi,isUsableModelId,modelFitsRoute,resolveSpawnTarget,usesBedrock,wrapWithAutoSwitch}from"./chunk-AEJHDFXB.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import"./chunk-AT432SCP.js";import"./chunk-GY7KI5E5.js";import"./chunk-VFPY2A23.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
|
|
5
5
|
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(
|
|
@@ -34,9 +34,9 @@ null;if(resets!==null){const wait=Math.trunc((resets*1e3-now.getTime())/1e3);if(
|
|
|
34
34
|
0&&size<64*1024){from-=1;size+=(lines[from]??"").length+1}return lines.slice(from).join("\n")}function sleepSync(ms){const shared=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(shared,0,0,ms)}var DEFAULT_CHARTER_PREFIX="===== \u4EE5\u4E0B\u306F\u958B\u767A\u61B2\u7AE0\u3067\u3059\u3002\u5168\u3066\u306E\u5224\u65AD\u306E\u6700\u4E0A\u4F4D\u57FA\u6E96\u3067\u3042\u308A\u3001\u500B\u5225\u30B9\u30AD\u30EB\u306E\u624B\u9806\u3068\u77DB\u76FE\u3059\u308B\u5834\u5408\u306F\u672C\u61B2\u7AE0\u304C\u512A\u5148\u3057\u307E\u3059\u3002\u884C\u52D5\u3059\u308B\u524D\u306B\u3001\u305D\u306E\u884C\u52D5\u304C\u61B2\u7AE0\u306E\u76EE\u7684\u306B\u5BC4\u4E0E\u3059\u308B\u304B\u3092\u81EA\u3089\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 =====";
|
|
35
35
|
var DEFAULT_CHARTER_SUFFIX="===== \u958B\u767A\u61B2\u7AE0\u3053\u3053\u307E\u3067\u3002\u4EE5\u4E0B\u304C\u4ECA\u56DE\u306E\u30BF\u30B9\u30AF\u6307\u793A\u3067\u3059\u3002 =====";function wrapCharter(prefix,body,suffix){const parts=[];if(prefix!=="")parts.push(prefix);parts.push(body);if(suffix!=="")parts.push(suffix);return parts.join("\n\n")}var UNKNOWN_SLOT="(unresolved)";var FAST_FAIL_SEC=60;var FAST_FAIL_STREAK=3;var HEALTH_PROBE_AIS=["codex","gemini","copilot"];var HEALTH_PROBE_TTL_MS=1800*
|
|
36
36
|
1e3;var HEALTH_PROBE_TIMEOUT_SEC=60;var HEALTH_PROBE_PROMPT="Health check. Do not read or modify any files and do not run any commands. Reply with exactly: OK";var DispatchEngine=class{constructor(cfg,log,opts){this.cfg=cfg;this.log=log;this.opts=opts}cfg;log;opts;name="cli";cas=null;casDetected=false;slotResolved=new Map;lastSlot=new Map;charterWarned=false;unusable=null;activeAbort=null;aborting=false;unusableAt=0;fastFailStreak=new Map;healthyAt=new Map;launcherBin(){const v=this.opts.launcherBin?.
|
|
37
|
-
trim();return v===void 0||v===""?DEFAULT_CLAUDE_LAUNCHER.bin:v}async run(req){this.slotResolved.clear();if(this.aborting){this.log("\u26D4 \u4E2D\u65AD\u30B7\u30B0\u30CA\u30EB\u3092\u53D7\u3051\u3066\u3044\u308B\u305F\u3081 AI \u3092\u8D77\u52D5\u3057\u307E\u305B\u3093");return{outcome:"aborted",usedAi:"",serverAiType:null,output:"\uFF08\u4E2D\u65AD\u306E\u305F\u3081\u672A\u5B9F\u884C\uFF09"}}const
|
|
38
|
-
skill);if(!this.preflightOk()){this.log("\u26D4 \u30DB\u30B9\u30C8\u5074\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u304C\u5230\u9054\u4E0D\u80FD\u3067\u3059\uFF08\u5168\u30DB\u30B9\u30C8\uFF09\u3002\u3053\u306E\u30A2\u30A4\u30C6\u30E0\u3067\u306F AI \u3092\u8D77\u52D5\u3057\u307E\u305B\u3093");return{outcome:"network-down",usedAi:"",serverAiType:null,output:"\uFF08\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5230\u9054\u4E0D\u80FD\u306E\u305F\u3081\u672A\u5B9F\u884C\uFF09"}}
|
|
39
|
-
this.opts.detect!==void 0?this.opts.detect():detectClaudeAutoSwitch(this.launcherBin());this.casDetected=true;this.log(this.cas===null?` ${this.launcherBin()}: \u672A\u5C0E\u5165\uFF08claude \u3092\u7D20\u3067\u8D77\u52D5\u3057\u307E\u3059\uFF09`:` ${this.launcherBin()}: \u691C\u51FA\uFF08exec ${this.cas.hasExec?"\u3042\u308A \u2192 \u7D4C\u7531\u3057\u3066\u8D77\u52D5\u3057\u307E\u3059":"\u7121\u3057 \u2192 \u7D20\u3067\u8D77\u52D5\u3057\u307E\u3059\uFF08\u66F4\u65B0\u3092\u63A8\u5968\uFF09"}\
|
|
37
|
+
trim();return v===void 0||v===""?DEFAULT_CLAUDE_LAUNCHER.bin:v}async run(req){this.slotResolved.clear();if(this.aborting){this.log("\u26D4 \u4E2D\u65AD\u30B7\u30B0\u30CA\u30EB\u3092\u53D7\u3051\u3066\u3044\u308B\u305F\u3081 AI \u3092\u8D77\u52D5\u3057\u307E\u305B\u3093");return{outcome:"aborted",usedAi:"",serverAiType:null,output:"\uFF08\u4E2D\u65AD\u306E\u305F\u3081\u672A\u5B9F\u884C\uFF09"}}const baseEnv=this.opts.env??process.env;const env=req.extraEnv===void 0?baseEnv:{...baseEnv,...req.extraEnv};
|
|
38
|
+
const skill=req.skill??"";const category=req.category??this.cfg.categoryForSkill(skill);if(!this.preflightOk()){this.log("\u26D4 \u30DB\u30B9\u30C8\u5074\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u304C\u5230\u9054\u4E0D\u80FD\u3067\u3059\uFF08\u5168\u30DB\u30B9\u30C8\uFF09\u3002\u3053\u306E\u30A2\u30A4\u30C6\u30E0\u3067\u306F AI \u3092\u8D77\u52D5\u3057\u307E\u305B\u3093");return{outcome:"network-down",usedAi:"",serverAiType:null,output:"\uFF08\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5230\u9054\u4E0D\u80FD\u306E\u305F\u3081\u672A\u5B9F\u884C\uFF09"}}
|
|
39
|
+
if(!this.casDetected){this.cas=this.opts.detect!==void 0?this.opts.detect():detectClaudeAutoSwitch(this.launcherBin());this.casDetected=true;this.log(this.cas===null?` ${this.launcherBin()}: \u672A\u5C0E\u5165\uFF08claude \u3092\u7D20\u3067\u8D77\u52D5\u3057\u307E\u3059\uFF09`:` ${this.launcherBin()}: \u691C\u51FA\uFF08exec ${this.cas.hasExec?"\u3042\u308A \u2192 \u7D4C\u7531\u3057\u3066\u8D77\u52D5\u3057\u307E\u3059":"\u7121\u3057 \u2192 \u7D20\u3067\u8D77\u52D5\u3057\u307E\u3059\uFF08\u66F4\u65B0\u3092\u63A8\u5968\uFF09"}\
|
|
40
40
|
\uFF09`)}const tried=[];let sawRateLimit=false;let sawTimeout=false;let sawFastFail=false;let sawUnavailable=false;let ranAny=false;let skippedForCooldown=false;let lastOutput="";let lastValidated=true;const requested=this.orderFor(category,skill,req.aiType);const head=requested[0]??"";const order=this.usableOrder(requested,category,skill);for(const ai of order){if(tried.includes(ai))continue;if(!this.cfg.isAllowed(ai,category,skill)){this.log(` ${ai} \u306F category=${category} / skill=${skill||
|
|
41
41
|
"none"} \u306E\u5B9F\u884C\u5BFE\u8C61\u5916\u306E\u305F\u3081\u30B9\u30AD\u30C3\u30D7`);continue}const slotFor=()=>{if(!isClaudeAi(ai))return null;if(this.cas===null)return null;if(this.slotResolved.has(ai))return this.slotResolved.get(ai)??null;const resolved=(this.opts.activeSlot??activeSlotPath)(this.cas);const effective=resolved??this.lastSlot.get(ai)??UNKNOWN_SLOT;if(resolved!==null)this.lastSlot.set(ai,resolved);else this.log(` ${ai} \u306E\u67A0\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${this.
|
|
42
42
|
launcherBin()} ${DEFAULT_CLAUDE_LAUNCHER.activeArgs.join(" ")}\uFF09\u3002${effective} \u3068\u3057\u3066\u6271\u3044\u307E\u3059`);this.slotResolved.set(ai,effective);return effective};const slotNow=this.cfg.hasCooldownFor(ai,this.now())?slotFor():null;if(this.cfg.isRateLimited(ai,this.now(),slotNow)){skippedForCooldown=true;this.log(` ${ai} \u306F\u30EC\u30FC\u30C8\u30EA\u30DF\u30C3\u30C8\u4E2D\u306E\u305F\u3081\u30B9\u30AD\u30C3\u30D7`);continue}const isHead=tried.length===0&&ai===head;this.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,monthsBetween,noArgs,profitRows,rangeNotes,recordOf,staffKpiRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-
|
|
3
|
+
import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,monthsBetween,noArgs,profitRows,rangeNotes,recordOf,staffKpiRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-LAAKI3GS.js";import"./chunk-RX5HWI4L.js";import"./chunk-YKI7NYBD.js";import"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";
|
|
4
4
|
import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,monthsBetween,noArgs,profitRows,rangeNotes,recordOf,staffKpiRows,workloadDistributionNotes,workloadDistributionRows};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{composeDocument,htmlToText,metaLine}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{ANNOUNCEMENTS_PATH}from"./chunk-
|
|
3
|
+
import{composeDocument,htmlToText,metaLine}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{ANNOUNCEMENTS_PATH}from"./chunk-ITRTFBV3.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
4
|
import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.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){
|
|
@@ -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{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-
|
|
4
|
-
import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-
|
|
3
|
+
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-234WHKGS.js";import"./chunk-THOBFX2S.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-YXVN6OCH.js";
|
|
4
|
+
import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import{
|
|
5
5
|
ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.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";import{effectiveApiUrl,
|
|
6
|
-
resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-
|
|
6
|
+
resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-4P7EYEL5.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,8 +1,8 @@
|
|
|
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-7PDUN5MS.js";import"./chunk-NZ7WI4RZ.js";import{buildDiffLines,
|
|
4
|
-
diffStat}from"./chunk-VRBI2NPI.js";import"./chunk-UFGJSWKU.js";import"./chunk-N2UVRM3Z.js";import"./chunk-
|
|
5
|
-
import"./chunk-XNLIEUAW.js";import{proxyDiagnostics}from"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,isBelowMinSupported,minSupportedBlockMessage}from"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import{configReadDirs,twpHomeDir}from"./chunk-RZVI6PMW.js";import{parseArgv}from"./chunk-
|
|
4
|
+
diffStat}from"./chunk-VRBI2NPI.js";import"./chunk-UFGJSWKU.js";import"./chunk-N2UVRM3Z.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{RelayError,builtinCatalog,createRuntime,loadCachedCatalog,modelLabel,pickModel,toModelInfos}from"./chunk-5WTFZJT7.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";
|
|
5
|
+
import"./chunk-XNLIEUAW.js";import{proxyDiagnostics}from"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,isBelowMinSupported,minSupportedBlockMessage}from"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import{configReadDirs,twpHomeDir}from"./chunk-RZVI6PMW.js";import{parseArgv}from"./chunk-RZ2NZE4U.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,nextMode}from"./chunk-2LOT54OO.js";import"./chunk-4P7EYEL5.js";
|
|
6
6
|
import"./chunk-QQRJLH6B.js";import{isFullWidth,isWide,stringWidth,stripAnsi}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{require_fuzzysort}from"./chunk-DIMZRTLE.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=
|
|
@@ -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-
|
|
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-LSWFO4IY.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{PUNCH_TYPES,assertMonthOpen,attendanceDomain}from"./chunk-
|
|
3
|
+
import{PUNCH_TYPES,assertMonthOpen,attendanceDomain}from"./chunk-YKI7NYBD.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,
|
|
4
4
|
ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.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\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{hoursMinutes}from"./chunk-
|
|
3
|
+
import{hoursMinutes}from"./chunk-YKI7NYBD.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
4
4
|
import"./chunk-RZVI6PMW.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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readBody}from"./chunk-6LSQCOCJ.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{readBody}from"./chunk-6LSQCOCJ.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
4
4
|
import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.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,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{analysisForbidden}from"./chunk-
|
|
3
|
+
import{analysisForbidden}from"./chunk-LAAKI3GS.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import"./chunk-YKI7NYBD.js";import"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";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 PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5
5
|
return ANALYSIS_FORBIDDEN(body)}var FORBIDDEN=budgetForbidden;var EDIT_HINT="\u76EE\u6A19\u306E\u8A2D\u5B9A\u30FB\u30B3\u30D4\u30FC\u30FB\u53D6\u308A\u8FBC\u307F\u306F\u3001\u5168\u4F53\u7BA1\u7406\u8005\u304B\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u3067\u304D\u307E\u3059\u3002\u6309\u5206\u306F\u305D\u308C\u306B\u52A0\u3048\u3066\u3001\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u3082\u3067\u304D\u307E\u3059\n\uFF08\u3069\u3061\u3089\u3082\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002";
|
|
6
6
|
var YEAR_MIN=2e3;var YEAR_MAX=2100;var IMPORT_MAX_BYTES=2048*1024;var SET_FILE_MAX_BYTES=4*1024*1024;var AMOUNT_MAX=999999999999;var SHOWN_OVERWRITES=24;var BOM=new RegExp(`^${String.fromCharCode(65279)}`);function usageOf(op){return`twp budget ${op} help`}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u306A\u3057\uFF09"}function noArgs(input,op){if(input.
|
|
@@ -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-
|
|
3
|
+
import{loadDomain}from"./chunk-THOBFX2S.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-YXVN6OCH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{Resolver,requireDefaultProject}from"./chunk-ITRTFBV3.js";
|
|
4
4
|
import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.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";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,
|
|
5
|
-
loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-
|
|
5
|
+
loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-4P7EYEL5.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
|
|
6
6
|
name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}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]))}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-
|
|
4
|
-
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-
|
|
3
|
+
import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-VV4GTQ2L.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-LAAKI3GS.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";
|
|
4
|
+
import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-YKI7NYBD.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-ITRTFBV3.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
5
5
|
--start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
|
|
6
6
|
var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI\
|
|
7
7
|
\u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","goal-sheet","inquiry","invoice","job-title","leave","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable","report","rounding-setting","seal-impression","search","shift","skill","
|
|
4
|
-
|
|
3
|
+
var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","goal-sheet","inquiry","invoice","job-title","leave","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable","redmine","report","rounding-setting","seal-impression","search","shift","skill","st\
|
|
4
|
+
orage","supplier-payment","support","task","teams","user","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{isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-ITRTFBV3.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
|
|
4
4
|
ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
|
|
5
5
|
_\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
|
|
6
6
|
return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\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{salesAdminForbidden}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-XPPT3MUY.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
|
|
4
4
|
["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
|
|
5
5
|
nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
6
6
|
"\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}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}function withoutResult(body){return Object.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-
|
|
3
|
+
import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-NQWTPHUO.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{WORKFLOWS_PATH}from"./chunk-ITRTFBV3.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
|
|
4
4
|
pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INSTANCES_PATH=`${WORKFLOWS_PATH}/instances`;var COMMENT_MAX_CHARS=2e3;var IN_FLIGHT=new Set(["pending","processing"]);var GET_USAGE="twp workflow ai-review get <\u7533\u8ACBID>";var UPDATE_USAGE="twp workflow ai-review-comment update <\u6307\u6458ID> --instance <\u7533\u8ACBID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9>)";var DELETE_USAGE="twp workflow ai-review-comment delete <\u6307\u6458ID> --instance <\u7533\u8ACBID> --yes";function instanceUuid(raw,usage,what){const id=raw?.trim()??
|
|
5
5
|
"";if(id==="")throw new UsageError(`\u7533\u8ACBID \u3092${what}\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(!UUID_RE.test(id))throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`${usage}
|
|
6
6
|
\u7533\u8ACBID \u306F twp workflow approval pending \u306E id \u5217\u3067\u3059\u3002`);return id}function workflowReviewPath(instanceId){return`${INSTANCES_PATH}/${encodeURIComponent(instanceId)}/ai-review`}function reviewTarget(input){if(input.args.length>1)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${input.args.slice(1).join(" ")}`,GET_USAGE);return workflowReviewPath(instanceUuid(input.args[0],GET_USAGE,"\u4F4D\u7F6E\u5F15\u6570"))}function commentTarget(input,usage){
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
4
|
-
SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-XPPT3MUY.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-5LPELULJ.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
|
|
4
|
+
SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-ITRTFBV3.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));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}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
|
|
5
5
|
"string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
|
|
6
6
|
trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
|
|
7
7
|
count_up_num"]??1;const digits=rule["digit_count"];if(typeof current!=="number"||typeof step!=="number"||typeof digits!=="number")return void 0;const width=purchaseFormat&&digits===0?4:digits;const padded=String(current+step).padStart(width,"0");const prefix=rule["prefix"];if(purchaseFormat)return`${prefix===null||prefix===void 0?"2000":text(prefix)}${padded}`;return typeof prefix==="string"&&prefix!==""&&prefix!=="0"?`${prefix}${padded}`:padded}function withNext(spec,row){const next=nextNumber(
|