@tocca-systems/twp-cli 0.49.0 → 0.51.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 (123) hide show
  1. package/CHANGELOG.public.md +26 -0
  2. package/README.md +223 -7
  3. package/dist/agent-LHNDQMT5.js +100 -0
  4. package/dist/{agent-loop-XKH5YE6A.js → agent-loop-QP6UHX4R.js} +2 -2
  5. package/dist/{ai-dispatch-FGVNSM6L.js → ai-dispatch-VDNMECKK.js} +2 -2
  6. package/dist/analysis-RFO4E4ZS.js +4 -0
  7. package/dist/announcement-HQ7CQYFI.js +52 -0
  8. package/dist/{api-command-IBK6R4XU.js → api-command-ZZFN3T2G.js} +5 -16
  9. package/dist/{app-7I767FND.js → app-WX4B5MQ3.js} +5 -5
  10. package/dist/{attendance-correct-M6KD6PSN.js → attendance-correct-CRRR4EKL.js} +3 -3
  11. package/dist/{attendance-lists-3T7S7QF5.js → attendance-lists-XPCU25OJ.js} +2 -1
  12. package/dist/{auto-update-PS5HUWVH.js → auto-update-YMI3F44R.js} +1 -1
  13. package/dist/{auto-update-worker-ZKODJ45K.js → auto-update-worker-VG77U4UA.js} +2 -2
  14. package/dist/{backlog-IXUASOE3.js → backlog-NU5HHXN2.js} +2 -2
  15. package/dist/{budget-EJIZFFB7.js → budget-AM7JJ5YP.js} +2 -2
  16. package/dist/{charter-command-2RIS2VTQ.js → charter-command-LIX2JXRJ.js} +1 -1
  17. package/dist/{chunk-SPGS7DHD.js → chunk-22OIKHMN.js} +1 -1
  18. package/dist/{chunk-4QKACT6A.js → chunk-2NP3BLPI.js} +2 -2
  19. package/dist/chunk-3744RCNM.js +58 -0
  20. package/dist/{chunk-VTQAI52S.js → chunk-3ZRMMBP5.js} +1 -1
  21. package/dist/{chunk-6QOT7CHX.js → chunk-5WTFZJT7.js} +1 -1
  22. package/dist/chunk-6A2JSS76.js +4 -0
  23. package/dist/{chunk-5YXEGJU7.js → chunk-6JB4MSDX.js} +2 -2
  24. package/dist/{chunk-ORUDW52G.js → chunk-6LSQCOCJ.js} +1 -1
  25. package/dist/{chunk-BSEPVMVA.js → chunk-74WGU5BM.js} +2 -2
  26. package/dist/{chunk-LKS7GANP.js → chunk-7GJFKKOJ.js} +3 -2
  27. package/dist/{chunk-AJO4O5ZF.js → chunk-A4LFG7MW.js} +1 -1
  28. package/dist/{chunk-QHNZUMRK.js → chunk-AKLQMTMW.js} +61 -27
  29. package/dist/{chunk-QYWYZG73.js → chunk-B6WIFZF2.js} +2 -2
  30. package/dist/chunk-DBCF4H3V.js +141 -0
  31. package/dist/{chunk-4B3T4UE7.js → chunk-EXT4AIDF.js} +1 -1
  32. package/dist/{chunk-74SXPFUT.js → chunk-F53TSCRD.js} +1 -1
  33. package/dist/{chunk-AC6G5UPA.js → chunk-FACNRXN7.js} +2 -2
  34. package/dist/{chunk-BS2ACFJA.js → chunk-FEJDU42E.js} +43 -34
  35. package/dist/{chunk-ATYA6DG5.js → chunk-GFLGXGWE.js} +1 -1
  36. package/dist/{chunk-IF2K4PM5.js → chunk-JA5A6UJ2.js} +6 -4
  37. package/dist/{chunk-36TEJJ5S.js → chunk-LXGYOKDY.js} +3 -3
  38. package/dist/{chunk-IOGMOXYF.js → chunk-MI6HVYR2.js} +1 -1
  39. package/dist/{chunk-HJPIGVGD.js → chunk-MKQDUQQ2.js} +1 -1
  40. package/dist/{chunk-VWNFYFLA.js → chunk-NGY4K5VW.js} +1 -1
  41. package/dist/{chunk-YM7TKMNO.js → chunk-NWI2TBO6.js} +1 -1
  42. package/dist/{chunk-XDHLO54T.js → chunk-OTIR4GES.js} +1 -1
  43. package/dist/chunk-PFY5QJKO.js +10 -0
  44. package/dist/{chunk-LXIAOCUW.js → chunk-PS5QFKHB.js} +1 -1
  45. package/dist/{chunk-3HH5IYNO.js → chunk-QBGEYQ2I.js} +1 -1
  46. package/dist/{chunk-OHXZO5WK.js → chunk-QLENN5DD.js} +1 -1
  47. package/dist/chunk-QSXS5SB2.js +33 -0
  48. package/dist/{chunk-LNZTJI64.js → chunk-RQEX2WC5.js} +1 -1
  49. package/dist/{chunk-F7K37QG6.js → chunk-RX5HWI4L.js} +1 -1
  50. package/dist/{chunk-6KB2R3S2.js → chunk-S36LGDG2.js} +2 -2
  51. package/dist/{chunk-3AD2T6L2.js → chunk-SDNASQZL.js} +1 -1
  52. package/dist/{chunk-TKGVAWGU.js → chunk-TVODNAPX.js} +1 -1
  53. package/dist/{chunk-2YNZ4MRT.js → chunk-V64CGX7V.js} +1 -1
  54. package/dist/{chunk-UFND7FBC.js → chunk-VFPY2A23.js} +2 -2
  55. package/dist/{chunk-HNUBM24L.js → chunk-VOMCTG6N.js} +1 -1
  56. package/dist/chunk-WVCEKC7V.js +14 -0
  57. package/dist/{chunk-QICH2OOI.js → chunk-XWJVDNYE.js} +1 -1
  58. package/dist/{chunk-6WNPHORR.js → chunk-XZU53BUV.js} +2 -2
  59. package/dist/{chunk-H3WYVFTS.js → chunk-YJZT3UD3.js} +1 -1
  60. package/dist/{chunk-FC2SFCKD.js → chunk-Z4UT367H.js} +19 -18
  61. package/dist/{chunk-5ALOH2TR.js → chunk-ZVEMJWRR.js} +1 -1
  62. package/dist/cli.js +163 -10
  63. package/dist/{commands-DJIQE34F.js → commands-BXU44JWS.js} +8 -8
  64. package/dist/{commands-UMKI65IW.js → commands-TYUK7MV4.js} +3 -3
  65. package/dist/{company-VCPUUYVV.js → company-BKULUHIU.js} +3 -3
  66. package/dist/{completion-XFXG7RPT.js → completion-RWWCIR6G.js} +1 -1
  67. package/dist/{configure-XH33RB27.js → configure-QU6JK65I.js} +1 -1
  68. package/dist/{contract-SMIPLH7R.js → contract-376FE7VC.js} +3 -3
  69. package/dist/{department-4RCU4E27.js → department-YKBPBPU6.js} +2 -2
  70. package/dist/deposit-CY5K3ZTM.js +4 -0
  71. package/dist/{estimate-HE5H6XXY.js → estimate-GPNG6YOJ.js} +4 -4
  72. package/dist/evaluation-VRLMQV32.js +61 -0
  73. package/dist/expense-3MT6WHTG.js +75 -0
  74. package/dist/{inquiry-SCPVERFM.js → inquiry-YV433Q7V.js} +2 -2
  75. package/dist/{invoice-CF2TPYSA.js → invoice-OSAO4PIO.js} +3 -3
  76. package/dist/{job-title-W2EKNKTY.js → job-title-FITZHBR4.js} +1 -1
  77. package/dist/{knowledge-ZZEHU744.js → knowledge-YEEAKLQJ.js} +2 -32
  78. package/dist/{leave-5VY2IK7K.js → leave-MWYAL66X.js} +3 -2
  79. package/dist/{media-4MASY32I.js → media-VQ74YPWV.js} +110 -30
  80. package/dist/{notification-AOSKQX3Z.js → notification-EAEKDN54.js} +2 -2
  81. package/dist/{onedrive-3OBI4B5Z.js → onedrive-UBSHXVYS.js} +1 -1
  82. package/dist/{oneshot-Y4A2ZC3E.js → oneshot-62DOJWOH.js} +2 -2
  83. package/dist/{outlook-LY6WBXIJ.js → outlook-ODZD27J5.js} +2 -2
  84. package/dist/{position-TPKLP2SP.js → position-ZKYGVAAK.js} +1 -1
  85. package/dist/project-5MHCPDVC.js +4 -0
  86. package/dist/{prospect-3ALNTGPY.js → prospect-ASQA5QVD.js} +3 -3
  87. package/dist/{purchase-SEHUEXE5.js → purchase-WLJJSMM6.js} +4 -4
  88. package/dist/query-XEOVFI4D.js +3 -0
  89. package/dist/receivable-FBPROHOV.js +4 -0
  90. package/dist/{registry-BA7RGQ2R.js → registry-HEGYZVX6.js} +1 -1
  91. package/dist/{report-RV7DOZFB.js → report-HK2NZXHC.js} +2 -2
  92. package/dist/run-HYQQIOVW.js +4 -0
  93. package/dist/sales-ai-review-IEISLBIH.js +4 -0
  94. package/dist/{sales-master-RC77V74V.js → sales-master-S3YTUE7J.js} +3 -3
  95. package/dist/sales-numbering-M4KUZAM7.js +4 -0
  96. package/dist/{server-skills-Z5DGCJQ7.js → server-skills-IXIOOOC2.js} +1 -1
  97. package/dist/skill-45FBIGC5.js +4 -0
  98. package/dist/{skill-command-74MCUHFJ.js → skill-command-NXHTJXYY.js} +1 -1
  99. package/dist/{storage-KLLBENBY.js → storage-AQDCEBDJ.js} +1 -1
  100. package/dist/{supplier-payment-OCAK6N3S.js → supplier-payment-MS6YMIT4.js} +3 -3
  101. package/dist/support-VSDMFUTY.js +53 -0
  102. package/dist/{task-7QESG57Q.js → task-BTYFJRSC.js} +4 -4
  103. package/dist/{teams-DRHXPLWN.js → teams-GPXJPXNC.js} +2 -2
  104. package/dist/update-NCAVUXSX.js +3 -0
  105. package/dist/{user-67X5FJTN.js → user-VFJGLZDR.js} +23 -6
  106. package/dist/worker-agent-YX2KPVQG.js +150 -0
  107. package/dist/workflow-OPZYCSDL.js +4 -0
  108. package/package.json +1 -1
  109. package/dist/analysis-NCD6YTJM.js +0 -4
  110. package/dist/chunk-67JAB5QG.js +0 -4
  111. package/dist/chunk-IXFMXUNT.js +0 -5
  112. package/dist/chunk-QOUDJ7XO.js +0 -47
  113. package/dist/chunk-ZVJXYKRY.js +0 -9
  114. package/dist/deposit-UF7OKRG2.js +0 -4
  115. package/dist/project-JFZCKGYY.js +0 -4
  116. package/dist/query-3ZQP4DCN.js +0 -3
  117. package/dist/receivable-QYSSI7TB.js +0 -4
  118. package/dist/run-ZXMGPUUK.js +0 -4
  119. package/dist/sales-ai-review-AXZKRXKB.js +0 -4
  120. package/dist/sales-numbering-WU5FAPCO.js +0 -4
  121. package/dist/update-EYFT7STE.js +0 -3
  122. package/dist/worker-agent-MKXRTVBM.js +0 -81
  123. package/dist/workflow-KHNGCPQB.js +0 -4
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","goal-sheet","inquiry","invoice","job-title","leave","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable","report","rounding-setting","seal-impression","shift","skill","storage","supplier-pa\
4
+ yment","support","task","teams","user","wiki","workchange","worker-agent","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-BSEPVMVA.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-4QKACT6A.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-HJPIGVGD.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-BS2ACFJA.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";
4
- import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
3
+ import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-74WGU5BM.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-2NP3BLPI.js";import{inspectLocalFile}from"./chunk-VOMCTG6N.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MKQDUQQ2.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-FEJDU42E.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
+ import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
5
5
  {kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","estimate_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=[
6
6
  "version_number","file_name","file_size","is_current","created_by_name","created_at"];var ESTIMATE_FLAG={name:"--estimate",summary:"\u898B\u7A4D\u306E ID\uFF08twp estimate list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u898B\u7A4DID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\
7
7
  \u30D1\u30B9>"};var REF_HELP="--estimate\uFF08\u898B\u7A4D\u306E ID\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002<\u66F8\u985EID> \u306F twp estimate case-document list \u306E document_id \u5217\u306E\u5024\u3067\u3059\u3002\n\u9867\u5BA2\u3092\u307E\u305F\u3044\u3060\u4E00\u89A7\u306F twp customer case-document list --customer <\u9867\u5BA2> \u3067\u898B\u3089\u308C\u307E\u3059\u3002";var VIEW_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u6848\u4EF6\u66F8\u985E\u3092\u898B\u308B\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059`,`\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
3
+ import{UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059`,`\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
4
4
  push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8")}function charCount(text){return[...text].length}async function readBody(input,spec){const inline=input.flags.get(spec.flag);const file=input.flags.get(spec.fileFlag);if(inline!==void 0&&file!==void 0){throw new UsageError(`${spec.label}\u304C ${spec.flag} \u3068 ${spec.fileFlag} \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,`\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${spec.
5
5
  fileFlag} - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\uFF09\u3002`)}if(inline===void 0&&file===void 0)return void 0;const text=inline??await readFrom(file,spec);const stripped=text.startsWith(BOM)?text.slice(BOM.length):text;if(stripped.trim()===""){throw new UsageError(`${spec.label}\u304C\u7A7A\u3067\u3059\uFF08${inline!==void 0?spec.flag:`${spec.fileFlag} ${file}`}\uFF09`,spec.usage)}const count=charCount(stripped);if(count>spec.maxChars){throw new UsageError(`${spec.
6
6
  label}\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${spec.maxChars} \u6587\u5B57\uFF09`,"\u5206\u5272\u3057\u3066\u6295\u7A3F\u3059\u308B\u304B\u3001\u8A73\u7D30\u306F\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return stripped}async function readFrom(file,spec){if(file==="-")return readStdin(spec);try{const stat=fs.statSync(file);if(!stat.isFile()){throw new UsageError(`${spec.label}\u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-4QKACT6A.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-HJPIGVGD.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{booleanText}from"./chunk-XDHLO54T.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-BS2ACFJA.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{
4
- ApiError}from"./chunk-IF2K4PM5.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
3
+ import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-2NP3BLPI.js";import{inspectLocalFile}from"./chunk-VOMCTG6N.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MKQDUQQ2.js";import{booleanText}from"./chunk-OTIR4GES.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-FEJDU42E.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";
4
+ import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
5
5
  document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
6
6
  urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={
7
7
  name:"--force",summary:"\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308C\u3070\u4E0A\u66F8\u304D\u3059\u308B\uFF08\u65E2\u5B9A\u3067\u306F\u4E0A\u66F8\u304D\u3057\u306A\u3044\uFF09",takesValue:false};var REV_FLAG={name:"--rev",summary:"\u53D6\u308A\u51FA\u3059\u7248\u306E\u756A\u53F7\uFF08\u7701\u7565\u6642\u306F\u73FE\u884C\u7248\u3002get \u306E versions \u306E version_number\uFF09",takesValue:true,placeholder:"<\u7248\u756A\u53F7>"};var CONTRACT_REF_HELP="--customer\uFF08\u9867\u5BA2\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002<\u66F8\u985EID>\
@@ -1,7 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{redactSecretValues,redactSecrets}from"./chunk-AUAZP2G7.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{DEFAULT_MAX_TOKENS,emptyUsage}from"./chunk-6QOT7CHX.js";import{isPrivateTwpHome,isTrustworthyCacheFile,writePrivateFileAtomic}from"./chunk-D233KKXW.js";
4
- import{AuthSession,NotLoggedInError,SessionExpiredError,withFileLock}from"./chunk-XNLIEUAW.js";import{MODES,applyPermissionMode,checkPermission,isModeId,setActiveModes}from"./chunk-NAUH75MM.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{configReadDirs,ensureTwpHome,twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs2 from"fs";import path3 from"path";import os2 from"os";import{realpathSync}from"fs";import{homedir}from"os";import{dirname,isAbsolute,relative,resolve,sep}from"path";var PathDeniedError=class extends Error{constructor(message){super(message);this.name="PathDeniedError"}};function resolveToolPath(input,cwd,home=homedir()){if(typeof input!=="string"||input.trim()===""){throw new PathDeniedError("path must be a non-empty string")}const expanded=expandHome(input,home);const abs=isAbsolute(expanded)?resolve(expanded):resolve(cwd,expanded);const root=realOrSelf(resolve(cwd));assertInside(abs,resolve(cwd),abs);assertNotSecret(abs,home);const real=realOrSelf(abs);if(real!==
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{redactSecretValues,redactSecrets}from"./chunk-AUAZP2G7.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_TOKENS,emptyUsage}from"./chunk-5WTFZJT7.js";
4
+ import{isPrivateTwpHome,isTrustworthyCacheFile,writePrivateFileAtomic}from"./chunk-D233KKXW.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{AuthSession,NotLoggedInError,SessionExpiredError,withFileLock}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{configReadDirs,ensureTwpHome,twpHomeDir}from"./chunk-RZVI6PMW.js";import{MODES,applyPermissionMode,checkPermission,isModeId,setActiveModes}from"./chunk-NAUH75MM.js";
5
+ import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs2 from"fs";import path3 from"path";import os2 from"os";import{realpathSync}from"fs";import{homedir}from"os";import{dirname,isAbsolute,relative,resolve,sep}from"path";var PathDeniedError=class extends Error{constructor(message){super(message);this.name="PathDeniedError"}};function resolveToolPath(input,cwd,home=homedir()){if(typeof input!=="string"||input.trim()===""){throw new PathDeniedError("path must be a non-empty string")}const expanded=expandHome(input,home);const abs=isAbsolute(expanded)?resolve(expanded):resolve(cwd,expanded);const root=realOrSelf(resolve(cwd));assertInside(abs,resolve(cwd),abs);assertNotSecret(abs,home);const real=realOrSelf(abs);if(real!==
5
6
  abs){assertInside(real,root,abs);assertNotSecret(real,home)}return abs}function realToolPath(input,cwd,home=homedir()){return realOrSelf(resolveToolPath(input,cwd,home))}function assertInside(target,root,reported){const rel=relative(root,target);const outside=rel===".."||rel.startsWith(`..${sep}`)||isAbsolute(rel);if(outside){throw new PathDeniedError(`path escapes the working directory (${reported}). Only paths under ${root} can be accessed.`)}}function realOrSelf(target){let current=target;const rest=[];
6
7
  for(;;){try{const real=realpathSync(current);return rest.length===0?real:resolve(real,...rest.reverse())}catch{const parent=dirname(current);if(parent===current)return target;rest.push(current.slice(parent.length+1));current=parent}}}function assertNotSecret(absPath,home=homedir(),env=process.env){const reason=secretReason(absPath,home,env);if(reason!==null)throw new PathDeniedError(`refusing to access ${absPath}: ${reason}`)}function secretReason(absPath,_home=homedir(),env=process.env){const lower=absPath.
7
8
  toLowerCase();const segments=lower.split(sep);const base=segments[segments.length-1]??"";const parent=segments[segments.length-2]??"";if(base===".env"||base.startsWith(".env."))return".env files are denied (design \xA77)";if(segments.includes(".ssh"))return"SSH key material is denied (design \xA77)";if(parent===".git"&&base==="config"){return".git/config is denied (it can hold a GitHub token in the remote URL)"}if(base===".netrc"||base==="_netrc"||base===".npmrc")return"credential files are deni\
@@ -1,6 +1,6 @@
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{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH}from"./chunk-UFND7FBC.js";import*as fs from"fs";function readUtf8Strict(p){return new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(fs.readFileSync(p))}function apiExit(res){if(res.status===401)return EXIT_AUTH;if(res.status!==null&&res.status>=400&&res.status<500)return EXIT_API_CLIENT;return EXIT_API_SERVER}function pickNumber(b,key){const v=b[key];return typeof v==="number"&&Number.isInteger(v)&&v>=0?v:null}function str(v){return typeof v==="string"?v:""}function currentRevisionOf(res){const json=res.json??{};const data=json["dat\
3
+ import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH}from"./chunk-VFPY2A23.js";import*as fs from"fs";function readUtf8Strict(p){return new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(fs.readFileSync(p))}function apiExit(res){if(res.status===401)return EXIT_AUTH;if(res.status!==null&&res.status>=400&&res.status<500)return EXIT_API_CLIENT;return EXIT_API_SERVER}function pickNumber(b,key){const v=b[key];return typeof v==="number"&&Number.isInteger(v)&&v>=0?v:null}function str(v){return typeof v==="string"?v:""}function currentRevisionOf(res){const json=res.json??{};const data=json["dat\
4
4
  a"]&&typeof json["data"]==="object"?json["data"]:{};return pickNumber(json,"current_revision")??pickNumber(data,"current_revision")}function errorDetail(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const json=res.json??{};const data=json["data"]&&typeof json["data"]==="object"?json["data"]:{};const errorField=json["error"];const errorObj=errorField&&typeof errorField==="object"?errorField:{};const reason=(typeof errorField==="string"?errorField:"")||str(
5
5
  errorObj["code"])||str(json["reason"])||str(data["reason"]);const message=str(json["error_description"])||str(errorObj["message"])||str(json["message"])||str(data["message"]);const parts=[`http=${res.status}`];if(reason)parts.push(`reason=${reason}`);if(message)parts.push(message.slice(0,300));const errors=json["errors"]??data["errors"]??json["error_list"];if(errors&&typeof errors==="object")parts.push(JSON.stringify(errors).slice(0,300));if(!reason&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.
6
6
  raw.slice(0,160)}`);return parts.join(" ")}var HIDDEN_CHARS=/[\x00-\x08\x0B-\x1F\x7F-\x9F\u00AD\u061C\u180E\u200B-\u200F\u2028-\u202E\u2060-\u2069\uFEFF\uFFF9-\uFFFB\u{E0000}-\u{E007F}\u{E0100}-\u{E01EF}]/gu;function printDiff(out,fromLabel,toLabel,before,after){const lines=buildDiffLines(before,after);const{added,removed}=diffStat(lines);out(`--- ${fromLabel}
@@ -1,21 +1,54 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readBody}from"./chunk-ORUDW52G.js";import{WORKFLOWS_PATH}from"./chunk-BS2ACFJA.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var WORKFLOW_FLAG={name:"--workflow",summary:"\u7533\u8ACB\u66F8\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u306E\u540D\u524D\u304B ID \u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>"};var CATEGORIES={undefined:"\u6C4E\u7528",paid_holiday:"\u6709\u7D66\u4F11\u6687",substitute_holiday:"\u632F\u66FF\u4F11\u6687",comp_holiday:"\u4EE3\u4F11",absence:"\u6B20\u52E4",special_holiday:"\u7279\u5225\u4F11\u6687",other_leave:"\u305D\u306E\u4ED6\u4F11\u6687\u30FB\u6B20\u52E4",
3
+ import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-LXGYOKDY.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{WORKFLOWS_PATH}from"./chunk-FEJDU42E.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
4
+ pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INSTANCES_PATH=`${WORKFLOWS_PATH}/instances`;var COMMENT_MAX_CHARS=2e3;var IN_FLIGHT=new Set(["pending","processing"]);var GET_USAGE="twp workflow ai-review get <\u7533\u8ACBID>";var UPDATE_USAGE="twp workflow ai-review-comment update <\u6307\u6458ID> --instance <\u7533\u8ACBID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9>)";var DELETE_USAGE="twp workflow ai-review-comment delete <\u6307\u6458ID> --instance <\u7533\u8ACBID> --yes";function instanceUuid(raw,usage,what){const id=raw?.trim()??
5
+ "";if(id==="")throw new UsageError(`\u7533\u8ACBID \u3092${what}\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(!UUID_RE.test(id))throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`${usage}
6
+ \u7533\u8ACBID \u306F twp workflow approval pending \u306E id \u5217\u3067\u3059\u3002`);return id}function workflowReviewPath(instanceId){return`${INSTANCES_PATH}/${encodeURIComponent(instanceId)}/ai-review`}function reviewTarget(input){if(input.args.length>1)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${input.args.slice(1).join(" ")}`,GET_USAGE);return workflowReviewPath(instanceUuid(input.args[0],GET_USAGE,"\u4F4D\u7F6E\u5F15\u6570"))}function commentTarget(input,usage){
7
+ if(input.args.length>1)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${input.args.slice(1).join(" ")}\uFF08\u7533\u8ACB\u306F --instance \u3067\u6E21\u3057\u307E\u3059\uFF09`,usage);const criterion=input.args[0]?.trim()??"";if(criterion==="")throw new UsageError("\u6307\u6458\u306E ID\uFF08criterion_id\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${usage}
8
+ twp workflow ai-review get <\u7533\u8ACBID> \u306E criterion_id \u5217\u306E\u5024\u3067\u3059\u3002`);if(!CRITERION_RE.test(criterion)||/^\.+$/.test(criterion)){throw new UsageError(`\u6307\u6458\u306E ID \u306F\u82F1\u6570\u5B57\u3068 _ . : - \u3060\u3051\u30FB128 \u6587\u5B57\u307E\u3067\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${criterion}`,usage)}const reviewPath=workflowReviewPath(instanceUuid(input.flags.get("--instance"),usage," --instance "));return{reviewPath,commentPath:`${reviewPath}\
9
+ /reasons/${encodeURIComponent(criterion)}/approver-comment`,criterion}}var WHAT="\u7533\u8ACB\u306EAI\u30C1\u30A7\u30C3\u30AF";var CHECK_COLUMNS=["criterion_id","label","severity","acknowledged","reason_judgment","reason","approver_comment","message"];function checkRows(body){const data=envelope(body,WHAT);const reasons=reasonsMap(data);return checksOf(reviewOf(data,WHAT)).map(check=>{const criterion=typeof check["criterion_id"]==="string"?check["criterion_id"]:null;const reason=criterion!==null?
10
+ reasons[criterion]:void 0;const field=key=>isRecord(reason)?reason[key]??null:null;return{...pick(check,["criterion_id","label","severity"]),acknowledged:check["acknowledged"]===true,reason_judgment:field("judgment"),reason:field("reason"),approver_comment:field("approver_comment"),message:check["message"]??null}})}function reviewRaw(body){const data=envelope(body,WHAT);reviewOf(data,WHAT);return withoutResult(data)}function getNotes(body){const data=envelope(body,WHAT);const review=reviewOf(data,
11
+ WHAT);const notes=[];if(review===null){notes.push("\u3053\u306E\u7533\u8ACB\u306B\u306F AI\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u5BFE\u8C61\u306F\u53D6\u5F15\uFF1D\u898B\u7A4D\u30FB\u8ACB\u6C42\u30FB\u53D6\u5F15\u5951\u7D04\u306E\u627F\u8A8D\u7533\u8ACB\u3060\u3051\u3067\u3001\u63D0\u51FA\u6642\u306B\u975E\u540C\u671F\u3067\u4F5C\u3089\u308C\u307E\u3059\uFF09")}else{const status=String(review["status"]);if(IN_FLIGHT.has(status))notes.push(`\u751F\u6210\u4E2D\u3067\u3059\uFF08sta\
12
+ tus=${status}\uFF09\u3002\u6642\u9593\u3092\u7F6E\u3044\u3066\u540C\u3058\u30B3\u30DE\u30F3\u30C9\u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044`);if(status==="failed")notes.push("\u751F\u6210\u306B\u5931\u6557\u3057\u3066\u3044\u307E\u3059\uFF08status=failed\uFF09\u3002\u627F\u8A8D\u753B\u9762\u306B\u3082\u7D50\u679C\u306F\u51FA\u307E\u305B\u3093");if(status==="completed"){if(typeof review["summary"]==="string"&&review["summary"]!=="")notes.push(`\u8981\u7D04: ${review["summary"]}`);const overall=isRecord(
13
+ review["overall"])?review["overall"]:void 0;if(overall!==void 0&&typeof overall["verdict_label"]==="string"){const message=typeof overall["message"]==="string"&&overall["message"]!==""?`\uFF08${overall["message"]}\uFF09`:"";notes.push(`\u7DCF\u5408\u6240\u898B: ${overall["verdict_label"]}${message}`);const recommendations=Array.isArray(overall["recommendations"])?overall["recommendations"]:[];for(const item of recommendations)if(typeof item==="string")notes.push(` \u78BA\u8A8D\u3092\u63A8\u5968\u3059\u308B\u70B9: ${item}`)}
14
+ notes.push(`${checkCounts(review)}\u3002\u751F\u6210\u65E5\u6642 ${String(review["generated_at"]??"\u4E0D\u660E")}`)}}const reasons=Object.values(reasonsMap(data)).filter(isRecord);if(reasons.length>0){const commented=reasons.filter(reason=>typeof reason["approver_comment"]==="string"&&reason["approver_comment"]!=="").length;notes.push(`\u7533\u8ACB\u8005\u306E\u7406\u7531 ${String(reasons.length)} \u4EF6\uFF08\u3046\u3061\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3042\u308A ${String(commented)}\
15
+ \u4EF6\uFF09`)}notes.push("\u6307\u6458\u306E\u672C\u6587\u30FB\u5185\u8A33\uFF08details\uFF09\u30FB\u7406\u7531\u306E\u5168\u6587\u306F --output json \u3067\u51FA\u307E\u3059");return notes}var SUMMARY_CONCURRENCY=4;var NO_SUMMARY={ai_warnings:null,ai_severity:null,ai_verdict:null};function reviewSummary(body){const review=reviewOf(envelope(body,WHAT),WHAT);if(review===null)return{ai_review:"none",...NO_SUMMARY};const status=String(review["status"]);if(status!=="completed")return{ai_review:status,
16
+ ...NO_SUMMARY};const checks=checksOf(review);const warnings=checks.filter(check=>check["severity"]==="warning").length;const overall=isRecord(review["overall"])?review["overall"]:void 0;return{ai_review:status,ai_warnings:warnings,ai_severity:warnings>0?"warning":checks.length>0?"ok":null,ai_verdict:typeof overall?.["verdict"]==="string"?overall["verdict"]:null}}async function withReviewSummaries(rows,ctx){const out=[...rows];let failed=0;let next=0;const worker=async()=>{for(;;){const index=next++;
17
+ if(index>=rows.length)return;const row=rows[index];const id=isRecord(row)&&typeof row["id"]==="string"?row["id"]:void 0;if(!isRecord(row)||id===void 0||!UUID_RE.test(id)){failed+=1;out[index]=isRecord(row)?{...row,ai_review:"unavailable",...NO_SUMMARY}:row;continue}try{out[index]={...row,...reviewSummary(await ctx.send({method:"GET",path:workflowReviewPath(id)}))}}catch{failed+=1;out[index]={...row,ai_review:"unavailable",...NO_SUMMARY}}}};await Promise.all(Array.from({length:Math.min(SUMMARY_CONCURRENCY,
18
+ rows.length)},worker));if(failed>0)ctx.warn(`${String(failed)} \u4EF6\u306E\u7533\u8ACB\u3067 AI\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08ai_review=unavailable\uFF09\u3002twp workflow ai-review get <\u7533\u8ACBID> \u3067\u500B\u5225\u306B\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002`);return out}var INSTANCE_FLAG={name:"--instance",summary:"\u7533\u8ACBID\uFF08UUID\u30FB\u5FC5\u9808\u3002twp workflow approval pending \u306E id \u5217\uFF09",
19
+ takesValue:true,placeholder:"<\u7533\u8ACBID>"};var FORBIDDEN_VIEW="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002AI\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C\u3092\u898B\u3089\u308C\u308B\u306E\u306F\u3001\u305D\u306E\u7533\u8ACB\u3092\u95B2\u89A7\u3067\u304D\u308B\u4EBA\uFF08\u7533\u8ACB\u8005\u30FB\u627F\u8A8D\u8005\u30FB\u95B2\u89A7\u3092\u8A31\u3055\u308C\u305F\u4EBA\uFF09\u3060\u3051\u3067\u3059";var FORBIDDEN_COMMENT="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u66F8\u3051\u308B\u306E\u306F\u3001\u3044\u307E\u3053\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3067\u304D\u308B\u4EBA\uFF08\u305D\u306E\u6BB5\u306E\u627F\u8A8D\u8005\u30FB\u4EE3\u7406\u627F\u8A8D\u3092\u4EFB\u3055\u308C\u305F\u4EBA\uFF09\u3060\u3051\u3067\u3059";
20
+ async function prepareComment(input,ctx){const target=commentTarget(input,UPDATE_USAGE);const text=await readBody(input,{flag:"--text",fileFlag:"--text-file",label:"\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8",maxChars:COMMENT_MAX_CHARS,usage:UPDATE_USAGE});if(text===void 0||text.trim()==="")throw new UsageError("\u30B3\u30E1\u30F3\u30C8\u3092 --text <\u672C\u6587> \u304B --text-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",UPDATE_USAGE);const current=await ctx.resolver.
21
+ salesJson(target.reviewPath,"\u7533\u8ACB\u306EAI\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C");if(!isRecord(reasonsMap(current)[target.criterion])){throw new UsageError(`\u6307\u6458 ${target.criterion} \u306B\u306F\u7533\u8ACB\u8005\u306E\u7406\u7531\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306F\u7533\u8ACB\u8005\u304C\u7406\u7531\u3092\u6DFB\u3048\u305F\u6307\u6458\u306B\u3060\u3051\u66F8\u3051\u307E\u3059`,"twp workflow ai-review get <\u7533\u8ACBID> \u3067 reason_\
22
+ judgment \u304C\u5165\u3063\u3066\u3044\u308B\u884C\u306E criterion_id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return withResolved(input,{text})}function reasonOf(body,what,allowMissing=false){const data=envelope(body,what);const reason=data["reason"];if(reason===null||allowMissing&&reason===void 0)return null;if(!isRecord(reason))throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B reason \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
23
+ return reason}var COMMENT_COLUMNS=["criterion_id","criterion_label","judgment","approver_comment","approver_comment_at"];var workflowAiReviewResources=[{name:"ai-review",summary:"\u7533\u8ACB\u306EAI\u30C1\u30A7\u30C3\u30AF\uFF08\u627F\u8A8D\u753B\u9762\u306E AI\u8981\u7D04\u30FB\u59A5\u5F53\u6027\u30C1\u30A7\u30C3\u30AF\uFF09\u306E\u8868\u793A",operations:[{name:"get",summary:"\u7533\u8ACB\u306E AI\u30C1\u30A7\u30C3\u30AF\u306E\u7D50\u679C\u3068\u3001\u7533\u8ACB\u8005\u306E\u7406\u7531\u30FB\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B",
24
+ usage:GET_USAGE,description:`GET /api/v2/workflows/instances/{id}/ai-review\u3002\u627F\u8A8D\u753B\u9762\u306E\u300CAI\u8981\u7D04\u30FB\u59A5\u5F53\u6027\u30C1\u30A7\u30C3\u30AF\u300D\u3068\u540C\u3058\u4FDD\u5B58\u6E08\u307F\u306E\u7D50\u679C\u3067\u3059\uFF08AI \u306F\u547C\u3073\u307E\u305B\u3093\uFF09\u3002
25
+ \u5BFE\u8C61\u306F\u53D6\u5F15\uFF08\u898B\u7A4D\u30FB\u8ACB\u6C42\u30FB\u53D6\u5F15\u5951\u7D04\uFF09\u306E\u627F\u8A8D\u7533\u8ACB\u3067\u3001\u63D0\u51FA\u6642\u306B\u4F5C\u3089\u308C\u307E\u3059\u3002\u305D\u308C\u4EE5\u5916\u306E\u7533\u8ACB\u3067\u306F\u7D50\u679C\u304C\u7A7A\u3067\u3059\uFF08\u30A8\u30E9\u30FC\u306B\u306F\u306A\u308A\u307E\u305B\u3093\uFF09\u3002
26
+ --output table / text / tsv \u306F\u78BA\u8A8D\u3057\u305F\u89B3\u70B91\u4EF6\uFF1D1\u884C\uFF08${CHECK_COLUMNS.join(" / ")}\uFF09\u3067\u3001severity \u304C warning \u306E\u884C\u304C\u6307\u6458\u3067\u3059\u3002
27
+ reason_judgment / reason \u306F\u7533\u8ACB\u8005\u304C\u6DFB\u3048\u305F\u7406\u7531\u3001approver_comment \u306F\u627F\u8A8D\u8005\u306E\u8FFD\u8A18\u3067\u3059\u3002
28
+ \u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u66F8\u304F\u306E\u306F twp workflow ai-review-comment update <criterion_id> --instance <\u7533\u8ACBID> \u3067\u3059\u3002
29
+ \u7533\u8ACB\u8005\u304C\u81EA\u5206\u3067\u5B9F\u884C\u3059\u308B\u7533\u8ACB\u524D\u30C1\u30A7\u30C3\u30AF\uFF08twp estimate ai-review \u7B49\uFF09\u3068\u306F\u5225\u306E\u7D50\u679C\u3067\u3059\u3002`,flags:[],forbidden:FORBIDDEN_VIEW,plan:input=>({method:"GET",path:reviewTarget(input)}),summarize:checkRows,raw:reviewRaw,notes:getNotes}]},{name:"ai-review-comment",summary:"\u7533\u8ACB\u306EAI\u30C1\u30A7\u30C3\u30AF\u306E\u6307\u6458\u306B\u627F\u8A8D\u8005\u306E\u78BA\u8A8D\u7D50\u679C\u3092\u8FFD\u8A18\u3059\u308B\uFF08\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u53D6\u6D88\uFF09",
30
+ operations:[{name:"update",summary:"\u6307\u64581\u4EF6\u306B\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u66F8\u304F\uFF08\u3042\u308C\u3070\u66F8\u304D\u63DB\u3048\u308B\uFF09",usage:UPDATE_USAGE,description:`PUT /api/v2/workflows/instances/{id}/ai-review/reasons/{criterion_id}/approver-comment\u3002\u627F\u8A8D\u753B\u9762\u306E\u6307\u6458\u306E\u300C\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u300D\u3068\u540C\u3058\u3067\u3059\u3002
31
+ <\u6307\u6458ID> \u306F twp workflow ai-review get <\u7533\u8ACBID> \u306E criterion_id \u5217\u306E\u5024\u3067\u3059\u3002\u7533\u8ACB\u8005\u304C\u7406\u7531\u3092\u6DFB\u3048\u305F\u6307\u6458\u306B\u3060\u3051\u66F8\u3051\u307E\u3059
32
+ \uFF08\u9001\u308B\u524D\u306B\u7D50\u679C\u3092\u8AAD\u3093\u3067\u78BA\u304B\u3081\u307E\u3059\u3002--dry-run \u3067\u3082\u8AAD\u307F\u307E\u3059\uFF09\u3002\u7533\u8ACB\u8005\u306E\u7406\u7531\u305D\u306E\u3082\u306E\u306F\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093\u3002
33
+ \u66F8\u3051\u308B\u306E\u306F\u3001\u3044\u307E\u3053\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3067\u304D\u308B\u4EBA\u3060\u3051\u3067\u3059\u3002\u4E0A\u9650 ${COMMENT_MAX_CHARS.toLocaleString()} \u6587\u5B57\uFF08\u524D\u5F8C\u306E\u7A7A\u767D\u3082\u6570\u3048\u307E\u3059\uFF09\u3002`,flags:[INSTANCE_FLAG,{name:"--text",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u672C\u6587",takesValue:true,placeholder:"<\u672C\u6587>"},{name:"--text-file",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
34
+ takesValue:true,placeholder:"<\u30D1\u30B9>"}],forbidden:FORBIDDEN_COMMENT,prepare:prepareComment,plan:input=>({method:"PUT",path:commentTarget(input,UPDATE_USAGE).commentPath,body:{comment:requireResolved(input,"text")}}),summarize:body=>{const reason=reasonOf(body,"\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306E\u4FDD\u5B58");if(reason===null)throw new ApiResponseError("\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306E\u4FDD\u5B58\u306E\u5FDC\u7B54\u306B reason \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
35
+ return pick(reason,COMMENT_COLUMNS)},raw:body=>reasonOf(body,"\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306E\u4FDD\u5B58")},{name:"delete",summary:"\u6307\u6458\u306B\u66F8\u3044\u305F\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u3092\u53D6\u308A\u6D88\u3059\uFF08--yes \u304C\u8981\u308B\uFF09",usage:DELETE_USAGE,description:"DELETE /api/v2/workflows/instances/{id}/ai-review/reasons/{criterion_id}/approver-comment\u3002\n\u7533\u8ACB\u8005\u306E\u7406\u7531\u306F\u6D88\u3048\u307E\u305B\u3093\u3002\u30B3\u30E1\u30F3\u30C8\u304C\u7121\u3044\u6307\u6458\u3078\u306E\u53D6\u6D88\u3082\u30B5\u30FC\u30D0\u306F\u6210\u529F\u3092\u8FD4\u3057\u307E\u3059\u3002\u53D6\u308A\u6D88\u305B\u308B\u306E\u306F\u3001\u3044\u307E\u3053\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3067\u304D\u308B\u4EBA\u3060\u3051\u3067\u3059\u3002",
36
+ destructive:true,flags:[INSTANCE_FLAG],forbidden:FORBIDDEN_COMMENT,plan:input=>({method:"DELETE",path:commentTarget(input,DELETE_USAGE).commentPath}),summarize:body=>{const reason=reasonOf(body,"\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306E\u53D6\u6D88",true);return reason===null?{result:true}:pick(reason,COMMENT_COLUMNS)},raw:body=>reasonOf(body,"\u627F\u8A8D\u8005\u30B3\u30E1\u30F3\u30C8\u306E\u53D6\u6D88",true)??{result:true}}]}];var WORKFLOW_FLAG={name:"--workflow",summary:"\u7533\u8ACB\u66F8\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u306E\u540D\u524D\u304B ID \u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>"};var CATEGORIES={undefined:"\u6C4E\u7528",paid_holiday:"\u6709\u7D66\u4F11\u6687",substitute_holiday:"\u632F\u66FF\u4F11\u6687",comp_holiday:"\u4EE3\u4F11",absence:"\u6B20\u52E4",special_holiday:"\u7279\u5225\u4F11\u6687",other_leave:"\u305D\u306E\u4ED6\u4F11\u6687\u30FB\u6B20\u52E4",
4
37
  sales:"\u53D6\u5F15",commuting_expenses:"\u901A\u52E4\u4EA4\u901A\u8CBB",cms_publish:"\u30B3\u30F3\u30C6\u30F3\u30C4\u516C\u958B",equipment_lending:"\u5099\u54C1\u8CB8\u51FA",ai_tool_license:"AI\u30C4\u30FC\u30EB\u30E9\u30A4\u30BB\u30F3\u30B9",qualification_bonus:"\u5408\u683C\u304A\u795D\u3044\u91D1"};var CATEGORY_HELP=`\u30AB\u30C6\u30B4\u30EA: ${Object.entries(CATEGORIES).map(([key,label])=>`${key}\uFF08${label}\uFF09`).join(" / ")}`;var WORKFLOW_STATUSES=["active","inactive","draft"];var INSTANCE_STATUSES=[
5
38
  "new","in_progress","approved","rejected","canceled","sent_back"];var INSTANCE_STATUS_HELP="\u72B6\u614B: new\uFF08\u4E0B\u66F8\u304D\uFF09/ in_progress\uFF08\u627F\u8A8D\u5F85\u3061\uFF09/ approved\uFF08\u627F\u8A8D\u6E08\u307F\uFF09/ rejected\uFF08\u5374\u4E0B\uFF09/ canceled\uFF08\u53D6\u6D88\uFF09/ sent_back\uFF08\u5DEE\u3057\u623B\u3057\uFF09";var WORKFLOW_COLUMNS=["id","name","defined_category","status","is_hidden","valid_from","valid_to"];var WORKFLOW_ADMIN_COLUMNS=[...WORKFLOW_COLUMNS,"s\
6
39
  tep_count"];var WORKFLOW_GET_COLUMNS=["id","name","defined_category","status","is_hidden","valid_from","valid_to","description"];var INSTANCE_COLUMNS=["id","title","workflow_name","status","current_step_no","applicant_name","applied_at","completed_at"];var INSTANCE_GET_COLUMNS=["id","title","workflow_id","workflow_name","status","current_step_no","applicant_name","applied_at","completed_at","can_approve","is_editable","is_cancelable"];var PENDING_COLUMNS=["id","title","workflow_name","applicant_\
7
- name","current_step_no","applied_at","delegated_from_user_id"];var INSTANCES_PATH=`${WORKFLOWS_PATH}/instances`;function enumFlag(input,flag,values,help){const raw=nonEmpty(input.flags,flag);if(raw===void 0)return void 0;const value=raw.trim();if(!values.includes(value)){throw new UsageError(`${flag} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,help)}return value}function category(input){return enumFlag(input,"--category",Object.keys(CATEGORIES),CATEGORY_HELP)}function noArgs(input,usage){
8
- if(input.args.length>0){throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function listRows(body,label){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return list}function objectOf(body,key,label){
9
- const value=isRecord(body)?body[key]:void 0;if(!isRecord(value)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function idPath(base,id,label){if(!isSafePathSegment(id)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F${label} ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
10
- return`${base}/${encodeURIComponent(id)}`}async function workflowId(ref,ctx,flag){return UUID_RE.test(ref)?ref:(await ctx.resolver.workflow(ref,flag)).id}function countNote(rows,what){return[`${what}: ${String(rows.length)} \u4EF6`]}var LIST_USAGE="twp workflow list [--status <active|inactive|draft>] [--category <\u30AB\u30C6\u30B4\u30EA>]";var GET_USAGE="twp workflow get <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>";var APPLICABLE_USAGE="twp workflow applicable [--category <\u30AB\u30C6\u30B4\u30EA>]";
11
- var workflowOperations=[{name:"list",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\uFF09\u306E\u5B9A\u7FA9\u3092\u4E00\u89A7\u3059\u308B\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u7BA1\u7406\u8005\uFF09",usage:LIST_USAGE,description:`GET /api/v2/workflows \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u975E\u8868\u793A\u30FB\u7121\u52B9\u3092\u542B\u3080\u30C6\u30CA\u30F3\u30C8\u306E\u5168\u7533\u8ACB\u66F8\uFF09\u3002
40
+ name","current_step_no","applied_at","delegated_from_user_id","ai_review","ai_warnings","ai_severity","ai_verdict"];var INSTANCES_PATH2=`${WORKFLOWS_PATH}/instances`;function enumFlag(input,flag,values,help){const raw=nonEmpty(input.flags,flag);if(raw===void 0)return void 0;const value=raw.trim();if(!values.includes(value)){throw new UsageError(`${flag} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,help)}return value}function category(input){return enumFlag(input,"--categ\
41
+ ory",Object.keys(CATEGORIES),CATEGORY_HELP)}function noArgs(input,usage){if(input.args.length>0){throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function listRows(body,label){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
42
+ return list}function objectOf(body,key,label){const value=isRecord(body)?body[key]:void 0;if(!isRecord(value)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function idPath(base,id,label){if(!isSafePathSegment(id)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F${label} ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\
43
+ \u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return`${base}/${encodeURIComponent(id)}`}async function workflowId(ref,ctx,flag){return UUID_RE.test(ref)?ref:(await ctx.resolver.workflow(ref,flag)).id}function countNote(rows,what){return[`${what}: ${String(rows.length)} \u4EF6`]}var LIST_USAGE="twp workflow list [--status <active|inactive|draft>] [--category <\u30AB\u30C6\u30B4\u30EA>]";var GET_USAGE2="twp workflow get <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>";
44
+ var APPLICABLE_USAGE="twp workflow applicable [--category <\u30AB\u30C6\u30B4\u30EA>]";var workflowOperations=[{name:"list",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\uFF09\u306E\u5B9A\u7FA9\u3092\u4E00\u89A7\u3059\u308B\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u7BA1\u7406\u8005\uFF09",usage:LIST_USAGE,description:`GET /api/v2/workflows \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u975E\u8868\u793A\u30FB\u7121\u52B9\u3092\u542B\u3080\u30C6\u30CA\u30F3\u30C8\u306E\u5168\u7533\u8ACB\u66F8\uFF09\u3002
12
45
  \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u306F twp workflow applicable \u3067\u898B\u3089\u308C\u307E\u3059\u3002
13
46
  ${CATEGORY_HELP}
14
47
  --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u627F\u8A8D\u8005\u30FB\u5BFE\u8C61\u8005\u306E\u6761\u4EF6\u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9 / draft: \u4E0B\u66F8\u304D\uFF09",takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,
15
48
  placeholder:"<\u30AB\u30C6\u30B4\u30EA>"}],plan(input){noArgs(input,LIST_USAGE);return{method:"GET",path:WORKFLOWS_PATH,query:{status:enumFlag(input,"--status",WORKFLOW_STATUSES,"\u72B6\u614B: active\uFF08\u6709\u52B9\uFF09/ inactive\uFF08\u7121\u52B9\uFF09/ draft\uFF08\u4E0B\u66F8\u304D\uFF09"),category:category(input)}}},summarize:body=>listRows(body,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7").map(row=>pick(row,WORKFLOW_ADMIN_COLUMNS)),raw:body=>listRows(body,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7"),
16
49
  notes:body=>countNote(listRows(body,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7"),"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC"),forbidden:"\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u306E\u4E00\u89A7\u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u898B\u3089\u308C\u307E\u3059\u3002\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u306F twp workflow applicable \u3067\u898B\u3089\u308C\u307E\u3059"},
17
- {name:"get",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\uFF091\u4EF6\u306E\u5B9A\u7FA9\u3092\u8868\u793A\u3059\u308B\uFF08\u627F\u8A8D\u306E\u6BB5\u30FB\u5165\u529B\u9805\u76EE\u3092\u542B\u3080\uFF09",usage:GET_USAGE,description:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC> \u306F\u7533\u8ACB\u66F8\u306E\u540D\u524D\u304B ID\uFF08UUID\uFF09\u3067\u3059\u3002\u540D\u524D\u306F\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u304B\u3089\u5B8C\u5168\u4E00\u81F4\u3067\u63A2\u3057\u307E\u3059\n\uFF08\u7533\u8ACB\u3067\u304D\u306A\u3044\u7533\u8ACB\u66F8\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002ID \u306F twp workflow list / instance list \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\u3067\u3001\u627F\u8A8D\u306E\u6BB5\u306E\u6570\u3068\u5165\u529B\u9805\u76EE\u306E\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08steps\u30FBform_definition \
18
- \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",flags:[],async prepare(input,ctx){const ref=singleRef(input,{flag:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",label:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",usage:GET_USAGE});return withResolved(input,{workflowId:await workflowId(ref,ctx,"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>")})},plan:input=>({method:"GET",path:idPath(WORKFLOWS_PATH,requireResolved(input,"workflowId"),"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC")}),summarize:body=>pick(objectOf(
50
+ {name:"get",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\uFF091\u4EF6\u306E\u5B9A\u7FA9\u3092\u8868\u793A\u3059\u308B\uFF08\u627F\u8A8D\u306E\u6BB5\u30FB\u5165\u529B\u9805\u76EE\u3092\u542B\u3080\uFF09",usage:GET_USAGE2,description:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC> \u306F\u7533\u8ACB\u66F8\u306E\u540D\u524D\u304B ID\uFF08UUID\uFF09\u3067\u3059\u3002\u540D\u524D\u306F\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u304B\u3089\u5B8C\u5168\u4E00\u81F4\u3067\u63A2\u3057\u307E\u3059\n\uFF08\u7533\u8ACB\u3067\u304D\u306A\u3044\u7533\u8ACB\u66F8\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002ID \u306F twp workflow list / instance list \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\u3067\u3001\u627F\u8A8D\u306E\u6BB5\u306E\u6570\u3068\u5165\u529B\u9805\u76EE\u306E\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08steps\u30FBform_definition\
51
+ \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",flags:[],async prepare(input,ctx){const ref=singleRef(input,{flag:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",label:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",usage:GET_USAGE2});return withResolved(input,{workflowId:await workflowId(ref,ctx,"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>")})},plan:input=>({method:"GET",path:idPath(WORKFLOWS_PATH,requireResolved(input,"workflowId"),"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC")}),summarize:body=>pick(objectOf(
19
52
  body,"workflow","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u8A73\u7D30"),WORKFLOW_GET_COLUMNS),raw:body=>objectOf(body,"workflow","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u8A73\u7D30"),notes(body){const workflow=objectOf(body,"workflow","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u8A73\u7D30");const steps=Array.isArray(workflow["steps"])?workflow["steps"].length:null;const form=isRecord(workflow["form_definition"])?workflow["form_definition"]["form_column_list"]:void 0;const fields=Array.isArray(form)?form.length:
20
53
  null;return[`\u627F\u8A8D\u306E\u6BB5: ${steps===null?"\u4E0D\u660E":`${String(steps)} \u6BB5`}\u30FB\u5165\u529B\u9805\u76EE: ${fields===null?"\u4E0D\u660E":`${String(fields)} \u9805\u76EE`}\uFF08\u5168\u9805\u76EE\u306F --output json \u306E steps / form_definition\uFF09`]}},{name:"applicable",summary:"\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\uFF09\u3092\u4E00\u89A7\u3059\u308B",usage:APPLICABLE_USAGE,description:`GET /api/v2/w\
21
54
  orkflows/applicable\uFF08--category \u304C\u3042\u308C\u3070 applicable/{category}\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002
@@ -26,14 +59,14 @@ ${CATEGORY_HELP}
26
59
  applicable/${encodeURIComponent(value)}`}},summarize:body=>listRows(body,"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC").map(row=>pick(row,WORKFLOW_COLUMNS)),raw:body=>listRows(body,"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC"),notes:body=>countNote(listRows(body,"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC"),"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC")}];var INSTANCE_LIST_USAGE="twp workflow instance l\
27
60
  ist [--workflow <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>] [--status <\u72B6\u614B>] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]";var INSTANCE_GET_USAGE="twp workflow instance get <\u7533\u8ACBID>";var HISTORY_USAGE="twp workflow instance history [--workflow <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>] [--status <\u72B6\u614B>] [--keyword <\u8A9E>] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]";var instancePaging=envelopePaging({label:"\u7533\u8ACB\u4E00\u89A7"});
28
61
  var historyPaging=envelopePaging({label:"\u627F\u8A8D\u5C65\u6B74"});var STATUS_FLAG={name:"--status",summary:"\u7533\u8ACB\u306E\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u72B6\u614B>"};async function prepareWorkflowFilter(input,ctx){instanceStatus(input);const ref=nonEmpty(input.flags,WORKFLOW_FLAG.name);if(ref===void 0)return input;return withResolved(input,{workflowId:await workflowId(ref.trim(),ctx,WORKFLOW_FLAG.name)})}function instanceStatus(input){return enumFlag(
29
- input,"--status",INSTANCE_STATUSES,INSTANCE_STATUS_HELP)}function workflowFilter(input){return input.flags.has(WORKFLOW_FLAG.name)?requireResolved(input,"workflowId"):void 0}var CONTENT_KEYS=["title","description","form_data"];var CONTENT_MAX_CHARS=1e6;var COMMENT_MAX_CHARS=2e3;var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u7533\u8ACB\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08title / description / form_data\u30FB- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"\
62
+ input,"--status",INSTANCE_STATUSES,INSTANCE_STATUS_HELP)}function workflowFilter(input){return input.flags.has(WORKFLOW_FLAG.name)?requireResolved(input,"workflowId"):void 0}var CONTENT_KEYS=["title","description","form_data"];var CONTENT_MAX_CHARS=1e6;var COMMENT_MAX_CHARS2=2e3;var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u7533\u8ACB\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08title / description / form_data\u30FB- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"\
30
63
  <\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"\u7533\u8ACB\u66F8\u306E\u5165\u529B\u9805\u76EE\u304B\u3089 --content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u7533\u8ACB\u306F\u4F5C\u3089\u306A\u3044\uFF09",takesValue:false};var COMMENT_FLAGS=[{name:"--comment-file",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"\
31
64
  --comment",summary:"\u30B3\u30E1\u30F3\u30C8\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--comment-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"}];var CONTENT_HELP="\u7533\u8ACB\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u6307\u5B9A\u3067\u304D\u308B\u30AD\u30FC\u306F title / description / form_data \u3067\u3059\u3002\n form_data \u306F\u7533\u8ACB\u66F8\u306E\u5165\u529B\u9805\u76EE\u540D \u2192 \u5024\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF08\u9805\u76EE\u540D\u306F twp workflow instance create --generate-cli-skeleton \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002\n \u305D\u308C\u4EE5\u5916\u306E\u30AD\u30FC\u306F\u9001\u308B\u524D\u306B\u30A8\u30E9\u30FC\u306B\u3057\u307E\u3059\uFF08\u66F4\u65B0\u30FB\u63D0\u51FA\u3067\u306F\u30B5\u30FC\u30D0\u304C\u5B9A\u7FA9\u5916\u306E\u30AD\u30FC\u3092\u9ED9\u3063\u3066\u6368\u3066\u308B\u305F\u3081\u3002\n \u7533\
32
65
  \u8ACB\u66F8\u306F --workflow \u3060\u3051\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF1Dworkflow_id \u3092\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u304F\u3068\u4E8C\u91CD\u6307\u5B9A\u306B\u306A\u308A\u307E\u3059\uFF09\u3002\n --content-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002";function instanceIdArg(input,usage){const id=singleRef(input,{flag:"<\u7533\u8ACBID>",label:"\u7533\u8ACBID",usage});if(!UUID_RE.test(id)){throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,
33
66
  usage)}return id}function parseInstanceContent(text,source,usage){let parsed;try{parsed=JSON.parse(text)}catch{throw new UsageError(`\u7533\u8ACB\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,usage)}if(!isRecord(parsed)){throw new UsageError(`\u7533\u8ACB\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP)}const unknown=Object.keys(parsed).filter(key=>!CONTENT_KEYS.
34
67
  includes(key));if(unknown.length>0){throw new UsageError(`\u7533\u8ACB\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${unknown.join(", ")}\uFF08${source}\uFF09`,CONTENT_HELP)}if("form_data"in parsed&&!isRecord(parsed["form_data"])){throw new UsageError(`\u7533\u8ACB\u5185\u5BB9\u306E form_data \u306F\u300C\u9805\u76EE\u540D \u2192 \u5024\u300D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,
35
- CONTENT_HELP)}return parsed}async function readContent(input,usage){const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u7533\u8ACB\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage});return text===void 0?void 0:parseInstanceContent(text,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,usage)}function createInstancePlan(workflowId2,content={}){return{method:"POST",path:INSTANCES_PATH,body:{...content,workflow_id:workflowId2}}}function applyInstancePlan(instanceId){
36
- return{method:"POST",path:idPath(INSTANCES_PATH,instanceId,"\u7533\u8ACB")+"/apply",body:{}}}function writtenInstance(body){return objectOf(body,"instance","\u7533\u8ACB")}function serverMessage(body){return isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[]}var WRITE_COLUMNS=["id","title","workflow_name","status","current_step_no","applied_at","completed_at"];function columnList(definition){if(definition===void 0||definition===null||definition==="")return[];
68
+ CONTENT_HELP)}return parsed}async function readContent(input,usage){const text=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u7533\u8ACB\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage});return text===void 0?void 0:parseInstanceContent(text,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,usage)}function createInstancePlan(workflowId2,content={}){return{method:"POST",path:INSTANCES_PATH2,body:{...content,workflow_id:workflowId2}}}function applyInstancePlan(instanceId){
69
+ return{method:"POST",path:idPath(INSTANCES_PATH2,instanceId,"\u7533\u8ACB")+"/apply",body:{}}}function writtenInstance(body){return objectOf(body,"instance","\u7533\u8ACB")}function serverMessage(body){return isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[]}var WRITE_COLUMNS=["id","title","workflow_name","status","current_step_no","applied_at","completed_at"];function columnList(definition){if(definition===void 0||definition===null||definition==="")return[];
37
70
  if(typeof definition==="string"){try{return columnList(JSON.parse(definition))}catch{return void 0}}if(Array.isArray(definition))return definition;if(!isRecord(definition))return void 0;const list=definition["form_column_list"]??definition["fields"];return Array.isArray(list)?list:void 0}function str(value){return typeof value==="string"&&value!==""?value:void 0}function formColumns(workflow){const list=columnList(workflow["form_definition"]);const columns=list?.map(column=>{if(!isRecord(column))
38
71
  return void 0;const name=str(column["name"])??str(column["column_name"]);if(name===void 0)return void 0;const choices=Array.isArray(column["options"])?column["options"].flatMap(option=>{if(typeof option==="string")return[{key:option,label:null}];if(!isRecord(option)||option["is_legacy"]===true)return[];return[{key:String(option["key"]),label:String(option["value"])}]}):[];const options=choices.map(choice=>choice.label===null?choice.key:`${choice.key}=${choice.label}`);return{name,displayName:str(
39
72
  column["display_name"])??str(column["label"])??"",type:str(column["type"])??str(column["column_type"]),required:column["required"]===true,options,optionKeys:choices.map(choice=>choice.key),defaultValue:column["default_value"]}});if(columns===void 0||columns.some(column=>column===void 0)){throw new ApiResponseError("\u7533\u8ACB\u66F8\u306E form_definition \u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return columns}var MULTI_VALUE_TYPES=new Set(
@@ -41,8 +74,8 @@ column["display_name"])??str(column["label"])??"",type:str(column["type"])??str(
41
74
  formData[column.name]=emptyValue(column);return{title:workflow["name"]??null,description:null,form_data:formData}}function skeletonNotes(body){const columns=formColumns(objectOf(body,"workflow","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u8A73\u7D30"));if(columns.length===0)return["\u3053\u306E\u7533\u8ACB\u66F8\u306B\u5165\u529B\u9805\u76EE\u306F\u3042\u308A\u307E\u305B\u3093\uFF08form_data \u306F\u7A7A\u306E\u307E\u307E\u3067\u7533\u8ACB\u3067\u304D\u307E\u3059\uFF09"];return[`\u5165\u529B\u9805\u76EE: ${String(
42
75
  columns.length)} \u9805\u76EE\uFF08form_data \u306E\u30AD\u30FC\uFF09`,...columns.map(column=>` ${column.name}: ${column.displayName}\uFF08${column.type??"\u578B\u4E0D\u660E"}${column.required?"\u30FB\u5FC5\u9808":""}\uFF09${column.options.length>0?` \u9078\u629E\u80A2: ${column.options.join(" / ")}`:""}`),"\u5FC5\u9808\u306E\u9805\u76EE\u304C\u7A7A\u306E\u307E\u307E\u3060\u3068\u3001\u63D0\u51FA\uFF08twp workflow instance apply\uFF09\u3067\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\u4E0B\u66F8\u304D\u306F\u7A7A\u306E\u307E\u307E\u3067\u3082\u4F5C\u308C\u307E\u3059"]}
43
76
  function createResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: instance create \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}return value}function createOperationPlan(input){const id=requireResolved(input,"workflowId");if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:idPath(WORKFLOWS_PATH,id,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC")};const raw=input.
44
- resolved?.["content"];return createInstancePlan(id,raw===void 0?{}:JSON.parse(raw))}var CREATE_USAGE="twp workflow instance create --workflow <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC> [--content-file <\u30D1\u30B9>] [--generate-cli-skeleton]";var APPLY_USAGE="twp workflow instance apply <\u7533\u8ACBID>";var UPDATE_USAGE="twp workflow instance update <\u7533\u8ACBID> --content-file <\u30D1\u30B9>";var DELETE_USAGE="twp workflow instance delete <\u7533\u8ACBID> --yes";var instanceWriteOperations=[{name:"\
45
- create",summary:"\u7533\u8ACB\u3092\u4E0B\u66F8\u304D\u3067\u4F5C\u308B\uFF08\u63D0\u51FA\u306F twp workflow instance apply\uFF09",usage:CREATE_USAGE,description:`POST /api/v2/workflows/instances \u3067\u7533\u8ACB\u3092\u4E0B\u66F8\u304D\uFF08\u72B6\u614B new\uFF09\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\u3002\u627F\u8A8D\u8005\u3078\u306F\u307E\u3060\u5C4A\u304D\u307E\u305B\u3093\u3002
77
+ resolved?.["content"];return createInstancePlan(id,raw===void 0?{}:JSON.parse(raw))}var CREATE_USAGE="twp workflow instance create --workflow <\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC> [--content-file <\u30D1\u30B9>] [--generate-cli-skeleton]";var APPLY_USAGE="twp workflow instance apply <\u7533\u8ACBID>";var UPDATE_USAGE2="twp workflow instance update <\u7533\u8ACBID> --content-file <\u30D1\u30B9>";var DELETE_USAGE2="twp workflow instance delete <\u7533\u8ACBID> --yes";var instanceWriteOperations=[
78
+ {name:"create",summary:"\u7533\u8ACB\u3092\u4E0B\u66F8\u304D\u3067\u4F5C\u308B\uFF08\u63D0\u51FA\u306F twp workflow instance apply\uFF09",usage:CREATE_USAGE,description:`POST /api/v2/workflows/instances \u3067\u7533\u8ACB\u3092\u4E0B\u66F8\u304D\uFF08\u72B6\u614B new\uFF09\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\u3002\u627F\u8A8D\u8005\u3078\u306F\u307E\u3060\u5C4A\u304D\u307E\u305B\u3093\u3002
46
79
  --workflow \u306F\u7533\u8ACB\u66F8\u306E\u540D\u524D\u304B ID\uFF08UUID\uFF09\u3067\u3059\u3002\u540D\u524D\u306F\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u304B\u3089\u5B8C\u5168\u4E00\u81F4\u3067\u63A2\u3057\u307E\u3059
47
80
  \uFF08\u975E\u8868\u793A\u306E\u7533\u8ACB\u66F8\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u3067\u6307\u3057\u3066\u3082\u3001\u7121\u52B9\u30FB\u6709\u52B9\u671F\u9593\u5916\u30FB\u7533\u8ACB\u5BFE\u8C61\u8005\u5916\u306E\u7533\u8ACB\u66F8\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002
48
81
  --content-file \u3092\u7701\u304F\u3068\u3001\u30BF\u30A4\u30C8\u30EB\u306F\u7533\u8ACB\u66F8\u306E\u540D\u524D\u30FB\u5165\u529B\u9805\u76EE\u306F\u7A7A\u306E\u4E0B\u66F8\u304D\u306B\u306A\u308A\u307E\u3059\u3002
@@ -58,20 +91,20 @@ CREATE_USAGE)}const content=wantsSkeleton?void 0:await readContent(input,CREATE_
58
91
  skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(createOperationPlan(input))}),plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u7533\u8ACB\u306F\u4F5C\u308A\u307E\u305B\u3093"]:["\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\uFF08\u63D0\u51FA\u306F twp workflow instance apply\uFF09"],summarize(value){const result=createResult(value);return result.skeleton?skeleton(result.body):
59
92
  pick(writtenInstance(result.body),WRITE_COLUMNS)},raw(value){const result=createResult(value);return result.skeleton?skeleton(result.body):writtenInstance(result.body)},notes(value){const result=createResult(value);return result.skeleton?skeletonNotes(result.body):serverMessage(result.body)}},{name:"apply",summary:"\u4E0B\u66F8\u304D\uFF08\u307E\u305F\u306F\u5DEE\u3057\u623B\u3057\u30FB\u5374\u4E0B\u3055\u308C\u305F\u7533\u8ACB\uFF09\u3092\u63D0\u51FA\u3059\u308B",usage:APPLY_USAGE,description:"\
60
93
  POST /api/v2/workflows/instances/{id}/apply \u3067\u7533\u8ACB\u3092\u63D0\u51FA\u3057\u307E\u3059\u3002\u6700\u521D\u306E\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\u3002\n\u63D0\u51FA\u3067\u304D\u308B\u306E\u306F\u81EA\u5206\u306E\u4E0B\u66F8\u304D\uFF08new\uFF09\u30FB\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF08sent_back\uFF09\u30FB\u5374\u4E0B\u3055\u308C\u305F\u7533\u8ACB\uFF08rejected\uFF09\u3067\u3059\u3002\n\u5185\u5BB9\u306F\u4ECA\u306E\u7533\u8ACB\u306E\u307E\u307E\u9001\u308A\u307E\u3059\uFF08\u5909\u3048\u308B\u306A\u3089\u5148\u306B twp workflow instance update\uFF09\u3002\n\u5FC5\u9808\u306E\u5165\u529B\u9805\u76EE\u304C\u7A7A\u3060\u3068\u3001\u30B5\u30FC\u30D0\u304C\u63D0\u51FA\u3092\u65AD\u308A\u307E\u3059\uFF08\u300C\u25EF\u25EF\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u300D\uFF09\u3002\u7A7A\u767D\u3060\u3051\u306E\u6587\u5B57\u5217\u3082\u7A7A\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\n\u4E0B\u66F8\u304D\u304B\u3089\u306E\u6700\u521D\u306E\u63D0\u51FA\u3067\u306F\u3001\u305D\u306E\u7533\u8ACB\u66F8\u3092\u4ECA\u3082\u7533\u8ACB\u3067\u304D\u308B\u304B\uFF08\u72B6\u614B\u30FB\u6709\u52B9\u671F\u9593\u30FB\u7533\u8ACB\u5BFE\u8C61\u8005\uFF09\u3082\u6539\u3081\u3066\u691C\u67FB\u3055\u308C\u307E\u3059\u3002\n \u57CB\u307E\u3063\u3066\u3044\u308B\u304B\u306F twp workflow instance get <\u7533\u8ACBID> --output json \u306E form_data \u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002",
61
- flags:[],plan:input=>applyInstancePlan(instanceIdArg(input,APPLY_USAGE)),plannedNotes:()=>["\u63D0\u51FA\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059"],summarize:body=>pick(writtenInstance(body),WRITE_COLUMNS),raw:writtenInstance,notes:serverMessage},{name:"update",summary:"\u63D0\u51FA\u524D\uFF08\u4E0B\u66F8\u304D\u30FB\u5DEE\u3057\u623B\u3057\u30FB\u5374\u4E0B\uFF09\u306E\u7533\u8ACB\u306E\u5185\u5BB9\u3092\u66F8\u304D\u63DB\u3048\u308B",usage:UPDATE_USAGE,
94
+ flags:[],plan:input=>applyInstancePlan(instanceIdArg(input,APPLY_USAGE)),plannedNotes:()=>["\u63D0\u51FA\u3059\u308B\u3068\u627F\u8A8D\u8005\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059"],summarize:body=>pick(writtenInstance(body),WRITE_COLUMNS),raw:writtenInstance,notes:serverMessage},{name:"update",summary:"\u63D0\u51FA\u524D\uFF08\u4E0B\u66F8\u304D\u30FB\u5DEE\u3057\u623B\u3057\u30FB\u5374\u4E0B\uFF09\u306E\u7533\u8ACB\u306E\u5185\u5BB9\u3092\u66F8\u304D\u63DB\u3048\u308B",usage:UPDATE_USAGE2,
62
95
  description:"PUT /api/v2/workflows/instances/{id} \u3067\u7533\u8ACB\u306E\u5185\u5BB9\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u66F8\u304D\u63DB\u3048\u3089\u308C\u308B\u306E\u306F\u81EA\u5206\u306E\u7533\u8ACB\u306E\u3046\u3061\u3001\n\u4E0B\u66F8\u304D\uFF08new\uFF09\u30FB\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF08sent_back\uFF09\u30FB\u5374\u4E0B\u3055\u308C\u305F\u7533\u8ACB\uFF08rejected\uFF09\u3067\u3059\u3002\n\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u66F8\u304B\u306A\u304B\u3063\u305F title / description \u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0\uFE0F form_data \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9805\u76EE\u3054\u3068\u306E\u30DE\u30FC\u30B8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u4ECA\u306E\u5024\u306F\n twp workflow instance get <\u7533\u8ACBID> --output json \u306E form_data \u3067\u53D6\u308C\u307E\u3059\u3002\n\n"+
63
- CONTENT_HELP,flags:[CONTENT_FILE_FLAG],async prepare(input){instanceIdArg(input,UPDATE_USAGE);const content=await readContent(input,UPDATE_USAGE);if(content===void 0||Object.keys(content).length===0){throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093\uFF09",UPDATE_USAGE)}return withResolved(
64
- input,{content:JSON.stringify(content)})},plan:input=>({method:"PUT",path:idPath(INSTANCES_PATH,instanceIdArg(input,UPDATE_USAGE),"\u7533\u8ACB"),body:JSON.parse(requireResolved(input,"content"))}),plannedNotes:input=>"form_data"in JSON.parse(requireResolved(input,"content"))?["form_data \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u6D88\u3048\u307E\u3059\uFF09"]:[],summarize:body=>pick(
65
- writtenInstance(body),WRITE_COLUMNS),raw:writtenInstance,notes:serverMessage},{name:"delete",summary:"\u4E0B\u66F8\u304D\uFF08\u307E\u305F\u306F\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF09\u3092\u524A\u9664\u3059\u308B",usage:DELETE_USAGE,description:"DELETE /api/v2/workflows/instances/{id} \u3067\u7533\u8ACB\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u81EA\u5206\u306E\u4E0B\u66F8\u304D\uFF08new\uFF09\u3068\n\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF08sent_back\uFF09\u3060\u3051\u3067\u3059\u3002\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u53D6\u308A\u4E0B\u3052\u308B\u306A\u3089 twp workflow approval cancel \u3067\u3059\u3002\n\u524A\u9664\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002",
66
- destructive:true,flags:[],plan:input=>({method:"DELETE",path:idPath(INSTANCES_PATH,instanceIdArg(input,DELETE_USAGE),"\u7533\u8ACB")}),summarize:body=>acknowledgement(body,"\u7533\u8ACB\u306E\u524A\u9664"),raw:body=>acknowledgement(body,"\u7533\u8ACB\u306E\u524A\u9664")}];var APPROVAL_ACTIONS=[{name:"approve",summary:"\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3059\u308B\uFF08\u6700\u7D42\u6BB5\u306A\u3089\u627F\u8A8D\u5B8C\u4E86\uFF09",detail:"\u81EA\u5206\u304C\u627F\u8A8D\u8005\uFF08\u307E\u305F\u306F\u4EE3\u7406\u627F\u8A8D\u3092\u4EFB\u3055\u308C\u305F\u4EBA\uFF09\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3057\u307E\u3059\u3002\u6700\
67
- \u7D42\u6BB5\u3067\u306A\u3051\u308C\u3070\u6B21\u306E\u6BB5\u306E\u627F\u8A8D\u8005\u3078\u9032\u307F\u307E\u3059\u3002",commentRequired:false,destructive:false},{name:"reject",summary:"\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u5374\u4E0B\u3059\u308B\uFF08\u7533\u8ACB\u8005\u306F\u76F4\u3057\u3066\u518D\u63D0\u51FA\u3067\u304D\u308B\uFF09",detail:"\u7533\u8ACB\u3092\u5374\u4E0B\u3057\u307E\u3059\uFF08\u72B6\u614B rejected\uFF09\u3002\u30B3\u30E1\u30F3\u30C8\uFF08\u5374\u4E0B\u306E\u7406\u7531\uFF09\u306F\u5FC5\u9808\u3067\u3059\u3002",
96
+ CONTENT_HELP,flags:[CONTENT_FILE_FLAG],async prepare(input){instanceIdArg(input,UPDATE_USAGE2);const content=await readContent(input,UPDATE_USAGE2);if(content===void 0||Object.keys(content).length===0){throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093\uFF09",UPDATE_USAGE2)}return withResolved(
97
+ input,{content:JSON.stringify(content)})},plan:input=>({method:"PUT",path:idPath(INSTANCES_PATH2,instanceIdArg(input,UPDATE_USAGE2),"\u7533\u8ACB"),body:JSON.parse(requireResolved(input,"content"))}),plannedNotes:input=>"form_data"in JSON.parse(requireResolved(input,"content"))?["form_data \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u6D88\u3048\u307E\u3059\uFF09"]:[],summarize:body=>pick(
98
+ writtenInstance(body),WRITE_COLUMNS),raw:writtenInstance,notes:serverMessage},{name:"delete",summary:"\u4E0B\u66F8\u304D\uFF08\u307E\u305F\u306F\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF09\u3092\u524A\u9664\u3059\u308B",usage:DELETE_USAGE2,description:"DELETE /api/v2/workflows/instances/{id} \u3067\u7533\u8ACB\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u524A\u9664\u3067\u304D\u308B\u306E\u306F\u81EA\u5206\u306E\u4E0B\u66F8\u304D\uFF08new\uFF09\u3068\n\u5DEE\u3057\u623B\u3055\u308C\u305F\u7533\u8ACB\uFF08sent_back\uFF09\u3060\u3051\u3067\u3059\u3002\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u53D6\u308A\u4E0B\u3052\u308B\u306A\u3089 twp workflow approval cancel \u3067\u3059\u3002\n\u524A\u9664\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002",
99
+ destructive:true,flags:[],plan:input=>({method:"DELETE",path:idPath(INSTANCES_PATH2,instanceIdArg(input,DELETE_USAGE2),"\u7533\u8ACB")}),summarize:body=>acknowledgement(body,"\u7533\u8ACB\u306E\u524A\u9664"),raw:body=>acknowledgement(body,"\u7533\u8ACB\u306E\u524A\u9664")}];var APPROVAL_ACTIONS=[{name:"approve",summary:"\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3059\u308B\uFF08\u6700\u7D42\u6BB5\u306A\u3089\u627F\u8A8D\u5B8C\u4E86\uFF09",detail:"\u81EA\u5206\u304C\u627F\u8A8D\u8005\uFF08\u307E\u305F\u306F\u4EE3\u7406\u627F\u8A8D\u3092\u4EFB\u3055\u308C\u305F\u4EBA\uFF09\u306E\u7533\u8ACB\u3092\u627F\u8A8D\u3057\u307E\u3059\
100
+ \u3002\u6700\u7D42\u6BB5\u3067\u306A\u3051\u308C\u3070\u6B21\u306E\u6BB5\u306E\u627F\u8A8D\u8005\u3078\u9032\u307F\u307E\u3059\u3002",commentRequired:false,destructive:false},{name:"reject",summary:"\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u5374\u4E0B\u3059\u308B\uFF08\u7533\u8ACB\u8005\u306F\u76F4\u3057\u3066\u518D\u63D0\u51FA\u3067\u304D\u308B\uFF09",detail:"\u7533\u8ACB\u3092\u5374\u4E0B\u3057\u307E\u3059\uFF08\u72B6\u614B rejected\uFF09\u3002\u30B3\u30E1\u30F3\u30C8\uFF08\u5374\u4E0B\u306E\u7406\u7531\uFF09\u306F\u5FC5\u9808\u3067\u3059\u3002",
68
101
  commentRequired:true,destructive:true},{name:"send-back",summary:"\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u7533\u8ACB\u8005\u3078\u5DEE\u3057\u623B\u3059",detail:"\u7533\u8ACB\u3092\u7533\u8ACB\u8005\u3078\u5DEE\u3057\u623B\u3057\u307E\u3059\u3002\u7533\u8ACB\u8005\u306F\u5185\u5BB9\u3092\u76F4\u3057\u3066\u518D\u63D0\u51FA\u3067\u304D\u307E\u3059\u3002\u30B3\u30E1\u30F3\u30C8\uFF08\u5DEE\u3057\u623B\u3059\u7406\u7531\uFF09\u306F\u5FC5\u9808\u3067\u3059\u3002",commentRequired:true,destructive:true},
69
102
  {name:"cancel",summary:"\u81EA\u5206\u304C\u51FA\u3057\u305F\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u53D6\u308A\u4E0B\u3052\u308B\uFF08\u7533\u8ACB\u8005\u672C\u4EBA\uFF09",detail:"\u7533\u8ACB\u8005\u672C\u4EBA\u304C\u3001\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u53D6\u308A\u4E0B\u3052\u307E\u3059\uFF08\u627F\u8A8D\u8005\u306E\u64CD\u4F5C\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u627F\u8A8D\u6E08\u307F\u306E\u7533\u8ACB\u306F\u3001\u7533\u8ACB\u66F8\u306E\u30AB\u30C6\u30B4\u30EA\u304C\n\u627F\u8A8D\u5F8C\u306E\u53D6\u6D88\u3092\u8A31\u3059\u5834\u5408\u3060\u3051\u53D6\u308A\u4E0B\u3052\u3089\u308C\u307E\u3059\u3002\u4E0B\u66F8\u304D\u3092\u6D88\u3059\u306A\u3089 twp workflow instance delete \u3067\u3059\u3002",
70
103
  commentRequired:false,destructive:true}];function approvalOperation(action){const usage=`twp workflow approval ${action.name} <\u7533\u8ACBID> ${action.commentRequired?"--comment-file <\u30D1\u30B9>":"[--comment-file <\u30D1\u30B9>]"}${action.destructive?" --yes":""}`;return{name:action.name,summary:action.summary,usage,description:`POST /api/v2/workflows/approvals/{id}/${action.name} \u3092\u9001\u308A\u307E\u3059\u3002${action.detail}
71
104
  <\u7533\u8ACBID> \u306F UUID \u3067\u3059\uFF08\u627F\u8A8D\u5F85\u3061\u306F twp workflow approval pending \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002
72
- \u30B3\u30E1\u30F3\u30C8\u306F --comment-file \u3092\u4E3B\u7D4C\u8DEF\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08- \u3067\u6A19\u6E96\u5165\u529B\u30FB\u4E00\u884C\u306A\u3089 --comment <\u6587\u5B57\u5217>\u30FB\u4E0A\u9650 ${String(COMMENT_MAX_CHARS)} \u6587\u5B57\uFF09\u3002
105
+ \u30B3\u30E1\u30F3\u30C8\u306F --comment-file \u3092\u4E3B\u7D4C\u8DEF\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08- \u3067\u6A19\u6E96\u5165\u529B\u30FB\u4E00\u884C\u306A\u3089 --comment <\u6587\u5B57\u5217>\u30FB\u4E0A\u9650 ${String(COMMENT_MAX_CHARS2)} \u6587\u5B57\uFF09\u3002
73
106
  \u72B6\u614B\u304C\u9055\u3046\u30FB\u6A29\u9650\u304C\u7121\u3044\u3068\u3044\u3063\u305F\u7406\u7531\u3067\u30B5\u30FC\u30D0\u304C\u65AD\u3063\u305F\u5834\u5408\u306F\u3001\u305D\u306E\u7406\u7531\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u306B\u306A\u308A\u307E\u3059\u3002`,destructive:action.destructive,flags:COMMENT_FLAGS,async prepare(input){instanceIdArg(input,usage);const comment=await readBody(input,{flag:"--comment",fileFlag:"--comment-file",label:"\u30B3\u30E1\u30F3\u30C8",
74
- maxChars:COMMENT_MAX_CHARS,usage});if(comment===void 0&&action.commentRequired){throw new UsageError(`${action.name} \u306B\u306F\u30B3\u30E1\u30F3\u30C8\u304C\u5FC5\u8981\u3067\u3059\uFF08--comment-file <\u30D1\u30B9> \u304B --comment <\u6587\u5B57\u5217>\uFF09`,usage)}return comment===void 0?input:withResolved(input,{comment})},plan(input){const comment=input.resolved?.["comment"];return{method:"POST",path:`${idPath(`${WORKFLOWS_PATH}/approvals`,instanceIdArg(input,usage),"\u7533\u8ACB")}/${action.
107
+ maxChars:COMMENT_MAX_CHARS2,usage});if(comment===void 0&&action.commentRequired){throw new UsageError(`${action.name} \u306B\u306F\u30B3\u30E1\u30F3\u30C8\u304C\u5FC5\u8981\u3067\u3059\uFF08--comment-file <\u30D1\u30B9> \u304B --comment <\u6587\u5B57\u5217>\uFF09`,usage)}return comment===void 0?input:withResolved(input,{comment})},plan(input){const comment=input.resolved?.["comment"];return{method:"POST",path:`${idPath(`${WORKFLOWS_PATH}/approvals`,instanceIdArg(input,usage),"\u7533\u8ACB")}/${action.
75
108
  name}`,body:comment===void 0?{}:{comment}}},summarize:body=>pick(writtenInstance(body),WRITE_COLUMNS),raw:writtenInstance,notes:serverMessage}}var instanceResource={name:"instance",summary:"\u7533\u8ACB\uFF08\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u627F\u8A8D\u5C65\u6B74\u30FB\u8D77\u7968\u30FB\u63D0\u51FA\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",operations:[{name:"list",summary:"\u81EA\u5206\u304C\u51FA\u3057\u305F\u7533\u8ACB\u3092\u4E00\u89A7\u3059\u308B",usage:INSTANCE_LIST_USAGE,description:`\
76
109
  GET /api/v2/workflows/instances \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u304C\u7533\u8ACB\u8005\u306E\u3082\u306E\u3002\u4E0B\u66F8\u304D\u3092\u542B\u3080\uFF09\u3002
77
110
  --workflow \u306F\u7533\u8ACB\u66F8\u306E\u540D\u524D\u304B ID\uFF08UUID\uFF09\u3067\u3059\u3002\u540D\u524D\u306F\u81EA\u5206\u304C\u7533\u8ACB\u3067\u304D\u308B\u7533\u8ACB\u66F8\u304B\u3089\u5B8C\u5168\u4E00\u81F4\u3067\u63A2\u3057\u307E\u3059\u3002
@@ -79,9 +112,9 @@ ${INSTANCE_STATUS_HELP}
79
112
  \u7D5E\u308A\u8FBC\u307F\u306F\u30B5\u30FC\u30D0\u304C\u8AAD\u3093\u3060\u3042\u3068\u306B\u639B\u304B\u308B\u305F\u3081\u30011\u30DA\u30FC\u30B8\u304C --limit \u3088\u308A\u5C11\u306A\u304F\u8FD4\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\uFF08\u7D9A\u304D\u306F --all \u3067\u8FBF\u308C\u307E\u3059\uFF09\u3002
80
113
  --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08form_data \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002
81
114
 
82
- `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,WORKFLOW_FLAG,STATUS_FLAG],paging:instancePaging,prepare:prepareWorkflowFilter,plan(input){noArgs(input,INSTANCE_LIST_USAGE);return{method:"GET",path:INSTANCES_PATH,query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),workflow_id:workflowFilter(input),status:instanceStatus(input)}}},summarize:body=>instancePaging.items(body).map(row=>pick(row,INSTANCE_COLUMNS)),raw:body=>instancePaging.items(body)},{name:"get",summary:"\
115
+ `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,WORKFLOW_FLAG,STATUS_FLAG],paging:instancePaging,prepare:prepareWorkflowFilter,plan(input){noArgs(input,INSTANCE_LIST_USAGE);return{method:"GET",path:INSTANCES_PATH2,query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),workflow_id:workflowFilter(input),status:instanceStatus(input)}}},summarize:body=>instancePaging.items(body).map(row=>pick(row,INSTANCE_COLUMNS)),raw:body=>instancePaging.items(body)},{name:"get",summary:"\
83
116
  \u7533\u8ACB1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u627F\u8A8D\u306E\u7D4C\u904E\u3092\u542B\u3080\uFF09",usage:INSTANCE_GET_USAGE,description:"GET /api/v2/workflows/instances/{id} \u3092\u8868\u793A\u3057\u307E\u3059\u3002<\u7533\u8ACBID> \u306F UUID \u3067\u3059\uFF08twp workflow instance list \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002\n\u898B\u3089\u308C\u308B\u306E\u306F\u3001\u81EA\u5206\u306E\u7533\u8ACB\u30FB\u81EA\u5206\u304C\u627F\u8A8D\u8005\u306E\u7533\u8ACB\u30FB\u95B2\u89A7\u3092\u8A31\u3055\u308C\u305F\u7533\u8ACB\u3060\u3051\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\u3067\u3001\u627F\u8A8D\u306E\u7D4C\u904E\uFF08step_history\uFF09\u306E\u4EF6\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08form_data\u30FBstep_history\u30FBworkflow_steps \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
84
- flags:[],plan(input){const id=singleRef(input,{flag:"<\u7533\u8ACBID>",label:"\u7533\u8ACBID",usage:INSTANCE_GET_USAGE});if(!UUID_RE.test(id)){throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,INSTANCE_GET_USAGE)}return{method:"GET",path:`${INSTANCES_PATH}/${encodeURIComponent(id)}`}},summarize:body=>pick(objectOf(body,"instance","\u7533\u8ACB\u8A73\u7D30"),INSTANCE_GET_COLUMNS),raw:body=>objectOf(body,"instance","\u7533\u8ACB\u8A73\u7D30"),
117
+ flags:[],plan(input){const id=singleRef(input,{flag:"<\u7533\u8ACBID>",label:"\u7533\u8ACBID",usage:INSTANCE_GET_USAGE});if(!UUID_RE.test(id)){throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,INSTANCE_GET_USAGE)}return{method:"GET",path:`${INSTANCES_PATH2}/${encodeURIComponent(id)}`}},summarize:body=>pick(objectOf(body,"instance","\u7533\u8ACB\u8A73\u7D30"),INSTANCE_GET_COLUMNS),raw:body=>objectOf(body,"instance","\u7533\u8ACB\u8A73\u7D30"),
85
118
  notes(body){const instance=objectOf(body,"instance","\u7533\u8ACB\u8A73\u7D30");const history=Array.isArray(instance["step_history"])?instance["step_history"].length:null;const notes=[`\u627F\u8A8D\u306E\u7D4C\u904E: ${history===null?"\u4E0D\u660E":`${String(history)} \u4EF6`}\uFF08\u5168\u9805\u76EE\u306F --output json \u306E step_history\uFF09`];if(typeof instance["approval_blocked_reason"]==="string"&&instance["approval_blocked_reason"]!==""){notes.push(`\u627F\u8A8D\u3067\u304D\u306A\u3044\u7406\u7531: ${instance["\
86
119
  approval_blocked_reason"]}`)}return notes},forbidden:"\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u898B\u3089\u308C\u308B\u306E\u306F\u3001\u81EA\u5206\u306E\u7533\u8ACB\u30FB\u81EA\u5206\u304C\u627F\u8A8D\u8005\u306E\u7533\u8ACB\u30FB\u95B2\u89A7\u3092\u8A31\u3055\u308C\u305F\u7533\u8ACB\u3060\u3051\u3067\u3059"},{name:"history",summary:"\u627F\u8A8D\u5C65\u6B74\uFF08\u81EA\u5206\u304C\u7533\u8ACB\u3057\u305F\u30FB\u627F\u8A8D\u306B\u95A2\u308F\u3063\u305F\u7533\u8ACB\uFF09\u3092\u4E00\u89A7\u3059\u308B",
87
120
  usage:HISTORY_USAGE,description:`GET /api/v2/workflows/history \u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4E0B\u66F8\u304D\u306F\u51FA\u307E\u305B\u3093\u3002
@@ -93,7 +126,8 @@ ${INSTANCE_STATUS_HELP}
93
126
  `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,WORKFLOW_FLAG,STATUS_FLAG,{name:"--keyword",summary:"\u30BF\u30A4\u30C8\u30EB\u7B49\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"}],paging:historyPaging,prepare:prepareWorkflowFilter,plan(input){noArgs(input,HISTORY_USAGE);return{method:"GET",path:`${WORKFLOWS_PATH}/history`,query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),workflow_id:workflowFilter(input),status:instanceStatus(
94
127
  input),keyword:nonEmpty(input.flags,"--keyword")}}},summarize:body=>historyPaging.items(body).map(row=>pick(row,INSTANCE_COLUMNS)),raw:body=>historyPaging.items(body)},...instanceWriteOperations]};var PENDING_USAGE="twp workflow approval pending [--count]";function pendingCount(body){const count=isRecord(body)?body["count"]:void 0;if(typeof count!=="number"){throw new ApiResponseError("\u627F\u8A8D\u5F85\u3061\u4EF6\u6570\u306E\u5FDC\u7B54\u306B count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
95
128
  return count}var approvalResource={name:"approval",summary:"\u627F\u8A8D\uFF08\u81EA\u5206\u306E\u627F\u8A8D\u5F85\u3061\u30FB\u627F\u8A8D\u30FB\u5374\u4E0B\u30FB\u5DEE\u3057\u623B\u3057\u30FB\u53D6\u4E0B\u3052\uFF09",operations:[{name:"pending",summary:"\u81EA\u5206\u304C\u627F\u8A8D\u3067\u304D\u308B\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3092\u4E00\u89A7\u3059\u308B\uFF08--count \u3067\u4EF6\u6570\u3060\u3051\uFF09",usage:PENDING_USAGE,description:"GET /api/v2/workflows/approvals/pending\uFF08\
96
- --count \u306A\u3089 approvals/pending/count\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\u81EA\u5206\u304C\u627F\u8A8D\u8005\u306E\u7533\u8ACB\u306B\u52A0\u3048\u3066\u3001\u4EE3\u7406\u627F\u8A8D\u3092\u4EFB\u3055\u308C\u305F\u7533\u8ACB\u3082\u51FA\u307E\u3059\uFF08delegated_from_user_id \u304C\u59D4\u4EFB\u5143\uFF09\u3002\n--count \u306E --output json \u306F {count} \u3067\u3059\u3002\n\u627F\u8A8D\u30FB\u5374\u4E0B\u30FB\u5DEE\u3057\u623B\u3057\u306F twp workflow approval approve / reject / send-back <\u7533\u8ACBID> \u3067\u3059\u3002",
97
- flags:[{name:"--count",summary:"\u4EF6\u6570\u3060\u3051\u3092\u51FA\u3059",takesValue:false}],plan(input){noArgs(input,PENDING_USAGE);return{method:"GET",path:`${WORKFLOWS_PATH}/approvals/pending${input.flags.has("--count")?"/count":""}`}},summarize:body=>isRecord(body)&&"count"in body&&!("list"in body)?{count:pendingCount(body)}:listRows(body,"\u627F\u8A8D\u5F85\u3061").map(row=>pick(row,PENDING_COLUMNS)),raw:body=>isRecord(body)&&"count"in body&&!("list"in body)?{count:pendingCount(body)}:listRows(
98
- body,"\u627F\u8A8D\u5F85\u3061"),notes:body=>isRecord(body)&&"count"in body&&!("list"in body)?[`\u627F\u8A8D\u5F85\u3061: ${String(pendingCount(body))} \u4EF6`]:countNote(listRows(body,"\u627F\u8A8D\u5F85\u3061"),"\u627F\u8A8D\u5F85\u3061")},...APPROVAL_ACTIONS.map(approvalOperation)]};var workflowDomain={name:"workflow",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u30FB\u7533\u8ACB\u30FB\u627F\u8A8D\uFF09\u306E\u53C2\u7167\u3068\u7533\u8ACB\u30FB\u627F\u8A8D\u306E\u64CD\u4F5C",
99
- operations:workflowOperations,subresources:[instanceResource,approvalResource]};export{parseInstanceContent,createInstancePlan,applyInstancePlan,writtenInstance,formColumns,workflowDomain};
129
+ --count \u306A\u3089 approvals/pending/count\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\u81EA\u5206\u304C\u627F\u8A8D\u8005\u306E\u7533\u8ACB\u306B\u52A0\u3048\u3066\u3001\u4EE3\u7406\u627F\u8A8D\u3092\u4EFB\u3055\u308C\u305F\u7533\u8ACB\u3082\u51FA\u307E\u3059\uFF08delegated_from_user_id \u304C\u59D4\u4EFB\u5143\uFF09\u3002\n--count \u306E --output json \u306F {count} \u3067\u3059\u3002\n\u4E00\u89A7\u306B\u306F\u7533\u8ACB\u3054\u3068\u306E AI\u30C1\u30A7\u30C3\u30AF\u306E\u8981\u7D04\u3092\u8DB3\u3057\u307E\u3059\uFF08\u7533\u8ACB1\u4EF6\u3054\u3068\u306B GET /api/v2/workflows/instances/{id}/ai-review \u3092\u9001\u308B\uFF09:\n ai_review: none\uFF08\u7D50\u679C\u306A\u3057\uFF1D\u53D6\u5F15\u4EE5\u5916\u306E\u7533\u8ACB\u30FB\u672A\u751F\u6210\uFF09/ pending / processing / completed / failed / unavailable\uFF08\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\uFF09\n ai_warnings: \u8B66\u544A\u306E\u89B3\u70B9\u306E\u6570\u30FBai_severity: \u6700\u3082\u91CD\u3044\u5224\u5B9A\uFF08warning / ok\uFF09\u30FBai_verdict: \u7DCF\u5408\u6240\u898B\uFF08\u753B\u9762\u306E\u30D0\u30C3\u30B8\u3002\u4F8B conditional\uFF09\u3002\n \u3044\u305A\u308C\u3082 completed \u306E\u3068\u304D\u3060\u3051\u5165\u308A\u307E\u3059\n\u6307\u6458\u306E\u4E2D\u8EAB\u306F twp workflow ai-review get <\u7533\u8ACBID> \u3067\u3059\u3002\n\u627F\
130
+ \u8A8D\u30FB\u5374\u4E0B\u30FB\u5DEE\u3057\u623B\u3057\u306F twp workflow approval approve / reject / send-back <\u7533\u8ACBID> \u3067\u3059\u3002",flags:[{name:"--count",summary:"\u4EF6\u6570\u3060\u3051\u3092\u51FA\u3059",takesValue:false}],plan(input){noArgs(input,PENDING_USAGE);return{method:"GET",path:`${WORKFLOWS_PATH}/approvals/pending${input.flags.has("--count")?"/count":""}`}},async execute(input,ctx){const body=await ctx.send({method:"GET",path:`${WORKFLOWS_PATH}/approvals/pending${input.
131
+ flags.has("--count")?"/count":""}`});if(input.flags.has("--count"))return body;return{...body,list:await withReviewSummaries(listRows(body,"\u627F\u8A8D\u5F85\u3061"),ctx)}},plannedNotes:input=>input.flags.has("--count")?[]:["\u7D9A\u3051\u3066\u3001\u627F\u8A8D\u5F85\u3061\u306E\u7533\u8ACB\u3054\u3068\u306B GET /api/v2/workflows/instances/{id}/ai-review \u3092\u9001\u308A\u3001AI\u30C1\u30A7\u30C3\u30AF\u306E\u8981\u7D04\u3092\u8DB3\u3057\u307E\u3059"],summarize:body=>isRecord(body)&&"count"in
132
+ body&&!("list"in body)?{count:pendingCount(body)}:listRows(body,"\u627F\u8A8D\u5F85\u3061").map(row=>pick(row,PENDING_COLUMNS)),raw:body=>isRecord(body)&&"count"in body&&!("list"in body)?{count:pendingCount(body)}:listRows(body,"\u627F\u8A8D\u5F85\u3061"),notes:body=>isRecord(body)&&"count"in body&&!("list"in body)?[`\u627F\u8A8D\u5F85\u3061: ${String(pendingCount(body))} \u4EF6`]:countNote(listRows(body,"\u627F\u8A8D\u5F85\u3061"),"\u627F\u8A8D\u5F85\u3061")},...APPROVAL_ACTIONS.map(approvalOperation)]};
133
+ var workflowDomain={name:"workflow",summary:"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u30FB\u7533\u8ACB\u30FB\u627F\u8A8D\uFF09\u306E\u53C2\u7167\u3068\u7533\u8ACB\u30FB\u627F\u8A8D\u306E\u64CD\u4F5C",operations:workflowOperations,subresources:[instanceResource,approvalResource,...workflowAiReviewResources]};export{parseInstanceContent,createInstancePlan,applyInstancePlan,writtenInstance,formColumns,workflowDomain};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{isoDate}from"./chunk-XDHLO54T.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-BS2ACFJA.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import{withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{
4
- ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
3
+ import{isoDate}from"./chunk-OTIR4GES.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-FEJDU42E.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
4
+ ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
5
5
  _\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
6
6
  return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
7
7
  var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function detail(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!=="string"){throw new ApiResponseError(