@tocca-systems/twp-cli 0.72.0 → 0.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.public.md +22 -0
  2. package/README.md +53 -9
  3. package/dist/{agent-C37HJDJY.js → agent-6E62JWPN.js} +2 -2
  4. package/dist/{agent-loop-XFYCEK5S.js → agent-loop-UTS4MYW6.js} +2 -2
  5. package/dist/{ai-dispatch-GONY4JAY.js → ai-dispatch-OAT752RN.js} +1 -1
  6. package/dist/{analysis-THRX37XW.js → analysis-MVKADQHU.js} +2 -2
  7. package/dist/{announcement-4R7XFO5W.js → announcement-BFQAI6UE.js} +2 -2
  8. package/dist/{api-command-YMEYR2LG.js → api-command-46GLOIHL.js} +3 -3
  9. package/dist/{app-37IMKCQZ.js → app-SQZCZANA.js} +4 -4
  10. package/dist/{attendance-correct-Z5BGCSCL.js → attendance-correct-72KQR4UG.js} +2 -2
  11. package/dist/{attendance-lists-357A3O5Y.js → attendance-lists-6RP7UGA5.js} +1 -1
  12. package/dist/{backlog-KF63TCEG.js → backlog-22NXQQDL.js} +1 -1
  13. package/dist/budget-LJY3YFVB.js +4 -0
  14. package/dist/business-hours-I4X6YQS3.js +18 -0
  15. package/dist/{chunk-DAXVAUV4.js → chunk-2YVJ3QVJ.js} +1 -1
  16. package/dist/{chunk-DFHOCPA5.js → chunk-3QQF4MOB.js} +2 -2
  17. package/dist/{chunk-AGI5KT4C.js → chunk-3WFZOOXZ.js} +1 -1
  18. package/dist/{chunk-VEA72AKG.js → chunk-46Q7TUND.js} +1 -1
  19. package/dist/{chunk-MVZFZAT4.js → chunk-4B6GJBYP.js} +47 -44
  20. package/dist/{chunk-I4TR55UF.js → chunk-5KJ5OIKI.js} +1 -1
  21. package/dist/{chunk-K4JE26L6.js → chunk-5P22UEUF.js} +1 -1
  22. package/dist/{chunk-Z6T5M3NJ.js → chunk-5SPWQAUX.js} +2 -2
  23. package/dist/{chunk-ARB4QFWO.js → chunk-7SYIYLHX.js} +1 -1
  24. package/dist/{chunk-UXEYWMPO.js → chunk-BKE3BFIQ.js} +2 -2
  25. package/dist/{chunk-HPPIVCK3.js → chunk-C7MO3RHJ.js} +7 -4
  26. package/dist/{chunk-A3FJEUDB.js → chunk-D37WSWBT.js} +1 -1
  27. package/dist/chunk-DMXMQGGZ.js +11 -0
  28. package/dist/{chunk-VIWQMDGG.js → chunk-DYNNGNXR.js} +1 -1
  29. package/dist/{chunk-MP6YIILX.js → chunk-FHOJFKR3.js} +12 -11
  30. package/dist/{chunk-CCHPF23L.js → chunk-GAXJPIKO.js} +1 -1
  31. package/dist/{chunk-7PDUN5MS.js → chunk-GTRKN2YS.js} +1 -1
  32. package/dist/{chunk-WYYHMKF7.js → chunk-HOLKWMS2.js} +1 -1
  33. package/dist/{chunk-NBOA4T7F.js → chunk-J2NRDFCR.js} +1 -1
  34. package/dist/{chunk-UGDB4QTS.js → chunk-J3KV6LAX.js} +1 -1
  35. package/dist/{budget-W7JXDJ4J.js → chunk-JIOZ47AX.js} +2 -3
  36. package/dist/{chunk-UFGJSWKU.js → chunk-LDBYJPRD.js} +1 -1
  37. package/dist/{chunk-BBOWZVCC.js → chunk-MNJYY3PR.js} +1 -1
  38. package/dist/{chunk-QVID3GT4.js → chunk-MSVJ53VZ.js} +1 -1
  39. package/dist/{chunk-45OL54MY.js → chunk-OO7GDI2D.js} +1 -1
  40. package/dist/{chunk-YXVN6OCH.js → chunk-PO35MCYP.js} +1 -1
  41. package/dist/{chunk-T3C2BAVA.js → chunk-QQCWGMZN.js} +1 -1
  42. package/dist/{chunk-2CIQOXPK.js → chunk-R5UIH2SI.js} +1 -1
  43. package/dist/chunk-RCRFLVJ6.js +117 -0
  44. package/dist/{chunk-XF4DN44V.js → chunk-SCHQHPI2.js} +2 -2
  45. package/dist/chunk-W4E4F2ZA.js +4 -0
  46. package/dist/{chunk-IVKWLJCY.js → chunk-YA7W7OV4.js} +1 -1
  47. package/dist/cli.js +44 -8
  48. package/dist/{commands-GMUQCBFQ.js → commands-U52UBWSU.js} +2 -2
  49. package/dist/{commands-MYGPEYBE.js → commands-ZCXAJXHW.js} +40 -38
  50. package/dist/{company-W2OBOOKJ.js → company-UYDQAJ5O.js} +3 -3
  51. package/dist/{completion-EMY4WDII.js → completion-YBKZ3GXD.js} +1 -1
  52. package/dist/{contract-LTQVLI7A.js → contract-PJRMXIXY.js} +2 -2
  53. package/dist/{department-GZBKUFON.js → department-JFHUX32Y.js} +1 -1
  54. package/dist/{deposit-HCMV2MBU.js → deposit-YSCEG5QY.js} +2 -2
  55. package/dist/{domain-knowledge-32TTPFVY.js → domain-knowledge-HJHKFS3S.js} +1 -1
  56. package/dist/{estimate-ILUXZJG3.js → estimate-ZY3NFOY2.js} +3 -3
  57. package/dist/{evaluation-PE7QHATW.js → evaluation-MQ7USYDU.js} +1 -1
  58. package/dist/{expense-K2JPBP2M.js → expense-2EDPVAQL.js} +2 -2
  59. package/dist/{fiscal-year-XY4KA67D.js → fiscal-year-5S74MAHA.js} +1 -1
  60. package/dist/holiday-PFBME3RI.js +48 -0
  61. package/dist/{inquiry-FEQWFU7Z.js → inquiry-LVJE53LY.js} +1 -1
  62. package/dist/{invoice-WOQZUL66.js → invoice-JJ46ZXMJ.js} +2 -2
  63. package/dist/{job-title-CDAMB4Q2.js → job-title-PFLVTRNO.js} +1 -1
  64. package/dist/{knowledge-VM6P4XDQ.js → knowledge-43B64GGG.js} +99 -35
  65. package/dist/{leave-TEXQJURZ.js → leave-6L3CTABK.js} +2 -2
  66. package/dist/{license-ZSZM5OSK.js → license-HHAOMEWC.js} +2 -2
  67. package/dist/{logout-guard-3B767ADS.js → logout-guard-IWHF33DM.js} +1 -1
  68. package/dist/{media-TAS7FF5K.js → media-YEWKZ2QS.js} +3 -3
  69. package/dist/{notification-T46TUUMO.js → notification-LNRNOLVW.js} +1 -1
  70. package/dist/{oneshot-XRN744YK.js → oneshot-7H3SFK7Q.js} +1 -1
  71. package/dist/{outlook-KYTXHDAV.js → outlook-YG7GFF44.js} +1 -1
  72. package/dist/{plan-submit-YBTGYQD7.js → plan-submit-CZRVVZZB.js} +1 -1
  73. package/dist/{position-BKZQH6A3.js → position-YFC6XZQL.js} +1 -1
  74. package/dist/{project-KL4DH2XE.js → project-3RTD63II.js} +2 -2
  75. package/dist/{prospect-BEB5AXPM.js → prospect-5EXTP5D2.js} +2 -2
  76. package/dist/{purchase-P37K6MVO.js → purchase-KJ3XVCXG.js} +3 -3
  77. package/dist/{receivable-5N3KL3L4.js → receivable-LF3DYPOO.js} +2 -2
  78. package/dist/{redmine-K7A7AEUA.js → redmine-6FJPODIM.js} +1 -1
  79. package/dist/{registry-GGKX3MCP.js → registry-5IKYCMRP.js} +1 -1
  80. package/dist/{render-YD4B7OH5.js → render-4SBLHU4J.js} +1 -1
  81. package/dist/{report-PZ4GMMK2.js → report-TDPP7SF7.js} +1 -1
  82. package/dist/{run-65IJLMKQ.js → run-EQQOJ76O.js} +2 -2
  83. package/dist/{sales-ai-review-NBNSHUUP.js → sales-ai-review-WIVJOOFW.js} +2 -2
  84. package/dist/{sales-master-23PVQUTQ.js → sales-master-SJSFHAT6.js} +2 -2
  85. package/dist/{sales-numbering-FQ7YPQME.js → sales-numbering-EWYVI3RF.js} +2 -2
  86. package/dist/{search-NYY22NHK.js → search-FCXHO5NB.js} +1 -1
  87. package/dist/{segment-2C3MYZCV.js → segment-3Q64YOMR.js} +1 -1
  88. package/dist/{server-settings-ELHHMBBK.js → server-settings-WH4F2SLC.js} +1 -1
  89. package/dist/{setup-74LO2SXN.js → setup-H22WRMPN.js} +1 -1
  90. package/dist/skill-MWYX74XM.js +4 -0
  91. package/dist/{skill-check-2ILLHGDQ.js → skill-check-YVIMYT2H.js} +1 -1
  92. package/dist/{skill-manage-command-HPJQOTQK.js → skill-manage-command-QYJLCLDK.js} +2 -2
  93. package/dist/{supplier-payment-G2BGSGLA.js → supplier-payment-H4E65YFZ.js} +2 -2
  94. package/dist/{support-E3PBMVG4.js → support-CCE7DP2O.js} +2 -2
  95. package/dist/{task-N6OVWNAT.js → task-OA6YUFL3.js} +42 -24
  96. package/dist/{teams-QRVCFJS4.js → teams-AUFHZRDH.js} +1 -1
  97. package/dist/{user-VODWJQZI.js → user-KQX327AS.js} +3 -3
  98. package/dist/{user-contract-type-7AVII6SV.js → user-contract-type-KS3HMLHY.js} +1 -1
  99. package/dist/{worker-agent-KRMY2RKK.js → worker-agent-BEH65D3X.js} +1 -1
  100. package/dist/{workflow-GWEN7NSQ.js → workflow-EBAADQLR.js} +2 -2
  101. package/package.json +1 -1
  102. package/dist/chunk-35MQ27I6.js +0 -4
  103. package/dist/chunk-5VZ54H2J.js +0 -11
  104. package/dist/chunk-6UPLPTBP.js +0 -58
  105. package/dist/skill-RKCTUJHW.js +0 -4
@@ -0,0 +1,48 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{parseCsvRecords}from"./chunk-DYNNGNXR.js";import{importRejection}from"./chunk-JIOZ47AX.js";import{decodeCsvText}from"./chunk-QLENN5DD.js";import"./chunk-YA7W7OV4.js";import"./chunk-2YVJ3QVJ.js";import"./chunk-EXT4AIDF.js";import"./chunk-FHOJFKR3.js";import"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-4B6GJBYP.js";import"./chunk-HVZUXLQ4.js";
4
+ import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";
5
+ import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var NAME="holiday";var LABEL="\u795D\u65E5";var READ_PATH="/api/v2/holidays";var ADMIN_PATH="/api/v2/admin/tenant/holidays";var DATE_RE=/^\d{4}-\d{2}-\d{2}$/;var YEAR_RE=/^\d{4}$/;var NAME_MAX=100;var IMPORT_MAX_BYTES=1024*1024;var SHOWN_DIFF=30;var COLUMNS=["date","name"];var IMPACT="\u795D\u65E5\u306F\u52E4\u6020\u306E\u96C6\u8A08\uFF08\u4F11\u65E5\u52B4\u50CD\u30FB\u6240\u5B9A\u65E5\u6570\uFF09\u3068\u55B6\u696D\u65E5\u6570\u306E\u8A08\u7B97\u306B\u52B9\u304D\u307E\u3059\u3002\u7DE0\u3081\u6E08\u307F\u306E\u6708\u306E\u795D\u65E5\u3092\u5909\u3048\u3066\u3082\u3001\u7DE0\u3081\u305F\u96C6\u8A08\u306F\u81EA\u52D5\u3067\u306F\u76F4\u308A\u307E\u305B\u3093\u3002";
6
+ var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FBCSV \u306E\u51FA\u3057\u5165\u308C\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;var DATE_FLAG={name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var NAME_FLAG={name:"--name",summary:`\u795D\u65E5\u540D\uFF08${NAME_MAX}\
7
+ \u6587\u5B57\u4EE5\u5185\u30FB\u5FC5\u9808\uFF09`,takesValue:true,placeholder:"<\u795D\u65E5\u540D>"};var YEAR_FLAG={name:"--year",summary:"\u5BFE\u8C61\u306E\u5E74\uFF08YYYY\uFF09",takesValue:true,placeholder:"<YYYY>"};var OUT_FLAG={name:"--out",summary:"\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",
8
+ takesValue:false};function usageOf(op){return`twp ${NAME} ${op} help`}function noArgs(input,op){if(input.args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}function isCalendarDate(value){if(!DATE_RE.test(value))return false;const[y,m,d]=value.split("-").map(Number);const date=new Date(Date.UTC(y,m-1,d));return date.getUTCFullYear()===y&&date.getUTCMonth()===m-1&&date.getUTCDate()===d}function holidayDate(input,op){
9
+ const date=singleRef(input,{flag:DATE_FLAG.name,label:"\u65E5\u4ED8",usage:usageOf(op)});if(!isCalendarDate(date))throw new UsageError(`\u65E5\u4ED8\u306F YYYY-MM-DD \u306E\u5B9F\u5728\u3059\u308B\u65E5\u4ED8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${date}`,`\u4F8B: twp ${NAME} ${op} 2026-12-28`);return date}function dateFlag(input,flag,op){const raw=nonEmpty(input.flags,flag);if(raw===void 0)throw new UsageError(`${flag} <YYYY-MM-DD> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,
10
+ usageOf(op));const value=raw.trim();if(!isCalendarDate(value))throw new UsageError(`${flag} \u306F YYYY-MM-DD \u306E\u5B9F\u5728\u3059\u308B\u65E5\u4ED8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usageOf(op));return value}function holidayName(input,op){const raw=nonEmpty(input.flags,NAME_FLAG.name);if(raw===void 0)throw new UsageError(`${NAME_FLAG.name} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf(op));const name=raw.trim();if([...name].length>NAME_MAX)throw new UsageError(
11
+ `${NAME_FLAG.name} \u306F ${NAME_MAX} \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...name].length} \u6587\u5B57\uFF09`,usageOf(op));return name}function yearFlag(input,op){const raw=nonEmpty(input.flags,YEAR_FLAG.name);if(raw===void 0)return void 0;const value=raw.trim();if(!YEAR_RE.test(value))throw new UsageError(`--year \u306F4\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usageOf(op));return value}function envelope(body,what){
12
+ if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function rows(body){const list=envelope(body,`${LABEL}\u4E00\u89A7`)["holidays"];if(!Array.isArray(list)||!list.every(isRecord))throw new ApiResponseError(`${LABEL}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B holidays \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
13
+ return list}function item(body){const holiday=envelope(body,LABEL)["holiday"];if(!isRecord(holiday)||typeof holiday["date"]!=="string")throw new ApiResponseError(`${LABEL}\u306E\u5FDC\u7B54\u306B holiday \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return holiday}var itemPath=date=>`${ADMIN_PATH}/${date}`;function parseHolidayCsv(text,replaceYear){const records=parseCsvRecords(text).filter(r=>!(r.cells.length===1&&r.cells[0]===
14
+ ""));const[head,...body]=records;if(head===void 0)throw new UsageError("CSV \u304C\u7A7A\u3067\u3059\uFF081\u884C\u76EE\u306B date,name \u306E\u898B\u51FA\u3057\u304C\u8981\u308A\u307E\u3059\uFF09");const header=head.cells.map(c=>c.trim());const dateCol=header.indexOf("date");const nameCol=header.indexOf("name");if(dateCol<0||nameCol<0)throw new UsageError(`CSV \u306E1\u884C\u76EE\u306B date \u3068 name \u306E\u898B\u51FA\u3057\u304C\u8981\u308A\u307E\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u898B\u51FA\u3057: ${header.
15
+ join(",")}\uFF09`);const errors=[];const holidays=[];for(const record of body){const date=(record.cells[dateCol]??"").trim();const name=(record.cells[nameCol]??"").trim();if(date===""||name===""){errors.push(`${record.line}\u884C\u76EE: date\u3068name\u306F\u5FC5\u9808\u3067\u3059\u3002`)}else if(!DATE_RE.test(date)){errors.push(`${record.line}\u884C\u76EE: \u65E5\u4ED8\u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059\uFF08YYYY-MM-DD\uFF09\u3002`)}else if(replaceYear!==void 0&&date.slice(0,4)!==replaceYear){
16
+ errors.push(`${record.line}\u884C\u76EE: \u6307\u5B9A\u5E74\uFF08${replaceYear}\uFF09\u4EE5\u5916\u306E\u65E5\u4ED8\u306F\u542B\u3081\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002`)}else{holidays.push({date,name})}}if(errors.length>0)throw new UsageError(`CSV \u306B\u8AA4\u308A\u304C ${errors.length} \u4EF6\u3042\u308A\u307E\u3059\uFF08\u9001\u3063\u3066\u3044\u307E\u305B\u3093\uFF09:
17
+ ${errors.join("\n ")}`);if(holidays.length===0)throw new UsageError("CSV \u306B\u53D6\u308A\u8FBC\u3080\u884C\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u898B\u51FA\u3057\u3060\u3051\u3067\u3059\uFF09");return holidays}function holidayDiff(incoming,existing,replaceYear){const final=new Map(incoming.map(h=>[h.date,h.name]));const current=new Map(existing.map(h=>[h.date,h.name]));const added=[];const renamed=[];let unchanged=0;for(const[date,name]of[...final].sort(([a],[b])=>a.localeCompare(b))){
18
+ const before=current.get(date);if(before===void 0)added.push({date,name});else if(before!==name)renamed.push({date,from:before,to:name});else unchanged+=1}const removed=replaceYear===void 0?[]:existing.filter(h=>h.date.startsWith(`${replaceYear}-`)&&!final.has(h.date)).sort((a,b)=>a.date.localeCompare(b.date));return{added,renamed,unchanged,removed}}function diffNotes(diff){const changes=diff.added.length+diff.renamed.length+diff.removed.length;const lines=[`\u5DEE\u5206: \u8FFD\u52A0 ${diff.added.
19
+ length} \u4EF6\u30FB\u540D\u524D\u306E\u5909\u66F4 ${diff.renamed.length} \u4EF6\u30FB\u6D88\u3048\u308B ${diff.removed.length} \u4EF6\u30FB\u5909\u5316\u306A\u3057 ${diff.unchanged} \u4EF6`];if(changes===0){lines.push("\u4ECA\u306E\u795D\u65E5\u3068\u540C\u3058\u3067\u3059\uFF08\u9001\u3063\u3066\u3082\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002");return lines}const detail=[...diff.added.map(h=>` + ${h.date} ${h.name}`),...diff.renamed.map(h=>` ~ ${h.date} ${h.from} \u2192 ${h.
20
+ to}`),...diff.removed.map(h=>` - ${h.date} ${h.name}`)];lines.push(...detail.slice(0,SHOWN_DIFF));if(detail.length>SHOWN_DIFF)lines.push(` \u2026\u307B\u304B ${detail.length-SHOWN_DIFF} \u4EF6`);return lines}async function existingHolidays(ctx,years){const all=[];for(const year of years){const body=await ctx.resolver.salesJson(`${READ_PATH}?year=${year}`,`${year} \u5E74\u306E${LABEL}`);for(const row of rows(body))all.push({date:String(row["date"]),name:String(row["name"]??"")})}return all}var IMPORT_OP=[
21
+ "im","port"].join("");function importMode(input){const raw=nonEmpty(input.flags,"--mode")??"append";if(raw!=="append"&&raw!=="replace")throw new UsageError(`--mode \u306F append \u304B replace \u3067\u3059: ${raw}`,usageOf(IMPORT_OP));const year=yearFlag(input,IMPORT_OP);if(raw==="replace"&&year===void 0)throw new UsageError("--mode replace \u306B\u306F --year <YYYY> \u304C\u8981\u308A\u307E\u3059\uFF08\u305D\u306E\u5E74\u306E\u795D\u65E5\u3092\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF09",
22
+ usageOf(IMPORT_OP));if(raw==="append"&&year!==void 0)throw new UsageError("--year \u306F --mode replace \u306E\u3068\u304D\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",usageOf(IMPORT_OP));return{mode:raw,year}}async function prepareImport(input,ctx){const usage=usageOf(IMPORT_OP);noArgs(input,IMPORT_OP);const{mode,year}=importMode(input);const file=nonEmpty(input.flags,"--file");if(file===void 0)throw new UsageError("--file <CSV> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);
23
+ let bytes;try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>IMPORT_MAX_BYTES)throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\u30FB\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u308B\u306E\u306F ${IMPORT_MAX_BYTES} \u30D0\u30A4\u30C8\u307E\u3067\uFF09: ${file}`,
24
+ usage);bytes=fs.readFileSync(file)}catch(err){if(err instanceof UsageError)throw err;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${err.code??err.message}\uFF09`,usage)}const incoming=parseHolidayCsv(decodeCsvText(bytes),year);const years=[...new Set([...incoming.map(h=>h.date.slice(0,4)),...year===void 0?[]:[year]])].sort();const diff=holidayDiff(incoming,await existingHolidays(ctx,years),year);const notes=[mode==="replace"?`--mod\
25
+ e replace: ${year} \u5E74\u306E\u795D\u65E5\u3092\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089\u3001CSV \u306E ${incoming.length} \u884C\u3092\u53D6\u308A\u8FBC\u307F\u307E\u3059\u3002`:`--mode append: CSV \u306E ${incoming.length} \u884C\u3092\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF08\u540C\u3058\u65E5\u4ED8\u306E\u795D\u65E5\u306F\u540D\u524D\u304C\u4E0A\u66F8\u304D\u3055\u308C\u3001CSV \u306B\u7121\u3044\u795D\u65E5\u306F\u6B8B\u308A\u307E\u3059\uFF09\u3002`,...diffNotes(diff),IMPACT];return withResolved(
26
+ input,{fileName:path.basename(file),fileBase64:bytes.toString("base64"),notes:JSON.stringify(notes)})}function importPlan(input){const{mode,year}=importMode(input);const bytes=Buffer.from(requireResolved(input,"fileBase64"),"base64");return{method:"POST",path:`${ADMIN_PATH}/import`,body:new MultipartBody({mode,...year===void 0?{}:{year}},[{field:"file",filename:requireResolved(input,"fileName"),contentType:"text/csv",bytes:new Uint8Array(bytes)}])}}async function runImport(input,ctx){let body;try{
27
+ body=await ctx.send(importPlan(input))}catch(err){const rejected=importRejection(err);if(rejected!==void 0)throw rejected;if(!(err instanceof ApiError)||err.status>=500){ctx.warn(`\u53D6\u308A\u8FBC\u307F\u306E\u9014\u4E2D\u3067\u5931\u6557\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4E00\u90E8\u306E\u795D\u65E5\u304C\u6D88\u3048\u305F\u30FB\u66F8\u304B\u308C\u305F\u3053\u3068\u304C\u3042\u308B\u306E\u3067\u3001twp ${NAME} list --year \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`)}
28
+ throw err}const result=envelope(body,`${LABEL}\u306E\u53D6\u308A\u8FBC\u307F`);return{holidayImport:true,imported_count:result["imported_count"]??null,message:result["message"]??null}}function isImportOutcome(body){return isRecord(body)&&body["holidayImport"]===true}var holidayDomain={name:NAME,summary:`${LABEL}\uFF08\u30AB\u30EC\u30F3\u30C0\u30FC\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FBCSV \u306E\u51FA\u3057\u5165\u308C\u3068\u3001\u55B6\u696D\u65E5\u6570\u306E\u8A08\u7B97\uFF09`,
29
+ operations:[{name:"list",summary:`${LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u5E74\u3054\u3068\uFF09`,usage:`twp ${NAME} list [--year <YYYY>]`,description:`GET ${READ_PATH}\u3002--year \u3092\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u4ECA\u5E74\u3067\u3059\u3002\u305D\u306E\u5E74\u306E\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\uFF08\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`,flags:[YEAR_FLAG],plan(input){noArgs(input,"list");return{method:"GET",path:READ_PATH,
30
+ query:{year:yearFlag(input,"list")}}},summarize:body=>rows(body).map(row=>pick(row,COLUMNS)),raw:body=>rows(body)},{name:"create",summary:`${LABEL}\u3092\u767B\u9332\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME} create <YYYY-MM-DD> --name <\u795D\u65E5\u540D> --yes`,description:`POST ${ADMIN_PATH}\u3002\u540C\u3058\u65E5\u4ED8\u306E${LABEL}\u304C\u65E2\u306B\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08update \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002
31
+ ${IMPACT}`,destructive:true,confirmation:"\u52E4\u6020\u306E\u96C6\u8A08\u306B\u52B9\u304F\u64CD\u4F5C",forbidden:FORBIDDEN,flags:[DATE_FLAG,NAME_FLAG],plan:input=>({method:"POST",path:ADMIN_PATH,body:{date:holidayDate(input,"create"),name:holidayName(input,"create")}}),summarize:body=>pick(item(body),COLUMNS),raw:body=>item(body)},{name:"update",summary:`${LABEL}\u306E\u540D\u524D\u3092\u5909\u3048\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME}\
32
+ update <YYYY-MM-DD> --name <\u795D\u65E5\u540D> --yes`,description:`PUT ${ADMIN_PATH}/{date}\u3002\u5909\u3048\u3089\u308C\u308B\u306E\u306F\u540D\u524D\u3060\u3051\u3067\u3059\uFF08\u65E5\u4ED8\u3092\u5909\u3048\u308B\u306A\u3089 delete \u3057\u3066 create\uFF09\u3002
33
+ ${IMPACT}`,destructive:true,confirmation:"\u52E4\u6020\u306E\u96C6\u8A08\u306B\u52B9\u304F\u64CD\u4F5C",forbidden:FORBIDDEN,flags:[DATE_FLAG,NAME_FLAG],plan:input=>({method:"PUT",path:itemPath(holidayDate(input,"update")),body:{name:holidayName(input,"update")}}),summarize:body=>pick(item(body),COLUMNS),raw:body=>item(body)},{name:"delete",summary:`${LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`twp ${NAME} delete <YYYY-MM-DD\
34
+ > --yes`,description:`DELETE ${ADMIN_PATH}/{date}\u3002
35
+ ${IMPACT}`,destructive:true,forbidden:FORBIDDEN,flags:[DATE_FLAG],plan:input=>({method:"DELETE",path:itemPath(holidayDate(input,"delete"))}),summarize:body=>acknowledgement(body,`${LABEL}\u524A\u9664`),raw:body=>acknowledgement(body,`${LABEL}\u524A\u9664`)},{name:"business-days",summary:"\u671F\u9593\u306E\u55B6\u696D\u65E5\u6570\u3092\u6570\u3048\u308B\uFF08\u5E73\u65E5\u304B\u3089\u795D\u65E5\u3092\u9664\u3044\u305F\u65E5\u6570\uFF09",usage:`twp ${NAME} business-days --from <YYYY-MM-DD> --to <\
36
+ YYYY-MM-DD>`,description:`GET ${READ_PATH}/business-days\u3002\u4E21\u7AEF\u3092\u542B\u307F\u307E\u3059\u3002
37
+ \u26A0\uFE0F \u30B5\u30FC\u30D0\u306F**\u6708\u301C\u91D1\u3092\u55B6\u696D\u65E5**\u3068\u3057\u3066\u6570\u3048\u307E\u3059\uFF08twp business-hours \u306E\u66DC\u65E5\u8A2D\u5B9A\u306F\u3053\u306E\u8A08\u7B97\u306B\u4F7F\u308F\u308C\u307E\u305B\u3093\uFF09\u3002`,flags:[{name:"--from",summary:"\u671F\u9593\u306E\u521D\u65E5\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--to",summary:"\u671F\u9593\u306E\u672B\u65E5\uFF08\u5FC5\u9808\u30FB--from \u4EE5\u964D\uFF09",
38
+ takesValue:true,placeholder:"<YYYY-MM-DD>"}],plan(input){noArgs(input,"business-days");const from=dateFlag(input,"--from","business-days");const to=dateFlag(input,"--to","business-days");if(to<from)throw new UsageError(`--to \u306F --from \u4EE5\u964D\u306E\u65E5\u4ED8\u306B\u3057\u3066\u304F\u3060\u3055\u3044: ${from} \u301C ${to}`,usageOf("business-days"));return{method:"GET",path:`${READ_PATH}/business-days`,query:{start_date:from,end_date:to}}},summarize:body=>pick(envelope(body,"\u55B6\u696D\u65E5\u6570"),
39
+ ["start_date","end_date","business_days"]),raw:body=>pick(envelope(body,"\u55B6\u696D\u65E5\u6570"),["start_date","end_date","business_days"])},{name:"export",summary:`${LABEL}\u3092 CSV \u306B\u66F8\u304D\u51FA\u3059\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--out\uFF09`,usage:`twp ${NAME} export --out <\u30D1\u30B9.csv> [--force] [--year <YYYY>]`,description:`GET ${ADMIN_PATH}/export\u3002\u5217\u306F date,name\u3001\u6587\u5B57\u30B3\u30FC\u30C9\u306F Shift_JIS\uFF08Excel \u306E\u65E2\u5B9A\uFF09\u3067\u3059\u3002--year \u3092\u7701\u304F\u3068\u5168\u5E74\u3067\u3059\u3002
40
+ \u305D\u306E\u307E\u307E twp ${NAME} import --file \u3067\u53D6\u308A\u8FBC\u3081\u307E\u3059\u3002\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002`,flags:[OUT_FLAG,FORCE_FLAG,YEAR_FLAG],download:{outFlag:OUT_FLAG.name,forceFlag:FORCE_FLAG.name},forbidden:FORBIDDEN,plan(input){noArgs(input,"export");return{method:"GET",path:`${ADMIN_PATH}/export`,query:{year:yearFlag(input,"export")}}},summarize:body=>body,
41
+ raw:body=>body},{name:IMPORT_OP,summary:`${LABEL}\u3092 CSV \u3067\u53D6\u308A\u8FBC\u3080\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\u30FB--dry-run \u3067\u5DEE\u5206\u3092\u898B\u3089\u308C\u308B\uFF09`,usage:`twp ${NAME} ${IMPORT_OP} --file <CSV> [--mode append|replace --year <YYYY>] --yes`,description:`POST ${ADMIN_PATH}/import\u3002CSV \u306F1\u884C\u76EE\u304C\u898B\u51FA\u3057\uFF08date,name\uFF09\u3067\u3001UTF-8 \u304B Shift_JIS \u3067\u3059\uFF08export \u306E\u51FA\u529B\u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u3002
42
+ --mode append\uFF08\u65E2\u5B9A\uFF09\u306F CSV \u306E\u65E5\u4ED8\u3092\u767B\u9332\u30FB\u4E0A\u66F8\u304D\u3057\u3001CSV \u306B\u7121\u3044\u795D\u65E5\u306F\u6B8B\u3057\u307E\u3059\u3002
43
+ --mode replace \u306F --year \u306E\u5E74\u306E\u795D\u65E5\u3092**\u5168\u90E8\u6D88\u3057\u3066\u304B\u3089**\u53D6\u308A\u8FBC\u307F\u307E\u3059\uFF08CSV \u306B\u306F \u305D\u306E\u5E74\u306E\u65E5\u4ED8\u3060\u3051\u3092\u5165\u308C\u307E\u3059\uFF09\u3002
44
+ \u9001\u308B\u524D\u306B\u3001CSV \u306E\u884C\u3092\u691C\u67FB\u3057\u3001\u5BFE\u8C61\u5E74\u306E\u4ECA\u306E\u795D\u65E5\u3068\u306E\u5DEE\u5206\uFF08\u8FFD\u52A0\u30FB\u540D\u524D\u306E\u5909\u66F4\u30FB\u6D88\u3048\u308B\u30FB\u5909\u5316\u306A\u3057\uFF09\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002
45
+ --dry-run \u306F\u5DEE\u5206\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF08--yes \u306F\u8981\u308A\u307E\u305B\u3093\uFF09\u3002
46
+ `+IMPACT,destructive:true,confirmation:"\u65E2\u5B58\u306E\u795D\u65E5\u3092\u4E0A\u66F8\u304D\u30FB\u524A\u9664\u3057\u3046\u308B\u64CD\u4F5C\uFF08\u5DEE\u5206\u306F --dry-run \u3067\u898B\u3089\u308C\u307E\u3059\uFF09",forbidden:FORBIDDEN,flags:[{name:"--file",summary:"\u53D6\u308A\u8FBC\u3080 CSV\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<CSV>"},{name:"--mode",summary:"append\uFF08\u65E2\u5B9A\u30FB\u4E0A\u66F8\u304D\u8FFD\u52A0\uFF09\u304B replace\uFF08--year \u306E\u5E74\u3092\u5165\u308C\u66FF\u3048\uFF09",
47
+ takesValue:true,placeholder:"append|replace"},{...YEAR_FLAG,summary:"--mode replace \u3067\u5165\u308C\u66FF\u3048\u308B\u5E74\uFF08YYYY\uFF09"}],prepare:prepareImport,plan:importPlan,plannedNotes:input=>JSON.parse(requireResolved(input,"notes")),execute:runImport,summarize:body=>isImportOutcome(body)?{imported_count:body.imported_count}:body,raw:body=>isImportOutcome(body)?{imported_count:body.imported_count,message:body.message}:body,notes:body=>isImportOutcome(body)&&typeof body.message==="st\
48
+ ring"?[body.message]:[]}]};export{diffNotes,holidayDiff,holidayDomain,isCalendarDate,parseHolidayCsv};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-MVZFZAT4.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
3
+ import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-4B6GJBYP.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
4
4
  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 LABEL="\u554F\u3044\u5408\u308F\u305B\u30AB\u30C6\u30B4\u30EA";var LIST_COLUMNS=["id","category_code","title","sort","is_active","notification_user_count"];var GET_COLUMNS=["id","category_code","title","description","sort","is_active","notification_users"];var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u306F\u554F\u3044\u5408\u308F\u305B\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;
5
5
  var SORT_LAST="last";var CODE_RE=/^[a-zA-Z0-9_-]+$/;var REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF08title\uFF09\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
6
6
  var NOTIFY_HELP="--notify \u306F\u901A\u77E5\u5148\u306E\u30E6\u30FC\u30B6\u30FC\u3067\u3001\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08ID \u4EE5\u5916\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{invoiceNoRuleResource}from"./chunk-XF4DN44V.js";import"./chunk-Z6T5M3NJ.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-ARB4QFWO.js";import{invoicePdfOperation}from"./chunk-K4JE26L6.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-BBOWZVCC.js";import{booleanText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,
4
- nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
3
+ import{invoiceNoRuleResource}from"./chunk-SCHQHPI2.js";import"./chunk-5SPWQAUX.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-7SYIYLHX.js";import{invoicePdfOperation}from"./chunk-5P22UEUF.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-MNJYY3PR.js";import{booleanText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,
4
+ nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-4B6GJBYP.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
5
5
  import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.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 PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
6
6
  var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
7
7
  _id","detail","memo","template_memo","notification_user_ids","estimate_manage_content","invoice_manage_content","is_active"];var DETAIL_KEYS=["list"];var DETAIL_ROW_KEYS=["title","price","quantity","unit","tax","delivery_date"];var NOT_SAVED_KEYS=["period_start_months","period_start_day","period_end_months","period_end_day"];var FIELD_NOTES=[["template_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["estimate_format\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{STATUS_VALUES,flatMasterDomain}from"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
3
+ import{STATUS_VALUES,flatMasterDomain}from"./chunk-FHOJFKR3.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-4B6GJBYP.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
4
4
  import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
5
5
  {kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},
6
6
  {kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-HPPIVCK3.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";
4
- import"./chunk-MVZFZAT4.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
5
- import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var WIKI_SUMMARY_FIELDS="summary";function withoutContent(page){const rest={...page};delete rest["content"];return rest}var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment\
3
+ import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,textOutline,textSection,wikiContentToText}from"./chunk-C7MO3RHJ.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";
4
+ import"./chunk-4B6GJBYP.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
5
+ import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import path from"path";var WIKI_PATH="/api/v2/wiki";var WIKI_SUMMARY_FIELDS="summary";function withoutContent(page){const rest={...page};delete rest["content"];return rest}var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment\
6
6
  _count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_one"];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_STALE_COLUMNS=["id",
7
7
  "title","status","verified_at","knowledge_kind","evidence_task_keys","updated_at"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","content_format","parent_page_id","version","tags","verified_at","evidence_task_keys","knowledge_kind","updated_at","updated_by_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["\
8
8
  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_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--out\
@@ -31,11 +31,30 @@ var wikiList={name:"list",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${W
31
31
  {name:"--status",summary:`\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080\uFF08${WIKI_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--tag",summary:"\u30BF\u30B0\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30BF\u30B0>"},{name:"--keyword",summary:"\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--stale-days",summary:"\u6700\u7D42\u5B9F\u6E2C\u65E5\u304C N \u65E5\u4EE5\u4E0A\u524D\uFF08\u672A\u8A2D\u5B9A\u3092\u542B\u3080\uFF09\u306E\u30DA\u30FC\u30B8\u3060\u3051\u30FB\u53E4\u3044\u9806",
32
32
  takesValue:true,placeholder:"<\u65E5\u6570>"}],paging:wikiPaging,async prepare(input,ctx){noArgs(input,"twp wiki list");parentRef(input);oneOf(input,"--status",WIKI_STATUSES);staleDays(input);pageLimit(input);return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan(input){return parentRef(input)!==void 0?{method:"GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}:{method:"GET",path:WIKI_PATH,query:wikiListQuery(input)}},narrow(body,input){const parent=parentRef(
33
33
  input);if(parent===void 0){return staleDays(input)!==void 0&&isRecord(body)?{...body,[STALE_VIEW]:true}:body}return{result:true,items:childrenOf(body,parent),has_more:false,next_cursor:null}},summarize:body=>{const rows=envelopeRows(body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`);const columns=rows.some(row=>isRecord(row)&&"child_count"in row)?WIKI_CHILD_COLUMNS:isRecord(body)&&body[STALE_VIEW]===true?WIKI_STALE_COLUMNS:WIKI_LIST_COLUMNS;return rows.map(row=>pick(row,columns))},raw:body=>envelopeRows(
34
- body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`).map(row=>isRecord(row)?withoutContent(row):row),notes:staleDaysNotes};function wikiTreeQuery(input){return{project_id:requireResolved(input,"project"),fields:WIKI_SUMMARY_FIELDS}}function wikiDocument(body){const page=record(body,"page",WIKI_LABEL);return composeDocument(page["title"],[...metaLine("\u72B6\u614B",page["status"]),...metaLine("\u5F62\u5F0F",page["content_format"]),...metaLine("\u30BF\u30B0",page["tags"]),...metaLine("\u89AA\u30DA\u30FC\u30B8",
35
- page["parent_page_id"]),...metaLine("\u6700\u7D42\u5B9F\u6E2C\u65E5",page["verified_at"]),...metaLine("\u6839\u62E0\u30BF\u30B9\u30AF",page["evidence_task_keys"]),...metaLine("\u7A2E\u5225",page["knowledge_kind"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F4\u65B0",page["updated_at"]),...metaLine("\u66F4\u65B0\u8005",page["updated_by_name"]),...metaLine("ID",page["id"])],[{body:wikiContentToText(page["content"],page["content_format"])}])}function isWikiPages(body){return isRecord(body)&&
36
- Array.isArray(body["pages"])}function wikiGetIds(input){const ids=input.args.map(raw=>raw.trim());if(ids.length===0||ids.every(id=>id===""))throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp wiki get help");for(const id of ids){if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id===""?"(\u7A7A)":id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}
37
- return ids}function wikiPagePlan(id){return{method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}}function isPageFailure(err){return err instanceof ApiError&&err.status!==401&&err.status!==429}async function wikiGetMany(input,ctx){const ids=wikiGetIds(input);if(ids.length===1)return ctx.send(wikiPagePlan(ids[0]));const pages=[];const failed=[];for(const id of ids){let body;try{body=await ctx.send(wikiPagePlan(id))}catch(err){if(!isPageFailure(err))throw err;failed.push({target:id,error:err});
38
- continue}pages.push(record(body,"page",WIKI_LABEL))}const result={result:true,pages,failed};return result}var wikiGet={name:"get",summary:`${WIKI_LABEL}\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08ID \u3092\u4E26\u3079\u308B\u3068\u8907\u6570\u30DA\u30FC\u30B8\u30FB--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09`,usage:"twp wiki get <\u30DA\u30FC\u30B8ID> [<\u30DA\u30FC\u30B8ID> ...]",description:`${TEXT_OUTPUT_HELP}
34
+ body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`).map(row=>isRecord(row)?withoutContent(row):row),notes:staleDaysNotes};function wikiTreeQuery(input){return{project_id:requireResolved(input,"project"),fields:WIKI_SUMMARY_FIELDS}}function wikiDocument(body){const view=wikiGetView(body);if(view!==void 0)return wikiViewDocument(view);const page=record(body,"page",WIKI_LABEL);return composeDocument(page["title"],[...metaLine("\u72B6\u614B",page["status"]),...metaLine("\u5F62\u5F0F",page["content_format"]),
35
+ ...metaLine("\u30BF\u30B0",page["tags"]),...metaLine("\u89AA\u30DA\u30FC\u30B8",page["parent_page_id"]),...metaLine("\u6700\u7D42\u5B9F\u6E2C\u65E5",page["verified_at"]),...metaLine("\u6839\u62E0\u30BF\u30B9\u30AF",page["evidence_task_keys"]),...metaLine("\u7A2E\u5225",page["knowledge_kind"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F4\u65B0",page["updated_at"]),...metaLine("\u66F4\u65B0\u8005",page["updated_by_name"]),...metaLine("ID",page["id"])],[{body:wikiContentToText(page["co\
36
+ ntent"],page["content_format"])}])}var WIKI_GET_USAGE="twp wiki get <\u30DA\u30FC\u30B8ID> [<\u30DA\u30FC\u30B8ID> ...] | --path <\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D> [--project <\u30B3\u30FC\u30C9|ID>]\uFF081\u4EF6\u306E\u3068\u304D\u306F [--outline | --section <\u898B\u51FA\u3057>] \u3082\u4ED8\u3051\u3089\u308C\u308B\uFF09";function wikiPathSegments(raw){const text2=raw.trim().replace(/^\//,"");const segments=[];let current="";for(let i=0;i<text2.length;i++){const ch=text2[i];const next=text2[i+
37
+ 1];if(ch==="\\"&&(next==="/"||next==="\\")){current+=next;i++}else if(ch==="/"){segments.push(current);current=""}else{current+=ch}}segments.push(current);if(segments.some(segment=>segment.trim()==="")){throw new UsageError(`--path \u306B\u7A7A\u306E\u4EF6\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${raw}`,"\u300C\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\u300D\u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4EF6\u540D\u306E\u4E2D\u306E / \u306F \\/ \u3068\u66F8\u304D\u307E\u3059\uFF09\u3002")}
38
+ return segments}function wikiPathRef(input){const raw=input.flags.get("--path");if(raw===void 0){if(input.flags.has("--project")){throw new UsageError("--project \u306F --path \u3068\u4E00\u7DD2\u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059","\u30DA\u30FC\u30B8 ID \u3067\u53D6\u308B\u3068\u304D\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6307\u5B9A\u306F\u8981\u308A\u307E\u305B\u3093\u3002")}return void 0}if(input.args.length>0){throw new UsageError(`\u30DA\u30FC\u30B8 ID\uFF08${input.
39
+ args.join(" ")}\uFF09\u3068 --path \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,WIKI_GET_USAGE)}if(raw.trim()==="")throw new UsageError("--path \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",WIKI_GET_USAGE);return wikiPathSegments(raw)}function foldTitle(value){return typeof value==="string"?value.trim().toLowerCase():void 0}function wikiPathNodes(nodes,trail){return nodes.filter(isRecord).map(page=>({page,trail:[...trail,typeof page["title"]==="\
40
+ string"?page["title"]:""],children:Array.isArray(page["children"])?page["children"]:[]}))}function formatTrail(trail){return trail.map(title=>title.replace(/\\/g,"\\\\").replace(/\//g,"\\/")).join("/")}function describeNode(node){return`${formatTrail(node.trail)}\uFF08${String(node.page["id"])}\uFF09`}function listNodes(nodes,limit=10){const shown=nodes.slice(0,limit).map(describeNode).join(" / ");return nodes.length>limit?`${shown} \u2026\uFF08\u5168 ${nodes.length} \u4EF6\uFF09`:shown}function nodesTitled(tree,title){
41
+ const needle=foldTitle(title);const found=[];const stack=wikiPathNodes(tree,[]).reverse();while(stack.length>0){const node=stack.pop();if(foldTitle(node.page["title"])===needle)found.push(node);stack.push(...wikiPathNodes(node.children,node.trail).reverse())}return found}function resolveWikiPath(body,segments,raw){const tree=isRecord(body)&&body["result"]===true?body["tree"]:void 0;if(!Array.isArray(tree))throw new ApiResponseError(`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC\u306E\u5FDC\u7B54\u306B tree \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
42
+ let frontier=wikiPathNodes(tree,[]);for(const[depth,segment]of segments.entries()){const needle=foldTitle(segment);const hits=frontier.filter(node=>foldTitle(node.page["title"])===needle&&typeof node.page["id"]==="string");if(hits.length===0){const where=depth===0?"\u6700\u4E0A\u4F4D":`\u300C${formatTrail(segments.slice(0,depth))}\u300D\u306E\u76F4\u4E0B`;const elsewhere=nodesTitled(tree,segment);const titles=[...new Set(frontier.map(node=>node.trail.at(-1)??""))].filter(title=>title!=="");const hint=elsewhere.
43
+ length>0?`\u540C\u3058\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u306F\u5225\u306E\u5834\u6240\u306B\u3042\u308A\u307E\u3059: ${listNodes(elsewhere)}`:titles.length>0?`${where}\u306E\u4EF6\u540D: ${titles.slice(0,10).join(" / ")}${titles.length>10?` \u2026\uFF08\u5168 ${titles.length} \u4EF6\uFF09`:""}`:`${where}\u306B\u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\u3002`;throw new UsageError(`--path \u306E\u300C${raw}\u300D\u306B\u4E00\u81F4\u3059\u308B ${WIKI_LABEL}\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${where}\
44
+ \u306B\u300C${segment}\u300D\u3068\u3044\u3046\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u524A\u9664\u6E08\u307F\u30FB\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306F\u898B\u3048\u307E\u305B\u3093\uFF09`,hint)}if(depth===segments.length-1){if(hits.length===1)return String(hits[0]?.page["id"]);throw new UsageError(`--path \u306E\u300C${raw}\u300D\u304C ${WIKI_LABEL}${hits.length}\u4EF6\u306B\u4E00\u81F4\u3057\u307E\u3059: ${listNodes(hits)}`,"\u30DA\u30FC\u30B8 ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp wik\
45
+ i get <\u30DA\u30FC\u30B8ID>\uFF09\u3002")}frontier=hits.flatMap(node=>wikiPathNodes(node.children,node.trail))}throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: --path \u306E\u4EF6\u540D\u304C\u7A7A\u3067\u3059")}function isWikiPages(body){return isRecord(body)&&Array.isArray(body["pages"])}function wikiGetIds(input){const ids=input.args.map(raw=>raw.trim());if(ids.length===0||ids.every(id=>id===""))throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
46
+ "twp wiki get help");for(const id of ids){if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id===""?"(\u7A7A)":id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return ids}function wikiPagePlan(id){return{method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}}function isPageFailure(err){return err instanceof ApiError&&err.status!==
47
+ 401&&err.status!==429}async function wikiGetMany(input,ctx){const ids=wikiGetIds(input);if(ids.length===1)return ctx.send(wikiPagePlan(ids[0]));const pages=[];const failed=[];for(const id of ids){let body;try{body=await ctx.send(wikiPagePlan(id))}catch(err){if(!isPageFailure(err))throw err;failed.push({target:id,error:err});continue}pages.push(record(body,"page",WIKI_LABEL))}const result={result:true,pages,failed};return result}function wikiGetPlan(input){return wikiPathRef(input)!==void 0?{method:"\
48
+ GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}:wikiPagePlan(wikiGetIds(input)[0])}var WIKI_VIEW_KEY="twp_wiki_view";var WIKI_SECTION_CANDIDATES_MAX=50;var WIKI_VIEW_PAGE_FIELDS=["id","title","version","content_format","updated_at"];function wikiGetView(body){const view=isRecord(body)?body[WIKI_VIEW_KEY]:void 0;return isRecord(view)?view:void 0}function wikiGetMode(input){const outline=input.flags.has("--outline");const raw=input.flags.get("--section");if(outline&&raw!==void 0){throw new UsageError(
49
+ "--outline \u3068 --section \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",'\u898B\u51FA\u3057\u306E\u4E00\u89A7\u306F --outline\u30011\u3064\u306E\u7BC0\u306F --section "<\u898B\u51FA\u3057>" \u3067\u3059\u3002')}if(raw!==void 0&&raw.replace(/^#+/,"").trim()===""){throw new UsageError("--section \u306B\u898B\u51FA\u3057\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u898B\u51FA\u3057\u306F twp wiki get <\u30DA\u30FC\u30B8ID> --outline \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}
50
+ if((outline||raw!==void 0)&&wikiPathRef(input)===void 0&&wikiGetIds(input).length>1){throw new UsageError("--outline / --section \u306F\u30DA\u30FC\u30B8 ID \u30921\u3064\u3060\u3051\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u8907\u6570\u306E\u30DA\u30FC\u30B8\u306F1\u4EF6\u305A\u3064 twp wiki get <\u30DA\u30FC\u30B8ID> --outline \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{outline,section:raw}}function wikiGetNarrow(body,outline,section){const page=record(body,
51
+ "page",WIKI_LABEL);const text2=wikiContentToText(page["content"],page["content_format"]);const summary=pick(page,WIKI_VIEW_PAGE_FIELDS);const options={markdown:page["content_format"]==="markdown"};if(outline)return{result:true,[WIKI_VIEW_KEY]:{kind:"outline",page:summary,outline:textOutline(text2,options)}};const found=textSection(text2,section??"",options);if(found===void 0){const titles=textOutline(text2,options).map(h=>`${"#".repeat(h.level)} ${oneLine(h.title)}`);const shown=titles.slice(0,WIKI_SECTION_CANDIDATES_MAX);
52
+ const rest=titles.length-shown.length;throw new UsageError(`\u898B\u51FA\u3057\u300C${oneLine(section??"")}\u300D\u306F\u30DA\u30FC\u30B8 ${String(page["id"])} \u306B\u3042\u308A\u307E\u305B\u3093`,titles.length===0?"\u3053\u306E\u30DA\u30FC\u30B8\u306B\u306F\u898B\u51FA\u3057\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5168\u6587\u306F --section \u3092\u5916\u3057\u3066\u8AAD\u3081\u307E\u3059\u3002":`\u30DA\u30FC\u30B8\u306E\u898B\u51FA\u3057:
53
+ ${shown.join("\n ")}${rest>0?`
54
+ \u2026\u307B\u304B ${rest} \u4EF6\uFF08\u5168\u4EF6\u306F --outline\uFF09`:""}`)}return{result:true,[WIKI_VIEW_KEY]:{kind:"section",page:summary,section:{level:found.level,title:found.title,content:found.text,matches:found.matches}}}}async function wikiGetExecute(input,ctx){const{outline,section}=wikiGetMode(input);const segments=wikiPathRef(input);const narrow=outline||section!==void 0;if(segments===void 0&&!narrow)return wikiGetMany(input,ctx);const id=segments===void 0?wikiGetIds(input)[0]:
55
+ resolveWikiPath(await ctx.send(wikiGetPlan(input)),segments,input.flags.get("--path")?.trim()??"");const body=await ctx.send(wikiPagePlan(id));return narrow?wikiGetNarrow(body,outline,section):body}function wikiViewDocument(view){const meta=[...metaLine("\u7248",view.page["version"]),...metaLine("ID",view.page["id"])];if(view.kind==="outline"){const lines=view.outline.map(h=>`${" ".repeat(h.level-1)}${"#".repeat(h.level)} ${h.title}\uFF08${h.chars}\u5B57\uFF09`);return composeDocument(view.page["\
56
+ title"],meta,[{heading:"\u898B\u51FA\u3057",body:lines.length===0?"\uFF08\u898B\u51FA\u3057\u306F\u3042\u308A\u307E\u305B\u3093\uFF09":lines.join("\n")}])}return composeDocument(view.page["title"],[...meta,`\u7BC0: ${oneLine(view.section.title)}`],[{body:view.section.content}])}function wikiViewRaw(view){return view.kind==="outline"?{...view.page,outline:view.outline}:{...view.page,section:view.section}}var wikiGet={name:"get",summary:`${WIKI_LABEL}\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08ID \u3092\u4E26\u3079\u308B\u3068\u8907\u6570\u30DA\u30FC\u30B8\u30FB--path \u3067\u4EF6\u540D\u304B\u3089\u5F15\u304F\u30FB--output \
57
+ text \u3067\u672C\u6587\u3092\u8AAD\u3080\u30FB--outline / --section \u3067\u5FC5\u8981\u306A\u7BC0\u3060\u3051\uFF09`,usage:WIKI_GET_USAGE,description:`${TEXT_OUTPUT_HELP}
39
58
 
40
59
  --output table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
41
60
  \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
@@ -45,25 +64,63 @@ ID \u3092\u8907\u6570\u4E26\u3079\u308B\u30681\u4EF6\u305A\u3064\u53D6\u5F97\u30
45
64
  \u898B\u3064\u304B\u3089\u306A\u3044\u30FB\u6A29\u9650\u304C\u7121\u3044\u30DA\u30FC\u30B8\u304C\u3042\u3063\u3066\u3082\u4ED6\u306E\u30DA\u30FC\u30B8\u306F\u51FA\u3057\u3001\u53D6\u308C\u306A\u304B\u3063\u305F ID \u3068\u7406\u7531\u3092 stderr \u306B\u51FA\u3057\u3066
46
65
  \u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF08\u30B5\u30FC\u30D0\u306E 5xx \u304C\u6DF7\u3058\u308C\u3070 4\uFF09\u3067\u7D42\u308F\u308A\u307E\u3059\u3002401\u30FB429 \u306E\u3068\u304D\u306F\u9014\u4E2D\u3067\u6B62\u3081\u3066\u4F55\u3082\u51FA\u3057\u307E\u305B\u3093\u3002
47
66
 
67
+ --path \u306F ID \u306E\u4EE3\u308F\u308A\u306B\u4EF6\u540D\u306E\u968E\u5C64\uFF08\u6700\u4E0A\u4F4D\u304B\u3089\u300C\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\u300D\uFF09\u3067\u30DA\u30FC\u30B8\u3092\u6307\u3057\u307E\u3059\u3002--project \u3092\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u3059\u3002
68
+ \u4EF6\u540D\u306F\u524D\u5F8C\u306E\u7A7A\u767D\u3068\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u3060\u3051\u3092\u7121\u8996\u3057\u305F\u5B8C\u5168\u4E00\u81F4\u3067\u7167\u5408\u3057\u307E\u3059\uFF08\u90E8\u5206\u4E00\u81F4\u3067\u306F\u9078\u3073\u307E\u305B\u3093\uFF09\u3002\u4EF6\u540D\u306E\u4E2D\u306E / \u306F \\/ \u3068\u66F8\u304D\u307E\u3059\u3002
69
+ \u540C\u3058\u4EF6\u540D\u306E\u30DA\u30FC\u30B8\u304C\u8907\u6570\u3042\u3063\u30661\u4EF6\u306B\u6C7A\u307E\u3089\u306A\u3044\u3068\u304D\u30FB\u898B\u3064\u304B\u3089\u306A\u3044\u3068\u304D\u306F\u3001\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u307E\u308A\u307E\u3059\u3002
70
+ \u30DA\u30FC\u30B8\u306E\u89AA\u5B50\u69CB\u9020\u30921\u56DE\u5F15\u3044\u3066 ID \u3092\u6C7A\u3081\u3066\u304B\u3089\u3001\u305D\u306E\u30DA\u30FC\u30B8\u3092\u53D6\u5F97\u3057\u307E\u3059\uFF082\u5F80\u5FA9\uFF09\u3002\u4E0B\u66F8\u304D\u306F\u898B\u3048\u308B\u30DA\u30FC\u30B8\u3060\u3051\u304C\u5019\u88DC\u306B\u306A\u308A\u307E\u3059\u3002
71
+
72
+ \u9577\u3044\u30DA\u30FC\u30B8\u306F\u5168\u6587\u3092\u8AAD\u307E\u305A\u306B\u6E08\u307E\u305B\u3089\u308C\u307E\u3059\uFF08ID \u306F1\u3064\u3060\u3051\u6307\u5B9A\u3059\u308B\u304B --path \u3067\u6307\u3057\u307E\u3059\uFF09\u3002
73
+ --outline \u898B\u51FA\u3057\u306E\u4E00\u89A7\uFF08\u968E\u5C64\u3068\u3001\u5404\u7BC0\u306E\u6587\u5B57\u6570\uFF1D\u4E0B\u4F4D\u306E\u7BC0\u3092\u542B\u3080\uFF09\u3060\u3051\u3092\u51FA\u3059
74
+ --section <\u898B\u51FA\u3057> \u305D\u306E\u898B\u51FA\u3057\u304B\u3089\u3001\u6B21\u306E\u540C\u3058\u304B\u4E0A\u306E\u30EC\u30D9\u30EB\u306E\u898B\u51FA\u3057\u306E\u624B\u524D\u307E\u3067\u3092\u51FA\u3059
75
+ \u898B\u51FA\u3057\u306F\u5B8C\u5168\u4E00\u81F4\uFF08\u7A7A\u767D\u306E\u9055\u3044\u30FB\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u306F\u7121\u8996\uFF09\u3067\u63A2\u3057\u3001\u90E8\u5206\u4E00\u81F4\u3067\u306F\u9078\u3073\u307E\u305B\u3093\u3002\u898B\u3064\u304B\u3089\u306A\u3051\u308C\u3070\u5019\u88DC\u306E\u898B\u51FA\u3057\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u3059\u3002
76
+ \u3069\u306E\u51FA\u529B\u5F62\u5F0F\u3067\u3082\u7248\uFF08version\uFF09\u3092\u51FA\u3059\u306E\u3067\u3001\u7D9A\u3051\u3066\u66F4\u65B0\u3059\u308B\u3068\u304D\u306F twp wiki update --if-version <\u7248> \u306B\u6E21\u305B\u307E\u3059\u3002
77
+ \u30B5\u30FC\u30D0\u306B\u7BC0\u5358\u4F4D\u306E\u53D6\u5F97\u306F\u7121\u3044\u305F\u3081\u3001\u901A\u4FE1\u91CF\u306F\u5168\u6587\u3068\u540C\u3058\u3067\u3059\uFF08\u6E1B\u308B\u306E\u306F\u51FA\u529B\uFF09\u3002
78
+
48
79
  \u4F8B:
49
- twp wiki get <ID1> <ID2> <ID3> --output text`,flags:[],plan:input=>wikiPagePlan(wikiGetIds(input)[0]),plannedNotes:input=>{const ids=wikiGetIds(input);return ids.length>1?[`\u3053\u306E\u3042\u3068\u3001\u6B8B\u308A\u306E ${ids.length-1} \u4EF6\u3082 GET ${WIKI_PATH}/<\u30DA\u30FC\u30B8ID> \u30671\u4EF6\u305A\u3064\u53D6\u5F97\u3057\u307E\u3059\u3002`]:[]},execute:wikiGetMany,summarize:body=>isWikiPages(body)?body.pages.map(page=>pick(page,WIKI_GET_COLUMNS)):pick(record(body,"page",WIKI_LABEL),
50
- WIKI_GET_COLUMNS),raw:body=>isWikiPages(body)?body.pages:record(body,"page",WIKI_LABEL),document:body=>{if(!isWikiPages(body))return wikiDocument(body);const total=body.pages.length;return body.pages.map((page,index)=>{const title=typeof page["title"]==="string"&&page["title"].trim()!==""?oneLine(page["title"]):"(\u7121\u984C)";return`=== ${index+1}/${total} ${title}\uFF08ID: ${String(page["id"]??"")}\uFF09 ===
80
+ twp wiki get <ID1> <ID2> <ID3> --output text
81
+ twp wiki get --path "\u904B\u7528/\u30EA\u30EA\u30FC\u30B9\u624B\u9806" --output text
82
+ twp wiki get --project TWP --path "\u8A2D\u8A08\\/\u65B9\u91DD/DB"
83
+ twp wiki get 0f8b2c6e-... --outline
84
+ twp wiki get --path "\u904B\u7528/\u30EA\u30EA\u30FC\u30B9\u624B\u9806" --section "\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF"`,flags:[{name:"--path",summary:"\u4EF6\u540D\u306E\u968E\u5C64\uFF08\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D\uFF09\u3067\u30DA\u30FC\u30B8\u3092\u6307\u3059",takesValue:true,placeholder:"<\u89AA\u4EF6\u540D/\u5B50\u4EF6\u540D>"},{name:"--project",summary:"--path \u3067\u5F15\u304F\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",
85
+ takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--outline",summary:"\u898B\u51FA\u3057\u306E\u4E00\u89A7\uFF08\u968E\u5C64\u30FB\u7BC0\u306E\u6587\u5B57\u6570\uFF09\u3060\u3051\u3092\u51FA\u3059",takesValue:false},{name:"--section",summary:"\u305D\u306E\u898B\u51FA\u3057\u306E\u7BC0\u3060\u3051\u3092\u51FA\u3059",takesValue:true,placeholder:"<\u898B\u51FA\u3057>"}],async prepare(input,ctx){wikiGetMode(input);if(wikiPathRef(input)===void 0)return input;return withResolved(input,{project:await ctx.
86
+ projectId(input.flags.get("--project"))})},plan:input=>{wikiGetMode(input);return wikiGetPlan(input)},plannedNotes:input=>{if(wikiPathRef(input)!==void 0)return[`\u3053\u306E\u3042\u3068\u3001\u4EF6\u540D\u306E\u968E\u5C64\u304B\u3089\u6C7A\u3081\u305F\u30DA\u30FC\u30B8\u3092 GET ${WIKI_PATH}/<\u30DA\u30FC\u30B8ID> \u3067\u53D6\u5F97\u3057\u307E\u3059\u3002`];const ids=wikiGetIds(input);return ids.length>1?[`\u3053\u306E\u3042\u3068\u3001\u6B8B\u308A\u306E ${ids.length-1} \u4EF6\u3082 GET ${WIKI_PATH}\
87
+ /<\u30DA\u30FC\u30B8ID> \u30671\u4EF6\u305A\u3064\u53D6\u5F97\u3057\u307E\u3059\u3002`]:[]},execute:wikiGetExecute,summarize:body=>{if(isWikiPages(body))return body.pages.map(page=>pick(page,WIKI_GET_COLUMNS));const view=wikiGetView(body);if(view===void 0)return pick(record(body,"page",WIKI_LABEL),WIKI_GET_COLUMNS);if(view.kind==="outline")return view.outline.map(h=>({version:view.page["version"],...h}));return{...view.page,section:view.section.title,level:view.section.level,content:view.section.
88
+ content}},raw:body=>{if(isWikiPages(body))return body.pages;const view=wikiGetView(body);return view===void 0?record(body,"page",WIKI_LABEL):wikiViewRaw(view)},notes:body=>{const view=wikiGetView(body);if(view?.kind!=="section"||view.section.matches<2)return[];return[`\u898B\u51FA\u3057\u300C${oneLine(view.section.title)}\u300D\u306F\u30DA\u30FC\u30B8\u5185\u306B ${view.section.matches} \u500B\u3042\u308A\u307E\u3059\u3002\u6700\u521D\u306E\u3082\u306E\u3092\u51FA\u3057\u307E\u3057\u305F\u3002`]},
89
+ document:body=>{if(!isWikiPages(body))return wikiDocument(body);const total=body.pages.length;return body.pages.map((page,index)=>{const title=typeof page["title"]==="string"&&page["title"].trim()!==""?oneLine(page["title"]):"(\u7121\u984C)";return`=== ${index+1}/${total} ${title}\uFF08ID: ${String(page["id"]??"")}\uFF09 ===
51
90
 
52
91
  ${wikiDocument({result:true,page})}`}).join("\n")},failures:body=>isWikiPages(body)?body.failed:[]};var WIKI_VERSIONS_MAX=100;var WIKI_TAGS_MAX=50;var WIKI_TREE_COLUMNS=["depth","id","title","status","child_count","parent_page_id","updated_at"];var WIKI_VERSION_COLUMNS=["version","title","content_format","changed_by_name","changed_at"];var WIKI_BACKLINK_COLUMNS=["id","title","status","link_context","updated_at","updated_by_name"];var WIKI_LINKED_TASK_COLUMNS=["key","subject","status_id","task_id",
53
92
  "project_id","created_by_name","created_at"];function pageIdAndRest(input,usage){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list / twp wiki tree \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");
54
93
  return{id,rest}}function versionNumber(raw,usage){const value=raw.trim();const n=/^\d+$/.test(value)?Number(value):Number.NaN;if(!Number.isSafeInteger(n)||n<1)throw new UsageError(`\u7248\u306F 1 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usage);return n}function arrayField(body,key,label){const rows=isRecord(body)&&body["result"]===true?body[key]:void 0;if(!Array.isArray(rows))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \
55
- \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return rows}function flattenTree(body){const tree=arrayField(body,"tree",`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC`);const out=[];const stack=[...tree].reverse().map(node=>({node,depth:0}));while(stack.length>0){const{node,depth}=stack.pop();if(!isRecord(node))continue;const children=Array.isArray(node["children"])?node["children"]:[];const page={...node,depth,child_count:children.
56
- length};delete page["children"];delete page["content"];out.push(page);for(let i=children.length-1;i>=0;i--)stack.push({node:children[i],depth:depth+1})}return out}function treeDocument(body){const rows=flattenTree(body);if(rows.length===0)return"\uFF08wiki \u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\n";return`${rows.map(row=>{const title=typeof row["title"]==="string"&&row["title"].trim()!==""?oneLine(row["title"]):"(\u7121\u984C)";const children=typeof row["child_count"]==="num\
57
- ber"&&row["child_count"]>0?`\u30FB\u5B50 ${row["child_count"]}`:"";return`${" ".repeat(Number(row["depth"])||0)}- ${title} [${String(row["status"]??"?")}${children}] ${String(row["id"])}`}).join("\n")}
94
+ \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return rows}function flattenTree(body){return flattenNodes(arrayField(body,"tree",`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC`)).map(row=>{const page={...row};delete page["content"];return page})}function flattenNodes(tree){const out=[];const stack=[...tree].reverse().map(node=>({node,depth:0}));while(stack.length>0){const{node,depth}=stack.pop();if(!isRecord(node))continue;
95
+ const children=Array.isArray(node["children"])?node["children"]:[];const page={...node,depth,child_count:children.length};delete page["children"];out.push(page);for(let i=children.length-1;i>=0;i--)stack.push({node:children[i],depth:depth+1})}return out}function treeDocument(body){const rows=flattenTree(body);if(rows.length===0)return"\uFF08wiki \u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\n";return`${rows.map(row=>{const title=typeof row["title"]==="string"&&row["title"].trim()!==
96
+ ""?oneLine(row["title"]):"(\u7121\u984C)";const children=typeof row["child_count"]==="number"&&row["child_count"]>0?`\u30FB\u5B50 ${row["child_count"]}`:"";return`${" ".repeat(Number(row["depth"])||0)}- ${title} [${String(row["status"]??"?")}${children}] ${String(row["id"])}`}).join("\n")}
58
97
  `}var projectFlag={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>"};var wikiTree={name:"tree",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u306E\u89AA\u5B50\u69CB\u9020\u3092\u51FA\u3059\uFF08\u672C\u6587\u306F\u51FA\u3055\u306A\u3044\uFF09`,usage:"twp wiki tree [--project <\u30B3\u30FC\u30C9|ID>]",
59
98
  description:`\u5168\u30DA\u30FC\u30B8\u3092\u89AA\u5B50\u306E\u9806\uFF08\u753B\u9762\u306E\u4E26\u3073\uFF09\u30671\u884C\u305A\u3064\u51FA\u3057\u307E\u3059\u3002--output text \u306F\u5B57\u4E0B\u3052\u3057\u305F\u6728\u3001table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_TREE_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
60
99
  **\u672C\u6587\u306F\u3069\u306E\u51FA\u529B\u5F62\u5F0F\u3067\u3082\u51FA\u3057\u307E\u305B\u3093**\uFF08--output json \u3082\u3001\u5404\u30DA\u30FC\u30B8\u304B\u3089 content \u3068 children \u3092\u5916\u3057 depth / child_count \u3092\u8DB3\u3057\u305F\u5E73\u3089\u306A\u914D\u5217\u3067\u3059\u3002\u30B5\u30FC\u30D0\u304C\u5BFE\u5FDC\u3057\u3066\u3044\u308C\u3070\u5192\u982D\u306E\u8981\u7D04 summary\uFF08\u5E73\u6587\u3067\u5148\u982D200\u6587\u5B57\uFF09\u3068\u672C\u6587\u306E\u6587\u5B57\u6570 content_length \u304C\u5165\u308A\u307E\u3059\uFF09\u3002\u672C\u6587\u306F twp wiki get \u3067\u8AAD\u3081\u307E\u3059\u3002
61
100
  \u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[projectFlag],async prepare(input,ctx){noArgs(input,"twp wiki tree");return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}),summarize:body=>flattenTree(body).map(row=>pick(row,WIKI_TREE_COLUMNS)),raw:flattenTree,
62
101
  document:treeDocument};var wikiTagList={name:"tags",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u306B\u4ED8\u3044\u3066\u3044\u308B\u30BF\u30B0\u3092\u51FA\u3059`,usage:"twp wiki tags [--project <\u30B3\u30FC\u30C9|ID>]",description:"\u516C\u958B\uFF08published\uFF09\u306E\u30DA\u30FC\u30B8\u306B\u4ED8\u3044\u305F\u30BF\u30B0\u3092\u3001\u4ED8\u3044\u3066\u3044\u308B\u30DA\u30FC\u30B8\u306E\u591A\u3044\u9806\u306B\u6700\u592750\u4EF6\u51FA\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4ED5\u69D8\u3002\u4EF6\u6570\u306F\u8FD4\u308A\u307E\u305B\u3093\uFF09\u3002\n\u4E0B\u66F8\u304D\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u307E\u305B\u3093\u3002\u30BF\u30B0\u3067\u30DA\u30FC\u30B8\u3092\u7D5E\u308B\u306A\u3089 twp wiki list --tag <\u30BF\u30B0> \u3067\u3059\u3002",
63
102
  flags:[projectFlag],async prepare(input,ctx){noArgs(input,"twp wiki tags");return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tags`,query:{project_id:requireResolved(input,"project")}}),summarize:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`).map(tag=>({tag})),raw:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`),notes:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`).length>=
64
- WIKI_TAGS_MAX?[`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u30BF\u30B0\u306E\u4E0A\u9650\uFF08${WIKI_TAGS_MAX}\u4EF6\uFF09\u306B\u9054\u3057\u307E\u3057\u305F\u3002\u3053\u308C\u3088\u308A\u5C11\u306A\u3044\u30DA\u30FC\u30B8\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`]:[]};var WIKI_VERSIONS_USAGE="twp wiki versions <\u30DA\u30FC\u30B8ID> [--limit <\u4EF6\u6570>]";function versionsLimit(input){const limit=positiveInteger(
65
- input.flags,"--limit");if(limit!==void 0&&limit>WIKI_VERSIONS_MAX){throw new UsageError(`--limit \u306F 1\u301C${WIKI_VERSIONS_MAX} \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${limit}`,`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u7248\u306E\u5C65\u6B74\u306F\u65B0\u3057\u3044\u9806\u306B\u6700\u5927${WIKI_VERSIONS_MAX}\u4EF6\u3067\u3059\u3002`)}return limit}var wikiVersions={name:"versions",summary:`${WIKI_LABEL}\u306E\u7248\u306E\u5C65\u6B74\u3092\u65B0\u3057\u3044\u9806\u306B\u51FA\u3059`,
66
- usage:WIKI_VERSIONS_USAGE,description:`\u7248\u306F\u672C\u6587\u304B\u4EF6\u540D\u3092\u5909\u3048\u305F\u3068\u304D\u306B1\u3064\u4E0A\u304C\u308A\u307E\u3059\u3002\u65E2\u5B9A\u306F\u65B0\u3057\u3044\u9806\u306B20\u4EF6\u3001--limit \u3067\u6700\u5927${WIKI_VERSIONS_MAX}\u4EF6\u3067\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u3002\u305D\u308C\u3088\u308A\u53E4\u3044\u7248\u306F\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\u304C\u3001\u7248\u756A\u53F7\u304C\u5206\u304B\u308C\u3070 twp wiki version \u3067\u8AAD\u3081\u307E\u3059\uFF09\u3002
103
+ WIKI_TAGS_MAX?[`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u30BF\u30B0\u306E\u4E0A\u9650\uFF08${WIKI_TAGS_MAX}\u4EF6\uFF09\u306B\u9054\u3057\u307E\u3057\u305F\u3002\u3053\u308C\u3088\u308A\u5C11\u306A\u3044\u30DA\u30FC\u30B8\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`]:[]};var WIKI_DIGEST_USAGE="twp wiki digest [--project <\u30B3\u30FC\u30C9|ID>] [--parent <\u30DA\u30FC\u30B8ID>] [--tag <\u30BF\u30B0>] [--max-chars <\u6587\u5B57\u6570>]";
104
+ var WIKI_DIGEST_SUMMARY_MAX=200;var WIKI_DIGEST_COLUMNS=["id","title","summary","tags","version","updated_at"];function digestSummary(content,format){const paragraphs=wikiContentToText(content,format).split(/\n\s*\n/);const isHeadingOrImage=line=>/^#{1,6}\s/.test(line)||/^!\[[^\]]*\]\([^)]*\)$/.test(line);const first=paragraphs.map(paragraph=>{const lines=paragraph.split("\n").map(line=>line.trim()).filter(line=>line!=="");const start=lines.findIndex(line=>!isHeadingOrImage(line));return start<0?
105
+ []:lines.slice(start)}).find(lines=>lines.length>0);if(first===void 0)return"";const text2=oneLine(first.join("\n"));const chars=[...text2];return chars.length>WIKI_DIGEST_SUMMARY_MAX?`${chars.slice(0,WIKI_DIGEST_SUMMARY_MAX-1).join("")}\u2026`:text2}function digestParent(input){const raw=nonEmpty(input.flags,"--parent");if(raw===void 0)return void 0;const parent=raw.trim();if(parent!==ROOT_PARENT&&!isSafePathSegment(parent)){throw new UsageError(`\u89AA\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${parent}`,
106
+ "\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki tree \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return parent===ROOT_PARENT?void 0:parent}function digestEntry(page){const meta=[`id: ${page.id}`,...metaLine("\u7248",page.version),...metaLine("\u66F4\u65B0",page.updated_at),...metaLine("\u30BF\u30B0",page.tags),...page.status==="draft"?["\u72B6\u614B: draft"]:[]].join(" \u30FB ");return[`## ${page.title}`,meta,...page.summary===""?[]:[page.summary]].join("\n")}function digestOmittedLine(omitted,maxChars){
107
+ return`\uFF08\u7701\u7565 ${omitted} \u4EF6: --max-chars ${maxChars} \u306B\u53CE\u307E\u3089\u306A\u3044\u305F\u3081\u3002--parent / --tag \u3067\u7D5E\u308B\u304B\u3001--max-chars \u3092\u5E83\u3052\u3066\u304F\u3060\u3055\u3044\uFF09`}function digestText(pages,omitted,maxChars){const parts=pages.map(digestEntry);if(omitted>0&&maxChars!==null)parts.push(digestOmittedLine(omitted,maxChars));if(parts.length===0)return"\uFF08\u8A72\u5F53\u3059\u308B wiki \u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\uFF09";
108
+ return parts.join("\n\n")}function fitDigest(pages,maxChars){const total=pages.length;let shown=total;if(maxChars!==null&&charCount(digestText(pages,0,maxChars))>maxChars){shown=0;let used=0;for(let k=1;k<=total;k++){used+=charCount(digestEntry(pages[k-1]))+(k>1?2:0);if(k===total)break;if(used+2+charCount(digestOmittedLine(total-k,maxChars))>maxChars)break;shown=k}}return{total,shown,omitted:total-shown,max_chars:maxChars,pages:pages.slice(0,shown)}}function digestPages(body,input){const tree=arrayField(
109
+ body,"tree",`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC`);const parent=digestParent(input);let roots=tree;if(parent!==void 0){const stack=[...tree];let found;while(stack.length>0&&found===void 0){const node=stack.pop();if(!isRecord(node))continue;const children=Array.isArray(node["children"])?node["children"]:[];if(node["id"]===parent)found=children;else for(const child of children)stack.push(child)}if(found===void 0){throw new ResolveError(`\u89AA\u30DA\u30FC\u30B8 ${parent} \u306F\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\
110
+ \uFF08\u524A\u9664\u6E08\u307F\u30FB\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u30FB\u5225\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DA\u30FC\u30B8\u306F\u898B\u3048\u307E\u305B\u3093\uFF09`,404)}roots=found}const tag=nonEmpty(input.flags,"--tag")?.trim();return flattenNodes(roots).map(row=>{const tags=Array.isArray(row["tags"])?row["tags"].filter(t=>typeof t==="string").map(t=>t.trim()):[];const title=typeof row["title"]==="string"&&row["title"].trim()!==""?oneLine(row["title"]):"(\u7121\u984C)";return{
111
+ id:String(row["id"]),title,summary:digestSummary(row["content"],row["content_format"]),tags,version:row["version"]??null,updated_at:row["updated_at"]??null,status:row["status"]??null,depth:Number(row["depth"])||0,parent_page_id:row["parent_page_id"]??null}}).filter(page=>tag===void 0||page.tags.includes(tag))}function digestOf(body){const digest=isRecord(body)&&body["result"]===true?body["digest"]:void 0;if(!isRecord(digest)||!Array.isArray(digest["pages"])){throw new ApiResponseError(`${WIKI_LABEL}\
112
+ \u306E\u7D22\u5F15\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return digest}var wikiDigest={name:"digest",summary:`${WIKI_LABEL}\u306E\u7D22\u5F15\uFF08\u4EF6\u540D\u30FBID\u30FB\u5192\u982D\u306E\u6BB5\u843D\u30FB\u30BF\u30B0\u30FB\u66F4\u65B0\u65E5\u30FB\u7248\uFF09\u30921\u56DE\u3067\u51FA\u3059`,usage:WIKI_DIGEST_USAGE,description:`\u30CA\u30EC\u30C3\u30B8\u306B\u4F55\u304C\u3042\u308B\u304B\u30921\u30B3\u30DE\u30F3\u30C9\u3067\u77E5\u308B\u305F\u3081\u306E\u64CD\u4F5C\u3067\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306E\u4EF6\u540D\u30FBID\u30FB\u672C\u6587\u306E\
113
+ \u5192\u982D\u306E\u6BB5\u843D\uFF08\u898B\u51FA\u3057\u3068\u753B\u50CF\u306F\u98DB\u3070\u3057\u3001${WIKI_DIGEST_SUMMARY_MAX}\u6587\u5B57\u307E\u3067\uFF09\u30FB\u30BF\u30B0\u30FB\u66F4\u65B0\u65E5\u30FB\u7248\u3092\u3001\u89AA\u5B50\u306E\u9806\uFF08\u753B\u9762\u306E\u4E26\u3073\uFF09\u3067\u51FA\u3057\u307E\u3059\u3002\u672C\u6587\u306E\u5168\u4F53\u306F twp wiki get \u3067\u8AAD\u3081\u307E\u3059\u3002
114
+ --parent <\u30DA\u30FC\u30B8ID> \u306F\u305D\u306E\u30DA\u30FC\u30B8\u306E\u914D\u4E0B\uFF08\u5B50\u30FB\u5B6B\u2026\u3002\u305D\u306E\u30DA\u30FC\u30B8\u81EA\u8EAB\u306F\u542B\u3081\u306A\u3044\uFF09\u3060\u3051\u3001--tag <\u30BF\u30B0> \u306F\u305D\u306E\u30BF\u30B0\u304C\u4ED8\u3044\u305F\u30DA\u30FC\u30B8\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u3002
115
+
116
+ --max-chars <\u6587\u5B57\u6570> \u306F --output text \u306E\u51FA\u529B\u5168\u4F53\u306E\u6587\u5B57\u6570\u306E\u4E0A\u9650\u3067\u3059\u3002\u53CE\u307E\u3089\u306A\u3044\u30DA\u30FC\u30B8\u306F\u4E26\u3073\u306E\u5F8C\u308D\u304B\u3089\u843D\u3068\u3057\u3001\u843D\u3068\u3057\u305F\u4EF6\u6570\u3092\u300C\u7701\u7565 N \u4EF6\u300D\u3068\u3057\u3066\u5FC5\u305A\u51FA\u3057\u307E\u3059\uFF08text \u306F\u672B\u5C3E\u306E\u884C\u3001json \u306F omitted\u3001table / tsv \u306F stderr\uFF09\u30021\u4EF6\u3082\u53CE\u307E\u3089\u306A\u3044\u4E0A\u9650\u3067\u3082\u7701\u7565\u306E\u884C\u306F\u51FA\u3057\u307E\u3059\uFF08\u305D\u306E\u5834\u5408\u3060\u3051\u4E0A\u9650\u3092\u8D85\u3048\u307E\u3059\uFF09\u3002json / table / tsv \u306F text \u3068\u540C\u3058\u30DA\u30FC\u30B8\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u304C\u3001\u6587\u5B57\u6570\u306E\u4E0A\u9650\u305D\u306E\u3082\u306E\u306F text \u306B\u3060\u3051\u5F53\u305F\u308A\u307E\u3059\u3002
117
+ --tag \u306F\u30BF\u30B0\u306E\u5B8C\u5168\u4E00\u81F4\u3067\u3059\u3002--parent root \u306F\u5168\u30DA\u30FC\u30B8\uFF08\u7D5E\u3089\u306A\u3044\u306E\u3068\u540C\u3058\uFF09\u3067\u3059\u3002
118
+ \u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[projectFlag,{name:"--parent",summary:"\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08\u305D\u306E\u914D\u4E0B\u3060\u3051\u3092\u51FA\u3059\uFF09",takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>"},{name:"--tag",summary:"\u3053\u306E\u30BF\u30B0\u304C\u4ED8\u3044\u305F\u30DA\u30FC\u30B8\u3060\u3051\u3092\u51FA\u3059",
119
+ takesValue:true,placeholder:"<\u30BF\u30B0>"},{name:"--max-chars",summary:"--output text \u306E\u51FA\u529B\u5168\u4F53\u306E\u6587\u5B57\u6570\u306E\u4E0A\u9650\uFF08\u8D85\u3048\u308B\u5206\u306F\u300C\u7701\u7565 N \u4EF6\u300D\u3068\u51FA\u3059\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u6570>"}],async prepare(input,ctx){noArgs(input,"twp wiki digest");digestParent(input);positiveInteger(input.flags,"--max-chars");return withResolved(input,{project:await ctx.projectId(input.flags.get(
120
+ "--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tree`,query:{project_id:requireResolved(input,"project")}}),narrow:(body,input)=>({result:true,digest:fitDigest(digestPages(body,input),positiveInteger(input.flags,"--max-chars")??null)}),summarize:body=>digestOf(body).pages.map(page=>pick({...page,tags:page.tags.join(", ")},WIKI_DIGEST_COLUMNS)),raw:body=>digestOf(body),document:body=>{const digest=digestOf(body);return`${digestText(digest.pages,digest.omitted,digest.max_chars)}
121
+ `},notes:body=>{const digest=digestOf(body);return digest.omitted>0&&digest.max_chars!==null?[`${digest.total} \u4EF6\u4E2D ${digest.omitted} \u4EF6\u3092\u7701\u7565\u3057\u307E\u3057\u305F\uFF08--max-chars ${digest.max_chars} \u306B\u53CE\u307E\u3089\u306A\u3044\u305F\u3081\uFF09\u3002`]:[]}};var WIKI_VERSIONS_USAGE="twp wiki versions <\u30DA\u30FC\u30B8ID> [--limit <\u4EF6\u6570>]";function versionsLimit(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>WIKI_VERSIONS_MAX){
122
+ throw new UsageError(`--limit \u306F 1\u301C${WIKI_VERSIONS_MAX} \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${limit}`,`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u7248\u306E\u5C65\u6B74\u306F\u65B0\u3057\u3044\u9806\u306B\u6700\u5927${WIKI_VERSIONS_MAX}\u4EF6\u3067\u3059\u3002`)}return limit}var wikiVersions={name:"versions",summary:`${WIKI_LABEL}\u306E\u7248\u306E\u5C65\u6B74\u3092\u65B0\u3057\u3044\u9806\u306B\u51FA\u3059`,usage:WIKI_VERSIONS_USAGE,description:`\u7248\u306F\u672C\u6587\u304B\u4EF6\u540D\u3092\u5909\u3048\u305F\u3068\u304D\u306B1\u3064\u4E0A\u304C\u308A\u307E\u3059\u3002\u65E2\u5B9A\u306F\
123
+ \u65B0\u3057\u3044\u9806\u306B20\u4EF6\u3001--limit \u3067\u6700\u5927${WIKI_VERSIONS_MAX}\u4EF6\u3067\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u3002\u305D\u308C\u3088\u308A\u53E4\u3044\u7248\u306F\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\u304C\u3001\u7248\u756A\u53F7\u304C\u5206\u304B\u308C\u3070 twp wiki version \u3067\u8AAD\u3081\u307E\u3059\uFF09\u3002
67
124
  --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_VERSION_COLUMNS.join(" / ")}\uFF09\u3001--output json \u306F\u5404\u7248\u306E\u672C\u6587\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3059\u3002
68
125
  \u7248\u306E\u672C\u6587\u306F twp wiki version <\u30DA\u30FC\u30B8ID> <\u7248>\u30012\u3064\u306E\u7248\u306E\u9055\u3044\u306F twp wiki diff <\u30DA\u30FC\u30B8ID> <\u72481> [<\u72482>] \u3067\u8AAD\u3081\u307E\u3059\u3002`,flags:[{name:"--limit",summary:`\u51FA\u3059\u4EF6\u6570\uFF081\u301C${WIKI_VERSIONS_MAX}\u30FB\u65E2\u5B9A20\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"}],plan(input){const{id,rest}=pageIdAndRest(input,WIKI_VERSIONS_USAGE);if(rest.length>0)throw new UsageError(`twp\
69
126
  wiki versions \u304C\u53D7\u3051\u53D6\u308C\u308B\u30DA\u30FC\u30B8 ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,WIKI_VERSIONS_USAGE);return{method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}/versions`,query:{limit:versionsLimit(input)}}},summarize:body=>arrayField(body,"versions",`${WIKI_LABEL}\u306E\u7248\u306E\u5C65\u6B74`).map(row=>pick(row,WIKI_VERSION_COLUMNS)),raw:body=>arrayField(body,"versions",`${WIKI_LABEL}\u306E\u7248\u306E\u5C65\u6B74`),notes(body,input){const rows=arrayField(
@@ -95,9 +152,10 @@ status_id \u306F\u30BF\u30B9\u30AF\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306E ID
95
152
  --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_LINKED_TASK_COLUMNS.join(" / ")}\uFF09\u3001--output json \u306F\u30EA\u30F3\u30AF\u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08task \u306E\u5165\u308C\u5B50\u3092\u542B\u3080\uFF09\u3067\u3059\u3002`,flags:[],plan:input=>({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(singleId(input,"twp wiki linked-tasks","\u30DA\u30FC\u30B8","twp wiki list"))}/linked-tasks`}),summarize:body=>arrayField(body,"linked_tasks",`${WIKI_LABEL}\
96
153
  \u306E\u95A2\u9023\u30BF\u30B9\u30AF`).map(linkedTaskRow),raw:body=>arrayField(body,"linked_tasks",`${WIKI_LABEL}\u306E\u95A2\u9023\u30BF\u30B9\u30AF`)};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|-> [--content-format <html|markdown>] [--parent <\u30DA\u30FC\u30B8ID>] [--status <draft|published>] [--tag <\u30BF\u30B0>]... [--verified-at <\u65E5\u4ED8|today>] [--evidence-task <\u30AD\u30FC>]... [--kind <\u7A2E\u5225>]";
97
154
  var WIKI_UPDATE_USAGE="twp wiki update <\u30DA\u30FC\u30B8ID> [--title <\u4EF6\u540D>] [--content-file <\u30D1\u30B9|->] [--content-format <html|markdown>] [--status <draft|published>] [--tag <\u30BF\u30B0>]... [--clear-tags] [--verified-at <\u65E5\u4ED8|today>|--clear-verified-at] [--evidence-task <\u30AD\u30FC>...|--clear-evidence-tasks] [--kind <\u7A2E\u5225>|--clear-kind] [--if-version <\u7248>]";var WIKI_MOVE_USAGE="twp wiki move <\u30DA\u30FC\u30B8ID> [--parent <\u30DA\u30FC\u30B8ID>|root] [--sort-order <\u9806>]";
98
- 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_CONTENT_FORMAT_FLAG={name:"--content-format",summary:`\u672C\u6587\u306E\u5F62\u5F0F\uFF08${WIKI_CONTENT_FORMATS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u5F62\u5F0F>"};var WIKI_STATUS_FLAG={name:"--status",summary:`\u72B6\u614B\uFF08${WIKI_STATUSES.
99
- 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\u672C\u6587\u306E\u5F62\u5F0F\u306F --content-format\uFF08html / markdown\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u7701\u304F\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u306B\u306A\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002\u65E2\u5B9A\u306F twp project update --wiki-default-format \u3067\u8A2D\u5B9A\uFF09\u3002\nMarkdown \u306E\u672C\u6587\u306F\
100
- --content-format markdown \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044\u3002HTML \u306E\u30DA\u30FC\u30B8\u306B Markdown \u3092\u9001\u3063\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\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u4F5C\u6210\u5F8C\u306B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08update \u3067\u9055\u3046\u5F62\u5F0F\u3092\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\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\u30FC\u30D0\u306E 403 \u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002";
155
+ 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_CONTENT_FORMAT_FLAG={name:"--content-format",summary:`\u672C\u6587\u306E\u5F62\u5F0F\uFF08${WIKI_CONTENT_FORMATS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u5F62\u5F0F>"};var WIKI_FORMAT_BY_EXTENSION={".md":"markdown",".markdown":"ma\
156
+ rkdown",".html":"html",".htm":"html"};function inferredWikiFormat(input){if(input.flags.has("--content-format"))return void 0;const file=input.flags.get("--content-file");if(file===void 0||file==="-")return void 0;const extension=path.extname(file).toLowerCase();const format=WIKI_FORMAT_BY_EXTENSION[extension];return format===void 0?void 0:{format,extension}}var WIKI_STATUS_FLAG={name:"--status",summary:`\u72B6\u614B\uFF08${WIKI_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"};
157
+ 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\u672C\u6587\u306E\u5F62\u5F0F\u306F --content-format\uFF08html / markdown\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u7701\u304F\u3068 --content-file \u306E\u62E1\u5F35\u5B50\u3067\u6C7A\u3081\u307E\u3059\uFF08.md / .markdown \u306F markdown\u3001.html / .htm \u306F html\uFF09\u3002\u62E1\u5F35\u5B50\u3067\u6C7A\u307E\u3089\u306A\u3051\u308C\u3070\u5F62\u5F0F\u3092\u9001\u3089\u305A\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u306B\u306A\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002\u65E2\u5B9A\u306F twp project update --wiki-default-\
158
+ format \u3067\u8A2D\u5B9A\uFF09\u3002\nHTML \u306E\u30DA\u30FC\u30B8\u306B Markdown \u3092\u9001\u3063\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\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u4F5C\u6210\u5F8C\u306B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08update \u3067\u9055\u3046\u5F62\u5F0F\u3092\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002update \u3067\u5F62\u5F0F\u3092\u62E1\u5F35\u5B50\u304B\u3089\u6C7A\u3081\u305F\u3068\u304D\u306F\u3001\u9001\u308B\u524D\u306B\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u3068\u7167\u5408\u3057\u3001\u9055\u3048\u3070\u4F55\u3082\u9001\u3089\u305A\u306B\u6B62\u307E\u308A\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\u30FC\u30D0\u306E 403 \u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002";
101
159
  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");const count=charCount(raw);if(count>WIKI_TITLE_MAX_CHARS){throw new UsageError(
102
160
  `--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-tags \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\
103
161
  \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(tag)>WIKI_TAG_MAX_CHARS){throw new UsageError(`--tag \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${tag}\u30FB\u4E0A\u9650 ${WIKI_TAG_MAX_CHARS}\
@@ -119,18 +177,24 @@ ${WIKI_FRESHNESS_HELP}
119
177
  \u4F8B:
120
178
  twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.html --status published --tag \u904B\u7528
121
179
  twp wiki create --project TWP --title \u843D\u3068\u3057\u7A74 --content-file notes.md --content-format markdown --verified-at today --evidence-task PRJ-123 --kind \u843D\u3068\u3057\u7A74
122
- twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.md --content-format markdown
180
+ twp wiki create --project TWP --title \u904B\u7528\u624B\u9806 --content-file notes.md # \u62E1\u5F35\u5B50\u304B\u3089 markdown
123
181
  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>"},
124
182
  CONTENT_FILE_FLAG,WIKI_CONTENT_FORMAT_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,...WIKI_FRESHNESS_FLAGS],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);oneOf(
125
183
  input,"--content-format",WIKI_CONTENT_FORMATS);wikiTags(input);wikiParent(input,false);wikiFreshnessBody(input);const content=await wikiContent(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,
126
- false);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);return{method:"POST",path:WIKI_PATH,body:{project_id:requireResolved(input,"project"),title:wikiTitle(input),content:requireResolved(input,"content"),...contentFormat!==void 0?{content_format:contentFormat}:{},...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)}:{},...wikiFreshnessBody(
127
- 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"],...input.flags.has("--content-format")?[]:["--content-format \u3092\u7701\u3044\u305F\u306E\u3067\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u3067\u4F5C\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002twp project get \u306E wiki_default_content_format \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002"]],
128
- summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};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(
129
- current)} \u3067\u3059\uFF08--if-version ${expected}\uFF09\u3002\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`],
130
- 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}
184
+ false);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS)??inferredWikiFormat(input)?.format;return{method:"POST",path:WIKI_PATH,body:{project_id:requireResolved(input,"project"),title:wikiTitle(input),content:requireResolved(input,"content"),...contentFormat!==void 0?{content_format:contentFormat}:{},...oneOf(input,"--status",WIKI_STATUSES)!==void 0?{status:oneOf(input,"--status",WIKI_STATUSES)}:{},...parent!==void 0?{parent_page_id:parent}:{},...wikiTags(input)!==void 0?{
185
+ tags:wikiTags(input)}:{},...wikiFreshnessBody(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"],...wikiCreateFormatNotes(input)],summarize:body=>pick(pageFrom(body),WIKI_GET_COLUMNS),raw:pageFrom};function wikiCreateFormatNotes(input){if(input.flags.has("--content-format"))return[];const inferred=inferredWikiFormat(
186
+ input);if(inferred!==void 0){return[`--content-format \u3092\u7701\u3044\u305F\u306E\u3067\u3001--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u304B\u3089 ${inferred.format} \u306E\u30DA\u30FC\u30B8\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\u3002\u9055\u3046\u5F62\u5F0F\u306B\u3059\u308B\u306A\u3089 --content-format \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]}return["--content-format \u3092\u7701\u304D\u3001\u62E1\u5F35\u5B50\u304B\u3089\u3082\u5F62\u5F0F\u304C\u6C7A\u307E\u3089\u306A\u3044\u306E\u3067\u5F62\u5F0F\u3092\u9001\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\u3067\u4F5C\u308A\u307E\u3059\uFF08\u672A\u8A2D\u5B9A\u306A\u3089 HTML\u3002twp projec\
187
+ t get \u306E wiki_default_content_format \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002"]}async function previewWikiUpdate(input,ctx){const expected=positiveInteger(input.flags,"--if-version");const inferred=inferredWikiFormat(input);if(expected===void 0&&inferred===void 0)return{notes:[],warnings:[]};const id=singleId(input,"twp wiki update","\u30DA\u30FC\u30B8","twp wiki list");const page=pageFrom(await ctx.send({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}));const notes=[];
188
+ if(expected!==void 0){const current=page["version"];if(current!==expected){throw new ApiRejectedError(`\u30DA\u30FC\u30B8 ${id} \u306E\u7248\u304C ${String(current)} \u3067\u3059\uFF08--if-version ${expected}\uFF09\u3002\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`)}
189
+ notes.push(`\u7248 ${expected} \u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F\uFF08\u7248\u7167\u5408\u306B\u5BFE\u5FDC\u3057\u305F\u30B5\u30FC\u30D0\u3067\u306F\u9001\u4FE1\u6642\u306B\u3082\u7167\u5408\u3057\u3001\u9593\u306B\u4ED6\u306E\u66F4\u65B0\u304C\u3042\u308C\u3070 409 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002`)}if(inferred!==void 0){const pageFormat=typeof page["content_format"]==="string"&&page["content_format"]!==""?page["content_format"]:"html";if(pageFormat!==inferred.format){throw new ApiRejectedError(
190
+ `\u30DA\u30FC\u30B8 ${id} \u306E\u5F62\u5F0F\u306F ${pageFormat} \u3067\u3059\u304C\u3001--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u306F ${inferred.format} \u3067\u3059\u3002\u4F55\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u4F5C\u6210\u5F8C\u306B\u5909\u3048\u3089\u308C\u307E\u305B\u3093\u3002\u672C\u6587\u3092 ${pageFormat} \u3067\u66F8\u304D\u76F4\u3059\u304B\u3001${inferred.format} \u3067\u65B0\u3057\u3044\u30DA\u30FC\u30B8\u3092\u4F5C\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u3053\u306E\u672C\u6587\u3092\u305D\u306E\u307E\u307E\u9001\u308B\
191
+ \u306A\u3089 --content-format ${pageFormat} \u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002`)}notes.push(`--content-file \u306E\u62E1\u5F35\u5B50\uFF08${inferred.extension}\uFF09\u304C\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\uFF08${pageFormat}\uFF09\u3068\u4E00\u81F4\u3059\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u307E\u3057\u305F\u3002`)}return{notes,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`,
192
+ usage:WIKI_UPDATE_USAGE,description:`${WIKI_WRITE_HELP}
131
193
  \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
132
- --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
133
- \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
194
+ --content-file \u306E\u62E1\u5F35\u5B50\u304B\u3089\u5F62\u5F0F\u304C\u6C7A\u307E\u308B\u3068\u304D\uFF08--content-format \u3092\u7701\u3044\u305F\u3068\u304D\uFF09\u306F\u3001\u9001\u308B\u524D\u306B\u30DA\u30FC\u30B8\u3092\u53D6\u5F97\u3057\u3066\u5F62\u5F0F\u3092\u7167\u5408\u3057\u307E\u3059\u3002
195
+ --if-version <\u7248> \u3092\u4ED8\u3051\u308B\u3068\u3001\u30DA\u30FC\u30B8\u306E\u7248\uFF08twp wiki get \u306E version\uFF09\u304C\u4E00\u81F4\u3059\u308B\u3068\u304D\u3060\u3051\u66F4\u65B0\u3057\u307E\u3059\u3002
196
+ \u7248\u7167\u5408\u306B\u5BFE\u5FDC\u3057\u305F\u30B5\u30FC\u30D0\uFF08TWP-6838 \u4EE5\u964D\uFF09\u306F\u66F8\u304D\u8FBC\u307F\u306E\u6642\u70B9\u3067\u3082\u7167\u5408\u3057\u3001\u4ED6\u306E\u66F4\u65B0\u3068\u885D\u7A81\u3059\u308B\u3068\u4F55\u3082\u5909\u3048\u305A\u306B\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF08\u73FE\u5728\u306E\u7248\u3092\u8868\u793A\u3057\u307E\u3059\uFF09\u3002
197
+ \u5BFE\u5FDC\u524D\u306E\u30B5\u30FC\u30D0\u3067\u306F\u9001\u308B\u76F4\u524D\u306E\u7167\u5408\u3060\u3051\u306B\u306A\u308A\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
134
198
  \u89AA\u30DA\u30FC\u30B8\u306E\u4ED8\u3051\u66FF\u3048\u306F twp wiki move \u3067\u3059\u3002
135
199
  ${WIKI_FRESHNESS_HELP}
136
200
  --evidence-task \u306F\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002--clear-verified-at / --clear-evidence-tasks / --clear-kind \u306F\u305D\u308C\u305E\u308C\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3057\u307E\u3059\u3002\u9BAE\u5EA6\u5C5E\u6027\u3060\u3051\u3092\u5909\u3048\u3066\u3082\u7248\u306F\u4E0A\u304C\u308A\u307E\u305B\u3093\u3002
@@ -138,12 +202,12 @@ ${WIKI_FRESHNESS_HELP}
138
202
  \u4F8B:
139
203
  twp wiki update 0f8b2c6e-... --content-file notes.html --if-version 3
140
204
  twp wiki update 0f8b2c6e-... --verified-at today --evidence-task PRJ-123`,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_CONTENT_FORMAT_FLAG,WIKI_STATUS_FLAG,WIKI_TAG_FLAG,{name:"--clear-tags",summary:"\u30BF\u30B0\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},...WIKI_FRESHNESS_FLAGS,{name:"--clear-verified-at",summary:"\u6700\u7D42\u5B9F\u6E2C\u65E5\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",
141
- takesValue:false},{name:"--clear-evidence-tasks",summary:"\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},{name:"--clear-kind",summary:"\u7A2E\u5225\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",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",takesValue:true,placeholder:"<\u7248>"}],async prepare(input){singleId(input,"twp wiki update","\u30DA\u30FC\u30B8",
142
- "twp wiki list");const title=wikiTitle(input);const status=oneOf(input,"--status",WIKI_STATUSES);const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const tags=wikiTags(input);positiveInteger(input.flags,"--if-version");const freshness=wikiFreshnessBody(input);const content=await wikiContent(input,WIKI_UPDATE_USAGE);if(title===void 0&&status===void 0&&tags===void 0&&content===void 0&&contentFormat===void 0&&Object.keys(freshness).length===0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\
143
- \u3093",`--title / --content-file / --content-format / --status / --tag / --clear-tags / --verified-at / --evidence-task / --kind\uFF08\u3068\u5404 --clear-*\uFF09\u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
144
- ${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"];const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);return{method:"PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}`,body:{...title!==
145
- void 0?{title}:{},...content!==void 0?{content}:{},...contentFormat!==void 0?{content_format:contentFormat}:{},...status!==void 0?{status}:{},...tags!==void 0?{tags}:{},...wikiFreshnessBody(input)}}},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\
146
- \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
205
+ takesValue:false},{name:"--clear-evidence-tasks",summary:"\u6839\u62E0\u30BF\u30B9\u30AF\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},{name:"--clear-kind",summary:"\u7A2E\u5225\u3092\u672A\u8A2D\u5B9A\u306B\u623B\u3059",takesValue:false},{name:"--if-version",summary:"\u4E00\u81F4\u3059\u308B\u3068\u304D\u3060\u3051\u66F4\u65B0\u3059\u308B\u7248\uFF08\u9001\u308B\u524D\u3068\u3001\u5BFE\u5FDC\u30B5\u30FC\u30D0\u3067\u306F\u66F8\u304D\u8FBC\u307F\u6642\u306B\u3082\u7167\u5408\u3057\u3001\u9055\u3048\u3070\u4F55\u3082\u5909\u3048\u306A\u3044\uFF09",
206
+ 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 contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const tags=wikiTags(input);positiveInteger(input.flags,"--if-version");const freshness=wikiFreshnessBody(input);const content=await wikiContent(input,WIKI_UPDATE_USAGE);if(title===void 0&&status===void 0&&tags===void 0&&
207
+ content===void 0&&contentFormat===void 0&&Object.keys(freshness).length===0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",`--title / --content-file / --content-format / --status / --tag / --clear-tags / --verified-at / --evidence-task / --kind\uFF08\u3068\u5404 --clear-*\uFF09\u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
208
+ ${WIKI_UPDATE_USAGE}`)}return content===void 0?input:withResolved(input,{content})},preview:previewWikiUpdate,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"];const contentFormat=oneOf(input,"--content-format",WIKI_CONTENT_FORMATS);const expectedVersion=positiveInteger(input.flags,"--if-version");return{method:"\
209
+ PUT",path:`${WIKI_PATH}/${encodeURIComponent(id)}`,body:{...title!==void 0?{title}:{},...content!==void 0?{content}:{},...contentFormat!==void 0?{content_format:contentFormat}:{},...status!==void 0?{status}:{},...tags!==void 0?{tags}:{},...expectedVersion!==void 0?{expected_version:expectedVersion}:{},...wikiFreshnessBody(input)}}},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`,
210
+ 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
147
211
  --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\
148
212
  \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}`,
149
213
  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};
@@ -195,5 +259,5 @@ ine"]],["\u72B6\u614B",status]])}`]}).join("\n")}function attendeeNames(value,ke
195
259
 
196
260
  --output table / tsv \u306F\u8981\u7D04\u5217\uFF08${MEETING_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
197
261
  \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",
198
- MEETING_LABEL),document:meetingDocument};var wikiDomain={name:"wiki",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u30FB\u69CB\u9020\u30FB\u30BF\u30B0\u30FB\u7248\u306E\u5C65\u6B74\u3068\u5DEE\u5206\u30FB\u88AB\u30EA\u30F3\u30AF\u30FB\u95A2\u9023\u30BF\u30B9\u30AF\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u79FB\u52D5\u30FB\u524A\u9664\uFF09",operations:[wikiList,wikiGet,wikiTree,wikiTagList,wikiVersions,wikiVersion,wikiDiff,wikiBacklinks,wikiLinkedTasks,
199
- 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:"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};
262
+ MEETING_LABEL),document:meetingDocument};var wikiDomain={name:"wiki",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u30FB\u69CB\u9020\u30FB\u30BF\u30B0\u30FB\u7248\u306E\u5C65\u6B74\u3068\u5DEE\u5206\u30FB\u88AB\u30EA\u30F3\u30AF\u30FB\u95A2\u9023\u30BF\u30B9\u30AF\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u79FB\u52D5\u30FB\u524A\u9664\uFF09",operations:[wikiList,wikiGet,wikiTree,wikiTagList,wikiDigest,wikiVersions,wikiVersion,wikiDiff,wikiBacklinks,
263
+ wikiLinkedTasks,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:"meeting",summary:"\u8B70\u4E8B\u9332\uFF08\u671F\u9593\u3067\u306E\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\uFF09",operations:[meetingList,meetingGet]};export{digestSummary,fitDigest,meetingDomain,noteDomain,resolveWikiPath,wikiDomain};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-A3FJEUDB.js";import"./chunk-ARB4QFWO.js";import"./chunk-K4JE26L6.js";import"./chunk-BBOWZVCC.js";import{USER_REF_FLAG,USER_REF_HELP,assertMonthsOpen,userPath}from"./chunk-DAXVAUV4.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";
4
- import"./chunk-MVZFZAT4.js";import{UUID_RE}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";
3
+ import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-D37WSWBT.js";import"./chunk-7SYIYLHX.js";import"./chunk-5P22UEUF.js";import"./chunk-MNJYY3PR.js";import{USER_REF_FLAG,USER_REF_HELP,assertMonthsOpen,userPath}from"./chunk-2YVJ3QVJ.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-FHOJFKR3.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";
4
+ import"./chunk-4B6GJBYP.js";import{UUID_RE}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";
5
5
  import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
6
6
  args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
7
7
  return body}function grantsBody(body){if(!isRecord(body)||!Array.isArray(body["grants"])){throw new ApiResponseError("\u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\u306E\u5FDC\u7B54\u306B grants \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function listBody(body){const combined=isRecord(body)?body:{};return{summary:summaryBody(combined["summary"]),usages:usagesBody(combined["usages"])}}async function list(input,ctx){
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-VIWQMDGG.js";import"./chunk-QLENN5DD.js";import{positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,
4
- withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LICENSE_FEATURE_NAMES={content_management:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406",inquiry:"\u554F\u3044\u5408\u308F\u305B\u7BA1\u7406",workflow:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",hearing:"\u30D2\u30A2\u30EA\u30F3\u30B0",task_management:"\u30BF\u30B9\u30AF\u7BA1\u7406",sales:"\u53D6\u5F15\u7BA1\u7406",attendance:"\u52E4\u6020\u7BA1\u7406",report:"\u30EC\u30DD\u30FC\u30C8",hr_management:"\u4EBA\u6750\u7BA1\u7406",learning:"\u5B66\u7FD2\u7BA1\u7406",expense:"\u7D4C\u8CBB\u7BA1\u7406",test:"\
3
+ import{CONCURRENCY,DEFAULT_INACTIVE_DAYS,LOGIN_HISTORY_RETENTION_DAYS,daysBetween,lastLogin,lastLoginText,mapPool,pacedSender,primaryAssignment,recentlyHired,spreadsheetSafe,userDetail}from"./chunk-DYNNGNXR.js";import"./chunk-QLENN5DD.js";import{positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-4B6GJBYP.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";
4
+ import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LICENSE_FEATURE_NAMES={content_management:"\u30B3\u30F3\u30C6\u30F3\u30C4\u7BA1\u7406",inquiry:"\u554F\u3044\u5408\u308F\u305B\u7BA1\u7406",workflow:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",hearing:"\u30D2\u30A2\u30EA\u30F3\u30B0",task_management:"\u30BF\u30B9\u30AF\u7BA1\u7406",sales:"\u53D6\u5F15\u7BA1\u7406",attendance:"\u52E4\u6020\u7BA1\u7406",report:"\u30EC\u30DD\u30FC\u30C8",hr_management:"\u4EBA\u6750\u7BA1\u7406",learning:"\u5B66\u7FD2\u7BA1\u7406",expense:"\u7D4C\u8CBB\u7BA1\u7406",test:"\
5
5
  \u30B7\u30CA\u30EA\u30AA\u30C6\u30B9\u30C8\u7BA1\u7406",chat:"\u30C1\u30E3\u30C3\u30C8",customer:"\u9867\u5BA2\u7BA1\u7406",survey:"\u30A2\u30F3\u30B1\u30FC\u30C8",organization_survey:"\u7D44\u7E54\u30B5\u30FC\u30D9\u30A4",feedback:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF",notes:"\u30CE\u30FC\u30C8",wiki_management:"Wiki",meeting_minutes:"\u8B70\u4E8B\u9332",equipment_management:"\u5099\u54C1\u7BA1\u7406",floor_map:"\u30D5\u30ED\u30A2\u30DE\u30C3\u30D7"};var LICENSES_PATH="/api/v2/licenses";var FORBIDDEN="\
6
6
  \u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp license \u306F\u30C6\u30CA\u30F3\u30C8\u306E\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";var LIST_USAGE="twp license list";var ASSIGNMENTS_USAGE="twp license assignments <\u6A5F\u80FD\u30B3\u30FC\u30C9|\u6A5F\u80FD\u540D> | --all-features [--inactive-days <\u65E5\u6570>]";var ASSIGNMENTS_HELP="twp license assignments help";var RELEASE_COMMAND_PENDING="twp user permission set \u306F\u4ECA\u5F8C\u306E\u7248\
7
7
  \u3067\u8FFD\u52A0\u3055\u308C\u308B\u30B3\u30DE\u30F3\u30C9\u3067\u3059\u3002\u307E\u3060\u7121\u3044\u7248\u3067\u306F";var DEPARTMENT_LIMIT=1e3;function featureName(code){return LICENSE_FEATURE_NAMES[code]??code}function featureSegment(code){if(!/^[a-z][a-z0-9_]*$/.test(code)){throw new ApiResponseError(`\u6A5F\u80FD\u30B3\u30FC\u30C9\u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${code}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return code}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{defaultIsLoopProcess,readLockOwner,sameTwpHome}from"./chunk-3WHC4FSG.js";import{LEGACY_STATE_DIR_NAME,STATE_DIR_NAME,loopStateDir}from"./chunk-CCHPF23L.js";import"./chunk-XMPHGOW4.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";
3
+ import{defaultIsLoopProcess,readLockOwner,sameTwpHome}from"./chunk-3WHC4FSG.js";import{LEGACY_STATE_DIR_NAME,STATE_DIR_NAME,loopStateDir}from"./chunk-GAXJPIKO.js";import"./chunk-VYDPW2YO.js";import"./chunk-FABDZBDZ.js";import"./chunk-XMPHGOW4.js";import"./chunk-TTST7UDR.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";
4
4
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import os from"os";import path from"path";var PIDLESS_GRACE_MS=6e4;function defaultStateDirs(env){const home=os.homedir();const dirs=[loopStateDir(env),path.join(home,STATE_DIR_NAME),path.join(home,LEGACY_STATE_DIR_NAME)].map(d=>path.resolve(d));return[...new Set(dirs)]}function readPidFile(lockDir){try{const raw=fs.readFileSync(path.join(lockDir,"pid"),"utf8").split("\n")[0]?.trim()??"";const n=Number.parseInt(raw,10);return{pid:Number.isInteger(n)&&n>0?n:null,error:null}}catch(err){const code=err.code;return{pid:null,error:code==="ENO\
5
5
  ENT"?null:code??err.message}}}function findLoopsUsingProfile(profileName,deps={}){const env=deps.env??process.env;const now=deps.now??Date.now;const isLoopProcess=deps.isLoopProcess??defaultIsLoopProcess;const myHome=twpHomeDir(env);const result={users:[],undetermined:[]};for(const stateDir of deps.stateDirs??defaultStateDirs(env)){let dirs;try{dirs=fs.readdirSync(stateDir).filter(d=>/^task-loop-.*\.lock\.d$/.test(d))}catch(err){if(err.code==="ENOENT")continue;result.undetermined.push({pid:null,
6
6
  lockDir:stateDir,reason:`\u30ED\u30C3\u30AF\u306E\u7F6E\u304D\u5834\u6240\u3092\u8AAD\u3081\u307E\u305B\u3093\uFF08${err.code??err.message}\uFF09`});continue}for(const dir of dirs){const lockDir=path.join(stateDir,dir);const pidFile=readPidFile(lockDir);if(pidFile.error!==null){result.undetermined.push({pid:null,lockDir,reason:`pid \u3092\u8AAD\u3081\u307E\u305B\u3093\uFF08${pidFile.error}\uFF09`});continue}const owner=readLockOwner(lockDir);let pid=pidFile.pid;if(pid===null){if(owner.ok){pid=owner.