@tocca-systems/twp-cli 0.77.0 → 0.77.2

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 (45) hide show
  1. package/CHANGELOG.public.md +14 -0
  2. package/README.md +3 -1
  3. package/dist/{agent-loop-ZNQJSXQV.js → agent-loop-6Q5QQC5H.js} +18 -15
  4. package/dist/{ai-dispatch-NFFEUL6K.js → ai-dispatch-U2MEAOHY.js} +2 -2
  5. package/dist/{api-command-L4HJRG3D.js → api-command-D3H2QWSH.js} +1 -1
  6. package/dist/{app-QBAP55F5.js → app-LH2Z63XY.js} +2 -2
  7. package/dist/{capacity-report-command-QSV3A6EX.js → capacity-report-command-BUCAQ2P4.js} +1 -1
  8. package/dist/{chunk-J2NRDFCR.js → chunk-47C3XM23.js} +1 -1
  9. package/dist/{chunk-HFZGBHTB.js → chunk-4H3ECPJF.js} +1 -1
  10. package/dist/{chunk-QQCWGMZN.js → chunk-6C75QARV.js} +22 -22
  11. package/dist/{chunk-GAXJPIKO.js → chunk-6SAHK3OR.js} +1 -1
  12. package/dist/{chunk-SZWDH33O.js → chunk-BMJMOUBS.js} +7 -7
  13. package/dist/{chunk-6TSP4IP5.js → chunk-GYXKBPEN.js} +1 -1
  14. package/dist/{chunk-BYUV3D5Z.js → chunk-IIK77LSC.js} +1 -1
  15. package/dist/{chunk-4URNOAMG.js → chunk-MTUOPTBS.js} +1 -1
  16. package/dist/{chunk-5KAWCLYN.js → chunk-O52RKZCC.js} +1 -1
  17. package/dist/{chunk-OG7FD7SR.js → chunk-QGJYT4NH.js} +1 -1
  18. package/dist/{chunk-DPIJF3EN.js → chunk-QGRBZ2C2.js} +1 -1
  19. package/dist/{chunk-CFTAGW2J.js → chunk-R4Y3OLFY.js} +1 -1
  20. package/dist/{chunk-GY7KI5E5.js → chunk-RMFLTSOV.js} +1 -1
  21. package/dist/{chunk-F6LEGFID.js → chunk-RMOBVFPJ.js} +1 -1
  22. package/dist/{chunk-5KJ5OIKI.js → chunk-WTYIFLVB.js} +1 -1
  23. package/dist/cli.js +10 -10
  24. package/dist/{commands-UMSNPM4D.js → commands-445XWMKY.js} +17 -28
  25. package/dist/{commands-U52UBWSU.js → commands-YJU4HHPP.js} +1 -1
  26. package/dist/{company-WLPLQINW.js → company-NXL4WVLD.js} +1 -1
  27. package/dist/{completion-YBKZ3GXD.js → completion-RL6VCPB5.js} +1 -1
  28. package/dist/{estimate-BPY7AFDK.js → estimate-RIJRRKZZ.js} +1 -1
  29. package/dist/{logout-guard-IWHF33DM.js → logout-guard-T3IAROLQ.js} +1 -1
  30. package/dist/{media-YILATBAI.js → media-AQID56Z4.js} +1 -1
  31. package/dist/{plan-submit-2FSRRNIV.js → plan-submit-7KDB74QH.js} +2 -2
  32. package/dist/{prospect-IXEACPLB.js → prospect-UZLWLOAI.js} +1 -1
  33. package/dist/{purchase-ADUT2XJU.js → purchase-OLJD37QK.js} +1 -1
  34. package/dist/{registry-FOBQSQFB.js → registry-GUS42T5G.js} +1 -1
  35. package/dist/{run-X6MY7CER.js → run-DKDJACXL.js} +1 -1
  36. package/dist/{sales-master-HQTY3C24.js → sales-master-KL5XHTVS.js} +1 -1
  37. package/dist/{schedule-command-RVKP6QQS.js → schedule-command-ZOE3NYAA.js} +1 -1
  38. package/dist/{server-settings-WH4F2SLC.js → server-settings-CRH7UU45.js} +1 -1
  39. package/dist/{server-skills-EEPBSOPO.js → server-skills-FVYYZ54O.js} +1 -1
  40. package/dist/{setup-H22WRMPN.js → setup-VPHP4HDM.js} +1 -1
  41. package/dist/{skill-check-YVIMYT2H.js → skill-check-CKLMW2AJ.js} +2 -2
  42. package/dist/status-command-3GA23BGD.js +17 -0
  43. package/dist/{support-JS35JS7I.js → support-JBL45TWL.js} +13 -13
  44. package/dist/{task-3OK44YBT.js → task-OR5JLUKO.js} +32 -29
  45. package/package.json +1 -1
@@ -1,22 +1,22 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{contentTypeFor,inspectLocalFile,issued}from"./chunk-5KJ5OIKI.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-GY7KI5E5.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH}from"./chunk-GHE6X45G.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
- import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var LABEL="\u30B5\u30DD\u30FC\u30C8\u4F9D\u983C";var MAX_ATTACHMENTS=3;var TITLE_MAX=255;var CONTENT_MAX=1e4;var COMMENT_MAX=5e3;var SOURCE="support_request";var STATUSES=["new","in_progress","waiting","re_inquiry","closed","withdrawn"];var LIST_COLUMNS=["id","title","category_name","status","requester_name","created_at","updated_at"];var GET_COLUMNS=["id","title","category_name","status","requester_name","created_at","updated_at","comment_count","last_comment_by","last_comment_at"];var WRITE_COLUMNS=[
5
- "id","title","category_name","status","attachment_file_ids","updated_at"];var COMMENT_COLUMNS=["id","user_name","is_master_tenant","comment","attachment_file_ids","created_at"];var CATEGORY_COLUMNS=["id","name","description","sort"];var STATUS_HELP="\u72B6\u614B: new\uFF08\u672A\u5BFE\u5FDC\uFF09/ in_progress\uFF08\u5BFE\u5FDC\u4E2D\uFF09/ waiting\uFF08\u56DE\u7B54\u6E08\u307F\u30FB\u78BA\u8A8D\u5F85\u3061\uFF09/ re_inquiry\uFF08\u518D\u554F\u3044\u5408\u308F\u305B\uFF09/ closed\uFF08\u5B8C\u4E86\uFF09/ withdrawn\uFF08\u53D6\u308A\u4E0B\u3052\uFF09\u3002";
6
- var NOT_FOUND_HELP="\u4ED6\u306E\u4EBA\u306E\u4F9D\u983C\u3068\u5B58\u5728\u3057\u306A\u3044\u4F9D\u983C\u306F\u3001\u3069\u3061\u3089\u3082\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u533A\u5225\u3057\u307E\u305B\u3093\uFF09\u3002";var ID_FLAG={name:"--id",summary:`\u5BFE\u8C61\u306E${LABEL}\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09`,takesValue:true,placeholder:"<ID>"};var ATTACH_FLAG={
7
- name:"--attach",summary:`\u6DFB\u4ED8\u3059\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\u30FB${String(MAX_ATTACHMENTS)}\u4EF6\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30D1\u30B9>",repeatable:true};var BODY_FLAG={name:"--body",summary:"\u672C\u6587",takesValue:true,placeholder:"<\u672C\u6587>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
3
+ import{contentTypeFor,inspectLocalFile,issued}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-RMFLTSOV.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH}from"./chunk-GHE6X45G.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
+ import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var LABEL="\u30B5\u30DD\u30FC\u30C8\u4F9D\u983C";var MAX_ATTACHMENTS=3;var TITLE_MAX=255;var CONTENT_MAX=1e4;var COMMENT_MAX=5e3;var SOURCE="support_request";var STATUSES=["new","in_progress","waiting","re_inquiry","awaiting_requester","closed","withdrawn"];var LIST_COLUMNS=["id","title","category_name","status","awaiting_type","requester_name","created_at","updated_at"];var GET_COLUMNS=["id","title","category_name","status","awaiting_type","requester_name","created_at","updated_at","comment_cou\
5
+ nt","last_comment_by","last_comment_at"];var WRITE_COLUMNS=["id","title","category_name","status","attachment_file_ids","updated_at"];var COMMENT_COLUMNS=["id","user_name","is_master_tenant","comment","attachment_file_ids","created_at"];var CATEGORY_COLUMNS=["id","name","description","sort"];var STATUS_HELP="\u72B6\u614B: new\uFF08\u672A\u5BFE\u5FDC\uFF09/ in_progress\uFF08\u5BFE\u5FDC\u4E2D\uFF09/ waiting\uFF08\u56DE\u7B54\u6E08\u307F\u30FB\u78BA\u8A8D\u5F85\u3061\uFF09/ re_inquiry\uFF08\u518D\u554F\u3044\u5408\u308F\u305B\uFF09/ awaiting_requester\uFF08\u3054\u56DE\u7B54\u30FB\u3054\u78BA\u8A8D\u5F85\u3061\u3002awaiting_type \u304C\u6C42\u3081\u3066\u3044\u308B\u5185\u5BB9: answer\uFF1D\u56DE\u7B54 / approval\uFF1D\u627F\u8A8D / confirmation\uFF1D\u753B\u9762\u3067\u306E\u78BA\u8A8D\uFF09/ closed\uFF08\u5B8C\u4E86\uFF09/ withd\
6
+ rawn\uFF08\u53D6\u308A\u4E0B\u3052\uFF09\u3002";var NOT_FOUND_HELP="\u4ED6\u306E\u4EBA\u306E\u4F9D\u983C\u3068\u5B58\u5728\u3057\u306A\u3044\u4F9D\u983C\u306F\u3001\u3069\u3061\u3089\u3082\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u533A\u5225\u3057\u307E\u305B\u3093\uFF09\u3002";var ID_FLAG={name:"--id",summary:`\u5BFE\u8C61\u306E${LABEL}\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09`,
7
+ takesValue:true,placeholder:"<ID>"};var ATTACH_FLAG={name:"--attach",summary:`\u6DFB\u4ED8\u3059\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\u30FB${String(MAX_ATTACHMENTS)}\u4EF6\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30D1\u30B9>",repeatable:true};var BODY_FLAG={name:"--body",summary:"\u672C\u6587",takesValue:true,placeholder:"<\u672C\u6587>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
8
8
  takesValue:true,placeholder:"<\u30D1\u30B9>"};function dataOf(body,label){if(!isRecord(body)||!("data"in body)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body["data"]}function listOf(body,label){const data=dataOf(body,label);if(!Array.isArray(data))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306E data \u304C\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
9
9
  return data}function recordOf(body,label){const data=dataOf(body,label);if(!isRecord(data)||typeof data["id"]!=="string"){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306E data \u306B id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function detailOf(body){const data=dataOf(body,LABEL);const request=isRecord(data)?data["request"]:void 0;const comments=isRecord(data)?data["comments"]:void 0;const history=isRecord(
10
10
  data)?data["status_history"]:void 0;if(!isRecord(request)||typeof request["id"]!=="string"||!Array.isArray(comments)||!Array.isArray(history)){throw new ApiResponseError(`${LABEL}\u306E\u5FDC\u7B54\u306B request / comments / status_history \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{request,comments:comments.filter(isRecord),status_history:history}}function author(comment){const name=typeof comment["user_name"]===
11
11
  "string"?comment["user_name"]:"\u4E0D\u660E";return comment["is_master_tenant"]===true?`\u30B5\u30DD\u30FC\u30C8\uFF08${name}\uFF09`:name}function detailSummary(body){const{request,comments}=detailOf(body);const last=comments.at(-1);return pick({...request,comment_count:comments.length,last_comment_by:last===void 0?null:author(last),last_comment_at:last===void 0?null:last["created_at"]??null},GET_COLUMNS)}function detailDocument(body){const{request,comments,status_history:history}=detailOf(body);
12
- const text=value=>typeof value==="string"?value:value===null||value===void 0?"":String(value);const files=row=>{const ids=row["attachment_file_ids"];return Array.isArray(ids)&&ids.length>0?[`\u6DFB\u4ED8: ${ids.map(text).join(", ")}`]:[]};const lines=[`# ${text(request["title"])}`,"",`ID: ${text(request["id"])}`,`\u72B6\u614B: ${text(request["status"])}`,`\u30AB\u30C6\u30B4\u30EA: ${text(request["category_name"])}`,`\u4F9D\u983C\u8005: ${text(request["requester_name"])}`,`\u4F5C\u6210: ${text(request["\
13
- created_at"])} \uFF0F \u66F4\u65B0: ${text(request["updated_at"])}`,...files(request),"",text(request["content"])];lines.push("",`## \u72B6\u614B\u306E\u5C65\u6B74\uFF08${String(history.length)} \u4EF6\uFF09`,"");for(const row of history.filter(isRecord)){const from=row["status_from"]===null||row["status_from"]===void 0?"":`${text(row["status_from"])} \u2192 `;lines.push(`- ${text(row["created_at"])} ${from}${text(row["status_to"])}\uFF08${text(row["changed_by_name"])}\uFF09`)}lines.push("",`## \
14
- \u30B3\u30E1\u30F3\u30C8\uFF08${String(comments.length)} \u4EF6\uFF09`);for(const comment of comments){lines.push("",`### ${author(comment)} \u2014 ${text(comment["created_at"])}`,...files(comment),"",text(comment["comment"]))}return lines.join("\n")}var serverMessage=body=>isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[];function targetId(input,usage){const id=singleRef(input,{flag:ID_FLAG.name,label:`${LABEL}\u306E ID`,usage});if(!isSafePathSegment(id))
15
- throw new UsageError(`${LABEL}\u306E ID \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${id}`,usage);return id}var itemPath=(id,suffix="")=>`${SUPPORTS_PATH}/${encodeURIComponent(id)}${suffix}`;function attachments(input,usage){const raws=repeatedValues(input,ATTACH_FLAG.name);if(raws.length>MAX_ATTACHMENTS){throw new UsageError(`--attach \u306F ${String(MAX_ATTACHMENTS)} \u4EF6\u307E\u3067\u3067\u3059\uFF08${String(raws.length)} \u4EF6\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\uFF09`,usage)}
16
- return raws.map(raw=>{const{file,size}=inspectLocalFile(raw,ATTACH_FLAG.name,usage);const name=path.basename(file);return{file,name,size,contentType:contentTypeFor(name)}})}function uploadUrlPlan(local){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:local.name,content_type:local.contentType,file_size:local.size,source:SOURCE}}}async function uploadAll(files,ctx,ids){await checkUploadQuota(ctx,files.reduce((sum,local)=>sum+local.size,0));for(const local of files){const{
17
- id,uploadUrl}=issued(await ctx.send(uploadUrlPlan(local)));const bytes=new Uint8Array(fs.readFileSync(local.file));if(bytes.byteLength!==local.size){throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${String(local.size)} \u2192 ${String(bytes.byteLength)} \u30D0\u30A4\u30C8\uFF09: ${local.file}`)}await ctx.putSigned(uploadUrl,bytes,local.contentType);ids.push(id)}}function sendWithAttachments(bodyPlan,usage){
18
- return async(input,ctx)=>{const files=attachments(input,usage);const main=bodyPlan(input);if(files.length===0)return ctx.send(main);const ids=[];try{await uploadAll(files,ctx,ids);return await ctx.send({...main,body:{...main.body,attachment_file_ids:ids}})}catch(err){if(ids.length>0){ctx.warn(`\u6DFB\u4ED8 ${ids.join(", ")} \u306F\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u307E\u3067\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001${LABEL}\u306E\u9001\u4FE1\u307E\u3067\u306F\u5B8C\u4E86\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${LABEL}\
19
- \u306F\u4F5C\u3089\u308C\u3066\u3044\u307E\u305B\u3093\uFF09\u3002
12
+ const text=value=>typeof value==="string"?value:value===null||value===void 0?"":String(value);const files=row=>{const ids=row["attachment_file_ids"];return Array.isArray(ids)&&ids.length>0?[`\u6DFB\u4ED8: ${ids.map(text).join(", ")}`]:[]};const lines=[`# ${text(request["title"])}`,"",`ID: ${text(request["id"])}`,`\u72B6\u614B: ${text(request["status"])}${request["awaiting_type"]?`\uFF08\u6C42\u3081\u3066\u3044\u308B\u5185\u5BB9: ${text(request["awaiting_type"])}\uFF09`:""}`,`\u30AB\u30C6\u30B4\u30EA: ${text(
13
+ request["category_name"])}`,`\u4F9D\u983C\u8005: ${text(request["requester_name"])}`,`\u4F5C\u6210: ${text(request["created_at"])} \uFF0F \u66F4\u65B0: ${text(request["updated_at"])}`,...files(request),"",text(request["content"])];lines.push("",`## \u72B6\u614B\u306E\u5C65\u6B74\uFF08${String(history.length)} \u4EF6\uFF09`,"");for(const row of history.filter(isRecord)){const from=row["status_from"]===null||row["status_from"]===void 0?"":`${text(row["status_from"])} \u2192 `;lines.push(`- ${text(
14
+ row["created_at"])} ${from}${text(row["status_to"])}\uFF08${text(row["changed_by_name"])}\uFF09`)}lines.push("",`## \u30B3\u30E1\u30F3\u30C8\uFF08${String(comments.length)} \u4EF6\uFF09`);for(const comment of comments){lines.push("",`### ${author(comment)} \u2014 ${text(comment["created_at"])}`,...files(comment),"",text(comment["comment"]))}return lines.join("\n")}var serverMessage=body=>isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[];function targetId(input,usage){
15
+ const id=singleRef(input,{flag:ID_FLAG.name,label:`${LABEL}\u306E ID`,usage});if(!isSafePathSegment(id))throw new UsageError(`${LABEL}\u306E ID \u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${id}`,usage);return id}var itemPath=(id,suffix="")=>`${SUPPORTS_PATH}/${encodeURIComponent(id)}${suffix}`;function attachments(input,usage){const raws=repeatedValues(input,ATTACH_FLAG.name);if(raws.length>MAX_ATTACHMENTS){throw new UsageError(`--attach \u306F ${String(MAX_ATTACHMENTS)} \u4EF6\u307E\u3067\u3067\u3059\uFF08${String(
16
+ raws.length)} \u4EF6\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\uFF09`,usage)}return raws.map(raw=>{const{file,size}=inspectLocalFile(raw,ATTACH_FLAG.name,usage);const name=path.basename(file);return{file,name,size,contentType:contentTypeFor(name)}})}function uploadUrlPlan(local){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:local.name,content_type:local.contentType,file_size:local.size,source:SOURCE}}}async function uploadAll(files,ctx,ids){await checkUploadQuota(
17
+ ctx,files.reduce((sum,local)=>sum+local.size,0));for(const local of files){const{id,uploadUrl}=issued(await ctx.send(uploadUrlPlan(local)));const bytes=new Uint8Array(fs.readFileSync(local.file));if(bytes.byteLength!==local.size){throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${String(local.size)} \u2192 ${String(bytes.byteLength)} \u30D0\u30A4\u30C8\uFF09: ${local.file}`)}await ctx.
18
+ putSigned(uploadUrl,bytes,local.contentType);ids.push(id)}}function sendWithAttachments(bodyPlan,usage){return async(input,ctx)=>{const files=attachments(input,usage);const main=bodyPlan(input);if(files.length===0)return ctx.send(main);const ids=[];try{await uploadAll(files,ctx,ids);return await ctx.send({...main,body:{...main.body,attachment_file_ids:ids}})}catch(err){if(ids.length>0){ctx.warn(`\u6DFB\u4ED8 ${ids.join(", ")} \u306F\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u307E\u3067\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001${LABEL}\
19
+ \u306E\u9001\u4FE1\u307E\u3067\u306F\u5B8C\u4E86\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${LABEL}\u306F\u4F5C\u3089\u308C\u3066\u3044\u307E\u305B\u3093\uFF09\u3002
20
20
  \u672A\u78BA\u5B9A\u306E\u6DFB\u4ED8\u306F\u30B5\u30FC\u30D0\u304C\u4E00\u5B9A\u6642\u9593\uFF08\u7F72\u540DURL\u306E\u6709\u52B9\u671F\u9650\uFF0B1\u6642\u9593\uFF09\u5F8C\u306B\u81EA\u52D5\u3067\u524A\u9664\u3057\u307E\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}throw err}}}function firstPlan(bodyPlan,usage){return input=>{const first=attachments(input,usage)[0];return first===void 0?bodyPlan(input):uploadUrlPlan(first)}}function attachNotes(bodyPlan,usage){
21
21
  return input=>{const files=attachments(input,usage);if(files.length===0)return[];const main=bodyPlan(input);const body={...main.body,attachment_file_ids:files.map((_,i)=>`<\u6DFB\u4ED8${String(i+1)}\u306E ID>`)};return[`\u5B9F\u884C\u6642\u306F\u6DFB\u4ED8 ${String(files.length)} \u4EF6\uFF08${files.map(f=>`${f.name} ${String(f.size)} \u30D0\u30A4\u30C8`).join(" / ")}\uFF09\u3092\u3001\u5408\u8A08\u306E\u5BB9\u91CF\u691C\u67FB\u306E\u3042\u3068\u30011\u4EF6\u305A\u3064\u767A\u884C\uFF08\u8868\u793A\u3057\u305F\u30EA\u30AF\u30A8\u30B9\u30C8\uFF09\u2192 \u7F72\u540DURL\u3078 PUT \u3057\u307E\u3059\u3002`,
22
22
  `\u305D\u306E\u3042\u3068 ${main.method} ${main.path} \u3092\u6B21\u306E\u5185\u5BB9\u3067\u9001\u308A\u307E\u3059: ${JSON.stringify(body)}`]}}var LIST_USAGE="twp support list [--status <\u72B6\u614B>]";var GET_USAGE="twp support get <ID>";var CREATE_USAGE="twp support create --category <\u540D\u524D|ID> --subject <\u4EF6\u540D> (--body <\u672C\u6587> | --body-file <\u30D1\u30B9>) [--attach <\u30D1\u30B9>]\u2026";var COMMENT_USAGE="twp support comment create <ID> (--body <\u672C\u6587> | --body-file <\u30D1\u30B9>)\
@@ -1,9 +1,18 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-5KJ5OIKI.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-5KAWCLYN.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-3WPHZXST.js";import"./chunk-XG2JN66A.js";
4
- import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-AITUAHWK.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-GHE6X45G.js";
3
+ import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-WTYIFLVB.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-O52RKZCC.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-3WPHZXST.js";
4
+ import"./chunk-XG2JN66A.js";import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-AITUAHWK.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-GHE6X45G.js";
5
5
  import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";
6
- import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
6
+ import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PRIVATE_UNSUPPORTED=[{flag:"--assignee",clearToken:"assignee",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306F\u5E38\u306B\u81EA\u5206\u306E\u3082\u306E\u306A\u306E\u3067\u3001\u30B5\u30FC\u30D0\u5074\u306B\u62C5\u5F53\u8005\u3092\u6307\u5B9A\u30FB\u7D5E\u308A\u8FBC\u307F\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002"},{flag:"--milestone",clearToken:"milestone",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306B\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u306E\u9805\u76EE\u304C\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"},
7
+ {flag:"--required-platforms",clearToken:"required-platforms",reason:"\u5FC5\u8981\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306F\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u304C\u62FE\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30BF\u30B9\u30AF\u3060\u3051\u306E\u9805\u76EE\u3067\u3001\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"}];function rejectPrivateUnsupportedFlags(input){const clearTokens=new Set(repeatedValues(input,
8
+ "--clear").map(token=>token.trim()));for(const entry of PRIVATE_UNSUPPORTED){if(input.flags.has(entry.flag)||repeatedValues(input,entry.flag).length>0){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u3067\u306F ${entry.flag} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${entry.reason}${entry.flag} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(clearTokens.has(entry.clearToken)){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\
9
+ \uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u3067\u306F --clear ${entry.clearToken} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${entry.reason}\u9001\u3063\u3066\u3082\u4F55\u3082\u8D77\u304D\u306A\u3044\u305F\u3081\u3001--clear ${entry.clearToken} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}}function privateTaskRef(ref){const{kind,value}=classifyTaskRef(ref);if(kind==="unknown"){throw new UsageError(`\u30BF\u30B9\u30AF\u306E\u6307\u5B9A\u304C\u300C\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\uFF08\u4F8B PRIVATE-22361\uFF09\u300D\u306B\u3082\u300CID\uFF08UUID / ULID\uFF09\u300D\u306B\u3082\u898B\u3048\u307E\u305B\u3093: ${ref}`,
10
+ `\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u4E00\u89A7\u306F twp task list --project ${PRIVATE_PROJECT_REF} \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}return{kind,value}}async function resolvePrivateTaskId(ctx,ref){const{kind,value}=privateTaskRef(ref);if(kind==="id")return value;const task=await ctx.resolver.privateTask(value);const id=task["id"];if(!isSafePathSegment(id)){throw new ApiResponseError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306E task.id \u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u305B\u3093\uFF08${String(
11
+ id).slice(0,60)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return id}async function resolvePrivateTaskLocation(ctx,ref){const{value}=privateTaskRef(ref);const task=await ctx.resolver.privateTask(value);const id=task["id"];const projectId=task["project_id"];if(!isSafePathSegment(id)){throw new ApiResponseError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306E task.id \u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u305B\u3093\uFF08${String(
12
+ id).slice(0,60)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(typeof projectId!=="string"||!isPrivateProjectId(projectId)||!isSafePathSegment(projectId.slice(PRIVATE_PROJECT_PREFIX.length))){throw new ApiResponseError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306E task.project_id \u304C\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${String(projectId).slice(0,60)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
13
+ return{projectId,taskId:id}}async function resolvePrivateStatusAndType(input,ctx,options){const out={};const status=nonEmpty(input.flags,"--status");if(status!==void 0){out["status_id"]=(await ctx.resolver.privateStatus(status)).id}else if(options.useDefaults){const ref=await ctx.resolver.privateDefaultStatus();out["status_id"]=ref.id;out["status_defaulted"]=ref.name}const type=nonEmpty(input.flags,"--type");if(type!==void 0){out["type_id"]=(await ctx.resolver.privateTaskType(type)).id}else if(options.
14
+ useDefaults){const ref=await ctx.resolver.privateDefaultTaskType();out["type_id"]=ref.id;out["type_defaulted"]=ref.name}return out}async function resolvePrivateExtras(input,ctx){const out={};const category=nonEmpty(input.flags,"--category");if(category!==void 0){out["category_id"]=(await ctx.resolver.privateTaskMaster("categories",category,"--category","\u30AB\u30C6\u30B4\u30EA")).id}const labels=repeatedValues(input,"--label");if(labels.length>0){const ids=[];for(const ref of labels){const label=await ctx.
15
+ resolver.privateTaskMaster("labels",ref,"--label","\u30E9\u30D9\u30EB");if(!ids.includes(label.id))ids.push(label.id)}out["label_ids"]=JSON.stringify(ids)}return out}var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
7
16
  row)?row:{};const id=typeof source["id"]==="string"?source["id"]:"";const answer=isRecord(source["answer_to"])?selectedKeyText(source["answer_to"]["selected_key"]):answersByQuestion.get(id)??null;const base=pick(row,LIST_COLUMNS);return{id:base["id"],created_at:base["created_at"],created_by_name:base["created_by_name"],comment_type:base["comment_type"],[QUESTION_COLUMN]:questionText(source["question"]),[ANSWER_COLUMN]:answer,content:base["content"]}})}function questionText(question){if(!isRecord(
8
17
  question))return null;const options=question["options"];if(!Array.isArray(options))return null;const parts=options.map(option=>{if(!isRecord(option))return null;const key=typeof option["key"]==="string"?option["key"]:null;if(key===null)return null;const label=typeof option["label"]==="string"?option["label"]:"";return label===""?key:`${key}=${label}`}).filter(part=>part!==null);return parts.length===0?null:parts.join(" / ")}function selectedKeyText(selected){if(typeof selected==="string"&&selected!==
9
18
  "")return selected;if(Array.isArray(selected)){const keys=selected.filter(key=>typeof key==="string"&&key!=="");if(keys.length>0)return keys.join(",")}return"(\u81EA\u7531\u8A18\u8FF0)"}var WRITE_COLUMNS=["id","task_id","created_at","updated_at","created_by_name","content"];var CONTENT_MAX_CHARS=1e4;var QUESTION_MAX_CHARS=2e3;var CONTENT_HTML_MAX_CHARS=1e5;var OPTION_KEY_MAX_CHARS=10;var OPTION_LABEL_MAX_CHARS=200;var OPTION_MIN=1;var OPTION_MAX=5;var SELECTED_KEY_MAX_CHARS=10;var listPaging=envelopePaging(
@@ -15,7 +24,7 @@ takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--body",summary:"\u672C\u
15
24
  \u7A7A\u30FB\u7A7A\u767D\u306E\u307F\u306E\u672C\u6587\u306F\u6295\u7A3F\u3057\u307E\u305B\u3093\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 2\uFF09\u3002\u4E0A\u9650\u306F ${CONTENT_MAX_CHARS} \u6587\u5B57\u3067\u3059\u3002`;var COMMENT_REF_FLAG={name:"--comment",summary:"\u30B3\u30E1\u30F3\u30C8\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\u3002\u4E21\u65B9\u6307\u5B9A\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8ID>"};var COMMENT_REF_HELP="\
16
25
  \u30B3\u30E1\u30F3\u30C8 ID \u306F twp task comment list <\u30AD\u30FC> \u306E id \u5217\u304B\u3089\u53D6\u308C\u307E\u3059\u3002\n\u5BFE\u8C61\u306E\u30BF\u30B9\u30AF\u306F --task <\u30AD\u30FC|ID> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B3\u30E1\u30F3\u30C8 ID \u3060\u3051\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\uFF09\u3002";async function prepareCommentTarget(input,ctx,usage){const commentId=singleRef(input,{flag:"--comment",label:"\u30B3\u30E1\u30F3\u30C8",usage});
17
26
  if(!isSafePathSegment(commentId)){throw new UsageError(`\u30B3\u30E1\u30F3\u30C8 ID \u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${commentId}`,"\u30B3\u30E1\u30F3\u30C8 ID \u306F twp task comment list <\u30AD\u30FC> \u306E id \u5217\u304B\u3089\u53D6\u308C\u307E\u3059\u3002")}const task=input.flags.get("--task");if(task===void 0||task.trim()===""){throw new UsageError("\u5BFE\u8C61\u306E\u30BF\u30B9\u30AF\u3092 --task <\u30AD\u30FC|ID> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
18
- usage)}const located=await resolveTaskLocation({...input,args:[]},ctx,task.trim());return withResolved(input,{...located,commentId:commentId.trim()})}var QUESTION_FLAGS=[{name:"--ask-question",summary:"\u30AF\u30EA\u30C3\u30AF\u3067\u56DE\u7B54\u3067\u304D\u308B\u8CEA\u554F\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\uFF08--question \u3068 --option \u304C\u8981\u308B\uFF09",takesValue:false},{name:"--question",summary:`\u8CEA\u554F\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E0A\u9650 ${QUESTION_MAX_CHARS}\
27
+ usage)}const located=await locateCommentTask({...input,args:[]},ctx,task.trim());return withResolved(input,{...located,commentId:commentId.trim()})}var QUESTION_FLAGS=[{name:"--ask-question",summary:"\u30AF\u30EA\u30C3\u30AF\u3067\u56DE\u7B54\u3067\u304D\u308B\u8CEA\u554F\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\uFF08--question \u3068 --option \u304C\u8981\u308B\uFF09",takesValue:false},{name:"--question",summary:`\u8CEA\u554F\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E0A\u9650 ${QUESTION_MAX_CHARS}\
19
28
  \u6587\u5B57\uFF09`,takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--question-file",summary:"\u8CEA\u554F\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--option",summary:`\u9078\u629E\u80A2 \u30AD\u30FC=\u8868\u793A\u6587\uFF08${OPTION_MIN}\u301C${OPTION_MAX}\u56DE\u3002\u30AD\u30FC\u306F${OPTION_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"\
20
29
  <\u30AD\u30FC=\u8868\u793A\u6587>",repeatable:true},{name:"--multi-select",summary:"\u8907\u6570\u306E\u9078\u629E\u80A2\u3092\u9078\u3079\u308B\u8CEA\u554F\u306B\u3059\u308B",takesValue:false},{name:"--no-free-text",summary:"\u81EA\u7531\u8A18\u8FF0\u3067\u306E\u56DE\u7B54\u3092\u8A31\u3055\u306A\u3044\uFF08\u65E2\u5B9A\u306F\u8A31\u3059\uFF09",takesValue:false}];var ANSWER_FLAGS=[{name:"--answer-to",summary:"\u56DE\u7B54\u3059\u308B\u8CEA\u554F\u30B3\u30E1\u30F3\u30C8\u306E ID\uFF08list \u306E id \u5217\uFF09",
21
30
  takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8ID>"},{name:"--select",summary:`\u9078\u3093\u3060\u9078\u629E\u80A2\u306E\u30AD\u30FC\uFF08\u8907\u6570\u9078\u629E\u306E\u8CEA\u554F\u306A\u3089\u8907\u6570\u56DE\u30FB${SELECTED_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30AD\u30FC>",repeatable:true}];var MENTION_FLAG={name:"--mention",summary:"\u30E1\u30F3\u30B7\u30E7\u30F3\u3059\u308B\u76F8\u624B\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\u30FB\u8907\u6570\u56DE\u53EF\uFF09",
@@ -41,18 +50,18 @@ seen.add(id)}return ids}async function resolveMentions(input,ctx,projectId){cons
41
50
  --content-html-file",label:"\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u672C\u6587",maxChars:CONTENT_HTML_MAX_CHARS,usage})}function rejectDoubleStdin(input){const stdinFlags=["--body-file","--question-file","--content-html-file"].filter(name=>input.flags.get(name)==="-");if(stdinFlags.length>1){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u3092\u8AAD\u3080\u30D5\u30E9\u30B0\u304C\u8907\u6570\u3042\u308A\u307E\u3059: ${stdinFlags.join(" / ")}`,"\u6A19\u6E96\u5165\u529B\u306F1\u3064\u3057\u304B\u8AAD\u3081\u307E\u305B\u3093\u3002\u3069\u308C\u304B1\u3064\u3060\u3051\u3092 - \u306B\u3057\u3066\u3001\u6B8B\u308A\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}
42
51
  function takeJson(input,key){const raw=input.resolved?.[key];if(raw===void 0||raw==="")return void 0;return JSON.parse(raw)}function takeList(input,key){const parsed=takeJson(input,key);if(parsed===void 0)return[];if(!Array.isArray(parsed))throw new Error(`\u5185\u90E8\u30A8\u30E9\u30FC: ${key} \u306E\u53D7\u3051\u6E21\u3057\u304C\u58CA\u308C\u3066\u3044\u307E\u3059`);return parsed}function optionalResolved(values){const out={};for(const[key,value]of Object.entries(values)){if(value===void 0)continue;
43
52
  out[key]=typeof value==="string"?value:JSON.stringify(value)}return out}function commonOptionalBody(input){const mentions=takeList(input,"mentioned_user_ids");const attachments=takeList(input,"attachment_ids");const contentHtml=input.resolved?.["content_html"];return{content_html:contentHtml??null,...mentions.length>0?{mentioned_user_ids:mentions}:{},...attachments.length>0?{attachment_ids:attachments}:{}}}function commentBody(input){const question=takeJson(input,"question");const answer=takeJson(
44
- input,"answer_to");return{content:requireResolved(input,"content"),...commonOptionalBody(input),...question!==void 0?{comment_type:"ask_question",question}:{},...answer!==void 0?{answer_to:answer}:{}}}function commentPath(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));const taskId=encodeURIComponent(requireResolved(input,"taskId"));return`/api/v2/projects/${projectId}/tasks/${taskId}/comments`}var taskCommentResource={name:"comment",summary:"\u30BF\u30B9\u30AF\u30B3\u30E1\u30F3\u30C8\u306E\u4E00\u89A7\u30FB\u6295\u7A3F\u30FB\u66F4\u65B0\u30FB\u524A\u9664",
45
- operations:[{name:"list",summary:"\u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task comment list <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--all]",description:`${TASK_REF_HELP}
53
+ input,"answer_to");return{content:requireResolved(input,"content"),...commonOptionalBody(input),...question!==void 0?{comment_type:"ask_question",question}:{},...answer!==void 0?{answer_to:answer}:{}}}async function locateCommentTask(input,ctx,ref){if(taskSurface(input,ref)==="private")return resolvePrivateTaskLocation(ctx,ref);return resolveTaskLocation(input,ctx,ref)}function commentPath(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));const taskId=encodeURIComponent(
54
+ requireResolved(input,"taskId"));return`/api/v2/projects/${projectId}/tasks/${taskId}/comments`}var taskCommentResource={name:"comment",summary:"\u30BF\u30B9\u30AF\u30B3\u30E1\u30F3\u30C8\u306E\u4E00\u89A7\u30FB\u6295\u7A3F\u30FB\u66F4\u65B0\u30FB\u524A\u9664",operations:[{name:"list",summary:"\u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task comment list <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--all]",description:`${TASK_REF_HELP}
46
55
 
47
56
  \u4F5C\u6210\u65E5\u6642\u306E\u6607\u9806\u3067\u8FD4\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u5074\u306E\u4E26\u3073\uFF09\u3002
48
57
 
49
- ${LIST_PAGING_HELP}`,flags:[...LIST_FLAGS,TASK_REF_FLAG,PROJECT_FLAG],paging:listPaging,async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task comment list help"});return withResolved(input,await resolveTaskLocation(input,ctx,ref))},plan(input){return{method:"GET",path:commentPath(input),query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}},summarize:body=>summarizeComments(listPaging.items(body)),raw:body=>listPaging.
58
+ ${LIST_PAGING_HELP}`,flags:[...LIST_FLAGS,TASK_REF_FLAG,PROJECT_FLAG],paging:listPaging,async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task comment list help"});return withResolved(input,await locateCommentTask(input,ctx,ref))},plan(input){return{method:"GET",path:commentPath(input),query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}},summarize:body=>summarizeComments(listPaging.items(body)),raw:body=>listPaging.
50
59
  items(body)},{name:"create",summary:"\u30BF\u30B9\u30AF\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u6295\u7A3F\u3059\u308B\uFF08\u8CEA\u554F\u30FB\u56DE\u7B54\u30FB\u30E1\u30F3\u30B7\u30E7\u30F3\u30FB\u6DFB\u4ED8\u7D10\u3065\u3051\u3092\u542B\u3080\uFF09",usage:"twp task comment create <\u30AD\u30FC|ID> --body-file <\u30D1\u30B9> [--ask-question --option <\u30AD\u30FC=\u8868\u793A\u6587>] [--mention <\u76F8\u624B>]",description:`${TASK_REF_HELP}
51
60
 
52
61
  ${BODY_HELP}
53
62
 
54
63
  ${QUESTION_HELP}`,flags:[...BODY_FLAGS,...QUESTION_FLAGS,...ANSWER_FLAGS,MENTION_FLAG,ATTACHMENT_FLAG,CONTENT_HTML_FLAG,TASK_REF_FLAG,PROJECT_FLAG],async prepare(input,ctx){const usage="twp task comment create help";const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage});rejectDoubleStdin(input);const content=await requireContent(input,usage);const contentHtml=await readContentHtml(input,usage);const question=await buildQuestion(input,usage);const answer=buildAnswer(input);if(question!==
55
- void 0&&answer!==void 0){throw new UsageError("--ask-question \u3068 --answer-to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u8CEA\u554F\u3068\u56DE\u7B54\u306F\u5225\u306E\u30B3\u30E1\u30F3\u30C8\u3067\u3059\u3002\u307E\u305A\u56DE\u7B54\u3092\u6295\u7A3F\u3057\u3001\u7D9A\u3051\u3066\u65B0\u3057\u3044\u8CEA\u554F\u3092\u6295\u7A3F\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const attachments=attachmentIds(input);const located=await resolveTaskLocation(input,ctx,ref);const mentions=await resolveMentions(
64
+ void 0&&answer!==void 0){throw new UsageError("--ask-question \u3068 --answer-to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u8CEA\u554F\u3068\u56DE\u7B54\u306F\u5225\u306E\u30B3\u30E1\u30F3\u30C8\u3067\u3059\u3002\u307E\u305A\u56DE\u7B54\u3092\u6295\u7A3F\u3057\u3001\u7D9A\u3051\u3066\u65B0\u3057\u3044\u8CEA\u554F\u3092\u6295\u7A3F\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const attachments=attachmentIds(input);const located=await locateCommentTask(input,ctx,ref);const mentions=await resolveMentions(
56
65
  input,ctx,located.projectId);return withResolved(input,{...located,content,...optionalResolved({content_html:contentHtml,question,answer_to:answer,...mentions.length>0?{mentioned_user_ids:mentions}:{},...attachments.length>0?{attachment_ids:attachments}:{}})})},plan:input=>({method:"POST",path:commentPath(input),body:commentBody(input)}),summarize:body=>pick(commentObject(body),WRITE_COLUMNS),raw:commentObject},{name:"update",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u672C\u6587\u3092\u66F8\u304D\u63DB\u3048\u308B",
57
66
  usage:"twp task comment update <\u30B3\u30E1\u30F3\u30C8ID> --task <\u30AD\u30FC|ID> --body-file <\u30D1\u30B9>",description:`${COMMENT_REF_HELP}
58
67
 
@@ -103,14 +112,7 @@ r-satisfied-status \u306E\u3069\u3061\u3089\u304B\u4E00\u65B9\u3092\u6307\u5B9A\
103
112
  requireResolved(input,"targetId"))}`,body:{satisfied_status_ids:satisfiedIds(input)??[]}}),summarize:body=>pick(linkObject(body),LINK_COLUMNS),raw:linkObject},{name:"delete",summary:"\u30BF\u30B9\u30AF\u306E\u30EA\u30F3\u30AF\u3092\u524A\u9664\u3059\u308B\uFF08\u4E21\u65B9\u5411\u3068\u3082\u6D88\u3048\u307E\u3059\uFF09",usage:DELETE_USAGE,description:`${LINK_HELP}
104
113
 
105
114
  \u524A\u9664\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\u76F8\u624B\u5074\u306E\u30EC\u30B3\u30FC\u30C9\u3082\u4E00\u7DD2\u306B\u6D88\u3048\u307E\u3059\u3002`,destructive:true,flags:[TASK_REF_FLAG,PROJECT_FLAG,TARGET_FLAG],async prepare(input,ctx){const source=await resolveSource(input,ctx,"twp task link delete help");const targetId=await resolveTarget(input,ctx,source.projectId,DELETE_USAGE);return withResolved(input,{...source,targetId})},plan:input=>({method:"DELETE",path:`${linkPath(
106
- input)}/${encodeURIComponent(requireResolved(input,"targetId"))}`}),summarize:body=>acknowledgement(body,"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u524A\u9664"),raw:body=>acknowledgement(body,"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u524A\u9664")}]};var PRIVATE_UNSUPPORTED=[{flag:"--assignee",clearToken:"assignee",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306F\u5E38\u306B\u81EA\u5206\u306E\u3082\u306E\u306A\u306E\u3067\u3001\u30B5\u30FC\u30D0\u5074\u306B\u62C5\u5F53\u8005\u3092\u6307\u5B9A\u30FB\u7D5E\u308A\u8FBC\u307F\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002"},{flag:"--milestone",clearToken:"milestone",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306B\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u306E\u9805\u76EE\u304C\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"},
107
- {flag:"--required-platforms",clearToken:"required-platforms",reason:"\u5FC5\u8981\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306F\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u304C\u62FE\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30BF\u30B9\u30AF\u3060\u3051\u306E\u9805\u76EE\u3067\u3001\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"}];function rejectPrivateUnsupportedFlags(input){const clearTokens=new Set(repeatedValues(input,
108
- "--clear").map(token=>token.trim()));for(const entry of PRIVATE_UNSUPPORTED){if(input.flags.has(entry.flag)||repeatedValues(input,entry.flag).length>0){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u3067\u306F ${entry.flag} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${entry.reason}${entry.flag} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(clearTokens.has(entry.clearToken)){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\
109
- \uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u3067\u306F --clear ${entry.clearToken} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${entry.reason}\u9001\u3063\u3066\u3082\u4F55\u3082\u8D77\u304D\u306A\u3044\u305F\u3081\u3001--clear ${entry.clearToken} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}}function privateTaskRef(ref){const{kind,value}=classifyTaskRef(ref);if(kind==="unknown"){throw new UsageError(`\u30BF\u30B9\u30AF\u306E\u6307\u5B9A\u304C\u300C\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\uFF08\u4F8B PRIVATE-22361\uFF09\u300D\u306B\u3082\u300CID\uFF08UUID / ULID\uFF09\u300D\u306B\u3082\u898B\u3048\u307E\u305B\u3093: ${ref}`,
110
- `\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u4E00\u89A7\u306F twp task list --project ${PRIVATE_PROJECT_REF} \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}return{kind,value}}async function resolvePrivateTaskId(ctx,ref){const{kind,value}=privateTaskRef(ref);if(kind==="id")return value;const task=await ctx.resolver.privateTask(value);const id=task["id"];if(!isSafePathSegment(id)){throw new ApiResponseError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306E task.id \u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u305B\u3093\uFF08${String(
111
- id).slice(0,60)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return id}async function resolvePrivateStatusAndType(input,ctx,options){const out={};const status=nonEmpty(input.flags,"--status");if(status!==void 0){out["status_id"]=(await ctx.resolver.privateStatus(status)).id}else if(options.useDefaults){const ref=await ctx.resolver.privateDefaultStatus();out["status_id"]=ref.id;out["status_defaulted"]=ref.name}const type=nonEmpty(input.flags,"--type");
112
- if(type!==void 0){out["type_id"]=(await ctx.resolver.privateTaskType(type)).id}else if(options.useDefaults){const ref=await ctx.resolver.privateDefaultTaskType();out["type_id"]=ref.id;out["type_defaulted"]=ref.name}return out}async function resolvePrivateExtras(input,ctx){const out={};const category=nonEmpty(input.flags,"--category");if(category!==void 0){out["category_id"]=(await ctx.resolver.privateTaskMaster("categories",category,"--category","\u30AB\u30C6\u30B4\u30EA")).id}const labels=repeatedValues(
113
- input,"--label");if(labels.length>0){const ids=[];for(const ref of labels){const label=await ctx.resolver.privateTaskMaster("labels",ref,"--label","\u30E9\u30D9\u30EB");if(!ids.includes(label.id))ids.push(label.id)}out["label_ids"]=JSON.stringify(ids)}return out}var LABEL=TASK_MASTERS.status.label;var COLUMNS=["id","name","code","color","is_default","is_completed","sort_order","response_message"];var RESPONSE_MESSAGE_MAX_CHARS=500;var RESPONSE_MESSAGE_FLAG={name:"--response-message",summary:`\u8A2D\u5B9A\u6642\u5FDC\u7B54\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u3053\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u5909\u3048\u305F\u4EBA\u3078\u8FD4\u3059\u6848\u5185\u30FB${RESPONSE_MESSAGE_MAX_CHARS}\u5B57\u307E\u3067\u3002"" \u3067\u89E3\u9664\uFF09`,takesValue:true,
115
+ input)}/${encodeURIComponent(requireResolved(input,"targetId"))}`}),summarize:body=>acknowledgement(body,"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u524A\u9664"),raw:body=>acknowledgement(body,"\u30BF\u30B9\u30AF\u30EA\u30F3\u30AF\u524A\u9664")}]};var LABEL=TASK_MASTERS.status.label;var COLUMNS=["id","name","code","color","is_default","is_completed","sort_order","response_message"];var RESPONSE_MESSAGE_MAX_CHARS=500;var RESPONSE_MESSAGE_FLAG={name:"--response-message",summary:`\u8A2D\u5B9A\u6642\u5FDC\u7B54\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u3053\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u5909\u3048\u305F\u4EBA\u3078\u8FD4\u3059\u6848\u5185\u30FB${RESPONSE_MESSAGE_MAX_CHARS}\u5B57\u307E\u3067\u3002"" \u3067\u89E3\u9664\uFF09`,takesValue:true,
114
116
  placeholder:"<\u6848\u5185\u6587>"};function responseMessageBody(input){const raw=input.flags.get(RESPONSE_MESSAGE_FLAG.name);if(raw===void 0)return{};if(raw.trim()==="")return{response_message:null};const count=[...raw].length;if(count>RESPONSE_MESSAGE_MAX_CHARS){throw new UsageError(`\u8A2D\u5B9A\u6642\u5FDC\u7B54\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${RESPONSE_MESSAGE_MAX_CHARS} \u6587\u5B57\uFF09`,`${RESPONSE_MESSAGE_FLAG.
115
117
  name} \u3092 ${RESPONSE_MESSAGE_MAX_CHARS} \u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{response_message:raw}}function writeBody(input){return{...fieldBody(input,FIELDS),...responseMessageBody(input)}}var RESPONSE_MESSAGE_HELP='--response-message \u306F\u3001\u30BF\u30B9\u30AF\u3092\u3053\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3078\u5909\u3048\u305F\u4EBA\u306B\u8FD4\u3059\u6848\u5185\u6587\u3067\u3059\uFF08\u753B\u9762\u3067\u306F\u30C8\u30FC\u30B9\u30C8\u3001\ntwp task update\u30FBMCP \u3067\u306F\u5FDC\u7B54\u306E\u5148\u982D\u306B\u51FA\u307E\u3059\uFF09\u3002"" \u3092\u6E21\u3059\u3068\u89E3\u9664\u3057\u307E\u3059\u3002';
116
118
  var FIELDS=[{kind:"text",flag:"--name",key:"name",label:"\u30B9\u30C6\u30FC\u30BF\u30B9\u540D",maxChars:255,summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u540D"},{kind:"text",flag:"--color",key:"color",label:"\u8272",maxChars:50,summary:"\u8868\u793A\u8272\uFF08\u4F8B: #6b7280\uFF09"},{kind:"boolean",flag:"--is-completed",key:"is_completed",summary:"\u5B8C\u4E86\u6271\u3044\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u304B\uFF08true / false\uFF09"},{kind:"boolean",flag:"--is-default",key:"is_default",summary:"\
@@ -157,19 +159,20 @@ var PRIVATE_HELP=`\u500B\u4EBA\u30BF\u30B9\u30AF\uFF08\u30D7\u30ED\u30B8\u30A7\u
157
159
  twp task list --project ${PRIVATE_PROJECT_REF}
158
160
  \u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30FC\u306F PRIVATE-<\u756A\u53F7> \u3067\u3059\u3002\u62C5\u5F53\u8005\u306E\u6307\u5B9A\u30FB\u7D5E\u308A\u8FBC\u307F\uFF08--assignee\uFF09\u306F\u3067\u304D\u307E\u305B\u3093
159
161
  \uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\u306F\u5E38\u306B\u81EA\u5206\u306E\u3082\u306E\u306A\u306E\u3067\u3001\u30B5\u30FC\u30D0\u5074\u306B\u62C5\u5F53\u8005\u306E\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
160
- \u30B3\u30E1\u30F3\u30C8\uFF08twp task comment\uFF09\u306F\u500B\u4EBA\u30BF\u30B9\u30AF\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002TWP \u306E\u753B\u9762\u304B\u3089\u64CD\u4F5C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;var PRIVATE_SURFACE2="private";var TASK_MANHOURS_USAGE="twp task manhours <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";function isPrivatePlan2(input){return input.resolved?.["surface"]===PRIVATE_SURFACE2}function taskObject(body){
161
- const task=isRecord(body)?body["task"]:void 0;if(!isRecord(task)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u8A73\u7D30\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return task}function withPrerequisiteSummary(task){const out=pick(task,GET_COLUMNS);if(!isRecord(task)||!("prerequisites_satisfied"in task))return out;const satisfied=task["prerequisites_satisfied"];out["prerequisites_satis\
162
- fied"]=satisfied===true?"\u5145\u8DB3":satisfied===false?"\u672A\u5145\u8DB3":"\u5224\u5B9A\u4E0D\u80FD";const prerequisites=task["prerequisites"];out["prerequisites"]=Array.isArray(prerequisites)?prerequisites.length===0?"\u306A\u3057":prerequisites.map(describePrerequisite).join(", "):"\u5224\u5B9A\u4E0D\u80FD";return out}function describePrerequisite(row){const p=isRecord(row)?row:{};if(p["exists"]===false)return`${String(p["task_id"]??"?")}\uFF08\u524A\u9664\u6E08\u307F\u30FB\u5145\u8DB3\u6271\u3044\uFF09`;
163
- const name=typeof p["task_key"]==="string"?p["task_key"]:String(p["task_id"]??"?");return`${name}\uFF08${String(p["status_id"]??"?")}\u30FB${p["satisfied"]===true?"\u5145\u8DB3":"\u672A\u5145\u8DB3"}\uFF09`}function subtaskItems(body){const items=isRecord(body)?body["items"]:void 0;if(!Array.isArray(items)){throw new ApiResponseError("\u30B5\u30D6\u30BF\u30B9\u30AF\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
164
- return items}var SUBJECT_MAX_CHARS=500;var ESTIMATED_HOURS_MAX=9999;var PROGRESS_RANGE={min:0,max:100};var DESCRIPTION_MAX_CHARS=1e4;var FIELD_FLAGS=[{name:"--subject",summary:"\u4EF6\u540D",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--description-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description-file",summary:"\u672C\u6587\u3092\
165
- \u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044",takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--type",summary:"\u7A2E\u5225\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},
166
- {name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\uFF09",takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},{name:"--due-date",summary:"\u671F\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--start-date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--priority",summary:"\u512A\u5148\u5EA6\uFF081: \u9AD8 / 2: \u4E2D / 3: \u4F4E\uFF09",takesValue:true,placeholder:"\
167
- <1|2|3>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--milestone",summary:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--label",summary:"\u30E9\u30D9\u30EB\uFF08\u540D\u524D\u30FBID\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",
168
- takesValue:true,placeholder:"<\u540D\u524D|ID>",repeatable:true},{name:"--estimated-hours",summary:"\u898B\u7A4D\u5DE5\u6570\uFF08\u6642\u9593\u30FB0\u301C9999\u30FB\u5C0F\u6570\u53EF\uFF09",takesValue:true,placeholder:"<\u6570\u5024>"},{name:"--progress",summary:"\u9032\u6357\u7387\uFF080\u301C100 \u306E\u6574\u6570\u30FB%\uFF09",takesValue:true,placeholder:"<0\u301C100>"},{name:"--custom-field",summary:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08<\u30D5\u30A3\u30FC\u30EB\u30C9\u540D>=<\u5024>\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059",
169
- takesValue:true,placeholder:"<\u540D\u524D>=<\u5024>",repeatable:true},{name:"--parent",summary:"\u89AA\u30BF\u30B9\u30AF\uFF08\u30AD\u30FC\u30FBID\uFF09\u3002\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u306A\u308A\u307E\u3059",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--required-platforms",summary:"\u5B9F\u884C\u3067\u304D\u308B\u6A5F\u4F53\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\uFF08mac / windows / linux\uFF09\u3002\u8907\u6570\u6307\u5B9A\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u53EF\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",
170
- takesValue:true,placeholder:"<mac|windows|linux>",repeatable:true}];var CLEAR_FLAG={name:"--clear",summary:"\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08\u8907\u6570\u6307\u5B9A\u53EF\u30FB\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var CLEARABLE=[{token:"assignee",flags:["--assignee"],key:"assignee_id"},{token:"due-date",flags:["--due-date"],key:"due_date"},{token:"start-date",
171
- flags:["--start-date"],key:"start_date"},{token:"priority",flags:["--priority"],key:"priority"},{token:"category",flags:["--category"],key:"category_id"},{token:"milestone",flags:["--milestone"],key:"milestone_id"},{token:"label",flags:["--label"],key:"label_ids",empty:[]},{token:"estimated-hours",flags:["--estimated-hours"],key:"estimated_hours"},{token:"progress",flags:["--progress"],key:"progress"},{token:"description",flags:["--description","--description-file"],key:"description"},{token:"pa\
172
- rent",flags:["--parent"],key:"parent_task_id"},{token:"required-platforms",flags:["--required-platforms"],key:"required_platforms",empty:[]}];var CLEAR_HELP=`--clear \u306F\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u7A7A\u306B\u3057\u307E\u3059\uFF08\u4F8B: --clear assignee --clear due-date\uFF09\u3002
162
+ \u30B3\u30E1\u30F3\u30C8\uFF08twp task comment\uFF09\u3082 --project ${PRIVATE_PROJECT_REF} \u3067\u4E00\u89A7\u30FB\u6295\u7A3F\u30FB\u8CEA\u554F\u30FB\u56DE\u7B54\u3067\u304D\u307E\u3059\u3002
163
+ twp task comment list PRIVATE-<\u756A\u53F7> --project ${PRIVATE_PROJECT_REF}`;var PRIVATE_SURFACE2="private";var TASK_MANHOURS_USAGE="twp task manhours <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";function isPrivatePlan2(input){return input.resolved?.["surface"]===PRIVATE_SURFACE2}function taskObject(body){const task=isRecord(body)?body["task"]:void 0;if(!isRecord(task)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u8A73\u7D30\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
164
+ return task}function withPrerequisiteSummary(task){const out=pick(task,GET_COLUMNS);if(!isRecord(task)||!("prerequisites_satisfied"in task))return out;const satisfied=task["prerequisites_satisfied"];out["prerequisites_satisfied"]=satisfied===true?"\u5145\u8DB3":satisfied===false?"\u672A\u5145\u8DB3":"\u5224\u5B9A\u4E0D\u80FD";const prerequisites=task["prerequisites"];out["prerequisites"]=Array.isArray(prerequisites)?prerequisites.length===0?"\u306A\u3057":prerequisites.map(describePrerequisite).
165
+ join(", "):"\u5224\u5B9A\u4E0D\u80FD";return out}function describePrerequisite(row){const p=isRecord(row)?row:{};if(p["exists"]===false)return`${String(p["task_id"]??"?")}\uFF08\u524A\u9664\u6E08\u307F\u30FB\u5145\u8DB3\u6271\u3044\uFF09`;const name=typeof p["task_key"]==="string"?p["task_key"]:String(p["task_id"]??"?");return`${name}\uFF08${String(p["status_id"]??"?")}\u30FB${p["satisfied"]===true?"\u5145\u8DB3":"\u672A\u5145\u8DB3"}\uFF09`}function subtaskItems(body){const items=isRecord(body)?
166
+ body["items"]:void 0;if(!Array.isArray(items)){throw new ApiResponseError("\u30B5\u30D6\u30BF\u30B9\u30AF\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return items}var SUBJECT_MAX_CHARS=500;var ESTIMATED_HOURS_MAX=9999;var PROGRESS_RANGE={min:0,max:100};var DESCRIPTION_MAX_CHARS=1e4;var FIELD_FLAGS=[{name:"--subject",summary:"\u4EF6\u540D",takesValue:true,placeholder:"\
167
+ <\u6587\u5B57\u5217>"},{name:"--description",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--description-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044",takesValue:true,placeholder:"<\u30D1\u30B9|->"},
168
+ {name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--type",summary:"\u7A2E\u5225\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\uFF09",takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},{name:"--due-date",summary:"\u671F\u65E5\uFF08YYYY-MM-\
169
+ DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--start-date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--priority",summary:"\u512A\u5148\u5EA6\uFF081: \u9AD8 / 2: \u4E2D / 3: \u4F4E\uFF09",takesValue:true,placeholder:"<1|2|3>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--milestone",summary:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\uFF08\u540D\u524D\u30FBID\uFF09",
170
+ takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--label",summary:"\u30E9\u30D9\u30EB\uFF08\u540D\u524D\u30FBID\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>",repeatable:true},{name:"--estimated-hours",summary:"\u898B\u7A4D\u5DE5\u6570\uFF08\u6642\u9593\u30FB0\u301C9999\u30FB\u5C0F\u6570\u53EF\uFF09",takesValue:true,placeholder:"<\u6570\u5024>"},
171
+ {name:"--progress",summary:"\u9032\u6357\u7387\uFF080\u301C100 \u306E\u6574\u6570\u30FB%\uFF09",takesValue:true,placeholder:"<0\u301C100>"},{name:"--custom-field",summary:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08<\u30D5\u30A3\u30FC\u30EB\u30C9\u540D>=<\u5024>\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059",takesValue:true,placeholder:"<\u540D\u524D>=<\u5024>",repeatable:true},{name:"--parent",summary:"\u89AA\u30BF\u30B9\u30AF\uFF08\u30AD\u30FC\u30FBID\uFF09\u3002\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u306A\u308A\u307E\u3059",
172
+ takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--required-platforms",summary:"\u5B9F\u884C\u3067\u304D\u308B\u6A5F\u4F53\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\uFF08mac / windows / linux\uFF09\u3002\u8907\u6570\u6307\u5B9A\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u53EF\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<mac|windows|linux>",repeatable:true}];var CLEAR_FLAG={name:"--clear",summary:"\
173
+ \u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08\u8907\u6570\u6307\u5B9A\u53EF\u30FB\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var CLEARABLE=[{token:"assignee",flags:["--assignee"],key:"assignee_id"},{token:"due-date",flags:["--due-date"],key:"due_date"},{token:"start-date",flags:["--start-date"],key:"start_date"},{token:"priority",flags:["--priority"],key:"priority"},{token:"cate\
174
+ gory",flags:["--category"],key:"category_id"},{token:"milestone",flags:["--milestone"],key:"milestone_id"},{token:"label",flags:["--label"],key:"label_ids",empty:[]},{token:"estimated-hours",flags:["--estimated-hours"],key:"estimated_hours"},{token:"progress",flags:["--progress"],key:"progress"},{token:"description",flags:["--description","--description-file"],key:"description"},{token:"parent",flags:["--parent"],key:"parent_task_id"},{token:"required-platforms",flags:["--required-platforms"],key:"\
175
+ required_platforms",empty:[]}];var CLEAR_HELP=`--clear \u306F\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u7A7A\u306B\u3057\u307E\u3059\uFF08\u4F8B: --clear assignee --clear due-date\uFF09\u3002
173
176
  \u6307\u5B9A\u3067\u304D\u308B\u9805\u76EE: ${CLEARABLE.map(entry=>entry.token).join(" / ")}
174
177
  \u4EF6\u540D\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u7A2E\u5225\u306F\u30B5\u30FC\u30D0\u5074\u3067\u5FC5\u9808\u306E\u305F\u3081\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002
175
178
  \u540C\u3058\u9805\u76EE\u3092\u5024\u3068 --clear \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3059\u308B\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\uFF08\u3069\u3061\u3089\u304C\u52B9\u3044\u305F\u306E\u304B\u5206\u304B\u3089\u306A\u3044\u305F\u3081\uFF09\u3002`;function clearTargets(input){const tokens=repeatedValues(input,CLEAR_FLAG.name).map(token=>token.trim());const out=[];for(const token of tokens){const entry=CLEARABLE.find(candidate=>candidate.token===token);if(entry===void 0){throw new UsageError(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.77.0",
3
+ "version": "0.77.2",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {