@tocca-systems/twp-cli 0.64.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.public.md +24 -0
  2. package/README.md +116 -8
  3. package/command-model/wiki.json +2 -2
  4. package/dist/agent-SFX3ZVOB.js +160 -0
  5. package/dist/{agent-loop-GPPUR2WD.js → agent-loop-6JO4PJRG.js} +23 -20
  6. package/dist/{ai-dispatch-FZDFJ4TN.js → ai-dispatch-YICIA4NI.js} +3 -3
  7. package/dist/analysis-HMOECNWG.js +5 -0
  8. package/dist/{announcement-ASKS53LL.js → announcement-Q642UMYK.js} +1 -1
  9. package/dist/{api-command-N2OJNJBC.js → api-command-4CUGQQI3.js} +4 -4
  10. package/dist/{app-QA2HKG6E.js → app-BBPK653N.js} +4 -4
  11. package/dist/{attendance-correct-KBNPGFGR.js → attendance-correct-DWVFYL2Y.js} +2 -2
  12. package/dist/{attendance-lists-C7TO3GQ2.js → attendance-lists-772Y3ZWA.js} +2 -2
  13. package/dist/{backlog-AWOTTGPB.js → backlog-FG3Y5JTE.js} +38 -28
  14. package/dist/{budget-Z6ILL7AU.js → budget-5WUQAAAZ.js} +2 -2
  15. package/dist/capacity-report-command-PBE73I43.js +15 -0
  16. package/dist/chunk-2OG4LAGD.js +41 -0
  17. package/dist/{chunk-T4QZO6RQ.js → chunk-5SONMN6K.js} +1 -1
  18. package/dist/chunk-6CS5L24D.js +4 -0
  19. package/dist/chunk-6OLZMQBK.js +11 -0
  20. package/dist/chunk-6PAZUW73.js +16 -0
  21. package/dist/{chunk-YKI7NYBD.js → chunk-7EJOKJLV.js} +57 -18
  22. package/dist/{chunk-3WFZOOXZ.js → chunk-AGI5KT4C.js} +1 -1
  23. package/dist/{chunk-LAAKI3GS.js → chunk-APPYZQNC.js} +1 -1
  24. package/dist/{chunk-4CR64SNH.js → chunk-CCBNU5Y3.js} +2 -2
  25. package/dist/{chunk-RWR7OHVP.js → chunk-DAOC7VRM.js} +1 -1
  26. package/dist/{chunk-JYCJ4N6T.js → chunk-F4PGPJOI.js} +1 -1
  27. package/dist/{chunk-AEJHDFXB.js → chunk-FABDZBDZ.js} +5 -5
  28. package/dist/{chunk-PIB6MGG5.js → chunk-FAHDBWW2.js} +1 -1
  29. package/dist/{chunk-234WHKGS.js → chunk-FDVWV3AY.js} +2 -2
  30. package/dist/chunk-G4TZFGNN.js +41 -0
  31. package/dist/{chunk-NQWTPHUO.js → chunk-GLKZ4ZZY.js} +1 -1
  32. package/dist/{worker-agent-XCJGZHMT.js → chunk-HBEOI456.js} +3 -3
  33. package/dist/{chunk-ITRTFBV3.js → chunk-HNG6MF26.js} +52 -49
  34. package/dist/{chunk-QSXS5SB2.js → chunk-HPPIVCK3.js} +3 -2
  35. package/dist/chunk-KDH3KWPO.js +4 -0
  36. package/dist/chunk-LJVAOWZI.js +65 -0
  37. package/dist/{chunk-UIHNYBME.js → chunk-NVMJXFBT.js} +1 -1
  38. package/dist/{chunk-FITASHOM.js → chunk-OMWCSE4P.js} +2 -2
  39. package/dist/{chunk-XPPT3MUY.js → chunk-P2DSHLHD.js} +2 -2
  40. package/dist/chunk-P6M2MCZJ.js +97 -0
  41. package/dist/{chunk-RROCQRRY.js → chunk-QJAZLPA3.js} +1 -1
  42. package/dist/chunk-SPZ3GBYC.js +16 -0
  43. package/dist/chunk-VIWQMDGG.js +91 -0
  44. package/dist/{chunk-S5DEP2HA.js → chunk-W2AIT5FJ.js} +5 -5
  45. package/dist/{chunk-FDRXS6ZU.js → chunk-WBUYPDJH.js} +1 -1
  46. package/dist/{chunk-5LPELULJ.js → chunk-WMEGP2BT.js} +1 -1
  47. package/dist/{chunk-NXWXTUU6.js → chunk-X6L5LUC4.js} +1 -1
  48. package/dist/{chunk-6PQO3AYP.js → chunk-XCPZ4R65.js} +1 -1
  49. package/dist/{chunk-VV4GTQ2L.js → chunk-XGYOJHZC.js} +16 -13
  50. package/dist/cli.js +100 -11
  51. package/dist/{commands-WIQVCMQE.js → commands-4C6TJ4WG.js} +1 -1
  52. package/dist/{commands-HK7DUMUJ.js → commands-62NWF7GA.js} +105 -155
  53. package/dist/{company-YPDJZ3SE.js → company-4DHVAW25.js} +2 -2
  54. package/dist/{completion-7RHQKR5U.js → completion-WR2GXZE7.js} +5 -4
  55. package/dist/{contract-2Y5VN3TR.js → contract-PT7VW4IE.js} +2 -2
  56. package/dist/{department-K4EFC6NW.js → department-C6WIZPBS.js} +1 -1
  57. package/dist/{deposit-NTLHIMJL.js → deposit-OEYFPEZG.js} +1 -1
  58. package/dist/{estimate-C5LUNIWR.js → estimate-4BUJQ3TP.js} +3 -3
  59. package/dist/{evaluation-ZWUHSENB.js → evaluation-GLXQ54F6.js} +1 -1
  60. package/dist/{expense-BXJ7QYMP.js → expense-QE3WIJTN.js} +1 -1
  61. package/dist/fiscal-year-YJWFQN4P.js +17 -0
  62. package/dist/{inquiry-KHPPTYN6.js → inquiry-ORB3ROAJ.js} +1 -1
  63. package/dist/{invoice-VV2NT4A3.js → invoice-XLX5KS2T.js} +3 -3
  64. package/dist/{job-title-RCSL5Y2Z.js → job-title-UDF6I3BP.js} +1 -1
  65. package/dist/{knowledge-BLU6RHS5.js → knowledge-4QPIGJEE.js} +32 -27
  66. package/dist/{leave-RJBCHZCQ.js → leave-3BJMXI7Q.js} +3 -3
  67. package/dist/license-OMIZUUTW.js +56 -0
  68. package/dist/{logout-guard-GQBF3GQH.js → logout-guard-2Y7HPIKN.js} +2 -1
  69. package/dist/{media-OIAOW546.js → media-77LTBOQX.js} +3 -3
  70. package/dist/{notification-KPMGELOR.js → notification-2IESSY5E.js} +1 -1
  71. package/dist/{oneshot-OWEBFX5O.js → oneshot-4XO5HIJR.js} +1 -1
  72. package/dist/{outlook-AAS5DXYQ.js → outlook-KYTXHDAV.js} +1 -1
  73. package/dist/plan-submit-T5KHXNGH.js +4 -0
  74. package/dist/{position-NY5LRELH.js → position-CR6P4WC5.js} +1 -1
  75. package/dist/{project-4MEGZ326.js → project-JJEMEO2W.js} +1 -1
  76. package/dist/{prospect-7D2WK56K.js → prospect-QG6X7ALK.js} +2 -2
  77. package/dist/{purchase-S7W67LJP.js → purchase-Z6ENEOZM.js} +3 -3
  78. package/dist/{receivable-GFJTEELC.js → receivable-ZBDXXMHX.js} +1 -1
  79. package/dist/{redmine-P3EMFFHY.js → redmine-EIFHMLNE.js} +1 -1
  80. package/dist/{registry-GRRRT3I6.js → registry-BIJNO3HE.js} +1 -1
  81. package/dist/{report-FUIVLC7B.js → report-TTXGXSR3.js} +1 -1
  82. package/dist/revision-command-PM7FQUVF.js +31 -0
  83. package/dist/{run-LSWFO4IY.js → run-TYKHDD6N.js} +2 -2
  84. package/dist/{sales-ai-review-P36TTQRO.js → sales-ai-review-6TDJFHDL.js} +1 -1
  85. package/dist/{sales-master-3CGHEFKF.js → sales-master-H5HMVBJV.js} +3 -3
  86. package/dist/{sales-numbering-3M2C2MAI.js → sales-numbering-Q5KRM63Y.js} +1 -1
  87. package/dist/{schedule-command-R5KTFAVZ.js → schedule-command-2HCOGYJW.js} +1 -1
  88. package/dist/{search-U3QNPR4D.js → search-GRAWP2LX.js} +1 -1
  89. package/dist/segment-YOUY4PZC.js +6 -0
  90. package/dist/server-settings-LJBDUOTV.js +4 -0
  91. package/dist/{server-skills-IFTDV3IQ.js → server-skills-KX236POI.js} +1 -1
  92. package/dist/{setup-MUPUY2AX.js → setup-HHPKB6N4.js} +3 -3
  93. package/dist/{skill-C4TGG7SH.js → skill-RH5MBRXZ.js} +1 -1
  94. package/dist/{supplier-payment-KG57PNWJ.js → supplier-payment-EJTFKAKY.js} +2 -2
  95. package/dist/{support-BRVAJ7IH.js → support-FR3KY63E.js} +1 -1
  96. package/dist/{task-RYBYPM4N.js → task-O7K6725Y.js} +3 -3
  97. package/dist/{teams-GPJ6HMIX.js → teams-QRVCFJS4.js} +1 -1
  98. package/dist/{user-3DE46776.js → user-PRGHG3HM.js} +15 -103
  99. package/dist/user-contract-type-K7CLKCEE.js +32 -0
  100. package/dist/worker-agent-WDYZTQ5C.js +4 -0
  101. package/dist/{workflow-MMEOWZJC.js → workflow-S25JXGWN.js} +1 -1
  102. package/package.json +1 -1
  103. package/dist/agent-UAOZYMQM.js +0 -100
  104. package/dist/analysis-RKWGO7UY.js +0 -4
  105. package/dist/chunk-2B7A3OY7.js +0 -102
  106. package/dist/chunk-4P7EYEL5.js +0 -4
  107. package/dist/chunk-AT432SCP.js +0 -15
  108. package/dist/chunk-QEWCTKPV.js +0 -15
  109. package/dist/chunk-QHX5YFMM.js +0 -23
  110. package/dist/chunk-RZ2NZE4U.js +0 -36
  111. package/dist/chunk-THOBFX2S.js +0 -10
  112. package/dist/plan-submit-AWMD7XOY.js +0 -3
  113. package/dist/server-settings-3YD7RR3A.js +0 -3
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{hoursMinutes}from"./chunk-YKI7NYBD.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
4
- import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ME_FLAG={name:"--me",summary:"\u81EA\u5206\u306E\u5206\u3060\u3051\u3092\u8868\u793A\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\u30FB\u7BA1\u7406\u8005\uFF09",takesValue:false};var FORBIDDEN_ADMIN="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u5168\u54E1\u5206\uFF08--me \u306A\u3057\uFF09\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u3001\u81EA\u5206\u306E\u5206\uFF08--me\uFF09\u306F\u52E4\u6020\u306E\u5229\u7528\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";
3
+ import{hoursMinutes}from"./chunk-7EJOKJLV.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-XGYOJHZC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";
4
+ import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var ME_FLAG={name:"--me",summary:"\u81EA\u5206\u306E\u5206\u3060\u3051\u3092\u8868\u793A\u3059\u308B\uFF08\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\u30FB\u7BA1\u7406\u8005\uFF09",takesValue:false};var FORBIDDEN_ADMIN="\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002\u5168\u54E1\u5206\uFF08--me \u306A\u3057\uFF09\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u3001\u81EA\u5206\u306E\u5206\uFF08--me\uFF09\u306F\u52E4\u6020\u306E\u5229\u7528\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";
5
5
  function listBody(spec,body){if(!isRecord(body)||!Array.isArray(body[spec.key])){throw new ApiResponseError(`${spec.label}\u306E\u5FDC\u7B54\u306B ${spec.key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function monthListOperation(spec){const usage=`twp ${spec.domain} list [--month <YYYY-MM>] [--me]`;return{name:"list",summary:`\u6708\u306E${spec.label}\u3092\u4E00\u89A7\u3059\u308B\uFF08--me \u3067\u81EA\u5206\u306E\u5206\u30FB\u7121\u3051\u308C\u3070\u5168\u54E1\u5206\uFF1D\u7BA1\u7406\u8005\uFF09`,
6
6
  usage,description:`GET ${spec.path} \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u5168\u54E1\u5206\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\uFF09\u3002--me \u3092\u4ED8\u3051\u308B\u3068 GET ${spec.path}/me\uFF08\u81EA\u5206\u306E\u5206\uFF09\u3067\u3059\u3002
7
7
  --month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readBody}from"./chunk-6LSQCOCJ.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
4
- import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var DEFAULT_COUNT=20;var MAX_COUNT=100;var NUMERIC=/^[0-9]+$/;var ISSUE_REF=/^(?:[A-Za-z0-9_]+-[0-9]+|[0-9]+)$/;var DATE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;var SPACE_COLUMNS=["id","space_url"];var PROJECT_COLUMNS=["id","projectKey","name"];var ISSUE_LIST_COLUMNS=["issueKey","summary","status","assignee","priority","dueDate","updated","descriptionTruncated"];var ISSUE_GET_COLUMNS=["id","issueKey","projectId","summary","description","descriptionTruncated","status","issueType","priority","assignee","cr\
3
+ import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";
4
+ import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var DEFAULT_COUNT=20;var MAX_COUNT=100;var NUMERIC=/^[0-9]+$/;var ISSUE_REF=/^(?:[A-Za-z0-9_]+-[0-9]+|[0-9]+)$/;var DATE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;var SPACE_COLUMNS=["id","space_url"];var PROJECT_COLUMNS=["id","projectKey","name"];var ISSUE_LIST_COLUMNS=["issueKey","summary","status","assignee","priority","dueDate","updated","descriptionTruncated"];var ISSUE_GET_COLUMNS=["id","issueKey","projectId","summary","description","descriptionTruncated","status","issueType","priority","assignee","cr\
5
5
  eatedUser","parentIssueId","startDate","dueDate","estimatedHours","actualHours","created","updated"];var ISSUE_JSON_SHAPE_HELP='--output json \u306E\u5F62\uFF08Backlog API \u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09:\n TWP \u30B5\u30FC\u30D0\u304C\u6574\u3048\u305F\u5F62\u3067\u8FD4\u308A\u307E\u3059\u3002Backlog API \u306E\u8AB2\u984C\u3092\u305D\u306E\u307E\u307E\u8AAD\u3080\u524D\u63D0\u3067\u66F8\u304F\u3068\u58CA\u308C\u307E\u3059\u3002\n - status / priority / resolution / issueType / assignee / createdUser / updatedUser \u306F\n \u540D\u524D\u306E\u6587\u5B57\u5217\u3067\u3059\uFF08{id, name} \u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002ID \u306F statusId / issueTypeId /\n assigneeId \u2026 \u306E\u3088\u3046\u306B\u672B\u5C3E Id \u306E\u5225\u30AD\u30FC\u306B\u3042\u308A\u307E\u3059\u3002\u672A\u8A2D\u5B9A\u306A\u3089\u4E21\u65B9 null \u3067\u3059\u3002\n - category / versions / milestone \u306F {id, name} \u306E\u914D\u5217\u306E\u307E\u307E\u3067\u3059\uFF08\u8907\u6570\u4ED8\u3051\u3089\u308C\u308B\u305F\u3081\u3001\n \
6
6
  \u540D\u524D\u3068 ID \u3092\u5225\u30AD\u30FC\u3078\u5206\u3051\u308B\u3068\u5BFE\u5FDC\u304C\u5D29\u308C\u307E\u3059\uFF09\u3002customFields \u3082\u914D\u5217\u3067\u3059\u3002\n \u4F8B\uFF081\u4EF6\u30FB\u629C\u7C8B\uFF09:\n {"id": 1234, "issueKey": "PRJ-12", "summary": "\u2026",\n "statusId": 1, "status": "\u672A\u5BFE\u5FDC", "issueTypeId": 56, "issueType": "\u30BF\u30B9\u30AF",\n "assigneeId": 91, "assignee": "\u8C37 \u6A39",\n "category": [{"id": 7, "name": "\u8A2D\u8A08"}], "milestone": [], ...}\n --query \u3082\u3053\u306E\u5F62\u306B\u5F53\u305F\u308A\u307E\u3059\uFF08issue list \u306E\u4F8B: --query "[].{key: issueKey, type: issueType}"\uFF09\u3002';
7
7
  var COMMENT_COLUMNS=["id","created","createdUserId","createdUser","content","changeLog"];function commentRow(row){const source=isRecord(row)?row:{};const user=isRecord(source["createdUser"])?source["createdUser"]:{};return pick({...source,createdUserId:user["id"]??null,createdUser:user["name"]??null},COMMENT_COLUMNS)}var ATTACHMENT_COLUMNS=["id","name","size","contentType","createdUserId","createdUser","created"];var STATUS_COLUMNS=["id","name","color"];var USER_COLUMNS=["id","userId","name","ma\
@@ -27,20 +27,23 @@ throw new UsageError(`${name} \u306F yyyy-MM-dd \u306E\u5F62\u3067\u6307\u5B9A\u
27
27
  void 0){const space=await ctx.resolver.backlogDefaultSpace();return{id:space.id,defaulted:space.name}}if(ref.trim()===""){throw new UsageError("--space \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","--space <ID|\u30B9\u30DA\u30FC\u30B9URL> \u3092\u6307\u5B9A\u3059\u308B\u304B\u3001--space \u3054\u3068\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{id:(await ctx.resolver.backlogSpace(ref)).id,defaulted:null}}function withSpace(input,space){return withResolved(
28
28
  input,{spaceId:space.id,...space.defaulted!==null?{spaceDefaulted:space.defaulted}:{}})}async function resolveNumericRefs(refs,flag,label,scope,load){if(refs.every(ref=>NUMERIC.test(ref)))return[...refs];const candidates=await load();const resolved=[];for(const ref of refs){resolved.push(NUMERIC.test(ref)?ref:(await resolveNamed(ref,candidates,{flag,label,scope})).id)}return resolved}function requireProjectForNames(refs,flag,projectIds){if(projectIds.length===1)return projectIds[0];throw new UsageError(
29
29
  projectIds.length===0?`${flag} \u3092\u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059`:`${flag} \u3092\u540D\u524D\u3067\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F --project \u304C1\u3064\u306E\u3068\u304D\u3060\u3051\u3067\u3059\uFF08\u3044\u307E\u306F ${projectIds.length} \u4EF6\uFF09`,`${flag} \u306E\u5019\u88DC\uFF08${refs.join(" / ")}\uFF09\u306F Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u3042\u308A\u307E\u305B\u3093\u3002\u6570\u5024\u306E ID \u3092\u76F4\u63A5\u6E21\u305B\u3070 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}
30
- function issueRef(input,usage){const ref=singleRef(input,{flag:"--issue",label:"\u8AB2\u984C\u30AD\u30FC",usage});if(!ISSUE_REF.test(ref)){throw new UsageError(`\u8AB2\u984C\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${ref}`,"Backlog \u306E\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u304B\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return ref}var UPDATE_PROJECT_FLAG={name:"--project",summary:"--status / --assignee \u3092\
31
- \u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306B\u8981\u308B Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0 / \u6570\u5024ID\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"};function requireUpdateProject(input,flag,value){const ref=input.flags.get("--project")?.trim();if(ref===void 0||ref===""){throw new UsageError(`${flag} \u3092\u540D\u524D\uFF08${value}\uFF09\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059`,`${flag}\
32
- \u306E\u5019\u88DC\u306F Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u306A\u304F\u3001\u8AB2\u984C\u30AD\u30FC\u304B\u3089\u306F\u5F15\u3051\u307E\u305B\u3093\u3002twp backlog status list --project <\u30AD\u30FC> / twp backlog user list --project <\u30AD\u30FC> \u306E id \u3092 ${flag} \u306B\u76F4\u63A5\u6E21\u305B\u3070 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}return ref}function readUpdateRef(input,flag,label){const raw=input.flags.get(flag);if(raw===
33
- void 0)return void 0;const value=raw.trim();if(value===""){throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${flag} \u3054\u3068\u5916\u305B\u3070\u3001\u305D\u306E\u9805\u76EE\u306F\u5909\u66F4\u3057\u307E\u305B\u3093\u3002`)}if(value.includes(",")){throw new UsageError(`${flag} \u306B\u8907\u6570\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${value}\uFF09`,`\u66F4\u65B0\u306F1\u3064\u306E\u5024\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\uFF08\u7D5E\u308A\u8FBC\u307F\u306E twp\
34
- backlog issue list \u3068\u306F\u9055\u3044\u307E\u3059\uFF09\u3002`)}if(NUMERIC.test(value)&&!isExactNumericId(value)){throw new UsageError(`${flag} \u306E ID \u304C\u6570\u5024\u3068\u3057\u3066\u6271\u3048\u308B\u7BC4\u56F2\u3092\u8D85\u3048\u3066\u3044\u307E\u3059: ${value}`,`Backlog \u306E ID \u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog status list / user list \u306E id \u5217\uFF09\u3002`)}return{flag,label,value,projectRef:NUMERIC.test(value)?
35
- null:requireUpdateProject(input,flag,value)}}async function resolveUpdateProject(ref,load){if(isExactNumericId(ref))return ref;const resolved=await resolveNamed(ref,await load(),{flag:"--project",label:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",scope:BACKLOG_SCOPE_LABEL});if(!isExactNumericId(resolved.id)){throw new ApiResponseError(`Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u300C${ref}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.
36
- id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return resolved.id}async function resolveUpdateRef(ref,projectId,load){if(ref.projectRef===null)return ref.value;if(projectId===void 0){throw new ApiResponseError(`${ref.flag} \u306E\u89E3\u6C7A\u5148\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002`)}const resolved=await resolveNamed(ref.value,await load(projectId),
37
- {flag:ref.flag,label:ref.label,scope:BACKLOG_PROJECT_SCOPE_LABEL});if(!isExactNumericId(resolved.id)){throw new ApiResponseError(`${ref.label}\u300C${ref.value}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return resolved.id}function spaceNotes(input){const defaulted=input.resolved?.["spaceDefaulted"];return defaulted===void 0?[]:[`--space \u3092\u7701\u7565\
38
- \u3057\u305F\u305F\u3081\u3001\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u552F\u4E00\u306E Backlog \u30B9\u30DA\u30FC\u30B9 ${defaulted} \u3092\u4F7F\u3044\u307E\u3057\u305F\u3002`]}function updateNotes(input){const notes=[...spaceNotes(input)];const usedForName=input.resolved?.["projectUsed"]!==void 0;if(input.flags.get("--project")!==void 0&&!usedForName){notes.push("--project \u306F\u4F7F\u3044\u307E\u305B\u3093\u3067\u3057\u305F\uFF08--status / --assignee \u3092\u6570\u5024 ID \u3067\u6E21\u3057\u305F\u305F\u3081\u3001\u540D\u524D\u306E\u89E3\u6C7A\u304C\u8981\u308A\u307E\u305B\u3093\uFF09\u3002")}
39
- return notes}function offsetNotes(input,received,offsetFlag="--offset"){const count=integerFlag(input.flags,"--count",{min:1,max:MAX_COUNT})??DEFAULT_COUNT;if(received<count)return[];const offset=integerFlag(input.flags,offsetFlag,{min:0})??0;return[`${received} \u4EF6\uFF08--count \u306E\u4E0A\u9650\u3061\u3087\u3046\u3069\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093: ${offsetFlag} ${offset+received} \u3092\u4ED8\u3051\u3066\u7D9A\u304D\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\
40
- \u3044\uFF08\u3053\u306E API \u306F\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --all \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`]}var spaceResource={name:"space",summary:"\u9023\u643A\u6E08\u307F Backlog \u30B9\u30DA\u30FC\u30B9",operations:[{name:"list",summary:"\u9023\u643A\u6E08\u307F\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog space list",description:"TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u306B\u767B\u9332\u3055\u308C\u3066\u3044\u308B Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002\n\u30B9\u30DA\u30FC\u30B9\u306F**\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u30E6\u30FC\u30B6\u30FC\u3054\u3068**\u306E\u8A2D\u5B9A\u3067\u3059\
41
- \uFF08\u30C6\u30CA\u30F3\u30C8\u5171\u901A\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u3053\u3053\u306B\u51FA\u308B id / space_url \u306F\u3001\u4ED6\u306E backlog \u30B3\u30DE\u30F3\u30C9\u306E --space \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\u3002\nAPI \u30AD\u30FC\u306F\u8FD4\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u5074\u3067\u30DE\u30B9\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\uFF09\u3002",flags:[],plan(input){if(input.args.length>0){throw new UsageError(
42
- `list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog space list help")}return{method:"GET",path:`${BACKLOG_BASE_PATH}/spaces`}},summarize:body=>listOf(body,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9\u4E00\u89A7").map(row=>pick(row,SPACE_COLUMNS)),raw:body=>listOf(body,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9\u4E00\u89A7")}]};var projectResource={name:"project",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",operations:[{name:"li\
43
- st",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog project list [--space <ID|URL>]",description:"\u3053\u3053\u306B\u51FA\u308B id\uFF08\u6570\u5024\uFF09\u306F backlog issue list --project \u306B\u3001projectKey \u306F\nbacklog status list / backlog user list \u306E --project \u306B\u6E21\u305B\u307E\u3059\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002",
30
+ function issueRef(input,usage){const ref=singleRef(input,{flag:"--issue",label:"\u8AB2\u984C\u30AD\u30FC",usage});if(!ISSUE_REF.test(ref)){throw new UsageError(`\u8AB2\u984C\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${ref}`,"Backlog \u306E\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u304B\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return ref}var UPDATE_PROJECT_FLAG={name:"--project",summary:"--status / --assignee /\
31
+ --notify \u3092\u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306B\u8981\u308B Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0 / \u6570\u5024ID\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"};function requireUpdateProject(input,flag,value){const ref=input.flags.get("--project")?.trim();if(ref===void 0||ref===""){throw new UsageError(`${flag} \u3092\u540D\u524D\uFF08${value}\uFF09\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059`,
32
+ `${flag} \u306E\u5019\u88DC\u306F Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u306A\u304F\u3001\u8AB2\u984C\u30AD\u30FC\u304B\u3089\u306F\u5F15\u3051\u307E\u305B\u3093\u3002twp backlog status list --project <\u30AD\u30FC> / twp backlog user list --project <\u30AD\u30FC> \u306E id \u3092 ${flag} \u306B\u76F4\u63A5\u6E21\u305B\u3070 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}return ref}function readUpdateRef(input,flag,label){const raw=input.flags.get(flag);
33
+ return raw===void 0?void 0:updateRefOf(input,flag,label,raw)}function updateRefOf(input,flag,label,raw){const value=raw.trim();if(value===""){throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,flag===NOTIFY_FLAG.name?`${flag} \u3054\u3068\u5916\u305B\u3070\u3001\u901A\u77E5\u5148\u3092\u6307\u5B9A\u305B\u305A\u306B\u9001\u308A\u307E\u3059\u3002`:`${flag} \u3054\u3068\u5916\u305B\u3070\u3001\u305D\u306E\u9805\u76EE\u306F\u5909\u66F4\u3057\u307E\u305B\u3093\u3002`)}
34
+ if(value.includes(",")){throw new UsageError(`${flag} \u306B\u8907\u6570\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${value}\uFF09`,flag===NOTIFY_FLAG.name?`\u8907\u6570\u4EBA\u306B\u901A\u77E5\u3059\u308B\u3068\u304D\u306F ${flag} \u3092\u91CD\u306D\u3066\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${flag} 91 ${flag} 92\uFF09\u3002`:`\u66F4\u65B0\u306F1\u3064\u306E\u5024\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\uFF08\u7D5E\u308A\u8FBC\u307F\u306E twp backlog issue list \u3068\u306F\u9055\u3044\u307E\u3059\uFF09\u3002`)}
35
+ if(NUMERIC.test(value)&&!isExactNumericId(value)){throw new UsageError(`${flag} \u306E ID \u304C\u6570\u5024\u3068\u3057\u3066\u6271\u3048\u308B\u7BC4\u56F2\u3092\u8D85\u3048\u3066\u3044\u307E\u3059: ${value}`,`Backlog \u306E ID \u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog status list / user list \u306E id \u5217\uFF09\u3002`)}return{flag,label,value,projectRef:NUMERIC.test(value)?null:requireUpdateProject(input,flag,value)}}async function resolveUpdateProject(ref,load){
36
+ if(isExactNumericId(ref))return ref;const resolved=await resolveNamed(ref,await load(),{flag:"--project",label:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",scope:BACKLOG_SCOPE_LABEL});if(!isExactNumericId(resolved.id)){throw new ApiResponseError(`Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u300C${ref}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
37
+ return resolved.id}async function resolveUpdateRef(ref,projectId,load){if(ref.projectRef===null)return ref.value;if(projectId===void 0){throw new ApiResponseError(`${ref.flag} \u306E\u89E3\u6C7A\u5148\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002`)}const resolved=await resolveNamed(ref.value,await load(projectId),{flag:ref.flag,label:ref.label,scope:BACKLOG_PROJECT_SCOPE_LABEL});if(!isExactNumericId(
38
+ resolved.id)){throw new ApiResponseError(`${ref.label}\u300C${ref.value}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return resolved.id}var NOTIFY_FLAG={name:"--notify",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u901A\u77E5\u5148\uFF08Backlog \u306E\u300C\u304A\u77E5\u3089\u305B\u3057\u305F\u3044\u30E6\u30FC\u30B6\u30FC\u300D\uFF09\u3002\u8907\u6570\u306A\u3089\u91CD\u306D\u3066\u6307\u5B9A\u3002\u6570\u5B57\u3060\u3051\u306E\u5024\u306F ID \u3068\u3057\u3066\u9001\u308A\u307E\u3059\uFF08\u540D\u524D\u306A\u3089 --project \u304C\u8981\u308B\uFF09",
39
+ takesValue:true,repeatable:true,placeholder:"<\u540D\u524D|ID>"};var NOTIFY_HELP="--notify <\u540D\u524D|ID> \u3067\u3001\u30B3\u30E1\u30F3\u30C8\u306E\u901A\u77E5\u5148\uFF08Backlog \u306E\u300C\u304A\u77E5\u3089\u305B\u3057\u305F\u3044\u30E6\u30FC\u30B6\u30FC\u300D\uFF09\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n \u26A0 \u6307\u5B9A\u3057\u306A\u3044\u3068\u3001\u62C5\u5F53\u8005\u4EE5\u5916\u3078\u306F\u901A\u77E5\u304C\u5C4A\u304B\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u62C5\u5F53\u3092\u5909\u3048\u305A\u306B\u76F8\u624B\u3078\u805E\u304D\u305F\u3044\u3068\u304D\u306F\n \u62C5\u5F53\u5909\u66F4\u3067\u4EE3\u7528\u305B\u305A --notify \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u8907\u6570\u4EBA\u306A\u3089 --notify \u3092\u91CD\u306D\u3066\u6307\u5B9A\u3057\u307E\u3059\u3002\n \u6570\u5B57\u3060\u3051\u306E\u5024\u306F ID \u3068\u3057\u3066\u9001\u308A\u307E\u3059\u3002\u540D\u524D\u30FB\u30ED\u30B0\u30A4\u30F3ID\u30FB\u30E1\u30FC\u30EB\u3067\u6307\u3059\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3001\n \u7167\u5408\u306F\u5B8C\u5168\u4E00\u81F4\u3060\u3051\u3067\u3059\uFF08\u4E00\u81F4\u3057\u306A\u3051\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u307E\u308A\u3001\u4F55\u3082\u9001\u308A\u307E\u305B\u3093\uFF09\u3002";
40
+ function readNotifyRefs(input){return repeatedValues(input,NOTIFY_FLAG.name).map(raw=>updateRefOf(input,NOTIFY_FLAG.name,"Backlog \u30E6\u30FC\u30B6\u30FC",raw))}async function resolveNotifyRefs(refs,projectId,load){if(refs.length===0)return void 0;const ids=[];for(const ref of refs){const id=await resolveUpdateRef(ref,projectId,load);if(!ids.includes(id))ids.push(id)}return ids.join(",")}function notifyBody(input,body){const ids=resolvedList(input,"notifiedUserId");if(ids!==void 0)body["notifie\
41
+ dUserId"]=ids.map(Number)}function spaceNotes(input){const defaulted=input.resolved?.["spaceDefaulted"];return defaulted===void 0?[]:[`--space \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u552F\u4E00\u306E Backlog \u30B9\u30DA\u30FC\u30B9 ${defaulted} \u3092\u4F7F\u3044\u307E\u3057\u305F\u3002`]}function updateNotes(input){const notes=[...spaceNotes(input)];const usedForName=input.resolved?.["projectUsed"]!==void 0;if(input.flags.get("--project")!==void 0&&
42
+ !usedForName){notes.push("--project \u306F\u4F7F\u3044\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u540D\u524D\u3067\u6307\u5B9A\u3057\u305F\u5024\u304C\u7121\u304F\u3001\u3059\u3079\u3066\u6570\u5024 ID \u3060\u3063\u305F\u305F\u3081\u3001\u540D\u524D\u306E\u89E3\u6C7A\u304C\u8981\u308A\u307E\u305B\u3093\uFF09\u3002")}return notes}function offsetNotes(input,received,offsetFlag="--offset"){const count=integerFlag(input.flags,"--count",{min:1,max:MAX_COUNT})??DEFAULT_COUNT;if(received<count)return[];
43
+ const offset=integerFlag(input.flags,offsetFlag,{min:0})??0;return[`${received} \u4EF6\uFF08--count \u306E\u4E0A\u9650\u3061\u3087\u3046\u3069\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093: ${offsetFlag} ${offset+received} \u3092\u4ED8\u3051\u3066\u7D9A\u304D\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u3053\u306E API \u306F\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --all \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`]}
44
+ var spaceResource={name:"space",summary:"\u9023\u643A\u6E08\u307F Backlog \u30B9\u30DA\u30FC\u30B9",operations:[{name:"list",summary:"\u9023\u643A\u6E08\u307F\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog space list",description:"TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u306B\u767B\u9332\u3055\u308C\u3066\u3044\u308B Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002\n\u30B9\u30DA\u30FC\u30B9\u306F**\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u30E6\u30FC\u30B6\u30FC\u3054\u3068**\u306E\u8A2D\u5B9A\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u5171\u901A\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u3053\u3053\u306B\u51FA\u308B id / space_url \u306F\u3001\u4ED6\u306E backlog \u30B3\u30DE\u30F3\u30C9\u306E --space \u306B\u305D\u306E\u307E\u307E\u6E21\u305B\u307E\u3059\u3002\nAPI \u30AD\u30FC\u306F\u8FD4\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u5074\u3067\u30DE\u30B9\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\uFF09\u3002",
45
+ flags:[],plan(input){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog space list help")}return{method:"GET",path:`${BACKLOG_BASE_PATH}/spaces`}},summarize:body=>listOf(body,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9\u4E00\u89A7").map(row=>pick(row,SPACE_COLUMNS)),raw:body=>listOf(body,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9\u4E00\u89A7")}]};var projectResource={name:"project",summary:"B\
46
+ acklog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",operations:[{name:"list",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog project list [--space <ID|URL>]",description:"\u3053\u3053\u306B\u51FA\u308B id\uFF08\u6570\u5024\uFF09\u306F backlog issue list --project \u306B\u3001projectKey \u306F\nbacklog status list / backlog user list \u306E --project \u306B\u6E21\u305B\u307E\u3059\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002",
44
47
  flags:[SPACE_FLAG],async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp backlog project list help")}return withSpace(input,await resolveSpace(input,ctx))},plan(input){return{method:"GET",path:backlogSpacePath(requireSpace(input),"/projects")}},plannedNotes:spaceNotes,summarize:body=>listOf(body,"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7").map(row=>pick(
45
48
  row,PROJECT_COLUMNS)),raw:body=>listOf(body,"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7")}]};var issueResource={name:"issue",summary:"Backlog \u8AB2\u984C",operations:[{name:"list",summary:"Backlog \u8AB2\u984C\u3092\u4E00\u89A7\u30FB\u691C\u7D22\u3059\u308B",usage:"twp backlog issue list [--space <ID|URL>] [--project <\u30AD\u30FC|ID>] [--status <\u540D\u524D|ID>] [--assignee <\u540D\u524D|ID>] [--updated-since <yyyy-MM-dd>] [--count <\u4EF6\u6570>] [--offset <\u4EF6\u6570>]",
46
49
  description:"\u26A0 \u3053\u306E\u4E00\u89A7\u306E description\uFF08\u672C\u6587\uFF09\u306F\u65E2\u5B9A\u3067 1000 \u6587\u5B57\u306B\u5207\u3089\u308C\u307E\u3059\u3002\n \u5207\u3089\u308C\u305F\u8AB2\u984C\u306B\u306F descriptionTruncated: true \u304C\u4ED8\u304D\u307E\u3059\uFF08\u9ED9\u3063\u3066\u5207\u308A\u307E\u305B\u3093\uFF09\u3002\n \u5168\u6587\u304C\u8981\u308B\u306A\u3089 --description-max 0 \u3092\u4ED8\u3051\u308B\u304B\u3001twp backlog issue get \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\n \uFF08get \u306F\u5E38\u306B\u5168\u6587\u3092\u8FD4\u3057\u307E\u3059\uFF09\u3002\n\n\u7D5E\u308A\u8FBC\u307F\u306E\u8907\u6570\u6307\u5B9A\u306F\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u3059\uFF08--status \u672A\u5BFE\u5FDC,\u51E6\u7406\u4E2D\uFF09\u3002\n--project / --status / --assignee / --created-user \u306F\u540D\u524D\u3067\u3082\u6570\u5024 ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n \u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u5834\u5408\u3001--status / --assignee / --created-user \u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059\n \uFF08\u5019\u88DC\u304C Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u306A\u3044\u305F\u3081\uFF09\u3002\u6570\u5024 ID \u306A\u3089 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002\n\n\u30DA\u30FC\u30B8\u30F3\u30B0:\n \u3053\u306E API \u306F\u30AA\u30D5\u30BB\u30C3\u30C8\u65B9\u5F0F\u3067\u3059\uFF08\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --all / --cursor \u306F\u3042\u308A\u307E\u305B\
@@ -58,8 +61,8 @@ word");query["updatedSince"]=dateFlag(input.flags,"--updated-since");query["coun
58
61
  "issues","\u8AB2\u984C\u4E00\u89A7").map(row=>pick(row,ISSUE_LIST_COLUMNS)),raw:body=>listOf(body,"issues","\u8AB2\u984C\u4E00\u89A7"),notes(body,input){const issues=listOf(body,"issues","\u8AB2\u984C\u4E00\u89A7");const truncated=issues.filter(row=>isRecord(row)&&row["descriptionTruncated"]===true).length;const notes=[...offsetNotes(input,issues.length)];if(truncated>0){notes.push(`${truncated} \u4EF6\u306E\u672C\u6587\u304C\u9014\u4E2D\u3067\u5207\u3089\u308C\u3066\u3044\u307E\u3059\uFF08descriptionTruncated: true\uFF09\u3002\u5168\u6587\u304C\u8981\u308B\u306A\u3089 --description-max 0 \u304B twp backlog issue get \u3092\u4F7F\u3063\u3066\u304F\
59
62
  \u3060\u3055\u3044\u3002`)}return notes}},{name:"get",summary:"Backlog \u8AB2\u984C1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u306F\u5168\u6587\uFF09",usage:"twp backlog issue get <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--space <ID|URL>]",description:"\u672C\u6587\uFF08description\uFF09\u306F\u5E38\u306B\u5168\u6587\u304C\u8FD4\u308A\u307E\u3059\uFF08descriptionTruncated \u306F\u5FC5\u305A false\uFF09\u3002\n\u4E00\u89A7\uFF08twp backlog issue list\uFF09\u306F\u65E2\u5B9A\u3067 1000 \u6587\u5B57\u306B\u5207\u308B\u306E\u3067\u3001\u305D\u3053\u304C\u9055\u3044\u307E\u3059\u3002\n\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u3067\u3082\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3067\u3082\u5F15\u3051\u307E\u3059\u3002\n\n"+
60
63
  ISSUE_JSON_SHAPE_HELP,flags:[SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog issue get help");return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(
61
- ref)}`)}},plannedNotes:spaceNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)},{name:"update",summary:"Backlog \u8AB2\u984C\u306E\u62C5\u5F53\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u66F4\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp backlog issue update <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--assignee <\u540D\u524D|ID>] [--status <\u540D\u524D|ID>] [--comment-file <\u30D1\u30B9>] [--project <\u30AD\u30FC|ID>] --yes",description:`${EXTERNAL_WRITE_HELP}\
62
-
64
+ ref)}`)}},plannedNotes:spaceNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)},{name:"update",summary:"Backlog \u8AB2\u984C\u306E\u62C5\u5F53\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u66F4\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",usage:"twp backlog issue update <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--assignee <\u540D\u524D|ID>] [--status <\u540D\u524D|ID>] [--comment-file <\u30D1\u30B9>] [--notify <\u540D\u524D|ID>]... [--project <\u30AD\u30FC|ID>] --yes",
65
+ description:`${EXTERNAL_WRITE_HELP}
63
66
 
64
67
  --assignee / --status / --comment-file\uFF08--comment\uFF09\u306E\u3046\u3061\u3001\u5C11\u306A\u304F\u3068\u30821\u3064\u304C\u5FC5\u8981\u3067\u3059\u3002
65
68
  \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\u66F4\u3057\u307E\u305B\u3093\uFF09\u3002
@@ -81,14 +84,17 @@ ref)}`)}},plannedNotes:spaceNotes,summarize:body=>pick(issueObject(body),ISSUE_G
81
84
  --comment-file \u3067\u6E21\u3057\u305F\u672C\u6587\u306F\u3001\u3053\u306E\u5909\u66F4\u306E\u7406\u7531\u3068\u3057\u3066\u540C\u3058\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u6295\u7A3F\u3055\u308C\u307E\u3059\u3002
82
85
  ${bodyHelp("--comment-file","--comment")}
83
86
 
87
+ ${NOTIFY_HELP}
88
+
84
89
  ${ORDER_HELP}`,destructive:true,flags:[SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},UPDATE_PROJECT_FLAG,{name:"--assignee",summary:"\u62C5\u5F53\u8005\u3002\u6570\u5B57\u3060\u3051\u306E\u5024\u306F ID \u3068\u3057\u3066\u9001\u308A\u307E\u3059\uFF08\u540D\u524D\u30FB\u30ED\u30B0\u30A4\u30F3ID\u30FB\u30E1\u30FC\u30EB\u306A\u3089 --project \u304C\u8981\u308B\uFF09",takesValue:true,
85
90
  placeholder:"<\u540D\u524D|ID>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u6570\u5024ID\u3001\u307E\u305F\u306F\u540D\u524D\u3002\u540D\u524D\u306A\u3089 --project \u304C\u8981\u308B\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--comment-file",summary:"\u5909\u66F4\u306E\u7406\u7531\u3092\u672C\u6587\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u307F\u3001\u540C\u3058\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u6295\u7A3F\u3059\u308B\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
86
- takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--comment",summary:"\u5909\u66F4\u306E\u7406\u7531\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--comment-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog issue update help");const assigneeRef=readUpdateRef(input,"--assignee","Backlog \u30E6\u30FC\u30B6\u30FC");const statusRef=readUpdateRef(
87
- input,"--status","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9");const comment=await readBody(input,{flag:"--comment",fileFlag:"--comment-file",label:"\u5909\u66F4\u30B3\u30E1\u30F3\u30C8",maxChars:BODY_MAX_CHARS,usage:"twp backlog issue update help"});if(comment===void 0&&assigneeRef===void 0&&statusRef===void 0){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093","--assignee <\u540D\u524D|ID> / --status <\u540D\u524D|ID> / --comment-file <\u30D1\u30B9> \u306E\u3046\u3061\u3001\u5C11\u306A\u304F\u3068\u30821\u3064\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
88
- const space=await resolveSpace(input,ctx);const resolved={issueRef:ref};const projectRef=assigneeRef?.projectRef??statusRef?.projectRef??null;const projectId=projectRef===null?void 0:await resolveUpdateProject(projectRef,()=>ctx.resolver.backlogProjects(space.id));if(projectId!==void 0)resolved["projectUsed"]=projectId;if(assigneeRef!==void 0){resolved["assigneeId"]=await resolveUpdateRef(assigneeRef,projectId,id=>ctx.resolver.backlogUsers(space.id,id))}if(statusRef!==void 0){resolved["statusId"]=
89
- await resolveUpdateRef(statusRef,projectId,id=>ctx.resolver.backlogStatuses(space.id,id))}if(comment!==void 0)resolved["comment"]=comment;return withSpace(withResolved(input,resolved),space)},plan(input){const body={};for(const key of["assigneeId","statusId"]){const value=input.resolved?.[key];if(value!==void 0)body[key]=Number(value)}const comment=input.resolved?.["comment"];if(comment!==void 0)body["comment"]=comment;return{method:"PATCH",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(
90
- requireResolved(input,"issueRef"))}`),body}},plannedNotes:updateNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)}]};var commentResource={name:"comment",summary:"Backlog \u8AB2\u984C\u306E\u30B3\u30E1\u30F3\u30C8\uFF08\u4E00\u89A7\u30FB\u6295\u7A3F\uFF09",operations:[{name:"list",summary:"Backlog \u8AB2\u984C\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog comment list <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> [--space <ID|URL>] [--count <\u4EF6\u6570>] [--order\
91
- <\u9806\u5E8F>]",description:`\u5404\u30B3\u30E1\u30F3\u30C8\u306B\u306F changeLog\uFF08\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u62C5\u5F53\u306E\u5909\u66F4\u5C65\u6B74\uFF09\u304C\u5FC5\u305A\u542B\u307E\u308C\u307E\u3059\u3002
91
+ takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--comment",summary:"\u5909\u66F4\u306E\u7406\u7531\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--comment-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},NOTIFY_FLAG],async prepare(input,ctx){const ref=issueRef(input,"twp backlog issue update help");const assigneeRef=readUpdateRef(input,"--assignee","Backlog \u30E6\u30FC\u30B6\u30FC");const statusRef=readUpdateRef(
92
+ input,"--status","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9");const notifyRefs=readNotifyRefs(input);const comment=await readBody(input,{flag:"--comment",fileFlag:"--comment-file",label:"\u5909\u66F4\u30B3\u30E1\u30F3\u30C8",maxChars:BODY_MAX_CHARS,usage:"twp backlog issue update help"});if(comment===void 0&&assigneeRef===void 0&&statusRef===void 0){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093","--assignee <\u540D\u524D|ID> / --status <\u540D\u524D|ID> / --comment-file\
93
+ <\u30D1\u30B9> \u306E\u3046\u3061\u3001\u5C11\u306A\u304F\u3068\u30821\u3064\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--notify \u306F\u901A\u77E5\u5148\u306E\u6307\u5B9A\u3067\u3001\u305D\u308C\u3060\u3051\u3067\u306F\u5909\u66F4\u306B\u306A\u308A\u307E\u305B\u3093\uFF09\u3002")}const space=await resolveSpace(input,ctx);const resolved={issueRef:ref};const projectRef=assigneeRef?.projectRef??statusRef?.projectRef??notifyRefs.find(ref2=>ref2.projectRef!==null)?.projectRef??null;
94
+ const projectId=projectRef===null?void 0:await resolveUpdateProject(projectRef,()=>ctx.resolver.backlogProjects(space.id));if(projectId!==void 0)resolved["projectUsed"]=projectId;if(assigneeRef!==void 0){resolved["assigneeId"]=await resolveUpdateRef(assigneeRef,projectId,id=>ctx.resolver.backlogUsers(space.id,id))}if(statusRef!==void 0){resolved["statusId"]=await resolveUpdateRef(statusRef,projectId,id=>ctx.resolver.backlogStatuses(space.id,id))}const notified=await resolveNotifyRefs(notifyRefs,
95
+ projectId,id=>ctx.resolver.backlogUsers(space.id,id));if(notified!==void 0)resolved["notifiedUserId"]=notified;if(comment!==void 0)resolved["comment"]=comment;return withSpace(withResolved(input,resolved),space)},plan(input){const body={};for(const key of["assigneeId","statusId"]){const value=input.resolved?.[key];if(value!==void 0)body[key]=Number(value)}const comment=input.resolved?.["comment"];if(comment!==void 0)body["comment"]=comment;notifyBody(input,body);return{method:"PATCH",path:backlogSpacePath(
96
+ requireSpace(input),`/issues/${encodeURIComponent(requireResolved(input,"issueRef"))}`),body}},plannedNotes:updateNotes,summarize:body=>pick(issueObject(body),ISSUE_GET_COLUMNS),raw:body=>issueObject(body)}]};var commentResource={name:"comment",summary:"Backlog \u8AB2\u984C\u306E\u30B3\u30E1\u30F3\u30C8\uFF08\u4E00\u89A7\u30FB\u6295\u7A3F\uFF09",operations:[{name:"list",summary:"Backlog \u8AB2\u984C\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp backlog comment list <\u8AB2\u984C\u30AD\
97
+ \u30FC|\u8AB2\u984CID> [--space <ID|URL>] [--count <\u4EF6\u6570>] [--order <\u9806\u5E8F>]",description:`\u5404\u30B3\u30E1\u30F3\u30C8\u306B\u306F changeLog\uFF08\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u62C5\u5F53\u306E\u5909\u66F4\u5C65\u6B74\uFF09\u304C\u5FC5\u305A\u542B\u307E\u308C\u307E\u3059\u3002
92
98
  \u300C\u3044\u3064\u30FB\u8AB0\u304C\u30FB\u8AB0\u306B\u632F\u3063\u305F\u304B\u300D\u306F Backlog \u3067\u306F\u3053\u3053\u306B\u3057\u304B\u7121\u3044\u306E\u3067\u3001\u8981\u7D04\u5217\u304B\u3089\u3082\u843D\u3068\u3057\u307E\u305B\u3093\u3002
93
99
 
94
100
  \u30DA\u30FC\u30B8\u30F3\u30B0:
@@ -98,13 +104,17 @@ placeholder:"<\u4EF6\u6570>"},{name:"--order",summary:"\u4E26\u3073\u9806\uFF08a
98
104
  placeholder:"<ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog comment list help");return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(ref)}/comments`),query:{count:integerFlag(input.flags,"--count",{min:1,max:MAX_COUNT}),order:order(input.flags.get("--order")),minId:integerFlag(input.flags,"--min-\
99
105
  id",{min:0}),maxId:integerFlag(input.flags,"--max-id",{min:0})}}},plannedNotes:spaceNotes,summarize:body=>listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").map(commentRow),raw:body=>listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7"),notes(body,input){const received=listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").length;const count=integerFlag(input.flags,"--count",{min:1,max:MAX_COUNT})??DEFAULT_COUNT;return received<count?[]:[`${received} \u4EF6\uFF08--count \u306E\u4E0A\u9650\u3061\u3087\u3046\
100
106
  \u3069\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093: --min-id / --max-id \u3067\u7D9A\u304D\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u3053\u306E API \u306F\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --all \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`]}},{name:"create",summary:"Backlog \u8AB2\u984C\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u6295\u7A3F\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",
101
- usage:"twp backlog comment create <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> --body-file <\u30D1\u30B9> [--space <ID|URL>] --yes",description:`${EXTERNAL_WRITE_HELP}
107
+ usage:"twp backlog comment create <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> --body-file <\u30D1\u30B9> [--notify <\u540D\u524D|ID>]... [--project <\u30AD\u30FC|ID>] [--space <ID|URL>] --yes",description:`${EXTERNAL_WRITE_HELP}
102
108
 
103
109
  ${bodyHelp("--body-file","--body")}
104
110
 
105
- ${ORDER_HELP}`,destructive:true,flags:[...BODY_FLAGS,SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog comment create help");const content=await readBody(input,{flag:"--body",fileFlag:"--body-file",label:"\u30B3\u30E1\u30F3\u30C8\u672C\u6587",maxChars:BODY_MAX_CHARS,usage:"twp backlog comment create help"});
106
- if(content===void 0){throw new UsageError("\u30B3\u30E1\u30F3\u30C8\u672C\u6587\u3092 --body-file <\u30D1\u30B9> \u304B --body <\u6587\u5B57\u5217> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp backlog comment create help")}return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref,content})},plan(input){return{method:"POST",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(requireResolved(input,"issueRef"))}/comments`),body:{content:requireResolved(
107
- input,"content")}}},plannedNotes:spaceNotes,summarize:body=>commentRow(commentObject(body)),raw:commentObject}]};function projectMasterResource(spec){return{name:spec.name,summary:spec.summary,operations:[{name:"list",summary:spec.operationSummary,usage:`twp backlog ${spec.name} list --project <\u30AD\u30FC|ID> [--space <ID|URL>]`,description:`${spec.description}
111
+ ${NOTIFY_HELP}
112
+
113
+ ${ORDER_HELP}`,destructive:true,flags:[...BODY_FLAGS,SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},NOTIFY_FLAG,{...UPDATE_PROJECT_FLAG,summary:"--notify \u3092\u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306B\u8981\u308B Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0 / \u6570\u5024ID\uFF09"}],async prepare(input,ctx){const ref=issueRef(
114
+ input,"twp backlog comment create help");const notifyRefs=readNotifyRefs(input);const content=await readBody(input,{flag:"--body",fileFlag:"--body-file",label:"\u30B3\u30E1\u30F3\u30C8\u672C\u6587",maxChars:BODY_MAX_CHARS,usage:"twp backlog comment create help"});if(content===void 0){throw new UsageError("\u30B3\u30E1\u30F3\u30C8\u672C\u6587\u3092 --body-file <\u30D1\u30B9> \u304B --body <\u6587\u5B57\u5217> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp backlog comment create help")}
115
+ const space=await resolveSpace(input,ctx);const resolved={issueRef:ref,content};const projectRef=notifyRefs.find(notify=>notify.projectRef!==null)?.projectRef??null;const projectId=projectRef===null?void 0:await resolveUpdateProject(projectRef,()=>ctx.resolver.backlogProjects(space.id));if(projectId!==void 0)resolved["projectUsed"]=projectId;const notified=await resolveNotifyRefs(notifyRefs,projectId,id=>ctx.resolver.backlogUsers(space.id,id));if(notified!==void 0)resolved["notifiedUserId"]=notified;
116
+ return withSpace(withResolved(input,resolved),space)},plan(input){const body={content:requireResolved(input,"content")};notifyBody(input,body);return{method:"POST",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(requireResolved(input,"issueRef"))}/comments`),body}},plannedNotes:updateNotes,summarize:body=>commentRow(commentObject(body)),raw:commentObject}]};function projectMasterResource(spec){return{name:spec.name,summary:spec.summary,operations:[{name:"list",summary:spec.
117
+ operationSummary,usage:`twp backlog ${spec.name} list --project <\u30AD\u30FC|ID> [--space <ID|URL>]`,description:`${spec.description}
108
118
  \u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002`,flags:[SPACE_FLAG,{name:"--project",summary:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\uFF08HC_FM_ID\uFF09\u304B\u6570\u5024ID\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u3067\u306F\u5F15\u3051\u307E\u305B\u3093",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"}],async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`l\
109
119
  ist \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`twp backlog ${spec.name} list help`)}const space=await resolveSpace(input,ctx);const refs=commaList(input.flags,"--project");if(refs===void 0){throw new UsageError("--project \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`twp backlog ${spec.name} list help`)}if(refs.length>1){throw new UsageError(`--project \u306B\u8907\u6570\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${refs.
110
120
  join(" / ")}\uFF09`,"\u3053\u306E\u4E00\u89A7\u306F1\u3064\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u5C5E\u3057\u307E\u3059\u3002")}const ref=refs[0];return withResolved(withSpace(input,space),{projectRef:ref})},plan(input){const ref=requireResolved(input,"projectRef");if(!/^[A-Za-z0-9_]+$/.test(ref)){throw new UsageError(`--project \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${ref}`,"Backlog \u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30AD\u30FC\uFF08HC_FM_ID\uFF09\u304B\u6570\u5024 ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\uFF08twp backlog project list \u3067 proj\
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{analysisForbidden}from"./chunk-LAAKI3GS.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import"./chunk-YKI7NYBD.js";import"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-ITRTFBV3.js";import"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
4
- import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{analysisForbidden}from"./chunk-APPYZQNC.js";import"./chunk-7EJOKJLV.js";import"./chunk-EXT4AIDF.js";import"./chunk-XGYOJHZC.js";import"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{
4
+ requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
5
5
  return ANALYSIS_FORBIDDEN(body)}var FORBIDDEN=budgetForbidden;var EDIT_HINT="\u76EE\u6A19\u306E\u8A2D\u5B9A\u30FB\u30B3\u30D4\u30FC\u30FB\u53D6\u308A\u8FBC\u307F\u306F\u3001\u5168\u4F53\u7BA1\u7406\u8005\u304B\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u3067\u304D\u307E\u3059\u3002\u6309\u5206\u306F\u305D\u308C\u306B\u52A0\u3048\u3066\u3001\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u3082\u3067\u304D\u307E\u3059\n\uFF08\u3069\u3061\u3089\u3082\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002";
6
6
  var YEAR_MIN=2e3;var YEAR_MAX=2100;var IMPORT_MAX_BYTES=2048*1024;var SET_FILE_MAX_BYTES=4*1024*1024;var AMOUNT_MAX=999999999999;var SHOWN_OVERWRITES=24;var BOM=new RegExp(`^${String.fromCharCode(65279)}`);function usageOf(op){return`twp budget ${op} help`}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u306A\u3057\uFF09"}function noArgs(input,op){if(input.
7
7
  args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}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 dataRecord(body,what){const data=envelope(body,what)["data"];
@@ -0,0 +1,15 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{pick}from"./chunk-SPZ3GBYC.js";import{REUSE_LAST_SUCCESS_MS,capacityError,probeCapacityOutcome}from"./chunk-G4TZFGNN.js";import"./chunk-N2UVRM3Z.js";import{projectFileKey}from"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import os from"os";import path from"path";function lastSuccessPath(stateDir,projectId){return path.join(stateDir,`capacity-report-${projectFileKey(projectId)}.json`)}function readLastSuccess(file){try{const v=JSON.parse(fs.readFileSync(file,"utf8"));if(typeof v!=="object"||v===null)return null;const{payload,at}=v;if(typeof payload!=="string"||typeof at!=="number"||!Number.isFinite(at))return null;return{payload,at}}catch{return null}}function writeLastSuccess(file,value,stderr){try{fs.mkdirSync(path.dirname(file),{recursive:true,mode:448});
4
+ fs.writeFileSync(file,JSON.stringify(value),{mode:384})}catch(err){stderr(`\u26A0\uFE0F \u76F4\u524D\u306E\u6210\u529F\u5024\u3092 ${file} \u3078\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${err.message}\uFF09
5
+ `)}}async function registeredAsLoop(api,runnerId){const res=await api.runners();if(!res.ok)return false;const runners=pick(res.json,"runners");if(!Array.isArray(runners))return false;return runners.some(r=>{if(typeof r!=="object"||r===null)return false;const row=r;return row["runner_id"]===runnerId&&(row["kind"]??"loop")==="loop"})}function loopRegisteredMessage(runnerId){return`\u3053\u306E\u30DE\u30B7\u30F3\uFF08runner_id: ${runnerId}\uFF09\u306F\u540C\u3058\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u3068\u3057\u3066\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002
6
+ \u30EB\u30FC\u30D7\u304C\u52D5\u3044\u3066\u3044\u308B\u9593\u306F\u3001\u67A0\u60C5\u5831\u306F\u30EB\u30FC\u30D7\u306E heartbeat \u3067\u9001\u3089\u308C\u307E\u3059\uFF08capacity_probe \u306E\u8A2D\u5B9A\u306F\u30EB\u30FC\u30D7\u3068\u5171\u901A\u3067\u3059\uFF09
7
+ `}async function runCapacityReport(input){const{api,runnerId,stdout,stderr}=input;const now=input.now??(()=>Date.now());if(input.probe===null){stdout(`capacity_probe \u304C\u672A\u8A2D\u5B9A\u306E\u305F\u3081\u3001\u4F55\u3082\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u8A2D\u5B9A\u5148: ~/.twp/loops/${input.projectId}.json\uFF09
8
+ `);return 0}if(!input.runnerIdPersisted){stderr(`\u274C runner_id \u3092\u72B6\u614B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08${input.stateDir}\uFF09\u3078\u4FDD\u5B58\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002
9
+ \u3053\u306E\u307E\u307E\u9001\u308B\u3068\u5B9F\u884C\u306E\u305F\u3073\u306B\u5225\u306E\u5B9F\u884C\u6A5F\u3068\u3057\u3066\u767B\u9332\u3055\u308C\u307E\u3059\u3002\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u6A29\u9650\u3092\u76F4\u3059\u304B\u3001RUNNER_ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
10
+ `);return 1}if(await registeredAsLoop(api,runnerId)){stdout(loopRegisteredMessage(runnerId));return 0}const log=message=>stderr(`${message.trimStart()}
11
+ `);const runProbe=input.runProbe??probeCapacityOutcome;let outcome;try{outcome=await runProbe(input.probe,input.cwd,log,input.env??process.env)}catch{outcome={payload:capacityError("exit_status"),ok:false}}const file=lastSuccessPath(input.stateDir,input.projectId);let capacity=outcome.payload;let reused=false;if(!outcome.ok){const last=readLastSuccess(file);if(last!==null&&now()-last.at<REUSE_LAST_SUCCESS_MS&&now()>=last.at){capacity=last.payload;reused=true;stderr("\u76F4\u524D\u306B\u53D6\u5F97\u3067\u304D\u305F\u67A0\u60C5\u5831\u3092\u9001\u308A\u307E\u3059\uFF08\u4E00\u6642\u7684\u306A\u5931\u6557\u3068\u3057\u3066\u6271\u3044\u307E\
12
+ \u3059\uFF09\n")}}const payload={runner_id:runnerId,capacity};const host=input.hostname??os.hostname();if(host)payload.hostname=host;if(input.platform!==null)payload.platform=input.platform;if(input.version)payload.version=input.version;const res=await api.capacityReport(payload);if(res.ok){if(outcome.ok)writeLastSuccess(file,{payload:outcome.payload,at:now()},stderr);const what=outcome.ok?"\u67A0\u60C5\u5831":reused?"\u76F4\u524D\u306E\u67A0\u60C5\u5831":"\u53D6\u5F97\u5931\u6557\uFF08error\uFF09";
13
+ stdout(`${what}\u3092\u9001\u308A\u307E\u3057\u305F\uFF08runner_id: ${runnerId}\uFF09
14
+ `);return 0}if(res.status===409&&pick(res.json,"reason")==="kind_mismatch"){stdout(loopRegisteredMessage(runnerId));return 0}const detail=res.transportError!==null?res.transportError:`HTTP ${res.status??"?"}${typeof pick(res.json,"message")==="string"?`: ${String(pick(res.json,"message")).slice(0,200)}`:""}`;stderr(`\u274C \u67A0\u60C5\u5831\u3092\u9001\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${detail}\uFF09
15
+ `);return 1}export{lastSuccessPath,runCapacityReport};
@@ -0,0 +1,41 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-KDH3KWPO.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","plan","capacity"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--from","--to","--output","--q\
4
+ uery"]);var BOOLEAN_FLAGS=new Set(["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===void 0)continue;if(arg.startsWith("-")&&arg!=="-"){const{name,value:inline}=splitFlagToken(
5
+ arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}function isTaskLoopAction(token){return token!==
6
+ void 0&&TASK_LOOP_ACTIONS.includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,consumed}}return{kind:"builtin",command:first,
7
+ ...first==="task-loop"?{action:"run"}:{},consumed}}if(second!==void 0&&secondIndex!==void 0)consumed.push(secondIndex);return{kind:"domain",domain:first,...second!==void 0?{operation:second}:{},consumed}}var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(argv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],domainHelp:false,dryRun:false,
8
+ debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const route=resolveRoute(dispatch(argv));const consumed=new Set;const[firstIndex,secondIndex]=route.consumed;if(route.kind==="builtin"){out.command=route.command;if(route.action!==void 0)out.taskLoopAction=route.action;for(const index of route.consumed)consumed.add(index)}else if(route.kind==="domain"){if(route.domain===HELP_TOKEN){if(route.operation===void 0){out.command="help";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(
9
+ route.operation)){out.command="domain";out.domain=route.operation;out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}else if(route.operation===API_TOKEN){out.command="api";out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}}else if(route.domain===API_TOKEN){out.command="api";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.domain)){out.command=
10
+ "domain";out.domain=route.domain;if(route.operation!==void 0)out.operation=route.operation;for(const index of route.consumed)consumed.add(index)}}const hasSubcommandToken=route.kind==="builtin"||route.kind==="domain"&&(route.domain===HELP_TOKEN||route.domain===API_TOKEN||isDomainName(route.domain));const isDomainRoute=out.command==="domain"||out.command==="api";const takeValue=(i,flag,inline)=>{const value=inline??argv[i+1];if(value===void 0||inline===void 0&&value.startsWith("-")){out.unknown.push(
11
+ flag);return{step:0}}if(value.trim()===""){out.unknown.push(inline===void 0?`${flag} `:`${flag}=${inline}`);return{step:0}}return{value,step:inline===void 0?1:0}};let optionsClosed=false;for(let i=0;i<argv.length;i++){if(consumed.has(i))continue;const raw=argv[i];if(raw===void 0)continue;if(isDomainRoute&&raw==="--")optionsClosed=true;const{name:arg,value:inline}=splitFlagToken(raw);if(isDomainRoute&&(optionsClosed||!GLOBAL_FLAGS.has(arg))){out.domainArgv.push(raw);continue}if(inline!==void 0&&BOOLEAN_FLAGS.
12
+ has(arg)){out.unknown.push(raw);continue}switch(arg){case"-h":case"--help":if(isDomainRoute)out.domainHelp=true;else out.command="help";break;case"-v":case"--version":out.command="version";break;case"--no-tui":out.noTui=true;break;case"--doctor":out.doctor=true;break;case"--password":out.loginMethod="password";break;case"--token":out.loginMethod="token";break;case"--no-browser":out.loginNoBrowser=true;break;case"--profile":{const{value,step}=takeValue(i,"--profile",inline);if(value!==void 0){out.
13
+ profile=value;i+=step}break}case"-p":case"--print":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(hasSubcommandToken){out.unknown.push(raw)}else if(next==="-"){out.command="print";out.promptFromStdin=true;out.prompt="";i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.command="print";out.prompt=next;i+=step}else{out.unknown.push(raw)}break}case"--output":{const{value,step}=takeValue(i,"--output",inline);if(value!==void 0){out.output=value;i+=step}break}case"\
14
+ --query":{const{value,step}=takeValue(i,"--query",inline);if(value!==void 0){out.query=value;i+=step}break}case"--dry-run":out.dryRun=true;break;case"--debug":out.debug=true;break;case"--refresh":out.refresh=true;break;case"--tenant":{const{value,step}=takeValue(i,"--tenant",inline);if(value!==void 0){out.tenant=value;i+=step}break}case"--mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isModeId(next)){out.mode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith(
15
+ "-"))){out.unknown.push(inline!==void 0?raw:`--mode ${next}`);i+=step}else{out.unknown.push("--mode")}break}case"--permission-mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isPermissionModeId(next)){out.permissionMode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.unknown.push(inline!==void 0?raw:`--permission-mode ${next}`);i+=step}else{out.unknown.push("--permission-mode")}break}case"--allowed-tools":case"--disallowed-tools":{const{value,
16
+ step}=takeValue(i,arg,inline);if(value!==void 0){(arg==="--allowed-tools"?out.allowedTools:out.disallowedTools).push(value);i+=step}break}case"--model":{const{value,step}=takeValue(i,"--model",inline);if(value!==void 0){out.model=value;i+=step}break}case"--safe":out.safe=true;break;case"--daemon":out.daemon=true;break;case"--force-runner":out.forceRunner=true;break;case"--force":out.stopForce=true;break;case"--drain":out.stopDrain=true;break;case"--project":{const{value,step}=takeValue(i,"--proj\
17
+ ect",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{const{value,step}=takeValue(i,"--engine",inline);if(value!==void 0){out.engine=value;i+=step}break}case"--interval":case"--max-cycles":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){const n=Number.parseInt(value,10);if(Number.isInteger(n)&&n>0){if(arg==="--interval")out.interval=n;else out.maxCycles=n}else{out.unknown.push(inline!==void 0?raw:`${arg} ${value}`)}i+=step}break}case"--yes":case"-y":out.yes=
18
+ true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-file":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(
19
+ i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(
20
+ i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--from":{const{value:v,step}=takeValue(i,"--from",inline);if(v!==void 0){out.revisionFrom=v;i+=step}break}case"--to":{const{value:v,step}=takeValue(i,"--to",inline);if(v!==void 0){out.revisionTo=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}
21
+ break}case"--all":out.skillAll=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&isRevisionAwareOp(raw)){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&raw==="report"){out.capacityOp=
22
+ "report";break}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&isRevisionAwareOp(raw)){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.
23
+ push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod==="browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.
24
+ command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push(
25
+ "--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.
26
+ unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to");if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command===
27
+ "whoami";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&out.taskLoopAction!=="schedule"){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)
28
+ out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");
29
+ out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){if(out.yes&&out.taskLoopAction!=="charter"&&out.taskLoopAction!=="skill")out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction===
30
+ "status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--d\
31
+ aemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("\
32
+ --file");if(out.charterOp!=="push"&&out.charterOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.charterOp);if((out.charterOp==="history"||out.charterOp==="diff")&&out.yes)out.unknown.push("--yes");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.
33
+ push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push("skill \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}else if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306F --all \u3092\u53D7\u3051\
34
+ \u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u540D\u30921\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(out.skillName===void 0&&!out.skillAll){out.unknown.push(out.skillOp==="push"||out.skillOp==="pull"?`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`:`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==
35
+ void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}if(out.skillOp!=="push"&&out.skillOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.skillOp);if((out.skillOp==="history"||out.skillOp==="diff")&&out.yes)out.unknown.push("--yes");if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillDir!==void 0)out.unknown.push("--dir");if(out.charterFile!==void 0)
36
+ out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F subm\
37
+ it \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command===
38
+ "task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==
39
+ void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push(
40
+ "--all")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"&&out.taskLoopAction!=="charter"){if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}return out}function isRevisionAwareOp(raw){return raw==="push"||raw==="pull"||raw==="history"||raw==="diff"||raw==="revert"}function pushRevisionFlagErrors(out,op){
41
+ if(op!=="diff"&&out.revisionFrom!==void 0)out.unknown.push("--from");if(op!=="diff"&&op!=="revert"&&out.revisionTo!==void 0)out.unknown.push("--to")}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,GLOBAL_FLAGS,parseArgv};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,detectClaudeAutoSwitch,spawnSyncResolved}from"./chunk-AEJHDFXB.js";import{defaultIsExecutableFile,findOnPath,joinFor}from"./chunk-PMOUHEJQ.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{spawnSync}from"child_process";import{createHash}from"crypto";import fs from"fs";import os from"os";import path from"path";var DETECTABLE_AIS=["claude","codex","gemini","copilot"];function isDetectableAi(value){return DETECTABLE_AIS.includes(value)}function isSelectable(d){return d.installed&&d.blockedReason===null&&d.auth!=="unauthenticated"}function resolveDetectDeps(deps={}){return resolve(deps)}function resolve(deps){const platform=deps.platform??process.platform;return{run:deps.run??spawnSync,env:deps.env??process.env,homedir:deps.homedir??os.homedir,isExecutableFile:deps.isExecutableFile??(p=>defaultIsExecutableFile(p,platform)),existsSync:deps.existsSync??fs.existsSync,readFileSync:deps.readFileSync??(p=>fs.readFileSync(p,"utf8")),platform,
3
+ import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,detectClaudeAutoSwitch,spawnSyncResolved}from"./chunk-FABDZBDZ.js";import{defaultIsExecutableFile,findOnPath,joinFor}from"./chunk-PMOUHEJQ.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{spawnSync}from"child_process";import{createHash}from"crypto";import fs from"fs";import os from"os";import path from"path";var DETECTABLE_AIS=["claude","codex","gemini","copilot"];function isDetectableAi(value){return DETECTABLE_AIS.includes(value)}function isSelectable(d){return d.installed&&d.blockedReason===null&&d.auth!=="unauthenticated"}function resolveDetectDeps(deps={}){return resolve(deps)}function resolve(deps){const platform=deps.platform??process.platform;return{run:deps.run??spawnSync,env:deps.env??process.env,homedir:deps.homedir??os.homedir,isExecutableFile:deps.isExecutableFile??(p=>defaultIsExecutableFile(p,platform)),existsSync:deps.existsSync??fs.existsSync,readFileSync:deps.readFileSync??(p=>fs.readFileSync(p,"utf8")),platform,
4
4
  now:deps.now??Date.now,launcherBin:nonEmptyBin(deps.launcherBin)??DEFAULT_CLAUDE_LAUNCHER.bin}}function nonEmptyBin(value){const t=value?.trim();return t===void 0||t===""?void 0:t}var PROBE_TIMEOUT_MS=1e4;function oneLine(text){return text.replace(/\s+/g," ").trim()}function claudeConfigDir(d){const lookup={env:d.env,platform:d.platform};const bin=nonEmptyBin(d.launcherBin)??DEFAULT_CLAUDE_LAUNCHER.bin;const cas=detectClaudeAutoSwitch(bin,d.run,lookup);if(cas!==null){const active=activeSlotPath(
5
5
  cas,d.run,lookup);if(active!==null){return{dir:active,via:`${bin} ${DEFAULT_CLAUDE_LAUNCHER.activeArgs.join(" ")}`}}}const explicit=d.env.CLAUDE_CONFIG_DIR?.trim();if(explicit!==void 0&&explicit!=="")return{dir:explicit,via:"CLAUDE_CONFIG_DIR"};return{dir:joinFor(d.platform)(d.homedir(),".claude"),via:"\u65E2\u5B9A\uFF08~/.claude\uFF09"}}var CLAUDE_AUTH_ENV=[{key:"ANTHROPIC_API_KEY",label:"ANTHROPIC_API_KEY",boolish:false},{key:"ANTHROPIC_AUTH_TOKEN",label:"ANTHROPIC_AUTH_TOKEN",boolish:false},{
6
6
  key:"CLAUDE_CODE_OAUTH_TOKEN",label:"CLAUDE_CODE_OAUTH_TOKEN",boolish:false},{key:"AWS_BEARER_TOKEN_BEDROCK",label:"AWS_BEARER_TOKEN_BEDROCK",boolish:false},{key:"CLAUDE_CODE_USE_BEDROCK",label:"CLAUDE_CODE_USE_BEDROCK\uFF08AWS \u8CC7\u683C\u60C5\u5831\u3067\u52D5\u304D\u307E\u3059\uFF09",boolish:true},{key:"CLAUDE_CODE_USE_VERTEX",label:"CLAUDE_CODE_USE_VERTEX\uFF08GCP \u8CC7\u683C\u60C5\u5831\u3067\u52D5\u304D\u307E\u3059\uFF09",boolish:true}];function envEnabled(raw,boolish){if(boolish)return isBoolishTrue(
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var DEFAULT_SKILL_PREFIX="twp-";var SKILL_PREFIX_RE=/^[a-z0-9-]*$/;var current=DEFAULT_SKILL_PREFIX;function skillPrefix(){return current}function setSkillPrefix(prefix){if(!SKILL_PREFIX_RE.test(prefix)){throw new Error(`\u30B9\u30AD\u30EB\u63A5\u982D\u8F9E\u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u3042\u308A\u307E\u3059: '${prefix}'\uFF08\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\u306E\u307F\uFF09`)}current=prefix}function skillCommand(skill,args="",prefix=current){return`/${prefix}${skill}${args?` ${args}`:""}`}function stripSkillPrefix(skill,prefix=current){return prefix!==""&&skill.startsWith(prefix)?skill.slice(prefix.length):skill}function escapeRe(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function skillFromPrompt(prompt,prefix=current){const p=escapeRe(prefix);const head=new RegExp(`^\\s*\\/${p}([a-z0-9][a-z0-9-]*)(?=\\s|$)`).exec(prompt);if(head)return head[1]??null;if(prefix==="")return null;
4
+ return new RegExp(`\\/${p}([a-z0-9][a-z0-9-]*)`).exec(prompt)?.[1]??null}function stripSkillCommand(prompt,prefix=current){return prompt.replace(new RegExp(`^\\s*\\/${escapeRe(prefix)}[a-z0-9-]*\\s*`),"")}export{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,skillPrefix,setSkillPrefix,skillCommand,stripSkillPrefix,skillFromPrompt,stripSkillCommand};
@@ -0,0 +1,11 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var LOADERS={agent:async()=>(await import("./agent-SFX3ZVOB.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-6JO4PJRG.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-6TDJFHDL.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-HMOECNWG.js")).analysisDomain,announcement:async()=>(await import("./announcement-Q642UMYK.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-DWVFYL2Y.js")).attendanceDomainWithRecords,
4
+ backlog:async()=>(await import("./backlog-FG3Y5JTE.js")).backlogDomain,budget:async()=>(await import("./budget-5WUQAAAZ.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-H5HMVBJV.js")).businessPlaceDomain,company:async()=>(await import("./company-4DHVAW25.js")).companyDomain,contract:async()=>(await import("./contract-PT7VW4IE.js")).contractDomain,customer:async()=>(await import("./company-4DHVAW25.js")).customerDomain,department:async()=>(await import("./department-C6WIZPBS.js")).
5
+ departmentDomain,deposit:async()=>(await import("./deposit-OEYFPEZG.js")).depositDomain,estimate:async()=>(await import("./estimate-4BUJQ3TP.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-GLXQ54F6.js")).evaluationDomain,expense:async()=>(await import("./expense-QE3WIJTN.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-YJWFQN4P.js")).fiscalYearDomain,"goal-sheet":async()=>(await import("./evaluation-GLXQ54F6.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-ORB3ROAJ.js")).
6
+ inquiryDomain,invoice:async()=>(await import("./invoice-XLX5KS2T.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-UDF6I3BP.js")).jobTitleDomain,leave:async()=>(await import("./leave-3BJMXI7Q.js")).leaveDomain,license:async()=>(await import("./license-OMIZUUTW.js")).licenseDomain,media:async()=>(await import("./media-77LTBOQX.js")).mediaDomain,meeting:async()=>(await import("./knowledge-4QPIGJEE.js")).meetingDomain,note:async()=>(await import("./knowledge-4QPIGJEE.js")).
7
+ noteDomain,notification:async()=>(await import("./notification-2IESSY5E.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-ZY3GTU26.js")).onedriveDomain,outlook:async()=>(await import("./outlook-KYTXHDAV.js")).outlookDomain,payee:async()=>(await import("./sales-master-H5HMVBJV.js")).payeeDomain,position:async()=>(await import("./position-CR6P4WC5.js")).positionDomain,project:async()=>(await import("./project-JJEMEO2W.js")).projectDomain,prospect:async()=>(await import("./prospect-QG6X7ALK.js")).
8
+ prospectDomain,purchase:async()=>(await import("./purchase-Z6ENEOZM.js")).purchaseDomain,qualification:async()=>(await import("./skill-RH5MBRXZ.js")).qualificationDomain,receivable:async()=>(await import("./receivable-ZBDXXMHX.js")).receivableDomain,redmine:async()=>(await import("./redmine-EIFHMLNE.js")).redmineDomain,report:async()=>(await import("./report-TTXGXSR3.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-Q5KRM63Y.js")).roundingSettingDomain,
9
+ "seal-impression":async()=>(await import("./sales-master-H5HMVBJV.js")).sealImpressionDomain,search:async()=>(await import("./search-GRAWP2LX.js")).searchDomain,segment:async()=>(await import("./segment-YOUY4PZC.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-772Y3ZWA.js")).shiftDomain,skill:async()=>(await import("./skill-RH5MBRXZ.js")).skillDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-EJTFKAKY.js")).
10
+ supplierPaymentDomain,support:async()=>(await import("./support-FR3KY63E.js")).supportDomain,task:async()=>(await import("./task-O7K6725Y.js")).taskDomain,teams:async()=>(await import("./teams-QRVCFJS4.js")).teamsDomain,user:async()=>(await import("./user-PRGHG3HM.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-K7CLKCEE.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-4QPIGJEE.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-772Y3ZWA.js")).
11
+ workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-WDYZTQ5C.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-S25JXGWN.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -0,0 +1,16 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{FINAL_REPORT_BEGIN,FINAL_REPORT_END}from"./chunk-DXUFECE7.js";import{normalizeRequiredPlatforms}from"./chunk-SPZ3GBYC.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
4
+ function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
5
+ "\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function matchingBrace(text,start){let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(inStr){if(c==="\\")escape=true;else if(c===
6
+ '"')inStr=false;continue}if(c==='"')inStr=true;else if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0)return i}}return-1}var MAX_STEPS_ANCHORS=20;var MAX_OPEN_CANDIDATES=8;function lastStepsObject(text){const anchors=[...text.matchAll(/"steps"\s*:/g)].map(m=>m.index).filter(i=>i!==void 0);for(const at of anchors.reverse().slice(0,MAX_STEPS_ANCHORS)){let tried=0;for(let open=text.lastIndexOf("{",at);open>=0&&tried<MAX_OPEN_CANDIDATES;open=text.lastIndexOf("{",open-1)){tried++;const close=matchingBrace(
7
+ text,open);if(close>at){const plan=tryParsePlan(text.slice(open,close+1));if(plan)return plan}if(open===0)break}}return null}function finalReports(text){const re=new RegExp(`${FINAL_REPORT_BEGIN}\\n?([\\s\\S]*?)${FINAL_REPORT_END}`,"g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out.reverse()}function extractFrom(text){for(const tag of["json:execution-plan","json"]){for(const block of fencedBlocks(text,tag).reverse()){const plan=tryParsePlan(block);if(plan)
8
+ return plan}}const resp=extractGeminiEnvelope(text);if(resp!==null){for(const block of[...fencedBlocks(resp,"json:execution-plan"),...fencedBlocks(resp,"json")].reverse()){const plan2=tryParsePlan(block);if(plan2)return plan2}const plan=tryParsePlan(resp);if(plan)return plan}const whole=tryParsePlan(text.trim());if(whole)return whole;return lastStepsObject(text)}function extractPlanJson(rawText){const text=rawText.replace(/^\s*\[\d{2}:\d{2}:\d{2}\][ \t]*(?:💬 ?)?/gmu,"");for(const report of finalReports(
9
+ text)){const plan=extractFrom(report);if(plan)return plan}return extractFrom(text)}function ledgerTaskKey(args){const key=extractLeadingTaskKey(args);if(key.length>LEDGER_TASK_KEY_MAX)return"";if(CONTROL_CHAR_RE.test(key))return"";if(FLAG_TOKEN_RE.test(key))return"";return key}function placeholderTaskKey(args){for(const token of args.split(/\s+/)){if(token==="")continue;if(token.startsWith("-"))continue;const m=/^[A-Z]{2,}[A-Z0-9]*-([A-Za-z0-9_<>{}]*)$/.exec(token);if(!m)return null;if(/^\d+$/.test(
10
+ m[1]??""))return null;return token}return null}function stepToItem(step,assign,prefix=skillPrefix()){const skill=typeof step.skill==="string"?step.skill.trim():"";if(!skill)return null;const args=(step.args??"").trim();const priority=step.priority??"P2";const prompt=skillCommand(skill,args,prefix);let label=(step.label??"").trim();const own=skillCommand(skill,"",prefix);const promptLike=prefix===""?label===own||label.startsWith(`${own} `):label.startsWith(`/${prefix}`);if(!label||promptLike||label.
11
+ startsWith("[P"))label=prompt;const taskKey=ledgerTaskKey(args);const category=assign?.categoryForSkill(skill)??step.ai_category??"complex";const display=taskKey&&!label.includes(taskKey)?`[${priority}] ${taskKey} ${label} #ai:${category}`:`[${priority}] ${label} #ai:${category}`;const item={label:display.slice(0,200),prompt,task_key:taskKey};const platforms=normalizeRequiredPlatforms(step.required_platforms);if(platforms.length>0)item.required_platforms=platforms;if(assign!==void 0){const ai=assign.
12
+ selectPrimary(category,skill,priority,display);if(ai!=="")item.ai_type=ai}return item}function parsePlanExcludeKeys(prefetchSection){const m=/OPS_PLAN_EXCLUDE_KEYS\s+([^\s]*)\s+-->/.exec(prefetchSection);const keys=new Set;if(!m||!m[1])return keys;for(const raw of m[1].split(",")){const key=raw.trim();if(key!=="")keys.add(key)}return keys}function excludedKeyInArgs(args,excluded){if(excluded.size===0)return null;for(const key of[...excluded].sort()){const re=new RegExp(`(?<![A-Za-z0-9-])${key.replace(
13
+ /[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);if(re.test(args))return key}return null}function parseOpsCount(prefetchSection,field){const marker=/OPS_COUNTS\s+([^>]*?)-->/.exec(prefetchSection);if(!marker||!marker[1])return null;const escaped=field.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const hit=new RegExp(`(?:^|\\s)${escaped}=(-?\\d+)(?:\\s|$)`).exec(marker[1]);if(!hit||hit[1]===void 0)return null;const n=Number.parseInt(hit[1],10);if(!Number.isFinite(n)||n<0)return null;return n}function releaseDeployDropReason(verifyBacklog,devVerifyPlanned){
14
+ if(verifyBacklog===null){return"\u52D5\u4F5C\u78BA\u8A8D\u306E\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\uFF08\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u30EA\u30EA\u30FC\u30B9\u306F\u898B\u9001\u308B\uFF09"}if(verifyBacklog>devVerifyPlanned){return`\u52D5\u4F5C\u78BA\u8A8D${verifyBacklog}\u4EF6 > \u8A08\u753B\u5185dev-verify${devVerifyPlanned}\u4EF6\uFF08Phase 1\u306E0\u4EF6\u898B\u8FBC\u307F\u304C\u7ACB\u305F\u306A\u3044\uFF09`}return null}function duplicateTaskKeyDropReason(enqueuedKeys,taskKey){
15
+ if(!taskKey)return null;if(!enqueuedKeys.has(taskKey))return null;return`${taskKey} \u306F\u672C\u8A08\u753B\u3067\u65E2\u306B\u6295\u5165\u6E08\u307F\uFF08\u540C\u4E00\u30AD\u30FC\u306F1\u8A08\u753B1\u4EF6\uFF09`}var NO_ZERO_TARGET_GATES={};function zeroTargetDropReasons(prefetchSection,gates=NO_ZERO_TARGET_GATES){const reasons=new Map;for(const[skill,gate]of Object.entries(gates)){const n=parseOpsCount(prefetchSection,gate.field);if(n===null)reasons.set(skill,`${gate.label}\u4EF6\u6570\u304C\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u898B\u9001\u308A`);else if(n===
16
+ 0)reasons.set(skill,`${gate.label}0\u4EF6\u306E\u305F\u3081\u5BFE\u8C61\u306A\u3057`)}return reasons}export{extractPlanJson,placeholderTaskKey,stepToItem,parsePlanExcludeKeys,excludedKeyInArgs,parseOpsCount,releaseDeployDropReason,duplicateTaskKeyDropReason,zeroTargetDropReasons};