@tocca-systems/twp-cli 0.34.0 → 0.35.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 (49) hide show
  1. package/CHANGELOG.public.md +6 -0
  2. package/README.md +47 -1
  3. package/dist/{ai-dispatch-MFVPYNZ5.js → ai-dispatch-LY6OVZC3.js} +1 -1
  4. package/dist/{api-command-W77HSRUC.js → api-command-AHVUUK3I.js} +3 -3
  5. package/dist/{app-IVIYIONG.js → app-JPJHLNTW.js} +4 -4
  6. package/dist/{auto-update-worker-Y44TD6FD.js → auto-update-worker-73HBKKVT.js} +1 -1
  7. package/dist/{backlog-OQ5JJ6F6.js → backlog-NS2V3WKG.js} +1 -1
  8. package/dist/chunk-523KROGI.js +3 -0
  9. package/dist/{chunk-5Q2CH4E7.js → chunk-6NEQ6PZZ.js} +1 -1
  10. package/dist/{chunk-PWXXCLVZ.js → chunk-77DFFCZF.js} +1 -1
  11. package/dist/chunk-7CQKNDAE.js +20 -0
  12. package/dist/{company-E3VKXS75.js → chunk-A2MX47LP.js} +3 -25
  13. package/dist/{chunk-YVAN3H5W.js → chunk-BUZKNZ45.js} +3 -3
  14. package/dist/{chunk-REPGG75N.js → chunk-DU42VCON.js} +1 -1
  15. package/dist/{chunk-226G6ONZ.js → chunk-FII7YYYZ.js} +1 -1
  16. package/dist/chunk-IWIGE7U4.js +6 -0
  17. package/dist/{chunk-OK4ITT5Y.js → chunk-N4ZW4IVU.js} +2 -2
  18. package/dist/{chunk-M364RN3O.js → chunk-U6RXDDAB.js} +7 -7
  19. package/dist/{chunk-P3RQICAS.js → chunk-VQMR5UTD.js} +1 -1
  20. package/dist/chunk-WQRWQ7IM.js +94 -0
  21. package/dist/{chunk-KRTG6HSA.js → chunk-Z7GNYWCU.js} +1 -1
  22. package/dist/cli.js +41 -9
  23. package/dist/{commands-45VQS3LX.js → commands-M4B3MDUA.js} +3 -3
  24. package/dist/{commands-7ZRA2BHR.js → commands-RQQN7TXW.js} +2 -2
  25. package/dist/company-4O3HA6A2.js +26 -0
  26. package/dist/{completion-EFIZU6YO.js → completion-DGJH42YO.js} +1 -1
  27. package/dist/{department-G4H75GGM.js → department-XRIBRAQE.js} +1 -1
  28. package/dist/{inquiry-4SUKNVMY.js → inquiry-LOH3OKG3.js} +1 -1
  29. package/dist/{job-title-T3P3625A.js → job-title-EMRVK4RO.js} +1 -1
  30. package/dist/{leave-7MXKEOQ2.js → leave-BGDVEHQ7.js} +1 -1
  31. package/dist/{media-TZWSBMCP.js → media-OQRJYMJT.js} +1 -1
  32. package/dist/{notification-CA2LOXPS.js → notification-4DFO464P.js} +1 -1
  33. package/dist/{oneshot-Y7P6SMY2.js → oneshot-QLTXLUSM.js} +1 -1
  34. package/dist/{position-GDOY4TFK.js → position-3NRFWS3E.js} +1 -1
  35. package/dist/prospect-7L2UUNY3.js +107 -0
  36. package/dist/{registry-JYFK6PU7.js → registry-XL6Z2QCB.js} +1 -1
  37. package/dist/{render-K45EOLHX.js → render-W523YEYF.js} +1 -1
  38. package/dist/report-YIOEMKUU.js +73 -0
  39. package/dist/{run-MH6LOFQS.js → run-N5EIN5WQ.js} +2 -2
  40. package/dist/{sales-W2DV7FWL.js → sales-7DTKXDMD.js} +1 -1
  41. package/dist/{task-75VRLRYO.js → task-CBJOR2GF.js} +2 -2
  42. package/dist/{update-MAQJ6VWV.js → update-3D2CMAIV.js} +1 -1
  43. package/dist/{user-VRIXQF5Q.js → user-TNGMHVOJ.js} +1 -1
  44. package/dist/{workflow-OFA6XJOV.js → workflow-XDGT7L6G.js} +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-4OKUCLIC.js +0 -3
  47. package/dist/chunk-CKGB7CLM.js +0 -6
  48. package/dist/chunk-FTYJZFEK.js +0 -10
  49. package/dist/chunk-RM4ECBIO.js +0 -80
@@ -0,0 +1,107 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{CUSTOMER_LICENSE,INTERACTION_FIELDS,INTERACTION_TYPES,dataOf,levelForbidden}from"./chunk-A2MX47LP.js";import"./chunk-I6DWJXPC.js";import"./chunk-Z7GNYWCU.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-FII7YYYZ.js";import"./chunk-UDPJ2IGK.js";import{PROSPECTS_PATH}from"./chunk-WQRWQ7IM.js";import{MultipartBody}from"./chunk-7CQKNDAE.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";
4
+ import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";
5
+ import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var VIEW_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u898B\u308B\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var EDIT_FORBIDDEN=levelForbidden(CUSTOMER_LICENSE,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u767B\u9332\u30FB\u66F4\u65B0\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
6
+ function adminForbidden(what){return levelForbidden(CUSTOMER_LICENSE,`${what}\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\uFF08\u300C\u7DE8\u96C6\u8005\u300D\u3067\u306F\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}var ASSIGNABLE_STATUSES=["new","approaching","responded","appointment","reject\
7
+ ed","on_hold"];var FILTER_STATUSES=[...ASSIGNABLE_STATUSES,"promoted"];var NEXT_ACTION_FILTERS=["overdue","today","this_week"];var STATUS_HELP="new=\u672A\u30A2\u30D7\u30ED\u30FC\u30C1 / approaching=\u30A2\u30D7\u30ED\u30FC\u30C1\u4E2D / responded=\u53CD\u5FDC\u3042\u308A / appointment=\u30A2\u30DD\u7372\u5F97 / rejected=\u62D2\u5426\u30FB\u898B\u8FBC\u307F\u306A\u3057 / on_hold=\u4FDD\u7559";var ASSIGNEE_FIELD={kind:"ref",flag:"--assignee",key:"assignee_user_id",summary:"\u55B6\u696D\u62C5\u5F53\uFF08\u30E6\u30FC\u30B6\u30FC\u3002ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\
8
+ \u756A\u53F7\u30FB\u6C0F\u540D\uFF09",placeholder:"<\u30E6\u30FC\u30B6\u30FC>",clearFlag:"--no-assignee",clearSummary:"\u55B6\u696D\u62C5\u5F53\u3092\u5916\u3059",resolve:(ctx,ref,flag)=>ctx.resolver.user(ref,flag)};var PROSPECT_FIELDS=[{kind:"text",flag:"--name",key:"company_name",label:"\u4F01\u696D\u540D",maxChars:255,summary:"\u4F01\u696D\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"text",flag:"--kana",key:"company_name_kana",label:"\u4F01\u696D\u540D\u30AB\u30CA",maxChars:255,summary:"\
9
+ \u4F01\u696D\u540D\u306E\u30AB\u30CA"},{kind:"text",flag:"--industry",key:"industry",label:"\u696D\u7A2E",maxChars:255,summary:"\u696D\u7A2E"},{kind:"text",flag:"--employee-scale",key:"employee_scale",label:"\u5F93\u696D\u54E1\u898F\u6A21",maxChars:255,summary:"\u5F93\u696D\u54E1\u898F\u6A21"},{kind:"text",flag:"--website",key:"website",label:"Web \u30B5\u30A4\u30C8",maxChars:500,summary:"Web \u30B5\u30A4\u30C8\u306E URL\uFF08http:// \u304B https://\uFF09"},{kind:"text",flag:"--postal-code",key:"\
10
+ postal_code",label:"\u90F5\u4FBF\u756A\u53F7",maxChars:20,summary:"\u90F5\u4FBF\u756A\u53F7"},{kind:"text",flag:"--address",key:"address",label:"\u4F4F\u6240",maxChars:500,summary:"\u4F4F\u6240"},{kind:"text",flag:"--tel",key:"tel",label:"\u96FB\u8A71\u756A\u53F7",maxChars:50,summary:"\u4EE3\u8868\u96FB\u8A71\u756A\u53F7"},{kind:"text",flag:"--fax",key:"fax",label:"FAX",maxChars:50,summary:"FAX \u756A\u53F7"},{kind:"text",flag:"--description",key:"description",label:"\u4E8B\u696D\u5185\u5BB9\u30E1\u30E2",
11
+ maxChars:1e4,summary:"\u4E8B\u696D\u5185\u5BB9\u30E1\u30E2"},{kind:"text",flag:"--contact-department",key:"contact_department",label:"\u90E8\u7F72",maxChars:255,summary:"\u9023\u7D61\u5148\u306E\u90E8\u7F72"},{kind:"text",flag:"--contact-name",key:"contact_name",label:"\u62C5\u5F53\u8005\u540D",maxChars:255,summary:"\u9023\u7D61\u5148\u306E\u62C5\u5F53\u8005\u540D"},{kind:"text",flag:"--contact-position",key:"contact_position",label:"\u5F79\u8077",maxChars:255,summary:"\u9023\u7D61\u5148\u306E\u5F79\u8077"},
12
+ {kind:"text",flag:"--contact-email",key:"contact_email",label:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",maxChars:255,summary:"\u9023\u7D61\u5148\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9"},{kind:"text",flag:"--contact-tel",key:"contact_tel",label:"\u76F4\u901A\u30FB\u643A\u5E2F",maxChars:50,summary:"\u9023\u7D61\u5148\u306E\u76F4\u901A\u30FB\u643A\u5E2F\u96FB\u8A71"},{kind:"text",flag:"--contact-form-url",key:"contact_form_url",label:"\u30D5\u30A9\u30FC\u30E0\u55B6\u696DURL",maxChars:500,
13
+ summary:"\u554F\u3044\u5408\u308F\u305B\u30D5\u30A9\u30FC\u30E0\u306E URL"},{kind:"enum",flag:"--status",key:"status",values:ASSIGNABLE_STATUSES,summary:`\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08${STATUS_HELP}\uFF09`},ASSIGNEE_FIELD,{kind:"text",flag:"--source",key:"source",label:"\u30EA\u30B9\u30C8\u53D6\u5F97\u5143",maxChars:255,summary:"\u30EA\u30B9\u30C8\u53D6\u5F97\u5143"},{kind:"date",flag:"--next-action-date",key:"next_action_date",summary:"\u6B21\u56DE\u30A2\u30AF\u30B7\u30E7\u30F3\u4E88\u5B9A\u65E5\uFF08none \u3067\u6D88\u3059\uFF09"},
14
+ {kind:"text",flag:"--notes",key:"notes",label:"\u30E1\u30E2",maxChars:1e4,summary:"\u30E1\u30E2"}];var TAG_FLAG={name:"--tag",summary:"\u30BF\u30B0\uFF08\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\u30FB1\u306450\u6587\u5B57\u307E\u3067\u3002update \u3067\u306F\u6307\u5B9A\u3057\u305F\u7D44\u306B\u7F6E\u304D\u63DB\u308F\u308B\uFF09",takesValue:true,placeholder:"<\u30BF\u30B0>",repeatable:true};var CAMPAIGN_FLAG={name:"--campaign",summary:"\u65BD\u7B56\u306E ID\uFF08\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\u3002update \u3067\u306F\u6307\u5B9A\u3057\u305F\u7D44\u306B\u7F6E\u304D\u63DB\u308F\u308B\uFF09",
15
+ takesValue:true,placeholder:"<\u65BD\u7B56ID>",repeatable:true};var NO_TAGS_FLAG={name:"--no-tags",summary:"\u30BF\u30B0\u3092\u3059\u3079\u3066\u5916\u3059",takesValue:false};var NO_CAMPAIGNS_FLAG={name:"--no-campaigns",summary:"\u65BD\u7B56\u3092\u3059\u3079\u3066\u5916\u3059",takesValue:false};function arrayField(input,flag,clear,maxChars){const values=repeatedValues(input,flag.name);const cleared=clear!==null&&input.flags.has(clear.name);if(cleared&&values.length>0)throw new UsageError(`${flag.
16
+ name} \u3068 ${clear.name} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(cleared)return[];if(values.length===0)return void 0;for(const value of values){if(value.trim()==="")throw new UsageError(`${flag.name} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if([...value].length>maxChars)throw new UsageError(`${flag.name} \u306F1\u3064 ${maxChars}\
17
+ \u6587\u5B57\u307E\u3067\u3067\u3059: ${value}`)}return[...values]}function prospectBody(input,clearable){const body=fieldBody(input,PROSPECT_FIELDS);const tags=arrayField(input,TAG_FLAG,clearable?NO_TAGS_FLAG:null,50);const campaigns=arrayField(input,CAMPAIGN_FLAG,clearable?NO_CAMPAIGNS_FLAG:null,255);if(tags!==void 0)body["tags"]=tags;if(campaigns!==void 0)body["campaign_ids"]=campaigns;return body}function hasAnyProspectField(input){return hasAnyField(input,PROSPECT_FIELDS)||[TAG_FLAG,CAMPAIGN_FLAG].
18
+ some(flag=>repeatedValues(input,flag.name).length>0)||[NO_TAGS_FLAG,NO_CAMPAIGNS_FLAG].some(flag=>input.flags.has(flag.name))}var LIST_COLUMNS=["id","company_name","contact_name","status","assignee_user_id","last_approached_at","next_action_date"];var DETAIL_COLUMNS=["id","company_name","contact_department","contact_name","contact_email","status","assignee_user_id","last_approached_at","next_action_date","promoted_company_id"];var INTERACTION_COLUMNS=["id","prospect_id","interaction_type","inter\
19
+ action_date","status","subject"];var REF_HELP="<\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> \u306F ID\uFF08twp prospect list \u306E id \u5217\uFF09\u304B\u3001\u4F01\u696D\u540D\u306E\u5B8C\u5168\u4E00\u81F4\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\n\u540C\u3058\u4F01\u696D\u540D\u306E\u884C\u304C\u8907\u6570\u3042\u308B\u3068\u304D\uFF08\u540D\u523A\u3054\u3068\u306B1\u884C\u306A\u3069\uFF09\u306F\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
20
+ function prospectPath(id){if(!isSafePathSegment(id))throw new ApiResponseError(`\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return`${PROSPECTS_PATH}/${encodeURIComponent(id)}`}async function prepareTarget(input,ctx,usage){const raw=singleRef(input,{flag:"<\u30A2\u30D7\u30ED\u30FC\u30C1\u5148>",label:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148",usage});return withResolved(
21
+ input,{prospectId:(await ctx.resolver.prospect(raw)).id})}function targetPath(input){return prospectPath(requireResolved(input,"prospectId"))}function duplicateNotes(body){if(!isRecord(body))return[];const lines=[];const duplicates=Array.isArray(body["duplicate_candidates"])?body["duplicate_candidates"]:[];const customers=Array.isArray(body["customer_matches"])?body["customer_matches"]:[];if(body["duplicate_check_status"]==="error"){lines.push("\u91CD\u8907\u306E\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30B5\u30FC\u30D0\u5074\uFF09\u3002\u4E0B\u306E\u91CD\u8907\u5019\u88DC\u306F\u5B8C\u5168\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002")}
22
+ if(duplicates.length>0){lines.push(`\u540C\u3058\u4F01\u696D\uFF08\u4F01\u696D\u540D\u304B Web \u30B5\u30A4\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\u304C\u4E00\u81F4\uFF09\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u304C ${duplicates.length} \u4EF6\u3042\u308A\u307E\u3059: `+duplicates.map(row=>isRecord(row)?`${String(row["id"])} ${String(row["company_name"]??"")}`:String(row)).join(" / "))}if(customers.length>0){lines.push(`\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u304C ${customers.
23
+ length} \u4EF6\u3042\u308A\u307E\u3059: `+customers.map(row=>isRecord(row)?`ID ${String(row["id"])} ${String(row["name"]??"")}`:String(row)).join(" / "))}return lines}var FILTER_FLAGS=[{name:"--keyword",summary:"\u30AD\u30FC\u30EF\u30FC\u30C9\uFF08\u4F01\u696D\u540D\u30FB\u9023\u7D61\u5148\u306A\u3069\uFF09",takesValue:true,placeholder:"<\u8A9E>"},{name:"--status",summary:`\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08${STATUS_HELP} / promoted=\u9867\u5BA2\u3078\u6607\u683C\u6E08\u307F\uFF09`,takesValue:true,
24
+ placeholder:`<${FILTER_STATUSES.join("|")}>`},{name:"--industry",summary:"\u696D\u7A2E",takesValue:true,placeholder:"<\u696D\u7A2E>"},{name:"--employee-scale",summary:"\u5F93\u696D\u54E1\u898F\u6A21",takesValue:true,placeholder:"<\u898F\u6A21>"},{name:"--assignee",summary:"\u55B6\u696D\u62C5\u5F53\uFF08\u30E6\u30FC\u30B6\u30FC\u3002ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"\
25
+ --website-domain",summary:"Web \u30B5\u30A4\u30C8\u306E\u30C9\u30E1\u30A4\u30F3",takesValue:true,placeholder:"<\u30C9\u30E1\u30A4\u30F3>"},{...CAMPAIGN_FLAG,summary:"\u65BD\u7B56\u306E ID\uFF08\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\uFF09"},{...TAG_FLAG,summary:"\u30BF\u30B0\uFF08\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\uFF09"},{name:"--unapproached",summary:"\u672A\u30A2\u30D7\u30ED\u30FC\u30C1\uFF08\u5BFE\u5FDC\u5C65\u6B74\u304C\u7121\u3044\uFF09\u3082\u306E\u3060\u3051",
26
+ takesValue:false},{name:"--next-action",summary:"\u6B21\u56DE\u30A2\u30AF\u30B7\u30E7\u30F3\u4E88\u5B9A\u65E5\uFF08overdue=\u671F\u9650\u5207\u308C / today=\u4ECA\u65E5 / this_week=\u4ECA\u9031\uFF09",takesValue:true,placeholder:`<${NEXT_ACTION_FILTERS.join("|")}>`}];function oneOf(input,flag,values){const raw=input.flags.get(flag);if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!values.includes(value))throw new UsageError(`${flag} \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,
27
+ `\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${values.join(" / ")} \u3067\u3059\u3002`);return value}async function prepareFilters(input,ctx){searchQuery(input);const assignee=nonEmpty(input.flags,"--assignee");return assignee===void 0?input:withResolved(input,{assigneeUserId:(await ctx.resolver.user(assignee,"--assignee")).id})}function searchQuery(input){const campaigns=repeatedValues(input,CAMPAIGN_FLAG.name);const tags=repeatedValues(input,TAG_FLAG.name);for(const[flag,values]of[[CAMPAIGN_FLAG.
28
+ name,campaigns],[TAG_FLAG.name,tags]]){const bad=values.find(value=>value.includes(","));if(bad!==void 0)throw new UsageError(`\u7D5E\u308A\u8FBC\u307F\u306E ${flag} \u306B\u30AB\u30F3\u30DE\u3092\u542B\u3080\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${bad}`,`\u5024\u3054\u3068\u306B ${flag} \u3092\u7E70\u308A\u8FD4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{keyword:nonEmpty(input.flags,"--keyword"),status:oneOf(input,"--status",FILTER_STATUSES),industry:nonEmpty(input.flags,
29
+ "--industry"),employee_scale:nonEmpty(input.flags,"--employee-scale"),assignee_user_id:input.resolved?.["assigneeUserId"],website_domain:nonEmpty(input.flags,"--website-domain"),campaign_ids:campaigns.length>0?[...campaigns]:void 0,tags:tags.length>0?[...tags]:void 0,unapproached_only:input.flags.has("--unapproached")?1:void 0,next_action:oneOf(input,"--next-action",NEXT_ACTION_FILTERS)}}var listPaging=envelopePaging({label:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u4E00\u89A7"});var listOperation={
30
+ name:"list",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u4E00\u89A7\u3059\u308B\uFF08--keyword\u30FB--status\u30FB--assignee \u306A\u3069\uFF09",usage:"twp prospect list [--keyword <\u8A9E>] [--status <\u30B9\u30C6\u30FC\u30BF\u30B9>] [--assignee <\u30E6\u30FC\u30B6\u30FC>] [--all] [--limit <\u4EF6\u6570>]",description:`--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
31
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
32
+
33
+ \u30AD\u30FC\u30EF\u30FC\u30C9\u3084\u7D5E\u308A\u8FBC\u307F\u3092\u4ED8\u3051\u308B\u3068\u691C\u7D22\u57FA\u76E4\uFF08OpenSearch\uFF09\u3067\u5F15\u304F\u305F\u3081\u3001\u4F5C\u6210\u3057\u305F\u76F4\u5F8C\u306E\u884C\u306F\u307E\u3060\u51FA\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
34
+
35
+ `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,...FILTER_FLAGS],paging:listPaging,forbidden:VIEW_FORBIDDEN,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 prospect list help");return prepareFilters(input,ctx)},plan:input=>({method:"GET",path:PROSPECTS_PATH,query:{...searchQuery(input),limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}),summarize:body=>listPaging.
36
+ items(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listPaging.items(body)};var getOperation={name:"get",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u51481\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp prospect get <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148>",description:`--output json \u306F\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
37
+
38
+ ${REF_HELP}`,flags:[],forbidden:VIEW_FORBIDDEN,prepare:(input,ctx)=>prepareTarget(input,ctx,"twp prospect get help"),plan:input=>({method:"GET",path:targetPath(input)}),summarize:body=>pick(dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u53D6\u5F97"),DETAIL_COLUMNS),raw:body=>dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u53D6\u5F97")};var createOperation={name:"create",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u767B\u9332\u3059\u308B\uFF08--name \u304C\u5FC5\u9808\uFF09",
39
+ usage:"twp prospect create --name <\u4F01\u696D\u540D> [\u9805\u76EE\u2026]",description:"--name\uFF08\u4F01\u696D\u540D\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002--status \u3092\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08new\uFF1D\u672A\u30A2\u30D7\u30ED\u30FC\u30C1\uFF09\u306B\u306A\u308A\u307E\u3059\u3002\n\u540C\u3058\u4F01\u696D\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3084\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u304C\u3042\u3063\u3066\u3082\u767B\u9332\u306F\u6B62\u307E\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u305D\u3046\u6271\u3044\u307E\u3059\uFF09\u3002\u898B\u3064\u304B\u3063\u305F\u3082\u306E\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\u767B\u9332\u306E\u524D\u306B\u78BA\u304B\u3081\u308B\u306A\u3089 twp prospect check-duplicates \u3092\u4F7F\u3044\u307E\u3059\u3002\n\n\u4F5C\u6210\u3057\u305F\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002\u8A18\u9332\u306F twp prospect interaction create \u3067\u8DB3\u3057\u307E\u3059\u3002",
40
+ flags:[...createFlags(PROSPECT_FIELDS),TAG_FLAG,CAMPAIGN_FLAG],forbidden:EDIT_FORBIDDEN,async prepare(input,ctx){if(input.args.length>0)throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp prospect create help");const body=prospectBody(input,false);if(body["company_name"]===void 0)throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp prospect create help");return resolveRefFields(input,ctx,
41
+ PROSPECT_FIELDS)},plan:input=>({method:"POST",path:PROSPECTS_PATH,body:prospectBody(input,false)}),summarize:body=>pick(dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u767B\u9332"),DETAIL_COLUMNS),raw:body=>dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u767B\u9332"),notes:body=>duplicateNotes(body)};var updateOperation={name:"update",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u9805\u76EE\u3092\u66F4\u65B0\u3059\u308B",usage:"twp prospect update <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> [\u9805\u76EE\u2026]",
42
+ description:"\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002\n--tag / --campaign \u306F\u6307\u5B9A\u3057\u305F\u7D44\u306B\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u8DB3\u3059\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u5916\u3059\u306A\u3089 --no-tags / --no-campaigns \u3067\u3059\u3002\n\u9867\u5BA2\u3078\u6607\u683C\u3057\u305F\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u3067\u3001\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3092\u65AD\u308A\u307E\u3059\u3002\n\n"+
43
+ REF_HELP,flags:[...updateFlags(PROSPECT_FIELDS),TAG_FLAG,CAMPAIGN_FLAG,NO_TAGS_FLAG,NO_CAMPAIGNS_FLAG],forbidden:EDIT_FORBIDDEN,async prepare(input,ctx){if(!hasAnyProspectField(input))throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp prospect update help");prospectBody(input,true);const target=await prepareTarget(input,ctx,"twp prospect update help");return resolveRefFields(target,ctx,PROSPECT_FIELDS)},plan:input=>({
44
+ method:"PUT",path:targetPath(input),body:prospectBody(input,true)}),summarize:body=>pick(dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u66F4\u65B0"),DETAIL_COLUMNS),raw:body=>dataOf(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u66F4\u65B0"),notes:body=>duplicateNotes(body)};var deleteOperation={name:"delete",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u524A\u9664\u3059\u308B\uFF08\u9867\u5BA2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",
45
+ usage:"twp prospect delete <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> --yes",description:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u524A\u9664\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u5074\u306F\u8AD6\u7406\u524A\u9664\uFF09\u3002\u5BFE\u5FDC\u5C65\u6B74\u3082\u30B5\u30FC\u30D0\u304C\u4E00\u7DD2\u306B\u6D88\u3057\u307E\u3059\u3002\n\u9867\u5BA2\u3078\u6607\u683C\u6E08\u307F\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3082\u524A\u9664\u3067\u304D\u307E\u3059\uFF08\u6607\u683C\u5148\u306E\u9867\u5BA2\u306F\u6B8B\u308A\u307E\u3059\u3002\u6D88\u3059\u306A\u3089 twp customer delete\uFF09\u3002\n\n"+
46
+ REF_HELP,destructive:true,flags:[],forbidden:adminForbidden("\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u524A\u9664"),prepare:(input,ctx)=>prepareTarget(input,ctx,"twp prospect delete help"),plan:input=>({method:"DELETE",path:targetPath(input)}),summarize:body=>acknowledgement(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u524A\u9664"),raw:body=>acknowledgement(body,"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u524A\u9664")};var IMPORT_MAX_BYTES=16*1024*1024;var IMPORT_FILE_FLAG={name:"--file",summary:"\u53D6\u308A\
47
+ \u8FBC\u3080 CSV\uFF081\u884C\u76EE\u304C\u898B\u51FA\u3057\u3002twp prospect export \u306E\u51FA\u529B\u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<CSV>"};var CHECK_FLAG={name:"--check",summary:"\u767B\u9332\u305B\u305A\u306B\u3001\u30B5\u30FC\u30D0\u306E\u884C\u3054\u3068\u306E\u5224\u5B9A\uFF08\u767B\u9332\u30FB\u30B9\u30AD\u30C3\u30D7\u30FB\u30A8\u30E9\u30FC\uFF09\u3060\u3051\u3092\u51FA\u3059",takesValue:false};function isImportResult(body){return isRecord(
48
+ body)&&body["prospectImport"]===true}async function prepareImport(input){const usage="twp prospect import help";if(input.args.length>0)throw new UsageError(`import \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage);const file=nonEmpty(input.flags,IMPORT_FILE_FLAG.name);if(file===void 0)throw new UsageError("--file <CSV> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);let bytes;try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(
49
+ `--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>IMPORT_MAX_BYTES){throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\u30FB\u8AAD\u307F\u8FBC\u3080\u4E0A\u9650 ${IMPORT_MAX_BYTES} \u30D0\u30A4\u30C8\uFF09: ${file}`,"\u30D5\u30A1\u30A4\u30EB\u3092\u5206\u3051\u3066\u53D6\u308A\u8FBC\u3093\u3067\u304F\u3060\u3055\u3044\u3002")}
50
+ bytes=fs.readFileSync(file)}catch(err){if(err instanceof UsageError)throw err;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${err.code??err.message}\uFF09`,usage)}return withResolved(input,{fileName:path.basename(file),fileBase64:bytes.toString("base64")})}function importPlan(input,dryRun){const bytes=Buffer.from(requireResolved(input,"fileBase64"),"base64");return{method:"POST",path:`${PROSPECTS_PATH}/import`,body:new MultipartBody(
51
+ {dry_run:dryRun?"1":"0"},[{field:"file",filename:requireResolved(input,"fileName"),contentType:"text/csv",bytes:new Uint8Array(bytes)}])}}function importRows(body,what){if(!isRecord(body)||body["result"]!==true||!Array.isArray(body["rows"])){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B rows \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rows=body["rows"].map(row=>{if(!isRecord(row)||!Number.isInteger(
52
+ row["line"])||!["importable","skipped","error"].includes(String(row["status"]))){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E rows \u306E\u5F62\u304C\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{line:row["line"],status:row["status"],company_name:String(row["company_name"]??""),message:String(row["message"]??"")}});return{rows,body}}function countOf(rows,status){return rows.filter(row=>row.status===status).length}
53
+ function rowLine(row){return`${row.line} \u884C\u76EE${row.company_name===""?"":` ${row.company_name}`}: ${row.message}`}async function runImport(input,ctx){const checked=importRows(await ctx.send(importPlan(input,true)),"CSV \u306E\u5224\u5B9A");if(input.flags.has(CHECK_FLAG.name))return{prospectImport:true,outcome:"check",...checked};const errors=checked.rows.filter(row=>row.status==="error");if(errors.length>0){throw new UsageError(`CSV \u306B\u767B\u9332\u3067\u304D\u306A\u3044\u884C\u304C ${errors.
54
+ length} \u884C\u3042\u308B\u305F\u3081\u30011\u4EF6\u3082\u767B\u9332\u3057\u3066\u3044\u307E\u305B\u3093:
55
+ ${errors.map(rowLine).join("\n ")}`,`\u767B\u9332\u3067\u304D\u308B\u884C\u306F ${countOf(checked.rows,"importable")} \u884C\u3067\u3059\u3002\u305D\u306E\u884C\u3092\u76F4\u3059\u304B\u524A\u9664\u3057\u3066\u304B\u3089\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--check \u3067\u5224\u5B9A\u3060\u3051\u3092\u898B\u3089\u308C\u307E\u3059\uFF09\u3002`)}if(countOf(checked.rows,"importable")===0)return{prospectImport:true,outcome:"nothing",...checked};const done=importRows(await ctx.
56
+ send(importPlan(input,false)),"CSV \u306E\u767B\u9332");const failed=done.rows.filter(row=>row.status==="error");if(failed.length>0){const imported=done.rows.filter(row=>row.status==="importable");ctx.warn([`CSV \u306E\u767B\u9332\u3067 ${failed.length} \u884C\u304C\u767B\u9332\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u767B\u9332 ${imported.length} \u884C\u30FB\u30B9\u30AD\u30C3\u30D7 ${countOf(done.rows,"skipped")} \u884C\uFF09\u3002`,` \u767B\u9332\u3055\u308C\u306A\u304B\u3063\u305F\u884C:
57
+ ${failed.map(rowLine).join("\n ")}`,imported.length===0?" \u767B\u9332\u3057\u305F\u884C: \u306A\u3057":` \u767B\u9332\u3057\u305F\u884C:
58
+ ${imported.map(rowLine).join("\n ")}`,"\u767B\u9332\u3055\u308C\u306A\u304B\u3063\u305F\u884C\u3060\u3051\u306E CSV \u3092\u4F5C\u3063\u3066\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u3092\u6253\u3061\u76F4\u3059\u3068\u3001\u767B\u9332\u6E08\u307F\u306E\u884C\u306F\u91CD\u8907\u3068\u3057\u3066\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF09\u3002"].join("\n"));throw new ApiRejectedError(`CSV \u306E\u4E00\u62EC\u767B\u9332\u306F\u5B8C\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u767B\u9332 ${imported.
59
+ length} \u884C\u30FB\u5931\u6557 ${failed.length} \u884C\uFF09\u3002`)}return{prospectImport:true,outcome:"imported",...done}}var importOperation={name:"import",summary:"CSV \u3067\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u4E00\u62EC\u767B\u9332\u3059\u308B\uFF08--file\u30FB--check \u3067\u5224\u5B9A\u3060\u3051\uFF09",usage:"twp prospect import --file <CSV> [--check]",description:"CSV \u306E1\u884C\u76EE\u306F\u898B\u51FA\u3057\u3067\u3059\u3002\u5217\u306F\u898B\u51FA\u3057\u306E\u540D\u524D\u3067\u5BFE\u5FDC\u3065\u3051\u307E\u3059\uFF08twp prospect export \u306E\u51FA\u529B\u30FB\u753B\u9762\u306E CSV \u51FA\u529B\u3092\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u3002\n\u6587\u5B57\u30B3\u30FC\u30C9\u306F UTF-8\uFF08BOM \u4ED8\u304D\u3067\u3082\u53EF\uFF09\u304B Shift_JIS\uFF08Ex\
60
+ cel \u306E\u65E2\u5B9A\uFF09\u3067\u3059\u3002\u5224\u5B9A\u306F\u30B5\u30FC\u30D0\u304C\u884C\u3044\u307E\u3059\u3002\n\n\u9001\u308B\u524D\u306B\u30B5\u30FC\u30D0\u306B\u5168\u884C\u3092\u5224\u5B9A\u3055\u305B\uFF08\u767B\u9332\u30FB\u30B9\u30AD\u30C3\u30D7\u30FB\u30A8\u30E9\u30FC\uFF09\u3001\u30A8\u30E9\u30FC\u884C\u304C1\u3064\u3067\u3082\u3042\u308C\u30701\u4EF6\u3082\u767B\u9332\u305B\u305A\u306B\n\u884C\u756A\u53F7\u3068\u7406\u7531\u3092\u3059\u3079\u3066\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u7D42\u308F\u308A\u307E\u3059\u3002\u30A8\u30E9\u30FC\u884C\u304C\u7121\u3051\u308C\u3070\u767B\u9332\u3057\u307E\u3059\u3002\n\u540C\u3058\u4F01\u696D\uFF08\u4F01\u696D\u540D\u304B Web \u30B5\u30A4\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\uFF09\u304B\u3064\u9023\u7D61\u5148\uFF08\u90E8\u7F72\u30FB\u62C5\u5F53\u8005\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u76F4\u901A\u96FB\u8A71\uFF09\u304C\u3059\u3079\u3066\u4E00\u81F4\u3059\u308B\u884C\u306F\u3001\n\u91CD\u8907\u3068\u3057\u3066\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF08\u767B\u9332\u306F\u6B62\u307E\u308A\u307E\u305B\u3093\uFF09\u30021\u56DE\u306B\u53D6\u308A\u8FBC\u3081\u308B\u884C\u6570\u306E\u4E0A\u9650\u306F\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF08\u8D85\u3048\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002\n\n--check \u3092\u4ED8\u3051\u308B\u3068\u767B\u9332\u305B\u305A\u306B\u3001\u884C\u3054\u3068\u306E\u5224\u5B9A\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u3002\n\u7D50\u679C\u306F\u884C\u3054\u3068\u306E\u5224\u5B9A\uFF08line / status / company_name / message\uFF09\u3067\u3059\u3002--output json \u306F\u5FDC\u7B54\u5168\u4F53\uFF08created_ids \u3092\u542B\u3080\uFF09\u3067\u3059\u3002",
61
+ flags:[IMPORT_FILE_FLAG,CHECK_FLAG],forbidden:EDIT_FORBIDDEN,prepare:input=>prepareImport(input),plan:input=>importPlan(input,input.flags.has(CHECK_FLAG.name)),plannedNotes:input=>input.flags.has(CHECK_FLAG.name)?["--check: \u5224\u5B9A\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08dry_run=1\u30021\u4EF6\u3082\u767B\u9332\u3057\u307E\u305B\u3093\uFF09\u3002"]:["\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u540C\u3058\u30D5\u30A1\u30A4\u30EB\u3092 dry_run=1 \u3067\u9001\u3063\u3066\u30B5\u30FC\u30D0\u306B\u5168\u884C\u3092\u5224\u5B9A\u3055\u305B\u307E\u3059\uFF08\u767B\u9332\u306F\u3057\u307E\u305B\u3093\uFF09\u3002",
62
+ "\u30A8\u30E9\u30FC\u884C\u304C1\u3064\u3067\u3082\u3042\u308C\u3070\u3001\u3053\u306E\u767B\u9332\uFF08dry_run=0\uFF09\u306F\u9001\u308A\u307E\u305B\u3093\u3002\u767B\u9332\u5BFE\u8C61\u304C0\u884C\u306E\u3068\u304D\u3082\u9001\u308A\u307E\u305B\u3093\u3002"],execute:runImport,summarize:body=>isImportResult(body)?body.rows:body,raw:body=>isImportResult(body)?body.body:body,notes(body){if(!isImportResult(body))return[];const counts=`\u767B\u9332 ${countOf(body.rows,"importable")} \u884C\u30FB\u30B9\u30AD\u30C3\u30D7 ${countOf(
63
+ body.rows,"skipped")} \u884C\u30FB\u30A8\u30E9\u30FC ${countOf(body.rows,"error")} \u884C`;const lines=[body.outcome==="check"?`\u5224\u5B9A\u3060\u3051\u3092\u884C\u3044\u307E\u3057\u305F\uFF08\u767B\u9332\u3057\u3066\u3044\u307E\u305B\u3093\uFF09: ${counts}\uFF08\u767B\u9332\u306F\u300C\u767B\u9332\u5BFE\u8C61\u300D\u306E\u884C\u6570\uFF09\u3002`:body.outcome==="nothing"?`\u767B\u9332\u5BFE\u8C61\u306E\u884C\u304C\u7121\u3044\u305F\u3081\u3001\u767B\u9332\u3092\u9001\u3063\u3066\u3044\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30C3\u30D7 ${countOf(
64
+ body.rows,"skipped")} \u884C\uFF09\u3002`:`\u767B\u9332\u3057\u307E\u3057\u305F: ${counts}\u3002`];const matches=body.body["customer_matches"];if(Array.isArray(matches)&&matches.length>0){lines.push(`\u65E2\u5B58\u306E\u9867\u5BA2\u3068\u540D\u524D\u304C\u4F3C\u305F\u884C\u304C ${matches.length} \u4EF6\u3042\u308A\u307E\u3059\uFF08\u767B\u9332\u306F\u6B62\u307E\u308A\u307E\u305B\u3093\u3002--output json \u306E customer_matches\uFF09\u3002`)}if(body.body["customer_match_status"]==="error")lines.push(
65
+ "\u65E2\u5B58\u306E\u9867\u5BA2\u3068\u306E\u7A81\u5408\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30B5\u30FC\u30D0\u5074\uFF09\u3002\u4F3C\u305F\u9867\u5BA2\u306E\u8B66\u544A\u306F\u5B8C\u5168\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002");return lines}};var exportOperation={name:"export",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092 CSV \u306B\u66F8\u304D\u51FA\u3059\uFF08\u9867\u5BA2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB--out\uFF09",usage:"twp prospect export --\
66
+ out <\u30D1\u30B9.csv> [--force] [\u7D5E\u308A\u8FBC\u307F\u2026]",description:"\u7D5E\u308A\u8FBC\u307F\uFF08twp prospect list \u3068\u540C\u3058\uFF09\u306B\u5F53\u305F\u308B\u5168\u4EF6\u3092 CSV\uFF08UTF-8\u30FBBOM \u4ED8\u304D\uFF09\u3067\u66F8\u304D\u51FA\u3057\u307E\u3059\u3002\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\u66F8\u304D\u51FA\u3057\u305F CSV \u306F twp prospect import \u3067\u305D\u306E\u307E\u307E\u53D6\u308A\u8FBC\u3081\u307E\u3059\uFF08\u767B\u9332\u65E5\u6642\u306A\u3069\u30B7\u30B9\u30C6\u30E0\u304C\u7ACB\u3066\u308B\u5217\u306F\u53D6\u308A\u8FBC\u307E\u308C\u307E\u305B\u3093\uFF09\u3002\n\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\uFF08\u4E0A\u66F8\u304D\u3059\u308B\u306A\u3089 --force\uFF09\u3002",
67
+ flags:[{name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",takesValue:false},...FILTER_FLAGS],download:{outFlag:"--out",forceFlag:"--force"},forbidden:adminForbidden("\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E CSV \u51FA\u529B"),async prepare(input,ctx){if(input.args.length>0)throw new UsageError(
68
+ `export \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp prospect export help");return prepareFilters(input,ctx)},plan:input=>({method:"GET",path:`${PROSPECTS_PATH}/export`,query:searchQuery(input)}),summarize:body=>body,raw:body=>body};var checkDuplicatesOperation={name:"check-duplicates",summary:"\u767B\u9332\u306E\u524D\u306B\u3001\u540C\u3058\u4F01\u696D\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3068\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u3092\u78BA\u304B\u3081\u308B",
69
+ usage:"twp prospect check-duplicates --name <\u4F01\u696D\u540D> [--website <URL>] [--exclude <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148ID>]",description:"\u540C\u3058\u4F01\u696D\uFF08\u6B63\u898F\u5316\u3057\u305F\u4F01\u696D\u540D\u304B Web \u30B5\u30A4\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\u304C\u4E00\u81F4\uFF09\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3068\u3001\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u3092\u51FA\u3057\u307E\u3059\u3002\n\u7D50\u679C\u306E kind \u5217\u306F prospect\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\uFF09\u304B customer\uFF08\u9867\u5BA2\uFF09\u3067\u3059\u3002--output json \u306F\u5FDC\u7B54\u305D\u306E\u3082\u306E\n\uFF08duplicate_candidates / customer_matches / duplicate_check_status\uFF09\u3067\u3059\u3002",
70
+ flags:[{name:"--name",summary:"\u4F01\u696D\u540D\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u4F01\u696D\u540D>"},{name:"--website",summary:"Web \u30B5\u30A4\u30C8\u306E URL\uFF08\u30C9\u30E1\u30A4\u30F3\u3067\u3082\u7A81\u304D\u5408\u308F\u305B\u308B\uFF09",takesValue:true,placeholder:"<URL>"},{name:"--exclude",summary:"\u7A81\u304D\u5408\u308F\u305B\u304B\u3089\u5916\u3059\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E ID\uFF08\u66F4\u65B0\u4E2D\u306E\u884C\u305D\u306E\u3082\u306E\uFF09",
71
+ takesValue:true,placeholder:"<ID>"}],forbidden:VIEW_FORBIDDEN,plan(input){if(input.args.length>0)throw new UsageError(`check-duplicates \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp prospect check-duplicates help");const name=nonEmpty(input.flags,"--name");if(name===void 0)throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp prospect check-duplicates help");if([...name].length>255)throw new UsageError("--nam\
72
+ e \u306F 255 \u6587\u5B57\u307E\u3067\u3067\u3059");return{method:"GET",path:`${PROSPECTS_PATH}/check-duplicates`,query:{company_name:name,website:nonEmpty(input.flags,"--website"),exclude_id:nonEmpty(input.flags,"--exclude")}}},summarize(body){const checked=duplicateBody(body);const prospects=checked["duplicate_candidates"].map(row=>({kind:"prospect",...pick(row,["id","company_name","status","matched_by"])}));const customers=checked["customer_matches"].map(row=>{const cell=pick(row,["id","name"]);
73
+ return{kind:"customer",id:cell["id"],company_name:cell["name"],status:null,matched_by:"similar_name"}});return[...prospects,...customers]},raw:body=>duplicateBody(body),notes(body){const lines=duplicateNotes(body);return lines.length>0?lines:["\u540C\u3058\u4F01\u696D\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3082\u3001\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u3082\u3042\u308A\u307E\u305B\u3093\u3002"]}};function duplicateBody(body){if(!isRecord(body)||body["result"]!==true||
74
+ !Array.isArray(body["duplicate_candidates"])||!Array.isArray(body["customer_matches"])){throw new ApiResponseError("\u91CD\u8907\u78BA\u8A8D\u306E\u5FDC\u7B54\u306B duplicate_candidates / customer_matches \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{duplicate_candidates:body["duplicate_candidates"],customer_matches:body["customer_matches"],duplicate_check_status:body["duplicate_check_status"]??null}}var LINK_FLAG={
75
+ name:"--link",summary:"\u65B0\u3057\u304F\u4F5C\u3089\u305A\u306B\u3001\u65E2\u5B58\u306E\u53D6\u5F15\u5148\u4F01\u696D\u3078\u7D10\u3065\u3051\u308B\uFF08\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B ID\u3002\u4ED5\u5165\u5148\u3060\u3051\u306E\u4F01\u696D\u306F\u9867\u5BA2\u306B\u3082\u306A\u308B\uFF09",takesValue:true,placeholder:"<\u9867\u5BA2>"};async function preparePromote(input,ctx){const usage="twp prospect promote help";const link=nonEmpty(input.
76
+ flags,LINK_FLAG.name);if(input.flags.has(LINK_FLAG.name)&&link===void 0)throw new UsageError("--link \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);const target=await prepareTarget(input,ctx,usage);const preview=await ctx.resolver.prospectPromotionPreview(requireResolved(target,"prospectId"));const linked=link===void 0?void 0:await ctx.resolver.company(link,{flag:LINK_FLAG.name,source:"sales",mustExist:true});return withResolved(target,{preview:JSON.stringify(preview),
77
+ ...linked===void 0?{}:{linkCompanyId:linked.id}})}function promoteNotes(input){const preview=JSON.parse(requireResolved(input,"preview"));const link=input.resolved?.["linkCompanyId"];const lines=["\u6607\u683C\u306E\u4E0B\u898B\uFF08promotion-preview\uFF09:"];if(preview["already_promoted"]===true){lines.push(` \u3053\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306F\u65E2\u306B\u9867\u5BA2\u3078\u6607\u683C\u6E08\u307F\u3067\u3059\uFF08\u9867\u5BA2 ID ${String(preview["promoted_company_id"])}\u30FB${String(
78
+ preview["promoted_at"]??"\u65E5\u6642\u4E0D\u660E")}\uFF09\u3002\u30B5\u30FC\u30D0\u304C\u6607\u683C\u3092\u65AD\u308A\u307E\u3059\u3002`)}const matches=preview["customer_matches"];if(matches.length===0){lines.push(" \u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u306F\u3042\u308A\u307E\u305B\u3093\u3002")}else{lines.push(` \u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u304C ${matches.length} \u4EF6\u3042\u308A\u307E\u3059:`);for(const row of matches){if(isRecord(row))
79
+ lines.push(` ID ${String(row["id"])} ${String(row["name"]??"")}${row["address"]?`\uFF08${String(row["address"])}\uFF09`:""}`)}}if(link!==void 0){lines.push(` \u65E2\u5B58\u306E\u53D6\u5F15\u5148\u4F01\u696D ID ${link} \u3078\u7D10\u3065\u3051\u307E\u3059\uFF08\u4F01\u696D\u306F\u4F5C\u308A\u307E\u305B\u3093\u3002\u4ED5\u5165\u5148\u3060\u3051\u306E\u4F01\u696D\u306A\u3089\u9867\u5BA2\u306B\u3082\u306A\u308A\u307E\u3059\uFF09\u3002`)}else{lines.push(" \u65B0\u3057\u3044\u9867\u5BA2\uFF08\u53D6\u5F15\u5148\u4F01\u696D\uFF09\u3092\u4F5C\u308A\u307E\u3059\u3002"+
80
+ (matches.length>0?" \u540C\u3058\u4F01\u696D\u306A\u3089\u3001\u4F5C\u3089\u305A\u306B --link <\u53D6\u5F15\u5148> \u3067\u7D10\u3065\u3051\u3066\u304F\u3060\u3055\u3044\uFF08\u91CD\u8907\u3057\u305F\u9867\u5BA2\u304C\u3067\u304D\u307E\u3059\uFF09\u3002":""))}if(preview["has_contact_info"]===true)lines.push(" \u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u9023\u7D61\u5148\u304B\u3089\u3001\u9867\u5BA2\u306E\u62C5\u5F53\u8005\u30921\u4EF6\u4F5C\u308A\u307E\u3059\u3002");lines.push(" \u6607\u683C\u524D\u306E\u5BFE\u5FDC\u5C65\u6B74\u306F\u6607\u683C\u5148\u306E\u9867\
81
+ \u5BA2\u3078\u4ED8\u3051\u66FF\u308F\u308A\u307E\u3059\u3002\u6607\u683C\u3057\u305F\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306B\u306A\u308A\u3001\u6607\u683C\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002");return lines}function promoted(body){if(!isRecord(body)||body["result"]!==true||typeof body["company_id"]!=="string"&&typeof body["company_id"]!=="number"){throw new ApiResponseError("\u6607\u683C\u306E\u5FDC\u7B54\u306B company_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
82
+ const data=isRecord(body["data"])?body["data"]:{};return{prospect_id:data["id"]??null,company_id:body["company_id"],company_created:body["company_created"]??null,contact_id:body["contact_id"]??null,truncated_fields:body["truncated_fields"]??[]}}var promoteOperation={name:"promote",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u9867\u5BA2\u3078\u6607\u683C\u3059\u308B\uFF08\u9867\u5BA2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB\u53D6\u308A\u6D88\u305B\u306A\u3044\u30FB--yes \u304C\u8981\u308B\uFF09",
83
+ usage:"twp prospect promote <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> [--link <\u53D6\u5F15\u5148>] --yes",description:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u304B\u3089\u9867\u5BA2\uFF08\u53D6\u5F15\u5148\u4F01\u696D\uFF09\u3092\u4F5C\u308A\u3001\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u3092\u300C\u9867\u5BA2\u3078\u6607\u683C\u6E08\u307F\u300D\u306B\u3057\u307E\u3059\u3002\n\u65E2\u5B58\u306E\u53D6\u5F15\u5148\u4F01\u696D\u3068\u540C\u3058\u306A\u3089 --link <\u53D6\u5F15\u5148> \u3067\u7D10\u3065\u3051\u3060\u3051\u306B\u3057\u307E\u3059\uFF08\u4F01\u696D\u306F\u4F5C\u308A\u307E\u305B\u3093\u3002\u4ED5\u5165\u5148\u3060\u3051\u306E\u4F01\u696D\u306A\u3089\u9867\u5BA2\u306B\u3082\u306A\u308A\u307E\u3059\uFF09\u3002\n\n\u9001\u308B\u524D\u306B\u4E0B\u898B\uFF08promotion-preview\uFF09\u3092\u8AAD\u307F\u3001\u540D\u524D\u304C\u4F3C\u305F\u65E2\u5B58\u306E\u9867\u5BA2\u30FB\u6607\u683C\u6E08\u307F\u304B\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--dry-run \u306F\u4E0B\u898B\u3060\u3051\u3092\u51FA\u3057\u3066\u9001\u308A\u307E\u305B\u3093\uFF08--yes \u306F\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\n\u6607\u683C\u3057\u305F\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306B\u306A\u308A\u3001\u6607\u683C\u306F\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF08\u8AA4\u3063\u3066\u4F5C\u3063\u305F\u9867\u5BA2\u306F twp customer delete \u3067\u6D88\u3057\u307E\u3059\uFF09\u3002\n\n"+
84
+ REF_HELP,destructive:true,flags:[LINK_FLAG],forbidden:adminForbidden("\u9867\u5BA2\u3078\u306E\u6607\u683C"),prepare:preparePromote,plan(input){const link=input.resolved?.["linkCompanyId"];return{method:"POST",path:`${targetPath(input)}/promote`,body:link===void 0?{mode:"create"}:{mode:"link",company_id:link}}},plannedNotes:promoteNotes,summarize:body=>promoted(body),raw:body=>promoted(body),notes(body){const result=promoted(body);const lines=[`${result.company_created===true?"\u9867\u5BA2\u3092\u4F5C\u3063\u3066":
85
+ "\u65E2\u5B58\u306E\u9867\u5BA2\u3078"}\u6607\u683C\u3057\u307E\u3057\u305F\uFF08\u9867\u5BA2 ID ${String(result.company_id)}${result.contact_id===null?"":`\u30FB\u62C5\u5F53\u8005 ID ${String(result.contact_id)}`}\uFF09\u3002twp customer get ${String(result.company_id)} \u3067\u898B\u3089\u308C\u307E\u3059\u3002`];const truncated=result.truncated_fields;if(Array.isArray(truncated)&&truncated.length>0){lines.push(`\u9867\u5BA2\u306E\u9805\u76EE\u306E\u9577\u3055\u306B\u53CE\u3081\u308B\u305F\u3081\u5207\u308A\u8A70\u3081\u305F\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${truncated.
86
+ map(String).join(" / ")}`)}return lines}};var PROSPECT_FLAG={name:"--prospect",summary:"\u5BFE\u8C61\u306E\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\uFF08ID \u304B\u4F01\u696D\u540D\u306E\u5B8C\u5168\u4E00\u81F4\uFF09",takesValue:true,placeholder:"<\u30A2\u30D7\u30ED\u30FC\u30C1\u5148>"};var PROSPECT_INTERACTION_FIELDS=INTERACTION_FIELDS.filter(field=>field.flag!=="--contact");async function prepareProspectFlag(input,ctx,usage){const raw=nonEmpty(input.flags,PROSPECT_FLAG.name);if(raw===void 0)throw new UsageError(
87
+ "--prospect <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return withResolved(input,{prospectId:(await ctx.resolver.prospect(raw,PROSPECT_FLAG.name)).id})}function interactionId(input,usage){const[raw,...rest]=input.args;if(raw===void 0||raw.trim()==="")throw new UsageError("\u5BFE\u5FDC\u5C65\u6B74\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(rest.length>0)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u5BFE\u5FDC\u5C65\u6B74\u306E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.
88
+ join(" ")}`,usage);const id=raw.trim();if(!isSafePathSegment(id))throw new UsageError(`\u5BFE\u5FDC\u5C65\u6B74\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${id}`,"twp prospect interaction list \u306E id \u5217\u306E\u5024\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return id}function interactionResource(){const base=input=>`${targetPath(input)}/interactions`;const item=(input,usage2)=>`${base(input)}/${encodeURIComponent(
89
+ interactionId(input,usage2))}`;const paging=envelopePaging({label:"\u5BFE\u5FDC\u5C65\u6B74\u4E00\u89A7"});const usage=op=>`twp prospect interaction ${op} help`;const editForbidden=levelForbidden(CUSTOMER_LICENSE,"\u5BFE\u5FDC\u5C65\u6B74\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
90
+ const readOnlyNote="\u9867\u5BA2\u3078\u6607\u683C\u3057\u305F\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u5BFE\u5FDC\u5C65\u6B74\u306F\u6607\u683C\u5148\u306E\u9867\u5BA2\u3078\u4ED8\u3051\u66FF\u308F\u3063\u3066\u3044\u308B\u305F\u3081\u3001\u3053\u3053\u304B\u3089\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\uFF08twp customer interaction \u3092\u4F7F\u3044\u307E\u3059\uFF09\u3002";return{name:"interaction",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u5BFE\u5FDC\u5C65\u6B74\u306E\u4E00\u89A7\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664",
91
+ operations:[{name:"list",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u5BFE\u5FDC\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp prospect interaction list --prospect <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> [--all] [--limit <\u4EF6\u6570>]",description:`--prospect \u304C\u5FC5\u9808\u3067\u3059\u3002
92
+
93
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
94
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${INTERACTION_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
95
+
96
+ ${LIST_PAGING_HELP}`,flags:[...LIST_FLAGS,PROSPECT_FLAG],paging,forbidden:VIEW_FORBIDDEN,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(" ")}`,usage("list"));return prepareProspectFlag(input,ctx,usage("list"))},plan:input=>({method:"GET",path:base(input),query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}),summarize:body=>paging.items(body).map(
97
+ row=>pick(row,INTERACTION_COLUMNS)),raw:body=>paging.items(body)},{name:"create",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306B\u5BFE\u5FDC\u5C65\u6B74\u3092\u767B\u9332\u3059\u308B\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u6700\u7D42\u63A5\u89E6\u65E5\u304C\u9032\u3080\uFF09",usage:"twp prospect interaction create --prospect <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> --type <\u7A2E\u5225> --date <\u5BFE\u5FDC\u65E5> [\u9805\u76EE\u2026]",description:`\
98
+ --prospect\u30FB--type\uFF08${INTERACTION_TYPES.join(" / ")}\uFF09\u30FB--date \u304C\u5FC5\u9808\u3067\u3059\u3002\u4F5C\u6210\u3057\u305F\u5BFE\u5FDC\u5C65\u6B74\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002
99
+ \u767B\u9332\u3059\u308B\u3068\u3001\u30B5\u30FC\u30D0\u304C\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08--status \u306E\u72B6\u6CC1\u306B\u5FDC\u3058\u3066\u524D\u3078\u9032\u3080\uFF09\u3068\u6700\u7D42\u63A5\u89E6\u65E5\u3092\u66F4\u65B0\u3057\u307E\u3059\u3002
100
+ `+readOnlyNote,flags:[...createFlags(PROSPECT_INTERACTION_FIELDS),PROSPECT_FLAG],forbidden:editForbidden,async prepare(input,ctx){if(input.args.length>0)throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage("create"));fieldBody(input,PROSPECT_INTERACTION_FIELDS);for(const flag of["--type","--date"]){if(!input.flags.has(flag))throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage("create"))}
101
+ return prepareProspectFlag(input,ctx,usage("create"))},plan:input=>({method:"POST",path:base(input),body:fieldBody(input,PROSPECT_INTERACTION_FIELDS)}),summarize:body=>pick(dataOf(body,"\u5BFE\u5FDC\u5C65\u6B74\u306E\u767B\u9332"),INTERACTION_COLUMNS),raw:body=>dataOf(body,"\u5BFE\u5FDC\u5C65\u6B74\u306E\u767B\u9332"),notes:()=>["\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u6700\u7D42\u63A5\u89E6\u65E5\u306F\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3057\u307E\u3059\uFF08twp prospect get \u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\uFF09\u3002"]},
102
+ {name:"update",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u5BFE\u5FDC\u5C65\u6B74\u3092\u66F4\u65B0\u3059\u308B",usage:"twp prospect interaction update <\u5BFE\u5FDC\u5C65\u6B74ID> --prospect <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> [\u9805\u76EE\u2026]",description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
103
+ ${readOnlyNote}`,flags:[...updateFlags(PROSPECT_INTERACTION_FIELDS),PROSPECT_FLAG],forbidden:editForbidden,async prepare(input,ctx){if(!hasAnyField(input,PROSPECT_INTERACTION_FIELDS))throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage("update"));fieldBody(input,PROSPECT_INTERACTION_FIELDS);interactionId(input,usage("update"));return prepareProspectFlag(input,ctx,usage("update"))},plan:input=>({method:"PUT",path:item(
104
+ input,usage("update")),body:fieldBody(input,PROSPECT_INTERACTION_FIELDS)}),summarize:body=>pick(dataOf(body,"\u5BFE\u5FDC\u5C65\u6B74\u306E\u66F4\u65B0"),INTERACTION_COLUMNS),raw:body=>dataOf(body,"\u5BFE\u5FDC\u5C65\u6B74\u306E\u66F4\u65B0")},{name:"delete",summary:"\u30A2\u30D7\u30ED\u30FC\u30C1\u5148\u306E\u5BFE\u5FDC\u5C65\u6B74\u3092\u524A\u9664\u3059\u308B\uFF08\u9867\u5BA2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp prospect interaction \
105
+ delete <\u5BFE\u5FDC\u5C65\u6B74ID> --prospect <\u30A2\u30D7\u30ED\u30FC\u30C1\u5148> --yes",description:`\u5BFE\u5FDC\u5C65\u6B741\u4EF6\u3092\u524A\u9664\u3057\u307E\u3059\u3002
106
+ ${readOnlyNote}`,destructive:true,flags:[PROSPECT_FLAG],forbidden:adminForbidden("\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664"),async prepare(input,ctx){interactionId(input,usage("delete"));return prepareProspectFlag(input,ctx,usage("delete"))},plan:input=>({method:"DELETE",path:item(input,usage("delete"))}),summarize:body=>acknowledgement(body,"\u5BFE\u5FDC\u5C65\u6B74\u524A\u9664"),raw:body=>acknowledgement(body,"\u5BFE\u5FDC\u5C65\u6B74\u524A\u9664")}]}}var prospectDomain={name:"prospect",summary:"\
107
+ \u30A2\u30D7\u30ED\u30FC\u30C1\u5148\uFF08\u898B\u8FBC\u5BA2\uFF09\u306E\u4E00\u89A7\u30FB\u767B\u9332\u30FBCSV \u53D6\u308A\u8FBC\u307F\u3068\u51FA\u529B\u30FB\u91CD\u8907\u78BA\u8A8D\u30FB\u9867\u5BA2\u3078\u306E\u6607\u683C\u3068\u3001\u305D\u306E\u5BFE\u5FDC\u5C65\u6B74",operations:[listOperation,getOperation,createOperation,updateOperation,deleteOperation,importOperation,exportOperation,checkDuplicatesOperation,promoteOperation],subresources:[interactionResource()]};export{prospectDomain};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-CKGB7CLM.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-IWIGE7U4.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{renderOutput}from"./chunk-5Q2CH4E7.js";import"./chunk-YVAN3H5W.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{renderOutput};
3
+ import{renderOutput}from"./chunk-6NEQ6PZZ.js";import"./chunk-BUZKNZ45.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{renderOutput};
@@ -0,0 +1,73 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{REPORTS_PATH}from"./chunk-WQRWQ7IM.js";import"./chunk-7CQKNDAE.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
4
+ import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30EC\u30DD\u30FC\u30C8";var STATUSES={new:"\u4E0B\u66F8\u304D",completed:"\u63D0\u51FA\u6E08\u307F",reviewed:"\u78BA\u8A8D\u6E08\u307F",rejected:"\u5DEE\u3057\u623B\u3057"};var STATUS_HELP=`\u72B6\u614B: ${Object.entries(STATUSES).map(([key,name])=>`${key}\uFF08${name}\uFF09`).join(" / ")}`;var TITLE_MAX_CHARS=200;var CONTENT_MAX_CHARS=1e6;var CONTENT_KEYS=["title","content"];var ULID_RE=/^[0-9A-HJKMNP-TV-Z]{26}$/i;var LIST_COLUMNS=["id","title","format_name","status","created_at","\
5
+ updated_at","completed_at"];var GET_COLUMNS=["id","title","format_name","status","status_label","created_at","updated_at","completed_at","reviewed_at","reviewed_by_name","rejected_by_name"];var WRITE_COLUMNS=["id","title","format_id","status","status_label","created_at","updated_at","completed_at"];var FORMAT_COLUMNS=["id","code","name","is_available","title_editable","writer","reviewer","admin"];var FORMAT_FLAG={name:"--format",summary:"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u540D\u524D\u30FB\u30B3\u30FC\u30C9\uFF08RF-000001\uFF09\u30FBID",
6
+ takesValue:true,placeholder:"<\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8>"};var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08title / content\u30FB- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u5165\u529B\u9805\u76EE\u304B\u3089 --content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u30EC\u30DD\u30FC\u30C8\u306F\u4F5C\u3089\u306A\u3044\uFF09",
7
+ takesValue:false};var CONTENT_HELP="\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u6307\u5B9A\u3067\u304D\u308B\u30AD\u30FC\u306F title / content \u3067\u3059\u3002\n content \u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u5165\u529B\u9805\u76EE\u540D \u2192 \u5024\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF08\u9805\u76EE\u540D\u306F twp report create --generate-cli-skeleton \u3067\u5206\u304B\u308A\u307E\u3059\uFF09\u3002\n \u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306B\u7121\u3044\u9805\u76EE\u540D\u30FB\u305D\u308C\u4EE5\u5916\u306E\u30AD\u30FC\u306F\u9001\u308B\u524D\u306B\u30A8\u30E9\u30FC\u306B\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u9805\u76EE\u540D\u3092\u691C\u67FB\u305B\u305A\u306B\u4FDD\u5B58\u3057\u3001\n \u753B\u9762\u306B\u306F\u51FA\u306A\u3044\u5024\u304C\u6B8B\u308B\u305F\u3081\uFF09\u3002--content-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002";
8
+ function usageOf(op){return`twp report ${op} help`}function noArgs(input,op){if(input.args.length>0){throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}}function reportIdArg(input,usage){const id=singleRef(input,{flag:"<\u30EC\u30DD\u30FC\u30C8ID>",label:"\u30EC\u30DD\u30FC\u30C8ID",usage});if(!isSafePathSegment(id)){throw new UsageError(`\u30EC\u30DD\u30FC\u30C8ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,
9
+ "\u30EC\u30DD\u30FC\u30C8ID \u306F twp report list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return id}function itemPath(id,suffix=""){return`${REPORTS_PATH}/${encodeURIComponent(id)}${suffix}`}async function formatId(ref,ctx,usableOnly){const trimmed=ref.trim();if(UUID_RE.test(trimmed))return trimmed;if(ULID_RE.test(trimmed))return trimmed.toUpperCase();const id=(await ctx.resolver.reportFormat(trimmed,FORMAT_FLAG.name,usableOnly)).id;if(!isSafePathSegment(id)){throw new ApiResponseError(
10
+ `\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return id}function status(input){const raw=nonEmpty(input.flags,"--status");if(raw===void 0)return void 0;const values=raw.split(",").map(value=>value.trim());const bad=values.filter(value=>!Object.hasOwn(STATUSES,value));if(bad.length>0)throw new UsageError(
11
+ `--status \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${bad.join(", ")||raw}`,STATUS_HELP);return[...new Set(values)].join(",")}function objectOf(body,key,label){const value=isRecord(body)&&body["result"]===true?body[key]:void 0;if(!isRecord(value)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}var listPaging=envelopePaging(
12
+ {label:`${LABEL}\u4E00\u89A7`,itemsKey:"reports"});function writtenReport(body){return objectOf(body,"report",LABEL)}function serverMessage(body){return isRecord(body)&&typeof body["message"]==="string"&&body["message"]!==""?[body["message"]]:[]}function formatRows(body){const list=isRecord(body)&&body["result"]===true?body["formats"]:void 0;if(!Array.isArray(list)||list.some(row=>!isRecord(row))){throw new ApiResponseError("\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B formats \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
13
+ return list}function formatSummary(row){const roles=isRecord(row["roles"])?row["roles"]:{};return pick({...row,writer:roles["writer"],reviewer:roles["reviewer"],admin:roles["admin"]},FORMAT_COLUMNS)}function text(value){return typeof value==="string"&&value!==""?value:void 0}function formColumns(format){const list=columnList(format["form_definition"]);if(list===void 0){throw new ApiResponseError("\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E form_definition \u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
14
+ return list.flatMap(column=>{if(!isRecord(column))return[];const options=Array.isArray(column["options"])?column["options"].flatMap(option=>{if(typeof option==="string")return[option];if(!isRecord(option)||option["is_legacy"]===true)return[];return[`${String(option["key"])}=${String(option["value"])}`]}):[];return[{name:text(column["name"])??text(column["column_name"])??text(column["id"])??"",displayName:text(column["display_name"])??text(column["label"])??"",type:text(column["type"])??text(column["\
15
+ column_type"]),required:truthy(column["required"]),options,defaultValue:column["default_value"]}]})}function namedColumns(format){return formColumns(format).filter(column=>column.name!=="")}function columnList(definition){if(definition===void 0||definition===null||definition==="")return[];if(typeof definition==="string"){try{return columnList(JSON.parse(definition))}catch{return void 0}}if(Array.isArray(definition))return definition;if(!isRecord(definition))return void 0;const list=Array.isArray(
16
+ definition["form_column_list"])?definition["form_column_list"]:definition["fields"];return Array.isArray(list)?list:void 0}var HARD_TYPES=new Set(["attachment_file","movie","file_reference","task","workflow_application"]);function initialValue(column){if(column.type==="workflow_application"||column.type==="task")return null;return typeof column.defaultValue==="string"&&column.defaultValue!==""?column.defaultValue:null}function titleLocked(format){return format["title_editable"]===false&&text(format["\
17
+ default_title"])!==void 0}function defaultTitle(format,now=new Date){const raw=text(format["default_title"])??text(format["name"]);if(raw===void 0)return void 0;const today=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tokyo"}).format(now);return raw.replace(/\{date\}/g,today)}function skeleton(format){const content={};for(const column of namedColumns(format))content[column.name]=initialValue(column);return titleLocked(format)?{content}:{title:defaultTitle(format)??null,content}}function skeletonNotes(format){
18
+ const columns=namedColumns(format);const notes=titleLocked(format)?[`\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306F\u30BF\u30A4\u30C8\u30EB\u3092\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u300C${String(format["default_title"])}\u300D\u304B\u3089\u4ED8\u3051\u307E\u3059\u3002title \u306F\u66F8\u304B\u306A\u3044\u3067\u304F\u3060\u3055\u3044\uFF09`]:[];if(columns.length===0)return[...notes,"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306B\u5165\u529B\u9805\u76EE\u306F\u3042\u308A\u307E\u305B\u3093\uFF08content \u306F\u7A7A\u306E\u307E\u307E\u3067\u4F5C\u308C\u307E\u3059\uFF09"];
19
+ return[...notes,`\u5165\u529B\u9805\u76EE: ${String(columns.length)} \u9805\u76EE\uFF08content \u306E\u30AD\u30FC\uFF09`,...columns.map(column=>` ${column.name}: ${column.displayName}\uFF08${column.type??"\u578B\u4E0D\u660E"}${column.required?"\u30FB\u63D0\u51FA\u306B\u5FC5\u9808":""}\uFF09${column.options.length>0?` \u9078\u629E\u80A2: ${column.options.join(" / ")}`:""}${column.type!==void 0&&HARD_TYPES.has(column.type)?" \u203BCLI \u304B\u3089\u306F\u5024\u3092\u4F5C\u308C\u306A\u3044\u578B\u3067\u3059\uFF08null \u306E\u307E\u307E\u306B\u3057\u3001\u8981\u308B\u306A\u3089\u753B\u9762\u3067\u5165\u529B\uFF09":
20
+ ""}`)]}function parseContent(textBody,source,usage){let parsed;try{parsed=JSON.parse(textBody)}catch{throw new UsageError(`\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,usage)}if(!isRecord(parsed)){throw new UsageError(`\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,CONTENT_HELP)}const unknown=Object.
21
+ keys(parsed).filter(key=>!CONTENT_KEYS.includes(key));if(unknown.length>0){throw new UsageError(`\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059: ${unknown.join(", ")}\uFF08${source}\uFF09`,CONTENT_HELP)}const title=parsed["title"];if(title!==void 0){if(typeof title!=="string"||title.trim()===""){throw new UsageError(`title \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\
22
+ \uFF09`,CONTENT_HELP)}if(charCount(title.trim())>TITLE_MAX_CHARS){throw new UsageError(`title \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${charCount(title.trim())} \u6587\u5B57\u30FB\u4E0A\u9650 ${TITLE_MAX_CHARS} \u6587\u5B57\uFF09`,CONTENT_HELP)}}if("content"in parsed&&!isRecord(parsed["content"])){throw new UsageError(`content \u306F\u300C\u9805\u76EE\u540D \u2192 \u5024\u300D\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,
23
+ CONTENT_HELP)}return parsed}async function readContent(input,usage){const body=await readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label:"\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9",maxChars:CONTENT_MAX_CHARS,usage});return body===void 0?void 0:parseContent(body,`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`,usage)}function checkAgainstFormat(content,format,usage,mode,existing=[]){const names=namedColumns(format).map(column=>column.name);const unknown=Object.
24
+ keys(content.content??{}).filter(key=>!names.includes(key)&&!existing.includes(key));if(unknown.length>0){throw new UsageError(`\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u300C${String(format["name"])}\u300D\u306B\u7121\u3044\u9805\u76EE\u540D\u3067\u3059: ${unknown.join(", ")}`,names.length>0?`\u4F7F\u3048\u308B\u9805\u76EE\u540D: ${names.join(", ")}`:"\u3053\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306B\u5165\u529B\u9805\u76EE\u306F\u3042\u308A\u307E\u305B\u3093\uFF08content \u306F\u7A7A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002")}
25
+ const dropped=mode==="create"?titleLocked(format):format["title_editable"]===false;if(content.title!==void 0&&dropped){throw new UsageError(`\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u300C${String(format["name"])}\u300D\u306F\u30BF\u30A4\u30C8\u30EB\u3092\u5909\u3048\u3089\u308C\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C title \u3092\u6368\u3066\u307E\u3059\uFF09`,`--content-file \u304B\u3089 title \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002${usage}`)}}function truthy(value){return!(value===
26
+ void 0||value===null||value===""||value===0||value===false||Number.isNaN(value))}function taskReference(value){if(typeof value==="string"){if(value==="")return{projectId:false,taskId:false};try{return taskReference(JSON.parse(value))}catch{return{projectId:false,taskId:false}}}const record=isRecord(value)?value:{};const has=key=>typeof record[key]==="string"&&record[key].trim()!=="";return{projectId:has("project_id"),taskId:has("task_id")}}function reportContent(report){const value=report["conte\
27
+ nt"];if(typeof value==="string"){try{const parsed=JSON.parse(value);if(isRecord(parsed))return parsed}catch{}return{}}return isRecord(value)?value:{}}function missingForSubmit(report,format){const missing=[];if(typeof report["title"]!=="string"||report["title"].trim()==="")missing.push("\u30BF\u30A4\u30C8\u30EB\uFF08title\uFF09");const content=reportContent(report);for(const column of formColumns(format)){const value=content[column.name];const label=column.name===""?column.displayName||"\u540D\u524D\u306E\u7121\u3044\u9805\u76EE":
28
+ `${column.displayName!==""?column.displayName:column.name}\uFF08${column.name}\uFF09`;if(column.type==="task"){const ref=taskReference(value);if(ref.projectId&&!ref.taskId){missing.push(`${label} \u306E\u8EE2\u8A18\u5148\u30BF\u30B9\u30AF`);continue}if(column.required&&!(ref.projectId&&ref.taskId))missing.push(label);continue}if(column.required&&!truthy(value))missing.push(label)}return missing}var LIST_USAGE="twp report list [--format <\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8>] [--status <\u72B6\u614B>] [--keyword <\u8A9E>] [--all] [--limit <\
29
+ \u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]";var GET_USAGE="twp report get <\u30EC\u30DD\u30FC\u30C8ID>";var CREATE_USAGE="twp report create --format <\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8> [--content-file <\u30D1\u30B9>] [--generate-cli-skeleton]";var UPDATE_USAGE="twp report update <\u30EC\u30DD\u30FC\u30C8ID> --content-file <\u30D1\u30B9>";var SUBMIT_USAGE="twp report submit <\u30EC\u30DD\u30FC\u30C8ID>";function listQuery(input){return{format_id:input.resolved?.["formatId"],status:status(
30
+ input),keyword:nonEmpty(input.flags,"--keyword")?.trim(),limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}var listOperation={name:"list",summary:`\u81EA\u5206\u304C\u66F8\u3044\u305F${LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65B0\u3057\u3044\u9806\uFF09`,usage:LIST_USAGE,description:`\u81EA\u5206\u304C\u4F5C\u6210\u3057\u305F\u30EC\u30DD\u30FC\u30C8\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF08\u78BA\u8A8D\u8005\u3068\u3057\u3066\u898B\u3089\u308C\u308B\u4ED6\u4EBA\u306E\u30EC\u30DD\u30FC\u30C8\u306F twp api /api/v2/reports/reviewer\uFF09\u3002
31
+ --format \u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3001--status \u306F\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF08--status new,rejected \u306E\u3088\u3046\u306B\u8907\u6570\u53EF\uFF09\u3002
32
+ ${STATUS_HELP}
33
+ \u65E5\u4ED8\u3067\u306F\u7D5E\u308A\u8FBC\u3081\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u4E00\u89A7\u304C\u53D7\u3051\u306A\u3044\u305F\u3081\uFF09\u3002\u76F4\u8FD1\u306E\u3082\u306E\u306F --limit \u3067\u8DB3\u308A\u307E\u3059\u3002
34
+
35
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\u4E00\u89A7\u306E content \u306F\u53D6\u5F97\u7D4C\u8DEF\u306B\u3088\u3063\u3066 JSON \u6587\u5B57\u5217\u306E\u3053\u3068\u304C
36
+ \u3042\u308B\u306E\u3067\u3001\u672C\u6587\u306F twp report get <\u30EC\u30DD\u30FC\u30C8ID> \u3067\u8AAD\u3093\u3067\u304F\u3060\u3055\u3044\u3002
37
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
38
+
39
+ `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,{...FORMAT_FLAG,summary:"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09"},{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080\uFF08new / completed / reviewed / rejected\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u8907\u6570\uFF09",takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--keyword",summary:"\u30BF\u30A4\u30C8\u30EB\u30FB\u672C\u6587\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080",
40
+ takesValue:true,placeholder:"<\u8A9E>"}],paging:listPaging,async prepare(input,ctx){noArgs(input,"list");listQuery(input);const ref=nonEmpty(input.flags,FORMAT_FLAG.name);return ref===void 0?input:withResolved(input,{formatId:await formatId(ref,ctx,false)})},plan:input=>({method:"GET",path:`${REPORTS_PATH}/writer`,query:listQuery(input)}),summarize:body=>listPaging.items(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listPaging.items(body)};var getOperation={name:"get",summary:`${LABEL}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\
41
+ \u793A\u3059\u308B\uFF08\u672C\u6587\u30FB\u30B3\u30E1\u30F3\u30C8\u3092\u542B\u3080\uFF09`,usage:GET_USAGE,description:`\u81EA\u5206\u306E\u30EC\u30DD\u30FC\u30C8\u306E\u307B\u304B\u3001\u78BA\u8A8D\u8005\u30FB\u7BA1\u7406\u8005\u3068\u3057\u3066\u898B\u3089\u308C\u308B\u30EC\u30DD\u30FC\u30C8\u3082\u8AAD\u3081\u307E\u3059\u3002
42
+ --output json \u306F\u672C\u6587\uFF08content\uFF1D\u9805\u76EE\u540D \u2192 \u5024\uFF09\u30FB\u30B3\u30E1\u30F3\u30C8\uFF08comments\uFF09\u30FB\u6A29\u9650\uFF08roles\uFF09\u3092\u542B\u3080\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
43
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[],plan:input=>({method:"GET",path:itemPath(reportIdArg(input,GET_USAGE))}),summarize:body=>pick(writtenReport(body),GET_COLUMNS),raw:writtenReport};function createResult(value){if(!isRecord(value)||typeof value["skeleton"]!=="boolean"){throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: report create \u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09")}
44
+ return value}function createPlan(input){const id=requireResolved(input,"formatId");if(input.flags.has(SKELETON_FLAG.name))return{method:"GET",path:`${REPORTS_PATH}/formats/${encodeURIComponent(id)}`};const body=JSON.parse(requireResolved(input,"body"));return{method:"POST",path:REPORTS_PATH,body:{...body,format_id:id}}}var createOperation={name:"create",summary:`${LABEL}\u3092\u4E0B\u66F8\u304D\u3067\u4F5C\u308B\uFF08\u63D0\u51FA\u306F twp report submit\uFF09`,usage:CREATE_USAGE,description:`POS\
45
+ T /api/v2/reports \u3067\u30EC\u30DD\u30FC\u30C8\u3092\u4E0B\u66F8\u304D\uFF08\u72B6\u614B new\uFF09\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\u3002\u78BA\u8A8D\u8005\u3078\u306F\u307E\u3060\u5C4A\u304D\u307E\u305B\u3093\u3002
46
+ --format \u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u540D\u524D\u30FB\u30B3\u30FC\u30C9\uFF08RF-000001\uFF09\u30FBID \u3067\u3059\u3002\u540D\u524D\u3068\u30B3\u30FC\u30C9\u306F\u3001\u4F5C\u6210\u3067\u304D\u308B\uFF08\u6709\u52B9\u3067\u53D7\u4ED8\u671F\u9593\u5185\u306E\uFF09
47
+ \u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304B\u3089\u5B8C\u5168\u4E00\u81F4\u3067\u63A2\u3057\u307E\u3059\uFF08\u540C\u540D\u304C\u3042\u308C\u3070\u30B3\u30FC\u30C9\u304B ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4E00\u89A7\u306F twp report format list\uFF09\u3002
48
+ --content-file \u3092\u7701\u304F\u3068\u3001\u30BF\u30A4\u30C8\u30EB\u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u65E2\u5B9A\uFF08\u7121\u3051\u308C\u3070\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u540D\uFF09\u30FB\u5165\u529B\u9805\u76EE\u306F\u7A7A\u306E\u4E0B\u66F8\u304D\u306B\u306A\u308A\u307E\u3059\u3002
49
+
50
+ ${CONTENT_HELP}
51
+
52
+ --generate-cli-skeleton \u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u5B9A\u7FA9\uFF08GET /api/v2/reports/formats/{id}\uFF09\u3092\u8AAD\u307F\u3001--content-file \u306B\u6E21\u3059
53
+ \u3072\u306A\u5F62\u3092\u6A19\u6E96\u51FA\u529B\u3078\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\uFF08\u30EC\u30DD\u30FC\u30C8\u306F\u4F5C\u308A\u307E\u305B\u3093\uFF09\u3002\u5404\u9805\u76EE\u306E\u8868\u793A\u540D\u30FB\u578B\u30FB\u5FC5\u9808\u30FB\u9078\u629E\u80A2\u306F stderr \u306B\u51FA\u307E\u3059\u3002
54
+ \u4F8B: twp report create --format \u65E5\u5831 --generate-cli-skeleton --output json > report.json
55
+
56
+ \u4F5C\u3063\u305F\u30EC\u30DD\u30FC\u30C8\u306E ID \u306F\u51FA\u529B\u306E id \u3067\u3059\u3002\u7D9A\u3051\u3066 twp report submit <\u30EC\u30DD\u30FC\u30C8ID> \u3067\u63D0\u51FA\u3057\u307E\u3059\u3002`,flags:[FORMAT_FLAG,CONTENT_FILE_FLAG,SKELETON_FLAG],async prepare(input,ctx){noArgs(input,"create");const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name)){throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",
57
+ CREATE_USAGE)}const content=wantsSkeleton?void 0:await readContent(input,CREATE_USAGE)??{};const ref=nonEmpty(input.flags,FORMAT_FLAG.name);if(ref===void 0)throw new UsageError("\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092 --format <\u540D\u524D|\u30B3\u30FC\u30C9|ID> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",CREATE_USAGE);const id=await formatId(ref,ctx,true);if(content===void 0)return withResolved(input,{formatId:id});const format=await ctx.resolver.reportRecord("format",id,FORMAT_FLAG.
58
+ name);checkAgainstFormat(content,format,CREATE_USAGE,"create");const title=content.title??defaultTitle(format);if(title===void 0)throw new UsageError("--content-file \u306B title \u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044",CREATE_USAGE);const body={title,content:content.content??{}};return withResolved(input,{formatId:id,body:JSON.stringify(body),titleFilled:content.title===void 0?title:""})},plan:createPlan,execute:async(input,ctx)=>({skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.
59
+ send(createPlan(input))}),plannedNotes(input){if(input.flags.has(SKELETON_FLAG.name))return["\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u5B9A\u7FA9\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u30EC\u30DD\u30FC\u30C8\u306F\u4F5C\u308A\u307E\u305B\u3093"];const filled=input.resolved?.["titleFilled"];return["\u4E0B\u66F8\u304D\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\uFF08\u63D0\u51FA\u306F twp report submit\uFF09",...filled!==void 0&&filled!==""?[`title \u304C\u7121\u3044\u306E\u3067\u300C${filled}\
60
+ \u300D\u3067\u4F5C\u308A\u307E\u3059`]:[]]},summarize(value){const result=createResult(value);return result.skeleton?skeleton(objectOf(result.body,"format","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8")):pick(writtenReport(result.body),WRITE_COLUMNS)},raw(value){const result=createResult(value);return result.skeleton?skeleton(objectOf(result.body,"format","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8")):writtenReport(result.body)},notes(value){const result=createResult(
61
+ value);return result.skeleton?skeletonNotes(objectOf(result.body,"format","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8")):serverMessage(result.body)}};var WRITE_FORBIDDEN="\u3053\u306E\u30EC\u30DD\u30FC\u30C8\u304B\u305D\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8AAD\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u6A29\u9650\uFF08\u66F8\u304F\u30FB\u78BA\u8A8D\u30FB\u7BA1\u7406\uFF09\u304C\u5916\u308C\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u5165\u529B\u9805\u76EE\u3092\u7167\u5408\u3067\u304D\u306A\u3044\u305F\u3081 CLI \u304B\u3089\u306F\u66F4\u65B0\u30FB\u63D0\u51FA\u3067\u304D\u307E\u305B\u3093\u3002\u753B\u9762\u304B\u3089\u64CD\u4F5C\u3059\u308B\u304B\u3001\u7BA1\u7406\u8005\u306B\u6A29\u9650\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
62
+ function reportFormatId(report){const id=report["format_id"];if(typeof id!=="string"||id===""){throw new ApiResponseError("\u30EC\u30DD\u30FC\u30C8\u306E\u5FDC\u7B54\u306B format_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return id}var updateOperation={name:"update",summary:`\u63D0\u51FA\u524D\uFF08\u4E0B\u66F8\u304D\u30FB\u5DEE\u3057\u623B\u3057\uFF09\u306E${LABEL}\u3092\u66F8\u304D\u63DB\u3048\u308B`,usage:UPDATE_USAGE,
63
+ description:"PUT /api/v2/reports/{id} \u3067\u30EC\u30DD\u30FC\u30C8\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\u66F8\u304D\u63DB\u3048\u3089\u308C\u308B\u306E\u306F\u81EA\u5206\u306E\u30EC\u30DD\u30FC\u30C8\u306E\u3046\u3061\u3001\n\u4E0B\u66F8\u304D\uFF08new\uFF09\u3068\u5DEE\u3057\u623B\u3055\u308C\u305F\u3082\u306E\uFF08rejected\uFF09\u3067\u3059\u3002\n\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u3044\u305F\u30AD\u30FC\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08title \u3092\u66F8\u304B\u306A\u3051\u308C\u3070\u30BF\u30A4\u30C8\u30EB\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0\uFE0F content \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9805\u76EE\u3054\u3068\u306E\u30DE\u30FC\u30B8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u753B\u9762\u3082\u5168\u9805\u76EE\u3092\u9001\u308A\u307E\u3059\uFF09\u3002\u4ECA\u306E\u5024\u306F\n twp report get <\u30EC\u30DD\u30FC\u30C8ID> --output json \u306E content \u3067\u53D6\u308C\u307E\u3059\u3002\n\n"+
64
+ CONTENT_HELP,flags:[CONTENT_FILE_FLAG],forbidden:WRITE_FORBIDDEN,async prepare(input,ctx){const id=reportIdArg(input,UPDATE_USAGE);const content=await readContent(input,UPDATE_USAGE);if(content===void 0||Object.keys(content).length===0){throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093\uFF09",
65
+ UPDATE_USAGE)}const report=await ctx.resolver.reportRecord("report",id,"<\u30EC\u30DD\u30FC\u30C8ID>");const format=await ctx.resolver.reportRecord("format",reportFormatId(report),"\u30EC\u30DD\u30FC\u30C8\u306E format_id");checkAgainstFormat(content,format,UPDATE_USAGE,"update",Object.keys(reportContent(report)));return withResolved(input,{body:JSON.stringify(content)})},plan:input=>({method:"PUT",path:itemPath(reportIdArg(input,UPDATE_USAGE)),body:JSON.parse(requireResolved(input,"body"))}),plannedNotes:input=>"\
66
+ content"in JSON.parse(requireResolved(input,"body"))?["content \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u30D5\u30A1\u30A4\u30EB\u306B\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09"]:[],summarize:body=>pick(writtenReport(body),WRITE_COLUMNS),raw:writtenReport,notes:serverMessage};var submitOperation={name:"submit",summary:`\u4E0B\u66F8\u304D\uFF08\u307E\u305F\u306F\u5DEE\u3057\u623B\u3055\u308C\u305F${LABEL}\uFF09\u3092\u63D0\u51FA\u3059\u308B`,
67
+ usage:SUBMIT_USAGE,description:"POST /api/v2/reports/{id}/complete \u3067\u30EC\u30DD\u30FC\u30C8\u3092\u63D0\u51FA\u3057\u307E\u3059\uFF08\u72B6\u614B completed\uFF09\u3002\u78BA\u8A8D\u8005\u306B\u5C4A\u304D\u307E\u3059\u3002\n\u63D0\u51FA\u3067\u304D\u308B\u306E\u306F\u4E0B\u66F8\u304D\uFF08new\uFF09\u3068\u5DEE\u3057\u623B\u3055\u308C\u305F\u3082\u306E\uFF08rejected\uFF09\u3067\u3059\u3002\u5185\u5BB9\u306F\u4ECA\u306E\u30EC\u30DD\u30FC\u30C8\u306E\u307E\u307E\u9001\u308A\u307E\u3059\n\uFF08\u5909\u3048\u308B\u306A\u3089\u5148\u306B twp report update\uFF09\u3002\n\u9001\u308B\u524D\u306B\u30EC\u30DD\u30FC\u30C8\u3068\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8AAD\u307F\u3001\u753B\u9762\u3068\u540C\u3058\u6761\u4EF6\uFF08\u30BF\u30A4\u30C8\u30EB\u304C\u7A7A\u3067\u306A\u3044\u30FB\u5FC5\u9808\u306E\u9805\u76EE\u304C\u57CB\u307E\u3063\u3066\u3044\u308B\uFF09\u3092\n\u78BA\u304B\u3081\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u63D0\u51FA\u6642\u306B\u5FC5\u9808\u9805\u76EE\u3092\u691C\u67FB\u3057\u306A\u3044\u305F\u3081\u3001\u3053\u3053\u3067\u6B62\u3081\u306A\u3044\u3068\u7A7A\u306E\u65E5\u5831\u304C\u5C4A\u304D\u307E\u3059\u3002",
68
+ flags:[],forbidden:WRITE_FORBIDDEN,async prepare(input,ctx){const id=reportIdArg(input,SUBMIT_USAGE);const report=await ctx.resolver.reportRecord("report",id,"<\u30EC\u30DD\u30FC\u30C8ID>");const format=await ctx.resolver.reportRecord("format",reportFormatId(report),"\u30EC\u30DD\u30FC\u30C8\u306E format_id");const missing=missingForSubmit(report,format);if(missing.length>0){throw new UsageError(`\u63D0\u51FA\u306B\u5FC5\u8981\u306A\u9805\u76EE\u304C\u7A7A\u3067\u3059: ${missing.join(" / ")}`,`t\
69
+ wp report update ${id} --content-file <\u30D1\u30B9> \u3067\u57CB\u3081\u3066\u304B\u3089\u63D0\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return report["is_owner"]===false?withResolved(input,{otherOwner:String(report["created_by_name"]??report["created_by"]??"")}):input},plan:input=>({method:"POST",path:itemPath(reportIdArg(input,SUBMIT_USAGE),"/complete"),body:{}}),plannedNotes:input=>["\u63D0\u51FA\u3059\u308B\u3068\u78BA\u8A8D\u8005\u306B\u5C4A\u304D\u307E\u3059\uFF08\u53D6\u308A\u4E0B\u3052\u306F\u753B\u9762\u304B\u3089\uFF09",
70
+ ...input.resolved?.["otherOwner"]!==void 0?[`\u26A0\uFE0F \u81EA\u5206\u306E\u30EC\u30DD\u30FC\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u4F5C\u6210\u8005: ${input.resolved["otherOwner"]||"\u4E0D\u660E"}\uFF09\u3002\u672C\u4EBA\u306B\u4EE3\u308F\u3063\u3066\u63D0\u51FA\u3057\u307E\u3059`]:[]],summarize:body=>pick(writtenReport(body),WRITE_COLUMNS),raw:writtenReport,notes:serverMessage};var formatResource={name:"format",summary:"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\uFF08\u65E5\u5831\u306E\u3072\u306A\u5F62\uFF09",
71
+ operations:[{name:"list",summary:"\u4F7F\u3048\u308B\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08--format \u306B\u6E21\u3059\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",usage:"twp report format list [--include-unavailable]",description:"\u65E2\u5B9A\u306F\u6709\u52B9\u3067\u53D7\u4ED8\u671F\u9593\u5185\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\uFF08\uFF1D\u4ECA\u30EC\u30DD\u30FC\u30C8\u3092\u4F5C\u308C\u308B\u3082\u306E\uFF09\u3060\u3051\u3067\u3059\u3002--include-unavailable \u3067\n\u7121\u52B9\u30FB\u671F\u9593\u5916\u3082\u51FA\u3057\u307E\u3059\uFF08\u904E\u53BB\u306E\u30EC\u30DD\u30FC\u30C8\u3092 --format \u3067\u7D5E\u308B\u3068\u304D\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u4EE5\u5916\u306F\u3001\u66F8\u304F\u30FB\u78BA\u8A8D\u3059\u308B\u30FB\n\u7BA1\u7406\u3059\u308B\u306E\u3044\u305A\u308C\u304B\u306E\u6A29\u9650\u304C\u3042\u308B\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3060\u3051\u304C\u51FA\u307E\u3059\uFF08writer / reviewer / admin \u5217\uFF09\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\u5165\u529B\u9805\u76EE\
72
+ \u306F twp report create --format <\u2026> --generate-cli-skeleton \u3067\u3002",flags:[{name:"--include-unavailable",summary:"\u7121\u52B9\u30FB\u53D7\u4ED8\u671F\u9593\u5916\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3082\u51FA\u3059",takesValue:false}],plan(input){noArgs(input,"format list");return{method:"GET",path:`${REPORTS_PATH}/formats`,query:input.flags.has("--include-unavailable")?void 0:{include_unavailable:"false"}}},summarize:body=>formatRows(body).map(formatSummary),raw:formatRows,
73
+ notes:body=>[`\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8: ${String(formatRows(body).length)} \u4EF6`]}]};var reportDomain={name:"report",summary:"\u30EC\u30DD\u30FC\u30C8\uFF08\u65E5\u5831\uFF09\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u63D0\u51FA\u3068\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u4E00\u89A7",operations:[listOperation,getOperation,createOperation,updateOperation,submitOperation],subresources:[formatResource]};export{defaultTitle,missingForSubmit,reportDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-M364RN3O.js";import"./chunk-CKGB7CLM.js";import"./chunk-GDM2QUBL.js";import"./chunk-5Q2CH4E7.js";import"./chunk-YVAN3H5W.js";import"./chunk-IOGVQVGD.js";import"./chunk-RM4ECBIO.js";import"./chunk-FTYJZFEK.js";import"./chunk-GMBJTG6A.js";import"./chunk-TAN5I2DP.js";import"./chunk-XNLIEUAW.js";
4
- import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-4OKUCLIC.js";import"./chunk-QQRJLH6B.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-U6RXDDAB.js";import"./chunk-6NEQ6PZZ.js";import"./chunk-BUZKNZ45.js";import"./chunk-IWIGE7U4.js";import"./chunk-GDM2QUBL.js";import"./chunk-IOGVQVGD.js";import"./chunk-WQRWQ7IM.js";import"./chunk-7CQKNDAE.js";import"./chunk-GMBJTG6A.js";import"./chunk-TAN5I2DP.js";import"./chunk-XNLIEUAW.js";
4
+ import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-523KROGI.js";import"./chunk-QQRJLH6B.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{estimateDomain,featureLicenseGuidance,invoiceDomain,licenseForbidden}from"./chunk-KRTG6HSA.js";import"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import"./chunk-RM4ECBIO.js";import"./chunk-FTYJZFEK.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";
3
+ import{estimateDomain,featureLicenseGuidance,invoiceDomain,licenseForbidden}from"./chunk-Z7GNYWCU.js";import"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import"./chunk-WQRWQ7IM.js";import"./chunk-7CQKNDAE.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";
4
4
  import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{estimateDomain,featureLicenseGuidance,invoiceDomain,licenseForbidden};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-EVR3OFVS.js";import"./chunk-DDKZ5IPT.js";import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-226G6ONZ.js";import{boundedText,decimal,isoDate,priority}from"./chunk-UDPJ2IGK.js";
4
- import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-RM4ECBIO.js";import"./chunk-FTYJZFEK.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";
3
+ import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-EVR3OFVS.js";import"./chunk-DDKZ5IPT.js";import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-FII7YYYZ.js";import{boundedText,decimal,isoDate,priority}from"./chunk-UDPJ2IGK.js";
4
+ import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-WQRWQ7IM.js";import"./chunk-7CQKNDAE.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";
5
5
  import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.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
6
  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(
7
7
  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!==
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-REPGG75N.js";import"./chunk-PWXXCLVZ.js";import"./chunk-D233KKXW.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-2NKVGAAE.js";import"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{fetchLatestVersion,isBehindLatest,runUpdate};
3
+ import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-DU42VCON.js";import"./chunk-77DFFCZF.js";import"./chunk-XNLIEUAW.js";import"./chunk-D233KKXW.js";import"./chunk-J7QYPKVK.js";import"./chunk-2NKVGAAE.js";import"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{fetchLatestVersion,isBehindLatest,runUpdate};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-2M2JQ23W.js";import{decodeCsvText,readCsvFileText}from"./chunk-I6DWJXPC.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-226G6ONZ.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-UDPJ2IGK.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-RM4ECBIO.js";import{ApiError}from"./chunk-FTYJZFEK.js";
3
+ import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-2M2JQ23W.js";import{decodeCsvText,readCsvFileText}from"./chunk-I6DWJXPC.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-FII7YYYZ.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-UDPJ2IGK.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-WQRWQ7IM.js";import{ApiError}from"./chunk-7CQKNDAE.js";
4
4
  import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,positiveInteger,shellQuote}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";
5
5
  import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs2 from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
6
6
  return list}async function nameMap(ctx,path,label2){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readBody}from"./chunk-HGTG5XQ7.js";import{WORKFLOWS_PATH}from"./chunk-RM4ECBIO.js";import"./chunk-FTYJZFEK.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
3
+ import{readBody}from"./chunk-HGTG5XQ7.js";import{WORKFLOWS_PATH}from"./chunk-WQRWQ7IM.js";import"./chunk-7CQKNDAE.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-R53CMVWR.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
4
4
  import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var WORKFLOW_FLAG={name:"--workflow",summary:"\u7533\u8ACB\u66F8\uFF08\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF09\u306E\u540D\u524D\u304B ID \u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>"};var CATEGORIES={undefined:"\u6C4E\u7528",paid_holiday:"\u6709\u7D66\u4F11\u6687",substitute_holiday:"\u632F\u66FF\u4F11\u6687",comp_holiday:"\u4EE3\u4F11",absence:"\u6B20\u52E4",special_holiday:"\u7279\u5225\u4F11\u6687",other_leave:"\u305D\u306E\u4ED6\u4F11\u6687\u30FB\u6B20\u52E4",
5
5
  sales:"\u53D6\u5F15",commuting_expenses:"\u901A\u52E4\u4EA4\u901A\u8CBB",cms_publish:"\u30B3\u30F3\u30C6\u30F3\u30C4\u516C\u958B",equipment_lending:"\u5099\u54C1\u8CB8\u51FA",ai_tool_license:"AI\u30C4\u30FC\u30EB\u30E9\u30A4\u30BB\u30F3\u30B9",qualification_bonus:"\u5408\u683C\u304A\u795D\u3044\u91D1"};var CATEGORY_HELP=`\u30AB\u30C6\u30B4\u30EA: ${Object.entries(CATEGORIES).map(([key,label])=>`${key}\uFF08${label}\uFF09`).join(" / ")}`;var WORKFLOW_STATUSES=["active","inactive","draft"];var INSTANCE_STATUSES=[
6
6
  "new","in_progress","approved","rejected","canceled","sent_back"];var INSTANCE_STATUS_HELP="\u72B6\u614B: new\uFF08\u4E0B\u66F8\u304D\uFF09/ in_progress\uFF08\u627F\u8A8D\u5F85\u3061\uFF09/ approved\uFF08\u627F\u8A8D\u6E08\u307F\uFF09/ rejected\uFF08\u5374\u4E0B\uFF09/ canceled\uFF08\u53D6\u6D88\uFF09/ sent_back\uFF08\u5DEE\u3057\u623B\u3057\uFF09";var WORKFLOW_COLUMNS=["id","name","defined_category","status","is_hidden","valid_from","valid_to"];var WORKFLOW_ADMIN_COLUMNS=[...WORKFLOW_COLUMNS,"s\
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.34.0",
3
+ "version": "0.35.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var DOMAIN_NAMES=["agent-loop","attendance","backlog","company","customer","department","estimate","inquiry","invoice","job-title","leave","media","notification","position","project","shift","storage","task","user","workchange","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,6 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var LOADERS={"agent-loop":async()=>(await import("./agent-loop-SP2UKXIG.js")).agentLoopDomain,attendance:async()=>(await import("./attendance-LM3Q4TAU.js")).attendanceDomain,backlog:async()=>(await import("./backlog-OQ5JJ6F6.js")).backlogDomain,company:async()=>(await import("./company-E3VKXS75.js")).companyDomain,customer:async()=>(await import("./company-E3VKXS75.js")).customerDomain,department:async()=>(await import("./department-G4H75GGM.js")).departmentDomain,estimate:async()=>(await import("./sales-W2DV7FWL.js")).
4
- estimateDomain,inquiry:async()=>(await import("./inquiry-4SUKNVMY.js")).inquiryDomain,invoice:async()=>(await import("./sales-W2DV7FWL.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-T3P3625A.js")).jobTitleDomain,leave:async()=>(await import("./leave-7MXKEOQ2.js")).leaveDomain,media:async()=>(await import("./media-TZWSBMCP.js")).mediaDomain,notification:async()=>(await import("./notification-CA2LOXPS.js")).notificationDomain,position:async()=>(await import("./position-GDOY4TFK.js")).
5
- positionDomain,project:async()=>(await import("./project-ROLQ535L.js")).projectDomain,shift:async()=>(await import("./attendance-lists-PR6NQDQB.js")).shiftDomain,storage:async()=>(await import("./storage-ANKKJJJO.js")).storageDomain,task:async()=>(await import("./task-75VRLRYO.js")).taskDomain,user:async()=>(await import("./user-VRIXQF5Q.js")).userDomain,workchange:async()=>(await import("./attendance-lists-PR6NQDQB.js")).workchangeDomain,workflow:async()=>(await import("./workflow-OFA6XJOV.js")).
6
- workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,10 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{httpFetch}from"./chunk-J7QYPKVK.js";function encodeScalar(key,value,inArray){if(typeof value==="boolean")return value?"true":"false";if(typeof value==="number"){if(!Number.isFinite(value)){throw new TypeError(`\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF ${key} \u306B\u6709\u9650\u3067\u306A\u3044\u6570\u5024\u306F\u6E21\u305B\u307E\u305B\u3093: ${String(value)}`)}return String(value)}if(inArray&&value.includes(",")){throw new TypeError(`\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF ${key} \u306E\u914D\u5217\u8981\u7D20\u306B\u30AB\u30F3\u30DE\u306F\u542B\u3081\u3089\u308C\u307E\u305B\u3093: ${value}`)}
4
- return value}function buildQuery(params){if(!params)return"";const search=new URLSearchParams;for(const[key,value]of Object.entries(params)){if(value===null||value===void 0)continue;if(Array.isArray(value)){if(value.length===0)continue;search.append(key,value.map(v=>encodeScalar(key,v,true)).join(","));continue}search.append(key,encodeScalar(key,value,false))}return search.toString()}function appendQuery(path,params){const qs=buildQuery(params);if(qs==="")return path;if(path.endsWith("?")||path.
5
- endsWith("&"))return`${path}${qs}`;return`${path}${path.includes("?")?"&":"?"}${qs}`}var ApiError=class extends Error{constructor(status,body,method,path){super(`${method} ${path} -> ${status}${reasonOf(body)}`);this.status=status;this.body=body}status;body};function reasonOf(body){const head=body?.error_description||body?.message||"";const detail=errorListMessages(body?.error_list).filter(text=>!text.endsWith(`: ${head}`)&&text!==head).join(" / ");if(head!==""&&detail!=="")return` (${head} ${detail})`;if(head!=="")return` (${head})`;return detail!==""?` (${detail})`:""}var TwpApiClient=class{constructor(apiUrl,session,fetchImpl=httpFetch,cliVersion="\
6
- 0.0.0-dev"){this.apiUrl=apiUrl;this.session=session;this.fetchImpl=fetchImpl;this.cliVersion=cliVersion}apiUrl;session;fetchImpl;cliVersion;async get(path,query){return this.request("GET",appendQuery(path,query))}async post(path,body,query){return this.request("POST",appendQuery(path,query),body)}async put(path,body,query){return this.request("PUT",appendQuery(path,query),body)}async patch(path,body,query){return this.request("PATCH",appendQuery(path,query),body)}async delete(path,query){return this.
7
- request("DELETE",appendQuery(path,query))}async requestBinary(method,path){let token=await this.session.getAccessToken();let res=await this.send(method,path,token);if(res.status===401){token=await this.session.refresh(token);res=await this.send(method,path,token)}if(!res.ok){const errBody=await res.json().then(parsed=>parsed,()=>null);throw new ApiError(res.status,errBody,method,path)}return{bytes:new Uint8Array(await res.arrayBuffer()),contentType:res.headers.get("content-type")}}async request(method,path,body){
8
- let token=await this.session.getAccessToken();let res=await this.send(method,path,token,body);if(res.status===401){token=await this.session.refresh(token);res=await this.send(method,path,token,body)}if(!res.ok){const errBody=await res.json().then(parsed=>parsed,()=>null);throw new ApiError(res.status,errBody,method,path)}if(res.status===204||res.headers.get("content-length")==="0"){return null}const raw=await res.text();if(raw.trim()==="")return null;try{return JSON.parse(raw)}catch{throw new ApiError(
9
- res.status,null,method,path)}}send(method,path,token,body){return this.fetchImpl(`${this.apiUrl}${path}`,{method,headers:{Accept:"application/json",Authorization:`Bearer ${token}`,"User-Agent":`twp-cli/${this.cliVersion}`,...body!==void 0?{"Content-Type":"application/json"}:{}},...body!==void 0?{body:JSON.stringify(body)}:{}})}};function errorListMessages(list){if(Array.isArray(list)){return list.flatMap(item=>{if(typeof item!=="object"||item===null)return[];const{name,message}=item;if(typeof message!==
10
- "string"||message==="")return[];return[typeof name==="string"&&name!==""?`${name}: ${message}`:message]})}if(typeof list==="object"&&list!==null){return Object.entries(list).flatMap(([name,messages])=>(Array.isArray(messages)?messages:[messages]).filter(message=>typeof message==="string"&&message!=="").map(message=>`${name}: ${message}`))}return[]}export{appendQuery,ApiError,TwpApiClient,errorListMessages};