@tocca-systems/twp-cli 0.65.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.public.md +12 -0
  2. package/README.md +47 -4
  3. package/command-model/wiki.json +2 -2
  4. package/dist/agent-SFX3ZVOB.js +160 -0
  5. package/dist/{agent-loop-VC47FGPR.js → agent-loop-6JO4PJRG.js} +23 -20
  6. package/dist/{ai-dispatch-GN5ZQPHC.js → ai-dispatch-YICIA4NI.js} +3 -3
  7. package/dist/{analysis-NEZXCJGT.js → analysis-HMOECNWG.js} +2 -2
  8. package/dist/{announcement-BEPIDOMO.js → announcement-Q642UMYK.js} +1 -1
  9. package/dist/{api-command-HP3ABNDG.js → api-command-4CUGQQI3.js} +4 -4
  10. package/dist/{app-C4TUNEAO.js → app-BBPK653N.js} +3 -3
  11. package/dist/{attendance-correct-ZEWRXHUU.js → attendance-correct-DWVFYL2Y.js} +1 -1
  12. package/dist/{attendance-lists-BXAHFZYY.js → attendance-lists-772Y3ZWA.js} +1 -1
  13. package/dist/{backlog-UD226SVD.js → backlog-FG3Y5JTE.js} +1 -1
  14. package/dist/{budget-6HOZNG3E.js → budget-5WUQAAAZ.js} +1 -1
  15. package/dist/{capacity-report-command-A6RYG2NV.js → capacity-report-command-PBE73I43.js} +1 -1
  16. package/dist/chunk-2OG4LAGD.js +41 -0
  17. package/dist/{chunk-T4QZO6RQ.js → chunk-5SONMN6K.js} +1 -1
  18. package/dist/chunk-6CS5L24D.js +4 -0
  19. package/dist/chunk-6OLZMQBK.js +11 -0
  20. package/dist/chunk-6PAZUW73.js +16 -0
  21. package/dist/{chunk-ZJW3GBE5.js → chunk-7EJOKJLV.js} +1 -1
  22. package/dist/{chunk-3WFZOOXZ.js → chunk-AGI5KT4C.js} +1 -1
  23. package/dist/{chunk-5AQ2JPIS.js → chunk-APPYZQNC.js} +1 -1
  24. package/dist/{chunk-BTN4M7Y5.js → chunk-CCBNU5Y3.js} +2 -2
  25. package/dist/{chunk-AYE4DF6J.js → chunk-DAOC7VRM.js} +1 -1
  26. package/dist/{chunk-G26GIBRL.js → chunk-F4PGPJOI.js} +1 -1
  27. package/dist/{chunk-AEJHDFXB.js → chunk-FABDZBDZ.js} +5 -5
  28. package/dist/{chunk-2G6ZZPME.js → chunk-FDVWV3AY.js} +2 -2
  29. package/dist/{chunk-FBBKRVVS.js → chunk-GLKZ4ZZY.js} +1 -1
  30. package/dist/{worker-agent-OBYRYPLC.js → chunk-HBEOI456.js} +3 -3
  31. package/dist/{chunk-ZSPWHEBL.js → chunk-HNG6MF26.js} +13 -13
  32. package/dist/{chunk-QSXS5SB2.js → chunk-HPPIVCK3.js} +3 -2
  33. package/dist/chunk-KDH3KWPO.js +4 -0
  34. package/dist/{chunk-CGHGQAEM.js → chunk-LJVAOWZI.js} +17 -16
  35. package/dist/{chunk-XNOZJ6T2.js → chunk-NVMJXFBT.js} +1 -1
  36. package/dist/{chunk-WHCMWXLC.js → chunk-OMWCSE4P.js} +2 -2
  37. package/dist/{chunk-ENVASCZU.js → chunk-P2DSHLHD.js} +2 -2
  38. package/dist/{chunk-UUP4X3WH.js → chunk-P6M2MCZJ.js} +18 -18
  39. package/dist/{chunk-FTAKYID7.js → chunk-QJAZLPA3.js} +1 -1
  40. package/dist/chunk-VIWQMDGG.js +91 -0
  41. package/dist/{chunk-BXTAAF5F.js → chunk-W2AIT5FJ.js} +5 -5
  42. package/dist/{chunk-Z2I5BGXV.js → chunk-WBUYPDJH.js} +1 -1
  43. package/dist/{chunk-G6RLNOIZ.js → chunk-WMEGP2BT.js} +1 -1
  44. package/dist/{chunk-RSATLT5H.js → chunk-X6L5LUC4.js} +1 -1
  45. package/dist/{chunk-Y2J4M2MG.js → chunk-XCPZ4R65.js} +1 -1
  46. package/dist/{chunk-SCU74Z4U.js → chunk-XGYOJHZC.js} +1 -1
  47. package/dist/cli.js +38 -11
  48. package/dist/{commands-EK3EYLQH.js → commands-4C6TJ4WG.js} +1 -1
  49. package/dist/{commands-2FOGOL65.js → commands-62NWF7GA.js} +22 -20
  50. package/dist/{company-MUGKJNY3.js → company-4DHVAW25.js} +2 -2
  51. package/dist/{completion-DGPGHQNL.js → completion-WR2GXZE7.js} +5 -5
  52. package/dist/{contract-DJJQBAWX.js → contract-PT7VW4IE.js} +2 -2
  53. package/dist/{department-RMZ72N6B.js → department-C6WIZPBS.js} +1 -1
  54. package/dist/{deposit-45Y3POXT.js → deposit-OEYFPEZG.js} +1 -1
  55. package/dist/{estimate-HTAF6FZT.js → estimate-4BUJQ3TP.js} +3 -3
  56. package/dist/{evaluation-J634U7JQ.js → evaluation-GLXQ54F6.js} +1 -1
  57. package/dist/{expense-EVNQ653C.js → expense-QE3WIJTN.js} +1 -1
  58. package/dist/{fiscal-year-MVOGDAIP.js → fiscal-year-YJWFQN4P.js} +1 -1
  59. package/dist/{inquiry-XO5R47OO.js → inquiry-ORB3ROAJ.js} +1 -1
  60. package/dist/{invoice-WE2SOMYN.js → invoice-XLX5KS2T.js} +2 -2
  61. package/dist/{job-title-3CGRQILF.js → job-title-UDF6I3BP.js} +1 -1
  62. package/dist/{knowledge-X3FGXIBL.js → knowledge-4QPIGJEE.js} +32 -27
  63. package/dist/{leave-IFYBLQBF.js → leave-3BJMXI7Q.js} +2 -2
  64. package/dist/license-OMIZUUTW.js +56 -0
  65. package/dist/{logout-guard-S2PVXK4V.js → logout-guard-2Y7HPIKN.js} +2 -1
  66. package/dist/{media-X32Y2MOY.js → media-77LTBOQX.js} +3 -3
  67. package/dist/{notification-MHYSQKYZ.js → notification-2IESSY5E.js} +1 -1
  68. package/dist/{oneshot-VL45DNR7.js → oneshot-4XO5HIJR.js} +1 -1
  69. package/dist/{outlook-YG7GFF44.js → outlook-KYTXHDAV.js} +1 -1
  70. package/dist/plan-submit-T5KHXNGH.js +4 -0
  71. package/dist/{position-6UC7X2BJ.js → position-CR6P4WC5.js} +1 -1
  72. package/dist/{project-LG47ZCEZ.js → project-JJEMEO2W.js} +1 -1
  73. package/dist/{prospect-FEU3WQYN.js → prospect-QG6X7ALK.js} +2 -2
  74. package/dist/{purchase-44B2NOOB.js → purchase-Z6ENEOZM.js} +3 -3
  75. package/dist/{receivable-NQNZ2B6B.js → receivable-ZBDXXMHX.js} +1 -1
  76. package/dist/{redmine-T3JDIH37.js → redmine-EIFHMLNE.js} +1 -1
  77. package/dist/{registry-LBL4AOZW.js → registry-BIJNO3HE.js} +1 -1
  78. package/dist/{report-GJK2YXVO.js → report-TTXGXSR3.js} +1 -1
  79. package/dist/revision-command-PM7FQUVF.js +31 -0
  80. package/dist/{run-RLV6W5JA.js → run-TYKHDD6N.js} +2 -2
  81. package/dist/{sales-ai-review-PUJCOMP6.js → sales-ai-review-6TDJFHDL.js} +1 -1
  82. package/dist/{sales-master-GRR4WKLO.js → sales-master-H5HMVBJV.js} +2 -2
  83. package/dist/{sales-numbering-IUYAABSM.js → sales-numbering-Q5KRM63Y.js} +1 -1
  84. package/dist/{schedule-command-ZX5WNSAC.js → schedule-command-2HCOGYJW.js} +1 -1
  85. package/dist/{search-N5UE5CUL.js → search-GRAWP2LX.js} +1 -1
  86. package/dist/{segment-FQHY6DVH.js → segment-YOUY4PZC.js} +1 -1
  87. package/dist/server-settings-LJBDUOTV.js +4 -0
  88. package/dist/{setup-PF2VH2TW.js → setup-HHPKB6N4.js} +3 -3
  89. package/dist/{skill-PWCJCIQO.js → skill-RH5MBRXZ.js} +1 -1
  90. package/dist/{supplier-payment-HTENSEXJ.js → supplier-payment-EJTFKAKY.js} +2 -2
  91. package/dist/{support-DOWAY63P.js → support-FR3KY63E.js} +1 -1
  92. package/dist/{task-OMYFPWQZ.js → task-O7K6725Y.js} +2 -2
  93. package/dist/{teams-AUFHZRDH.js → teams-QRVCFJS4.js} +1 -1
  94. package/dist/{user-C7UKUPGT.js → user-PRGHG3HM.js} +15 -103
  95. package/dist/{user-contract-type-DO576EHJ.js → user-contract-type-K7CLKCEE.js} +1 -1
  96. package/dist/worker-agent-WDYZTQ5C.js +4 -0
  97. package/dist/{workflow-C2BEVHQ2.js → workflow-S25JXGWN.js} +1 -1
  98. package/package.json +1 -1
  99. package/dist/agent-HM4FHCJT.js +0 -100
  100. package/dist/chunk-UODNIEO2.js +0 -15
  101. package/dist/chunk-WG6NCT4L.js +0 -37
  102. package/dist/chunk-YASL34FY.js +0 -11
  103. package/dist/chunk-YYURQG4E.js +0 -4
  104. package/dist/plan-submit-CUVVYDTN.js +0 -4
  105. package/dist/server-settings-77MPN3UN.js +0 -3
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CRITERION_RE,WAIT_POLL_INTERVAL_MS,aiReviewReasonDomain,checkCounts,checksOf,contractAiReviewResources,envelope,estimateAiReviewResources,invoiceAiReviewResources,reasonsMap,reviewOf,withoutResult}from"./chunk-FBBKRVVS.js";import"./chunk-AYE4DF6J.js";import"./chunk-G6RLNOIZ.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";
3
+ import{CRITERION_RE,WAIT_POLL_INTERVAL_MS,aiReviewReasonDomain,checkCounts,checksOf,contractAiReviewResources,envelope,estimateAiReviewResources,invoiceAiReviewResources,reasonsMap,reviewOf,withoutResult}from"./chunk-GLKZ4ZZY.js";import"./chunk-DAOC7VRM.js";import"./chunk-WMEGP2BT.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";
4
4
  import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CRITERION_RE,WAIT_POLL_INTERVAL_MS,aiReviewReasonDomain,checkCounts,checksOf,contractAiReviewResources,envelope,estimateAiReviewResources,invoiceAiReviewResources,reasonsMap,reviewOf,withoutResult};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{attachmentRows,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{salesAdminForbidden}from"./chunk-ENVASCZU.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-G6RLNOIZ.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";
4
- import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,isExactNumericId}from"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";
3
+ import{attachmentRows,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{salesAdminForbidden}from"./chunk-P2DSHLHD.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-WMEGP2BT.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";
4
+ import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,isExactNumericId}from"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";
5
5
  import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var SORT_MAX=2147483647;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
6
6
  "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 maskDigitRuns(value){return value.replace(/[0-90-9]{4,}/g,
7
7
  run=>{const chars=Array.from(run);return"*".repeat(chars.length-4)+chars.slice(-4).join("")})}var SORT_FIELD={kind:"sort",flag:"--sort",key:"sort",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5C0F\u3055\u3044\u307B\u3069\u4E0A\uFF09"};function fieldFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:field.kind==="date"?"<YYYY-MM-DD>":field.kind==="sort"?"<\u6574\u6570>":`<${field.label}>`}))}function sortValue(flag,raw){
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain}from"./chunk-WHCMWXLC.js";import"./chunk-ENVASCZU.js";import"./chunk-QLENN5DD.js";import"./chunk-G6RLNOIZ.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
3
+ import{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain}from"./chunk-OMWCSE4P.js";import"./chunk-P2DSHLHD.js";import"./chunk-QLENN5DD.js";import"./chunk-WMEGP2BT.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
4
  import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,parseTs}from"./chunk-BXTAAF5F.js";import"./chunk-SPZ3GBYC.js";import"./chunk-GY7KI5E5.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";async function runScheduleCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const schedules=new ScheduleApi(deps.api);let now;if(opts.now){const parsed=parseTs(opts.now);if(!parsed){err(`--now \u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059: ${opts.now}\uFF08\u4F8B 2026-08-18T15:30\uFF09
3
+ import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,parseTs}from"./chunk-W2AIT5FJ.js";import"./chunk-SPZ3GBYC.js";import"./chunk-6CS5L24D.js";import"./chunk-GY7KI5E5.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";async function runScheduleCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const schedules=new ScheduleApi(deps.api);let now;if(opts.now){const parsed=parseTs(opts.now);if(!parsed){err(`--now \u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059: ${opts.now}\uFF08\u4F8B 2026-08-18T15:30\uFF09
4
4
  `);return 2}now=parsed}else{now=nowInZone(deps.config.scheduleTimezone,m=>err(`${m}
5
5
  `))}const defs=await schedules.definitions();if(defs.kind==="error"){err(`\u26D4 ${defs.message}
6
6
  `);if(opts.gate!==void 0){err("\u5B9A\u7FA9\u304C\u53D6\u308C\u306A\u3044\u305F\u3081\u30B2\u30FC\u30C8\u306F\u8A31\u53EF\u6271\u3044\u306B\u3057\u307E\u3059\n");return 0}return 4}if(opts.gate!==void 0){const{allowed,reason}=gateStatus(opts.gate,now,defs.config.gates);if(allowed)return 0;out(`${reason}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-ZSPWHEBL.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
3
+ import{nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
4
4
  import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u7D71\u5408\u691C\u7D22";var SEARCH_PATH="/api/v2/search/unified";var TYPES_PATH="/api/v2/search/types";var KEYWORD_MAX=200;var LIMIT_MAX=100;var SEARCH_MODE_LABEL={keyword:"\u901A\u5E38\u691C\u7D22",vector:"AI\u691C\u7D22"};var NEXT_COMMAND={task:(ref,row)=>`twp task get ${ref}${text(row["project_id"]).startsWith("private:")?" --project __private__":""}`,project:ref=>`twp project get ${ref}`,wiki:ref=>`twp wiki get ${ref}`,note:ref=>`twp note get ${ref}`,meeting_minutes:ref=>`twp me\
5
5
  eting get ${ref}`,support:ref=>`twp support get ${ref}`,user:ref=>`twp user get ${ref}`};function keywordOf(input){if(input.args.length>1){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F1\u3064\u306E\u5F15\u6570\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5F15\u6570: ${input.args.join(" / ")}\uFF09`,'\u7A7A\u767D\u3092\u542B\u3080\u8A9E\u306F\u5F15\u7528\u7B26\u3067\u56F2\u307F\u307E\u3059: twp search "\u7D4C\u8CBB \u7CBE\u7B97"')}const keyword=(input.
6
6
  args[0]??"").trim();if(keyword===""){throw new UsageError("\u691C\u7D22\u3059\u308B\u8A9E\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",'\u4F8B: twp search "\u7D4C\u8CBB\u7CBE\u7B97" / twp search "\u7D4C\u8CBB\u7CBE\u7B97" --ai')}if([...keyword].length>KEYWORD_MAX){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F ${String(KEYWORD_MAX)} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${String([...keyword].length)} \u6587\u5B57\uFF09`)}return keyword}function typesOf(input){const types=[];
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{STATUS_VALUES,flatMasterDomain}from"./chunk-SCU74Z4U.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{SEGMENTS_PATH}from"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
3
+ import{STATUS_VALUES,flatMasterDomain}from"./chunk-XGYOJHZC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{SEGMENTS_PATH}from"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
4
4
  import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var segmentDomain=flatMasterDomain({name:"segment",label:"\u30BB\u30B0\u30E1\u30F3\u30C8",path:SEGMENTS_PATH,itemKey:"segment",summary:"\u30BB\u30B0\u30E1\u30F3\u30C8\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status"],getColumns:["id","code","name","sort_order","status","description"],fields:[{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,
5
5
  summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"}],resolve:(ctx,ref,flag)=>ctx.resolver.segment(ref,flag),referencedBy:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u7D42\u4E86\u6E08\u307F\u3092\u542B\u3080\uFF09",deleteGuidance:"\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u30BB\u30B0\u30E1\u30F3\u30C8\u306F\u3001\u524A\u9664\
6
6
  \u305B\u305A\u306B\u7121\u52B9\u5316\u3057\u3066\u304F\u3060\u3055\u3044: twp segment update <\u30BB\u30B0\u30E1\u30F3\u30C8> --status inactive\n\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8A2D\u5B9A\u6E08\u307F\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306F\u305D\u306E\u307E\u307E\u6B8B\u308A\u3001\u53CE\u652F\u5206\u6790\u306E\u96C6\u8A08\u304B\u3089\u3082\u6B20\u3051\u307E\u305B\u3093\uFF09"});export{segmentDomain};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-X6L5LUC4.js";import"./chunk-SPZ3GBYC.js";import"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";
4
+ import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-T4QZO6RQ.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-CGHGQAEM.js";import{AiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-G4TZFGNN.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
4
- import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var RECOMMENDED_ROTATION={complex:["claude"],verify:["claude"],security:["claude"],support:["claude"],triage:["claude"],search:["claude"],simple:["claude"]};var RECOMMENDED_CHAINS={complex:["claude","codex"],verify:["claude","codex","copilot"],security:["claude","codex","copilot"],support:["claude","codex","copilot"],triage:["codex","gemini","copilot","claude"],search:["codex","gemini","copilot","claude"],simple:["codex","gemini","copilot","claude"]};var PREFERENCE=["claude","codex","gemini","co\
3
+ import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-5SONMN6K.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import{AiConfig}from"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";
4
+ import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var RECOMMENDED_ROTATION={complex:["claude"],verify:["claude"],security:["claude"],support:["claude"],triage:["claude"],search:["claude"],simple:["claude"]};var RECOMMENDED_CHAINS={complex:["claude","codex"],verify:["claude","codex","copilot"],security:["claude","codex","copilot"],support:["claude","codex","copilot"],triage:["codex","gemini","copilot","claude"],search:["codex","gemini","copilot","claude"],simple:["codex","gemini","copilot","claude"]};var PREFERENCE=["claude","codex","gemini","co\
5
5
  pilot"];function buildAiAssignment(selected){if(selected.length===0)throw new Error("\u9078\u629E\u3055\u308C\u305FAI\u304C\u7A7A\u3067\u3059");const fallbackOrder=PREFERENCE.filter(ai=>selected.includes(ai));for(const ai of selected)if(!fallbackOrder.includes(ai))fallbackOrder.push(ai);const chains={};const rotation={};for(const category of Object.keys(RECOMMENDED_CHAINS)){const filtered=(RECOMMENDED_CHAINS[category]??[]).filter(ai=>selected.includes(ai));const chain=filtered.length>0?filtered:
6
6
  [...fallbackOrder];chains[category]=chain;const rot=(RECOMMENDED_ROTATION[category]??[]).filter(ai=>selected.includes(ai));const head=chain[0];rotation[category]=rot.length>0?rot:head===void 0?[...fallbackOrder]:[head]}return{primary_rotation:rotation,fallback_chains:chains}}var SETUP_EXIT_NO_CLI=3;var SETUP_EXIT_ABORTED=130;async function runSetup(opts){const env=opts.env??process.env;const rawOut=opts.out??(t=>void process.stdout.write(t));const rawErr=opts.err??(t=>void process.stderr.write(t));
7
7
  const out=t=>rawOut(stripTerminalControls(t));const err=t=>rawErr(stripTerminalControls(t));const rawAsk=opts.ask??promptText;const ask=q=>rawAsk(stripTerminalControls(q));const detect=opts.detect??detectAiClis;try{return await setupFlow(opts,{env,out,err,ask,detect})}catch(e){if(e instanceof PromptAbortedError){err("\n\u4E2D\u6B62\u3057\u307E\u3057\u305F\u3002\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306F\u4F5C\u6210\u3057\u3066\u3044\u307E\u305B\u3093\u3002\n \u5BFE\u8A71\u305B\u305A\u306B\u5B9F\u884C\u3059\u308B\u306B\u306F --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002\n");
@@ -38,7 +38,7 @@ const skillDir=path.join(workspace,".claude","commands");if(!fs.existsSync(skill
38
38
  ai==="object"&&next.ai!==null&&!Array.isArray(next.ai)?next.ai:{};next.ai={...prev,...buildAiAssignment(selected)};if(Object.keys(prev).some(k=>k!=="primary_rotation"&&k!=="fallback_chains")){out(" \u65E2\u5B58\u306E ai \u8A2D\u5B9A\u306E\u3046\u3061 primary_rotation / fallback_chains \u3060\u3051\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\uFF08\u4ED6\u306E\u30AD\u30FC\u306F\u4FDD\u6301\uFF09\n")}if("ai_config_file"in next){delete next.ai_config_file;out(" \u65E2\u5B58\u306E ai_config_file \u53C2\u7167\u306F\u524A\u9664\u3057\u307E\u3057\u305F\uFF08\u30A4\u30F3\u30E9\u30A4\u30F3\u8A2D\u5B9A\u306B\u5207\
39
39
  \u308A\u66FF\u3048\u305F\u305F\u3081\uFF09\n")}const merged=next.ai;if(merged.skill_category===void 0||Object.keys(merged.skill_category).length===0){out(`\u2139\uFE0F skill_category \u306F\u751F\u6210\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u8A2D\u5B9A\u3059\u308B\u307E\u3067**\u5168\u30B9\u30AD\u30EB\u304C complex \u6271\u3044**\u3067\u8D70\u308A\u307E\u3059
40
40
  \uFF08triage / search / simple \u5411\u3051\u306E\u9396\u306F\u4F7F\u308F\u308C\u307E\u305B\u3093\uFF09\u3002\u5FC5\u8981\u306A\u3089 ${file} \u306E ai.skill_category \u306B
41
- \u300C\u30B9\u30AD\u30EB\u540D\uFF08twp- \u306A\u3057\uFF09\u2192 \u30AB\u30C6\u30B4\u30EA\u300D\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044
41
+ \u300C\u30B9\u30AD\u30EB\u540D\uFF08\u63A5\u982D\u8F9E\u306A\u3057\uFF09\u2192 \u30AB\u30C6\u30B4\u30EA\u300D\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044
42
42
  `)}}if(selected.some(ai=>ai!=="claude")&&next.compile_command===void 0){out(`\u26A0\uFE0F compile_command \u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002claude \u4EE5\u5916\u306F \`/\u30B9\u30AD\u30EB\u540D\` \u3092\u81EA\u5206\u3067\u89E3\u6C7A\u3067\u304D\u306A\u3044\u305F\u3081\u3001
43
43
  \u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u672A\u5C55\u958B\u306E\u307E\u307E\u6E21\u308A\u307E\u3059\uFF08\u30ED\u30B0\u306B\u3082\u8B66\u544A\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002
44
44
  ${file} \u306E compile_command \u306B\u5C55\u958B\u30A2\u30C0\u30D7\u30BF\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseSelfEvaluation,qualificationDomain,skillDomain,skillMatrix,skillNames}from"./chunk-6UPLPTBP.js";import"./chunk-MI6HVYR2.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";
3
+ import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseSelfEvaluation,qualificationDomain,skillDomain,skillMatrix,skillNames}from"./chunk-6UPLPTBP.js";import"./chunk-MI6HVYR2.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";
4
4
  import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseSelfEvaluation,qualificationDomain,skillDomain,skillMatrix,skillNames};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{yearMonthValue}from"./chunk-Y2J4M2MG.js";import{excerpt,salesAdminForbidden,sendAtomic}from"./chunk-ENVASCZU.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-G6RLNOIZ.js";import{booleanText,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";
4
- import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,isExactNumericId,resolveNamed}from"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
3
+ import{yearMonthValue}from"./chunk-XCPZ4R65.js";import{excerpt,salesAdminForbidden,sendAtomic}from"./chunk-P2DSHLHD.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-WMEGP2BT.js";import{booleanText,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";
4
+ import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,isExactNumericId,resolveNamed}from"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
5
5
  import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_SUPPLIER_PAYMENTS_PATH;var SCHEDULE_PATH=SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH;var FORBIDDEN=salesAdminForbidden("\u652F\u6255");var SCHEDULE_FORBIDDEN=salesAdminForbidden("\u652F\u6255\u5148\u30DE\u30B9\u30BF");var STATUSES={invoice_pending:"\u8ACB\u6C42\u66F8\u672A\u7740",invoice_received:"\u8ACB\u6C42\u66F8\u53D7\u9818",transfer_reserved:"\u632F\u8FBC\u4E88\u7D04\u6E08",paid:"\u652F\u6255\u6E08"};var TAX_RATES=["10","8","0"];var BULK_MAX_IDS=100;var FILE_MAX_BYTES=1024*1024;var SUPPLIER_NAME_MAX_CHARS=255;
6
6
  var MEMO_MAX_CHARS=1e3;var AMOUNT_MAX=999999999999999;var LIST_COLUMNS=["id","target_year_month","supplier_name","supplier_user_name","payment_amount","transfer_due_date","status"];var GET_COLUMNS=[...LIST_COLUMNS,"company_name","outsourcing_flg","invoice_date","tax_rate","amount_excluding_tax","amount_excluding_tax_manual","transfer_executed_date","project_name","supplier_payment_schedule_id","memo"];var WRITE_COLUMNS=GET_COLUMNS.filter(c=>c!=="project_name"&&c!=="supplier_user_name");var SCHEDULE_LIST_COLUMNS=[
7
7
  "id","supplier_name","company_name","supplier_user_name","outsourcing_flg","start_year_month","end_year_month","project_name"];var SCHEDULE_GET_COLUMNS=[...SCHEDULE_LIST_COLUMNS,"memo"];var SCHEDULE_WRITE_COLUMNS=SCHEDULE_GET_COLUMNS.filter(c=>c!=="project_name"&&c!=="supplier_user_name");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}))}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{contentTypeFor,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-GY7KI5E5.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH}from"./chunk-ZSPWHEBL.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
3
+ import{contentTypeFor,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-GY7KI5E5.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH}from"./chunk-HNG6MF26.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
4
  import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var LABEL="\u30B5\u30DD\u30FC\u30C8\u4F9D\u983C";var MAX_ATTACHMENTS=3;var TITLE_MAX=255;var CONTENT_MAX=1e4;var COMMENT_MAX=5e3;var SOURCE="support_request";var STATUSES=["new","in_progress","waiting","re_inquiry","closed","withdrawn"];var LIST_COLUMNS=["id","title","category_name","status","requester_name","created_at","updated_at"];var GET_COLUMNS=["id","title","category_name","status","requester_name","created_at","updated_at","comment_count","last_comment_by","last_comment_at"];var WRITE_COLUMNS=[
5
5
  "id","title","category_name","status","attachment_file_ids","updated_at"];var COMMENT_COLUMNS=["id","user_name","is_master_tenant","comment","attachment_file_ids","created_at"];var CATEGORY_COLUMNS=["id","name","description","sort"];var STATUS_HELP="\u72B6\u614B: new\uFF08\u672A\u5BFE\u5FDC\uFF09/ in_progress\uFF08\u5BFE\u5FDC\u4E2D\uFF09/ waiting\uFF08\u56DE\u7B54\u6E08\u307F\u30FB\u78BA\u8A8D\u5F85\u3061\uFF09/ re_inquiry\uFF08\u518D\u554F\u3044\u5408\u308F\u305B\uFF09/ closed\uFF08\u5B8C\u4E86\uFF09/ withdrawn\uFF08\u53D6\u308A\u4E0B\u3052\uFF09\u3002";
6
6
  var NOT_FOUND_HELP="\u4ED6\u306E\u4EBA\u306E\u4F9D\u983C\u3068\u5B58\u5728\u3057\u306A\u3044\u4F9D\u983C\u306F\u3001\u3069\u3061\u3089\u3082\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u533A\u5225\u3057\u307E\u305B\u3093\uFF09\u3002";var ID_FLAG={name:"--id",summary:`\u5BFE\u8C61\u306E${LABEL}\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09`,takesValue:true,placeholder:"<ID>"};var ATTACH_FLAG={
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-I4TR55UF.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-SPZ3GBYC.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-5AQ2JPIS.js";import"./chunk-ZJW3GBE5.js";
4
- import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-SCU74Z4U.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-ZSPWHEBL.js";
3
+ import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-I4TR55UF.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-SPZ3GBYC.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-APPYZQNC.js";import"./chunk-7EJOKJLV.js";
4
+ import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XGYOJHZC.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-HNG6MF26.js";
5
5
  import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";
6
6
  import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
7
7
  row)?row:{};const id=typeof source["id"]==="string"?source["id"]:"";const answer=isRecord(source["answer_to"])?selectedKeyText(source["answer_to"]["selected_key"]):answersByQuestion.get(id)??null;const base=pick(row,LIST_COLUMNS);return{id:base["id"],created_at:base["created_at"],created_by_name:base["created_by_name"],comment_type:base["comment_type"],[QUESTION_COLUMN]:questionText(source["question"]),[ANSWER_COLUMN]:answer,content:base["content"]}})}function questionText(question){if(!isRecord(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{textToHtml}from"./chunk-3WFZOOXZ.js";import"./chunk-Q3B65OFC.js";import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,str,teamsFromText,topFlag}from"./chunk-DLD736A2.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-H4CDX4TX.js";
3
+ import{textToHtml}from"./chunk-AGI5KT4C.js";import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,str,teamsFromText,topFlag}from"./chunk-DLD736A2.js";import"./chunk-Q3B65OFC.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-H4CDX4TX.js";
4
4
  import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var KINDS=["channel","chat"];var TEAM_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var DESCRIPTION_MAX=2e3;var NAME_MAX=255;var FAVORITE_COLUMNS=["kind","display_name","description","sort_order","team_id","id"];var KIND_FLAG={name:"--kind",summary:"\u7A2E\u5225\u3067\u7D5E\u308B\uFF08channel | chat\uFF09",takesValue:true,placeholder:"<\u7A2E\u5225>"};var TEAM_FLAG={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D\
5
5
  |ID>"};var CHANNEL_FLAG={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHAT_FLAG={name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"};var DESCRIPTION_FLAG={name:"--description",summary:`\u7528\u9014\u306E\u8AAC\u660E\uFF08${DESCRIPTION_MAX}\u6587\u5B57\u307E\u3067\u3002"" \u3067\u7A7A\u306B\u3059\u308B\uFF09`,takesValue:true,placeholder:"\
6
6
  <\u6587>"};var NAME_FLAG={name:"--name",summary:"\u8868\u793A\u540D\uFF08\u30C1\u30E3\u30CD\u30EB\u306F\u7701\u304F\u3068\u30C1\u30E3\u30CD\u30EB\u540D\u3002\u30C1\u30E3\u30C3\u30C8\u306F\u540D\u524D\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u898B\u5206\u3051\u3084\u3059\u3044\u540D\u524D\u3092\u4ED8\u3051\u308B\uFF09",takesValue:true,placeholder:"<\u540D\u524D>"};var FAVORITES_PATH="/teams/favorites";function parseKind(raw,usage){if(raw===void 0)return void 0;const kind=raw.trim();if(!KINDS.includes(
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-BTN4M7Y5.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-6UPLPTBP.js";import{decodeCsvText,readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-5AQ2JPIS.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-ZJW3GBE5.js";import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-SCU74Z4U.js";import{booleanText,
4
- boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-ZSPWHEBL.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
5
- import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs2 from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\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")}
3
+ import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-CCBNU5Y3.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-6UPLPTBP.js";import{exportOperation}from"./chunk-VIWQMDGG.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-APPYZQNC.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-7EJOKJLV.js";import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-XGYOJHZC.js";
4
+ import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-HNG6MF26.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
5
+ import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\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")}
6
6
  return list}async function nameMap(ctx,path,label2){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\
7
7
  \u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
8
8
  message}\uFF09\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}}function assignmentPlan(input){const suffix=input.flags.has("--current")?"/assignments/current":"/assignments";return{method:"GET",path:`/api/v2/organization/users/${userPath(input,suffix)}`}}var listOperation={name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user assignment list <\u30E6\u30FC\u30B6\u30FC> [--current]",
@@ -133,95 +133,7 @@ newPosition;return withResolved(resolved,inherited)},plan(input){if(isBulk(input
133
133
  input,"userId"),departmentId:requireResolved(input,"department_id"),startDate:isoDate(input,START_DATE_FLAG.name),existingIds:existingIdsOf(input),current};ctx.warn((await partialMoveLines(ctx,target,!(err instanceof ApiError))).join("\n"))}throw err}},summarize:body=>isBulkBody(body)?bulkSummary(body):writeSummary(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),raw:body=>isBulkBody(body)?bulkRaw(body):writeResult(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),notes(body,input){if(isBulkBody(
134
134
  body))return bulkNotes(body);const notes=[...previousPrimaryNotes(body)];const current=currentPrimaryOf(input);const created=isRecord(body)&&isRecord(body["assignment"])?strOrNull(body["assignment"]["id"]):null;if(current!==null&&created!==null){const startDate=isoDate(input,START_DATE_FLAG.name);const immediate=startDate<=(input.resolved?.["today"]??"");const commands=revertCommands(requireResolved(input,"userId"),current,created,immediate);const later=immediate?"":`
135
135
  \uFF08${startDate} \u4EE5\u964D\u306B\u623B\u3059\u3068\u304D\u306F\u30012\u672C\u76EE\u306B --primary true \u3068\u5143\u306E\u89B3\u5BDF\u8005\u306E --observer \u3082\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF09`;notes.push(`\u53D6\u308A\u6D88\u3059\u306B\u306F:
136
- ${commands.map(c=>` ${c}`).join("\n")}${later}`)}return notes}};var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09\u306E\u53C2\u7167\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u30FB\u4ED8\u3051\u66FF\u3048",operations:[listOperation,createOperation,updateOperation,endOperation,deleteOperation,moveOperation]};import fs from"fs";var LOGIN_HISTORY_RETENTION_DAYS=90;var DEFAULT_INACTIVE_DAYS=60;var DEFAULT_MAX_USERS=2e3;var LIST_PAGE_LIMIT=100;var MATRIX_PAGE_LIMIT=200;var LOGIN_HISTORY_LIMIT=500;var CONCURRENCY=4;var SEND_PER_MINUTE=200;var SEND_BURST=30;var RATE_LIMIT_WAIT_MS=6e4;var RATE_LIMIT_RETRIES=2;var LEDGER_MAX_BYTES=5*1024*1024;var USAGE="twp user export [--file <\u53F0\u5E33CSV>] [--include-disabled] [--exclude-hidden] [--inactive-days <\u65E5\u6570>] [--code-column <\u5217\u540D>] [--name-column <\u5217\u540D>] [--email-column <\u5217\u540D>] [--department-c\
137
- olumn <\u5217\u540D>] [--position-column <\u5217\u540D>] [--max-users <\u4EBA\u6570>]";var HELP="twp user export help";var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});var LEDGER_ROLES=["code","name","email","department","position"];var ROLE_LABEL={code:"\u793E\u54E1\u756A\u53F7",name:"\u6C0F\u540D",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",department:"\u90E8\u7F72",position:"\u5F79\u8077"};var COLUMN_CANDIDATES={code:["\u793E\u54E1\u756A\u53F7","\u5F93\u696D\u54E1\u756A\u53F7",
138
- "\u793E\u54E1\u30B3\u30FC\u30C9","\u5F93\u696D\u54E1\u30B3\u30FC\u30C9","employee_code","employee_no"],name:["\u6C0F\u540D","\u540D\u524D","\u793E\u54E1\u540D","\u5F93\u696D\u54E1\u540D","name","user_name"],email:["\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9","\u4F1A\u793E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9","email","login_id"],department:["\u90E8\u7F72","\u90E8\u7F72\u540D","\u6240\u5C5E\u90E8\u7F72","department","department_name"],position:["\u5F79\u8077","\u5F79\u8077\u540D","position",
139
- "position_name"]};function parseCsvRecords(text){const records=[];let cells=[];let field="";let quoted=false;let started=false;let line=1;let recordLine=1;let i=0;const pushRecord=()=>{cells.push(field);records.push({line:recordLine,cells});cells=[];field="";started=false};while(i<text.length){const ch=text[i];if(quoted){if(ch==='"'){if(text[i+1]==='"'){field+='"';i+=2;continue}quoted=false}else if(ch==="\r"||ch==="\n"){if(ch==="\r"&&text[i+1]==="\n")i+=1;line+=1;field+="\n"}else{field+=ch}i+=1;
140
- continue}if(ch==='"'&&field.trim()===""){quoted=true;started=true;field=""}else if(ch===","){cells.push(field);field="";started=true}else if(ch==="\r"||ch==="\n"){if(ch==="\r"&&text[i+1]==="\n")i+=1;pushRecord();line+=1;recordLine=line}else{field+=ch;started=true}i+=1}if(quoted)throw new UsageError(`\u53F0\u5E33 CSV \u306E ${recordLine} \u884C\u76EE\u3067\u5F15\u7528\u7B26\uFF08"\uFF09\u304C\u9589\u3058\u3066\u3044\u307E\u305B\u3093`,HELP);if(started)pushRecord();return records}var decodeLedger=decodeCsvText;
141
- function normalizeHeader(value){return value.normalize("NFKC").trim().toLowerCase()}function normalizeValue(value){return value.normalize("NFKC").replace(/\s+/g," ").trim().toLowerCase()}function resolveColumns(header,overrides){const normalized=header.map(normalizeHeader);const map={};for(const role of LEDGER_ROLES){const wanted=overrides[role];if(wanted!==void 0){const index2=normalized.indexOf(normalizeHeader(wanted));if(index2<0){throw new UsageError(`\u53F0\u5E33 CSV \u306B\u300C${wanted}\u300D\u3068\
142
- \u3044\u3046\u5217\u304C\u3042\u308A\u307E\u305B\u3093\uFF08--${role}-column\uFF09`,`\u898B\u51FA\u3057\u884C\u306E\u5217: ${header.map(h=>h.trim()).join("\u3001")}`)}map[role]=index2;continue}const index=normalized.findIndex(h=>COLUMN_CANDIDATES[role].some(c=>normalizeHeader(c)===h));if(index>=0)map[role]=index}if(map.code===void 0&&map.email===void 0&&map.name===void 0){throw new UsageError("\u53F0\u5E33 CSV \u306B\u3001\u4EBA\u3092\u7A81\u304D\u5408\u308F\u305B\u308B\u5217\uFF08\u793E\u54E1\u756A\u53F7\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u6C0F\u540D\u306E\u3069\u308C\u304B\uFF09\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",
143
- `\u898B\u51FA\u3057\u884C\u306E\u5217: ${header.map(h=>h.trim()).join("\u3001")}
144
- \u5217\u540D\u304C\u9055\u3046\u3068\u304D\u306F --code-column / --email-column / --name-column \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return map}function parseLedger(text,overrides){const records=parseCsvRecords(text).filter(r=>r.cells.some(c=>c.trim()!==""));const[header,...body]=records;if(header===void 0)throw new UsageError("\u53F0\u5E33 CSV \u304C\u7A7A\u3067\u3059\uFF081\u884C\u76EE\u306B\u898B\u51FA\u3057\u304C\u5FC5\u8981\u3067\u3059\uFF09",HELP);const columns=resolveColumns(
145
- header.cells,overrides);const rows=[];const errors=[];const seen={code:new Map,email:new Map};for(const record of body){const value=role=>{const index=columns[role];if(index===void 0)return void 0;const raw=(record.cells[index]??"").trim();return raw===""?void 0:raw};const cells={};for(const role of LEDGER_ROLES){const v=value(role);if(v!==void 0)cells[role]=v}const row={line:record.line,...cells};if(row.code===void 0&&row.email===void 0&&row.name===void 0){errors.push(`${record.line} \u884C\u76EE: \u793E\u54E1\u756A\u53F7\u30FB\u30E1\
146
- \u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u6C0F\u540D\u304C\u3059\u3079\u3066\u7A7A\u3067\u3059`);continue}let duplicated=false;for(const role of["code","email"]){const v=row[role];if(v===void 0)continue;const first=seen[role].get(normalizeValue(v));if(first!==void 0){errors.push(`${record.line} \u884C\u76EE: ${ROLE_LABEL[role]} ${v} \u306F ${first} \u884C\u76EE\u3068\u91CD\u8907\u3057\u3066\u3044\u307E\u3059`);duplicated=true}else{seen[role].set(normalizeValue(v),record.line)}}if(!duplicated)rows.
147
- push(row)}if(errors.length>0){throw new UsageError(`\u53F0\u5E33 CSV \u306B\u4E0D\u6B63\u306A\u884C\u304C ${errors.length} \u884C\u3042\u308A\u307E\u3059:
148
- ${errors.join("\n ")}`,HELP)}return{header:header.cells.map(h=>h.trim()),columns,rows}}function readLedgerFile(file){let fd;try{fd=fs.openSync(file,"r");if(!fs.fstatSync(fd).isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,HELP);const buffer=Buffer.alloc(LEDGER_MAX_BYTES+1);let total=0;for(;;){const n=fs.readSync(fd,buffer,total,buffer.length-total,null);if(n===0)break;total+=n;if(total>
149
- LEDGER_MAX_BYTES){throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059: ${file}`,`\u4E0A\u9650\u306F ${LEDGER_MAX_BYTES} \u30D0\u30A4\u30C8\u3067\u3059\u3002`)}}return buffer.subarray(0,total)}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,HELP)}finally{if(fd!==void 0)fs.closeSync(fd)}}
150
- var KIND_LABEL={not_in_ledger:"\u53F0\u5E33\u306B\u3044\u306A\u3044\uFF08\u5931\u52B9\u6F0F\u308C\uFF09",missing_in_twp:"TWP \u306B\u3044\u306A\u3044\uFF08\u767B\u9332\u6F0F\u308C\uFF09",disabled_in_twp:"TWP \u3067\u5931\u52B9\u3057\u3066\u3044\u308B\uFF08\u8AA4\u5931\u52B9\uFF09",ambiguous:"\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u4E00\u81F4\uFF08\u7A81\u304D\u5408\u308F\u305B\u3067\u304D\u306A\u3044\uFF09",department_mismatch:"\u90E8\u7F72\u304C\u9055\u3046\uFF08\u7570\u52D5\u306E\u53CD\u6620\u6F0F\u308C\uFF09",
151
- position_mismatch:"\u5F79\u8077\u304C\u9055\u3046\uFF08\u7570\u52D5\u306E\u53CD\u6620\u6F0F\u308C\uFF09",inactive:"\u9577\u671F\u9593\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044"};function str(value){return typeof value==="string"&&value!==""?value:null}function listPlan(input,cursor){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:LIST_PAGE_LIMIT,cursor,include_hidden:input.flags.has("--exclude-hidden")?void 0:"true"}}}var sleep=ms=>new Promise(resolve=>setTimeout(resolve,
152
- ms));function pacedSender(ctx){const intervalMs=6e4/SEND_PER_MINUTE;let tokens=SEND_BURST;let last=Date.now();let chain=Promise.resolve();const take=()=>{chain=chain.then(async()=>{const now=Date.now();tokens=Math.min(SEND_BURST,tokens+(now-last)/intervalMs);last=now;if(tokens<1){await sleep((1-tokens)*intervalMs);tokens=1;last=Date.now()}tokens-=1});return chain};return async plan=>{for(let attempt=0;;attempt+=1){await take();try{return await ctx.send(plan)}catch(err){if(!(err instanceof ApiError)||
153
- err.status!==429||attempt>=RATE_LIMIT_RETRIES)throw err;ctx.warn(`API \u306E\u30EC\u30FC\u30C8\u5236\u9650\uFF08429\uFF09\u306B\u5F53\u305F\u3063\u305F\u305F\u3081\u3001${RATE_LIMIT_WAIT_MS/1e3} \u79D2\u5F85\u3063\u3066\u9001\u308A\u76F4\u3057\u307E\u3059\u3002`);await sleep(RATE_LIMIT_WAIT_MS)}}}}async function mapPool(items,limit,fn){const results=new Array(items.length);let next=0;let failed=false;const worker=async()=>{while(!failed&&next<items.length){const index=next;next+=1;try{results[index]=
154
- await fn(items[index])}catch(err){failed=true;throw err}}};await Promise.all(Array.from({length:Math.min(limit,items.length)},worker));return results}async function listAllUsers(input,send,maxUsers){const users=[];let cursor;for(;;){const body=await send(listPlan(input,cursor));for(const item of listPaging.items(body)){if(!isRecord(item)||typeof item["user_id"]!=="string"){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306E\u884C\u306B user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
155
- users.push(item)}if(users.length>maxUsers){throw new UsageError(`\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\u304C ${maxUsers} \u4EBA\u3092\u8D85\u3048\u305F\u305F\u3081\u3001\u8A73\u7D30\u3092\u8AAD\u3080\u524D\u306B\u6B62\u3081\u307E\u3057\u305F\uFF081\u4EBA\u3042\u305F\u308A\u6700\u59273\u5F80\u5FA9\u3057\u307E\u3059\uFF09`,input.flags.has("--exclude-hidden")?`\u4E0A\u9650\u3092\u4E0A\u3052\u308B\u306A\u3089 --max-users <\u4EBA\u6570> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:
156
- "\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3092\u9664\u304F\u306A\u3089 --exclude-hidden\u3001\u4E0A\u9650\u3092\u4E0A\u3052\u308B\u306A\u3089 --max-users <\u4EBA\u6570> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const next=listPaging.nextCursor(body);if(next===null)return users;cursor=next}}async function permissionMatrix(input,send){const map=new Map;for(let page=1;;page+=1){const body=await send({method:"GET",path:"/api/v2/admin/users/\
157
- permissions-matrix",query:{page,limit:MATRIX_PAGE_LIMIT,include_hidden:input.flags.has("--exclude-hidden")?void 0:"true"}});const items=isRecord(body)?body["items"]:void 0;const totalPages=isRecord(body)?body["total_pages"]:void 0;if(!Array.isArray(items)||typeof totalPages!=="number"){throw new ApiResponseError("\u6A29\u9650\u30DE\u30C8\u30EA\u30AF\u30B9\u306E\u5FDC\u7B54\u306B items / total_pages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
158
- for(const item of items){if(!isRecord(item)||typeof item["user_id"]!=="string")continue;const raw=item["feature_permissions"];const levels={};if(isRecord(raw)){for(const[feature,level]of Object.entries(raw)){if(typeof level==="string")levels[feature]=level}}else if(!Array.isArray(raw)){continue}map.set(item["user_id"],levels)}if(page>=totalPages)return map}}function userSegment(userId){if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\
159
- \u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return encodeURIComponent(userId)}async function userDetail(send,userId){const body=await send({method:"GET",path:`/api/v2/admin/users/${userSegment(userId)}`});if(!isRecord(body)||body["user_id"]!==userId){throw new ApiResponseError(`\u30E6\u30FC\u30B6\u30FC\u8A73\u7D30\u306E\u5FDC\u7B54\u304C ${userId} \u306E\u3082\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
160
- return body}async function primaryAssignment(send,userId){const body=await send({method:"GET",path:`/api/v2/organization/users/${userSegment(userId)}/assignments/current`});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new ApiResponseError("\u6240\u5C5E\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");const primary=list.find(row=>isRecord(row)&&
161
- row["is_approval_route"]===true)??list.find(row=>isRecord(row)&&row["is_primary"]===true);return isRecord(primary)?{id:str(primary["id"]),managerId:str(primary["manager_id"])}:{id:null,managerId:null}}async function lastLogin(send,userId){const body=await send({method:"GET",path:"/api/v2/admin/tenant/login-history",query:{user_id:userId,result:"success",limit:LOGIN_HISTORY_LIMIT}});const data=isRecord(body)&&isRecord(body["data"])?body["data"]:body;const histories=isRecord(data)?data["histories"]:
162
- void 0;if(!Array.isArray(histories)){throw new ApiResponseError("\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u306E\u5FDC\u7B54\u306B histories \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}let latest=null;for(const h of histories){const ts=isRecord(h)&&h["result"]==="success"?str(h["timestamp"]):null;if(ts!==null&&(latest===null||ts>latest))latest=ts}return latest}async function collectInventory(input,ctx){const send=pacedSender(
163
- ctx);const maxUsers=Number(requireResolved(input,"maxUsers"));const users=await listAllUsers(input,send,maxUsers);const permissions=await permissionMatrix(input,send);const minutes=Math.ceil(users.length*3/SEND_PER_MINUTE);ctx.warn(`${users.length} \u4EBA\u306E\u8A73\u7D30\u30FB\u6240\u5C5E\u30FB\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u3092\u8AAD\u307F\u307E\u3059\uFF08\u6700\u5927 ${users.length*3} \u5F80\u5FA9`+(users.length*3>SEND_BURST?`\u30FB\u30EC\u30FC\u30C8\u5236\u9650\u306B\u5408\u308F\u305B\u3066\u6700\u9577 ${minutes}\
164
- \u5206\u307B\u3069`:"")+"\uFF09\u3002");const names=new Map(users.map(u=>[u["user_id"],str(u["user_name"])]));const rows=await mapPool(users,CONCURRENCY,async user=>{const userId=user["user_id"];const detail=await userDetail(send,userId);const authType2=str(detail["auth_type"]);const canLogin=authType2!=="disabled";const wantDetail=canLogin||input.flags.has("--include-disabled");const sso=authType2==="oauth";const[assignment,loginAt]=wantDetail?await Promise.all([primaryAssignment(send,userId),
165
- sso?Promise.resolve(null):lastLogin(send,userId)]):[{id:null,managerId:null},null];const managerId=assignment.managerId;return{user_id:userId,user_name:str(user["user_name"]),email:str(user["email"]),employee_code:str(user["employee_code"]),hire_date:str(detail["hire_date"]),department_name:str(user["department_name"]),position_name:str(user["position_name"]),assignment_id:assignment.id,manager_id:managerId,manager_name:managerId===null?null:names.get(managerId)??null,role:str(user["role"]),is_partner:typeof user["\
166
- is_partner"]==="boolean"?user["is_partner"]:null,permissions:permissions.get(userId)??null,auth_type:authType2,can_login:canLogin,display_flg:typeof user["display_flg"]==="boolean"?user["display_flg"]:null,last_login_at:loginAt,last_login_status:!wantDetail?"not_checked":sso?"sso_not_recorded":loginAt===null?"not_recorded":"recorded"}});return{rows,scanned:users.length}}function daysBetween(fromIso,now){return(now.getTime()-new Date(fromIso).getTime())/864e5}function placeholder(label2){return shellQuote(
167
- `<${label2}>`)}function disableCommand(userId){return`twp user update ${shellQuote(userId)} --auth-type disabled --display false --memberlist false --org-chart false --dashboard false`}function recentlyHired(hireDate,inactiveDays,now){return hireDate!==null&&daysBetween(`${hireDate}T00:00:00Z`,now)<=inactiveDays}function diffAgainstLedger(inventory,ledger,columns,inactiveDays,now){const index={code:new Map,email:new Map,name:new Map};const add=(map,key,row)=>{if(key===null)return;const k=normalizeValue(
168
- key);map.set(k,[...map.get(k)??[],row])};for(const row of inventory){add(index.code,row.employee_code,row);add(index.email,row.email,row);add(index.name,row.user_name,row)}const diffs=[];const matched=new Set;const base=(kind,user,line)=>({kind,kind_label:KIND_LABEL[kind],user_id:user?.user_id??null,user_name:user?.user_name??null,email:user?.email??null,employee_code:user?.employee_code??null,auth_type:user?.auth_type??null,is_partner:user?.is_partner??null,ledger_line:line,twp_value:null,ledger_value:null,
169
- suggestion:null});const fromLedger=(kind,entry)=>({...base(kind,null,entry.line),user_name:entry.name??null,email:entry.email??null,employee_code:entry.code??null,ledger_value:entry.code??entry.email??entry.name??null});for(const entry of ledger){let candidates=[];for(const role of["code","email","name"]){const v=entry[role];if(v===void 0)continue;candidates=index[role].get(normalizeValue(v))??[];if(candidates.length>0)break}if(candidates.length>1){const active=candidates.filter(c=>c.can_login);
170
- if(active.length===1)candidates=active}if(candidates.length>1){diffs.push({...fromLedger("ambiguous",entry),twp_value:`${candidates.length} \u4EBA\u306B\u4E00\u81F4\uFF08${candidates.map(c=>c.user_id).join(", ")}\uFF09`,suggestion:null});continue}const user=candidates[0];if(user===void 0){diffs.push({...fromLedger("missing_in_twp",entry),suggestion:`twp user invite create ${flagSegment("--email",entry.email??"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>")}`});continue}matched.add(user.user_id);if(!user.
171
- can_login){diffs.push({...base("disabled_in_twp",user,entry.line),twp_value:user.auth_type,suggestion:`twp user update ${shellQuote(user.user_id)} --auth-type ${placeholder("\u5931\u52B9\u524D\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7")} --display true --memberlist true --org-chart true --dashboard true`});continue}if(columns.department!==void 0&&entry.department!==void 0&&normalizeValue(entry.department)!==normalizeValue(user.department_name??"")){diffs.push({...base("department_mismatch",user,entry.
172
- line),twp_value:user.department_name,ledger_value:entry.department,suggestion:`twp user assignment move ${shellQuote(user.user_id)} ${flagSegment("--department",entry.department)} --start-date ${placeholder("\u7570\u52D5\u65E5")}`})}if(columns.position!==void 0&&entry.position!==void 0&&normalizeValue(entry.position)!==normalizeValue(user.position_name??"")){diffs.push({...base("position_mismatch",user,entry.line),twp_value:user.position_name,ledger_value:entry.position,suggestion:user.assignment_id===
173
- null?null:`twp user assignment update ${shellQuote(user.assignment_id)} --user ${shellQuote(user.user_id)} `+flagSegment("--position",entry.position)})}}for(const user of inventory){if(!user.can_login)continue;if(!matched.has(user.user_id)){diffs.push({...base("not_in_ledger",user,null),twp_value:user.auth_type,suggestion:disableCommand(user.user_id)})}if(user.last_login_status==="sso_not_recorded"||recentlyHired(user.hire_date,inactiveDays,now))continue;if(user.last_login_at===null||daysBetween(
174
- user.last_login_at,now)>inactiveDays){diffs.push({...base("inactive",user,null),twp_value:user.last_login_at??`${LOGIN_HISTORY_RETENTION_DAYS}\u65E5\u4EE5\u5185\u306E\u30ED\u30B0\u30A4\u30F3\u8A18\u9332\u306A\u3057`})}}return diffs}var INVENTORY_COLUMNS=["user_id","user_name","email","employee_code","hire_date","department_name","position_name","manager_name","role","is_partner","permissions","auth_type","display_flg","last_login_at"];var DIFF_COLUMNS=["kind","kind_label","user_id","user_name","\
175
- email","employee_code","auth_type","is_partner","ledger_line","twp_value","ledger_value","suggestion"];function exportBody(body){if(!isRecord(body)||!Array.isArray(body["rows"])||body["mode"]!=="inventory"&&body["mode"]!=="diff"){throw new ApiResponseError("\u68DA\u5378\u306E\u7D50\u679C\u3092\u7D44\u307F\u7ACB\u3066\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002")}return body}function permissionText(levels){if(levels===null)return"\uFF08\u53D6\u5F97\u3067\u304D\u305A\uFF09";
176
- const granted=Object.entries(levels).filter(([,level])=>level!=="none"&&level!=="").sort(([a],[b])=>a.localeCompare(b));return granted.length===0?"\uFF08\u306A\u3057\uFF09":granted.map(([feature,level])=>`${feature}:${level}`).join(";")}function lastLoginText(row){switch(row.last_login_status){case"recorded":return row.last_login_at;case"sso_not_recorded":return"\u5224\u5B9A\u4E0D\u80FD\uFF08SSO \u306F\u8A18\u9332\u3055\u308C\u306A\u3044\uFF09";case"not_recorded":return`${LOGIN_HISTORY_RETENTION_DAYS}\
177
- \u65E5\u4EE5\u5185\u306E\u8A18\u9332\u306A\u3057`;default:return null}}function spreadsheetSafe(value){return typeof value==="string"&&/^[=+\-@\t\r]/.test(value)?`'${value}`:value}function flagValue(input,flag){const raw=input.flags.get(flag);if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,HELP);return raw}function ledgerOf(input){const raw=input.resolved?.["ledger"];return raw===void 0?void 0:
178
- JSON.parse(raw)}var COLUMN_FLAGS=LEDGER_ROLES.map(role=>({name:`--${role}-column`,summary:`\u53F0\u5E33\u306E${ROLE_LABEL[role]}\u306E\u5217\u540D\uFF08\u65E2\u5B9A\u306F ${COLUMN_CANDIDATES[role].slice(0,3).join(" / ")} \u306A\u3069\u304B\u3089\u63A2\u3059\uFF09`,takesValue:true,placeholder:"<\u5217\u540D>"}));var exportOperation={name:"export",summary:"\u5728\u7C4D\u8005\u3092\u68DA\u5378\u3059\u308B\uFF08\u6240\u5C5E\u30FB\u5F79\u8077\u30FB\u4E0A\u9577\u30FB\u6A29\u9650\u30FB\u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u4ED8\u304D\u30FB\u4EBA\u4E8B\u53F0\u5E33 CSV \u3068\u306E\u5DEE\u5206\uFF09",
179
- usage:USAGE,description:`\u5728\u7C4D\u8005\uFF08\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C disabled \u3067\u306A\u3044\u30E6\u30FC\u30B6\u30FC\uFF09\u30921\u4EBA1\u884C\u3067\u51FA\u3057\u307E\u3059\u3002\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u307F\u307E\u3059
180
- \uFF08\u8868\u793A\u30D5\u30E9\u30B0\u3060\u3051\u5916\u3057\u3066\u5931\u52B9\u3055\u305B\u3066\u3044\u306A\u3044\u4EBA\u3092\u898B\u3064\u3051\u308B\u305F\u3081\uFF09\u3002--exclude-hidden \u3067\u8868\u793A\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u306B\u7D5E\u308C\u307E\u3059\u3002
181
- --include-disabled \u3067\u5931\u52B9\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u51FA\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\u3002
182
-
183
- \u5217: user_id / user_name / email / employee_code / hire_date\uFF08\u5165\u793E\u65E5\uFF09/ department_name\u30FBposition_name\uFF08\u4E3B\u6240\u5C5E\uFF09/
184
- manager_name\uFF08\u4E3B\u6240\u5C5E\u306E\u4E0A\u9577\uFF09/ role / is_partner / permissions\uFF08\u6A5F\u80FD\u3054\u3068\u306E\u6A29\u9650\u3002none \u306F\u7701\u304F\uFF09/ auth_type / display_flg / last_login_at\u3002
185
- \u500B\u4EBA\u9023\u7D61\u5148\uFF08\u500B\u4EBA\u30E1\u30FC\u30EB\u30FB\u7DCA\u6025\u9023\u7D61\u5148\u306A\u3069\uFF09\u306F\u51FA\u3057\u307E\u305B\u3093\u3002--output tsv \u3067\u8868\u8A08\u7B97\u30BD\u30D5\u30C8\u3078\u3001--output json \u3067\u4ED6\u306E\u30C4\u30FC\u30EB\u3078\u6E21\u305B\u307E\u3059
186
- \uFF08tsv / table \u3067\u306F\u3001= + - @ \u3067\u59CB\u307E\u308B\u5024\u306E\u5148\u982D\u306B ' \u3092\u4ED8\u3051\u3066\u3001\u8868\u8A08\u7B97\u30BD\u30D5\u30C8\u304C\u5F0F\u3068\u3057\u3066\u8AAD\u307E\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\uFF09\u3002
187
-
188
- \u6700\u7D42\u30ED\u30B0\u30A4\u30F3\u306F\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u304B\u3089\u53D6\u308A\u307E\u3059\u3002\u6B21\u306E2\u70B9\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
189
- - \u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u306F90\u65E5\u3067\u6D88\u3048\u307E\u3059\u3002\u300C90\u65E5\u4EE5\u5185\u306E\u8A18\u9332\u306A\u3057\u300D\u306F\u4E00\u5EA6\u3082\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044\u3001\u3068\u3044\u3046\u610F\u5473\u3067\u306F\u3042\u308A\u307E\u305B\u3093
190
- - Google / Microsoft \u306E SSO \u3067\u306E\u30ED\u30B0\u30A4\u30F3\u306F\u8A18\u9332\u3055\u308C\u307E\u305B\u3093\u3002\u8A8D\u8A3C\u30BF\u30A4\u30D7\u304C oauth \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u300C\u5224\u5B9A\u4E0D\u80FD\u300D\u3068\u51FA\u3057\u3001
191
- \u9577\u671F\u672A\u30ED\u30B0\u30A4\u30F3\uFF08inactive\uFF09\u306E\u5224\u5B9A\u304B\u3089\u5916\u3057\u307E\u3059\u3002all \u306E\u30E6\u30FC\u30B6\u30FC\u304C SSO \u3060\u3051\u3067\u4F7F\u3063\u3066\u3044\u308B\u5834\u5408\u3082\u8A18\u9332\u306F\u6B8B\u308A\u307E\u305B\u3093
192
-
193
- --file <\u53F0\u5E33CSV> \u3092\u4ED8\u3051\u308B\u3068\u3001\u4EBA\u4E8B\u53F0\u5E33\u3068\u306E\u5DEE\u5206\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF081\u884C\u76EE\u306F\u898B\u51FA\u3057\u3002UTF-8 \u3068 Shift_JIS \u3092\u8AAD\u3081\u307E\u3059\uFF09:
194
- not_in_ledger TWP \u3067\u5931\u52B9\u3057\u3066\u3044\u306A\u3044\u304C\u53F0\u5E33\u306B\u3044\u306A\u3044\uFF08\u9000\u793E\u6642\u306E\u5931\u52B9\u6F0F\u308C\u3002\u30D1\u30FC\u30C8\u30CA\u30FC\u3084\u5171\u7528\u30A2\u30AB\u30A6\u30F3\u30C8\u3082\u51FA\u307E\u3059\uFF09
195
- missing_in_twp \u53F0\u5E33\u306B\u3044\u308B\u304C TWP \u306B\u3044\u306A\u3044\uFF08\u767B\u9332\u6F0F\u308C\uFF09
196
- disabled_in_twp \u53F0\u5E33\u306B\u3044\u308B\u304C TWP \u3067\u5931\u52B9\u3057\u3066\u3044\u308B\uFF08\u8AA4\u5931\u52B9\uFF09
197
- ambiguous \u53F0\u5E33\u306E1\u884C\u304C TWP \u306E\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u4E00\u81F4\u3057\u3001\u6C7A\u3081\u3089\u308C\u306A\u3044
198
- department_mismatch \u90E8\u7F72\u304C\u9055\u3046\uFF08\u7570\u52D5\u306E\u53CD\u6620\u6F0F\u308C\u30FB\u53F0\u5E33\u306B\u90E8\u7F72\u306E\u5217\u304C\u3042\u308B\u3068\u304D\uFF09
199
- position_mismatch \u5F79\u8077\u304C\u9055\u3046\uFF08\u540C\u4E0A\u30FB\u53F0\u5E33\u306B\u5F79\u8077\u306E\u5217\u304C\u3042\u308B\u3068\u304D\uFF09
200
- inactive \u30ED\u30B0\u30A4\u30F3\u3067\u304D\u308B\u306E\u306B --inactive-days \u65E5\uFF08\u65E2\u5B9A60\u30FB\u6700\u592790\uFF09\u30ED\u30B0\u30A4\u30F3\u306E\u8A18\u9332\u304C\u7121\u3044
201
- \uFF08\u5165\u793E\u65E5\u304C\u305D\u306E\u65E5\u6570\u4EE5\u5185\u306E\u4EBA\u3068\u3001oauth \u306E\u4EBA\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09
202
- \u53F0\u5E33\u306E\u4EBA\u3068\u306F\u3001\u793E\u54E1\u756A\u53F7 \u2192 \u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 \u2192 \u6C0F\u540D\u306E\u9806\u306B\u8A66\u3057\u3001\u6700\u521D\u306B TWP \u306E\u8AB0\u304B\u306B\u5F53\u305F\u3063\u305F\u5217\u3067\u7A81\u304D\u5408\u308F\u305B\u307E\u3059\u3002
203
- \u90E8\u7F72\u30FB\u5F79\u8077\u306F TWP \u306E\u540D\u524D\u3068\u6BD4\u3079\u307E\u3059\uFF08\u5168\u89D2\u534A\u89D2\u30FB\u7A7A\u767D\u306E\u63FA\u308C\u3068\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u306F\u7121\u8996\u3057\u307E\u3059\uFF09\u3002
204
- \u5217\u540D\u306F \u793E\u54E1\u756A\u53F7 / \u6C0F\u540D / \u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 / \u90E8\u7F72 / \u5F79\u8077 \u306A\u3069\u3092\u81EA\u52D5\u3067\u63A2\u3057\u307E\u3059\u3002\u9055\u3046\u3068\u304D\u306F --code-column \u7B49\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
205
- \uFF08\u898B\u51FA\u3057\u304C\u5358\u306B\u300C\u30E1\u30FC\u30EB\u300D\u306E\u5217\u306F\u500B\u4EBA\u30E1\u30FC\u30EB\u306E\u3053\u3068\u304C\u3042\u308B\u306E\u3067\u81EA\u52D5\u3067\u306F\u4F7F\u3044\u307E\u305B\u3093\uFF09\u3002\u4F7F\u3046\u5217\u306F\u5B9F\u884C\u524D\u306B\u8868\u793A\u3057\u307E\u3059\u3002
206
- \u5404\u884C\u306E suggestion \u306F\u6B21\u306B\u6253\u3064\u30B3\u30DE\u30F3\u30C9\u306E\u6848\u3067\u3059\u3002'<\u7570\u52D5\u65E5>' \u306A\u3069\u306E <\u2026> \u306F\u57CB\u3081\u3066\u304B\u3089\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
207
- \u5B9F\u884C\u3059\u308B\u524D\u306B\u3001\u5BFE\u8C61\u304C\u81EA\u5206\u81EA\u8EAB\u3084\u5171\u7528\u306E\u7BA1\u7406\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u306A\u3044\u304B\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF08\u5931\u52B9\u3055\u305B\u308B\u3068\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\uFF09\u3002
208
- twp user assignment move \u306F\u4E0A\u9577\u3092\u5F15\u304D\u7D99\u304C\u306A\u3044\u306E\u3067\u3001\u5FC5\u8981\u306A\u3089 --manager \u3082\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
209
- \u72B6\u614B\u304C active \u3067\u306A\u3044\u30A2\u30AB\u30A6\u30F3\u30C8\uFF08\u30DE\u30B9\u30BF\u7BA1\u7406\u3067\u505C\u6B62\u3057\u305F\u3082\u306E\u7B49\uFF09\u306F\u4E00\u89A7\u306B\u51FA\u306A\u3044\u305F\u3081\u3001missing_in_twp \u306B\u51FA\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
210
-
211
- 1\u4EBA\u3042\u305F\u308A\u6700\u59273\u5F80\u5FA9\u3057\u307E\u3059\u3002\u672C\u756A\u306E API \u30EC\u30FC\u30C8\u5236\u9650\u306B\u5408\u308F\u305B\u30661\u5206\u3042\u305F\u308A ${SEND_PER_MINUTE} \u672C\u307E\u3067\u306B\u6291\u3048\u3066\u9001\u308A\u307E\u3059\u3002
212
- \u5BFE\u8C61\u304C --max-users\uFF08\u65E2\u5B9A ${DEFAULT_MAX_USERS} \u4EBA\uFF09\u3092\u8D85\u3048\u308B\u3068\u3001\u8A73\u7D30\u3092\u8AAD\u3080\u524D\u306B\u6B62\u307E\u308A\u307E\u3059\u3002`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user export \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:[{name:"--file",summary:"\u7A81\u304D\u5408\u308F\u305B\u308B\u4EBA\u4E8B\u53F0\u5E33\u306E CSV\uFF081\u884C\u76EE\u306F\u898B\u51FA\u3057\uFF09",
213
- takesValue:true,placeholder:"<\u53F0\u5E33CSV>"},{name:"--include-disabled",summary:"\u5931\u52B9\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u51FA\u3059\uFF08--file \u7121\u3057\u306E\u3068\u304D\uFF09",takesValue:false},{name:"--exclude-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3092\u5BFE\u8C61\u304B\u3089\u5916\u3059",takesValue:false},{name:"--inactive-days",summary:`\u3053\u306E\u65E5\u6570\u30ED\u30B0\u30A4\u30F3\u306E\u8A18\u9332\u304C\u7121\u3044\u5728\u7C4D\u8005\u3092 inactive \u3068\u3057\u3066\u51FA\u3059\uFF08\u65E2\u5B9A ${DEFAULT_INACTIVE_DAYS}\
214
- \u30FB\u6700\u5927 ${LOGIN_HISTORY_RETENTION_DAYS}\uFF09`,takesValue:true,placeholder:"<\u65E5\u6570>"},...COLUMN_FLAGS,{name:"--max-users",summary:`\u5BFE\u8C61\u306E\u4EBA\u6570\u306E\u4E0A\u9650\uFF08\u65E2\u5B9A ${DEFAULT_MAX_USERS}\uFF09`,takesValue:true,placeholder:"<\u4EBA\u6570>"}],async prepare(input){if(input.args.length>0)throw new UsageError(`export \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,HELP);const inactiveDays=positiveInteger(input.
215
- flags,"--inactive-days")??DEFAULT_INACTIVE_DAYS;if(inactiveDays>LOGIN_HISTORY_RETENTION_DAYS){throw new UsageError(`--inactive-days \u306F ${LOGIN_HISTORY_RETENTION_DAYS} \u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${inactiveDays}\uFF09`,`\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u306F ${LOGIN_HISTORY_RETENTION_DAYS} \u65E5\u3067\u6D88\u3048\u308B\u305F\u3081\u3001\u305D\u308C\u3088\u308A\u524D\u306F\u5224\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)}
216
- const maxUsers=positiveInteger(input.flags,"--max-users")??DEFAULT_MAX_USERS;const file=flagValue(input,"--file");const overrides={};for(const role of LEDGER_ROLES){const value=flagValue(input,`--${role}-column`);if(value!==void 0)overrides[role]=value}const resolved={inactiveDays:String(inactiveDays),maxUsers:String(maxUsers)};if(file===void 0)return withResolved(input,resolved);if(input.flags.has("--include-disabled")){throw new UsageError("--include-disabled \u306F --file \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",
217
- "\u5DEE\u5206\u3067\u306F\u5931\u52B9\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u3082\u7A81\u304D\u5408\u308F\u305B\u306B\u4F7F\u3044\u3001\u53F0\u5E33\u306B\u3044\u308B\u4EBA\u306F disabled_in_twp \u3068\u3057\u3066\u51FA\u3057\u307E\u3059\u3002")}resolved["ledger"]=JSON.stringify(parseLedger(decodeLedger(readLedgerFile(file)),overrides));return withResolved(input,resolved)},plan:input=>listPlan(input),plannedNotes:input=>{const notes=["\u3053\u306E\u3042\u3068\u4E00\u89A7\u306E\u7D9A\u304D\u30FB\u6A29\u9650\u30DE\u30C8\u30EA\u30AF\u30B9\u3092 GET \u3057\u30011\u4EBA\u305A\u3064\u8A73\u7D30\u30FB\u73FE\u5728\u306E\u6240\u5C5E\u30FB\u30ED\u30B0\u30A4\u30F3\u5C65\u6B74\u3092 GET \u3057\u307E\u3059\uFF08\u8AAD\u307F\u53D6\u308A\
218
- \u3060\u3051\uFF09\u3002"];if(!input.flags.has("--exclude-hidden"))notes.push("\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u5BFE\u8C61\u306B\u3057\u307E\u3059\uFF08--exclude-hidden \u3067\u9664\u3051\u307E\u3059\uFF09\u3002");const ledger=ledgerOf(input);if(ledger!==void 0){const used=LEDGER_ROLES.filter(role=>ledger.columns[role]!==void 0).map(role=>`${ROLE_LABEL[role]}=\u300C${ledger.header[ledger.columns[role]]??""}\u300D`);notes.push(`\u53F0\u5E33 ${ledger.
219
- rows.length} \u884C\u3092\u8AAD\u307F\u307E\u3057\u305F\u3002\u4F7F\u3046\u5217: ${used.join("\u3001")}`)}return notes},async execute(input,ctx){const{rows,scanned}=await collectInventory(input,ctx);const disabled=rows.filter(r=>!r.can_login).length;const ssoUndetermined=rows.filter(r=>r.can_login&&r.last_login_status==="sso_not_recorded").length;const excludedHidden=input.flags.has("--exclude-hidden");const ledger=ledgerOf(input);if(ledger===void 0){const visible=input.flags.has("--include-disa\
220
- bled")?rows:rows.filter(r=>r.can_login);return{mode:"inventory",rows:visible,scanned,disabled,ssoUndetermined,excludedHidden}}const diffs=diffAgainstLedger(rows,ledger.rows,ledger.columns,Number(requireResolved(input,"inactiveDays")),new Date);return{mode:"diff",rows:diffs,scanned,disabled,ssoUndetermined,excludedHidden}},summarize(body){const result=exportBody(body);if(result.mode==="diff"){return result.rows.map(row=>Object.fromEntries(DIFF_COLUMNS.map(c=>[c,spreadsheetSafe(row[c])])))}return result.
221
- 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}\
222
- \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`)}
223
- 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")}}
224
- return notes}};var PROFILE_SKILL_COLUMNS=["fiscal_year","status","skill_name","self_level","primary_level","secondary_level","confirmed_level","target_level","profile_id","skill_id"];function profileRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\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")}
136
+ ${commands.map(c=>` ${c}`).join("\n")}${later}`)}return notes}};var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09\u306E\u53C2\u7167\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u30FB\u4ED8\u3051\u66FF\u3048",operations:[listOperation,createOperation,updateOperation,endOperation,deleteOperation,moveOperation]};var PROFILE_SKILL_COLUMNS=["fiscal_year","status","skill_name","self_level","primary_level","secondary_level","confirmed_level","target_level","profile_id","skill_id"];function profileRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\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")}
225
137
  return list}function skillsPlan(input){userPath(input);return{method:"GET",path:"/api/v2/organization/user-skill-profiles",query:{user_id:input.resolved?.["userId"],fiscal_year:fiscalYear(input)}}}var skillsOperation={name:"skills",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u30B9\u30AD\u30EB\u8A55\u4FA1\uFF08\u5E74\u5EA6\u3054\u3068\u306E\u81EA\u5DF1\u30FB\u4E00\u6B21\u30FB\u4E8C\u6B21\u30FB\u78BA\u5B9A\u30EC\u30D9\u30EB\uFF09\u3092\u51FA\u3059",usage:"twp user skills <\u30E6\u30FC\u30B6\u30FC> [--fiscal-year <\u5E74\u5EA6>]",
226
138
  description:"GET /api/v2/organization/user-skill-profiles?user_id=\u2026\u3002\u5E74\u5EA6\u3054\u3068\u306E\u30B9\u30AD\u30EB\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u3057\u307E\u3059\u3002\nstatus \u306F\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306E\u8A55\u4FA1\u6BB5\u968E\uFF08\u30B5\u30FC\u30D0\u306E\u5024\uFF09\u3001self_level / primary_level / secondary_level / confirmed_level \u306F\n\u81EA\u5DF1\u30FB\u4E00\u6B21\u30FB\u4E8C\u6B21\u8A55\u4FA1\u3068\u78BA\u5B9A\u30EC\u30D9\u30EB\uFF08\u672A\u5165\u529B\u306F\u7A7A\uFF09\u3001target_level \u306F\u76EE\u6A19\u30EC\u30D9\u30EB\u3067\u3059\u3002\n\u53C2\u7167\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\u30FB\u4E0A\u9577\uFF08\u4E0A\u9577\u30C1\u30A7\u30FC\u30F3\uFF09\u30FBHR\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002\u5358\u4FA1\uFF08unit_price\uFF09\u306FHR\u7BA1\u7406\u8005\u306B\u3060\u3051\u8FD4\u308A\u307E\u3059\u3002\n\n--output table / text / tsv \u306F1\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB1\u30B9\u30AD\u30EB1\u884C\u3067\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\n\n"+
227
139
  USER_REF_HELP,forbidden:"\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u30B9\u30AD\u30EB\u8A55\u4FA1\u3092\u53C2\u7167\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u672C\u4EBA\u30FB\u4E0A\u9577\u30FBHR\u7BA1\u7406\u8005\u3060\u3051\u304C\u53C2\u7167\u3067\u304D\u307E\u3059",flags:[USER_REF_FLAG,FISCAL_YEAR_FLAG],async prepare(input,ctx){fiscalYear(input);return prepareUser(input,ctx,"twp user skills help")},plan:skillsPlan,plannedNotes:()=>["\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"],
@@ -288,7 +200,7 @@ usage:"twp user invite resend <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9|\u30C8
288
200
  body,"\u62DB\u5F85\u306E\u518D\u9001")},{name:"delete",summary:"\u62DB\u5F85\u3092\u53D6\u308A\u6D88\u3059\uFF08\u53D7\u8AFE\u7528\u306E\u30EA\u30F3\u30AF\u304C\u4F7F\u3048\u306A\u304F\u306A\u308B\uFF09",usage:"twp user invite delete <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9|\u30C8\u30FC\u30AF\u30F3> --yes",description:`${INVITE_REF_HELP}
289
201
 
290
202
  \u53D6\u308A\u6D88\u3057\u305F\u62DB\u5F85\u306F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u62DB\u5F85\u3059\u308B\u3068\u304D\u306F twp user invite create \u3092\u4F7F\u3044\u307E\u3059\u3002`,destructive:true,forbidden:FORBIDDEN2,flags:[INVITE_REF_FLAG],prepare:input=>prepareInvite(input,"twp user invite delete help"),plan:input=>refPlan(input,"DELETE"),plannedNotes:refNotes,async execute(input,ctx){return ctx.send({method:"DELETE",path:invitePath(await tokenFor(input,
291
- ctx))})},summarize:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88"),raw:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88")}]};var LIST_COLUMNS2=["user_id","user_name","email","employee_code","department_name","position_name","role","display_flg"];var GET_COLUMNS=["user_id","user_name","user_name_kana","email","employee_code","role","auth_type","hire_date","is_locked","display_flg","memberlist_flg","org_chart_flg","dashboard_flg"];var EMPLOYMENT_TYPES=["employee","partner"];var listPaging2=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userObject(body){if(!isRecord(body)||typeof body["user_id"]!==
203
+ ctx))})},summarize:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88"),raw:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88")}]};var LIST_COLUMNS2=["user_id","user_name","email","employee_code","department_name","position_name","role","display_flg"];var GET_COLUMNS=["user_id","user_name","user_name_kana","email","employee_code","role","auth_type","hire_date","is_locked","display_flg","memberlist_flg","org_chart_flg","dashboard_flg"];var EMPLOYMENT_TYPES=["employee","partner"];var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userObject(body){if(!isRecord(body)||typeof body["user_id"]!==
292
204
  "string"){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u8A73\u7D30\u306E\u5FDC\u7B54\u306B user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const rest={...body};delete rest["result"];return rest}var TEXT_FIELDS=[{flag:"--name",key:"user_name",label:"\u6C0F\u540D",maxChars:255,summary:"\u6C0F\u540D",placeholder:"<\u6C0F\u540D>"},{flag:"--kana",key:"user_name_kana",label:"\u30D5\u30EA\u30AC\u30CA",maxChars:255,
293
205
  summary:"\u6C0F\u540D\u306E\u30D5\u30EA\u30AC\u30CA",placeholder:"<\u30D5\u30EA\u30AC\u30CA>"},{flag:"--email",key:"login_id",label:"\u30ED\u30B0\u30A4\u30F3ID",maxChars:255,summary:"\u30ED\u30B0\u30A4\u30F3ID\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF09",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--employee-code",key:"employee_code",label:"\u793E\u54E1\u756A\u53F7",maxChars:50,summary:"\u793E\u54E1\u756A\u53F7",placeholder:"<\u793E\u54E1\u756A\u53F7>"}];var DISPLAY_FIELDS=[
294
206
  {flag:"--display",key:"display_flg",summary:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u30FB\u9078\u629E\u80A2\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--memberlist",key:"memberlist_flg",summary:"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--org-chart",key:"org_chart_flg",summary:"\u7D44\u7E54\u56F3\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--dashboard",key:"dashboard_flg",summary:"\u30C0\u30C3\u30B7\
@@ -299,13 +211,13 @@ var PASSWORD_HINT="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F --password-file \u306B\u
299
211
  function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function roleType(input){const raw=input.flags.get("--role");if(raw===void 0)return void 0;const type=ROLE_TO_TYPE[raw.trim().toLowerCase()];if(type===void 0){throw new UsageError(`--role \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F admin\uFF08\u7BA1\u7406\u8005\uFF09/ user\uFF08\u4E00\u822C\uFF09\u3067\u3059\u3002")}
300
212
  return type}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){const file=input.flags.get(PASSWORD_FILE_FLAG.
301
213
  name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
302
- const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs2.statSync(file);if(!stat.isFile())throw new UsageError(`--passwor\
303
- d-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs2.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \
304
- \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){
305
- const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;for(const field of DISPLAY_FIELDS){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.key]=value}return body}function writeAck(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(
306
- `${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["\
307
- feature"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-\
308
- file <\u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
214
+ const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--password\
215
+ -file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \u306E\u30D5\
216
+ \u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){const value=boundedText(
217
+ input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;for(const field of DISPLAY_FIELDS){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.key]=value}return body}function writeAck(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\
218
+ \u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["featur\
219
+ e"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-file <\
220
+ \u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
309
221
  \u8868\u793A\u30D5\u30E9\u30B0\u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08\u3059\u3079\u3066 true\uFF1D\u8868\u793A\u3059\u308B\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
310
222
  \u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3067\u4ED8\u4E0E\u3055\u308C\u307E\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u6A5F\u80FD\u306F\u4ED8\u4E0E\u3055\u308C\u305A\u3001stderr \u306B\u51FA\u307E\u3059\uFF09\u3002
311
223
 
@@ -342,10 +254,10 @@ if(ref==="me")notes.push("\u5BFE\u8C61\u306F\u81EA\u5206\u81EA\u8EAB\u3067\u3059
342
254
  usage:"twp user list [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--employment employee|partner] [--keyword <\u8A9E>] [--include-hidden] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4E3B\u6240\u5C5E\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF09\u3002\n--employment \u306F employee\uFF08\u793E\u54E1\uFF09\u304B partner\uFF08\u30D1\u30FC\u30C8\u30CA\u30FC\uFF09\u3067\u3059\u3002\n--include-hidden \u306F\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\uFF09\u3002\n\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u4E00\u89A7\u306B\u542B\u307E\u308C\u307E\u3059\u3002\u5931\u52B9\u304B\u3069\u3046\u304B\u306F twp user get \u306E auth_type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\n\uFF08\u5168\u54E1\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092\u4E00\u89A7\u3067\u898B\u308B\u306A\u3089 twp user export \
343
255
  --include-disabled\uFF09\u3002\n\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08user_id / user_name / email / employee_code / department_name / position_name / role / display_flg\uFF09\u3067\u3059\u3002\n\n"+LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--department",summary:"\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",
344
256
  takesValue:true,placeholder:"<\u90E8\u7F72>"},{name:"--position",summary:"\u4E3B\u6240\u5C5E\u306E\u5F79\u8077\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u5F79\u8077>"},{name:"--employment",summary:"\u96C7\u7528\u533A\u5206\u3067\u7D5E\u308A\u8FBC\u3080\uFF08employee / partner\uFF09",takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--keyword",summary:"\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",
345
- takesValue:true,placeholder:"<\u8A9E>"},{name:"--include-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],paging:listPaging2,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user list help")}const employment=nonEmpty(input.flags,"--employment");if(employment!==void 0&&!EMPLOYMENT_TYPES.
257
+ takesValue:true,placeholder:"<\u8A9E>"},{name:"--include-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",takesValue:false}],paging:listPaging,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user list help")}const employment=nonEmpty(input.flags,"--employment");if(employment!==void 0&&!EMPLOYMENT_TYPES.
346
258
  includes(employment)){throw new UsageError(`--employment \u306B\u300C${employment}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${EMPLOYMENT_TYPES.join(" / ")} \u3067\u3059`)}const resolved={};const department=nonEmpty(input.flags,"--department");if(department!==void 0)resolved["departmentId"]=(await ctx.resolver.department(department)).id;const position=nonEmpty(input.flags,"--position");if(position!==void 0)resolved["positionId"]=(await ctx.
347
- resolver.position(position)).id;return withResolved(input,resolved)},plan(input){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),department_id:input.resolved?.["departmentId"],position_id:input.resolved?.["positionId"],employment_type:nonEmpty(input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>listPaging2.
348
- items(body).map(row=>pick(row,LIST_COLUMNS2)),raw:body=>listPaging2.items(body)},{name:"get",summary:"\u30E6\u30FC\u30B6\u30FC1\u4EBA\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user get <\u30E6\u30FC\u30B6\u30FC>",description:USER_REF_HELP+"\n\nauth_type \u304C disabled \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u3066\u3044\u307E\u3059\u3002\n\u8981\u7D04\uFF08table / text / tsv\uFF09\u306B\u306F\u500B\u4EBA\u9023\u7D61\u5148\u3092\u51FA\u3057\u307E\u305B\u3093\u3002--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
259
+ resolver.position(position)).id;return withResolved(input,resolved)},plan(input){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),department_id:input.resolved?.["departmentId"],position_id:input.resolved?.["positionId"],employment_type:nonEmpty(input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>listPaging.
260
+ items(body).map(row=>pick(row,LIST_COLUMNS2)),raw:body=>listPaging.items(body)},{name:"get",summary:"\u30E6\u30FC\u30B6\u30FC1\u4EBA\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user get <\u30E6\u30FC\u30B6\u30FC>",description:USER_REF_HELP+"\n\nauth_type \u304C disabled \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u3066\u3044\u307E\u3059\u3002\n\u8981\u7D04\uFF08table / text / tsv\uFF09\u306B\u306F\u500B\u4EBA\u9023\u7D61\u5148\u3092\u51FA\u3057\u307E\u305B\u3093\u3002--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
349
261
  forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user get \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user get help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input)}`}),summarize:body=>pick(userObject(body),GET_COLUMNS),raw:body=>userObject(body)},{name:"projects",summary:"\u6307\u5B9A\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C\u53C2\u753B\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
350
262
  usage:"twp user projects <\u30E6\u30FC\u30B6\u30FC>",description:"GET /api/v2/admin/users/{id}/projects\u3002\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\nmember_start_date / member_end_date \u306F\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u53C2\u753B\u671F\u9593\u3067\u3059\uFF08start_date / end_date \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u671F\u9593\uFF09\u3002\n\u81EA\u5206\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u304F\u3066\u3082 twp project mine \u3067\u8AAD\u3081\u307E\u3059\u3002\n\n"+
351
263
  USER_REF_HELP,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user projects \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF08\u81EA\u5206\u306E\u5206\u306F twp project mine\uFF09",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user projects help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input,"/projects")}`}),summarize:body=>assignedProjectItems(body).map(row=>pick(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanQuery,cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,referencedDeleteGuidance,targetId,updateFlags}from"./chunk-SCU74Z4U.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{USER_CONTRACT_TYPES_PATH}from"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{
3
+ import{booleanQuery,cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,referencedDeleteGuidance,targetId,updateFlags}from"./chunk-XGYOJHZC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{USER_CONTRACT_TYPES_PATH}from"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{
4
4
  acknowledgement,pick}from"./chunk-3ZRMMBP5.js";import{UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var NAME="user-contract-type";var LABEL="\u5951\u7D04\u5F62\u614B";var ITEM_KEY="contract_type";var CALCULATION_TYPES=["salary_based","salary_executive","salary_manager","hourly_based","contract_based","other_exempt"];var FIELDS=[{kind:"text",flag:"--name",key:"name",label:`${LABEL}\u540D`,maxChars:255,summary:`${LABEL}\u540D`},{kind:"text",flag:"--code",key:"code",label:`${LABEL}\u30B3\u30FC\u30C9`,maxChars:50,summary:`${LABEL}\u30B3\u30FC\u30C9\uFF08\u4EFB\u610F\u30FB\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09`},
5
5
  {kind:"enum",flag:"--calculation-type",key:"calculation_type",values:CALCULATION_TYPES,summary:"\u8A08\u7B97\u533A\u5206\uFF08salary_based: \u4E00\u822C\u5F93\u696D\u54E1 / salary_executive: \u5F79\u54E1 / salary_manager: \u7BA1\u7406\u76E3\u7763\u8005 / hourly_based: \u6642\u7D66\u5236 / contract_based: \u696D\u52D9\u59D4\u8A17 / other_exempt: \u8A08\u7B97\u5BFE\u8C61\u5916\uFF09"},{kind:"integer",flag:"--monthly-hours",key:"default_monthly_hours",label:"\u6708\u9593\u6240\u5B9A\u6642\u9593",min:1,
6
6
  max:744,summary:"\u6708\u9593\u6240\u5B9A\u6642\u9593\uFF081\u301C744\uFF09"},{kind:"number",flag:"--daily-hours",key:"default_daily_hours",label:"1\u65E5\u306E\u6240\u5B9A\u6642\u9593",min:1,max:24,summary:"1\u65E5\u306E\u6240\u5B9A\u6642\u9593\uFF081\u301C24\u30FB\u5C0F\u6570\u53EF\uFF09"},{kind:"number",flag:"--bonus-months",key:"bonus_months_default",label:"\u8CDE\u4E0E\u6708\u6570",min:0,max:24,summary:"\u8CDE\u4E0E\u6708\u6570\u306E\u65E2\u5B9A\uFF080\u301C24\u30FB\u5C0F\u6570\u53EF\uFF09"},
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain}from"./chunk-HBEOI456.js";import"./chunk-WVCEKC7V.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";
4
+ import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-Z2I5BGXV.js";import"./chunk-FBBKRVVS.js";import"./chunk-AYE4DF6J.js";import"./chunk-G6RLNOIZ.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ZSPWHEBL.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
3
+ import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-WBUYPDJH.js";import"./chunk-GLKZ4ZZY.js";import"./chunk-DAOC7VRM.js";import"./chunk-WMEGP2BT.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
4
  import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.65.0",
3
+ "version": "0.66.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {