@tocca-systems/twp-cli 0.59.0 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,16 @@
11
11
  `CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
12
12
  -->
13
13
 
14
+ ## 0.61.0
15
+
16
+ wiki ページを CLI から作成・更新・移動・削除できるようになりました(`twp wiki create` / `update` / `move` / `delete`。本文はファイルか標準入力から読みます)。
17
+
18
+ `twp backlog issue list` / `twp backlog issue get` のヘルプに、`--output json` の形(種別・状態・担当者などは名前の文字列で、ID は別のキー)と例を載せました。
19
+
20
+ ## 0.60.0
21
+
22
+ 通勤交通費を、出勤打刻のある日から日ごとの区分を埋めて保存できるようになりました(`twp expense commuting save --from-attendance`)。
23
+
14
24
  ## 0.59.0
15
25
 
16
26
  エージェントループが、スキルの直近の実行結果を全実行機ぶん集計して計画に使うようになりました(ループ設定 `outcomes` を設定したプロジェクトのみ)。
package/README.md CHANGED
@@ -67,7 +67,7 @@ TWP(Tocca Working Platform)を、ターミナルから使うための CLI
67
67
  | **できる** | `twp budget` による予実管理(年度の予実ダッシュボード・サマリー・部署行の内訳と未割当・CSV 出力、目標の一覧・JSON でのまとめ登録・前年度からのコピー・CSV の取り込みと雛形、プロジェクトの部署按分の参照と全件置換)。分析の権限と予実管理ページの閲覧対象への登録が要り、目標の書き込みは全体管理者か分析の権限が「管理者」の人です |
68
68
  | **できる** | `twp workflow` による、自分が申請できる申請書・申請書の定義(管理者)・自分の申請・承認履歴・自分の承認待ちの参照(申請書は名前でも指定できます)と、申請の起票・提出・更新・削除、承認・却下・差し戻し・取下げ、承認画面の AIチェックの結果の表示と承認者コメント |
69
69
  | **できる** | `twp report` による自分のレポート(日報)の一覧(フォーマット・状態・語で絞り込み)・詳細と、下書きの作成(フォーマットの入力項目から雛形を出せます)・更新・提出・AI アドバイス、使えるレポートフォーマットの一覧。確認者としての一覧(未読・書いた人・作成日で絞り込み)・既読・コメント・確認済み・確認の取り消し・差し戻し |
70
- | **できる** | `twp wiki` / `twp note` / `twp meeting` による、wiki ページ(親ページ直下の子の一覧を含む)・ノート・議事録(開催日の期間で絞り込み)の一覧と、本文を `--output text` で文書として読むこと |
70
+ | **できる** | `twp wiki` / `twp note` / `twp meeting` による、wiki ページ(親ページ直下の子の一覧を含む)・ノート・議事録(開催日の期間で絞り込み)の一覧と、本文を `--output text` で文書として読むこと。wiki ページの作成・更新・移動・削除 |
71
71
  | **できる** | `twp outlook` / `twp teams` / `twp onedrive` による Microsoft 365 の読み取り(メール・添付・予定、Teams のチーム・チャネル・チャット・メッセージ・スレッド返信・自分宛てメンション、OneDrive のファイルの一覧・情報・ダウンロード)。TWP に Microsoft アカウントでログインしたことがあるユーザーが対象です。書き込みはメールの送信・返信・全員返信・転送(`twp outlook mail send` / `reply` / `reply-all` / `forward`)、Teams のチャット送信・チャネル投稿・スレッド返信(`twp teams message send` / `reply send`)、予定の作成・更新・削除(`twp outlook event create` / `update` / `delete`)、共有リンクの作成(`twp onedrive link create`)ができ(いずれも `--yes` が必要)、OneDrive へのアップロード(`twp onedrive item upload`)もできます |
72
72
  | **できる** | `twp task-loop` による、TWP のタスクキューを手元の AI CLI に実行させる常駐ループ |
73
73
  | **できる** | `twp agent-loop` による、エージェントループのキューの一覧・投入・更新・先頭への移動・削除と、期間を指定した実行履歴の参照。更新・移動・削除はテナントの管理者の権限が要ります |
@@ -1270,6 +1270,10 @@ twp report reject <レポートID> --comment-file reason.md --yes # 差し戻
1270
1270
  twp wiki list [--project <コード|ID>] [--status <draft|published>] [--tag <タグ>] [--keyword <語>] [--all]
1271
1271
  twp wiki list [--project <コード|ID>] --parent <ページID>|root # 親ページ直下の子(root で最上位)
1272
1272
  twp wiki get <ページID> --output text
1273
+ twp wiki create [--project <コード|ID>] --title <件名> --content-file <パス|-> [--parent <ページID>] [--status <draft|published>] [--tag <タグ>]...
1274
+ twp wiki update <ページID> [--title <件名>] [--content-file <パス|->] [--status <draft|published>] [--tag <タグ>]... [--clear-tags] [--if-version <版>]
1275
+ twp wiki move <ページID> [--parent <ページID>|root] [--sort-order <順>]
1276
+ twp wiki delete <ページID> --yes
1273
1277
  twp note list [--mine] [--favorite] [--status <draft|published>] [--visibility <private|tenant|external|public>] [--keyword <語>] [--all]
1274
1278
  twp note get <ノートID> --output text
1275
1279
  twp meeting list [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>] [--project <コード|ID>] [--keyword <語>] [--tag <タグ>]... [--all]
@@ -1281,7 +1285,10 @@ twp meeting get <議事録ID> --output text
1281
1285
  - wiki はプロジェクトごとです(`--project` を省くと既定のプロジェクト)。`--parent` は他の絞り込み・ページングと併用できません
1282
1286
  - `twp meeting list` の `--from` / `--to` は開催日(日本時間の日付)の期間で、両端の日を含み、片方だけでも指定できます。`--keyword` はタイトルの語です
1283
1287
  - `twp note get` で開くと、画面で開いたときと同じくノートの閲覧数が1増えます
1284
- - 書き込み(作成・更新)はまだできません(`twp api /api/v2/wiki/...`・`/api/v2/notes/...`・`/api/v2/meetings/...` で到達できます)。ヘルプは `twp wiki help` / `twp note help` / `twp meeting help`
1288
+ - wiki の本文は `--content-file` のファイル(`-` で標準入力)から読み、加工せずに送ります。画面のエディタは HTML で保存するので、Markdown を渡しても変換されず記号のまま表示されます。`create` で `--status` を省くと下書きになります
1289
+ - `twp wiki update --if-version <版>` は送る直前にページの版(`twp wiki get` の `version`)を照合し、違えば何も送らずに終了コード 3 で止まります(照合と送信の間の他人の更新までは防げません)。`--tag` はタグを置き換え、`--clear-tags` で空にします
1290
+ - 編集・移動・削除できるのはページの作成者・wiki の管理者・組織の管理者です。権限が無ければサーバの文面をそのまま出して終了コード 3 です
1291
+ - ノート・議事録の書き込みはまだできません(`twp api /api/v2/notes/...`・`/api/v2/meetings/...` で到達できます)。ヘルプは `twp wiki help` / `twp note help` / `twp meeting help`
1285
1292
 
1286
1293
  ### TWP 内を横断して検索する
1287
1294
 
@@ -1,8 +1,8 @@
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-EHWPJSDJ.js";import"./chunk-BNIEC3JM.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-YXVN6OCH.js";
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-I6WZ65SY.js";import"./chunk-2RKT352P.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderOutput}from"./chunk-YXVN6OCH.js";
4
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-VELLV6DJ.js";import"./chunk-HVZUXLQ4.js";import{
5
- ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.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-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,
5
+ ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.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
6
  resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-QZBE4KC2.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;
@@ -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-WF2DJXZG.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-ODEOVAS4.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",
@@ -2,9 +2,11 @@ import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{readBody}from"./chunk-6LSQCOCJ.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-VELLV6DJ.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.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
- eatedUser","parentIssueId","startDate","dueDate","estimatedHours","actualHours","created","updated"];var COMMENT_COLUMNS=["id","created","createdUserId","createdUser","content","changeLog"];function commentRow(row){const source=isRecord(row)?row:{};const user=isRecord(source["createdUser"])?source["createdUser"]:{};return pick({...source,createdUserId:user["id"]??null,createdUser:user["name"]??null},COMMENT_COLUMNS)}var ATTACHMENT_COLUMNS=["id","name","size","contentType","createdUserId","create\
6
- dUser","created"];var STATUS_COLUMNS=["id","name","color"];var USER_COLUMNS=["id","userId","name","mailAddress","roleType"];var SPACE_FLAG={name:"--space",summary:"Backlog \u30B9\u30DA\u30FC\u30B9\uFF08ID / \u30B9\u30DA\u30FC\u30B9URL / \u30B5\u30D6\u30C9\u30E1\u30A4\u30F3\uFF09\u3002\u767B\u9332\u304C1\u4EF6\u306A\u3089\u7701\u7565\u3067\u304D\u307E\u3059",takesValue:true,placeholder:"<ID|URL>"};var BODY_MAX_CHARS=1e5;var BODY_FLAGS=[{name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown\
7
- \u3092\u58CA\u3055\u306A\u3044\u4E3B\u7D4C\u8DEF",takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"}];function bodyHelp(fileFlag,inlineFlag){return`\u672C\u6587\u306F ${fileFlag} \u3092\u4E3B\u7D4C\u8DEF\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u6539\u884C\u30FBMarkdown \u306E\u898B\u51FA\u3057\uFF08#\uFF09\u30FB
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
+ \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';
7
+ var COMMENT_COLUMNS=["id","created","createdUserId","createdUser","content","changeLog"];function commentRow(row){const source=isRecord(row)?row:{};const user=isRecord(source["createdUser"])?source["createdUser"]:{};return pick({...source,createdUserId:user["id"]??null,createdUser:user["name"]??null},COMMENT_COLUMNS)}var ATTACHMENT_COLUMNS=["id","name","size","contentType","createdUserId","createdUser","created"];var STATUS_COLUMNS=["id","name","color"];var USER_COLUMNS=["id","userId","name","ma\
8
+ ilAddress","roleType"];var SPACE_FLAG={name:"--space",summary:"Backlog \u30B9\u30DA\u30FC\u30B9\uFF08ID / \u30B9\u30DA\u30FC\u30B9URL / \u30B5\u30D6\u30C9\u30E1\u30A4\u30F3\uFF09\u3002\u767B\u9332\u304C1\u4EF6\u306A\u3089\u7701\u7565\u3067\u304D\u307E\u3059",takesValue:true,placeholder:"<ID|URL>"};var BODY_MAX_CHARS=1e5;var BODY_FLAGS=[{name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044\u4E3B\u7D4C\u8DEF",
9
+ takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"}];function bodyHelp(fileFlag,inlineFlag){return`\u672C\u6587\u306F ${fileFlag} \u3092\u4E3B\u7D4C\u8DEF\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u6539\u884C\u30FBMarkdown \u306E\u898B\u51FA\u3057\uFF08#\uFF09\u30FB
8
10
  \u5F15\u7528\u7B26\u3067\u58CA\u308C\u307E\u3059\u3002${fileFlag} - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\uFF08${inlineFlag} \u306F\u4E00\u884C\u5411\u3051\u3067\u3001\u4F75\u7528\u306F\u30A8\u30E9\u30FC\u3067\u3059\uFF09\u3002
9
11
 
10
12
  \u672C\u6587\u306F\u52A0\u5DE5\u3057\u307E\u305B\u3093\uFF08\u6539\u884C\u30FB\u672B\u5C3E\u306E\u6539\u884C\u30FBCRLF \u306F\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\uFF09\u3002\u843D\u3068\u3059\u306E\u306F\u5148\u982D\u306E UTF-8 BOM \u3060\u3051\u3067\u3059\u3002
@@ -42,21 +44,21 @@ st",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u305
42
44
  flags:[SPACE_FLAG],async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog project list help")}return withSpace(input,await resolveSpace(input,ctx))},plan(input){return{method:"GET",path:backlogSpacePath(requireSpace(input),"/projects")}},plannedNotes:spaceNotes,summarize:body=>listOf(body,"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7").map(row=>pick(
43
45
  row,PROJECT_COLUMNS)),raw:body=>listOf(body,"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7")}]};var issueResource={name:"issue",summary:"Backlog \u8AB2\u984C",operations:[{name:"list",summary:"Backlog \u8AB2\u984C\u3092\u4E00\u89A7\u30FB\u691C\u7D22\u3059\u308B",usage:"twp backlog issue list [--space <ID|URL>] [--project <\u30AD\u30FC|ID>] [--status <\u540D\u524D|ID>] [--assignee <\u540D\u524D|ID>] [--updated-since <yyyy-MM-dd>] [--count <\u4EF6\u6570>] [--offset <\u4EF6\u6570>]",
44
46
  description:"\u26A0 \u3053\u306E\u4E00\u89A7\u306E description\uFF08\u672C\u6587\uFF09\u306F\u65E2\u5B9A\u3067 1000 \u6587\u5B57\u306B\u5207\u3089\u308C\u307E\u3059\u3002\n \u5207\u3089\u308C\u305F\u8AB2\u984C\u306B\u306F descriptionTruncated: true \u304C\u4ED8\u304D\u307E\u3059\uFF08\u9ED9\u3063\u3066\u5207\u308A\u307E\u305B\u3093\uFF09\u3002\n \u5168\u6587\u304C\u8981\u308B\u306A\u3089 --description-max 0 \u3092\u4ED8\u3051\u308B\u304B\u3001twp backlog issue get \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\n \uFF08get \u306F\u5E38\u306B\u5168\u6587\u3092\u8FD4\u3057\u307E\u3059\uFF09\u3002\n\n\u7D5E\u308A\u8FBC\u307F\u306E\u8907\u6570\u6307\u5B9A\u306F\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u3059\uFF08--status \u672A\u5BFE\u5FDC,\u51E6\u7406\u4E2D\uFF09\u3002\n--project / --status / --assignee / --created-user \u306F\u540D\u524D\u3067\u3082\u6570\u5024 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n \u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u5834\u5408\u3001--status / --assignee / --created-user \u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059\n \uFF08\u5019\u88DC\u304C Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u306A\u3044\u305F\u3081\uFF09\u3002\u6570\u5024 ID \u306A\u3089 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002\n\n\u30DA\u30FC\u30B8\u30F3\u30B0:\n \u3053\u306E API \u306F\u30AA\u30D5\u30BB\u30C3\u30C8\u65B9\u5F0F\u3067\u3059\uFF08\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --all / --cursor \u306F\u3042\u308A\u307E\u305B\
45
- \u3093\uFF09\u3002\n --count \u306E\u65E2\u5B9A\u306F 20\u30FB\u4E0A\u9650\u306F 100 \u3067\u3001\u7D9A\u304D\u306F --offset \u3067\u53D6\u5F97\u3057\u307E\u3059\u3002\n \u53D6\u5F97\u4EF6\u6570\u304C --count \u3061\u3087\u3046\u3069\u3060\u3063\u305F\u3068\u304D\u306F\u3001\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u306A\u3044\u3053\u3068\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002",flags:[SPACE_FLAG,{name:"--project",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0 / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",
46
- takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08\u540D\u524D / \u30ED\u30B0\u30A4\u30F3ID / \u30E1\u30FC\u30EB / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u540D\u524D\
47
- |ID>"},{name:"--created-user",summary:"\u767B\u9332\u8005\uFF08\u540D\u524D / \u30ED\u30B0\u30A4\u30F3ID / \u30E1\u30FC\u30EB / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--parent",summary:"\u89AA\u8AB2\u984C\u306E\u6570\u5024ID\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF\uFF08\u8AB2\u984C\u30AD\u30FC\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u8AB2\
48
- \u984CID>"},{name:"--updated-since",summary:"\u3053\u306E\u65E5\u4EE5\u964D\u306B\u66F4\u65B0\u3055\u308C\u305F\u8AB2\u984C\u3060\u3051\u3092\u8FD4\u3059\uFF08yyyy-MM-dd\uFF09",takesValue:true,placeholder:"<yyyy-MM-dd>"},{name:"--keyword",summary:"\u4EF6\u540D\u30FB\u672C\u6587\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--count",summary:`\u53D6\u5F97\u4EF6\u6570\uFF08\u65E2\u5B9A ${DEFAULT_COUNT}\u30FB\u4E0A\u9650 ${MAX_COUNT}\uFF09`,
49
- takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--offset",summary:"\u5148\u982D\u304B\u3089\u8AAD\u307F\u98DB\u3070\u3059\u4EF6\u6570\uFF08\u65E2\u5B9A 0\uFF09",takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--sort",summary:"\u4E26\u3079\u66FF\u3048\u308B\u9805\u76EE\uFF08\u65E2\u5B9A updated\u3002\u4F8B: created / dueDate / priority\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>"},{name:"--order",summary:"\u4E26\u3073\u9806\uFF08asc | desc\u30FB\u65E2\u5B9A desc\uFF09",takesValue:true,
50
- placeholder:"<\u9806\u5E8F>"},{name:"--description-max",summary:"\u672C\u6587\u306E\u6700\u5927\u6587\u5B57\u6570\uFF080 \u3067\u5168\u6587\uFF09\u3002\u65E2\u5B9A\u306F 1000 \u6587\u5B57\u3067\u5207\u3089\u308C\u307E\u3059",takesValue:true,placeholder:"<\u6587\u5B57\u6570>"}],async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog issue list help")}const space=await resolveSpace(
47
+ \u3093\uFF09\u3002\n --count \u306E\u65E2\u5B9A\u306F 20\u30FB\u4E0A\u9650\u306F 100 \u3067\u3001\u7D9A\u304D\u306F --offset \u3067\u53D6\u5F97\u3057\u307E\u3059\u3002\n \u53D6\u5F97\u4EF6\u6570\u304C --count \u3061\u3087\u3046\u3069\u3060\u3063\u305F\u3068\u304D\u306F\u3001\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u306A\u3044\u3053\u3068\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\n"+ISSUE_JSON_SHAPE_HELP,flags:[SPACE_FLAG,{name:"--project",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0\
48
+ / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08\u540D\u524D / \u30ED\u30B0\u30A4\u30F3ID / \u30E1\u30FC\u30EB / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",
49
+ takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--created-user",summary:"\u767B\u9332\u8005\uFF08\u540D\u524D / \u30ED\u30B0\u30A4\u30F3ID / \u30E1\u30FC\u30EB / \u6570\u5024ID\uFF09\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--parent",summary:"\u89AA\u8AB2\u984C\u306E\u6570\u5024ID\u3002\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\u53EF\uFF08\u8AB2\u984C\u30AD\u30FC\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09",
50
+ takesValue:true,placeholder:"<\u8AB2\u984CID>"},{name:"--updated-since",summary:"\u3053\u306E\u65E5\u4EE5\u964D\u306B\u66F4\u65B0\u3055\u308C\u305F\u8AB2\u984C\u3060\u3051\u3092\u8FD4\u3059\uFF08yyyy-MM-dd\uFF09",takesValue:true,placeholder:"<yyyy-MM-dd>"},{name:"--keyword",summary:"\u4EF6\u540D\u30FB\u672C\u6587\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--count",summary:`\u53D6\u5F97\u4EF6\u6570\uFF08\u65E2\u5B9A ${DEFAULT_COUNT}\
51
+ \u30FB\u4E0A\u9650 ${MAX_COUNT}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--offset",summary:"\u5148\u982D\u304B\u3089\u8AAD\u307F\u98DB\u3070\u3059\u4EF6\u6570\uFF08\u65E2\u5B9A 0\uFF09",takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--sort",summary:"\u4E26\u3079\u66FF\u3048\u308B\u9805\u76EE\uFF08\u65E2\u5B9A updated\u3002\u4F8B: created / dueDate / priority\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>"},{name:"--order",summary:"\u4E26\u3073\u9806\uFF08asc | desc\u30FB\u65E2\u5B9A desc\uFF09",
52
+ takesValue:true,placeholder:"<\u9806\u5E8F>"},{name:"--description-max",summary:"\u672C\u6587\u306E\u6700\u5927\u6587\u5B57\u6570\uFF080 \u3067\u5168\u6587\uFF09\u3002\u65E2\u5B9A\u306F 1000 \u6587\u5B57\u3067\u5207\u3089\u308C\u307E\u3059",takesValue:true,placeholder:"<\u6587\u5B57\u6570>"}],async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog issue list help")}const space=await resolveSpace(
51
53
  input,ctx);const resolved={};const projectRefs=commaList(input.flags,"--project");const projectIds=projectRefs===void 0?[]:await resolveNumericRefs(projectRefs,"--project","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",BACKLOG_SCOPE_LABEL,()=>ctx.resolver.backlogProjects(space.id));if(projectIds.length>0)resolved["projectId"]=projectIds.join(",");const statusRefs=commaList(input.flags,"--status");if(statusRefs!==void 0){resolved["statusId"]=(await resolveNumericRefs(statusRefs,"--status","Backlo\
52
54
  g \u30B9\u30C6\u30FC\u30BF\u30B9",BACKLOG_PROJECT_SCOPE_LABEL,()=>ctx.resolver.backlogStatuses(space.id,requireProjectForNames(statusRefs,"--status",projectIds)))).join(",")}for(const[flag,key]of[["--assignee","assigneeId"],["--created-user","createdUserId"]]){const refs=commaList(input.flags,flag);if(refs===void 0)continue;resolved[key]=(await resolveNumericRefs(refs,flag,"Backlog \u30E6\u30FC\u30B6\u30FC",BACKLOG_PROJECT_SCOPE_LABEL,()=>ctx.resolver.backlogUsers(space.id,requireProjectForNames(
53
55
  refs,flag,projectIds)))).join(",")}const parents=commaList(input.flags,"--parent");if(parents!==void 0){const bad=parents.filter(value=>!NUMERIC.test(value));if(bad.length>0){throw new UsageError(`--parent \u306B\u306F\u89AA\u8AB2\u984C\u306E\u6570\u5024 ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${bad.join(" / ")}\uFF09`,"\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002twp backlog issue get <\u30AD\u30FC> \u306E id \u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
54
56
  resolved["parentIssueId"]=parents.join(",")}return withSpace(withResolved(input,resolved),space)},plan(input){const query={};indexedQuery("projectId",resolvedList(input,"projectId"),query);indexedQuery("statusId",resolvedList(input,"statusId"),query);indexedQuery("assigneeId",resolvedList(input,"assigneeId"),query);indexedQuery("createdUserId",resolvedList(input,"createdUserId"),query);indexedQuery("parentIssueId",resolvedList(input,"parentIssueId"),query);query["keyword"]=input.flags.get("--key\
55
57
  word");query["updatedSince"]=dateFlag(input.flags,"--updated-since");query["count"]=integerFlag(input.flags,"--count",{min:1,max:MAX_COUNT});query["offset"]=integerFlag(input.flags,"--offset",{min:0});query["sort"]=input.flags.get("--sort");query["order"]=order(input.flags.get("--order"));query["description_max"]=integerFlag(input.flags,"--description-max",{min:0});return{method:"GET",path:backlogSpacePath(requireSpace(input),"/issues"),query}},plannedNotes:spaceNotes,summarize:body=>listOf(body,
56
58
  "issues","\u8AB2\u984C\u4E00\u89A7").map(row=>pick(row,ISSUE_LIST_COLUMNS)),raw:body=>listOf(body,"issues","\u8AB2\u984C\u4E00\u89A7"),notes(body,input){const issues=listOf(body,"issues","\u8AB2\u984C\u4E00\u89A7");const truncated=issues.filter(row=>isRecord(row)&&row["descriptionTruncated"]===true).length;const notes=[...offsetNotes(input,issues.length)];if(truncated>0){notes.push(`${truncated} \u4EF6\u306E\u672C\u6587\u304C\u9014\u4E2D\u3067\u5207\u3089\u308C\u3066\u3044\u307E\u3059\uFF08descriptionTruncated: true\uFF09\u3002\u5168\u6587\u304C\u8981\u308B\u306A\u3089 --description-max 0 \u304B twp backlog issue get \u3092\u4F7F\u3063\u3066\u304F\
57
- \u3060\u3055\u3044\u3002`)}return notes}},{name:"get",summary:"Backlog \u8AB2\u984C1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u306F\u5168\u6587\uFF09",usage:"twp backlog issue get <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--space <ID|URL>]",description:"\u672C\u6587\uFF08description\uFF09\u306F\u5E38\u306B\u5168\u6587\u304C\u8FD4\u308A\u307E\u3059\uFF08descriptionTruncated \u306F\u5FC5\u305A false\uFF09\u3002\n\u4E00\u89A7\uFF08twp backlog issue list\uFF09\u306F\u65E2\u5B9A\u3067 1000 \u6587\u5B57\u306B\u5207\u308B\u306E\u3067\u3001\u305D\u3053\u304C\u9055\u3044\u307E\u3059\u3002\n\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u3067\u3082\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3067\u3082\u5F15\u3051\u307E\u3059\u3002",
58
- flags:[SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog issue get help");return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(ref)}`)}},
59
- plannedNotes:spaceNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)},{name:"update",summary:"Backlog \u8AB2\u984C\u306E\u62C5\u5F53\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u66F4\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp backlog issue update <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--assignee <\u540D\u524D|ID>] [--status <\u540D\u524D|ID>] [--comment-file <\u30D1\u30B9>] [--project <\u30AD\u30FC|ID>] --yes",description:`${EXTERNAL_WRITE_HELP}\
59
+ \u3060\u3055\u3044\u3002`)}return notes}},{name:"get",summary:"Backlog \u8AB2\u984C1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u306F\u5168\u6587\uFF09",usage:"twp backlog issue get <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--space <ID|URL>]",description:"\u672C\u6587\uFF08description\uFF09\u306F\u5E38\u306B\u5168\u6587\u304C\u8FD4\u308A\u307E\u3059\uFF08descriptionTruncated \u306F\u5FC5\u305A false\uFF09\u3002\n\u4E00\u89A7\uFF08twp backlog issue list\uFF09\u306F\u65E2\u5B9A\u3067 1000 \u6587\u5B57\u306B\u5207\u308B\u306E\u3067\u3001\u305D\u3053\u304C\u9055\u3044\u307E\u3059\u3002\n\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u3067\u3082\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3067\u3082\u5F15\u3051\u307E\u3059\u3002\n\n"+
60
+ ISSUE_JSON_SHAPE_HELP,flags:[SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog issue get help");return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(
61
+ ref)}`)}},plannedNotes:spaceNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)},{name:"update",summary:"Backlog \u8AB2\u984C\u306E\u62C5\u5F53\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u66F4\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp backlog issue update <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--assignee <\u540D\u524D|ID>] [--status <\u540D\u524D|ID>] [--comment-file <\u30D1\u30B9>] [--project <\u30AD\u30FC|ID>] --yes",description:`${EXTERNAL_WRITE_HELP}\
60
62
 
61
63
 
62
64
  --assignee / --status / --comment-file\uFF08--comment\uFF09\u306E\u3046\u3061\u3001\u5C11\u306A\u304F\u3068\u30821\u3064\u304C\u5FC5\u8981\u3067\u3059\u3002
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  var LOADERS={agent:async()=>(await import("./agent-VNXVD6RC.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-DFTHXSGN.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-ISVBOO3X.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-QKYJFPGB.js")).analysisDomain,announcement:async()=>(await import("./announcement-VIPUV4NC.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-QYUMTKPG.js")).attendanceDomainWithRecords,
4
- backlog:async()=>(await import("./backlog-XK4BUZBI.js")).backlogDomain,budget:async()=>(await import("./budget-NKSYQOBP.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-EPMRXFKQ.js")).businessPlaceDomain,company:async()=>(await import("./company-MM7RMYG3.js")).companyDomain,contract:async()=>(await import("./contract-542CVLOG.js")).contractDomain,customer:async()=>(await import("./company-MM7RMYG3.js")).customerDomain,department:async()=>(await import("./department-ONWETRFN.js")).
5
- departmentDomain,deposit:async()=>(await import("./deposit-Q2LJYA2P.js")).depositDomain,estimate:async()=>(await import("./estimate-QG7UDIXA.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-VHYRW3OL.js")).evaluationDomain,expense:async()=>(await import("./expense-FRSJQ43Y.js")).expenseDomain,"goal-sheet":async()=>(await import("./evaluation-VHYRW3OL.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-LPATWSTM.js")).inquiryDomain,invoice:async()=>(await import("./invoice-NMEPTMJ2.js")).
6
- invoiceDomain,"job-title":async()=>(await import("./job-title-2BITEYIJ.js")).jobTitleDomain,leave:async()=>(await import("./leave-TDXLDGQB.js")).leaveDomain,media:async()=>(await import("./media-ZTCT7ZOS.js")).mediaDomain,meeting:async()=>(await import("./knowledge-J5NYT7M7.js")).meetingDomain,note:async()=>(await import("./knowledge-J5NYT7M7.js")).noteDomain,notification:async()=>(await import("./notification-2YYO4OOJ.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-UBSHXVYS.js")).
4
+ backlog:async()=>(await import("./backlog-SX2RXF7V.js")).backlogDomain,budget:async()=>(await import("./budget-NKSYQOBP.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-EPMRXFKQ.js")).businessPlaceDomain,company:async()=>(await import("./company-MM7RMYG3.js")).companyDomain,contract:async()=>(await import("./contract-542CVLOG.js")).contractDomain,customer:async()=>(await import("./company-MM7RMYG3.js")).customerDomain,department:async()=>(await import("./department-ONWETRFN.js")).
5
+ departmentDomain,deposit:async()=>(await import("./deposit-Q2LJYA2P.js")).depositDomain,estimate:async()=>(await import("./estimate-QG7UDIXA.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-VHYRW3OL.js")).evaluationDomain,expense:async()=>(await import("./expense-M6CDGLYD.js")).expenseDomain,"goal-sheet":async()=>(await import("./evaluation-VHYRW3OL.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-LPATWSTM.js")).inquiryDomain,invoice:async()=>(await import("./invoice-NMEPTMJ2.js")).
6
+ invoiceDomain,"job-title":async()=>(await import("./job-title-2BITEYIJ.js")).jobTitleDomain,leave:async()=>(await import("./leave-TDXLDGQB.js")).leaveDomain,media:async()=>(await import("./media-XAZAIWBW.js")).mediaDomain,meeting:async()=>(await import("./knowledge-WWRF6C7K.js")).meetingDomain,note:async()=>(await import("./knowledge-WWRF6C7K.js")).noteDomain,notification:async()=>(await import("./notification-2YYO4OOJ.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-UBSHXVYS.js")).
7
7
  onedriveDomain,outlook:async()=>(await import("./outlook-ODZD27J5.js")).outlookDomain,payee:async()=>(await import("./sales-master-EPMRXFKQ.js")).payeeDomain,position:async()=>(await import("./position-2KKBZTPJ.js")).positionDomain,project:async()=>(await import("./project-AYQUMBJD.js")).projectDomain,prospect:async()=>(await import("./prospect-MW4URE6T.js")).prospectDomain,purchase:async()=>(await import("./purchase-IJCP43IQ.js")).purchaseDomain,qualification:async()=>(await import("./skill-OAUTVWTM.js")).
8
8
  qualificationDomain,receivable:async()=>(await import("./receivable-PD3KXJA5.js")).receivableDomain,report:async()=>(await import("./report-3LW27YHM.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-U6DSHKKM.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-EPMRXFKQ.js")).sealImpressionDomain,search:async()=>(await import("./search-LU5ELPON.js")).searchDomain,shift:async()=>(await import("./attendance-lists-JDQX4GIC.js")).shiftDomain,
9
9
  skill:async()=>(await import("./skill-OAUTVWTM.js")).skillDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-OYIOW7NR.js")).supplierPaymentDomain,support:async()=>(await import("./support-JG43SGOY.js")).supportDomain,task:async()=>(await import("./task-XY3SVQJS.js")).taskDomain,teams:async()=>(await import("./teams-5EXL65HN.js")).teamsDomain,user:async()=>(await import("./user-C2M3K236.js")).
10
- userDomain,wiki:async()=>(await import("./knowledge-J5NYT7M7.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-JDQX4GIC.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-QREMLOKU.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-YKVB5A6Y.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
10
+ userDomain,wiki:async()=>(await import("./knowledge-WWRF6C7K.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-JDQX4GIC.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-QREMLOKU.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-YKVB5A6Y.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-BNIEC3JM.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-VELLV6DJ.js";
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-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,
3
+ import{loadDomain}from"./chunk-2RKT352P.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-VELLV6DJ.js";
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
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-QZBE4KC2.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:
@@ -53,12 +53,12 @@ defaultOperation} \u304C\u3042\u308A\u307E\u305B\u3093`);rest=operationName===vo
53
53
  flags.has("--no-redact");if(!globals.dryRun&&requiresYes(operation,globals.yes)){throw new UsageError(`twp ${path2} ${operation.name} \u306F${operation.confirmation??"\u7834\u58CA\u7684\u306A\u64CD\u4F5C"}\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u306B\u306F --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}const paging=resolvePaging(operation,path2,input);const downloadTarget=operation.download===void 0?void 0:resolveDownloadTarget(operation.download,path2,operation.name,input);const stored=loadCredentials(
54
54
  profile.name);const apiUrl=effectiveApiUrl(profile,stored?.api_url);const transport=options.fetchImpl??httpFetch;const fetchImpl=globals.debug?withDebug(transport,{write:errOut,...operation.sensitiveBody!==void 0?{omitBodies:operation.sensitiveBody}:{}}):transport;const session=new AuthSession(profile.name,apiUrl,process.env,fetchImpl);const client=new TwpApiClient(apiUrl,session,fetchImpl,options.version);const ctx=buildPrepareContext({resolver:new Resolver(client,{profile:profile.name,refresh:globals.
55
55
  refresh,...profileAliases(profile.name)}),profileName:profile.name,env:process.env,cwd:process.cwd()});const prepared=operation.prepare===void 0?input:await operation.prepare(input,ctx);const plan=operation.plan(prepared);if(operation.execute!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2} ${operation.name}: execute \u306F download / paging / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}
56
- if(operation.narrow!==void 0&&(operation.execute!==void 0||operation.download!==void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2} ${operation.name}: narrow \u306F execute / download / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.preview!==void 0&&(operation.fetchCached!==void 0||operation.download!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: preview \
57
- \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.invalidates!==void 0&&(operation.fetchCached!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: invalidates \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.fetchCached!==void 0&&(operation.download!==
58
- void 0||operation.paging!==void 0||operation.destructive===true||plan.method!=="GET")){throw new Error(`twp ${path2} ${operation.name}: fetchCached \u306F\u9001\u4FE1\u3057\u306A\u3044\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}for(const note of operation.plannedNotes?.(prepared)??[])errOut(`${safeText(note)}
56
+ if(operation.narrow!==void 0&&(operation.execute!==void 0||operation.download!==void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2} ${operation.name}: narrow \u306F execute / download / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.preview!==void 0&&(operation.fetchCached!==void 0||operation.download!==void 0)){throw new Error(`twp ${path2} ${operation.name}: preview \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\
57
+ \u8AA4\u308A\uFF09`)}if(operation.invalidates!==void 0&&(operation.fetchCached!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: invalidates \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.fetchCached!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.destructive===true||plan.method!=="GET")){throw new Error(`twp ${path2} ${operation.
58
+ name}: fetchCached \u306F\u9001\u4FE1\u3057\u306A\u3044\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}for(const note of operation.plannedNotes?.(prepared)??[])errOut(`${safeText(note)}
59
59
  `);if(noRedact)errOut(`${NO_REDACT_NOTICE}
60
60
  `);const executeCtx={send:next=>send(client,apiUrl,next),putSigned:(url,bytes,contentType)=>putSigned(fetchImpl,url,bytes,contentType),putRange:(url,bytes,start,total)=>putRange(fetchImpl,url,bytes,start,total),downloadSigned:async(url,target)=>{const received=await getSigned(fetchImpl,url);writeTarget(target,received.bytes);return{path:target.out,size:received.bytes.byteLength,contentType:received.contentType}},warn:text=>errOut(`${safeText(text)}
61
- `)};if(operation.preview!==void 0){const checked=await operation.preview(prepared,executeCtx);for(const note of checked.notes)errOut(`${safeText(note)}
61
+ `)};if(operation.preview!==void 0&&plan.method!=="GET"){const checked=await operation.preview(prepared,executeCtx);for(const note of checked.notes)errOut(`${safeText(note)}
62
62
  `);for(const warning of checked.warnings)errOut(`${safeText(`\u8B66\u544A: ${warning}`)}
63
63
  `);if(!globals.dryRun&&checked.warnings.length>0&&!globals.yes){throw new UsageError(`twp ${path2} ${operation.name}: \u6574\u5408\u306E\u8B66\u544A\u304C ${checked.warnings.length} \u4EF6\u3042\u308B\u305F\u3081\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5185\u5BB9\u3092\u78BA\u304B\u3081\u305F\u3046\u3048\u3067\u9001\u308B\u306A\u3089 --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}}if(globals.dryRun){out(line(renderOutput(dryRunValue(apiUrl,plan,noRedact?void 0:operation.
64
64
  sensitiveBody),format,noRedact)));return EXIT_OK}let body;let paged;try{if(operation.execute!==void 0){body=await operation.execute(prepared,executeCtx)}else if(operation.fetchCached!==void 0){body=await operation.fetchCached(prepared,ctx)}else if(operation.download!==void 0&&downloadTarget!==void 0){assertWritableTarget(downloadTarget,operation.download.forceFlag);const signedUrl=operation.download.signedUrl;body=await download({client,apiUrl,plan,target:downloadTarget,...signedUrl===void 0?{}:
@@ -5,9 +5,11 @@ var GLOBAL_OPTIONS_HELP=`\u30B0\u30ED\u30FC\u30D0\u30EB\u30AA\u30D7\u30B7\u30E7\
5
5
  --output <\u5F62\u5F0F> json | table | text | tsv
6
6
  \u65E2\u5B9A\u306F\u7AEF\u672B\u306A\u3089 table\u3001\u30D1\u30A4\u30D7\u306A\u3089 json
7
7
  \uFF08~/.twp/config.json \u306E "output" \u3067\u56FA\u5B9A\u3067\u304D\u308B\uFF09
8
- json \u306F API \u306E\u751F\u30EC\u30B9\u30DD\u30F3\u30B9\u3001table / text / tsv \u306F
8
+ json \u306F TWP API \u306E\u751F\u30EC\u30B9\u30DD\u30F3\u30B9\u3001table / text / tsv \u306F
9
9
  \u8AAD\u307F\u3084\u3059\u3055\u306E\u305F\u3081\u306B\u9078\u3093\u3060\u8981\u7D04\u5217\u3092\u51FA\u3057\u307E\u3059
10
- --query <JMESPath> \u7D50\u679C\u3092 JMESPath \u3067\u7D5E\u308A\u8FBC\u3080\u3002**API \u306E\u751F\u30EC\u30B9\u30DD\u30F3\u30B9\u306B\u5BFE\u3057\u3066
10
+ \u26A0 \u9023\u643A\u5148\uFF08Backlog \u7B49\uFF09\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u3082\u3001\u51FA\u308B\u306E\u306F\u9023\u643A\u5148 API \u306E\u5F62
11
+ \u3067\u306F\u306A\u304F TWP \u30B5\u30FC\u30D0\u304C\u6574\u3048\u305F\u5F62\u3067\u3059\uFF08\u5F62\u306F\u5404\u30B3\u30DE\u30F3\u30C9\u306E help\uFF09
12
+ --query <JMESPath> \u7D50\u679C\u3092 JMESPath \u3067\u7D5E\u308A\u8FBC\u3080\u3002**TWP API \u306E\u751F\u30EC\u30B9\u30DD\u30F3\u30B9\u306B\u5BFE\u3057\u3066
11
13
  \u8A55\u4FA1\u3055\u308C\u308B**\u306E\u3067\u3001\u8981\u7D04\u5217\u306B\u7121\u3044\u30D5\u30A3\u30FC\u30EB\u30C9\u3082\u53D6\u308A\u51FA\u305B\u308B
12
14
  --dry-run \u9001\u308B\u306F\u305A\u306E HTTP\uFF08\u30E1\u30BD\u30C3\u30C9\u30FBURL\u30FB\u30DC\u30C7\u30A3\uFF09\u3092\u8868\u793A\u3057\u3066\u9001\u3089\u306A\u3044
13
15
  \u26A0 \u5BFE\u8C61\u3092\u30B3\u30FC\u30C9\u30FB\u540D\u524D\u3067\u6307\u5B9A\u3057\u305F\u5834\u5408\uFF08--project TWP / --status \u540D\u524D \u7B49\uFF09\u3001
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chunk-5BDE3A3N.js";import"./chunk-2LOT54OO.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.59.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-5BDE3A3N.js";import"./chunk-2LOT54OO.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.61.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -388,7 +388,7 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
388
388
  twp expense commuting attendance
389
389
  \u6708\u306E\u81EA\u5206\u306E\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\uFF08\u533A\u5206\u3092\u6C7A\u3081\u308B\u6750\u6599\u30FB--month\uFF09
390
390
  twp expense commuting save
391
- \u6708\u306E\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u4E0B\u66F8\u304D\u306B\u4FDD\u5B58\uFF08--content-file\u30FB--generate-cli-skeleton\uFF09
391
+ \u6708\u306E\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u4E0B\u66F8\u304D\u306B\u4FDD\u5B58\uFF08--content-file\u30FB--from-attendance\u30FB--generate-cli-skeleton\uFF09
392
392
  twp expense commuting apply <ID>
393
393
  \u4FDD\u5B58\u3057\u305F\u6708\u3092\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u7533\u8ACB\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09
394
394
  twp expense commuting cancel <ID>
@@ -698,6 +698,13 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
698
698
  \u81EA\u5206\u306E\u30EC\u30DD\u30FC\u30C8\u306B AI \u306E\u30A2\u30C9\u30D0\u30A4\u30B9\u3092\u3082\u3089\u3046\uFF08AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u30FB--yes \u304C\u8981\u308B\uFF09
699
699
  twp wiki list \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki \u30DA\u30FC\u30B8\u3092\u4E00\u89A7\u3059\u308B\uFF08--parent \u3067\u89AA\u30DA\u30FC\u30B8\u76F4\u4E0B\uFF09
700
700
  twp wiki get <\u30DA\u30FC\u30B8ID> wiki \u30DA\u30FC\u30B81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09
701
+ twp wiki create wiki \u30DA\u30FC\u30B8\u3092\u4F5C\u6210\u3059\u308B\uFF08\u672C\u6587\u306F --content-file \u306E\u30D5\u30A1\u30A4\u30EB\u304B\u3089\uFF09
702
+ twp wiki update <\u30DA\u30FC\u30B8ID>
703
+ wiki \u30DA\u30FC\u30B8\u3092\u66F4\u65B0\u3059\u308B\uFF08--if-version \u3067\u7248\u3092\u7167\u5408\uFF09
704
+ twp wiki move <\u30DA\u30FC\u30B8ID>
705
+ wiki \u30DA\u30FC\u30B8\u306E\u89AA\u30DA\u30FC\u30B8\u3092\u4ED8\u3051\u66FF\u3048\u308B\uFF08root \u3067\u6700\u4E0A\u4F4D\u3078\uFF09
706
+ twp wiki delete <\u30DA\u30FC\u30B8ID>
707
+ wiki \u30DA\u30FC\u30B8\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09
701
708
  twp note list \u30C6\u30CA\u30F3\u30C8\u306E\u30CE\u30FC\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08--mine \u3067\u81EA\u5206\u306E\u3082\u306E\uFF09
702
709
  twp note get <\u30CE\u30FC\u30C8ID> \u30CE\u30FC\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09
703
710
  twp meeting list \u8B70\u4E8B\u9332\u3092\u4E00\u89A7\u3059\u308B\uFF08--from/--to \u3067\u958B\u50AC\u65E5\u306E\u671F\u9593\uFF09
@@ -1115,14 +1122,14 @@ TUI \u5185:
1115
1122
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
1116
1123
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
1117
1124
  `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-WKXK7VGT.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1118
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-7EACQX2P.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
1125
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-TK2MYRQ7.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
1119
1126
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
1120
1127
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
1121
1128
 
1122
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-WF2DJXZG.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
1123
- domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-2A6DKYCV.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
1129
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-ODEOVAS4.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
1130
+ domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-IYHQGTP7.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
1124
1131
  void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-EYEMPZJX.js");
1125
1132
  const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-5E6DNXCQ.js");process.exitCode=await runTaskLoop(
1126
1133
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,charterOp:args.charterOp,charterInput:args.charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,
1127
1134
  skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-VS52YK26.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.
1128
- allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-BJJNFWE7.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
1135
+ allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-CMD2HLDN.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
@@ -6,9 +6,10 @@ _round_trips","total_one_ways","total_amount","updated_at"];var GET_COLUMNS=["id
6
6
  var ADMIN_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u7D4C\u8CBB\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-\
7
7
  MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ID_FLAG={name:"--id",summary:"\u5BFE\u8C61\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<ID>"};var COMMENT_FLAG={name:"--comment",summary:`\u7533\u8ACB\u306E\u30B3\u30E1\u30F3\u30C8\uFF08${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8>"};var OUT_FLAG={name:"--out",summary:"\
8
8
  \u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false};var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u65E5\u3054\u3068\u306E\u533A\u5206\u3068\u30B3\u30E1\u30F3\u30C8\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,
9
- placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4FDD\u5B58\u3057\u306A\u3044\uFF09",takesValue:false};var ID_USAGE=op=>`twp expense commuting ${op} <ID> --yes`;var LIST_USAGE="twp expense commuting list [--limit <\u4EF6\u6570>] | list --all-users [--month <YYYY-MM>] [--status draft|pending|approved|rejected]";var GET_USAGE="twp expense commuting get (--month <YY\
10
- YY-MM> | <ID>)";var SAVE_USAGE="twp expense commuting save --month <YYYY-MM> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)";var APPLY_USAGE="twp expense commuting apply <ID> [--workflow <\u7533\u8ACB\u66F8>] [--comment <\u30B3\u30E1\u30F3\u30C8>] --yes";var EXPORT_USAGE="twp expense commuting export --month <YYYY-MM> --out <\u30D1\u30B9.csv> [--force] [--include-hidden]";var OPAQUE_400="\u65AD\u3089\u308C\u305F\u7406\u7531\u306F\u30B5\u30FC\u30D0\u304C\u8FD4\u3055\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u672C\u756A\u3067\u306F\u300C\u30B5\u30FC\u30D0\u30FC\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u300D\u306B\u306A\u308A\u307E\u3059\uFF09\u3002\n \u305D\u306E\u3068\u304D\u306F twp expense commuting get <ID> \u3067\u72B6\u614B\uFF08stat\
11
- us\uFF09\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";var CONTENT_HELP=`\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u30AD\u30FC\u306F daily_entries \u3068 comment \u3060\u3051\u3067\u3059\u3002
9
+ placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4FDD\u5B58\u3057\u306A\u3044\uFF09",takesValue:false};var FROM_ATTENDANCE_FLAG={name:"--from-attendance",summary:"\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u51FA\u52E4\u6253\u523B\u304B\u3089\u57CB\u3081\u308B\uFF08\u753B\u9762\u306E\u300C\u51FA\u52E4\u65E5\u304B\u3089\u53CD\u6620\u300D\u3068\u540C\u3058 API\uFF09",
10
+ takesValue:false};var ID_USAGE=op=>`twp expense commuting ${op} <ID> --yes`;var LIST_USAGE="twp expense commuting list [--limit <\u4EF6\u6570>] | list --all-users [--month <YYYY-MM>] [--status draft|pending|approved|rejected]";var GET_USAGE="twp expense commuting get (--month <YYYY-MM> | <ID>)";var SAVE_USAGE="twp expense commuting save --month <YYYY-MM> (--content-file <\u30D1\u30B9> | --from-attendance | --generate-cli-skeleton [--from-attendance])";var APPLY_USAGE="twp expense commuting apply\
11
+ <ID> [--workflow <\u7533\u8ACB\u66F8>] [--comment <\u30B3\u30E1\u30F3\u30C8>] --yes";var EXPORT_USAGE="twp expense commuting export --month <YYYY-MM> --out <\u30D1\u30B9.csv> [--force] [--include-hidden]";var OPAQUE_400="\u65AD\u3089\u308C\u305F\u7406\u7531\u306F\u30B5\u30FC\u30D0\u304C\u8FD4\u3055\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u672C\u756A\u3067\u306F\u300C\u30B5\u30FC\u30D0\u30FC\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u300D\u306B\u306A\u308A\u307E\u3059\uFF09\u3002\n \u305D\u306E\u3068\u304D\u306F twp expense commuting get <ID> \u3067\u72B6\u614B\uFF08status\uFF09\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";
12
+ var CONTENT_HELP=`\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u30AD\u30FC\u306F daily_entries \u3068 comment \u3060\u3051\u3067\u3059\u3002
12
13
  daily_entries \u306F\u65E5\uFF08"01"\u301C\u6708\u672B\u3002"1" \u306E\u3088\u3046\u306B1\u6841\u3067\u3082\u53EF\uFF09\u2192 \u533A\u5206\uFF08round_trip\uFF1D\u5F80\u5FA9 / one_way\uFF1D\u7247\u9053 / "" \u304B null\uFF1D\u901A\u52E4\u306A\u3057\uFF09\u3002
13
14
  \u66F8\u304B\u306A\u304B\u3063\u305F\u65E5\u306F\u300C\u901A\u52E4\u306A\u3057\u300D\u3067\u9001\u308A\u307E\u3059\uFF08\u753B\u9762\u306E\u4FDD\u5B58\u3068\u540C\u3058\u304F\u3001\u6708\u306E\u5168\u65E5\u3092\u9001\u308A\u307E\u3059\uFF09\u3002
14
15
  comment \u306F ${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\uFF08\u7701\u304F\u3068\u4ECA\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002`;function dataOf(body,what){if(!isRecord(body)||!("data"in body)){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["data"]}function rowsOf(body,what){const data=dataOf(
@@ -21,9 +22,12 @@ includes(key)).map(key=>`${key}\uFF08\u9001\u308C\u306A\u3044\u9805\u76EE\u3067\
21
22
  test(key)?Number(key):0;const normalized=String(day).padStart(2,"0");if(!/^\d{1,2}$/.test(key)){problems.push(`daily_entries.${key}\uFF08\u65E5\u306F1\u301C2\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: "01" / "1"\uFF09`)}else if(day<1||day>lastDay){problems.push(`daily_entries.${key}\uFF08${month} \u306B\u7121\u3044\u65E5\u3067\u3059\u3002"01"\u301C"${String(lastDay)}" \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(seen.has(normalized)){
22
23
  problems.push(`daily_entries.${key}\uFF08${normalized} \u65E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\uFF09`)}else if(typeof value!=="string"||!ENTRY_VALUES.includes(value)){problems.push(`daily_entries.${key}\uFF08\u533A\u5206\u306F round_trip / one_way / "" \u306E\u3069\u308C\u304B\u3067\u3059\uFF09`)}else{seen.add(normalized);entries[normalized]=value}}const comment=parsed["comment"];if(comment!==void 0&&comment!==null&&typeof comment!=="string")problems.push("comment\uFF08\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09");
23
24
  if(typeof comment==="string"&&[...comment].length>COMMENT_MAX)problems.push(`comment\uFF08${String(COMMENT_MAX)} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\uFF09`);if(problems.length>0){throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u5024\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${problems.join(", ")}`,CONTENT_HELP)}return{daily_entries:entries,...typeof comment==="string"?{comment}:{}}}function countEntries(entries){const values=Object.
24
- values(entries);return{roundTrips:values.filter(v=>v==="round_trip").length,oneWays:values.filter(v=>v==="one_way").length}}var BOM=String.fromCharCode(65279);var FORMULA_START=/[=+\-@\t\r]/;var SIGNED_NUMBER=/^[+-]\d+(\.\d+)?([eE][+-]?\d+)?$/;function cellValueAt(body,start,quoted){let value="";for(let i=start;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]!=='"')break;i+=1}}else if(ch===","||ch==="\n"||ch==="\r"){break}value+=ch}return value}function needsGuard(body,start,quoted){
25
- const first=body[start];if(first===void 0||!FORMULA_START.test(first))return false;if(first==="+"||first==="-")return!SIGNED_NUMBER.test(cellValueAt(body,start,quoted));return true}function neutralizeCsvFormulas(text){const hasBom=text.startsWith(BOM);const body=hasBom?text.slice(BOM.length):text;let out="";let atFieldStart=true;let quoted=false;for(let i=0;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]==='"'){out+='""';i+=1;continue}quoted=false}out+=ch;continue}if(atFieldStart){
26
- atFieldStart=false;if(ch==='"'){quoted=true;out+=ch;const next=body[i+1];if(next!==void 0&&next!=='"'&&needsGuard(body,i+1,true))out+="'";continue}if(ch!=="\r"&&needsGuard(body,i,false))out+="'"}out+=ch;if(ch===","||ch==="\n")atFieldStart=true}return(hasBom?BOM:"")+out}function neutralizeCsvBytes(bytes){let text;try{text=new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(bytes)}catch{throw new ApiResponseError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E CSV \u304C UTF-8 \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
25
+ values(entries);return{roundTrips:values.filter(v=>v==="round_trip").length,oneWays:values.filter(v=>v==="one_way").length}}function draftEntriesOf(body,month){const raw=isRecord(body)?body["daily_entries"]:void 0;if(!isRecord(raw)){throw new ApiResponseError("\u51FA\u52E4\u65E5\u304B\u3089\u306E\u4E0B\u66F8\u304D\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\uFF08daily_entries \u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u63A5\u7D9A\u5148\u304C\u53E4\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002")}
26
+ const entries=emptyEntries(month);const problems=[];for(const[day,rawValue]of Object.entries(raw)){const value=rawValue===null?"":rawValue;if(!(day in entries))problems.push(`${day}\uFF08${month} \u306B\u7121\u3044\u65E5\uFF09`);else if(typeof value!=="string"||!ENTRY_VALUES.includes(value))problems.push(`${day}\uFF08\u77E5\u3089\u306A\u3044\u533A\u5206\uFF09`);else entries[day]=value}if(problems.length>0){throw new ApiResponseError(`\u51FA\u52E4\u65E5\u304B\u3089\u306E\u4E0B\u66F8\u304D\u306E\u5FDC\u7B54\u306B\u60F3\u5B9A\u5916\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${problems.
27
+ join(", ")}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return entries}function draftPlan(month){return{method:"GET",path:`${BASE}/${month}/draft-from-attendance`}}function currentEntriesOf(body){const data=dataOf(body,"\u901A\u52E4\u4EA4\u901A\u8CBB");return isRecord(data)&&isRecord(data["daily_entries"])?data["daily_entries"]:{}}function overwrittenDays(current,draft){return Object.entries(current).filter(([day,value])=>typeof value==="string"&&value!==
28
+ ""&&(draft[day]??"")!==value).map(([day])=>day).sort()}var BOM=String.fromCharCode(65279);var FORMULA_START=/[=+\-@\t\r]/;var SIGNED_NUMBER=/^[+-]\d+(\.\d+)?([eE][+-]?\d+)?$/;function cellValueAt(body,start,quoted){let value="";for(let i=start;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]!=='"')break;i+=1}}else if(ch===","||ch==="\n"||ch==="\r"){break}value+=ch}return value}function needsGuard(body,start,quoted){const first=body[start];if(first===void 0||!FORMULA_START.
29
+ test(first))return false;if(first==="+"||first==="-")return!SIGNED_NUMBER.test(cellValueAt(body,start,quoted));return true}function neutralizeCsvFormulas(text){const hasBom=text.startsWith(BOM);const body=hasBom?text.slice(BOM.length):text;let out="";let atFieldStart=true;let quoted=false;for(let i=0;i<body.length;i+=1){const ch=body[i];if(quoted){if(ch==='"'){if(body[i+1]==='"'){out+='""';i+=1;continue}quoted=false}out+=ch;continue}if(atFieldStart){atFieldStart=false;if(ch==='"'){quoted=true;out+=
30
+ ch;const next=body[i+1];if(next!==void 0&&next!=='"'&&needsGuard(body,i+1,true))out+="'";continue}if(ch!=="\r"&&needsGuard(body,i,false))out+="'"}out+=ch;if(ch===","||ch==="\n")atFieldStart=true}return(hasBom?BOM:"")+out}function neutralizeCsvBytes(bytes){let text;try{text=new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(bytes)}catch{throw new ApiResponseError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E CSV \u304C UTF-8 \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
27
31
  return new TextEncoder().encode(neutralizeCsvFormulas(text))}function listPlan(input){const status=input.flags.get("--status")?.trim();if(!input.flags.has("--all-users")){if(input.flags.has(MONTH_FLAG.name)||status!==void 0){throw new UsageError("--month \u3068 --status \u306F --all-users\uFF08\u30C6\u30CA\u30F3\u30C8\u5168\u54E1\u306E\u5206\uFF09\u3068\u4E00\u7DD2\u306B\u3060\u3051\u4F7F\u3048\u307E\u3059",LIST_USAGE)}const raw=input.flags.get("--limit");if(raw===void 0)return{method:"GET",path:BASE};
28
32
  const limit=/^\d+$/.test(raw.trim())?Number(raw.trim()):0;if(limit<1||limit>LIST_LIMIT_MAX){throw new UsageError(`--limit \u306F 1\u301C${String(LIST_LIMIT_MAX)} \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,LIST_USAGE)}return{method:"GET",path:BASE,query:{limit}}}if(input.flags.has("--limit"))throw new UsageError("--limit \u306F\u81EA\u5206\u306E\u5206\u306E\u4E00\u89A7\u3060\u3051\u3067\u4F7F\u3048\u307E\u3059\uFF08--all-users \u306F\u8A72\u5F53\u3092\u5168\u4EF6\u8FD4\u3057\u307E\u3059\uFF09",
29
33
  LIST_USAGE);if(status!==void 0&&!STATUSES.includes(status)){throw new UsageError(`--status \u306F ${STATUSES.join(" / ")} \u306E\u3069\u308C\u304B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${status}\uFF09`,LIST_USAGE)}const month=monthFlag(input.flags);return{method:"GET",path:`${BASE}/admin/list`,query:{...month===void 0?{}:{year_month:month},...status===void 0?{}:{status}}}}var listOperation={name:"list",summary:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4E00\u89A7\uFF08\u81EA\u5206\u306E\u5206\u30FB--all-users \
@@ -40,25 +44,36 @@ data))throw new ApiResponseError("\u6708\u306E\u52E4\u6020\u60C5\u5831\u306E\u5F
40
44
  ["label","source","state","note"])})}return rows}var attendanceOperation={name:"attendance",summary:"\u6708\u306E\u81EA\u5206\u306E\u52E4\u6020\u60C5\u5831\uFF08\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\uFF09\u3092\u65E5\u3054\u3068\u306B\u8868\u793A\u3059\u308B",usage:"twp expense commuting attendance --month <YYYY-MM>",description:"\u753B\u9762\u306E\u65E5\u5225\u901A\u52E4\u533A\u5206\u306B\u4F75\u8A18\u3055\u308C\u308B\u3001\u81EA\u5206\u306E\u52E4\u6020\u60C5\u5831\u3067\u3059\uFF08GET /api/v2/expense/commuting/{YYYY-MM}/attendance\uFF09\u3002\n\u6709\u7D66\uFF08source=paid_leave\uFF09\u30FB\u30EA\u30E2\u30FC\u30C8\uFF08remote\uFF09\u30FB\u52E4\u52D9\u5909\u66F4\uFF08work_change\uFF09\u304C\u3042\
41
45
  \u308B\u65E5\u3060\u3051\u304C\u4E26\u3073\u307E\u3059\uFF08\u4F55\u3082\u7121\u3044\u65E5\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002\nstate \u304C pending \u306E\u3082\u306E\u306F\u7533\u8ACB\u4E2D\u3067\u3059\u3002\u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u6C7A\u3081\u308B\u6750\u6599\u3067\u3001\u3053\u306E\u64CD\u4F5C\u306F\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093\u3002\n--output json \u306F\u65E5\u4ED8 \u2192 \u9805\u76EE\u306E\u914D\u5217\uFF08API \u306E data \u305D\u306E\u3082\u306E\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
42
46
  flags:[MONTH_FLAG],forbidden:USER_FORBIDDEN,plan:input=>({method:"GET",path:`${BASE}/${requiredMonth(input,"twp expense commuting attendance --month <YYYY-MM>")}/attendance`}),summarize:attendanceRows,raw:body=>dataOf(body,"\u6708\u306E\u52E4\u6020\u60C5\u5831"),notes:body=>attendanceRows(body).length===0?["\u3053\u306E\u6708\u306B\u306F\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u51FA\u52E4\u65E5\u306E\u4E00\u89A7\u3067\u306F\u306A\u3044\u306E\u3067\u3001\u901A\u5E38\u306E\u51FA\u52E4\u65E5\u306F\u51FA\u307E\u305B\u3093\uFF09"]:
43
- []};async function prepareSave(input){const month=requiredMonth(input,SAVE_USAGE);const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",SAVE_USAGE)}if(wantsSkeleton)return input;const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9",
44
- maxChars:CONTENT_MAX_CHARS,usage:SAVE_USAGE});if(text===void 0){throw new UsageError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp expense commuting save --month ${month} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}const content=parseCommutingContent(text,month,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`);return withResolved(
45
- input,{body:JSON.stringify({year_month:month,...content})})}function savePlan(input){const month=requiredMonth(input,SAVE_USAGE);if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:`${BASE}/${month}`};return{method:"POST",path:BASE,body:JSON.parse(requireResolved(input,"body"))}}function saveResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"||typeof value["month"]!=="string"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: commuting save \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}
46
- return value}function skeletonOf(result){const data=dataOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB");const entries=emptyEntries(result.month);if(isRecord(data)&&isRecord(data["daily_entries"])){for(const[day,value]of Object.entries(data["daily_entries"])){if(day in entries&&typeof value==="string")entries[day]=value}}return{daily_entries:entries,comment:isRecord(data)&&typeof data["comment"]==="string"?data["comment"]:""}}var saveOperation={name:"save",summary:"\u6708\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4FDD\u5B58\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u4F5C\u308A\u3001\u3042\u308C\u3070\u4E0A\
47
- \u66F8\u304D\uFF09",usage:SAVE_USAGE,description:`\u753B\u9762\u306E\u300C\u4FDD\u5B58\u300D\u3068\u540C\u3058\u304F POST /api/v2/expense/commuting \u3092\u9001\u308A\u307E\u3059\uFF08\u540C\u3058\u6708\u304C\u3042\u308C\u3070\u4E0A\u66F8\u304D\u30FB\u7121\u3051\u308C\u3070\u4F5C\u6210\uFF09\u3002
47
+ []};async function prepareSave(input){const month=requiredMonth(input,SAVE_USAGE);const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",SAVE_USAGE)}if(input.flags.has(FROM_ATTENDANCE_FLAG.name)&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--from-attendance \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\
48
+ \u3093",`\u51FA\u52E4\u65E5\u304B\u3089\u57CB\u3081\u305F\u3046\u3048\u3067\u624B\u76F4\u3057\u3059\u308B\u306A\u3089\u3001twp expense commuting save --month ${month} --generate-cli-skeleton --from-attendance \u3067\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u304B\u3089 --content-file \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(wantsSkeleton||input.flags.has(FROM_ATTENDANCE_FLAG.name))return input;const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,
49
+ label:"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage:SAVE_USAGE});if(text===void 0){throw new UsageError("\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u3072\u306A\u5F62\u306F twp expense commuting save --month ${month} --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002`)}const content=parseCommutingContent(text,month,`${CONTENT_FILE_FLAG.name} ${input.flags.
50
+ get(CONTENT_FILE_FLAG.name)??""}`);return withResolved(input,{body:JSON.stringify({year_month:month,...content})})}var DRAFT_PLACEHOLDER="<GET draft-from-attendance \u306E daily_entries\uFF08\u6708\u306E\u5168\u65E5\uFF09>";function savePlan(input){const month=requiredMonth(input,SAVE_USAGE);if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:`${BASE}/${month}`};if(input.flags.has(FROM_ATTENDANCE_FLAG.name))return{method:"POST",path:BASE,body:{year_month:month,daily_entries:DRAFT_PLACEHOLDER}};
51
+ return{method:"POST",path:BASE,body:JSON.parse(requireResolved(input,"body"))}}async function executeSave(input,ctx){const month=requiredMonth(input,SAVE_USAGE);const skeleton=input.flags.has(SKELETON_FLAG.name);if(!input.flags.has(FROM_ATTENDANCE_FLAG.name))return{skeleton,month,body:await ctx.send(savePlan(input))};const draft=draftEntriesOf(await ctx.send(draftPlan(month)),month);if(skeleton)return{skeleton,month,body:await ctx.send(savePlan(input)),draft};return{skeleton,month,body:await ctx.
52
+ send({method:"POST",path:BASE,body:{year_month:month,daily_entries:draft}}),draft}}async function previewSave(input,ctx){if(!input.flags.has(FROM_ATTENDANCE_FLAG.name)||input.flags.has(SKELETON_FLAG.name))return{notes:[],warnings:[]};const month=requiredMonth(input,SAVE_USAGE);const draft=draftEntriesOf(await ctx.send(draftPlan(month)),month);const changed=overwrittenDays(currentEntriesOf(await ctx.send({method:"GET",path:`${BASE}/${month}`})),draft);const notes=[`\u51FA\u52E4\u65E5\u304B\u3089\u5F80\u5FA9 ${String(
53
+ countEntries(draft).roundTrips)} \u65E5\u306B\u306A\u308A\u307E\u3059\uFF08\u6253\u523B\u306E\u7121\u3044\u65E5\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u5168\u4F11\u306E\u6709\u7D66\u306E\u65E5\u306F\u901A\u52E4\u306A\u3057\uFF09`];if(changed.length===0)return{notes,warnings:[]};return{notes,warnings:[`${month} \u3067\u65E2\u306B\u9078\u3093\u3067\u3042\u308B\u533A\u5206\u304C ${String(changed.length)} \u65E5\u3076\u3093\u5909\u308F\u308A\u307E\u3059\uFF08${changed.join(", ")} \u65E5\uFF09\u3002\u7247\u9053\u306A\u3069\u306E\u624B\u76F4\u3057\u3082\u51FA\u52E4\u65E5\u304B\u3089\u306E\u4E0B\u66F8\u304D\u3067\
54
+ \u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059`]}}function saveResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"||typeof value["month"]!=="string"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: commuting save \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}return value}function skeletonOf(result){const data=dataOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB");const entries=emptyEntries(result.month);if(isRecord(
55
+ data)&&isRecord(data["daily_entries"])){for(const[day,value]of Object.entries(data["daily_entries"])){if(day in entries&&typeof value==="string")entries[day]=value}}if(result.draft!==void 0)Object.assign(entries,result.draft);return{daily_entries:entries,comment:isRecord(data)&&typeof data["comment"]==="string"?data["comment"]:""}}var saveOperation={name:"save",summary:"\u6708\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4FDD\u5B58\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u4F5C\u308A\u3001\u3042\u308C\u3070\u4E0A\u66F8\u304D\uFF09",
56
+ usage:SAVE_USAGE,description:`\u753B\u9762\u306E\u300C\u4FDD\u5B58\u300D\u3068\u540C\u3058\u304F POST /api/v2/expense/commuting \u3092\u9001\u308A\u307E\u3059\uFF08\u540C\u3058\u6708\u304C\u3042\u308C\u3070\u4E0A\u66F8\u304D\u30FB\u7121\u3051\u308C\u3070\u4F5C\u6210\uFF09\u3002
48
57
  \u4E0A\u66F8\u304D\u3067\u304D\u308B\u306E\u306F\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3068\u5DEE\u3057\u623B\u3057\uFF08rejected\uFF09\u3060\u3051\u3067\u3001\u5DEE\u3057\u623B\u3057\u306F\u4FDD\u5B58\u3059\u308B\u3068\u4E0B\u66F8\u304D\u306B\u623B\u308A\u307E\u3059\u3002
49
58
  \u7533\u8ACB\u4E2D\u30FB\u627F\u8A8D\u6E08\u307F\u306E\u6708\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\u7247\u9053\u306E\u91D1\u984D\u30FB\u7D4C\u8DEF\u306F\u5951\u7D04\u306E\u901A\u52E4\u60C5\u5831\u304B\u3089\u5165\u308A\u307E\u3059\u3002
50
59
  ${OPAQUE_400}
51
60
  ${CONTENT_HELP}
52
61
  --generate-cli-skeleton \u306F\u4ECA\u306E\u6708\u306E\u5185\u5BB9\uFF08\u7121\u3051\u308C\u3070\u5168\u65E5\u304C\u7A7A\uFF09\u3092 --content-file \u306E\u5F62\u3067\u51FA\u3057\u307E\u3059\uFF08\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093\uFF09\u3002
53
62
  \u4F8B: twp expense commuting save --month 2026-10 --generate-cli-skeleton --output json > commuting.json
63
+ --from-attendance \u306F\u753B\u9762\u306E\u300C\u51FA\u52E4\u65E5\u304B\u3089\u53CD\u6620\u300D\u3068\u540C\u3058\u304F\u3001\u51FA\u52E4\u6253\u523B\u306E\u3042\u308B\u65E5\u3092\u5F80\u5FA9\u306B\u3057\u305F\u4E0B\u66F8\u304D\u3067\u6708\u306E\u5168\u65E5\u3092\u7F6E\u304D\u63DB\u3048\u3066\u4FDD\u5B58\u3057\u307E\u3059
64
+ \uFF08GET /api/v2/expense/commuting/{YYYY-MM}/draft-from-attendance\u3002\u30EA\u30E2\u30FC\u30C8\u30FB\u5168\u4F11\u306E\u6709\u7D66\u30FB\u6253\u523B\u306E\u7121\u3044\u65E5\u306F\u901A\u52E4\u306A\u3057\u3002\u30B3\u30E1\u30F3\u30C8\u306F\u5909\u3048\u307E\u305B\u3093\uFF09\u3002
65
+ \u65E2\u306B\u9078\u3093\u3067\u3042\u308B\u533A\u5206\u304C\u5909\u308F\u308B\u65E5\u304C\u3042\u308C\u3070 --yes \u304C\u8981\u308A\u307E\u3059\uFF08\u753B\u9762\u306E\u4E0A\u66F8\u304D\u78BA\u8A8D\u3068\u540C\u3058\uFF09\u3002--dry-run \u3067\u3082\u4E0B\u66F8\u304D\u3068\u4ECA\u306E\u6708\u306F\u8AAD\u307F\u307E\u3059\u3002
66
+ --generate-cli-skeleton \u3068\u4F75\u305B\u308B\u3068\u3001\u4E0B\u66F8\u304D\u3092\u57CB\u3081\u305F\u3072\u306A\u5F62\u3092\u51FA\u3057\u307E\u3059\uFF08\u7247\u9053\u306E\u65E5\u306A\u3069\u3092\u624B\u76F4\u3057\u3057\u3066\u304B\u3089 --content-file \u3067\u4FDD\u5B58\uFF09\u3002
54
67
  \u65E5\u3054\u3068\u306E\u533A\u5206\u3092\u6C7A\u3081\u308B\u6750\u6599\u306F twp expense commuting attendance\uFF08\u6709\u7D66\u30FB\u30EA\u30E2\u30FC\u30C8\u30FB\u52E4\u52D9\u5909\u66F4\u306E\u65E5\uFF09\u3067\u3059\u3002
55
- \u4FDD\u5B58\u3057\u305F\u3060\u3051\u3067\u306F\u7533\u8ACB\u3055\u308C\u307E\u305B\u3093\u3002\u7533\u8ACB\u306F twp expense commuting apply <ID>\u3002`,flags:[MONTH_FLAG,CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:USER_FORBIDDEN,prepare:prepareSave,plan:savePlan,plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u306E\u6708\u306E\u5185\u5BB9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093"]:[],execute:async(input,ctx)=>({skeleton:input.flags.
56
- has(SKELETON_FLAG.name),month:requiredMonth(input,SAVE_USAGE),body:await ctx.send(savePlan(input))}),summarize(value){const result=saveResult(value);if(result.skeleton)return skeletonOf(result);return pick(recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58"),GET_COLUMNS)},raw(value){const result=saveResult(value);return result.skeleton?skeletonOf(result):recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58")},notes(value){const result=saveResult(value);if(result.
57
- skeleton){const{roundTrips,oneWays}=countEntries(skeletonOf(result)["daily_entries"]);return[`${result.month} \u306E\u3072\u306A\u5F62\u3067\u3059\uFF08\u5F80\u5FA9 ${String(roundTrips)} \u65E5\u30FB\u7247\u9053 ${String(oneWays)} \u65E5\uFF09\u3002daily_entries \u3092\u57CB\u3081\u3066\u304B\u3089 twp expense commuting save --month ${result.month} --content-file <\u30D1\u30B9> \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044`]}const saved=recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58");
58
- return[...serverMessage(result.body),`\u7533\u8ACB\u306F twp expense commuting apply ${String(saved["id"])} --yes`]}};async function commutingWorkflowId(input,ctx){const ref=input.flags.get("--workflow")?.trim();if(ref!==void 0&&ref!==""){return UUID_RE.test(ref)?ref:(await ctx.resolver.workflow(ref,"--workflow",WORKFLOW_CATEGORY)).id}const candidates=await ctx.resolver.applicableWorkflows(WORKFLOW_CATEGORY);if(candidates.length===1)return candidates[0].id;if(candidates.length===0){throw new UsageError(
59
- `\u7533\u8ACB\u3067\u304D\u308B\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C\u3042\u308A\u307E\u305B\u3093\uFF08twp workflow applicable --category ${WORKFLOW_CATEGORY} \u304C0\u4EF6\uFF09`,"\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u3001\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C ${String(
60
- candidates.length)} \u4EF6\u3042\u308A\u307E\u3059\u3002--workflow \u3067\u540D\u524D\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${candidates.map(row=>`${row.name}\uFF08${row.id}\uFF09`).join(" / ")}`,APPLY_USAGE)}async function prepareApply(input,ctx){const id=targetId(input,APPLY_USAGE);const comment=input.flags.get(COMMENT_FLAG.name);if(comment!==void 0&&[...comment].length>COMMENT_MAX){throw new UsageError(`--comment \u306F ${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,
61
- APPLY_USAGE)}return withResolved(input,{id,workflowId:await commutingWorkflowId(input,ctx)})}var applyOperation={name:"apply",summary:"\u4FDD\u5B58\u3057\u305F\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u7533\u8ACB\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:APPLY_USAGE,description:`POST /api/v2/expense/commuting/{id}/apply \u3092\u9001\u308A\u307E\u3059\u3002\u7533\u8ACB\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u3059\u307E\u3067\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093\u3002
68
+ \u4FDD\u5B58\u3057\u305F\u3060\u3051\u3067\u306F\u7533\u8ACB\u3055\u308C\u307E\u305B\u3093\u3002\u7533\u8ACB\u306F twp expense commuting apply <ID>\u3002`,flags:[MONTH_FLAG,CONTENT_FILE_FLAG,FROM_ATTENDANCE_FLAG,SKELETON_FLAG],forbidden:USER_FORBIDDEN,prepare:prepareSave,plan:savePlan,plannedNotes(input){const fromAttendance=input.flags.has(FROM_ATTENDANCE_FLAG.name);if(input.flags.has(SKELETON_FLAG.name)){return[fromAttendance?"\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u51FA\u52E4\u65E5\u304B\u3089\u306E\u4E0B\u66F8\u304D\uFF08GET \u2026/draft-from-attendance\uFF09\u3092\u8AAD\u307F\u307E\u3059\u3002\u3069\u3061\u3089\u3082\u8AAD\u3080\u3060\u3051\u3067\u3001\u4F55\u3082\u4FDD\u5B58\
69
+ \u3057\u307E\u305B\u3093":"\u4ECA\u306E\u6708\u306E\u5185\u5BB9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u4F55\u3082\u4FDD\u5B58\u3057\u307E\u305B\u3093"]}return fromAttendance?["\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u51FA\u52E4\u65E5\u304B\u3089\u306E\u4E0B\u66F8\u304D\uFF08GET \u2026/draft-from-attendance\uFF09\u3092\u8AAD\u307F\u3001\u305D\u306E daily_entries \u3092\u9001\u308A\u307E\u3059"]:[]},preview:previewSave,execute:executeSave,summarize(value){const result=saveResult(
70
+ value);if(result.skeleton)return skeletonOf(result);return pick(recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58"),GET_COLUMNS)},raw(value){const result=saveResult(value);return result.skeleton?skeletonOf(result):recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58")},notes(value){const result=saveResult(value);if(result.skeleton){const{roundTrips,oneWays}=countEntries(skeletonOf(result)["daily_entries"]);const head=result.draft===void 0?`${result.month} \u306E\
71
+ \u3072\u306A\u5F62\u3067\u3059`:`${result.month} \u306E\u51FA\u52E4\u65E5\u304B\u3089\u57CB\u3081\u305F\u3072\u306A\u5F62\u3067\u3059`;return[`${head}\uFF08\u5F80\u5FA9 ${String(roundTrips)} \u65E5\u30FB\u7247\u9053 ${String(oneWays)} \u65E5\uFF09\u3002daily_entries \u3092\u57CB\u3081\u3066\u304B\u3089 twp expense commuting save --month ${result.month} --content-file <\u30D1\u30B9> \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044`]}const saved=recordOf(result.body,"\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u4FDD\u5B58");
72
+ const drafted=result.draft===void 0?[]:[`\u51FA\u52E4\u65E5\u304B\u3089\u5F80\u5FA9 ${String(countEntries(result.draft).roundTrips)} \u65E5\u3067\u4FDD\u5B58\u3057\u307E\u3057\u305F`];return[...serverMessage(result.body),...drafted,`\u7533\u8ACB\u306F twp expense commuting apply ${String(saved["id"])} --yes`]}};async function commutingWorkflowId(input,ctx){const ref=input.flags.get("--workflow")?.trim();if(ref!==void 0&&ref!==""){return UUID_RE.test(ref)?ref:(await ctx.resolver.workflow(ref,"--w\
73
+ orkflow",WORKFLOW_CATEGORY)).id}const candidates=await ctx.resolver.applicableWorkflows(WORKFLOW_CATEGORY);if(candidates.length===1)return candidates[0].id;if(candidates.length===0){throw new UsageError(`\u7533\u8ACB\u3067\u304D\u308B\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C\u3042\u308A\u307E\u305B\u3093\uFF08twp workflow applicable --category ${WORKFLOW_CATEGORY} \u304C0\u4EF6\uFF09`,"\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u3001\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
74
+ throw new UsageError(`\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C ${String(candidates.length)} \u4EF6\u3042\u308A\u307E\u3059\u3002--workflow \u3067\u540D\u524D\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${candidates.map(row=>`${row.name}\uFF08${row.id}\uFF09`).join(" / ")}`,APPLY_USAGE)}async function prepareApply(input,ctx){const id=targetId(input,APPLY_USAGE);const comment=input.flags.get(COMMENT_FLAG.name);if(comment!==void 0&&[...comment].length>COMMENT_MAX){
75
+ throw new UsageError(`--comment \u306F ${String(COMMENT_MAX)} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,APPLY_USAGE)}return withResolved(input,{id,workflowId:await commutingWorkflowId(input,ctx)})}var applyOperation={name:"apply",summary:"\u4FDD\u5B58\u3057\u305F\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3067\u7533\u8ACB\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:APPLY_USAGE,description:`POST /api/v2/expense/commuti\
76
+ ng/{id}/apply \u3092\u9001\u308A\u307E\u3059\u3002\u7533\u8ACB\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u3059\u307E\u3067\u7DE8\u96C6\u3067\u304D\u307E\u305B\u3093\u3002
62
77
  \u7533\u8ACB\u3059\u308B\u306E\u306F\u4FDD\u5B58\u6E08\u307F\u306E\u5185\u5BB9\u3067\u3059\uFF08\u5148\u306B twp expense commuting save \u3067\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\u4E0B\u66F8\u304D\u30FB\u5DEE\u3057\u623B\u3057\u3060\u3051\u304C\u7533\u8ACB\u3067\u304D\u307E\u3059\u3002
63
78
  --workflow \u3092\u7701\u304F\u3068\u3001\u7533\u8ACB\u3067\u304D\u308B\u901A\u52E4\u4EA4\u901A\u8CBB\u306E\u7533\u8ACB\u66F8\u304C1\u3064\u3060\u3051\u306E\u3068\u304D\u305D\u308C\u3092\u4F7F\u3044\u307E\u3059\u3002\u8907\u6570\u3042\u308C\u3070 --workflow \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044
64
79
  \uFF08\u5019\u88DC\u306F twp workflow applicable --category ${WORKFLOW_CATEGORY}\uFF09\u3002
@@ -72,4 +87,4 @@ confirmation:"\u53D6\u308A\u6D88\u305B\u306A\u3044\u524A\u9664",method:"DELETE",
72
87
  \u5217\u306B\u627F\u8A8D\u6E08\u307F\u306E\u533A\u5206\uFF08\u5F80\u5FA9\u30FB\u7247\u9053\uFF09\u304C\u5165\u308A\u307E\u3059\u3002\n\u627F\u8A8D\u6E08\u307F\u3067\u306A\u3044\u4EBA\u3082\u884C\u306F\u51FA\u307E\u3059\uFF08\u65E5\u5225\u306F\u7A7A\uFF09\u3002--include-hidden \u3067\u975E\u8868\u793A\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\u3002\n= + - @ \u3067\u59CB\u307E\u308B\u30BB\u30EB\uFF08+ - \u306F\u6570\u5024\u3092\u9664\u304F\uFF09\u306E\u5148\u982D\u306B ' \u3092\u4ED8\u3051\u3066\u3001\u8868\u8A08\u7B97\u30BD\u30D5\u30C8\u304C\u5F0F\u3068\u3057\u3066\u8AAD\u307E\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\uFF08twp user export \u3068\u540C\u3058\u3002\n \u30B5\u30FC\u30D0\u3082\u540C\u3058\u7121\u5BB3\u5316\u3092\u3057\u3066\u3044\u308B\u306E\u3067\u3001\u65E2\u306B ' \u4ED8\u304D\u306E\u30BB\u30EB\u306B\u306F\u91CD\u306D\u307E\u305B\u3093\uFF09\u3002\n\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",
73
88
  flags:[MONTH_FLAG,OUT_FLAG,FORCE_FLAG,{name:"--include-hidden",summary:"\u975E\u8868\u793A\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name,transform:neutralizeCsvBytes},forbidden:ADMIN_FORBIDDEN,plan:input=>({method:"GET",path:`${BASE}/admin/export`,query:{year_month:requiredMonth(input,EXPORT_USAGE),...input.flags.has("--include-hidden")?{include_hidden:"1"}:{}}}),summarize:body=>body,raw:body=>body};var commutingResource={
74
89
  name:"commuting",summary:"\u901A\u52E4\u4EA4\u901A\u8CBB\uFF08\u6708\u3054\u3068\u306E\u65E5\u5225\u533A\u5206\u306E\u4FDD\u5B58\u30FB\u7533\u8ACB\u30FB\u53D6\u6D88\u30FB\u524A\u9664\u3068\u3001\u7BA1\u7406\u8005\u306E\u4E00\u89A7\u30FBCSV\uFF09",operations:[listOperation,getOperation,attendanceOperation,saveOperation,applyOperation,cancelOperation,deleteOperation,exportOperation]};var expenseDomain={name:"expense",summary:"\u7D4C\u8CBB\uFF08\u901A\u52E4\u4EA4\u901A\u8CBB\uFF09",operations:[],subresources:[
75
- commutingResource]};export{expenseDomain,neutralizeCsvFormulas,parseCommutingContent};
90
+ commutingResource]};export{draftEntriesOf,expenseDomain,neutralizeCsvFormulas,overwrittenDays,parseCommutingContent};
@@ -1,7 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-VELLV6DJ.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
4
- import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./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";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_o\
3
+ import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-VELLV6DJ.js";import{ResolveError,
4
+ isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,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";
5
+ import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_o\
5
6
  ne"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","parent_page_id","version","tags","updated_at","updated_b\
6
7
  y_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","meeting_type","status","project_name","category_name","created\
7
8
  _by_name","updated_at"];var TEXT_OUTPUT_HELP="--output text \u306F\u672C\u6587\u3092\u8AAD\u3080\u305F\u3081\u306E\u6587\u66F8\uFF08\u898B\u51FA\u3057\u30FB\u30E1\u30BF\u60C5\u5831\u30FB\u672C\u6587\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002HTML \u3068\u5171\u540C\u7DE8\u96C6\u30A8\u30C7\u30A3\u30BF\u306E JSON \u306F\n\u5E73\u6587\u3078\u5909\u63DB\u3057\u3001\u898B\u51FA\u3057\u30FB\u7B87\u6761\u66F8\u304D\u30FB\u30EA\u30F3\u30AF\u306F Markdown \u98A8\u306B\u6B8B\u3057\u307E\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u539F\u6587\u306E\u307E\u307E\u3067\u3059\u3002";
@@ -32,9 +33,46 @@ page["parent_page_id"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F
32
33
 
33
34
  --output table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
34
35
  \u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\uFF08\u3068\u3001\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u914D\u4E0B\u306E\u30DA\u30FC\u30B8\uFF09\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[],plan:input=>({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(singleId(input,"twp wiki get","\u30DA\u30FC\u30B8","twp wiki list"))}`}),summarize:body=>pick(record(body,
35
- "page",WIKI_LABEL),WIKI_GET_COLUMNS),raw:body=>record(body,"page",WIKI_LABEL),document:wikiDocument};var NOTE_LABEL="\u30CE\u30FC\u30C8";var notePaging=envelopePaging({label:`${NOTE_LABEL}\u4E00\u89A7`});function noteListQuery(input){return{status:oneOf(input,"--status",NOTE_STATUSES),visibility:oneOf(input,"--visibility",NOTE_VISIBILITIES),tag:nonEmpty(input.flags,"--tag"),keyword:nonEmpty(input.flags,"--keyword"),sort_by:oneOf(input,"--sort",NOTE_SORTS),mine:input.flags.has("--mine")?"true":void 0,
36
- is_favorited:input.flags.has("--favorite")?"true":void 0,limit:pageLimit(input),cursor:nonEmpty(input.flags,"--cursor")}}var noteList={name:"list",summary:`\u30C6\u30CA\u30F3\u30C8\u306E${NOTE_LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08--mine \u3067\u81EA\u5206\u306E\u3082\u306E\uFF09`,usage:"twp note list [--mine] [--favorite] [--status <draft|published>] [--visibility <\u516C\u958B\u7BC4\u56F2>] [--tag <\u30BF\u30B0>] [--keyword <\u8A9E>] [--sort <\u4E26\u3073\u9806>] [--all] [--limit <\u4EF6\u6570>]",
37
- description:`\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u30FB\u975E\u516C\u958B\u306E\u30CE\u30FC\u30C8\u306F\u51FA\u307E\u305B\u3093\uFF08\u30CE\u30FC\u30C8\u306E\u7BA1\u7406\u8005\u3092\u9664\u304F\u3002\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002\u533F\u540D\u306E\u30CE\u30FC\u30C8\u306F\u4F5C\u6210\u8005\u304C\u4F0F\u305B\u3089\u308C\u307E\u3059\u3002
36
+ "page",WIKI_LABEL),WIKI_GET_COLUMNS),raw:body=>record(body,"page",WIKI_LABEL),document:wikiDocument};var WIKI_CONTENT_MAX_CHARS=4e5;var WIKI_TITLE_MAX_CHARS=255;var WIKI_TAG_MAX_CHARS=50;var WIKI_CREATE_USAGE="twp wiki create --project <\u30B3\u30FC\u30C9|ID> --title <\u4EF6\u540D> --content-file <\u30D1\u30B9|-> [--parent <\u30DA\u30FC\u30B8ID>] [--status <draft|published>] [--tag <\u30BF\u30B0>]...";var WIKI_UPDATE_USAGE="twp wiki update <\u30DA\u30FC\u30B8ID> [--title <\u4EF6\u540D>] [--content-file <\u30D1\u30B9|->] [--status\
37
+ <draft|published>] [--tag <\u30BF\u30B0>]... [--clear-tags] [--if-version <\u7248>]";var WIKI_MOVE_USAGE="twp wiki move <\u30DA\u30FC\u30B8ID> [--parent <\u30DA\u30FC\u30B8ID>|root] [--sort-order <\u9806>]";var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308B",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var WIKI_STATUS_FLAG={name:"--status",summary:`\
38
+ \u72B6\u614B\uFF08${WIKI_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"};var WIKI_TAG_FLAG={name:"--tag",summary:`\u30BF\u30B0\uFF08\u8907\u6570\u56DE\u53EF\u30FB${WIKI_TAG_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30BF\u30B0>",repeatable:true};var WIKI_WRITE_HELP="\u672C\u6587\u306F --content-file \u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B\u3089\u8AAD\u307F\u3001\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308A\u307E\u3059\uFF08\u5148\u982D\u306E BOM \u3060\u3051\u843D\u3068\u3057\u307E\u3059\uFF09\u3002\n\u753B\u9762\u306E\u30A8\u30C7\u30A3\u30BF\u306F HTML \u3067\u4FDD\u5B58\u3057\u307E\u3059\u3002Markdown \u3092\u6E21\u3057\u3066\u3082\u5909\u63DB\u3057\u306A\u3044\u306E\u3067\u3001\u753B\u9762\u3067\u306F\u8A18\u53F7\u306E\u307E\u307E\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\u7DE8\u96C6\u30FB\u79FB\u52D5\u30FB\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u3001\u30DA\u30FC\u30B8\u306E\u4F5C\u6210\u8005\u30FBwiki \u306E\u7BA1\u7406\u8005\u30FB\u7D44\u7E54\u306E\u7BA1\u7406\u8005\u3067\u3059\uFF08\u6A29\u9650\u304C\u7121\u3051\u308C\u3070\u30B5\
39
+ \u30FC\u30D0\u306E 403 \u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002";async function wikiContent(input,usage){return readBody(input,{flag:"--content",fileFlag:"--content-file",label:"wiki \u306E\u672C\u6587",maxChars:WIKI_CONTENT_MAX_CHARS,usage})}function wikiTitle(input){const raw=input.flags.get("--title");if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError("--title \u304C\u7A7A\u3067\u3059","\u4EF6\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
40
+ const count=charCount(raw);if(count>WIKI_TITLE_MAX_CHARS){throw new UsageError(`--title \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${WIKI_TITLE_MAX_CHARS} \u6587\u5B57\uFF09`,"\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C255\u6587\u5B57\u3067\u3059\u3002")}return raw}function wikiTags(input){const tags=repeatedValues(input,"--tag").map(tag=>tag.trim());const clear=input.flags.has("--clear-tags");if(clear&&tags.length>0){throw new UsageError("--tag \u3068 --clear-ta\
41
+ gs \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002\u6D88\u3059\u3060\u3051\u306A\u3089 --clear-tags \u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(clear)return[];if(tags.length===0)return void 0;for(const tag of tags){if(tag==="")throw new UsageError("--tag \u304C\u7A7A\u3067\u3059","\u30BF\u30B0\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(charCount(
42
+ tag)>WIKI_TAG_MAX_CHARS){throw new UsageError(`--tag \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${tag}\u30FB\u4E0A\u9650 ${WIKI_TAG_MAX_CHARS} \u6587\u5B57\uFF09`,`\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C${WIKI_TAG_MAX_CHARS}\u6587\u5B57\u3067\u3059\u3002`)}}return[...new Set(tags)]}function wikiParent(input,allowRoot){const raw=nonEmpty(input.flags,"--parent");if(raw===void 0)return void 0;const parent=raw.trim();if(parent===ROOT_PARENT){if(!allowRoot)throw new UsageError(`--parent ${ROOT_PARENT}\
43
+ \u306F create \u3067\u306F\u4F7F\u3048\u307E\u305B\u3093`,"\u6700\u4E0A\u4F4D\u306B\u4F5C\u308B\u306A\u3089 --parent \u3092\u7701\u3044\u3066\u304F\u3060\u3055\u3044\u3002");return null}if(!isSafePathSegment(parent)){throw new UsageError(`\u89AA\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${parent}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return parent}function pageFrom(body){
44
+ return record(body,"page",WIKI_LABEL)}var wikiCreate={name:"create",summary:`${WIKI_LABEL}\u3092\u4F5C\u6210\u3059\u308B\uFF08\u672C\u6587\u306F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\uFF09`,usage:WIKI_CREATE_USAGE,description:`${WIKI_WRITE_HELP}
45
+ --status \u3092\u7701\u304F\u3068\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3067\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF09\u3002\u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\u3002
46
+ --project \u3092\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08TWP_PROJECT \u7B49\uFF09\u3092\u4F7F\u3044\u307E\u3059\u3002
47
+
48
+ \u4F8B:
49
+ twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.html --status published --tag \u904B\u7528
50
+ cat page.html | twp wiki create --title \u4E0B\u66F8\u304D --content-file - --dry-run`,flags:[{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u3002\u7701\u7565\u6642\u306F\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--title",summary:`\u4EF6\u540D\uFF08\u5FC5\u9808\u30FB${WIKI_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},
51
+ CONTENT_FILE_FLAG,{name:"--parent",summary:"\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08\u7701\u7565\u6642\u306F\u6700\u4E0A\u4F4D\uFF09",takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>"},WIKI_STATUS_FLAG,WIKI_TAG_FLAG],async prepare(input,ctx){noArgs(input,"twp wiki create");if(wikiTitle(input)===void 0)throw new UsageError("--title \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",WIKI_CREATE_USAGE);oneOf(input,"--status",WIKI_STATUSES);wikiTags(input);wikiParent(input,false);const content=await wikiContent(
52
+ input,WIKI_CREATE_USAGE);if(content===void 0)throw new UsageError("\u672C\u6587\u3092 --content-file \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",WIKI_CREATE_USAGE);return withResolved(input,{project:await ctx.projectId(input.flags.get("--project")),content})},plan(input){const parent=wikiParent(input,false);return{method:"POST",path:WIKI_PATH,body:{project_id:requireResolved(input,"project"),title:wikiTitle(input),content:requireResolved(input,
53
+ "content"),...oneOf(input,"--status",WIKI_STATUSES)!==void 0?{status:oneOf(input,"--status",WIKI_STATUSES)}:{},...parent!==void 0?{parent_page_id:parent}:{},...wikiTags(input)!==void 0?{tags:wikiTags(input)}:{}}}},plannedNotes:input=>input.flags.has("--status")?[]:["--status \u3092\u7701\u3044\u305F\u306E\u3067\u4E0B\u66F8\u304D\uFF08draft\uFF09\u3067\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF09\u3002"],summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};
54
+ async function previewVersion(input,ctx){const expected=positiveInteger(input.flags,"--if-version");if(expected===void 0)return{notes:[],warnings:[]};const id=singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const current=pageFrom(await ctx.send({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}))["version"];if(current!==expected){throw new ApiRejectedError(`\u30DA\u30FC\u30B8 ${id} \u306E\u7248\u304C ${String(current)} \u3067\u3059\uFF08--if-version ${expected}\uFF09\u3002\
55
+ \u4ED6\u306E\u66F4\u65B0\u3068\u885D\u7A81\u3057\u305F\u306E\u3067\u4F55\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\u3002twp wiki get \u3067\u6700\u65B0\u306E\u672C\u6587\u3092\u8AAD\u307F\u3001\u53CD\u6620\u3057\u76F4\u3057\u3066\u304B\u3089 --if-version \u3092\u4ED8\u3051\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{notes:[`\u7248 ${expected} \u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F\uFF08\u7167\u5408\u304B\u3089\u9001\u4FE1\u307E\u3067\u306E\u9593\u306E\u66F4\u65B0\u306F\u9632\u3052\u307E\u305B\u3093\uFF09\u3002`],
56
+ warnings:[]}}var wikiUpdate={name:"update",summary:`${WIKI_LABEL}\u3092\u66F4\u65B0\u3059\u308B\uFF08\u4EF6\u540D\u30FB\u672C\u6587\u30FB\u72B6\u614B\u30FB\u30BF\u30B0\uFF09`,usage:WIKI_UPDATE_USAGE,description:`${WIKI_WRITE_HELP}
57
+ \u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u3001--clear-tags \u306F\u30BF\u30B0\u3092\u7A7A\u306B\u3057\u307E\u3059\u3002
58
+ --if-version <\u7248> \u3092\u4ED8\u3051\u308B\u3068\u3001\u9001\u308B\u76F4\u524D\u306B\u30DA\u30FC\u30B8\u306E\u7248\uFF08twp wiki get \u306E version\uFF09\u3092\u7167\u5408\u3057\u3001\u9055\u3048\u3070\u4F55\u3082\u9001\u3089\u305A\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u6B62\u307E\u308A\u307E\u3059\u3002
59
+ \u30B5\u30FC\u30D0\u81EA\u4F53\u306F\u7248\u3092\u898B\u305A\u306B\u4E0A\u66F8\u304D\u3059\u308B\u306E\u3067\u3001\u7167\u5408\u3068\u9001\u4FE1\u306E\u9593\u306E\u4ED6\u4EBA\u306E\u66F4\u65B0\u307E\u3067\u306F\u9632\u3052\u307E\u305B\u3093\u3002\u7248\u304C\u4E0A\u304C\u308B\u306E\u306F\u672C\u6587\u304B\u4EF6\u540D\u3092\u5909\u3048\u305F\u3068\u304D\u3060\u3051\u3067\u3059\u3002
60
+ \u89AA\u30DA\u30FC\u30B8\u306E\u4ED8\u3051\u66FF\u3048\u306F twp wiki move \u3067\u3059\u3002
61
+
62
+ \u4F8B:
63
+ twp wiki update 0f8b2c6e-... --content-file notes.html --if-version 3`,flags:[{name:"--title",summary:`\u4EF6\u540D\uFF08${WIKI_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},CONTENT_FILE_FLAG,WIKI_STATUS_FLAG,WIKI_TAG_FLAG,{name:"--clear-tags",summary:"\u30BF\u30B0\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},{name:"--if-version",summary:"\u9001\u308B\u76F4\u524D\u306B\u7167\u5408\u3059\u308B\u7248\uFF08\u9055\u3048\u3070\u9001\u3089\u306A\u3044\uFF09",
64
+ takesValue:true,placeholder:"<\u7248>"}],async prepare(input){singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const tags=wikiTags(input);positiveInteger(input.flags,"--if-version");const content=await wikiContent(input,WIKI_UPDATE_USAGE);if(title===void 0&&status===void 0&&tags===void 0&&content===void 0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",
65
+ `--title / --content-file / --status / --tag / --clear-tags \u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
66
+ ${WIKI_UPDATE_USAGE}`)}return content===void 0?input:withResolved(input,{content})},preview:previewVersion,plan(input){const id=singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const tags=wikiTags(input);const content=input.resolved?.["content"];return{method:"PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}`,body:{...title!==void 0?{title}:{},...content!==void 0?{content}:{},...status!==void 0?
67
+ {status}:{},...tags!==void 0?{tags}:{}}}},summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};var wikiMove={name:"move",summary:`${WIKI_LABEL}\u306E\u89AA\u30DA\u30FC\u30B8\u3092\u4ED8\u3051\u66FF\u3048\u308B\uFF08root \u3067\u6700\u4E0A\u4F4D\u3078\uFF09`,usage:WIKI_MOVE_USAGE,description:`--parent ${ROOT_PARENT} \u3067\u6700\u4E0A\u4F4D\u3078\u79FB\u3057\u307E\u3059\u3002\u81EA\u5206\u81EA\u8EAB\u3084\u81EA\u5206\u306E\u5B50\u5B6B\u306E\u4E0B\u3078\u306F\u79FB\u305B\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF09\u3002
68
+ --sort-order \u306F\u5144\u5F1F\u306E\u4E2D\u3067\u306E\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\uFF09\u3067\u3059\u3002--sort-order \u3060\u3051\u306A\u3089\u89AA\u306F\u305D\u306E\u307E\u307E\u3067\u4E26\u3079\u66FF\u3048\u307E\u3059\u3002`,flags:[{name:"--parent",summary:`\u79FB\u52D5\u5148\u306E\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08${ROOT_PARENT} \u3067\u6700\u4E0A\u4F4D\uFF09`,takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>|root"},{name:"--sort-order",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\
69
+ \u6570\uFF09",takesValue:true,placeholder:"<\u9806>"}],plan(input){const id=singleId(input,"twp wiki move","\u30DA\u30FC\u30B8","twp wiki list");const parent=wikiParent(input,true);const sortRaw=nonEmpty(input.flags,"--sort-order");let sortOrder;if(sortRaw!==void 0){sortOrder=/^\d+$/.test(sortRaw.trim())?Number(sortRaw.trim()):Number.NaN;if(!Number.isSafeInteger(sortOrder))throw new UsageError(`--sort-order \u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${sortRaw}`,
70
+ WIKI_MOVE_USAGE)}if(parent===void 0&&sortOrder===void 0){throw new UsageError(`--parent \u304B --sort-order \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6700\u4E0A\u4F4D\u3078\u79FB\u3059\u306A\u3089 --parent ${ROOT_PARENT}\uFF09`,WIKI_MOVE_USAGE)}return{method:"PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}/move`,body:{...parent!==void 0?{parent_page_id:parent}:{},...sortOrder!==void 0?{sort_order:sortOrder}:{}}}},summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};
71
+ async function previewWikiDelete(input,ctx){const id=singleId(input,"twp wiki delete","\u30DA\u30FC\u30B8","twp wiki list");const page=pageFrom(await ctx.send({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}));return{notes:[`\u524A\u9664\u3059\u308B\u30DA\u30FC\u30B8: ${String(page["title"]??"(\u4EF6\u540D\u306A\u3057)")}\uFF08\u7248 ${String(page["version"]??"?")}\u30FBID ${id}\uFF09`],warnings:[]}}var wikiDelete={name:"delete",summary:`${WIKI_LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09`,
72
+ usage:"twp wiki delete <\u30DA\u30FC\u30B8ID> --yes",description:"\u9001\u308B\u524D\u306B\u30DA\u30FC\u30B8\u3092\u53D6\u5F97\u3057\u3001\u6D88\u3048\u308B\u30DA\u30FC\u30B8\u306E\u4EF6\u540D\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\u30DA\u30FC\u30B8\u306B\u7D10\u3065\u304F\u30BF\u30B9\u30AF\u3068\u306E\u30EA\u30F3\u30AF\u3082\u524A\u9664\u3055\u308C\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u51E6\u7406\uFF09\u3002\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u4F5C\u6210\u8005\u30FBwiki \u306E\u7BA1\u7406\u8005\u30FB\u7D44\u7E54\u306E\u7BA1\u7406\u8005\u3067\u3059\u3002",
73
+ destructive:true,flags:[],preview:previewWikiDelete,plan:input=>({method:"DELETE",path:`${WIKI_PATH}/${encodeURIComponent(singleId(input,"twp wiki delete","\u30DA\u30FC\u30B8","twp wiki list"))}`}),summarize:body=>acknowledgement(body,`${WIKI_LABEL}\u306E\u524A\u9664`),raw:body=>acknowledgement(body,`${WIKI_LABEL}\u306E\u524A\u9664`)};var NOTE_LABEL="\u30CE\u30FC\u30C8";var notePaging=envelopePaging({label:`${NOTE_LABEL}\u4E00\u89A7`});function noteListQuery(input){return{status:oneOf(input,"--s\
74
+ tatus",NOTE_STATUSES),visibility:oneOf(input,"--visibility",NOTE_VISIBILITIES),tag:nonEmpty(input.flags,"--tag"),keyword:nonEmpty(input.flags,"--keyword"),sort_by:oneOf(input,"--sort",NOTE_SORTS),mine:input.flags.has("--mine")?"true":void 0,is_favorited:input.flags.has("--favorite")?"true":void 0,limit:pageLimit(input),cursor:nonEmpty(input.flags,"--cursor")}}var noteList={name:"list",summary:`\u30C6\u30CA\u30F3\u30C8\u306E${NOTE_LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08--mine \u3067\u81EA\u5206\u306E\u3082\u306E\uFF09`,
75
+ usage:"twp note list [--mine] [--favorite] [--status <draft|published>] [--visibility <\u516C\u958B\u7BC4\u56F2>] [--tag <\u30BF\u30B0>] [--keyword <\u8A9E>] [--sort <\u4E26\u3073\u9806>] [--all] [--limit <\u4EF6\u6570>]",description:`\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u30FB\u975E\u516C\u958B\u306E\u30CE\u30FC\u30C8\u306F\u51FA\u307E\u305B\u3093\uFF08\u30CE\u30FC\u30C8\u306E\u7BA1\u7406\u8005\u3092\u9664\u304F\u3002\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002\u533F\u540D\u306E\u30CE\u30FC\u30C8\u306F\u4F5C\u6210\u8005\u304C\u4F0F\u305B\u3089\u308C\u307E\u3059\u3002
38
76
  --visibility \u306F ${NOTE_VISIBILITIES.join(" / ")}\u3001--sort \u306F ${NOTE_SORTS.join(" / ")} \u3067\u3059\uFF08\u6253\u3061\u9593\u9055\u3044\u306F\u9001\u308B\u524D\u306B\u6B62\u3081\u307E\u3059\uFF09\u3002
39
77
 
40
78
  --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u672C\u6587 content \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002
@@ -78,5 +116,5 @@ ine"]],["\u72B6\u614B",status]])}`]}).join("\n")}function attendeeNames(value,ke
78
116
 
79
117
  --output table / tsv \u306F\u8981\u7D04\u5217\uFF08${MEETING_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
80
118
  \u95B2\u89A7\u3067\u304D\u306A\u3044\u8B70\u4E8B\u9332\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u516C\u958B\u7BC4\u56F2\u306E\u5224\u5B9A\u306F\u30B5\u30FC\u30D0\uFF09\u3002`,flags:[],plan:input=>({method:"GET",path:`${MEETINGS_PATH}/${encodeURIComponent(singleId(input,"twp meeting get","\u8B70\u4E8B\u9332","twp meeting list"))}`}),summarize:body=>pick(record(body,"meeting",MEETING_LABEL),MEETING_GET_COLUMNS),raw:body=>record(body,"meeting",
81
- MEETING_LABEL),document:meetingDocument};var wikiDomain={name:"wiki",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki\uFF08\u4E00\u89A7\u30FB\u89AA\u30DA\u30FC\u30B8\u76F4\u4E0B\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[wikiList,wikiGet]};var noteDomain={name:"note",summary:"\u30CE\u30FC\u30C8\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[noteList,noteGet]};var meetingDomain={name:"meeting",summary:"\u8B70\u4E8B\u9332\uFF08\u671F\u9593\u3067\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",
82
- operations:[meetingList,meetingGet]};export{meetingDomain,noteDomain,wikiDomain};
119
+ MEETING_LABEL),document:meetingDocument};var wikiDomain={name:"wiki",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u79FB\u52D5\u30FB\u524A\u9664\uFF09",operations:[wikiList,wikiGet,wikiCreate,wikiUpdate,wikiMove,wikiDelete]};var noteDomain={name:"note",summary:"\u30CE\u30FC\u30C8\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[noteList,noteGet]};var meetingDomain={name:"\
120
+ meeting",summary:"\u8B70\u4E8B\u9332\uFF08\u671F\u9593\u3067\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[meetingList,meetingGet]};export{meetingDomain,noteDomain,wikiDomain};
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{checkOutTarget}from"./chunk-EHWPJSDJ.js";import"./chunk-BNIEC3JM.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import{contentTypeFor,inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-GY7KI5E5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";
3
+ import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{checkOutTarget}from"./chunk-I6WZ65SY.js";import"./chunk-2RKT352P.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import{contentTypeFor,inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-GY7KI5E5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";
4
4
  import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-VELLV6DJ.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,
5
- isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-YLM54X35.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
5
+ isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
6
6
  import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
7
7
  "string"||typeof name!=="string"||parentId!==null&&parentId!==void 0&&typeof parentId!=="string"){throw new ApiResponseError("\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\u306E\u884C\u306B id / name / parent_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const path2=typeof row["path"]==="string"?row["path"]:`/${name}`;return{id,name,parentId:parentId??null,path:path2}})}function resolveFolderPath(rows,input){
8
8
  const segments=folderPathSegments(input);const ids=new Set(rows.map(row=>row.id));const isTop=row=>row.parentId===null||!ids.has(row.parentId);let level=rows.filter(isTop);let walked="";for(const[index,segment]of segments.entries()){const hits=level.filter(row=>row.name===segment);const here=walked===""?"\u6700\u4E0A\u4F4D":`\u300C${walked}\u300D\u306E\u4E0B`;if(hits.length===0){const names=level.map(row=>row.name);throw new UsageError(`\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${input}\
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-BNIEC3JM.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-2RKT352P.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-EHWPJSDJ.js";import"./chunk-BNIEC3JM.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import"./chunk-VELLV6DJ.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
4
- import"./chunk-QBGEYQ2I.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-YLM54X35.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-I6WZ65SY.js";import"./chunk-2RKT352P.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-Q3B65OFC.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import"./chunk-VELLV6DJ.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
4
+ import"./chunk-QBGEYQ2I.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.59.0",
3
+ "version": "0.61.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {