@tocca-systems/twp-cli 0.72.0 → 0.73.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 (77) hide show
  1. package/CHANGELOG.public.md +10 -0
  2. package/README.md +26 -5
  3. package/dist/{agent-C37HJDJY.js → agent-WJ4JMQMQ.js} +1 -1
  4. package/dist/{analysis-THRX37XW.js → analysis-MVKADQHU.js} +2 -2
  5. package/dist/{announcement-4R7XFO5W.js → announcement-UYVAY54K.js} +1 -1
  6. package/dist/{api-command-YMEYR2LG.js → api-command-WMT5U2VG.js} +2 -2
  7. package/dist/{app-37IMKCQZ.js → app-LPO4HFRV.js} +2 -2
  8. package/dist/{attendance-correct-Z5BGCSCL.js → attendance-correct-WDQM63AH.js} +1 -1
  9. package/dist/{attendance-lists-357A3O5Y.js → attendance-lists-6RP7UGA5.js} +1 -1
  10. package/dist/{backlog-KF63TCEG.js → backlog-RYESVWII.js} +1 -1
  11. package/dist/{budget-W7JXDJ4J.js → budget-BF3P55KH.js} +1 -1
  12. package/dist/{chunk-DAXVAUV4.js → chunk-2YVJ3QVJ.js} +1 -1
  13. package/dist/{chunk-MVZFZAT4.js → chunk-4B6GJBYP.js} +47 -44
  14. package/dist/{chunk-45OL54MY.js → chunk-4NZG4FJQ.js} +1 -1
  15. package/dist/{chunk-K4JE26L6.js → chunk-5P22UEUF.js} +1 -1
  16. package/dist/{chunk-Z6T5M3NJ.js → chunk-5SPWQAUX.js} +2 -2
  17. package/dist/{chunk-ARB4QFWO.js → chunk-7SYIYLHX.js} +1 -1
  18. package/dist/{chunk-VEA72AKG.js → chunk-B6FHTFUJ.js} +1 -1
  19. package/dist/{chunk-UXEYWMPO.js → chunk-BKE3BFIQ.js} +2 -2
  20. package/dist/{chunk-HPPIVCK3.js → chunk-C7MO3RHJ.js} +7 -4
  21. package/dist/{chunk-A3FJEUDB.js → chunk-D37WSWBT.js} +1 -1
  22. package/dist/{chunk-VIWQMDGG.js → chunk-DYNNGNXR.js} +1 -1
  23. package/dist/{chunk-2CIQOXPK.js → chunk-DZQFMC4U.js} +1 -1
  24. package/dist/{chunk-MP6YIILX.js → chunk-FHOJFKR3.js} +12 -11
  25. package/dist/{chunk-UGDB4QTS.js → chunk-J3KV6LAX.js} +1 -1
  26. package/dist/{chunk-DFHOCPA5.js → chunk-JOQKYENT.js} +1 -1
  27. package/dist/{chunk-BBOWZVCC.js → chunk-MNJYY3PR.js} +1 -1
  28. package/dist/{chunk-QVID3GT4.js → chunk-MSVJ53VZ.js} +1 -1
  29. package/dist/chunk-R3WFIQPJ.js +11 -0
  30. package/dist/chunk-RCRFLVJ6.js +117 -0
  31. package/dist/{chunk-XF4DN44V.js → chunk-SCHQHPI2.js} +2 -2
  32. package/dist/{chunk-IVKWLJCY.js → chunk-YA7W7OV4.js} +1 -1
  33. package/dist/cli.js +25 -5
  34. package/dist/{company-W2OBOOKJ.js → company-4J4BZMZ4.js} +2 -2
  35. package/dist/{contract-LTQVLI7A.js → contract-55LGGLGZ.js} +2 -2
  36. package/dist/{department-GZBKUFON.js → department-5FADSH5C.js} +1 -1
  37. package/dist/{deposit-HCMV2MBU.js → deposit-YSCEG5QY.js} +1 -1
  38. package/dist/{domain-knowledge-32TTPFVY.js → domain-knowledge-LGBPHMWX.js} +1 -1
  39. package/dist/{estimate-ILUXZJG3.js → estimate-KNQ5T7KZ.js} +3 -3
  40. package/dist/{evaluation-PE7QHATW.js → evaluation-MQ7USYDU.js} +1 -1
  41. package/dist/{expense-K2JPBP2M.js → expense-HCX2L5BN.js} +1 -1
  42. package/dist/{fiscal-year-XY4KA67D.js → fiscal-year-W3JOTNNF.js} +1 -1
  43. package/dist/{inquiry-FEQWFU7Z.js → inquiry-WM4FEQFW.js} +1 -1
  44. package/dist/{invoice-WOQZUL66.js → invoice-PYROWI6V.js} +2 -2
  45. package/dist/{job-title-CDAMB4Q2.js → job-title-PFLVTRNO.js} +1 -1
  46. package/dist/{knowledge-VM6P4XDQ.js → knowledge-ZUC67H2H.js} +56 -17
  47. package/dist/{leave-TEXQJURZ.js → leave-4ITLO6SD.js} +2 -2
  48. package/dist/{license-ZSZM5OSK.js → license-PAFHCG2V.js} +1 -1
  49. package/dist/{media-TAS7FF5K.js → media-BAMQWQ4H.js} +2 -2
  50. package/dist/{notification-T46TUUMO.js → notification-HJP3LWU7.js} +1 -1
  51. package/dist/{oneshot-XRN744YK.js → oneshot-TMUK55OV.js} +1 -1
  52. package/dist/{position-BKZQH6A3.js → position-YFC6XZQL.js} +1 -1
  53. package/dist/{project-KL4DH2XE.js → project-3RTD63II.js} +1 -1
  54. package/dist/{prospect-BEB5AXPM.js → prospect-ZGNWEQN7.js} +2 -2
  55. package/dist/{purchase-P37K6MVO.js → purchase-ZNMJHMP6.js} +3 -3
  56. package/dist/{receivable-5N3KL3L4.js → receivable-LF3DYPOO.js} +1 -1
  57. package/dist/{redmine-K7A7AEUA.js → redmine-OTZNVLZY.js} +1 -1
  58. package/dist/{registry-GGKX3MCP.js → registry-I3BPWCZE.js} +1 -1
  59. package/dist/{report-PZ4GMMK2.js → report-H4OJWUQP.js} +1 -1
  60. package/dist/{run-65IJLMKQ.js → run-DGBJ2EHB.js} +1 -1
  61. package/dist/{sales-ai-review-NBNSHUUP.js → sales-ai-review-WIVJOOFW.js} +1 -1
  62. package/dist/{sales-master-23PVQUTQ.js → sales-master-FR3ZJQXG.js} +2 -2
  63. package/dist/{sales-numbering-FQ7YPQME.js → sales-numbering-EWYVI3RF.js} +1 -1
  64. package/dist/{search-NYY22NHK.js → search-IX67TAAB.js} +1 -1
  65. package/dist/{segment-2C3MYZCV.js → segment-3Q64YOMR.js} +1 -1
  66. package/dist/skill-MWYX74XM.js +4 -0
  67. package/dist/{supplier-payment-G2BGSGLA.js → supplier-payment-NR6KRZ7V.js} +2 -2
  68. package/dist/{support-E3PBMVG4.js → support-3UK7KKKI.js} +1 -1
  69. package/dist/{task-N6OVWNAT.js → task-CPKP4DOL.js} +41 -23
  70. package/dist/{user-VODWJQZI.js → user-BHDF42QA.js} +2 -2
  71. package/dist/{user-contract-type-7AVII6SV.js → user-contract-type-FXV6WYC4.js} +1 -1
  72. package/dist/{worker-agent-KRMY2RKK.js → worker-agent-BEH65D3X.js} +1 -1
  73. package/dist/{workflow-GWEN7NSQ.js → workflow-EBAADQLR.js} +1 -1
  74. package/package.json +1 -1
  75. package/dist/chunk-5VZ54H2J.js +0 -11
  76. package/dist/chunk-6UPLPTBP.js +0 -58
  77. package/dist/skill-RKCTUJHW.js +0 -4
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-BBOWZVCC.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.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{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
4
- resolveNamed}from"./chunk-MVZFZAT4.js";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";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
3
+ import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-MNJYY3PR.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.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{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
4
+ resolveNamed}from"./chunk-4B6GJBYP.js";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";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
5
5
  allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
6
6
  \u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
7
7
  ory","excess_tax_amount"];var ALLOCATION_COLUMNS=["id","invoice_id","invoice_no","invoice_title","invoice_date","allocated_amount","invoice_remaining_amount"];function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function usageOf(op){return`twp deposit ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesFeatureDenied}from"./chunk-K4JE26L6.js";import{featureLicenseGuidance}from"./chunk-BBOWZVCC.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{isExactNumericId}from"./chunk-MVZFZAT4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{salesFeatureDenied}from"./chunk-5P22UEUF.js";import{featureLicenseGuidance}from"./chunk-MNJYY3PR.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{isExactNumericId}from"./chunk-4B6GJBYP.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";var SALES_PATH="/api/v2/sales";var REASONS_PATH=`${SALES_PATH}/ai-review-reasons`;function documentForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith("\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059\uFF09`}
5
5
  return void 0}function reasonsForbidden(body){if(body?.error==="permission_denied")return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");return"\u7406\u7531\u306E\u6A2A\u65AD\u4E00\u89A7\u30FB\u6587\u6848\u751F\u6210\u30FBPR \u4F5C\u6210\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF08\u66F8\u985E\u3092\u8DE8\u3044\u3067\u7406\u7531\u3092\u8AAD\u3080\u305F\u3081\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u8CA9\u58F2\u7BA1\u7406\u3092\u5951\u7D04\u3057\u3066\u3044\u308B\u304B\u30FB\u3042\u306A\u305F\u306E\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u304B\u3092\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
6
6
  var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",segment:"estimates"};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",segment:"invoices"};var CONTRACT={name:"contract",label:"\u53D6\u5F15\u5951\u7D04",segment:"contracts"};var JUDGMENTS={no_issue:"\u78BA\u8A8D\u3057\u305F\u304C\u554F\u984C\u306A\u3044\u3068\u5224\u65AD\u3057\u305F",corrected:"\u6307\u6458\u3092\u53D7\u3051\u3066\u66F8\u985E\u3092\u4FEE\u6B63\u3057\u305F",not_applicable:"\u3053\u306E\u6848\u4EF6\u306B\u306F\u5F53\u3066\u306F\u307E\u3089\u306A\u3044\u6307\u6458\u3060\u3068\u5224\u65AD\u3057\u305F"};
@@ -1,6 +1,6 @@
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-45OL54MY.js";import{inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MP6YIILX.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";
3
+ import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-4NZG4FJQ.js";import{inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-FHOJFKR3.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-4B6GJBYP.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";
4
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={
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-IVKWLJCY.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-DAXVAUV4.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-MP6YIILX.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{
4
- LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-MVZFZAT4.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
3
+ import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-YA7W7OV4.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-2YVJ3QVJ.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-FHOJFKR3.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{
4
+ LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-4B6GJBYP.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
5
5
  --start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
6
6
  var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI\
7
7
  \u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
@@ -26,9 +26,12 @@ ring"&&v.trim()!=="")??"";const label=block["type"]==="image"?"\u753B\u50CF":"\u
26
26
  content"],depth).map(row=>`${indent}${row}`))}else if(block["type"]==="codeBlock"){const code=inlineText(block["content"],depth);lines.push(`${indent}\`\`\``,...code.split("\n").map(row=>`${indent}${row}`),`${indent}\`\`\``)}else{const text=inlineText(block["content"],depth);const media=text.trim()===""?mediaLine(block):void 0;if(media!==void 0){lines.push(`${indent}${media}`)}else if(text.trim()!==""){const prefix=blockPrefix(block,ordinal);const continuation=`${indent}${" ".repeat(prefix.length)}`;
27
27
  lines.push(`${indent}${prefix}${text.split("\n").join(`
28
28
  ${continuation}`)}`)}else{lines.push("")}}lines.push(...blocksToLines(block["children"],depth+1))}return lines}function blockNoteToText(blocks){return tidy(blocksToLines(blocks,0).join("\n"))}function meetingContentToText(content){if(typeof content!=="string")return"";const trimmed=content.trim();if(trimmed==="")return"";if(trimmed.startsWith("[")){try{const parsed=JSON.parse(trimmed);if(Array.isArray(parsed))return blockNoteToText(parsed)}catch{}}return hasHtmlTag(trimmed)?htmlToText(trimmed):trimmed}
29
- function wikiContentToText(content,contentFormat){if(typeof content!=="string")return"";if(contentFormat==="markdown")return tidy(content);const trimmed=content.trim();return hasHtmlTag(trimmed)?htmlToText(trimmed):trimmed}function noteContentToText(content,contentType){if(typeof content!=="string")return"";return contentType==="markdown"?tidy(content):htmlToText(content)}function metaLine(label,value){if(value===null||value===void 0)return[];const text=Array.isArray(value)?value.filter(v=>typeof v===
30
- "string"||typeof v==="number").join(", "):typeof value==="string"||typeof value==="number"||typeof value==="boolean"?String(value):"";return text.trim()===""?[]:[`${label}: ${oneLine(text)}`]}function composeDocument(title,meta,sections){const parts=[`# ${typeof title==="string"&&title.trim()!==""?oneLine(title):"(\u7121\u984C)"}`];if(meta.length>0)parts.push(meta.join("\n"));for(const section of sections){if(section.body.trim()==="")continue;parts.push(section.heading===void 0?section.body:`\u25A0 ${section.
31
- heading}
29
+ function wikiContentToText(content,contentFormat){if(typeof content!=="string")return"";if(contentFormat==="markdown")return tidy(content);const trimmed=content.trim();const blocks=trimmed.startsWith("[")?parseBlockArray(trimmed):void 0;if(blocks!==void 0)return blockNoteToText(blocks);return hasHtmlTag(trimmed)?htmlToText(trimmed):trimmed}function parseBlockArray(text){try{const parsed=JSON.parse(text);return Array.isArray(parsed)&&parsed.length>0&&parsed.every(block=>isObject(block)&&typeof block["\
30
+ type"]==="string")?parsed:void 0}catch{return void 0}}function noteContentToText(content,contentType){if(typeof content!=="string")return"";return contentType==="markdown"?tidy(content):htmlToText(content)}function metaLine(label,value){if(value===null||value===void 0)return[];const text=Array.isArray(value)?value.filter(v=>typeof v==="string"||typeof v==="number").join(", "):typeof value==="string"||typeof value==="number"||typeof value==="boolean"?String(value):"";return text.trim()===""?[]:[`${label}\
31
+ : ${oneLine(text)}`]}function composeDocument(title,meta,sections){const parts=[`# ${typeof title==="string"&&title.trim()!==""?oneLine(title):"(\u7121\u984C)"}`];if(meta.length>0)parts.push(meta.join("\n"));for(const section of sections){if(section.body.trim()==="")continue;parts.push(section.heading===void 0?section.body:`\u25A0 ${section.heading}
32
32
 
33
33
  ${section.body}`)}return`${parts.join("\n\n")}
34
- `}export{htmlToText,oneLine,meetingContentToText,wikiContentToText,noteContentToText,metaLine,composeDocument};
34
+ `}var HEADING_LINE=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?(?:[ \t]+#+)?[ \t]*$/;var NESTED_HEADING_LINE=/^[ \t]*(#{1,6})(?:[ \t]+(.*?))?(?:[ \t]+#+)?[ \t]*$/;function headingLines(lines,options){const pattern=options.markdown===true?HEADING_LINE:NESTED_HEADING_LINE;const found=[];let inFence=false;lines.forEach((raw,line)=>{if(/^\s*```/.test(raw)){inFence=!inFence;return}if(inFence)return;const match=pattern.exec(raw);if(match!==null)found.push({level:match[1]?.length??1,title:match[2]?.trim()??"",line})});
35
+ return found}function sectionEnd(headings,index,total){const own=headings[index];const next=headings.slice(index+1).find(h=>own!==void 0&&h.level<=own.level);return next?.line??total}function textOutline(text,options={}){const lines=text.split("\n");const headings=headingLines(lines,options);return headings.flatMap((h,index)=>h.title===""?[]:[{level:h.level,title:h.title,chars:[...lines.slice(h.line+1,sectionEnd(headings,index,lines.length)).join("\n").trim()].length}])}function headingKey(title){
36
+ return title.replace(/^#+\s*/,"").replace(/\s+/g," ").trim()}function textSection(text,query,options={}){const lines=text.split("\n");const headings=headingLines(lines,options);const key=headingKey(query);if(key==="")return void 0;let hits=headings.flatMap((h,index2)=>headingKey(h.title)===key?[index2]:[]);if(hits.length===0)hits=headings.flatMap((h,index2)=>headingKey(h.title).toLowerCase()===key.toLowerCase()?[index2]:[]);const index=hits[0];const heading=index===void 0?void 0:headings[index];
37
+ if(index===void 0||heading===void 0)return void 0;return{level:heading.level,title:heading.title,text:tidy(lines.slice(heading.line,sectionEnd(headings,index,lines.length)).join("\n")),matches:hits.length}}export{htmlToText,oneLine,meetingContentToText,wikiContentToText,noteContentToText,metaLine,composeDocument,textOutline,textSection};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-ARB4QFWO.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-MVZFZAT4.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
3
+ import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-7SYIYLHX.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-4B6GJBYP.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
4
4
  pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INSTANCES_PATH=`${WORKFLOWS_PATH}/instances`;var COMMENT_MAX_CHARS=2e3;var IN_FLIGHT=new Set(["pending","processing"]);var GET_USAGE="twp workflow ai-review get <\u7533\u8ACBID>";var UPDATE_USAGE="twp workflow ai-review-comment update <\u6307\u6458ID> --instance <\u7533\u8ACBID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9>)";var DELETE_USAGE="twp workflow ai-review-comment delete <\u6307\u6458ID> --instance <\u7533\u8ACBID> --yes";function instanceUuid(raw,usage,what){const id=raw?.trim()??
5
5
  "";if(id==="")throw new UsageError(`\u7533\u8ACBID \u3092${what}\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(!UUID_RE.test(id))throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`${usage}
6
6
  \u7533\u8ACBID \u306F twp workflow approval pending \u306E id \u5217\u3067\u3059\u3002`);return id}function workflowReviewPath(instanceId){return`${INSTANCES_PATH}/${encodeURIComponent(instanceId)}/ai-review`}function reviewTarget(input){if(input.args.length>1)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${input.args.slice(1).join(" ")}`,GET_USAGE);return workflowReviewPath(instanceUuid(input.args[0],GET_USAGE,"\u4F4D\u7F6E\u5F15\u6570"))}function commentTarget(input,usage){
@@ -88,4 +88,4 @@ bled")?rows:rows.filter(r=>r.can_login);return{mode:"inventory",rows:visible,sca
88
88
  rows.map(row=>Object.fromEntries(INVENTORY_COLUMNS.map(c=>{if(c==="permissions")return[c,permissionText(row.permissions)];if(c==="last_login_at")return[c,lastLoginText(row)];if(c==="manager_name")return[c,spreadsheetSafe(row.manager_name??row.manager_id)];return[c,spreadsheetSafe(row[c])]})))},raw:body=>exportBody(body).rows,notes(body){const result=exportBody(body);const notes=[`${result.scanned} \u4EBA\u3092\u8AAD\u307F\u307E\u3057\u305F\uFF08\u3046\u3061\u5931\u52B9\u6E08\u307F ${result.disabled}\
89
89
  \u4EBA\uFF09\u3002`+(result.excludedHidden?"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u5BFE\u8C61\u5916\u3067\u3059\uFF08--exclude-hidden\uFF09\u3002":"")];if(result.ssoUndetermined>0){notes.push(`\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E ${result.ssoUndetermined} \u4EBA\u306F\u3001SSO \u306E\u30ED\u30B0\u30A4\u30F3\u304C\u8A18\u9332\u3055\u308C\u306A\u3044\u305F\u3081\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u5224\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002`)}
90
90
  if(result.mode==="diff"){const counts=new Map;for(const row of result.rows)counts.set(row.kind,(counts.get(row.kind)??0)+1);notes.push(counts.size===0?"\u53F0\u5E33\u3068\u306E\u5DEE\u5206\u306F\u3042\u308A\u307E\u305B\u3093\u3002":`\u5DEE\u5206: ${[...counts].map(([kind,n])=>`${kind} ${n}\u4EF6`).join(" / ")}`);if(result.excludedHidden){notes.push("--exclude-hidden \u306E\u305F\u3081\u3001\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u307E\u307E\u5931\u52B9\u3057\u3066\u3044\u306A\u3044\u30E6\u30FC\u30B6\u30FC\uFF08\u5931\u52B9\u6F0F\u308C\uFF09\u306F\u51FA\u3066\u3044\u307E\u305B\u3093\u3002\u307E\u305F\u3001\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C missing_in_twp\uFF08\u767B\u9332\u6F0F\u308C\uFF09\u3068\u3057\u3066\u51FA\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002")}}
91
- return notes}};export{LOGIN_HISTORY_RETENTION_DAYS,DEFAULT_INACTIVE_DAYS,CONCURRENCY,pacedSender,mapPool,userDetail,primaryAssignment,lastLogin,daysBetween,recentlyHired,lastLoginText,spreadsheetSafe,exportOperation};
91
+ return notes}};export{LOGIN_HISTORY_RETENTION_DAYS,DEFAULT_INACTIVE_DAYS,CONCURRENCY,parseCsvRecords,pacedSender,mapPool,userDetail,primaryAssignment,lastLogin,daysBetween,recentlyHired,lastLoginText,spreadsheetSafe,exportOperation};
@@ -1,6 +1,6 @@
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-VEA72AKG.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-45OL54MY.js";import{inspectLocalFile}from"./chunk-I4TR55UF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MP6YIILX.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-B6FHTFUJ.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-4NZG4FJQ.js";import{inspectLocalFile}from"./chunk-I4TR55UF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-FHOJFKR3.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-4B6GJBYP.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
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:"<\
@@ -1,21 +1,22 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{ORG_MASTER_LIMIT}from"./chunk-MVZFZAT4.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
3
+ import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{ORG_MASTER_LIMIT}from"./chunk-4B6GJBYP.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
4
4
  map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.
5
5
  NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function numberValue(field,raw){
6
6
  const trimmed=raw.trim();const value=/^\d+(\.\d+)?$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isFinite(value)||value<field.min||value>field.max){throw new UsageError(`${field.flag} \u306F ${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B\u306E\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}var TIME_RE=/^\d{2}:\d{2}$/;function timeValue(flag,raw){const value=raw.
7
7
  trim();if(!TIME_RE.test(value)){throw new UsageError(`${flag} \u306F HH:MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`\u4F8B: ${flag} 09:00`)}return value}function weekdaysValue(flag,raw){const value=raw.trim();if(!/^[01]{7}$/.test(value)){throw new UsageError(`${flag} \u306F\u65E5\u66DC\u59CB\u307E\u308A\uFF08\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\uFF09\u306E 0 / 1 \u30927\u6841\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`\u4F8B: \u6708\u301C\u91D1\u306A\u3089 ${flag}\
8
8
  0111110`)}return[...value].map(Number)}function fieldBody(input,fields){const body={};for(const field of fields){switch(field.kind){case"text":{const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value;break}case"integer":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=integerValue(field,raw);break}case"number":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=numberValue(field,raw);break}case"\
9
- time":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=timeValue(field.flag,raw);break}case"weekdays":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=weekdaysValue(field.flag,raw);break}case"boolean":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=booleanText(field.flag,raw);break}case"enum":{const raw=input.flags.get(field.flag);if(raw===void 0)break;const value=raw.trim().toLowerCase();if(!field.values.includes(value)){throw new UsageError(
10
- `${field.flag} \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${field.values.join(" / ")} \u3067\u3059\u3002`)}body[field.key]=value;break}case"date":{const raw=input.flags.get(field.flag);if(raw===void 0)break;body[field.key]=raw.trim().toLowerCase()===CLEAR_DATE?null:isoDate(input,field.flag);break}case"ref":{nonEmpty(input.flags,field.flag);if(input.flags.has(field.flag)&&input.flags.has(field.clearFlag)){throw new UsageError(
11
- `${field.flag} \u3068 ${field.clearFlag} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(input.flags.has(field.clearFlag))body[field.key]=null;const resolved=input.resolved?.[field.key];if(input.flags.has(field.flag)&&resolved!==void 0)body[field.key]=resolved;break}}}return body}function booleanQuery(flag,raw){return String(booleanText(flag,raw))}function hasAnyField(input,fields){
12
- return fields.some(field=>input.flags.has(field.flag)||field.kind==="ref"&&input.flags.has(field.clearFlag))}async function resolveRefFields(input,ctx,fields){const resolved={};for(const field of fields){if(field.kind!=="ref")continue;const raw=nonEmpty(input.flags,field.flag);if(raw!==void 0)resolved[field.key]=(await field.resolve(ctx,raw,field.flag)).id}return withResolved(input,resolved)}async function targetId(input,options){const ref=singleRef(input,{flag:options.flag,label:options.label,usage:options.
13
- usage});if(ULID_RE.test(ref.toUpperCase()))return ref.toUpperCase();if(UUID_RE.test(ref))return ref;return(await options.resolve(ref)).id}function idSegment(input,label){const id=requireResolved(input,"id");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`)}return encodeURIComponent(id)}function masterRows(body,label){
14
- const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError(`${label}\u4E00\u89A7\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 truncationNotes(body,label){const rows=masterRows(body,label);const count=isRecord(body)?body["count"]:void 0;if(typeof count!=="number"||count<=rows.length)return[];return[`${label}\u306F ${count}\
15
- \u4EF6\u3042\u308A\u307E\u3059\u304C\u3001${rows.length} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002--limit \u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]}function masterItem(body,itemKey,label){const item=isRecord(body)?body[itemKey]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(item)||typeof item["id"]!=="string"){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${itemKey} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
16
- return item}function cacheNote(label){return`${label}\u4E00\u89A7\u306F10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u3057\u307E\u3059\u3002\u3053\u306E\u76F4\u5F8C\u306B\u540D\u524D\u3084\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306F --refresh \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08ID \u306A\u3089\u305D\u306E\u307E\u307E\u901A\u308A\u307E\u3059\uFF09\u3002`}function referencedDeleteGuidance(guidance){return server=>server.includes("\u524A\u9664\u3067\u304D\u307E\u305B\u3093")&&
17
- !server.includes("\u4E88\u7D04\u5F79\u8077")?guidance:void 0}function codeNameFields(label){return[{kind:"text",flag:"--code",key:"code",label:`${label}\u30B3\u30FC\u30C9`,maxChars:50,summary:`${label}\u30B3\u30FC\u30C9\uFF08\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09`},{kind:"text",flag:"--name",key:"name",label:`${label}\u540D`,maxChars:255,summary:`${label}\u540D`}]}function masterFields(label,rest){return[...codeNameFields(label),...rest]}var STATUS_VALUES=["active","inactive"];function masterListOperation(options){
18
- const{name,label}=options;const filters=options.filters??[];return{name:"list",summary:`${label}\u3092\u4E00\u89A7\u3059\u308B`,usage:`twp ${name} list [--status active|inactive] [--keyword <\u8A9E>]${filters.map(f=>` [${f.flag.name} ${f.flag.placeholder??""}]`).join("")} [--limit <\u4EF6\u6570>]`,description:(options.note!==void 0?`${options.note}
9
+ time":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=timeValue(field.flag,raw);break}case"weekdays":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=weekdaysValue(field.flag,raw);break}case"boolean":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=booleanText(field.flag,raw);break}case"enum":{const raw=input.flags.get(field.flag);if(raw===void 0)break;const value=field.values.find(candidate=>candidate.toLowerCase()===raw.trim().
10
+ toLowerCase());if(value===void 0){throw new UsageError(`${field.flag} \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${field.values.join(" / ")} \u3067\u3059\u3002`)}body[field.key]=value;break}case"date":{const raw=input.flags.get(field.flag);if(raw===void 0)break;body[field.key]=raw.trim().toLowerCase()===CLEAR_DATE?null:isoDate(input,field.flag);break}case"ref":{nonEmpty(input.flags,field.flag);if(input.flags.has(field.flag)&&
11
+ input.flags.has(field.clearFlag)){throw new UsageError(`${field.flag} \u3068 ${field.clearFlag} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(input.flags.has(field.clearFlag))body[field.key]=null;const resolved=input.resolved?.[field.key];if(input.flags.has(field.flag)&&resolved!==void 0)body[field.key]=resolved;break}}}return body}function booleanQuery(flag,raw){
12
+ return String(booleanText(flag,raw))}function hasAnyField(input,fields){return fields.some(field=>input.flags.has(field.flag)||field.kind==="ref"&&input.flags.has(field.clearFlag))}async function resolveRefFields(input,ctx,fields){const resolved={};for(const field of fields){if(field.kind!=="ref")continue;const raw=nonEmpty(input.flags,field.flag);if(raw!==void 0)resolved[field.key]=(await field.resolve(ctx,raw,field.flag)).id}return withResolved(input,resolved)}async function targetId(input,options){
13
+ const ref=singleRef(input,{flag:options.flag,label:options.label,usage:options.usage});if(ULID_RE.test(ref.toUpperCase()))return ref.toUpperCase();if(UUID_RE.test(ref))return ref;return(await options.resolve(ref)).id}function idSegment(input,label){const id=requireResolved(input,"id");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`)}
14
+ return encodeURIComponent(id)}function masterRows(body,label){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError(`${label}\u4E00\u89A7\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 truncationNotes(body,label){const rows=masterRows(body,label);const count=isRecord(body)?body["count"]:void 0;if(typeof count!=="numb\
15
+ er"||count<=rows.length)return[];return[`${label}\u306F ${count} \u4EF6\u3042\u308A\u307E\u3059\u304C\u3001${rows.length} \u4EF6\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002--limit \u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]}function masterItem(body,itemKey,label){const item=isRecord(body)?body[itemKey]:void 0;if(!isRecord(body)||body["result"]!==true||!isRecord(item)||typeof item["id"]!=="string"){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${itemKey}\
16
+ \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return item}function cacheNote(label){return`${label}\u4E00\u89A7\u306F10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u3057\u307E\u3059\u3002\u3053\u306E\u76F4\u5F8C\u306B\u540D\u524D\u3084\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306F --refresh \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08ID \u306A\u3089\u305D\u306E\u307E\u307E\u901A\u308A\u307E\u3059\uFF09\u3002`}
17
+ function referencedDeleteGuidance(guidance){return server=>server.includes("\u524A\u9664\u3067\u304D\u307E\u305B\u3093")&&!server.includes("\u4E88\u7D04\u5F79\u8077")?guidance:void 0}function codeNameFields(label){return[{kind:"text",flag:"--code",key:"code",label:`${label}\u30B3\u30FC\u30C9`,maxChars:50,summary:`${label}\u30B3\u30FC\u30C9\uFF08\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09`},{kind:"text",flag:"--name",key:"name",label:`${label}\u540D`,maxChars:255,summary:`${label}\u540D`}]}
18
+ function masterFields(label,rest){return[...codeNameFields(label),...rest]}var STATUS_VALUES=["active","inactive"];function masterListOperation(options){const{name,label}=options;const filters=options.filters??[];return{name:"list",summary:`${label}\u3092\u4E00\u89A7\u3059\u308B`,usage:`twp ${name} list [--status active|inactive] [--keyword <\u8A9E>]${filters.map(f=>` [${f.flag.name} ${f.flag.placeholder??""}]`).join("")} [--limit <\u4EF6\u6570>]`,description:(options.note!==void 0?`${options.note}\
19
+
19
20
  `:"")+`--keyword \u306F\u30B3\u30FC\u30C9\u3068\u540D\u524D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u3059\u3002
20
21
  \u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001--limit \u4EF6\uFF08\u65E2\u5B9A ${ORG_MASTER_LIMIT}\uFF09\u3067\u6253\u3061\u5207\u308A\u307E\u3059\u3002\u6253\u3061\u5207\u3063\u305F\u3068\u304D\u306F stderr \u3067\u77E5\u3089\u305B\u307E\u3059\u3002
21
22
 
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
3
+ import{salesAdminForbidden}from"./chunk-5SPWQAUX.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
4
4
  ["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
5
5
  nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
6
6
  "\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-5VZ54H2J.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-YXVN6OCH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-MVZFZAT4.js";
3
+ import{loadDomain}from"./chunk-R3WFIQPJ.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-YXVN6OCH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-UFGJSWKU.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-4B6GJBYP.js";
4
4
  import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,
5
5
  loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-35MQ27I6.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
6
6
  name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-MVZFZAT4.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
3
+ import{isoDate}from"./chunk-JJSBBWJ5.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{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-4B6GJBYP.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
4
4
  ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
5
5
  _\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
6
6
  return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{WORKER_AGENTS_PATH}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{WORKER_AGENTS_PATH}from"./chunk-4B6GJBYP.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";var LABEL="\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8";var LIST_COLUMNS=["agent_id","name","is_enabled","schedule","next_run_at","last_run_status","last_run_at","owner_user_name"];var GET_COLUMNS=["agent_id","name","description","owner_user_name","is_enabled","schedule","next_run_at","is_running","last_run_status","last_run_at","last_run_id","allowed_tool_count","write_enabled","ai_model","consecutive_failure_count","auto_disabled_reason"];var TOOL_COLUMNS=["name","category","d\
5
5
  isplay_name","is_mutating","is_available"];var TOOL_GET_COLUMNS=["name","category","display_name","description","is_mutating","is_destructive","is_available","required_feature","required_level","required_api_scopes"];var RUN_COLUMNS=["run_id","status","trigger","started_at","duration_ms","tool_call_count","consumed_credits","summary"];var RUN_GET_COLUMNS=["summary","status","skip_reason","error_code","error_message","run_id","agent_id","trigger","is_dry_run","started_at","finished_at","duration_\
6
6
  ms","iteration_count","tool_call_count","mutation_count","consumed_credits","ai_model"];var STEP_COLUMNS=["step_no","type","tool_name","is_mutation","duration_ms","content","error_message"];var STEP_TYPES=["thinking","tool_call","tool_result","error","budget_warning","final_summary"];var FORBIDDEN="AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6A5F\u80FD\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\uFF08agent\uFF09\u304C\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u4F7F\u3048\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u308A\u5F53\u3066\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
@@ -0,0 +1,11 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var LOADERS={agent:async()=>(await import("./agent-WJ4JMQMQ.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-XFYCEK5S.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-WIVJOOFW.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-MVKADQHU.js")).analysisDomain,announcement:async()=>(await import("./announcement-UYVAY54K.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-WDQM63AH.js")).attendanceDomainWithRecords,
4
+ backlog:async()=>(await import("./backlog-RYESVWII.js")).backlogDomain,budget:async()=>(await import("./budget-BF3P55KH.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-FR3ZJQXG.js")).businessPlaceDomain,company:async()=>(await import("./company-4J4BZMZ4.js")).companyDomain,contract:async()=>(await import("./contract-55LGGLGZ.js")).contractDomain,customer:async()=>(await import("./company-4J4BZMZ4.js")).customerDomain,department:async()=>(await import("./department-5FADSH5C.js")).
5
+ departmentDomain,deposit:async()=>(await import("./deposit-YSCEG5QY.js")).depositDomain,estimate:async()=>(await import("./estimate-KNQ5T7KZ.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-MQ7USYDU.js")).evaluationDomain,expense:async()=>(await import("./expense-HCX2L5BN.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-W3JOTNNF.js")).fiscalYearDomain,"goal-sheet":async()=>(await import("./evaluation-MQ7USYDU.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-WM4FEQFW.js")).
6
+ inquiryDomain,invoice:async()=>(await import("./invoice-PYROWI6V.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-PFLVTRNO.js")).jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-LGBPHMWX.js")).knowledgeDomain,leave:async()=>(await import("./leave-4ITLO6SD.js")).leaveDomain,license:async()=>(await import("./license-PAFHCG2V.js")).licenseDomain,media:async()=>(await import("./media-BAMQWQ4H.js")).mediaDomain,meeting:async()=>(await import("./knowledge-ZUC67H2H.js")).
7
+ meetingDomain,note:async()=>(await import("./knowledge-ZUC67H2H.js")).noteDomain,notification:async()=>(await import("./notification-HJP3LWU7.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-ZY3GTU26.js")).onedriveDomain,outlook:async()=>(await import("./outlook-KYTXHDAV.js")).outlookDomain,payee:async()=>(await import("./sales-master-FR3ZJQXG.js")).payeeDomain,position:async()=>(await import("./position-YFC6XZQL.js")).positionDomain,project:async()=>(await import("./project-3RTD63II.js")).
8
+ projectDomain,prospect:async()=>(await import("./prospect-ZGNWEQN7.js")).prospectDomain,purchase:async()=>(await import("./purchase-ZNMJHMP6.js")).purchaseDomain,qualification:async()=>(await import("./skill-MWYX74XM.js")).qualificationDomain,receivable:async()=>(await import("./receivable-LF3DYPOO.js")).receivableDomain,redmine:async()=>(await import("./redmine-OTZNVLZY.js")).redmineDomain,report:async()=>(await import("./report-H4OJWUQP.js")).reportDomain,"rounding-settin\
9
+ g":async()=>(await import("./sales-numbering-EWYVI3RF.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-FR3ZJQXG.js")).sealImpressionDomain,search:async()=>(await import("./search-IX67TAAB.js")).searchDomain,segment:async()=>(await import("./segment-3Q64YOMR.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-6RP7UGA5.js")).shiftDomain,skill:async()=>(await import("./skill-MWYX74XM.js")).skillDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).
10
+ storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-NR6KRZ7V.js")).supplierPaymentDomain,support:async()=>(await import("./support-3UK7KKKI.js")).supportDomain,task:async()=>(await import("./task-CPKP4DOL.js")).taskDomain,teams:async()=>(await import("./teams-QRVCFJS4.js")).teamsDomain,user:async()=>(await import("./user-BHDF42QA.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-FXV6WYC4.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-ZUC67H2H.js")).
11
+ wikiDomain,workchange:async()=>(await import("./attendance-lists-6RP7UGA5.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-BEH65D3X.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-EBAADQLR.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -0,0 +1,117 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{parseCsvRecords}from"./chunk-DYNNGNXR.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,targetId,updateFlags}from"./chunk-FHOJFKR3.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SKILLS_PATH,SKILL_CATEGORIES_PATH,resolveNamed}from"./chunk-4B6GJBYP.js";import{ULID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{
4
+ ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var GROUPED_PATH="/api/v2/organization/skills/grouped";var SKILL_MAP_PATH="/api/v2/organization/skill-map";var QUALIFICATIONS_PATH="/api/v2/organization/qualifications";var USERS_LIST_PATH="/api/v2/admin/users/list";var USERS_PAGE_LIMIT=100;var USERS_MAX_PAGES=50;var HR_FORBIDDEN="HR\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\uFF08twp skill map / who\uFF09\u306F\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u53C2\u7167\u3067\u304D\u307E\u3059";
5
+ function groupedSkillRows(body){const categories=isRecord(body)?body["categories"]:void 0;if(!Array.isArray(categories)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u4E00\u89A7\u306E\u5FDC\u7B54\u306B categories \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return categories.flatMap(group=>{const category=isRecord(group)&&isRecord(group["category"])?group["category"]:{};const skills=isRecord(group)&&Array.
6
+ isArray(group["skills"])?group["skills"]:[];return skills.filter(isRecord).map(skill=>({...skill,category_id:skill["category_id"]??category["id"]??null,category_name:category["name"]??null}))})}function groupedCategories(body){groupedSkillRows(body);return body["categories"]}function skillMatrix(body){const matrix=isRecord(body)?body["matrix"]:void 0;if(!Array.isArray(matrix)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u306E\u5FDC\u7B54\u306B matrix \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
7
+ return matrix.filter(isRecord)}function qualificationRows(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u8CC7\u683C\u30DE\u30B9\u30BF\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}async function skillNames(ctx,ids=[]){const map={};try{for(const row of groupedSkillRows(await ctx.send({method:"GET",path:GROUPED_PATH}))){
8
+ if(typeof row["id"]==="string"&&typeof row["name"]==="string")map[row["id"]]=row["name"]}}catch(err){ctx.warn(`\u30B9\u30AD\u30EB\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001skill_name \u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.message}\uFF09\u3002skill_id \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}const missing=[...new Set(ids)].filter(id=>!Object.hasOwn(map,id));if(missing.length===0)return map;try{const body=await ctx.
9
+ send({method:"GET",path:SKILLS_PATH});const list=isRecord(body)&&Array.isArray(body["list"])?body["list"]:[];for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string")map[row["id"]]=row["name"]}}catch{}const unresolved=missing.filter(id=>!Object.hasOwn(map,id)).length;if(unresolved>0){ctx.warn(`${unresolved} \u4EF6\u306E\u30B9\u30AD\u30EB\u306F\u540D\u524D\u3092\u5F15\u3051\u306A\u304B\u3063\u305F\u305F\u3081\u3001skill_name \u306E\u5217\u304C\u7A7A\u6B04\u3067\u3059\uFF08\u524A\u9664\u3055\u308C\u305F\u30B9\u30AD\u30EB\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002skill_id \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}
10
+ return map}function matrixSkillIds(matrix){return matrix.flatMap(row=>(Array.isArray(row["skills"])?row["skills"].filter(isRecord):[]).map(skill=>skill["skill_id"]).filter(id=>typeof id==="string"))}async function usersByDepartment(ctx,options={}){const departments={};let cursor;for(let page=0;page<USERS_MAX_PAGES;page++){const body=await ctx.send({method:"GET",path:USERS_LIST_PATH,query:{limit:USERS_PAGE_LIMIT,cursor,department_id:options.departmentId,include_hidden:"true"}});const items=isRecord(
11
+ body)?body["items"]:void 0;if(!Array.isArray(items)){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}for(const row of items){if(isRecord(row)&&typeof row["user_id"]==="string"){departments[row["user_id"]]=typeof row["department_name"]==="string"?row["department_name"]:null}}if(options.needed!==void 0&&[...options.needed].
12
+ every(id=>Object.hasOwn(departments,id))){return{departments,complete:true}}const next=isRecord(body)?body["next_cursor"]:void 0;if(!(isRecord(body)&&body["has_more"]===true&&typeof next==="string"&&next!=="")){return{departments,complete:true}}cursor=next}return{departments,complete:false}}var FISCAL_YEAR_FLAG={name:"--fiscal-year",summary:"\u5E74\u5EA6\uFF08\u4F8B: 2026\uFF09\u3002\u7701\u7565\u3059\u308B\u3068\u5168\u5E74\u5EA6\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u304C\u4E26\u3076",takesValue:true,
13
+ placeholder:"<\u5E74\u5EA6>"};function fiscalYear(input){const raw=nonEmpty(input.flags,"--fiscal-year");if(raw===void 0)return void 0;if(!/^\d{4}$/.test(raw)){throw new UsageError(`--fiscal-year \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u897F\u66A64\u6841\u306E\u5E74\u5EA6\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: --fiscal-year 2026\uFF09")}return raw}function minLevel(input){const raw=nonEmpty(input.flags,"--min-level");if(raw===void 0)
14
+ return 1;if(!/^[1-5]$/.test(raw)){throw new UsageError(`--min-level \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"1\u301C5 \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\u30EC\u30D9\u30EB\u306F1\u301C5\uFF09")}return Number(raw)}function noArgs(input,usage){if(input.args.length>0)throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u306F\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}function skillMapPlan(input){
15
+ return{method:"GET",path:SKILL_MAP_PATH,query:{fiscal_year:fiscalYear(input)}}}function matchSkill(rows,ref){const byId=rows.find(row=>row["id"]===ref);if(byId!==void 0)return byId;const lower=ref.toLowerCase();const name=row=>String(row["name"]??"").toLowerCase();const exact=rows.filter(row=>name(row)===lower);const hits=exact.length>0?exact:rows.filter(row=>name(row).includes(lower));if(hits.length===1&&hits[0]!==void 0)return hits[0];if(hits.length===0){throw new UsageError(`\u30B9\u30AD\u30EB\u300C${ref}\
16
+ \u300D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`,"\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u30B9\u30AD\u30EB\u306F twp skill list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059")}throw new UsageError(`\u30B9\u30AD\u30EB\u300C${ref}\u300D\u306B ${hits.length} \u4EF6\u5F53\u305F\u308A\u307E\u3057\u305F: ${hits.map(row=>`${String(row["name"])}\uFF08${String(row["id"])}\uFF09`).join(" / ")}`,"\u540D\u524D\u3092\u5B8C\u5168\u306B\u66F8\u304F\u304B\u3001ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}
17
+ var SKILL_LIST_COLUMNS=["category_name","id","name","is_active","description"];var listOperation={name:"list",summary:"\u30B9\u30AD\u30EB\u30DE\u30B9\u30BF\u3092\u30AB\u30C6\u30B4\u30EA\u5225\u306B\u4E00\u89A7\u3059\u308B",usage:"twp skill list",description:"GET /api/v2/organization/skills/grouped\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F1\u30B9\u30AD\u30EB1\u884C\uFF08category_name / id / name / is_active / description\uFF09\u3067\u3059\u3002\n--output json \u306F\u30AB\u30C6\u30B4\u30EA\u3054\u3068\u306E\u5165\u308C\u5B50\uFF08categories[].category / skills[]\u30FB\u8A55\u4FA1\u57FA\u6E96 evaluation_criteria \u3092\u542B\u3080\uFF09\
18
+ \u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002",flags:[],plan(input){noArgs(input,"twp skill list help");return{method:"GET",path:GROUPED_PATH}},summarize:body=>groupedSkillRows(body).map(row=>pick(row,SKILL_LIST_COLUMNS)),raw:body=>groupedCategories(body)};function mapBody(body){if(isRecord(body)&&isRecord(body["response"]))return body;return{response:isRecord(body)?body:{},skillNames:{}}}var MAP_COLUMNS=["user_name","skill_name","level","target_level","user_id","skill_id"];var mapOperation={
19
+ name:"map",summary:"\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\uFF08\u30E6\u30FC\u30B6\u30FC\xD7\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\u30EC\u30D9\u30EB\uFF09\u3092\u8868\u793A\u3059\u308B\uFF08HR\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp skill map [--fiscal-year <\u5E74\u5EA6>] [--department <\u90E8\u7F72>]",description:"GET /api/v2/organization/skill-map\u3002\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u304C\u8F09\u308A\u307E\u3059\u3002\nlevel \u306F\u78BA\u5B9A\u30EC\u30D9\u30EB\uFF08\u672A\u78BA\u5B9A\u306A\u3089\u81EA\u5DF1\u8A55\u4FA1\u30EC\u30D9\u30EB\u30FB\u3069\u3061\u3089\u3082\u7121\u3051\u308C\u3070\u7A7A\uFF09\u3001target_level \u306F\u76EE\u6A19\u30EC\u30D9\u30EB\u3067\u3059\u3002\n\u884C\u306F\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\uFF08\u30E6\u30FC\u30B6\u30FC\xD7\u5E74\u5EA6\uFF09\u3054\u3068\u306B\u51FA\u308B\u306E\u3067\u3001--fiscal-year \u3092\u7701\u7565\u3059\u308B\u3068\u540C\u3058\u4EBA\u304C\u5E74\u5EA6\u306E\u6570\u3060\u3051\
20
+ \u4E26\u3073\u307E\u3059\u3002\n--department \u306F\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09\u3002\u30B5\u30FC\u30D0\u306E\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u306F\u90E8\u7F72\u3067\u7D5E\u308C\u306A\u3044\u305F\u3081\u3001\n\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\uFF08\u4E3B\u6240\u5C5E\u30FB\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u4EBA\u3082\u542B\u3081\u308B\uFF09\u3092\u5F15\u3044\u3066\u305D\u306E\u90E8\u7F72\u306E\u4EBA\u3060\u3051\u306B\u7D5E\u308A\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C\u5F15\u3051\u306A\u3051\u308C\u3070\n\u7D5E\u3089\u305A\u306B\u51FA\u3059\u3053\u3068\u306F\u305B\u305A\u3001\u6B62\u307E\u308A\u307E\u3059\uFF08\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\uFF09\u3002\n\n--output table / text / tsv \u306F1\u30E6\u30FC\u30B6\u30FC1\u30B9\u30AD\u30EB1\u884C\uFF08user_name / skill_name / level / target_level / user_id / skill_id\uFF09\u3067\u3059\u3002\n--output json \u306F\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\uFF08matrix\u30FBskill_summary\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF08--department \u3067\u7D5E\u3063\u305F\u5834\u5408\u306F matrix \u3060\u3051\u304C\u7D5E\u3089\u308C\u307E\u3059\uFF09\u3002",
21
+ forbidden:HR_FORBIDDEN,flags:[FISCAL_YEAR_FLAG,{name:"--department",summary:"\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"}],async prepare(input,ctx){noArgs(input,"twp skill map help");fiscalYear(input);const department=nonEmpty(input.flags,"--department");if(department===void 0)return input;return withResolved(input,{departmentId:(await ctx.resolver.department(department)).
22
+ id})},plan:skillMapPlan,plannedNotes:input=>["\u3053\u306E\u3042\u3068\u3001\u30B9\u30AD\u30EB\u540D\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u30B9\u30AD\u30EB\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\u3002",...input.flags.has("--department")?["\u90E8\u7F72\u3067\u7D5E\u308B\u305F\u3081\u3001\u305D\u306E\u90E8\u7F72\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\uFF08\u4E3B\u6240\u5C5E\uFF09\u3092 GET \u3057\u307E\u3059\u3002"]:[]],async execute(input,ctx){const response=await ctx.send(skillMapPlan(
23
+ input));let matrix=skillMatrix(response);const departmentId=input.resolved?.["departmentId"];if(departmentId!==void 0){let result;try{result=await usersByDepartment(ctx,{departmentId})}catch(err){if(err instanceof ApiError&&err.status===403){throw new ApiRejectedError(`--department \u3067\u7D5E\u308B\u306B\u306F\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\uFF09\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002--department \u3092\u5916\u3057\u3066\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${err.
24
+ message}\uFF09`)}throw err}const{departments,complete}=result;if(!complete){throw new ApiResponseError(`\u90E8\u7F72\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C ${USERS_MAX_PAGES*USERS_PAGE_LIMIT} \u4EF6\u3092\u8D85\u3048\u305F\u305F\u3081\u3001\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002--department \u3092\u5916\u3057\u3066\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const before=matrix.length;matrix=matrix.filter(row=>typeof row["user_id"]===
25
+ "string"&&Object.hasOwn(departments,row["user_id"]));const excluded=before-matrix.length;if(excluded>0){ctx.warn(`\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u306E ${before} \u4EBA\u306E\u3046\u3061\u3001\u3053\u306E\u90E8\u7F72\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\uFF08\u5728\u7C4D\u4E2D\u30FB\u4E3B\u6240\u5C5E\uFF09\u306B\u51FA\u306A\u3044 ${excluded} \u4EBA\u3092\u9664\u3044\u3066\u3044\u307E\u3059\uFF08\u4ED6\u90E8\u7F72\u306E\u4EBA\u306E\u307B\u304B\u3001\u5931\u52B9\u30FB\u975E\u8868\u793A\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u542B\u307F\u307E\u3059\uFF09\u3002`)}}
26
+ return{response:{...response,matrix},skillNames:await skillNames(ctx,matrixSkillIds(matrix))}},summarize(body){const{response,skillNames:names}=mapBody(body);return skillMatrix(response).flatMap(row=>{const skills=Array.isArray(row["skills"])?row["skills"].filter(isRecord):[];return skills.map(skill=>pick({...skill,user_id:row["user_id"],user_name:row["user_name"],skill_name:typeof skill["skill_id"]==="string"?names[skill["skill_id"]]??null:null},MAP_COLUMNS))})},raw:body=>mapBody(body).response};
27
+ var WHO_COLUMNS=["user_name","department_name","level","target_level","user_id"];function whoRows(body){const{response,departments}=mapBody(body);const skillId=response["skill_id"];return skillMatrix(response).map(row=>{const skill=(Array.isArray(row["skills"])?row["skills"].filter(isRecord):[]).find(s=>s["skill_id"]===skillId)??{};const userId=row["user_id"];return{user_id:userId,user_name:row["user_name"]??null,department_name:typeof userId==="string"?departments!==void 0&&Object.hasOwn(departments,
28
+ userId)?departments[userId]:null:null,skill_id:skillId,level:skill["level"]??null,target_level:skill["target_level"]??null}})}var whoOperation={name:"who",summary:"\u6307\u5B9A\u3057\u305F\u30B9\u30AD\u30EB\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u3092\u6240\u5C5E\u4ED8\u304D\u3067\u51FA\u3059\uFF08HR\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp skill who --skill <\u30B9\u30AD\u30EB> [--min-level <1\u301C5>] [--fiscal-year <\u5E74\u5EA6>]",description:"\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\uFF08GET /api/v2/organization/skill-\
29
+ map\uFF09\u304B\u3089\u3001\u6307\u5B9A\u3057\u305F\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\u30EC\u30D9\u30EB\u304C --min-level\uFF08\u65E2\u5B9A 1\uFF09\u4EE5\u4E0A\u306E\n\u30E6\u30FC\u30B6\u30FC\u3092\u30EC\u30D9\u30EB\u306E\u9AD8\u3044\u9806\u306B\u51FA\u3057\u307E\u3059\u3002level \u306F\u78BA\u5B9A\u30EC\u30D9\u30EB\uFF08\u672A\u78BA\u5B9A\u306A\u3089\u81EA\u5DF1\u8A55\u4FA1\u30EC\u30D9\u30EB\uFF09\u3067\u3001\u3069\u3061\u3089\u3082\u7121\u3044\u4EBA\u306F\u51FA\u3057\u307E\u305B\u3093\u3002\n\u884C\u306F\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\uFF08\u30E6\u30FC\u30B6\u30FC\xD7\u5E74\u5EA6\uFF09\u3054\u3068\u306A\u306E\u3067\u3001--fiscal-year \u3092\u7701\u7565\u3059\u308B\u3068\u540C\u3058\u4EBA\u304C\u5E74\u5EA6\u306E\u6570\u3060\u3051\u4E26\u3073\u307E\u3059\u3002\n--skill \u306F ID \u304B\u540D\u524D\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u5B8C\u5168\u4E00\u81F4 \u2192 \u90E8\u5206\u4E00\u81F4\u30671\u4EF6\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF09\u3002\n\u30B5\u30FC\u30D0\u306B\u6A2A\u65AD\u691C\u7D22\u306E API \u306F\u7121\u3044\u305F\u3081\u3001\u30B9\u30AD\u30EB\u4E00\u89A7\u30FB\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u30FB\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\uFF08\u6240\u5C5E\u306E\u8868\u793A\u7528\uFF09\u3092\u9806\u306B GET \u3057\u3066 CLI \u3067\u7D5E\u308A\u307E\u3059\u3002\n\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C\u5F15\u3051\u306A\u3044\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u7B49\uFF09\u3068\u304D\u306F department_name \u3092\u7A7A\u6B04\u306B\u3057\u3066\u3001\u305D\u306E\u65E8\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\n--output json \u306F\u8A72\u5F53\u8005\u306E\u884C\uFF08user_id / user_name / department_name / skill_id / level / target_level\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002\n\u8CC7\u683C\u306E\u4FDD\u6709\u8005\u306E\u6A2A\u65AD\u691C\u7D22\uFF08twp qualification who\uFF09\u306F\u30B5\u30FC\u30D0\u306B AP\
30
+ I \u304C\u7121\u3044\u305F\u3081\u3001\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",forbidden:HR_FORBIDDEN,flags:[{name:"--skill",summary:"\u5BFE\u8C61\u306E\u30B9\u30AD\u30EB\uFF08ID\u30FB\u540D\u524D\uFF09",takesValue:true,placeholder:"<\u30B9\u30AD\u30EB>"},{name:"--min-level",summary:"\u3053\u306E\u8A55\u4FA1\u30EC\u30D9\u30EB\u4EE5\u4E0A\u306E\u4EBA\u3060\u3051\u51FA\u3059\uFF081\u301C5\u30FB\u65E2\u5B9A 1\uFF09",takesValue:true,placeholder:"<1\u301C5>"},FISCAL_YEAR_FLAG],plan(input){noArgs(
31
+ input,"twp skill who help");if(nonEmpty(input.flags,"--skill")===void 0){throw new UsageError("--skill \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp skill who --skill <\u30B9\u30AD\u30EB> [--min-level <1\u301C5>]")}minLevel(input);return skillMapPlan(input)},plannedNotes:()=>["\u3053\u306E\u524D\u306B\u3001--skill \u3092\u89E3\u6C7A\u3059\u308B\u305F\u3081\u30B9\u30AD\u30EB\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\u3002","\u3053\u306E\u3042\u3068\u3001\u6240\u5C5E\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\u3002"],
32
+ async execute(input,ctx){const ref=nonEmpty(input.flags,"--skill");const threshold=minLevel(input);const skill=matchSkill(groupedSkillRows(await ctx.send({method:"GET",path:GROUPED_PATH})),ref);const skillId=String(skill["id"]);const response=await ctx.send(skillMapPlan(input));const level=row=>{const hit=(Array.isArray(row["skills"])?row["skills"].filter(isRecord):[]).find(s=>s["skill_id"]===skillId);return typeof hit?.["level"]==="number"?hit["level"]:0};const matrix=skillMatrix(response).filter(
33
+ row=>level(row)>=threshold).sort((a,b)=>level(b)-level(a));let departments;if(matrix.length>0){try{const needed=new Set(matrix.map(row=>String(row["user_id"])));const result=await usersByDepartment(ctx,{needed});const found=result.departments;departments=found;const unresolved=[...needed].filter(id=>!Object.hasOwn(found,id)).length;if(unresolved>0){ctx.warn(`${unresolved} \u4EBA\u306E\u6240\u5C5E\u3092\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304B\u3089\u5F15\u3051\u306A\u304B\u3063\u305F\u305F\u3081\u3001department_name \u306F\u7A7A\u6B04\u3067\u3059\uFF08\u975E\u8868\u793A\u30FB\u5931\u52B9\u306E\u30E6\u30FC\u30B6\u30FC\u3001\u307E\u305F\u306F\u4E00\u89A7\u306E\u4E0A\u9650\u8D85\u3048\uFF09\u3002`)}}catch(err){
34
+ ctx.warn(`\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001department_name \u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.message}\uFF09\u3002`)}}return{response:{...response,skill_id:skillId,skill_name:skill["name"]??null,matrix},skillNames:{},departments}},summarize:body=>whoRows(body).map(row=>pick(row,WHO_COLUMNS)),raw:body=>whoRows(body),notes(body){const{response}=mapBody(body);if(skillMatrix(response).length>0)return[];return[`\u30B9\u30AD\u30EB\u300C${String(
35
+ response["skill_name"]??response["skill_id"])}\u300D\u3067\u6761\u4EF6\u306B\u5F53\u305F\u308B\u30E6\u30FC\u30B6\u30FC\u306F\u3044\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u306B\u8F09\u308B\u306E\u306F\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u3067\u3059\uFF09\u3002`]}};var PROFILES_PATH="/api/v2/organization/user-skill-profiles";var SELF_EVALUATE_MAX_CHARS=1e6;var SELF_COMMENT_MAX=2e3;var POLICY_MAX=5e3;var SELF_EVALUATE_HELP='\
36
+ \u5185\u5BB9\uFF08--content-file\uFF09\u306F\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u308B\u5F62\u306E JSON \u3067\u3059\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09:\n {"skills": [{"skill_id": "<\u30B9\u30AD\u30EBID>", "self_level": 1\u301C5, "self_comment": "\u4EFB\u610F\u30FB2,000\u5B57\u307E\u3067"}],\n "skill_up_policy": "\u4EFB\u610F\u30FB\u30B9\u30AD\u30EB\u30A2\u30C3\u30D7\u65B9\u91DD\u30FB5,000\u5B57\u307E\u3067"}\n skill_up_policy \u306F\u30AD\u30FC\u3092\u7701\u3051\u3070\u4ECA\u306E\u65B9\u91DD\u306E\u307E\u307E\u3001\u7A7A\u6587\u5B57\u304B null \u3092\u66F8\u304F\u3068\u6D88\u3048\u307E\u3059\u3002\n skill_id \u3068\u73FE\u5728\u306E\u8A55\u4FA1\u306F twp user skills me \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF08--output json \u306E skills[].skill_id\uFF09\u3002\n \u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u7121\u3044\u30B9\u30AD\u30EB\u30FB\u77E5\u3089\u306A\u3044\u30AD\u30FC\u306F\u9001\u308B\u524D\u306B\u6B62\u3081\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u524D\u8005\u3092\u9ED9\u3063\u3066\u7121\u8996\u3059\u308B\u305F\u3081\uFF09\u3002\n \u9001\u3089\u306A\u304B\u3063\u305F\u30B9\u30AD\u30EB\u306F\u4ECA\u306E\u81EA\u5DF1\u8A55\u4FA1\u306E\u307E\u307E\u63D0\u51FA\u3055\u308C\u3001\u307E\u3060\u5024\u306E\u7121\u3044\u3082\u306E\u306F\u9001\u308B\u524D\u306B stderr \u3067\u6319\u3052\u307E\u3059\u3002';
37
+ function profileIdArg(input){const[raw,...rest]=input.args;const id=raw?.trim()??"";const usage="twp skill self-evaluate <\u30D7\u30ED\u30D5\u30A1\u30A4\u30EBID> --content-file <JSON> --yes";if(id==="")throw new UsageError("\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${usage}\uFF08ID \u306F twp user skills me \u306E profile_id \u5217\uFF09`);if(rest.length>0)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.
38
+ join(" ")}`,usage);if(!isSafePathSegment(id))throw new UsageError(`\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB ID \u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${id}`,usage);return encodeURIComponent(id)}function parseSelfEvaluation(text){let parsed;try{parsed=JSON.parse(text)}catch(err){throw new UsageError(`--content-file \u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${err.message}\uFF09`,SELF_EVALUATE_HELP)}if(!isRecord(parsed))throw new UsageError(
39
+ "--content-file \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",SELF_EVALUATE_HELP);const problems=[];for(const key of Object.keys(parsed)){if(key!=="skills"&&key!=="skill_up_policy")problems.push(`\u77E5\u3089\u306A\u3044\u30AD\u30FC: ${key}`)}const skills=parsed["skills"];if(!Array.isArray(skills)||skills.length===0){problems.push("skills \u306F1\u4EF6\u4EE5\u4E0A\u306E\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}else{
40
+ const seen=new Set;skills.forEach((row,index)=>{const at=`skills[${index}]`;if(!isRecord(row)){problems.push(`${at} \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return}for(const key of Object.keys(row)){if(!["skill_id","self_level","self_comment"].includes(key))problems.push(`\u77E5\u3089\u306A\u3044\u30AD\u30FC: ${at}.${key}`)}const skillId=row["skill_id"];if(typeof skillId!=="string"||skillId.trim()==="")problems.push(`${at}.skill_id \u304C\u3042\u308A\u307E\u305B\u3093`);else if(seen.
41
+ has(skillId))problems.push(`${at}.skill_id ${skillId} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059`);else seen.add(skillId);const level=row["self_level"];if(!(typeof level==="number"&&Number.isInteger(level)&&level>=1&&level<=5)){problems.push(`${at}.self_level \u306F 1\u301C5 \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${JSON.stringify(level)}\uFF09`)}const comment=row["self_comment"];if(comment!==void 0&&comment!==null){if(typeof comment!=="string")problems.
42
+ push(`${at}.self_comment \u306F\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);else if([...comment].length>SELF_COMMENT_MAX)problems.push(`${at}.self_comment \u304C ${SELF_COMMENT_MAX} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059`)}})}const policy=parsed["skill_up_policy"];if(policy!==void 0&&policy!==null){if(typeof policy!=="string")problems.push("skill_up_policy \u306F\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");else if([...policy].
43
+ length>POLICY_MAX)problems.push(`skill_up_policy \u304C ${POLICY_MAX} \u6587\u5B57\u3092\u8D85\u3048\u3066\u3044\u307E\u3059`)}if(problems.length>0){throw new UsageError(`--content-file \u3092\u76F4\u3057\u3066\u304F\u3060\u3055\u3044:
44
+ ${problems.join("\n ")}`,SELF_EVALUATE_HELP)}return parsed}function selfEvaluatePlan(input){const content=input.resolved?.["content"];if(content===void 0)throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: content \u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08prepare() \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");return{method:"POST",path:`${PROFILES_PATH}/${profileIdArg(input)}/self-evaluate`,body:JSON.parse(content)}}var selfEvaluateOperation={name:"self-evaluate",summary:"\u81EA\u5206\u306E\u30B9\u30AD\u30EB\
45
+ \u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u81EA\u5DF1\u8A55\u4FA1\u3092\u5165\u308C\u3066\u63D0\u51FA\u3059\u308B\uFF08\u53D6\u308A\u6D88\u305B\u306A\u3044\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp skill self-evaluate <\u30D7\u30ED\u30D5\u30A1\u30A4\u30EBID> --content-file <JSON> --yes",description:"POST /api/v2/organization/user-skill-profiles/{id}/self-evaluate\u3002\u753B\u9762\u306E\u300C\u81EA\u5DF1\u8A55\u4FA1\u3092\u9001\u4FE1\u300D\u3068\u540C\u3058\u64CD\u4F5C\u3067\u3059\u3002\n\u9001\u4FE1\u3059\u308B\u3068\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306F\u300C\u4E0B\u66F8\u304D\u300D\uFF08draft\uFF09\u304B\u3089\u300C\u81EA\u5DF1\u8A55\u4FA1\u6E08\u307F\u300D\uFF08self_evaluated\uFF09\u3078\u9032\u307F\u3001\u4E0A\u9577\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\u3002\n\u9001\u4FE1\u5F8C\u306F\u81EA\u5206\u3067\u306F\u76F4\u305B\u306A\u3044\u306E\u3067 --yes \u304C\u8981\u308A\u307E\u3059\u3002\u81EA\u5DF1\u8A55\u4FA1\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\u306E\u30D7\
46
+ \u30ED\u30D5\u30A1\u30A4\u30EB\u304C draft \u306E\u3068\u304D\u3060\u3051\u3067\u3059\u3002\n\u9001\u308B\u524D\u306B\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092 GET \u3057\u3001\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u7121\u3044\u30B9\u30AD\u30EB\u3092\u6B62\u3081\u3001\u9001\u3089\u306A\u304B\u3063\u305F\u30B9\u30AD\u30EB\u3092 stderr \u306B\u6319\u3052\u307E\u3059\u3002\n\n"+SELF_EVALUATE_HELP,destructive:true,confirmation:"\u9001\u4FE1\u5F8C\u306F\u53D6\u308A\u6D88\u305B\u305A\u3001\u4E0A\u9577\u3078\u901A\u77E5\u304C\u5C4A\u304F\u64CD\u4F5C",
47
+ forbidden:"\u81EA\u5DF1\u8A55\u4FA1\u306F\u672C\u4EBA\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3067\u3060\u3051\u9001\u308C\u307E\u3059\uFF08\u4ED6\u4EBA\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u306F\u9001\u308C\u307E\u305B\u3093\uFF09",flags:[{name:"--content-file",summary:"\u81EA\u5DF1\u8A55\u4FA1\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}],async prepare(input){profileIdArg(input);const text=await readBody(
48
+ input,{flag:"--content",fileFlag:"--content-file",label:"\u81EA\u5DF1\u8A55\u4FA1\u306E\u5185\u5BB9",maxChars:SELF_EVALUATE_MAX_CHARS,usage:"twp skill self-evaluate <\u30D7\u30ED\u30D5\u30A1\u30A4\u30EBID> --content-file <JSON> --yes"});if(text===void 0)throw new UsageError("--content-file \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",SELF_EVALUATE_HELP);return withResolved(input,{content:JSON.stringify(parseSelfEvaluation(text))})},plan:selfEvaluatePlan,plannedNotes:input=>{const content=JSON.
49
+ parse(input.resolved?.["content"]??'{"skills":[]}');return[`\u3053\u306E\u524D\u306B\u3001\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092 GET \u3057\u3066\u9001\u308B ${content.skills.length} \u4EF6\u306E\u30B9\u30AD\u30EB\u304C\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u3042\u308B\u304B\u3092\u78BA\u304B\u3081\u307E\u3059\u3002`,"\u9001\u4FE1\u3059\u308B\u3068\u81EA\u5DF1\u8A55\u4FA1\u6E08\u307F\u306B\u306A\u308A\u3001\u4E0A\u9577\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\uFF08\u81EA\u5206\u3067\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002"]},
50
+ async execute(input,ctx){const plan=selfEvaluatePlan(input);const profileBody=await ctx.send({method:"GET",path:`${PROFILES_PATH}/${profileIdArg(input)}`});const profile=isRecord(profileBody)?profileBody["user_skill_profile"]:void 0;if(!isRecord(profile)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306E\u5FDC\u7B54\u306B user_skill_profile \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
51
+ if(profile["status"]!=="draft"){throw new ApiRejectedError(`\u3053\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306F\u300C${String(profile["status"])}\u300D\u306A\u306E\u3067\u81EA\u5DF1\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08\u81EA\u5DF1\u8A55\u4FA1\u306F draft \u306E\u3068\u304D\u3060\u3051\u3067\u3059\u3002\u73FE\u5728\u306E\u72B6\u614B\u306F twp user skills me \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09`)}const profileSkillIds=(Array.isArray(profile["skills"])?profile["skills"]:[]).
52
+ filter(isRecord).map(skill=>skill["skill_id"]).filter(id=>typeof id==="string");const sent=(plan.body.skills??[]).map(skill=>String(skill["skill_id"]));const unknown=sent.filter(id=>!profileSkillIds.includes(id));if(unknown.length>0){throw new UsageError(`\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u7121\u3044\u30B9\u30AD\u30EB\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${unknown.join(" / ")}`,`\u3053\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306E\u30B9\u30AD\u30EB\u306F ${profileSkillIds.
53
+ join(" / ")||"\uFF08\u306A\u3057\uFF09"} \u3067\u3059\uFF08twp user skills me --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09`)}const blank=(Array.isArray(profile["skills"])?profile["skills"]:[]).filter(isRecord).filter(skill=>typeof skill["skill_id"]==="string"&&!sent.includes(skill["skill_id"])&&(skill["self_level"]??null)===null).map(skill=>String(skill["skill_id"]));if(blank.length>0){ctx.warn(`\u9001\u3089\u306A\u304B\u3063\u305F\u30B9\u30AD\u30EB\u306F\u81EA\u5DF1\u8A55\u4FA1\u304C\u672A\u5165\u529B\u306E\u307E\u307E\u63D0\u51FA\u3055\u308C\u307E\u3059: ${blank.
54
+ join(" / ")}`)}return ctx.send(plan)},summarize:body=>{const profile=isRecord(body)&&isRecord(body["user_skill_profile"])?body["user_skill_profile"]:{};return{message:isRecord(body)?body["message"]??null:null,id:profile["id"]??null,status:profile["status"]??null,fiscal_year:profile["fiscal_year"]??null}},raw:body=>{if(!isRecord(body)||body["result"]!==true||!isRecord(body["user_skill_profile"])){throw new ApiResponseError("\u81EA\u5DF1\u8A55\u4FA1\u306E\u5FDC\u7B54\u306B user_skill_profile \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
55
+ return body["user_skill_profile"]}};var SKILL_LABEL="\u30B9\u30AD\u30EB";var CATEGORY_LABEL="\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA";var ADMIN_FORBIDDEN=label=>`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${label}\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u4E26\u3073\u66FF\u3048\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;var SKILL_COLUMNS=["id","category_id","name","skill_code","sub_group_label","sort_order","is_active","d\
56
+ escription"];var CATEGORY_COLUMNS=["id","name","sort_order","is_active","department_scope","iso_standard","description"];var ACTIVE_FIELD={kind:"boolean",flag:"--active",key:"is_active",summary:"\u6709\u52B9\u306B\u3059\u308B\u304B\uFF08true / false\u3002\u7121\u52B9\u306B\u3059\u308B\u3068\u9078\u629E\u80A2\u306B\u51FA\u306A\u304F\u306A\u308B\uFF09"};var SORT_ORDER_FIELD={kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,summary:"\u8868\u793A\u9806\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"};
57
+ var SKILL_FIELDS=[{kind:"text",flag:"--name",key:"name",label:"\u30B9\u30AD\u30EB\u540D",maxChars:255,summary:"\u30B9\u30AD\u30EB\u540D"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},{kind:"text",flag:"--skill-code",key:"skill_code",label:"\u30B9\u30AD\u30EB\u30B3\u30FC\u30C9",maxChars:100,summary:"\u30B9\u30AD\u30EB\u30B3\u30FC\u30C9\uFF08\u4EFB\u610F\uFF09"},{kind:"text",flag:"--sub-group-label",key:"sub_group_label",label:"\u5C0F\u5206\u985E",
58
+ maxChars:100,summary:"\u30AB\u30C6\u30B4\u30EA\u5185\u306E\u5C0F\u5206\u985E\u306E\u898B\u51FA\u3057\uFF08\u4EFB\u610F\uFF09"},SORT_ORDER_FIELD,ACTIVE_FIELD];var CATEGORY_FIELDS=[{kind:"text",flag:"--name",key:"name",label:"\u30AB\u30C6\u30B4\u30EA\u540D",maxChars:255,summary:"\u30AB\u30C6\u30B4\u30EA\u540D"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},SORT_ORDER_FIELD,ACTIVE_FIELD,{kind:"enum",flag:"--department-scope",key:"depar\
59
+ tment_scope",values:["system","sales","admin"],summary:"\u5BFE\u8C61\u306E\u90E8\u9580\u533A\u5206\uFF08system / sales / admin\uFF09"},{kind:"enum",flag:"--iso-standard",key:"iso_standard",values:["ISO9001","ISO27001","both"],summary:"\u5BFE\u5FDC\u3059\u308B ISO \u898F\u683C\uFF08ISO9001 / ISO27001 / both\uFF09"}];var CATEGORY_FLAG={name:"--category",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var SKILL_REF_FLAG={
60
+ name:"--skill",summary:"\u5BFE\u8C61\u306E\u30B9\u30AD\u30EB\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30B9\u30AD\u30EB>"};var CATEGORY_REF_FLAG={name:"--category",summary:"\u5BFE\u8C61\u306E\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA>"};var SKILL_REF_HELP="<\u30B9\u30AD\u30EB> \u306F\u540D\u524D\u30FB\u30B9\u30AD\u30EB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\
61
+ \u304D\u307E\u3059\uFF08\u7121\u52B9\u5316\u3057\u305F\u30B9\u30AD\u30EB\u3082\u5BFE\u8C61\u3067\u3059\u3002\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30B9\u30AD\u30EB\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";var CATEGORY_REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u540D\u524D\u304B ID \u3067\u6307\u5B9A\u3067\u304D\
62
+ \u307E\u3059\uFF08\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u306F\u30B3\u30FC\u30C9\u3092\u6301\u3061\u307E\u305B\u3093\uFF09\u3002\nID \u4EE5\u5916\u306F\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";var skillItem=body=>masterItem(body,"skill",SKILL_LABEL);var categoryItem=body=>masterItem(body,"skill_category",CATEGORY_LABEL);var skillPath=input=>`${SKILLS_PATH}\
63
+ /${idSegment(input,SKILL_LABEL)}`;var categoryPath=input=>`${SKILL_CATEGORIES_PATH}/${idSegment(input,CATEGORY_LABEL)}`;async function prepareSkillTarget(input,ctx,usage){return withResolved(input,{id:await targetId(input,{flag:SKILL_REF_FLAG.name,label:SKILL_LABEL,usage,resolve:ref=>ctx.resolver.skill(ref)})})}async function prepareCategoryTarget(input,ctx,usage){return withResolved(input,{id:await targetId(input,{flag:CATEGORY_REF_FLAG.name,label:CATEGORY_LABEL,usage,resolve:ref=>ctx.resolver.
64
+ skillCategory(ref,"<\u30AB\u30C6\u30B4\u30EA>")})})}function ulidOr(ref){const upper=ref.trim().toUpperCase();return ULID_RE.test(upper)?upper:void 0}async function categoryId(ref,ctx){return ulidOr(ref)??(await ctx.resolver.skillCategory(ref)).id}async function resolveCategoryFlag(input,ctx){const ref=nonEmpty(input.flags,CATEGORY_FLAG.name);if(ref===void 0)return input;return withResolved(input,{category_id:await categoryId(ref,ctx)})}function skillBody(input){const body=fieldBody(input,SKILL_FIELDS);
65
+ const categoryId2=input.resolved?.["category_id"];if(categoryId2!==void 0)body["category_id"]=categoryId2;return body}var skillGetOperation={name:"get",summary:"\u30B9\u30AD\u30EB1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp skill get <\u30B9\u30AD\u30EB>",description:`GET /api/v2/organization/skills/{id}\u3002
66
+
67
+ ${SKILL_REF_HELP}
68
+
69
+ --output json \u306F\u8A55\u4FA1\u57FA\u6E96\uFF08evaluation_criteria\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[SKILL_REF_FLAG],prepare:(input,ctx)=>prepareSkillTarget(input,ctx,"twp skill get help"),plan:input=>({method:"GET",path:skillPath(input)}),summarize:body=>pick(skillItem(body),SKILL_COLUMNS),raw:body=>skillItem(body)};var skillCreateOperation={name:"create",summary:"\u30B9\u30AD\u30EB\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09",
70
+ usage:"twp skill create --category <\u30AB\u30C6\u30B4\u30EA> --name <\u30B9\u30AD\u30EB\u540D> [\u9805\u76EE\u2026]",description:"POST /api/v2/organization/skills\u3002--category \u3068 --name \u304C\u5FC5\u9808\u3067\u3059\u3002\u305D\u306E\u307B\u304B\u306E\u9805\u76EE\u306F\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002\n\u8A55\u4FA1\u57FA\u6E96\uFF08evaluation_criteria\uFF09\u3068\u5FC5\u9808\u30ED\u30FC\u30EB\uFF08required_for_roles\uFF09\u306F\u30D5\u30E9\u30B0\u306B\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u753B\u9762\u304B twp api \u3067\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n\u4F5C\u6210\u3057\u305F\u30B9\u30AD\u30EB\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002",
71
+ forbidden:ADMIN_FORBIDDEN(SKILL_LABEL),flags:[CATEGORY_FLAG,...createFlags(SKILL_FIELDS)],async prepare(input,ctx){if(input.args.length>0)throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp skill create help");const body=fieldBody(input,SKILL_FIELDS);if(nonEmpty(input.flags,CATEGORY_FLAG.name)===void 0)throw new UsageError("--category \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp skill create help");if(body["\
72
+ name"]===void 0)throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp skill create help");return resolveCategoryFlag(input,ctx)},plan:input=>({method:"POST",path:SKILLS_PATH,body:skillBody(input)}),summarize:body=>pick(skillItem(body),SKILL_COLUMNS),raw:body=>skillItem(body),notes:()=>[cacheNote(SKILL_LABEL)]};var skillUpdateOperation={name:"update",summary:"\u30B9\u30AD\u30EB\u3092\u66F4\u65B0\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp \
73
+ skill update <\u30B9\u30AD\u30EB> [--category <\u30AB\u30C6\u30B4\u30EA>] [\u9805\u76EE\u2026]",description:"PUT /api/v2/organization/skills/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n--category \u3092\u6307\u5B9A\u3059\u308B\u3068\u30B9\u30AD\u30EB\u3092\u5225\u306E\u30AB\u30C6\u30B4\u30EA\u3078\u79FB\u3057\u307E\u3059\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002\n\n"+
74
+ SKILL_REF_HELP,forbidden:ADMIN_FORBIDDEN(SKILL_LABEL),flags:[CATEGORY_FLAG,...updateFlags(SKILL_FIELDS),SKILL_REF_FLAG],async prepare(input,ctx){if(!hasAnyField(input,SKILL_FIELDS)&&!input.flags.has(CATEGORY_FLAG.name)){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp skill update help")}fieldBody(input,SKILL_FIELDS);if(input.flags.has(CATEGORY_FLAG.name)&&nonEmpty(input.flags,CATEGORY_FLAG.name)===void 0){throw new UsageError(
75
+ "--category \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","twp skill update help")}return resolveCategoryFlag(await prepareSkillTarget(input,ctx,"twp skill update help"),ctx)},plan:input=>({method:"PUT",path:skillPath(input),body:skillBody(input)}),summarize:body=>pick(skillItem(body),SKILL_COLUMNS),raw:body=>skillItem(body),notes:()=>[cacheNote(SKILL_LABEL)]};var skillDeleteOperation={name:"delete",summary:"\u30B9\u30AD\u30EB\u3092\u524A\u9664\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\u30FB\u8A55\u4FA1\u306E\u8A18\u9332\u304B\u3089\u3082\u6D88\u3048\u308B\uFF09",
76
+ usage:"twp skill delete <\u30B9\u30AD\u30EB> --yes",description:"DELETE /api/v2/organization/skills/{id}\u3002\u30B9\u30AD\u30EB\u306F\u7269\u7406\u524A\u9664\u3055\u308C\u3001**\u5404\u30E6\u30FC\u30B6\u30FC\u306E\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u5165\u3063\u3066\u3044\u308B\n\u305D\u306E\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\uFF08\u81EA\u5DF1\u8A55\u4FA1\u30FB\u4E00\u6B21\u30FB\u4E8C\u6B21\u8A55\u4FA1\u3068\u30B3\u30E1\u30F3\u30C8\uFF09\u3082\u30B5\u30FC\u30D0\u304C\u4E00\u7DD2\u306B\u6D88\u3057\u307E\u3059**\u3002\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\n\u30ED\u30FC\u30EB\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5FC5\u9808\u30B9\u30AD\u30EB\u304B\u3089\u53C2\u7167\u3055\u308C\u3066\u3044\u308B\u3068\u304D\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002\n\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\u306B\u7121\u52B9\u5316\u3057\u3066\u304F\u3060\u3055\u3044: twp skill update <\u30B9\u30AD\u30EB> --active false\n\n"+
77
+ SKILL_REF_HELP,destructive:true,confirmation:"\u30B9\u30AD\u30EB\u3068\u3001\u5404\u30E6\u30FC\u30B6\u30FC\u306E\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u3042\u308B\u305D\u306E\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\u3092\u6D88\u3059\uFF08\u53D6\u308A\u6D88\u305B\u306A\u3044\uFF09\u64CD\u4F5C",forbidden:ADMIN_FORBIDDEN(SKILL_LABEL),flags:[SKILL_REF_FLAG],prepare:(input,ctx)=>prepareSkillTarget(input,ctx,"twp skill delete help"),plannedNotes:()=>["\u524A\u9664\u3059\u308B\u3068\u3001\u5404\u30E6\u30FC\u30B6\u30FC\u306E\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306B\u3042\u308B\u3053\u306E\u30B9\u30AD\u30EB\u306E\u8A55\u4FA1\
78
+ \u3082\u4E00\u7DD2\u306B\u6D88\u3048\u307E\u3059\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002"],plan:input=>({method:"DELETE",path:skillPath(input)}),summarize:body=>acknowledgement(body,"\u30B9\u30AD\u30EB\u524A\u9664"),raw:body=>acknowledgement(body,"\u30B9\u30AD\u30EB\u524A\u9664"),notes:()=>[cacheNote(SKILL_LABEL)]};var REORDER_MAX_BYTES=1e6;var REORDER_USAGE="twp skill reorder --category <\u30AB\u30C6\u30B4\u30EA> --file <\u30D1\u30B9>";var REORDER_FILE_HELP='--file \u306B\u306F\u65B0\u3057\u3044\u4E26\u3073\u9806\u3092\
79
+ \u3001\u5148\u982D\u304B\u3089\u9806\u306B\u66F8\u304D\u307E\u3059\uFF08\u30B9\u30AD\u30EB\u306E ID\u30FB\u30B9\u30AD\u30EB\u30B3\u30FC\u30C9\u30FB\u540D\u524D\u306E\u3069\u308C\u3067\u3082\u53EF\uFF09:\n JSON: ["<\u30B9\u30AD\u30EB>", "<\u30B9\u30AD\u30EB>", \u2026] \u307E\u305F\u306F {"skill_ids": [...]}\n CSV / \u30C6\u30AD\u30B9\u30C8: 1\u884C\u306B1\u30B9\u30AD\u30EB\uFF082\u5217\u76EE\u4EE5\u964D\u306F\u8AAD\u307F\u307E\u305B\u3093\u3002\u30AB\u30F3\u30DE\u3092\u542B\u3080\u540D\u524D\u306F "" \u3067\u56F2\u307F\u307E\u3059\u30021\u884C\u76EE\u304C id / skill_id / name / \u30B9\u30AD\u30EB \u306A\u3089\u898B\u51FA\u3057\u3068\u3057\u3066\u8AAD\u307F\u98DB\u3070\u3057\u307E\u3059\uFF09\n\u30AB\u30C6\u30B4\u30EA\u5185\u306E\u30B9\u30AD\u30EB\u3092**\u904E\u4E0D\u8DB3\u306A\u304F**\u4E26\u3079\u3066\u304F\u3060\u3055\u3044\uFF08\u7121\u52B9\u5316\u3057\u305F\u30B9\u30AD\u30EB\u3082\u542B\u307F\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u4E00\u90E8\u3060\u3051\u306E\u4E26\u3073\u66FF\u3048\u3092\u65AD\u308A\u307E\u3059\uFF09\u3002';
80
+ function parseReorderFile(text){const trimmed=text.trim();let refs;try{const parsed=JSON.parse(trimmed);const list=Array.isArray(parsed)?parsed:isRecord(parsed)?parsed["skill_ids"]:void 0;if(!Array.isArray(list))throw new UsageError('--file \u306E JSON \u306F\u914D\u5217\u304B {"skill_ids": [...]} \u3067\u66F8\u3044\u3066\u304F\u3060\u3055\u3044',REORDER_FILE_HELP);refs=list}catch(err){if(err instanceof UsageError)throw err}if(refs===void 0){const lines=parseCsvRecords(trimmed).map(record=>(record.
81
+ cells[0]??"").trim());if(/^(id|skill_id|name|スキル)$/i.test(lines[0]??""))lines.shift();refs=lines.filter(row=>row!=="")}const problems=[];refs.forEach((ref,index)=>{if(typeof ref!=="string"||ref.trim()==="")problems.push(`${index+1} \u4EF6\u76EE\u304C\u7A7A\u304B\u6587\u5B57\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093`)});if(refs.length===0)problems.push("\u30B9\u30AD\u30EB\u304C1\u4EF6\u3082\u3042\u308A\u307E\u305B\u3093");if(problems.length>0)throw new UsageError(`--file \u3092\u76F4\u3057\u3066\u304F\u3060\u3055\u3044:
82
+ ${problems.join("\n ")}`,REORDER_FILE_HELP);return refs.map(ref=>ref.trim())}function reorderPlan(input){return{method:"PUT",path:`${SKILLS_PATH}/reorder`,body:{category_id:requireResolved(input,"category_id"),skill_ids:JSON.parse(requireResolved(input,"skill_ids"))}}}function byDisplayOrder(rows){const order=row=>typeof row["sort_order"]==="number"?row["sort_order"]:Number.MAX_SAFE_INTEGER;return[...rows].sort((a,b)=>order(a)-order(b)||String(a["name"]??"").localeCompare(String(b["name"]??"")))}
83
+ function reorderPreview(current,next){const ordered=byDisplayOrder(current);const names=new Map(ordered.map(row=>[String(row["id"]),String(row["name"]??row["id"])]));const label=id=>`${names.get(id)??id}\uFF08${id}\uFF09`;const missing=ordered.map(row=>String(row["id"])).filter(id=>!next.includes(id));const unknown=next.filter(id=>!names.has(id));const duplicated=[...new Set(next.filter((id,index)=>next.indexOf(id)!==index))];const problems=[...missing.length>0?[`\u4E26\u3073\u306B\u7121\u3044\u30B9\u30AD\u30EB: ${missing.
84
+ map(label).join(" / ")}`]:[],...unknown.length>0?[`\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306B\u7121\u3044\u30B9\u30AD\u30EB: ${unknown.join(" / ")}`]:[],...duplicated.length>0?[`\u91CD\u8907\u3057\u3066\u3044\u308B\u30B9\u30AD\u30EB: ${duplicated.map(label).join(" / ")}`]:[]];if(problems.length>0){throw new UsageError(`\u30AB\u30C6\u30B4\u30EA\u306E\u30B9\u30AD\u30EB\u3068\u4E26\u3073\u304C\u4E00\u81F4\u3057\u306A\u3044\u305F\u3081\u9001\u308A\u307E\u305B\u3093:
85
+ ${problems.join("\n ")}`,REORDER_FILE_HELP)}const before=ordered.map(row=>String(row["id"]));const moved=next.filter((id,index)=>before.indexOf(id)!==index);if(moved.length===0)return{notes:["\u4ECA\u306E\u4E26\u3073\u3068\u540C\u3058\u3067\u3059\uFF08\u9001\u3063\u3066\u3082\u9806\u756A\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002"],warnings:[]};return{notes:[`\u4E26\u3073\u9806\u306E\u5909\u66F4: ${next.length} \u4EF6\u4E2D ${moved.length} \u4EF6\u306E\u4F4D\u7F6E\u304C\u5909\u308F\u308A\u307E\u3059\uFF08\u65B0\u3057\u3044\u9806\u30FB\u62EC\u5F27\u5185\u306F\u4ECA\u306E\u4F4D\u7F6E \u2192 \u65B0\u3057\u3044\u4F4D\u7F6E\uFF09:`,
86
+ ...next.map((id,index)=>` ${index+1}. ${names.get(id)??id}\uFF08${before.indexOf(id)+1} \u2192 ${index+1}\uFF09`)],warnings:[]}}var skillReorderOperation={name:"reorder",summary:"\u30AB\u30C6\u30B4\u30EA\u5185\u306E\u30B9\u30AD\u30EB\u306E\u4E26\u3073\u9806\u3092\u307E\u3068\u3081\u3066\u5909\u3048\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:REORDER_USAGE,description:"PUT /api/v2/organization/skills/reorder\u3002\u753B\u9762\u306E\u30C9\u30E9\u30C3\u30B0\u3067\u306E\u4E26\u3073\u66FF\u3048\u3068\u540C\u3058\u64CD\u4F5C\u3067\u3001\u8868\u793A\u9806\u3092\u5148\u982D\u304B\u3089 100, 200, \u2026 \u306B\u632F\u308A\u76F4\u3057\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u305D\u306E\u30AB\u30C6\u30B4\u30EA\u306E\u30B9\u30AD\u30EB\u4E00\u89A7\u3092 GET \u3057\u3001\u904E\u4E0D\u8DB3\
87
+ \u3092\u78BA\u304B\u3081\u3066\u4ECA\u306E\u4E26\u3073\u3068\u306E\u5DEE\u5206\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+REORDER_FILE_HELP,forbidden:ADMIN_FORBIDDEN(SKILL_LABEL),flags:[CATEGORY_FLAG,{name:"--file",summary:"\u65B0\u3057\u3044\u4E26\u3073\u9806\u306E\u30D5\u30A1\u30A4\u30EB\uFF08JSON / CSV / \u30C6\u30AD\u30B9\u30C8\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}],async prepare(input,ctx){if(input.args.length>0)
88
+ throw new UsageError(`reorder \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,REORDER_USAGE);const category=nonEmpty(input.flags,CATEGORY_FLAG.name);if(category===void 0)throw new UsageError("--category \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",REORDER_USAGE);const file=nonEmpty(input.flags,"--file");if(file===void 0)throw new UsageError("--file \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${REORDER_USAGE}
89
+ ${REORDER_FILE_HELP}`);const refs=parseReorderFile(readCsvFileText(file,REORDER_USAGE,REORDER_MAX_BYTES,size=>new UsageError(`--file \u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${size} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${REORDER_MAX_BYTES} \u30D0\u30A4\u30C8\uFF09`,REORDER_USAGE)));const category_id=await categoryId(category,ctx);const ids=[];let candidates;for(const ref of refs){const id=ulidOr(ref);if(id!==void 0){ids.push(id);continue}candidates??=await ctx.resolver.skillsInCategory(category_id);
90
+ ids.push((await resolveNamed(ref,candidates,{flag:"--file",label:"\u30B9\u30AD\u30EB",scope:`\u30AB\u30C6\u30B4\u30EA\u300C${category}\u300D`})).id)}return withResolved(input,{category_id,skill_ids:JSON.stringify(ids)})},plan:reorderPlan,plannedNotes:()=>["\u3053\u306E\u524D\u306B\u3001\u30AB\u30C6\u30B4\u30EA\u306E\u30B9\u30AD\u30EB\u4E00\u89A7\u3092 GET \u3057\u3066\u4E26\u3073\u306E\u904E\u4E0D\u8DB3\u3068\u5DEE\u5206\u3092\u78BA\u304B\u3081\u307E\u3059\u3002"],rejected:server=>server.includes(
91
+ "\u4E00\u81F4\u3057\u307E\u305B\u3093")?"\u30AB\u30C6\u30B4\u30EA\u306E\u30B9\u30AD\u30EB\u304C\u5909\u308F\u3063\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002--refresh \u3092\u4ED8\u3051\u3066\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3001\u5DEE\u5206\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002":void 0,async preview(input,ctx){const body=await ctx.send({method:"GET",path:SKILLS_PATH,query:{category_id:requireResolved(input,"category_id")}});const rows=masterRows(body,
92
+ SKILL_LABEL).filter(isRecord);return reorderPreview(rows,JSON.parse(requireResolved(input,"skill_ids")))},summarize:body=>{const skills=isRecord(body)&&Array.isArray(body["skills"])?body["skills"].filter(isRecord):[];return skills.map(row=>pick(row,["sort_order","id","name"]))},raw:body=>{if(!isRecord(body)||body["result"]!==true||!Array.isArray(body["skills"])){throw new ApiResponseError("\u4E26\u3073\u66FF\u3048\u306E\u5FDC\u7B54\u306B skills \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
93
+ return body["skills"]},notes:()=>[cacheNote(SKILL_LABEL)]};var CATEGORY_LIST_COLUMNS=["id","name","sort_order","is_active","department_scope","iso_standard"];var CATEGORY_DELETE_GUIDANCE="\uFF08\u672C\u756A\u3067\u306F\u30B5\u30FC\u30D0\u304C\u7406\u7531\u3092\u4F0F\u305B\u3066\u300C\u30B5\u30FC\u30D0\u30FC\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u300D\u3068\u8FD4\u3057\u307E\u3059\u3002\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u306E 422 \u306F\u7D10\u3065\u304F\u30B9\u30AD\u30EB\u304C\u6B8B\u3063\u3066\u3044\u308B\u3068\u304D\u3060\u3051\u3067\u3059\uFF09\n\u30B9\u30AD\u30EB\u304C1\u4EF6\u3067\u3082\u7D10\u3065\u3044\u3066\u3044\u308B\u30AB\u30C6\u30B4\u30EA\uFF08\u7121\u52B9\u5316\u3057\u305F\u30B9\u30AD\u30EB\u3092\u542B\u3080\uFF09\u306F\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002twp skill update <\u30B9\u30AD\u30EB> --category <\u5225\u306E\u30AB\u30C6\u30B4\u30EA> \u3067\u79FB\u3059\u304B\u524A\u9664\u3057\u3066\u304B\u3089\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\u306B\u7121\u52B9\u5316\u3057\u3066\u304F\u3060\u3055\u3044: twp skill category update <\u30AB\u30C6\u30B4\u30EA> --active false";
94
+ var categoryResource={name:"category",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",operations:[{name:"list",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u3092\u4E00\u89A7\u3059\u308B\uFF08\u7121\u52B9\u5316\u3057\u305F\u3082\u306E\u3092\u542B\u3080\uFF09",usage:"twp skill category list [--active <true|false>] [--keyword <\u8A9E>]",description:`GET /api/v2/organization/skill-categories\u3002\u30DA\
95
+ \u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002
96
+ --keyword \u306F\u540D\u524D\u30FB\u8AAC\u660E\u306E\u90E8\u5206\u4E00\u81F4\u3067\u3059\u3002\u6709\u52B9\u306A\u30AB\u30C6\u30B4\u30EA\u3068\u30B9\u30AD\u30EB\u3060\u3051\u3092\u307E\u3068\u3081\u3066\u898B\u308B\u306A\u3089 twp skill list \u3067\u3059\u3002
97
+
98
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${CATEGORY_LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--active",summary:"\u6709\u52B9\uFF08true\uFF09\uFF0F\u7121\u52B9\uFF08false\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<true|false>"},{name:"--keyword",summary:"\u540D\u524D\u30FB\u8AAC\u660E\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"}],plan(input){noArgs(input,"twp skill category lis\
99
+ t help");const active=input.flags.get("--active");const isActive=active===void 0?void 0:fieldBody(input,[ACTIVE_FIELD])["is_active"]===true?"1":"0";return{method:"GET",path:SKILL_CATEGORIES_PATH,query:{is_active:isActive,keyword:nonEmpty(input.flags,"--keyword")}}},summarize:body=>masterRows(body,CATEGORY_LABEL).map(row=>pick(row,CATEGORY_LIST_COLUMNS)),raw:body=>masterRows(body,CATEGORY_LABEL)},{name:"get",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",
100
+ usage:"twp skill category get <\u30AB\u30C6\u30B4\u30EA>",description:`GET /api/v2/organization/skill-categories/{id}\u3002
101
+
102
+ ${CATEGORY_REF_HELP}`,flags:[CATEGORY_REF_FLAG],prepare:(input,ctx)=>prepareCategoryTarget(input,ctx,"twp skill category get help"),plan:input=>({method:"GET",path:categoryPath(input)}),summarize:body=>pick(categoryItem(body),CATEGORY_COLUMNS),raw:body=>categoryItem(body)},{name:"create",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp skill category create --name <\u30AB\u30C6\u30B4\u30EA\u540D> [\u9805\u76EE\u2026]",
103
+ description:"POST /api/v2/organization/skill-categories\u3002--name \u304C\u5FC5\u9808\u3067\u3059\u3002\u305D\u306E\u307B\u304B\u306E\u9805\u76EE\u306F\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002",forbidden:ADMIN_FORBIDDEN(CATEGORY_LABEL),flags:createFlags(CATEGORY_FIELDS),async prepare(input){noArgs(input,"twp skill category create help");if(fieldBody(input,CATEGORY_FIELDS)["name"]===void 0)throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
104
+ "twp skill category create help");return input},plan:input=>({method:"POST",path:SKILL_CATEGORIES_PATH,body:fieldBody(input,CATEGORY_FIELDS)}),summarize:body=>pick(categoryItem(body),CATEGORY_COLUMNS),raw:body=>categoryItem(body),notes:()=>[cacheNote(CATEGORY_LABEL)]},{name:"update",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u3092\u66F4\u65B0\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp skill category update <\u30AB\u30C6\u30B4\u30EA> [\u9805\u76EE\u2026]",description:`\
105
+ PUT /api/v2/organization/skill-categories/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
106
+ \u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
107
+
108
+ ${CATEGORY_REF_HELP}`,forbidden:ADMIN_FORBIDDEN(CATEGORY_LABEL),flags:[...updateFlags(CATEGORY_FIELDS),CATEGORY_REF_FLAG],async prepare(input,ctx){if(!hasAnyField(input,CATEGORY_FIELDS))throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp skill category update help");fieldBody(input,CATEGORY_FIELDS);return prepareCategoryTarget(input,ctx,"twp skill category update help")},plan:input=>({method:"PUT",path:categoryPath(
109
+ input),body:fieldBody(input,CATEGORY_FIELDS)}),summarize:body=>pick(categoryItem(body),CATEGORY_COLUMNS),raw:body=>categoryItem(body),notes:()=>[cacheNote(CATEGORY_LABEL)]},{name:"delete",summary:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u3092\u524A\u9664\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp skill category delete <\u30AB\u30C6\u30B4\u30EA> --yes",description:`DELETE /api/v2/organization/skill-categories/{id}\u3002
110
+ ${CATEGORY_DELETE_GUIDANCE}
111
+
112
+ ${CATEGORY_REF_HELP}`,destructive:true,forbidden:ADMIN_FORBIDDEN(CATEGORY_LABEL),rejected:()=>CATEGORY_DELETE_GUIDANCE,flags:[CATEGORY_REF_FLAG],prepare:(input,ctx)=>prepareCategoryTarget(input,ctx,"twp skill category delete help"),plan:input=>({method:"DELETE",path:categoryPath(input)}),summarize:body=>acknowledgement(body,"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u524A\u9664"),raw:body=>acknowledgement(body,"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA\u524A\u9664"),notes:()=>[cacheNote(CATEGORY_LABEL)]}]};
113
+ var skillDomain={name:"skill",summary:"\u30B9\u30AD\u30EB\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\u30FB\u7BA1\u7406\u30FB\u4E26\u3073\u66FF\u3048\u3001\u30B9\u30AD\u30EB\u30DE\u30C3\u30D7\u30FB\u30B9\u30AD\u30EB\u4FDD\u6709\u8005\u306E\u6A2A\u65AD\u691C\u7D22\u30FB\u81EA\u5DF1\u8A55\u4FA1\u306E\u63D0\u51FA",operations:[listOperation,skillGetOperation,skillCreateOperation,skillUpdateOperation,skillDeleteOperation,skillReorderOperation,mapOperation,whoOperation,selfEvaluateOperation],subresources:[categoryResource]};
114
+ var QUALIFICATION_COLUMNS=["id","name","abbreviation","category","difficulty","is_recommended","is_active"];var qualificationDomain={name:"qualification",summary:"\u8CC7\u683C\u30DE\u30B9\u30BF\u306E\u4E00\u89A7",operations:[{name:"list",summary:"\u8CC7\u683C\u30DE\u30B9\u30BF\u3092\u4E00\u89A7\u3059\u308B",usage:"twp qualification list [--keyword <\u8A9E>] [--recommended] [--category <\u5206\u985E>] [--difficulty <\u96E3\u6613\u5EA6>]",description:"GET /api/v2/organization/qualifications\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\
115
+ \u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\n--recommended \u306F\u63A8\u5968\u8CC7\u683C\u3060\u3051\u306B\u7D5E\u308A\u307E\u3059\u3002--category / --difficulty \u306F\u30B5\u30FC\u30D0\u306E\u5024\u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u307E\u3059\n\uFF08\u4F8B: --category technical / --difficulty C\uFF09\u3002\u5024\u306E\u4E00\u89A7\u306F --output json \u306E category / difficulty \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\n\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306E\u4FDD\u6709\u8CC7\u683C\u306F twp user qualifications <\u30E6\u30FC\u30B6\u30FC> \u3067\u3059\u3002",
116
+ flags:[{name:"--keyword",summary:"\u8CC7\u683C\u540D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--recommended",summary:"\u63A8\u5968\u8CC7\u683C\u3060\u3051\u3092\u51FA\u3059",takesValue:false},{name:"--category",summary:"\u5206\u985E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B5\u30FC\u30D0\u306E\u5024\u30FB\u4F8B: technical\uFF09",takesValue:true,placeholder:"<\u5206\u985E>"},{name:"--difficulty",summary:"\u96E3\u6613\u5EA6\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B5\u30FC\u30D0\u306E\u5024\u30FB\u4F8B: C\uFF09",
117
+ takesValue:true,placeholder:"<\u96E3\u6613\u5EA6>"}],plan(input){noArgs(input,"twp qualification list help");return{method:"GET",path:QUALIFICATIONS_PATH,query:{keyword:nonEmpty(input.flags,"--keyword"),is_recommended:input.flags.has("--recommended")?"true":void 0,category:nonEmpty(input.flags,"--category"),difficulty:nonEmpty(input.flags,"--difficulty")}}},summarize:body=>qualificationRows(body).map(row=>pick(row,QUALIFICATION_COLUMNS)),raw:body=>qualificationRows(body)}]};export{groupedSkillRows,skillMatrix,skillNames,FISCAL_YEAR_FLAG,fiscalYear,matchSkill,parseSelfEvaluation,parseReorderFile,reorderPreview,skillDomain,qualificationDomain};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BBOWZVCC.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
4
- SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
3
+ import{salesAdminForbidden}from"./chunk-5SPWQAUX.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-MNJYY3PR.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
4
+ SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-4B6GJBYP.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
5
5
  "string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
6
6
  trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
7
7
  count_up_num"]??1;const digits=rule["digit_count"];if(typeof current!=="number"||typeof step!=="number"||typeof digits!=="number")return void 0;const width=purchaseFormat&&digits===0?4:digits;const padded=String(current+step).padStart(width,"0");const prefix=rule["prefix"];if(purchaseFormat)return`${prefix===null||prefix===void 0?"2000":text(prefix)}${padded}`;return typeof prefix==="string"&&prefix!==""&&prefix!=="0"?`${prefix}${padded}`:padded}function withNext(spec,row){const next=nextNumber(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{hoursMinutes}from"./chunk-DAXVAUV4.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\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";
3
+ import{hoursMinutes}from"./chunk-2YVJ3QVJ.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\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";
4
4
  var PAGE_GUIDANCE=`\u3053\u306E\u5206\u6790\u30DA\u30FC\u30B8\u306E\u95B2\u89A7\u5BFE\u8C61\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u5BFE\u8C61\u3078\u306E\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002${ACCESSIBLE_PAGES_HINT}`;var PAGE_DENIED_MARK="\u5206\u6790\u30DA\u30FC\u30B8";function analysisForbidden(levelGuidance2){return body=>{if(body?.error==="permission_denied"){const text=body.error_description??"";
5
5
  if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053\u306E\u6A5F\u80FD"))return LICENSE_GUIDANCE;return void 0}if(body?.error==="forbidden")return levelGuidance2;return void 0}}function levelGuidance(page,features){return`${page}\u3092\u958B\u304F\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5206\u6790\u62C5\u5F53\u8005\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F${features}\u306E\u6A29\u9650\uFF08\u300C\u306A\u3057\u300D\u4EE5\u5916\uFF09\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
6
6
  var FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MONTH_FLAG={name:"--month",summary:"1\u304B\u6708\u3060\u3051\uFF08YYYY-MM\uFF09\u3002--from / --to \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY-MM>"};var YEAR_FLAG={name:"--year",summary:"1\u5E74\u5206\uFF081\u301C12\u6708\u30FBYYYY\uFF09\u3002--from \