@tocca-systems/twp-cli 0.43.0 → 0.44.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 (61) hide show
  1. package/CHANGELOG.public.md +6 -0
  2. package/README.md +50 -1
  3. package/dist/{ai-dispatch-MXTI2KZ2.js → ai-dispatch-FEDOAV2E.js} +1 -1
  4. package/dist/analysis-KUCETWIJ.js +3 -0
  5. package/dist/{api-command-DND4342Q.js → api-command-OIXWF72C.js} +3 -3
  6. package/dist/{app-2DWKZ2VE.js → app-6VL7WWT3.js} +4 -4
  7. package/dist/{backlog-SDWC7OY5.js → backlog-R3M54DPM.js} +1 -1
  8. package/dist/{chunk-XSSKEJGO.js → chunk-2ZTJP74M.js} +1 -1
  9. package/dist/chunk-34X4JXND.js +4 -0
  10. package/dist/{chunk-PORE2NZO.js → chunk-3UW33UZI.js} +1 -1
  11. package/dist/{chunk-YQ4DGLD3.js → chunk-4MTEXWYQ.js} +18 -17
  12. package/dist/{chunk-L35F47BO.js → chunk-AJIHNSXI.js} +1 -1
  13. package/dist/chunk-E7MUDY4P.js +82 -0
  14. package/dist/{chunk-CZMJXLDZ.js → chunk-ERQT4AMC.js} +1 -1
  15. package/dist/{chunk-AHLI7BUX.js → chunk-EZ3RJBN6.js} +1 -1
  16. package/dist/{chunk-3ZOHVESS.js → chunk-FCISZHMZ.js} +1 -1
  17. package/dist/{chunk-67UNSXM7.js → chunk-FUH3J5VB.js} +2 -2
  18. package/dist/chunk-G2TBGGER.js +81 -0
  19. package/dist/{chunk-XYIM36Q4.js → chunk-JC5HZGPD.js} +1 -1
  20. package/dist/{chunk-PGJ42IUR.js → chunk-NIZXUROF.js} +1 -1
  21. package/dist/{chunk-HBSD3UC6.js → chunk-OKIENL5P.js} +2 -2
  22. package/dist/{chunk-RKYNTQAI.js → chunk-R4MOGEGN.js} +1 -1
  23. package/dist/{chunk-NKIBB72I.js → chunk-R5KWKK5Z.js} +1 -1
  24. package/dist/{chunk-HBYFCYWA.js → chunk-SSYA2LNP.js} +2 -2
  25. package/dist/{chunk-XPYNN63B.js → chunk-UTIZTCAP.js} +1 -1
  26. package/dist/chunk-YPNMQCVG.js +9 -0
  27. package/dist/cli.js +49 -8
  28. package/dist/{commands-BDYQKXPD.js → commands-DUFVGY5V.js} +2 -2
  29. package/dist/{company-7TFFYG4A.js → company-46SIKR43.js} +3 -3
  30. package/dist/{completion-H65LUFVF.js → completion-4EIFB6JN.js} +1 -1
  31. package/dist/{contract-SIFZY6D4.js → contract-NDED7WTP.js} +1 -1
  32. package/dist/{department-NSK6YY6X.js → department-GLIMOUQM.js} +1 -1
  33. package/dist/{deposit-FUM7OA6F.js → deposit-U6O52S6F.js} +1 -1
  34. package/dist/{estimate-RL3N3JAE.js → estimate-DALQK4M5.js} +3 -3
  35. package/dist/{inquiry-K7RSYLFW.js → inquiry-QFW33SDT.js} +1 -1
  36. package/dist/{invoice-E7XIBLRA.js → invoice-OO6EPZAZ.js} +2 -2
  37. package/dist/{job-title-OF3ABHUQ.js → job-title-WA6FRUL6.js} +1 -1
  38. package/dist/{knowledge-ZQYVNFNI.js → knowledge-3IT2MBRG.js} +1 -1
  39. package/dist/{leave-MAFA6EQO.js → leave-YYKSAXHD.js} +1 -1
  40. package/dist/{media-LL4AVP5H.js → media-JMVFUWIM.js} +1 -1
  41. package/dist/{notification-KBL7QJE3.js → notification-5KPTSLO6.js} +1 -1
  42. package/dist/{oneshot-EUW726TV.js → oneshot-GXXMSQ4Y.js} +1 -1
  43. package/dist/{position-MZADW4R4.js → position-PCVPUJZQ.js} +1 -1
  44. package/dist/project-3WW2PW3O.js +4 -0
  45. package/dist/{prospect-L43GCNWK.js → prospect-6RF45LPK.js} +2 -2
  46. package/dist/{purchase-643XP2UX.js → purchase-TTKRSNCF.js} +4 -4
  47. package/dist/{receivable-O7H2LJ4K.js → receivable-H6GMZ6JQ.js} +1 -1
  48. package/dist/{registry-PGMXXWHA.js → registry-7OIXAAIO.js} +1 -1
  49. package/dist/{report-YTPDB4Y7.js → report-OEETO2S5.js} +1 -1
  50. package/dist/{run-SRTDTEKL.js → run-KVDDYJ6W.js} +2 -2
  51. package/dist/{sales-ai-review-J5ICW6RB.js → sales-ai-review-MXMECYDW.js} +1 -1
  52. package/dist/{sales-master-MCS3UL4M.js → sales-master-PFGXXJFP.js} +2 -2
  53. package/dist/{sales-numbering-2DVWFJFG.js → sales-numbering-KR2L3FQA.js} +1 -1
  54. package/dist/{supplier-payment-QF2YMAVT.js → supplier-payment-FRHPIV4D.js} +2 -2
  55. package/dist/{task-GSZZ7HT2.js → task-XTTCYGDC.js} +19 -14
  56. package/dist/{user-IF6PAMW7.js → user-3J4CZ4LO.js} +7 -5
  57. package/dist/{workflow-BHOWO32V.js → workflow-3M2KCVYI.js} +1 -1
  58. package/package.json +1 -1
  59. package/dist/chunk-TDU6U5PY.js +0 -8
  60. package/dist/chunk-YO2RNKCQ.js +0 -4
  61. package/dist/project-ZVRVNXWI.js +0 -13
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{featureLicenseGuidance}from"./chunk-NKIBB72I.js";import{isExactNumericId}from"./chunk-YQ4DGLD3.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{UsageError}from"./chunk-UFND7FBC.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
3
+ import{featureLicenseGuidance}from"./chunk-R5KWKK5Z.js";import{isExactNumericId}from"./chunk-4MTEXWYQ.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{UsageError}from"./chunk-UFND7FBC.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
4
4
  "\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u51FA\u529B\u3067\u304D\u307E\u3059\uFF09`}return void 0}var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",noExample:"EST0000063",
5
5
  defaultKind:"estimate",kinds:{estimate:{segment:"estimate",label:"\u898B\u7A4D\u66F8"},order:{segment:"order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",noExample:"INV0000170",defaultKind:"invoice",kinds:{invoice:{segment:"invoice",label:"\u8ACB\u6C42\u66F8"},delivery:{segment:"delivery",label:"\u7D0D\u54C1\u66F8"},inspection:{segment:"inspection",label:"\u691C\u53CE\u66F8"}}};var PURCHASE={
6
6
  name:"purchase",label:"\u4ED5\u5165",defaultKind:"order",kinds:{order:{segment:"purchase-order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"purchase-order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-PORE2NZO.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-NKIBB72I.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{booleanText,boundedText}from"./chunk-XDHLO54T.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-YQ4DGLD3.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,
3
+ import{salesAdminForbidden}from"./chunk-3UW33UZI.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-R5KWKK5Z.js";import{booleanText,boundedText}from"./chunk-XDHLO54T.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-4MTEXWYQ.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,
4
4
  nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
5
5
  "string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
6
6
  trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-HBSD3UC6.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XYIM36Q4.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{booleanText}from"./chunk-XDHLO54T.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-YQ4DGLD3.js";import{ApiError}from"./chunk-IF2K4PM5.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";
4
- import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
3
+ import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-OKIENL5P.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-JC5HZGPD.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{booleanText}from"./chunk-XDHLO54T.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-4MTEXWYQ.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{
4
+ ApiError}from"./chunk-IF2K4PM5.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
5
5
  document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
6
6
  urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={
7
7
  name:"--force",summary:"\u66F8\u304D\u51FA\u3057\u5148\u304C\u65E2\u306B\u3042\u308C\u3070\u4E0A\u66F8\u304D\u3059\u308B\uFF08\u65E2\u5B9A\u3067\u306F\u4E0A\u66F8\u304D\u3057\u306A\u3044\uFF09",takesValue:false};var REV_FLAG={name:"--rev",summary:"\u53D6\u308A\u51FA\u3059\u7248\u306E\u756A\u53F7\uFF08\u7701\u7565\u6642\u306F\u73FE\u884C\u7248\u3002get \u306E versions \u306E version_number\uFF09",takesValue:true,placeholder:"<\u7248\u756A\u53F7>"};var CONTRACT_REF_HELP="--customer\uFF08\u9867\u5BA2\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002<\u66F8\u985EID>\
@@ -0,0 +1,81 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-IXFMXUNT.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-E7MUDY4P.js";import{boundedText,isoDate}from"./chunk-XDHLO54T.js";import{readBody}from"./chunk-ORUDW52G.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-4MTEXWYQ.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-GMBJTG6A.js";
4
+ import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
5
+ --start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
6
+ var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI\
7
+ \u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
8
+ var PERIOD_HELP='--period-file \u306F\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u3067\u3059\u30021\u4EF6\u306F\u6B21\u306E\u30AD\u30FC\u3092\u6301\u3064\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059:\n start_date / end_date\uFF08YYYY-MM-DD\u30FB\u5FC5\u9808\uFF09\u30FBdaily_hours\uFF081\u65E5\u3042\u305F\u308A\u306E\u6642\u9593\u30FB\u5FC5\u9808\uFF09\u30FB\n total_hours\u30FBinput_mode\uFF08hours / percentage / person_days / total_hours\uFF09\u30FBid\uFF08\u65E2\u5B58\u306E\u671F\u9593\u3092\u6B8B\u3059\u3068\u304D\uFF09\n \u4F8B: [{"start_date":"2026-10-01","end_date":"2026-12-31","daily_hours":8,"input_mode":"hours"}]\n \u671F\u9593\u30921\u4EF6\u4EE5\u4E0A\u9001\u308B\u3068\u3001\u53C2\u753B\u958B\u59CB\u65E5\u30FB\u7D42\u4E86\u65E5\u306F\u30B5\u30FC\u30D0\u304C\u671F\u9593\u306E\u6700\u5C0F\u30FB\u6700\u5927\u304B\u3089\u6C7A\u3081\u307E\u3059\n \uFF08\u305D\u306E\u305F\u3081 --start-date / --end-date \u3068\u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF09\u3002--period-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002';
9
+ var MEMBER_REF_HELP="<\u30E1\u30F3\u30D0\u30FC> \u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FBID\u30FBme\uFF08\u81EA\u5206\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u5225\u540D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\n\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
10
+ var FORBIDDEN="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u7BA1\u7406\u3059\u308B\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\uFF09\u3002\u30E1\u30F3\u30D0\u30FC\u306E\u8FFD\u52A0\u30FB\u5909\u66F4\u30FB\u524A\u9664\u306F\u3053\u308C\u3089\u306E\u6A29\u9650\u3092\u6301\u3064\u4EBA\u3060\u3051\u304C\u884C\u3048\u307E\u3059";
11
+ function roleRejected(server){return/role/i.test(server)?"\u5F79\u5272\u306E\u5024\u306F twp project member create help \u306E --role \u306E\u8AAC\u660E\u304B\u3001twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002":void 0}var PERIODS_KEY="assignment_periods";var MEMBER_ROW_KEY="member_row";function parsePeriods(text2,source){let parsed;try{parsed=JSON.parse(text2)}catch{throw new UsageError(`\u7A3C\u50CD\u671F\u9593\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\
12
+ \uFF09`,PERIOD_HELP)}if(!Array.isArray(parsed))throw new UsageError(`\u7A3C\u50CD\u671F\u9593\u306F JSON \u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,PERIOD_HELP);const problems=[];parsed.forEach((period,index)=>{const at=`${index+1} \u4EF6\u76EE`;if(!isRecord(period)){problems.push(`${at}: \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return}const unknownKeys=Object.keys(period).filter(key=>!PERIOD_KEYS.includes(key));
13
+ if(unknownKeys.length>0)problems.push(`${at}: \u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${unknownKeys.join(", ")}`);const missing=PERIOD_REQUIRED.filter(key=>period[key]===void 0||period[key]===null||period[key]==="");if(missing.length>0)problems.push(`${at}: \u5FC5\u9808\u306E\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093: ${missing.join(", ")}`)});if(problems.length>0){throw new UsageError(`\u7A3C\u50CD\u671F\u9593\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\uFF08${source}\
14
+ \uFF09:
15
+ ${problems.join("\n ")}`,PERIOD_HELP)}return parsed}async function readPeriods(input,usage){const text2=await readBody(input,{flag:"--periods",fileFlag:PERIOD_FILE_FLAG.name,label:"\u7A3C\u50CD\u671F\u9593",maxChars:PERIOD_FILE_MAX_CHARS,usage});if(text2===void 0)return void 0;return parsePeriods(text2,`${PERIOD_FILE_FLAG.name} ${input.flags.get(PERIOD_FILE_FLAG.name)??""}`)}async function checkFields(input,usage){isoDate(input,START_DATE_FLAG.name);isoDate(input,END_DATE_FLAG.name);boundedText(
16
+ input,MEMO_FLAG.name,{maxChars:MEMO_MAX_CHARS,label:"\u30E1\u30E2"});if(input.flags.has(ROLE_FLAG.name)&&nonEmpty(input.flags,ROLE_FLAG.name)===void 0){throw new UsageError(`${ROLE_FLAG.name} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,ROLE_HELP)}const periods=await readPeriods(input,usage);if(periods===void 0)return input;if(periods.length>0&&(input.flags.has(START_DATE_FLAG.name)||input.flags.has(END_DATE_FLAG.name))){throw new UsageError(`${PERIOD_FILE_FLAG.name}\
17
+ \u306B\u671F\u9593\u304C\u3042\u308B\u3068\u304D\u306F ${START_DATE_FLAG.name} / ${END_DATE_FLAG.name} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u30B5\u30FC\u30D0\u304C\u53C2\u753B\u958B\u59CB\u65E5\u30FB\u7D42\u4E86\u65E5\u3092\u671F\u9593\u306E\u6700\u5C0F\u30FB\u6700\u5927\u3067\u4E0A\u66F8\u304D\u3059\u308B\u305F\u3081\u3001\u6307\u5B9A\u3057\u3066\u3082\u52B9\u304D\u307E\u305B\u3093\u3002")}return withResolved(input,{[PERIODS_KEY]:JSON.stringify(periods)})}function memberBody(input){
18
+ const body={};const role=nonEmpty(input.flags,ROLE_FLAG.name);if(role!==void 0)body["role"]=role;const startDate=isoDate(input,START_DATE_FLAG.name);if(startDate!==void 0)body["start_date"]=startDate;const endDate=isoDate(input,END_DATE_FLAG.name);if(endDate!==void 0)body["end_date"]=endDate;const periods=input.resolved?.[PERIODS_KEY];if(periods!==void 0)body["assignment_periods"]=JSON.parse(periods);const memo=boundedText(input,MEMO_FLAG.name,{maxChars:MEMO_MAX_CHARS,label:"\u30E1\u30E2"});if(memo!==
19
+ void 0)body["memo"]=memo;return body}function membersPath(input,suffix=""){return`/api/v2/projects/${encodeURIComponent(requireResolved(input,"projectId"))}/members${suffix}`}function text(value){return typeof value==="string"&&value.trim()!==""?value:null}async function prepareMember(input,ctx,usage){const ref=singleRef(input,{flag:USER_REF_FLAG.name,label:"\u30E1\u30F3\u30D0\u30FC",usage});const projectId=await ctx.projectId(nonEmpty(input.flags,PROJECT_FLAG.name));const rows=await ctx.resolver.
20
+ memberRows(projectId);let userId;if(ref.toLowerCase()==="me"){userId=(await ctx.resolver.currentUser()).id}else{const refs=rows.flatMap(row2=>{const id=text(row2["user_id"]);if(id===null)return[];const email=text(row2["user_email"]);return[{id,name:text(row2["user_name"])??id,code:null,...email!==null?{aliases:[email]}:{}}]});userId=(await resolveNamed(ref,refs,{flag:"<\u30E1\u30F3\u30D0\u30FC>",label:"\u30E1\u30F3\u30D0\u30FC"})).id}const row=rows.find(member=>member["user_id"]===userId);if(row===
21
+ void 0){throw new UsageError("\u81EA\u5206\u306F\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093","\u30E1\u30F3\u30D0\u30FC\u306F twp project members \u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002")}return withResolved(input,{projectId,userId,memberName:`${text(row["user_name"])??userId}\uFF08${text(row["user_email"])??userId}\u30FB\u5F79\u5272 ${text(row["role"])??"\u4E0D\u660E"}\uFF09`,[MEMBER_ROW_KEY]:JSON.stringify(
22
+ row)})}var targetNote=verb=>input=>[`${verb}\u30E1\u30F3\u30D0\u30FC: ${requireResolved(input,"memberName")}`];var invalidates=(input,ctx)=>{const projectId=input.resolved?.["projectId"];if(projectId!==void 0)ctx.resolver.invalidateMembers(projectId)};var MEMBER_COLUMNS=["user_id","user_name","user_email","role","alias","start_date","end_date"];function memberResult(body,label){if(!isRecord(body)||body["result"]!==true||!isRecord(body["member"])){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\
23
+ \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 memberSummary(body,label){const result=memberResult(body,label);const member=result["member"];const periods=member["assignment_periods"];return{message:result["message"]??null,...pick(member,MEMBER_COLUMNS),periods:Array.isArray(periods)?periods.length:0}}function removeAck(body){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(
24
+ "\u30E1\u30F3\u30D0\u30FC\u524A\u9664\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")}return{result:true,message:body["message"]??null}}function describePeriod(period){const mode=period["input_mode"]===void 0||period["input_mode"]===null?"":`\u30FB${String(period["input_mode"])}`;return`${String(period["start_date"]??"?")}\u301C${String(period["end_date"]??"?")}\uFF081\u65E5 ${String(
25
+ period["daily_hours"]??"?")} \u6642\u9593${mode}\u30FBid ${String(period["id"]??"?")}\uFF09`}function droppedPeriods(current,next){const keep=new Set(next.map(period=>period["id"]).filter(id=>typeof id==="string"&&id!==""));return current.filter(isRecord).filter(period=>!(typeof period["id"]==="string"&&keep.has(period["id"])))}function periodNotes(input){const sent=input.resolved?.[PERIODS_KEY];if(sent===void 0)return[];const row=JSON.parse(requireResolved(input,MEMBER_ROW_KEY));const current=Array.
26
+ isArray(row["assignment_periods"])?row["assignment_periods"]:[];const next=JSON.parse(sent);const dropped=droppedPeriods(current,next);const head=`\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9001\u308B ${next.length} \u4EF6\u3060\u3051\u304C\u6B8B\u308A\u307E\u3059\uFF09\u3002`;if(current.length===0)return[`${head}\u4ECA\u306E\u671F\u9593\u306F\u3042\u308A\u307E\u305B\u3093\u3002`];if(dropped.length===0)return[`${head}\
27
+ \u4ECA\u306E\u671F\u9593\u306F\u3059\u3079\u3066\u540C\u3058 id \u3067\u9001\u3089\u308C\u307E\u3059\u3002`];return[`${head}\u4ECA\u306E\u671F\u9593\u306E\u3046\u3061\u3001\u9001\u308B\u5185\u5BB9\u306B\u540C\u3058 id \u304C\u7121\u3044 ${dropped.length} \u4EF6\u306F\u6D88\u3048\u307E\u3059\uFF08\u540C\u3058\u65E5\u4ED8\u3067\u3082 id \u304C\u7121\u3051\u308C\u3070\u65B0\u3057\u3044 id \u3067\u4F5C\u308A\u76F4\u3055\u308C\u307E\u3059\uFF09:`,...dropped.map(period=>` - ${describePeriod(period)}`)]}
28
+ var WRITE_FLAGS=[ROLE_FLAG,START_DATE_FLAG,END_DATE_FLAG,PERIOD_FILE_FLAG,MEMO_FLAG,PROJECT_FLAG,USER_REF_FLAG];var createOperation={name:"create",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30E1\u30F3\u30D0\u30FC\u3092\u8FFD\u52A0\u3059\u308B\uFF08\u7A3C\u50CD\u671F\u9593\u3064\u304D\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09",usage:"twp project member create <\u30E6\u30FC\u30B6\u30FC> --role <\u5F79\u5272> [--project <\u30B3\u30FC\u30C9|ID>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--period-f\
29
+ ile <\u30D1\u30B9>] [--memo <\u6587\u5B57\u5217>]",description:`--role \u306F\u5FC5\u9808\u3067\u3059\u3002\u7A3C\u50CD\u671F\u9593\u3092\u5FC5\u9808\u306B\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306F --period-file \u3082\u8981\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002
30
+ \u8FFD\u52A0\u306F\u691C\u7D22\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u6A29\u9650\u66F4\u65B0\u3092\u4F34\u3044\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u306F\u975E\u540C\u671F\u3067\u884C\u3044\u307E\u3059\uFF08\u5FDC\u7B54\u306F\u5F85\u305F\u305A\u306B\u8FD4\u308A\u307E\u3059\uFF09\u3002
31
+
32
+ ${ROLE_HELP}
33
+
34
+ ${PERIOD_HELP}
35
+
36
+ ${USER_REF_HELP}`,forbidden:FORBIDDEN,rejected:roleRejected,flags:WRITE_FLAGS,async prepare(input,ctx){const usage="twp project member create help";if(!input.flags.has(ROLE_FLAG.name))throw new UsageError(`${ROLE_FLAG.name} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,ROLE_HELP);const checked=await checkFields(input,usage);const ref=singleRef(input,{flag:USER_REF_FLAG.name,label:"\u30E6\u30FC\u30B6\u30FC",usage});const projectId=await ctx.projectId(nonEmpty(input.flags,PROJECT_FLAG.name));
37
+ const user=await ctx.resolver.user(ref);return withResolved(checked,{projectId,userId:user.id})},plan:input=>({method:"POST",path:membersPath(input),body:{user_id:requireResolved(input,"userId"),...memberBody(input)}}),invalidates,summarize:body=>memberSummary(body,"\u30E1\u30F3\u30D0\u30FC\u8FFD\u52A0"),raw:body=>memberResult(body,"\u30E1\u30F3\u30D0\u30FC\u8FFD\u52A0")};var updateOperation={name:"update",summary:"\u30E1\u30F3\u30D0\u30FC\u306E\u5F79\u5272\u30FB\u53C2\u753B\u671F\u9593\u30FB\u7A3C\u50CD\u671F\u9593\u30FB\u30E1\u30E2\u3092\u5909\u3048\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09",
38
+ usage:"twp project member update <\u30E1\u30F3\u30D0\u30FC> [--project <\u30B3\u30FC\u30C9|ID>] [--role <\u5F79\u5272>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--period-file <\u30D1\u30B9>] [--memo <\u6587\u5B57\u5217>]",description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
39
+ \u26A0\uFE0F --period-file \u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u7A3C\u50CD\u671F\u9593\u306F\u9001\u3063\u305F\u5185\u5BB9\u3067\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u5DEE\u5206\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
40
+ \u9001\u308B\u524D\u306B\u4ECA\u306E\u671F\u9593\u3092\u8AAD\u307F\u3001\u6D88\u3048\u308B\u671F\u9593\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002
41
+ \u6B8B\u3057\u305F\u3044\u671F\u9593\u306F id \u3092\u4ED8\u3051\u305F\u307E\u307E\u9001\u3063\u3066\u304F\u3060\u3055\u3044\uFF08twp project members --output json \u306E assignment_periods\uFF09\u3002
42
+ [] \u3092\u9001\u308B\u3068\u7A3C\u50CD\u671F\u9593\u3092\u3059\u3079\u3066\u6D88\u3057\u307E\u3059\uFF08\u7A3C\u50CD\u671F\u9593\u3092\u5FC5\u9808\u306B\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002
43
+
44
+ ${ROLE_HELP}
45
+
46
+ ${PERIOD_HELP}
47
+
48
+ ${MEMBER_REF_HELP}`,forbidden:FORBIDDEN,rejected:roleRejected,flags:WRITE_FLAGS,async prepare(input,ctx){const usage="twp project member update help";const changed=[ROLE_FLAG,START_DATE_FLAG,END_DATE_FLAG,PERIOD_FILE_FLAG,MEMO_FLAG].some(flag=>input.flags.has(flag.name));if(!changed)throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return prepareMember(await checkFields(input,usage),ctx,usage)},plan:input=>({
49
+ method:"PUT",path:membersPath(input,`/${userPath(input)}`),body:memberBody(input)}),plannedNotes:input=>[...targetNote("\u5909\u66F4\u3059\u308B")(input),...periodNotes(input)],invalidates,summarize:body=>memberSummary(body,"\u30E1\u30F3\u30D0\u30FC\u66F4\u65B0"),raw:body=>memberResult(body,"\u30E1\u30F3\u30D0\u30FC\u66F4\u65B0")};var deleteOperation={name:"delete",summary:"\u30E1\u30F3\u30D0\u30FC\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u5916\u3059\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u30FB--yes \u304C\u8981\u308B\uFF09",
50
+ usage:"twp project member delete <\u30E1\u30F3\u30D0\u30FC> [--project <\u30B3\u30FC\u30C9|ID>] --yes",description:"\u30E1\u30F3\u30D0\u30FC\u306E\u884C\u3092\u6D88\u3057\u307E\u3059\uFF08\u7A3C\u50CD\u671F\u9593\u30FB\u30E1\u30E2\u30FB\u5225\u540D\u3082\u6D88\u3048\u307E\u3059\u3002\u5143\u306B\u623B\u3059\u64CD\u4F5C\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u305D\u306E\u30E1\u30F3\u30D0\u30FC\u304C\u62C5\u5F53\u3057\u3066\u3044\u308B\u30BF\u30B9\u30AF\u306E\u62C5\u5F53\u8005\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306F\u30BF\u30B9\u30AF\u306B\u89E6\u308C\u307E\u305B\u3093\uFF09\u3002\n\u53C2\u753B\u3092\u7D42\u3048\u308B\u3060\u3051\u306A\u3089\u3001\u5C65\u6B74\u304C\u6B8B\u308B twp project member update <\u30E1\u30F3\u30D0\u30FC> --end-date <YYYY-MM-DD> \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\n\n"+
51
+ MEMBER_REF_HELP,destructive:true,forbidden:FORBIDDEN,flags:[PROJECT_FLAG,USER_REF_FLAG],prepare:(input,ctx)=>prepareMember(input,ctx,"twp project member delete help"),plan:input=>({method:"DELETE",path:membersPath(input,`/${userPath(input)}`)}),plannedNotes:input=>[`\u5916\u3059\u30E1\u30F3\u30D0\u30FC: ${requireResolved(input,"memberName")}\u3002\u62C5\u5F53\u4E2D\u306E\u30BF\u30B9\u30AF\u306E\u62C5\u5F53\u8005\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002`],invalidates,summarize:removeAck,raw:removeAck};
52
+ function roleChange(name){const promote=name==="promote";const label=promote?"\u7BA1\u7406\u8005\u3078\u306E\u6607\u683C":"\u30E1\u30F3\u30D0\u30FC\u3078\u306E\u964D\u683C";return{name,summary:promote?"\u30E1\u30F3\u30D0\u30FC\u3092\u7BA1\u7406\u8005\uFF08manager\uFF09\u306B\u6607\u683C\u3059\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09":"\u7BA1\u7406\u8005\uFF08manager\uFF09\u3092\u30E1\u30F3\u30D0\u30FC\u306B\u964D\u683C\u3059\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09",
53
+ usage:`twp project member ${name} <\u30E1\u30F3\u30D0\u30FC> [--project <\u30B3\u30FC\u30C9|ID>]`,description:(promote?"\u5F79\u5272\u3092 manager \u306B\u3057\u307E\u3059\u3002\u65E2\u306B manager \u306A\u3089\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\n":"\u5F79\u5272\u304C manager \u306E\u30E1\u30F3\u30D0\u30FC\u3060\u3051\u3092 member \u306B\u3057\u307E\u3059\u3002approver / manager_no_punch \u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\n\uFF08\u305D\u306E\u5834\u5408\u306F twp project member update <\u30E1\u30F3\u30D0\u30FC> --role member \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n")+
54
+ `
55
+ ${MEMBER_REF_HELP}`,forbidden:FORBIDDEN,...promote?{}:{rejected:server=>server.includes("\u7BA1\u7406\u8005\u3067\u306F\u3042\u308A\u307E\u305B\u3093")?"\u5F79\u5272\u304C manager \u4EE5\u5916\u306E\u30E1\u30F3\u30D0\u30FC\u306F twp project member update <\u30E1\u30F3\u30D0\u30FC> --role member \u3067\u5909\u3048\u3066\u304F\u3060\u3055\u3044\u3002":void 0},flags:[PROJECT_FLAG,USER_REF_FLAG],prepare:(input,ctx)=>prepareMember(input,ctx,`twp project member ${name} help`),plan:input=>({method:"POS\
56
+ T",path:membersPath(input,`/${userPath(input,`/${name}`)}`)}),plannedNotes:targetNote(promote?"\u6607\u683C\u3059\u308B":"\u964D\u683C\u3059\u308B"),invalidates,summarize:body=>memberSummary(body,label),raw:body=>memberResult(body,label)}}var aliasOperation={name:"alias",summary:"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306E\u81EA\u5206\u306E\u5225\u540D\u3092\u8A2D\u5B9A\u3059\u308B\uFF08--clear \u3067\u6D88\u3059\uFF09",usage:"twp project member alias (<\u5225\u540D> | --clear) [--project\
57
+ <\u30B3\u30FC\u30C9|ID>]",description:"\u81EA\u5206\uFF08\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\uFF09\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u5225\u540D\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u30E1\u30F3\u30D0\u30FC\u306A\u3089\u8AB0\u3067\u3082\u4F7F\u3048\u307E\u3059\u3002\n\u5225\u540D\u306F twp task \u306E --assignee \u3067\u30E1\u30F3\u30D0\u30FC\u3092\u6307\u5B9A\u3059\u308B\u3068\u304D\u306B\u4F7F\u3048\u307E\u3059\uFF08twp project member \u306E\u5BFE\u8C61\u6307\u5B9A\u306B\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002",
58
+ flags:[CLEAR_FLAG,PROJECT_FLAG],async prepare(input,ctx){const usage="twp project member alias help";if(input.args.length>1)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u5225\u540D\u306F1\u3064\u3060\u3051\u3067\u3059: ${input.args.slice(1).join(" ")}`,usage);const alias=input.args[0];if(input.flags.has(CLEAR_FLAG.name)&&alias!==void 0)throw new UsageError(`\u5225\u540D\u3068 ${CLEAR_FLAG.name} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,usage);if(!input.flags.has(
59
+ CLEAR_FLAG.name)){if(alias===void 0||alias.trim()==="")throw new UsageError(`\u5225\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6D88\u3059\u306A\u3089 ${CLEAR_FLAG.name}\uFF09`,usage);if([...alias].length>ALIAS_MAX_CHARS)throw new UsageError(`\u5225\u540D\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${[...alias].length} \u6587\u5B57\u30FB\u4E0A\u9650 ${ALIAS_MAX_CHARS} \u6587\u5B57\uFF09`,usage)}return withResolved(input,{projectId:await ctx.projectId(nonEmpty(input.flags,PROJECT_FLAG.
60
+ name))})},plan:input=>({method:"PATCH",path:membersPath(input,"/me/alias"),body:{alias:input.flags.has(CLEAR_FLAG.name)?null:input.args[0]}}),invalidates,summarize:body=>memberSummary(body,"\u5225\u540D\u306E\u66F4\u65B0"),raw:body=>memberResult(body,"\u5225\u540D\u306E\u66F4\u65B0")};var projectMemberResource={name:"member",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3\uFF08\u8FFD\u52A0\u30FB\u5F79\u5272\u3068\u7A3C\u50CD\u671F\u9593\u306E\u5909\u66F4\u30FB\u524A\u9664\u30FB\u6607\u683C\u30FB\u964D\u683C\u30FB\u81EA\u5206\u306E\u5225\u540D\uFF09",
61
+ operations:[createOperation,updateOperation,deleteOperation,roleChange("promote"),roleChange("demote"),aliasOperation]};var LIST_COLUMNS=["id","code","name","status","effective_status"];var GET_COLUMNS=["id","code","name","status","effective_status","display_flg","closed_flg","task_enabled_flg","start_date","end_date","created_at","updated_at"];var MEMBER_COLUMNS2=["user_id","user_name","user_email","role","alias","department_name"];function memberItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\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")}
62
+ return list}var listPaging=envelopePaging({label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7"});function listItems(body){return listPaging.items(body)}function projectObject(body){const project=isRecord(body)?body["project"]:void 0;if(!isRecord(project)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A73\u7D30\u306E\u5FDC\u7B54\u306B project \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return project}
63
+ var MANHOURS_USAGE="twp project manhours [<ID|\u30B3\u30FC\u30C9>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";var projectDomain={name:"project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3",operations:[{name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp project list [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>] [--keyword <\u8A9E>] [--status <\u72B6\u614B>]",
64
+ description:"--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\uFF08id / code / name / status / effective_status\uFF09\u3067\u3059\u3002\n\u6B32\u3057\u3044\u5217\u3060\u3051\u3092\u6A5F\u68B0\u51E6\u7406\u3057\u305F\u3044\u3068\u304D\u306F --query \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08--query \u306F\u751F\u30C7\u30FC\u30BF\u306B\u5BFE\u3057\u3066\u8A55\u4FA1\u3055\u308C\u307E\u3059\uFF09\u3002\n\n"+
65
+ LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--keyword",summary:"\u30B3\u30FC\u30C9\u30FB\u540D\u79F0\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u4F8B: active\uFF09",takesValue:true,placeholder:"<\u72B6\u614B>"}],paging:listPaging,plan(input){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
66
+ args.join(" ")}`,"twp project list help")}return{method:"GET",path:"/api/v2/projects",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),status:nonEmpty(input.flags,"--status")}}},summarize:body=>listItems(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listItems(body)},{name:"get",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp project get <ID|\u30B3\u30FC\u30C9>",
67
+ description:'ID\uFF08UUID / ULID\uFF09\u306A\u3089\u305D\u306E\u307E\u307E\u3001\u305D\u308C\u4EE5\u5916\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3068\u3057\u3066\u89E3\u6C7A\u3057\u307E\u3059\uFF081\u5F80\u5FA9\uFF09\u3002\n\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u3089\u306A\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u306F\u300C\u5B58\u5728\u3057\u306A\u3044\u300D\u3068\u300C\u95B2\u89A7\u6A29\u9650\u304C\u7121\u3044\u300D\u3092\u610F\u56F3\u7684\u306B\u533A\u5225\u3057\u307E\u305B\u3093\u3002\n\u30B3\u30FC\u30C9\u304C literally "help" \u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u5F15\u304F\u3068\u304D\u3060\u3051 `twp project get -- help` \u3068\u66F8\u304D\u307E\u3059\n\uFF08\u5148\u982D\u306E help \u306F\u30D8\u30EB\u30D7\u8981\u6C42\u3068\u3057\u3066\u89E3\u91C8\u3055\u308C\u308B\u305F\u3081\uFF09\u3002',
68
+ flags:[],plan(input){const[rawRef,...rest]=input.args;const ref=rawRef?.trim()??"";if(ref===""){throw new UsageError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E UUID \u304B\u30B3\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp project get help")}if(rest.length>0){throw new UsageError(`get \u304C\u53D7\u3051\u53D6\u308C\u308B\u5F15\u6570\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,"twp project get help")}if(collapsesInUrlPath(ref)){throw new UsageError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\
69
+ \u306E UUID \u304B\u30B3\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${ref}`,"\u30C9\u30C3\u30C8\u3060\u3051\u306E\u5024\u306F URL \u306E\u30D1\u30B9\u8981\u7D20\u3068\u3057\u3066\u6D88\u3048\u3066\u3057\u307E\u3046\u305F\u3081\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\u3002")}return safeProjectIdPolicy.isDirectId(ref)?{method:"GET",path:`/api/v2/projects/${encodeURIComponent(ref)}`}:{method:"GET",path:`/api/v2/projects/by-code/${encodeURIComponent(ref)}`}},summarize:body=>pick(
70
+ projectObject(body),GET_COLUMNS),raw:body=>projectObject(body)},{name:"members",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B",usage:"twp project members [<ID|\u30B3\u30FC\u30C9>]",description:"\u7701\u7565\u3059\u308B\u3068\u65E2\u5B9A\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09\u3092\u4F7F\u3044\u307E\u3059\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u3001\u4EF6\u6570\uFF0810,000 \u4EF6\uFF09\u3092\u660E\u793A\u3057\u30661\u56DE\u3067\u5F15\u304D\u307E\u3059\uFF08--all / --limit \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u3053\u3053\u306B\u51FA\u308B user_id / user_email \u306F twp task list --assignee \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\u3002",
71
+ flags:[],async prepare(input,ctx){const[ref,...rest]=input.args;if(rest.length>0){throw new UsageError(`members \u304C\u53D7\u3051\u53D6\u308C\u308B\u5F15\u6570\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,"twp project members help")}return withResolved(input,{projectId:await ctx.projectId(ref)})},plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/members`,query:{limit:PROJECT_MEMBERS_LIMIT}}},summarize:body=>memberItems(
72
+ body).map(row=>pick(row,MEMBER_COLUMNS2)),raw:body=>memberItems(body),notes:body=>memberItems(body).length>=PROJECT_MEMBERS_LIMIT?[`${PROJECT_MEMBERS_LIMIT} \u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u53C2\u753B\u65E5\u6642\u306E\u65B0\u3057\u3044\u9806\u306B\u8FD4\u3057\u307E\u3059\uFF09\u3002`]:[]},{name:"mine",summary:"\u81EA\u5206\u304C\u30E1\u30F3\u30D0\u30FC\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08\u5F79\u5272\u30FB\u53C2\u753B\u671F\u9593\u3064\u304D\uFF09",
73
+ usage:"twp project mine",description:"GET /api/v2/me/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\u81EA\u5206\u306E\u53C2\u753B\u671F\u9593\u3067\u3059\uFF08start_date / end_date \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u671F\u9593\uFF09\u3002\n\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306F --output json \u304B --query \u3067\u8AAD\u3081\u307E\u3059\u3002",
74
+ flags:[],plan(input){if(input.args.length>0){throw new UsageError(`mine \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp project mine help")}return{method:"GET",path:"/api/v2/me/projects"}},summarize:body=>assignedProjectItems(body).map(row=>pick(row,ASSIGNED_PROJECT_COLUMNS)),raw:body=>assignedProjectItems(body)},{name:"manhours",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570\uFF08\u671F\u9593\u5185\u306E\u4F5C\u696D\u6642\u9593\uFF09\u3092\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306B\u8868\u793A\u3059\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF09",
75
+ usage:MANHOURS_USAGE,description:"GET /api/v2/projects/{id}/manhours\u3002\u7701\u7565\u3059\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u65E2\u5B9A\uFF08TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09\u3067\u3059\u3002\n\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF08manager\uFF09\u3068\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002\u671F\u9593\u306F\u6700\u5927366\u65E5\u3067\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF09\u3002\n"+
76
+ MANHOUR_DESCRIPTION,flags:[MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG],forbidden:body=>body?.error==="permission_denied"&&(body.error_description??"").includes("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005")?"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570\u3092\u8AAD\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\uFF08manager\uFF09\u304B\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002":
77
+ void 0,prepare:(input,ctx)=>projectRefInput(input,ctx,"manhours"),plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/manhours`,query:manhourQuery(input,MANHOURS_USAGE)}},summarize:body=>manhourRows(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570"),raw:body=>{manhourRows(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570");return body},notes:body=>manhourNotes(body)},{name:"workload",summary:"\
78
+ \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3054\u3068\u306E\u30BF\u30B9\u30AF\u4EF6\u6570\u30FB\u898B\u7A4D\u6642\u9593\u3092\u8868\u793A\u3059\u308B",usage:"twp project workload [<ID|\u30B3\u30FC\u30C9>]",description:"GET /api/v2/projects/{id}/analytics/workload\uFF08\u753B\u9762\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u5225\u8CA0\u8377\u300D\uFF09\u3002\n\u7701\u7565\u3059\u308B\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u65E2\u5B9A\u3067\u3059\u3002\u672A\u5B8C\u4E86\u306E\u30BF\u30B9\u30AF\u304C\u5BFE\u8C61\u3067\u3001\u62C5\u5F53\u8005\u306E\u7121\u3044\u30BF\u30B9\u30AF\u306F\u300C\uFF08\u672A\u5272\u308A\u5F53\u3066\uFF09\u300D\u306E\u884C\u306B\u5165\u308A\u307E\u3059\u3002\n--output table / text / tsv \u306E by_status \u306F\u300C\u30B9\u30C6\u30FC\u30BF\u30B9\u540D:\u4EF6\u6570\u300D\u3092\u7A7A\u767D\u533A\u5207\u308A\u3067\u4E26\u3079\u305F\u3082\u306E\u3067\u3059\uFF08\u5185\u8A33\u306F --output json\uFF09\u3002",
79
+ flags:[],prepare:(input,ctx)=>projectRefInput(input,ctx,"workload"),plan(input){const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/analytics/workload`}},summarize:body=>workloadDistributionRows(body),raw:body=>{workloadDistributionRows(body);return body},notes:body=>workloadDistributionNotes(body)}],subresources:[projectMemberResource]};var ASSIGNED_PROJECT_COLUMNS=["id","code","name","status","role","member_start_date",
80
+ "member_end_date"];function assignedProjectItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}async function projectRefInput(input,ctx,operation){const[ref,...rest]=input.args;if(rest.length>0){throw new UsageError(
81
+ `${operation} \u304C\u53D7\u3051\u53D6\u308C\u308B\u5F15\u6570\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,`twp project ${operation} help`)}return withResolved(input,{projectId:await ctx.projectId(ref)})}export{projectDomain,ASSIGNED_PROJECT_COLUMNS,assignedProjectItems};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText,isoDate}from"./chunk-XDHLO54T.js";import{ORG_MASTER_LIMIT}from"./chunk-YQ4DGLD3.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){
3
+ import{booleanText,boundedText,isoDate}from"./chunk-XDHLO54T.js";import{ORG_MASTER_LIMIT}from"./chunk-4MTEXWYQ.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){
4
4
  flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.
5
5
  max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function fieldBody(input,fields){const body={};for(const field of fields){switch(field.kind){case"text":{const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.
6
6
  key]=value;break}case"integer":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=integerValue(field,raw);break}case"boolean":{const raw=input.flags.get(field.flag);if(raw!==void 0)body[field.key]=booleanText(field.flag,raw);break}case"enum":{const raw=input.flags.get(field.flag);if(raw===void 0)break;const value=raw.trim().toLowerCase();if(!field.values.includes(value)){throw new UsageError(`${field.flag} \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-PORE2NZO.js";import{nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
3
+ import{salesAdminForbidden}from"./chunk-3UW33UZI.js";import{nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
4
4
  ["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
5
5
  nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
6
6
  "\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XYIM36Q4.js";import{contentTypeFor,inspectLocalFile,issued}from"./chunk-HNUBM24L.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{readCsvFileText}from"./chunk-OHXZO5WK.js";import{featureLicenseGuidance}from"./chunk-NKIBB72I.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-YQ4DGLD3.js";import{ApiError,errorListMessages}from"./chunk-IF2K4PM5.js";import{
4
- isSafePathSegment}from"./chunk-GMBJTG6A.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";function levelForbidden(licenseGuidance,levelGuidance){return body=>body?.error==="permission_denied"?licenseGuidance:levelGuidance}var COMPANY_LICENSE="\u53D6\u5F15\u5148\u3092\u6271\u3046\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u304B\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u304C\u3001\u3069\u3061\u3089\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u3069\u3061\u3089\u3082\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u6A29\u9650\u304C\u3069\u3061\u3089\u3082\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-JC5HZGPD.js";import{contentTypeFor,inspectLocalFile,issued}from"./chunk-HNUBM24L.js";import{checkUploadQuota}from"./chunk-2YNZ4MRT.js";import{readCsvFileText}from"./chunk-OHXZO5WK.js";import{featureLicenseGuidance}from"./chunk-R5KWKK5Z.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-4MTEXWYQ.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,
4
+ errorListMessages}from"./chunk-IF2K4PM5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-IOGMOXYF.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";function levelForbidden(licenseGuidance,levelGuidance){return body=>body?.error==="permission_denied"?licenseGuidance:levelGuidance}var COMPANY_LICENSE="\u53D6\u5F15\u5148\u3092\u6271\u3046\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u304B\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u304C\u3001\u3069\u3061\u3089\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u3069\u3061\u3089\u3082\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u6A29\u9650\u304C\u3069\u3061\u3089\u3082\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
5
5
  var CUSTOMER_LICENSE=featureLicenseGuidance("\u9867\u5BA2\u7BA1\u7406");var COMPANY_WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
6
6
  var LEVEL_LABELS={admin:"\u7BA1\u7406\u8005",editor:"\u7DE8\u96C6\u8005",viewer:"\u95B2\u89A7\u8005",none:"\u306A\u3057"};var CHILD_DELETE_NEEDS="\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059";var CUSTOMER_DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u524A\u9664\u306B\u306F\u3001\u4F01\u696D\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304B\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3001\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\
7
7
  \u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var CUSTOMER_UPDATE_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u9867\u5BA2\u306E\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-67UNSXM7.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-HBSD3UC6.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XYIM36Q4.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-YQ4DGLD3.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";
3
+ import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-FUH3J5VB.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-OKIENL5P.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-JC5HZGPD.js";import{inspectLocalFile}from"./chunk-HNUBM24L.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-4MTEXWYQ.js";import{nonEmpty}from"./chunk-IOGMOXYF.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";
4
4
  import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
5
5
  {kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","estimate_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=[
6
6
  "version_number","file_name","file_size","is_current","created_by_name","created_at"];var ESTIMATE_FLAG={name:"--estimate",summary:"\u898B\u7A4D\u306E ID\uFF08twp estimate list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u898B\u7A4DID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{repeatedValues}from"./chunk-F7K37QG6.js";import{isoDate}from"./chunk-XDHLO54T.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-YQ4DGLD3.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import{withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{
3
+ import{isoDate}from"./chunk-XDHLO54T.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-4MTEXWYQ.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import{withResolved}from"./chunk-LXIAOCUW.js";import{isRecord,pick}from"./chunk-VTQAI52S.js";import{
4
4
  ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
5
5
  _\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
6
6
  return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-TDU6U5PY.js";import{evaluateQuery}from"./chunk-ATYA6DG5.js";import{renderDocument,renderOutput}from"./chunk-OUP3JLVH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-O5AUX7AQ.js";import{parseOperationArgs}from"./chunk-F7K37QG6.js";import{Resolver,requireDefaultProject}from"./chunk-YQ4DGLD3.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{ResolveError}from"./chunk-GMBJTG6A.js";
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-YO2RNKCQ.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,
3
+ import{loadDomain}from"./chunk-YPNMQCVG.js";import{evaluateQuery}from"./chunk-ATYA6DG5.js";import{renderDocument,renderOutput}from"./chunk-OUP3JLVH.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-O5AUX7AQ.js";import{parseOperationArgs}from"./chunk-F7K37QG6.js";import{Resolver,requireDefaultProject}from"./chunk-4MTEXWYQ.js";import{ResolveError}from"./chunk-GMBJTG6A.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredOutput,resolveProfile}from"./chunk-4VZKNEVN.js";import{HELP_TOKEN}from"./chunk-34X4JXND.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-K2ONOH3L.js";import{stringWidth}from"./chunk-WVS4W5FY.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,
5
5
  positiveInteger,shellQuote}from"./chunk-IOGMOXYF.js";import{isRecord}from"./chunk-VTQAI52S.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,NetworkError,UsageError}from"./chunk-UFND7FBC.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
6
6
  name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
7
7
  \u64CD\u4F5C:
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{redactSecretValues,redactSecrets}from"./chunk-O5AUX7AQ.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{DEFAULT_MAX_TOKENS,emptyUsage}from"./chunk-6QOT7CHX.js";import{isPrivateTwpHome,isTrustworthyCacheFile,writePrivateFileAtomic}from"./chunk-D233KKXW.js";
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{redactSecretValues,redactSecrets}from"./chunk-O5AUX7AQ.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-IF2K4PM5.js";import{DEFAULT_MAX_TOKENS,emptyUsage}from"./chunk-6QOT7CHX.js";import{isPrivateTwpHome,isTrustworthyCacheFile,writePrivateFileAtomic}from"./chunk-D233KKXW.js";
4
4
  import{AuthSession,NotLoggedInError,SessionExpiredError,withFileLock}from"./chunk-XNLIEUAW.js";import{MODES,applyPermissionMode,checkPermission,isModeId,setActiveModes}from"./chunk-NAUH75MM.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{configReadDirs,ensureTwpHome,twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs2 from"fs";import path3 from"path";import os2 from"os";import{realpathSync}from"fs";import{homedir}from"os";import{dirname,isAbsolute,relative,resolve,sep}from"path";var PathDeniedError=class extends Error{constructor(message){super(message);this.name="PathDeniedError"}};function resolveToolPath(input,cwd,home=homedir()){if(typeof input!=="string"||input.trim()===""){throw new PathDeniedError("path must be a non-empty string")}const expanded=expandHome(input,home);const abs=isAbsolute(expanded)?resolve(expanded):resolve(cwd,expanded);const root=realOrSelf(resolve(cwd));assertInside(abs,resolve(cwd),abs);assertNotSecret(abs,home);const real=realOrSelf(abs);if(real!==
5
5
  abs){assertInside(real,root,abs);assertNotSecret(real,home)}return abs}function realToolPath(input,cwd,home=homedir()){return realOrSelf(resolveToolPath(input,cwd,home))}function assertInside(target,root,reported){const rel=relative(root,target);const outside=rel===".."||rel.startsWith(`..${sep}`)||isAbsolute(rel);if(outside){throw new PathDeniedError(`path escapes the working directory (${reported}). Only paths under ${root} can be accessed.`)}}function realOrSelf(target){let current=target;const rest=[];
6
6
  for(;;){try{const real=realpathSync(current);return rest.length===0?real:resolve(real,...rest.reverse())}catch{const parent=dirname(current);if(parent===current)return target;rest.push(current.slice(parent.length+1));current=parent}}}function assertNotSecret(absPath,home=homedir(),env=process.env){const reason=secretReason(absPath,home,env);if(reason!==null)throw new PathDeniedError(`refusing to access ${absPath}: ${reason}`)}function secretReason(absPath,_home=homedir(),env=process.env){const lower=absPath.
@@ -0,0 +1,9 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var LOADERS={"agent-loop":async()=>(await import("./agent-loop-MMWJHN3D.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-MXMECYDW.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-KUCETWIJ.js")).analysisDomain,attendance:async()=>(await import("./attendance-K2U7RYDU.js")).attendanceDomain,backlog:async()=>(await import("./backlog-R3M54DPM.js")).backlogDomain,"business-place":async()=>(await import("./sales-master-PFGXXJFP.js")).businessPlaceDomain,
4
+ company:async()=>(await import("./company-46SIKR43.js")).companyDomain,contract:async()=>(await import("./contract-NDED7WTP.js")).contractDomain,customer:async()=>(await import("./company-46SIKR43.js")).customerDomain,department:async()=>(await import("./department-GLIMOUQM.js")).departmentDomain,deposit:async()=>(await import("./deposit-U6O52S6F.js")).depositDomain,estimate:async()=>(await import("./estimate-DALQK4M5.js")).estimateDomain,inquiry:async()=>(await import("./inquiry-QFW33SDT.js")).
5
+ inquiryDomain,invoice:async()=>(await import("./invoice-OO6EPZAZ.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-WA6FRUL6.js")).jobTitleDomain,leave:async()=>(await import("./leave-YYKSAXHD.js")).leaveDomain,media:async()=>(await import("./media-JMVFUWIM.js")).mediaDomain,meeting:async()=>(await import("./knowledge-3IT2MBRG.js")).meetingDomain,note:async()=>(await import("./knowledge-3IT2MBRG.js")).noteDomain,notification:async()=>(await import("./notification-5KPTSLO6.js")).
6
+ notificationDomain,onedrive:async()=>(await import("./onedrive-XAFONTRT.js")).onedriveDomain,outlook:async()=>(await import("./outlook-KVMKMFUE.js")).outlookDomain,payee:async()=>(await import("./sales-master-PFGXXJFP.js")).payeeDomain,position:async()=>(await import("./position-PCVPUJZQ.js")).positionDomain,project:async()=>(await import("./project-3WW2PW3O.js")).projectDomain,prospect:async()=>(await import("./prospect-6RF45LPK.js")).prospectDomain,purchase:async()=>(await import("./purchase-TTKRSNCF.js")).
7
+ purchaseDomain,receivable:async()=>(await import("./receivable-H6GMZ6JQ.js")).receivableDomain,report:async()=>(await import("./report-OEETO2S5.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-KR2L3FQA.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-PFGXXJFP.js")).sealImpressionDomain,shift:async()=>(await import("./attendance-lists-NVRU2NLY.js")).shiftDomain,storage:async()=>(await import("./storage-KLLBENBY.js")).storageDomain,
8
+ "supplier-payment":async()=>(await import("./supplier-payment-FRHPIV4D.js")).supplierPaymentDomain,task:async()=>(await import("./task-XTTCYGDC.js")).taskDomain,teams:async()=>(await import("./teams-RDBKQJMM.js")).teamsDomain,user:async()=>(await import("./user-3J4CZ4LO.js")).userDomain,wiki:async()=>(await import("./knowledge-3IT2MBRG.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-NVRU2NLY.js")).workchangeDomain,workflow:async()=>(await import("./workflow-3M2KCVYI.js")).
9
+ workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chunk-L35F47BO.js";import"./chunk-NAUH75MM.js";import"./chunk-YO2RNKCQ.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.43.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chunk-AJIHNSXI.js";import"./chunk-NAUH75MM.js";import"./chunk-34X4JXND.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.44.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -96,10 +96,27 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
96
96
  twp project list \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B
97
97
  twp project get <\u53C2\u7167> \u30D7\u30ED\u30B8\u30A7\u30AF\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B
98
98
  twp project members \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B
99
+ twp project mine \u81EA\u5206\u304C\u30E1\u30F3\u30D0\u30FC\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B
100
+ twp project manhours \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u5DE5\u6570\u3092\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306B\u8868\u793A\u3059\u308B\uFF08--from/--to \u306F YYYY-MM-DD\u30FB\u7BA1\u7406\u8005\uFF09
101
+ twp project workload \u30E1\u30F3\u30D0\u30FC\u3054\u3068\u306E\u672A\u5B8C\u4E86\u30BF\u30B9\u30AF\u4EF6\u6570\u30FB\u898B\u7A4D\u6642\u9593
102
+ twp project member create <\u30E6\u30FC\u30B6\u30FC>
103
+ \u30E1\u30F3\u30D0\u30FC\u3092\u8FFD\u52A0\u3059\u308B\uFF08--role \u304C\u8981\u308B\u30FB\u7A3C\u50CD\u671F\u9593\u306F --period-file\uFF09
104
+ twp project member update <\u30E1\u30F3\u30D0\u30FC>
105
+ \u5F79\u5272\u30FB\u53C2\u753B\u671F\u9593\u30FB\u7A3C\u50CD\u671F\u9593\u3092\u5909\u3048\u308B\uFF08--period-file \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\uFF09
106
+ twp project member delete <\u30E1\u30F3\u30D0\u30FC>
107
+ \u30E1\u30F3\u30D0\u30FC\u3092\u5916\u3059\uFF08--yes \u304C\u8981\u308B\uFF09
108
+ twp project member promote <\u30E1\u30F3\u30D0\u30FC>
109
+ \u7BA1\u7406\u8005\u306B\u6607\u683C\u3059\u308B
110
+ twp project member demote <\u30E1\u30F3\u30D0\u30FC>
111
+ \u30E1\u30F3\u30D0\u30FC\u306B\u964D\u683C\u3059\u308B
112
+ twp project member alias <\u5225\u540D>
113
+ \u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306E\u81EA\u5206\u306E\u5225\u540D\u3092\u8A2D\u5B9A\u3059\u308B\uFF08--clear \u3067\u6D88\u3059\uFF09
99
114
  twp task list \u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B\uFF08--status / --assignee \u306F\u540D\u524D\u3067\u6307\u5B9A\u3067\u304D\u308B\uFF09
100
115
  twp task get <\u30AD\u30FC> \u30BF\u30B9\u30AF1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08--project \u4E0D\u8981\uFF09
101
116
  twp task subtasks <\u30AD\u30FC>
102
117
  \u30BF\u30B9\u30AF\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B
118
+ twp task manhours <\u30AD\u30FC>
119
+ \u30BF\u30B9\u30AF\u306E\u5DE5\u6570\u3092\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306B\u8868\u793A\u3059\u308B\uFF08--from/--to \u306F YYYY-MM-DD\uFF09
103
120
  twp task create \u30BF\u30B9\u30AF\u3092\u4F5C\u6210\u3059\u308B\uFF08--subject \u5FC5\u9808\uFF09
104
121
  twp task update <\u30AD\u30FC> \u30BF\u30B9\u30AF\u3092\u66F4\u65B0\u3059\u308B\uFF08--status / --assignee \u7B49\uFF09
105
122
  twp task delete <\u30AD\u30FC> \u30BF\u30B9\u30AF\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09
@@ -156,6 +173,28 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
156
173
  twp attendance overtime \u6708\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\uFF08\u793E\u54E1\u5225\u30FB--month\u30FB--agreement36 \u306736\u5354\u5B9A\u3002\u7BA1\u7406\u8005\uFF09
157
174
  twp attendance closings list
158
175
  \u6708\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u306E\u4E00\u89A7\u30FB--month\u3002\u7BA1\u7406\u8005\uFF09
176
+ twp analysis operating-hours list
177
+ \u7A3C\u50CD\u5206\u6790\uFF08--scope project|user\u30FB--month \u304B --from/--to \u306F YYYY-MM\u30FB\u65E2\u5B9A\u306F\u5F53\u6708\uFF09
178
+ twp analysis project-assignment list
179
+ \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30B5\u30A4\u30F3\uFF08\u6708\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\u30FB\u65E2\u5B9A\u306F\u5F53\u6708\uFF09
180
+ twp analysis staff-assignment list
181
+ \u4EBA\u6750\u5225\u30A2\u30B5\u30A4\u30F3\uFF08\u6708\u3054\u3068\u306E\u30A2\u30B5\u30A4\u30F3\u6642\u9593\u3068\u7A3C\u50CD\u7387\u30FB\u65E2\u5B9A\u306F\u5F53\u6708\uFF09
182
+ twp analysis capacity list
183
+ \u4ECA\u9031\u306E\u30AD\u30E3\u30D1\u30B7\u30C6\u30A3\u3068\u7A3C\u50CD\u7387\uFF08--user \u3067\u7D5E\u308B\uFF09
184
+ twp analysis capacity alerts
185
+ \u76F4\u5C5E\u306E\u90E8\u4E0B\u306E\u3046\u3061\u6CE8\u610F\u30FB\u904E\u8CA0\u8377\u306E\u30E1\u30F3\u30D0\u30FC
186
+ twp analysis capacity redistribution
187
+ \u904E\u8CA0\u8377\u306E\u30E1\u30F3\u30D0\u30FC\u3068\u4ED5\u4E8B\u3092\u79FB\u305B\u308B\u5019\u88DC
188
+ twp analysis capacity settings
189
+ \u6A19\u6E96\u52E4\u52D9\u6642\u9593\u3092\u500B\u5225\u306B\u8A2D\u5B9A\u3057\u3066\u3044\u308B\u30E6\u30FC\u30B6\u30FC
190
+ twp analysis workload list
191
+ \u8CA0\u8377\u306E\u30EA\u30B9\u30AF\u5224\u5B9A\uFF08\u65E2\u5B9A\u306F\u81EA\u5206\u30FB--team \u3067\u90E8\u4E0B\uFF09
192
+ twp analysis project-health list
193
+ \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u306E\u5065\u5168\u6027\u30B9\u30B3\u30A2\uFF08--warning-only\uFF09
194
+ twp analysis project-health history
195
+ 1\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B9\u30B3\u30A2\u306E\u63A8\u79FB\uFF08--project\uFF09
196
+ twp analysis project-health insights
197
+ AI \u306E\u6240\u898B\u3092\u751F\u6210\u3059\u308B\uFF08AI \u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u6D88\u8CBB\u30FB--yes \u304C\u8981\u308B\uFF09
159
198
  twp leave list \u81EA\u5206\u306E\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u3068\u6B8B\u65E5\u6570
160
199
  twp leave grants [<\u30E6\u30FC\u30B6\u30FC>]
161
200
  \u6709\u7D66\u306E\u4ED8\u4E0E\u5C65\u6B74\uFF08\u7701\u7565\u3067\u81EA\u5206\u30FB\u4ED6\u306E\u4EBA\u306F\u6709\u7D66\u7BA1\u7406\u306E\u6A29\u9650\u304B\u4E0A\u9577\uFF09
@@ -238,6 +277,8 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
238
277
  OneDrive \u306E\u30D5\u30A1\u30A4\u30EB\u3092 --out \u3078\u66F8\u304D\u51FA\u3059
239
278
  twp user list \u30E6\u30FC\u30B6\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08--department / --position \u306F\u540D\u524D\u3067\u6307\u5B9A\u3067\u304D\u308B\uFF09
240
279
  twp user get <\u30E6\u30FC\u30B6\u30FC> \u30E6\u30FC\u30B6\u30FC1\u4EBA\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09
280
+ twp user projects <\u30E6\u30FC\u30B6\u30FC>
281
+ \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
241
282
  twp user assignment list <\u30E6\u30FC\u30B6\u30FC>
242
283
  \u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08--current \u3067\u73FE\u5728\u306E\u307F\uFF09
243
284
  twp user assignment move <\u30E6\u30FC\u30B6\u30FC>
@@ -734,15 +775,15 @@ TUI \u5185:
734
775
  TWP API \u3092\u547C\u3079\u307E\u3059\u3002TWP API \u306E\u30C4\u30FC\u30EB\u306F\u65E2\u5B9A\u3067\u78BA\u8A8D\u304C\u51FA\u307E\u3059\uFF08-p \u3067\u306F\u62D2\u5426\u3002--allowed-tools \u3067\u540D\u524D\u3092\u8A31\u53EF\uFF09\u3002
735
776
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
736
777
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
737
- `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-ZKODJ45K.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-H65LUFVF.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
738
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-PGMXXWHA.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-PS5HUWVH.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-XH33RB27.js");process.exitCode=
778
+ `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-ZKODJ45K.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-4EIFB6JN.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
779
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-7OIXAAIO.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-PS5HUWVH.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-XH33RB27.js");process.exitCode=
739
780
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
740
781
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
741
782
 
742
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-PS5HUWVH.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-SRTDTEKL.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
743
- domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-DND4342Q.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
783
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-PS5HUWVH.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-KVDDYJ6W.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
784
+ domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-OIXWF72C.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
744
785
  void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-EYFT7STE.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-255HOMWQ.js");
745
- const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-BDYQKXPD.js");process.exitCode=await runTaskLoop(
786
+ const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-DUFVGY5V.js");process.exitCode=await runTaskLoop(
746
787
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,charterOp:args.charterOp,charterInput:args.charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,
747
- skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-EUW726TV.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.
748
- allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-2DWKZ2VE.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
788
+ skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-GXXMSQ4Y.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.
789
+ allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-6VL7WWT3.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{REQUIRE_ZERO_STATUS,ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-N6AXAGS2.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-QEWI75KI.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-ZOOEH7ZE.js";import{ServerSkillCatalog,
4
- formatSkillOrigins}from"./chunk-AITUMFCH.js";import"./chunk-H3WYVFTS.js";import{claudeConfigDir,resolveDetectDeps}from"./chunk-T4QZO6RQ.js";import"./chunk-AJO4O5ZF.js";import"./chunk-VRBI2NPI.js";import{resolveProjectRef,uuidProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import{effectiveApiUrl,resolveProfile}from"./chunk-4VZKNEVN.js";
4
+ formatSkillOrigins}from"./chunk-AITUMFCH.js";import"./chunk-H3WYVFTS.js";import"./chunk-AJO4O5ZF.js";import"./chunk-VRBI2NPI.js";import{claudeConfigDir,resolveDetectDeps}from"./chunk-T4QZO6RQ.js";import{resolveProjectRef,uuidProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import{effectiveApiUrl,resolveProfile}from"./chunk-4VZKNEVN.js";
5
5
  import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,stepToItem,zeroTargetDropReasons}from"./chunk-L25UV7DE.js";import{AgentLoopApi,describeError,filterByStatus,isPermanent,pick,pickString}from"./chunk-G2THOTBW.js";import{CapacityReporter,buildLoopConfig,describeOperations,evaluateOwnership,formatHookIds,formatHookWiring,localDate,loopStateDir,runHook,runPrefetch,runPreflight}from"./chunk-QVPU4HHG.js";
6
6
  import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{exclusiveInflightEntries,formatExclusiveEntry,normalizeSkillName,skillOfItem,spawnSyncResolved}from"./chunk-AEJHDFXB.js";import{PRIVATE_PROJECT_REF,isPrivateProjectId,isPrivateProjectRef,privateProjectId,projectFileKey}from"./chunk-GY7KI5E5.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import"./chunk-UFND7FBC.js";import{joinFor}from"./chunk-PMOUHEJQ.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";
7
7
  import{twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs10 from"fs";import path8 from"path";import fs from"fs";import path from"path";var LoopLogger=class{constructor(runnerId,logFile,out=process.stdout,now=()=>new Date){this.runnerId=runnerId;this.out=out;this.now=now;if(logFile){fs.mkdirSync(path.dirname(logFile),{recursive:true});this.stream=fs.createWriteStream(logFile,{flags:"a"})}}runnerId;out;now;stream=null;log(message){const d=this.now();const ts=`${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;const line=`[${ts}] [${this.runnerId}] ${stripTerminalControls(
@@ -313,7 +313,7 @@ const startedAtMs=now();let warned="";let done=false;const check=()=>{if(done)re
313
313
  decision.key)return;warned=decision.key;handlers.onWarn(decision.reason);return}done=true;const recorded=writeRestartAttempt(opts.stateDir,opts.projectKey,{from:decision.from,to:decision.to,at:new Date(now()).toISOString()},opts.store);if(!recorded){handlers.onWarn(`\u518D\u8D77\u52D5\u8A18\u9332\u3092\u66F8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${restartAttemptPath(opts.stateDir,opts.projectKey)}\uFF09\u3002\u540C\u3058\u7248\u30C9\u30EA\u30D5\u30C8\u304C\u89E3\u6D88\u3057\u306A\u3044\u5834\u5408\u3001\u518D\u8D77\u52D5\u3092\u7E70\u308A\u8FD4\u3059\u9632\u6CE2\u5824\u304C\u52B9\u304D\u307E\u305B\u3093`)}
314
314
  handlers.onRestart({from:decision.from,to:decision.to})};const timer=setInterval(check,opts.intervalMs??DRIFT_POLL_MS);timer.unref?.();return{stop:()=>{done=true;clearInterval(timer)},check}}import fs9 from"fs";import path7 from"path";var POLL_MS=1e3;var MAX_STOP_BYTES=4096;var MAX_AT_LENGTH=64;function markerPath(lockDir2,kind){return path7.join(lockDir2,kind)}function requestMarker(lockDir2,kind,pid,deps={}){const target=markerPath(lockDir2,kind);const write=deps.writeFileSync??((p,d)=>fs9.writeFileSync(p,d,{flag:"wx",mode:384}));const now=deps.now??(()=>new Date);clearMarker(lockDir2,kind,deps);try{write(target,`${JSON.stringify({pid,at:now().toISOString()})}
315
315
  `);return{ok:true}}catch(err){const e=err;return{ok:false,reason:e.code??"UNKNOWN"}}}function readMarker(lockDir2,kind,deps={}){const target=markerPath(lockDir2,kind);const read=deps.readFileSync??(p=>fs9.readFileSync(p,"utf8"));const size=deps.statSize??(p=>fs9.statSync(p).size);let raw;try{if(size(target)>MAX_STOP_BYTES)return null;raw=read(target)}catch{return null}if(raw.length>MAX_STOP_BYTES)return null;try{const parsed=JSON.parse(raw);if(typeof parsed!=="object"||parsed===null)return null;const pid=parsed.pid;const at=parsed.at;if(typeof pid!=="number"||!Number.isInteger(pid)||
316
- pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs9.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-MXTI2KZ2.js");const{DEFAULT_PREFLIGHT_HOSTS}=await import("./ai-dispatch-MXTI2KZ2.js");const extraHosts=config.
316
+ pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs9.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-FEDOAV2E.js");const{DEFAULT_PREFLIGHT_HOSTS}=await import("./ai-dispatch-FEDOAV2E.js");const extraHosts=config.
317
317
  operations.preflightHosts;return new DispatchEngine(config.ai,log,{workspace:config.workspace,charterFile:config.charterFile??void 0,charterEnabled:config.charterEnabled,...config.charterPrefix===null?{}:{charterPrefix:config.charterPrefix},...config.charterSuffix===null?{}:{charterSuffix:config.charterSuffix},serverPrompts:()=>config.serverPrompts??{},compileCommand:config.compileCommand??void 0,skillOverlayDir:path8.join(config.stateDir,"skill-overlay",projectFileKey(config.projectId)),launcherBin:config.
318
318
  claudeLauncher.bin,...extraHosts.length>0?{preflightHosts:[...DEFAULT_PREFLIGHT_HOSTS,...extraHosts]}:{}})}function lockDir(config){return path8.join(config.stateDir,`task-loop-${projectFileKey(config.projectId)}.lock.d`)}async function runTaskLoop(opts){if(opts.action==="stop")return await stopLoop(opts);const profile=resolveProfile(opts.profile);let creds;try{creds=new AuthSession(profile.name,profile.apiUrl).loadOrThrow()}catch(err){process.stderr.write(`${err.message}
319
319
  `);return 1}const apiUrl=effectiveApiUrl(profile,creds.api_url);const session=new AuthSession(profile.name,apiUrl);const projectRef=opts.project??process.env.TWP_PROJECT??"";if(projectRef===""){process.stderr.write("--project <\u30AD\u30FC|UUID> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08TWP_PROJECT \u3067\u3082\u53EF\uFF09\n");return 2}const projectApi=new ProjectApi(apiUrl,session);let project;try{project=await projectApi.resolve(projectRef)}catch(err){process.stderr.write(`${err.
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{customerDocumentSubresources}from"./chunk-67UNSXM7.js";import{COMPANY_FIELDS,COMPANY_LICENSE,CUSTOMER_LICENSE,customerSubresources,customerWriteOperations,dataOf,levelForbidden}from"./chunk-HBSD3UC6.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XYIM36Q4.js";import"./chunk-HNUBM24L.js";import"./chunk-2YNZ4MRT.js";import"./chunk-OHXZO5WK.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-NKIBB72I.js";import{repeatedValues}from"./chunk-F7K37QG6.js";
4
- import"./chunk-XDHLO54T.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-YQ4DGLD3.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-XNLIEUAW.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,
5
- envelopePaging,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes,positiveInteger}from"./chunk-IOGMOXYF.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var CUSTOMER_FLAG_FIELD={kind:"boolean",flag:"--customer",key:"customer_flg",summary:"\u9867\u5BA2\u3068\u3057\u3066\u6271\u3046\u304B\uFF08true / false\uFF09"};var FIELDS=[...COMPANY_FIELDS,CUSTOMER_FLAG_FIELD];var COLUMNS=["id","company_name","company_name_kana","company_short_name","customer_flg","supplier_flg","tel","address1"];var WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
3
+ import{customerDocumentSubresources}from"./chunk-FUH3J5VB.js";import{COMPANY_FIELDS,COMPANY_LICENSE,CUSTOMER_LICENSE,customerSubresources,customerWriteOperations,dataOf,levelForbidden}from"./chunk-OKIENL5P.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-JC5HZGPD.js";import"./chunk-HNUBM24L.js";import"./chunk-2YNZ4MRT.js";import"./chunk-OHXZO5WK.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-R5KWKK5Z.js";import"./chunk-XDHLO54T.js";
4
+ import{repeatedValues}from"./chunk-F7K37QG6.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-4MTEXWYQ.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";import"./chunk-XNLIEUAW.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
5
+ STABLE_PAGE_ORDER,envelopePaging,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes,positiveInteger}from"./chunk-IOGMOXYF.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var CUSTOMER_FLAG_FIELD={kind:"boolean",flag:"--customer",key:"customer_flg",summary:"\u9867\u5BA2\u3068\u3057\u3066\u6271\u3046\u304B\uFF08true / false\uFF09"};var FIELDS=[...COMPANY_FIELDS,CUSTOMER_FLAG_FIELD];var COLUMNS=["id","company_name","company_name_kana","company_short_name","customer_flg","supplier_flg","tel","address1"];var WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
6
6
  var DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u524A\u9664\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var REF_HELP="<\u53D6\u5F15\u5148> \u306F\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B\
7
7
  ID\uFF08twp company list \u306E id \u5217\u306E\u6570\u5B57\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u9867\u5BA2\u30FB\u4ED5\u5165\u5148\u306E\u3069\u3061\u3089\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002";function companyPath(input){const id=requireResolved(input,"companyId");if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148 ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`);return`${SALES_COMPANIES_PATH}/${id}`}async function resolveCompany(input,ctx,usage){
8
8
  const raw=singleRef(input,{flag:"<\u53D6\u5F15\u5148>",label:"\u53D6\u5F15\u5148",usage});return withResolved(input,{companyId:(await ctx.resolver.company(raw,{flag:"<\u53D6\u5F15\u5148>",source:"sales",mustExist:true})).id})}var createOperation={name:"create",summary:"\u53D6\u5F15\u5148\u4F01\u696D\u3092\u767B\u9332\u3059\u308B\uFF08\u9867\u5BA2\u30FB\u4ED5\u5165\u5148\u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u4EE5\u4E0A\uFF09",usage:"twp company create --name <\u4F01\u696D\u540D> (--customer true | --suppli\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{BUILTIN_COMMANDS,GLOBAL_FLAGS,TASK_LOOP_ACTIONS,VALUE_FLAGS}from"./chunk-L35F47BO.js";import"./chunk-NAUH75MM.js";import{API_TOKEN,DOMAIN_NAMES,HELP_TOKEN,isDomainName}from"./chunk-YO2RNKCQ.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS}from"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var EXTRA_TOP_LEVEL=[API_TOKEN,HELP_TOKEN,"completion","configure"];var COMPLETION_SHELLS=["bash","zsh","fish","powershell"];var TOP_LEVEL_FLAGS=["--help","--version","-p","--print","--profile","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--no-tui","--doctor"];var DOMAIN_GLOBAL_FLAGS=[...GLOBAL_FLAGS].filter(flag=>flag.startsWith("--"));function staticValues(flag,ctx){if(flag==="--output")return OUTPUT_FORMATS;if(flag==="--profile")return ctx.profileNames();return void 0}
3
+ import{BUILTIN_COMMANDS,GLOBAL_FLAGS,TASK_LOOP_ACTIONS,VALUE_FLAGS}from"./chunk-AJIHNSXI.js";import"./chunk-NAUH75MM.js";import{API_TOKEN,DOMAIN_NAMES,HELP_TOKEN,isDomainName}from"./chunk-34X4JXND.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS}from"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var EXTRA_TOP_LEVEL=[API_TOKEN,HELP_TOKEN,"completion","configure"];var COMPLETION_SHELLS=["bash","zsh","fish","powershell"];var TOP_LEVEL_FLAGS=["--help","--version","-p","--print","--profile","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--no-tui","--doctor"];var DOMAIN_GLOBAL_FLAGS=[...GLOBAL_FLAGS].filter(flag=>flag.startsWith("--"));function staticValues(flag,ctx){if(flag==="--output")return OUTPUT_FORMATS;if(flag==="--profile")return ctx.profileNames();return void 0}
4
4
  function positionals(words,takesValue){const out=[];for(let i=0;i<words.length;i++){const word=words[i]??"";if(word==="--"){out.push(...words.slice(i+1));break}if(word.startsWith("-")){if(!word.includes("=")&&takesValue(word))i++;continue}out.push(word)}return out}function byPrefix(candidates,current){const seen=new Set;for(const candidate of candidates){if(candidate.startsWith(current))seen.add(candidate)}return[...seen]}function remainingFlags(flags,words){const used=new Set(words.filter(w=>w.
5
5
  startsWith("--")).map(w=>w.split("=")[0]));return[...flags.filter(f=>f.repeatable===true||!used.has(f.name)).map(f=>f.name),...DOMAIN_GLOBAL_FLAGS.filter(f=>!used.has(f))]}async function complete(words,current,ctx){const previous=words[words.length-1];if(previous!==void 0&&previous.startsWith("--")&&!previous.includes("=")){const values=staticValues(previous,ctx);if(values!==void 0)return byPrefix(values,current)}const eq=current.indexOf("=");if(current.startsWith("--")&&eq>0){const flag=current.
6
6
  slice(0,eq);const values=staticValues(flag,ctx);return values===void 0?[]:byPrefix(values.map(v=>`${flag}=${v}`),current)}const pos=positionals(words,flag=>VALUE_FLAGS.has(flag));const[first,second]=pos;if(first===void 0){if(current.startsWith("-"))return byPrefix([...TOP_LEVEL_FLAGS,...DOMAIN_GLOBAL_FLAGS],current);return byPrefix([...BUILTIN_COMMANDS,...DOMAIN_NAMES,...EXTRA_TOP_LEVEL],current)}if(first==="completion")return pos.length===1?byPrefix(COMPLETION_SHELLS,current):[];if(first==="con\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{contractAiReviewResources}from"./chunk-XSSKEJGO.js";import"./chunk-AHLI7BUX.js";import{readBody}from"./chunk-ORUDW52G.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-NKIBB72I.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{isoDate}from"./chunk-XDHLO54T.js";import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-YQ4DGLD3.js";import"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";import"./chunk-GMBJTG6A.js";
3
+ import{contractAiReviewResources}from"./chunk-2ZTJP74M.js";import"./chunk-EZ3RJBN6.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-R5KWKK5Z.js";import{isoDate}from"./chunk-XDHLO54T.js";import{repeatedValues}from"./chunk-F7K37QG6.js";import{readBody}from"./chunk-ORUDW52G.js";import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-4MTEXWYQ.js";import"./chunk-GMBJTG6A.js";import"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";
4
4
  import"./chunk-XNLIEUAW.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-IOGMOXYF.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";
5
5
  import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_CONTRACTS_PATH;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var DISAMBIGUATION="\u53D6\u5F15\u5951\u7D04\u306F\u898B\u7A4D\u304B\u3089\u4F5C\u308B\u8CA9\u58F2\u7BA1\u7406\u306E\u66F8\u985E\u3067\u3059\uFF08\u660E\u7D30\u30FB\u91D1\u984D\u3092\u6301\u3061\u3001\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u4E57\u308A\u307E\u3059\uFF09\u3002\n\u9867\u5BA2\u306B\u7D10\u3065\u3051\u3066\u4FDD\u7BA1\u3059\u308B\u5951\u7D04\u66F8\u306E PDF \u306F\u5225\u7269\u3067\u3001twp customer contract \u3067\u6271\u3044\u307E\u3059\u3002\n\n";
6
6
  var CONTRACT_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",contracted:"\u5951\u7D04\u7DE0\u7D50\u6E08",deleted:"\u524A\u9664\u6E08"};var RENEWAL_TYPES={auto_renewal:"\u81EA\u52D5\u66F4\u65B0",application_renewal:"\u7533\u8FBC\u306B\u3088\u308B\u66F4\u65B0"};function statusName(code){return CONTRACT_STATUSES[code]??code}function tableHelp(table){
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-XYIM36Q4.js";import"./chunk-XDHLO54T.js";import{DEPARTMENTS_PATH}from"./chunk-YQ4DGLD3.js";import"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";import"./chunk-GMBJTG6A.js";import"./chunk-4VZKNEVN.js";import"./chunk-IOGMOXYF.js";import"./chunk-II5RVJQN.js";
3
+ import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-JC5HZGPD.js";import"./chunk-XDHLO54T.js";import{DEPARTMENTS_PATH}from"./chunk-4MTEXWYQ.js";import"./chunk-GMBJTG6A.js";import"./chunk-IF2K4PM5.js";import"./chunk-3HH5IYNO.js";import"./chunk-4VZKNEVN.js";import"./chunk-IOGMOXYF.js";import"./chunk-II5RVJQN.js";
4
4
  import{withResolved}from"./chunk-LXIAOCUW.js";import{acknowledgement,isRecord,pick}from"./chunk-VTQAI52S.js";import{ApiResponseError,UsageError}from"./chunk-UFND7FBC.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u90E8\u7F72";var LIST_COLUMNS=["id","code","name","parent_id","level","effective_status","valid_from","valid_to","member_count"];var GET_COLUMNS=["id","code","name","name_short","parent_id","level","sort","effective_status","valid_from","valid_to","description"];var TREE_COLUMNS=["depth","name","code","id","effective_status","valid_to"];var MEMBER_COLUMNS=["id","user_id","position_id","job_title_id","start_date","end_date","is_primary","is_current","effective_status"];var REF_FLAG={name:"\
5
5
  --department",summary:"\u5BFE\u8C61\u306E\u90E8\u7F72\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"};var REF_HELP="<\u90E8\u7F72> \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u90E8\u7F72\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
6
6
  var FIELDS=masterFields(LABEL,[{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"ref",flag:"--parent",key:"parent_id",summary:"\u89AA\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-parent",clearSummary:"\u89AA\u90E8\u7F72\u3092\u5916\u3057\u3066\u6700\u4E0A\u4F4D\u306B\u3059\u308B",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)},{kind:"integer",flag:"--sor\