@tocca-systems/twp-cli 0.33.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 (57) hide show
  1. package/CHANGELOG.public.md +12 -0
  2. package/README.md +90 -0
  3. package/dist/{agent-loop-ADP6AOWX.js → agent-loop-SP2UKXIG.js} +1 -1
  4. package/dist/{ai-dispatch-KXRNV4UZ.js → ai-dispatch-LY6OVZC3.js} +1 -1
  5. package/dist/{api-command-62Q7Y5C6.js → api-command-AHVUUK3I.js} +3 -3
  6. package/dist/{app-ZISAG2EN.js → app-JPJHLNTW.js} +4 -4
  7. package/dist/{auto-update-worker-Y44TD6FD.js → auto-update-worker-73HBKKVT.js} +1 -1
  8. package/dist/{backlog-7BCJWAE2.js → backlog-NS2V3WKG.js} +5 -6
  9. package/dist/chunk-523KROGI.js +3 -0
  10. package/dist/{chunk-5Q2CH4E7.js → chunk-6NEQ6PZZ.js} +1 -1
  11. package/dist/{chunk-PWXXCLVZ.js → chunk-77DFFCZF.js} +1 -1
  12. package/dist/chunk-7CQKNDAE.js +20 -0
  13. package/dist/chunk-A2MX47LP.js +85 -0
  14. package/dist/{chunk-YVAN3H5W.js → chunk-BUZKNZ45.js} +3 -3
  15. package/dist/{chunk-REPGG75N.js → chunk-DU42VCON.js} +1 -1
  16. package/dist/{chunk-FJESEWMF.js → chunk-EVR3OFVS.js} +1 -1
  17. package/dist/{chunk-V4UGLDEH.js → chunk-FII7YYYZ.js} +1 -1
  18. package/dist/chunk-I6DWJXPC.js +4 -0
  19. package/dist/chunk-IWIGE7U4.js +6 -0
  20. package/dist/{chunk-ONTK2FR4.js → chunk-L52XJFJR.js} +1 -1
  21. package/dist/{chunk-OK4ITT5Y.js → chunk-N4ZW4IVU.js} +2 -2
  22. package/dist/chunk-R53CMVWR.js +21 -0
  23. package/dist/{chunk-AX5GOOZP.js → chunk-U6RXDDAB.js} +11 -11
  24. package/dist/{chunk-AGEDFRUQ.js → chunk-VQMR5UTD.js} +1 -1
  25. package/dist/chunk-WQRWQ7IM.js +94 -0
  26. package/dist/chunk-Z7GNYWCU.js +40 -0
  27. package/dist/cli.js +73 -9
  28. package/dist/{commands-MW7XRREL.js → commands-M4B3MDUA.js} +4 -4
  29. package/dist/{commands-4DNJTCOG.js → commands-RQQN7TXW.js} +2 -2
  30. package/dist/company-4O3HA6A2.js +26 -0
  31. package/dist/{completion-RGC3UZFI.js → completion-DGJH42YO.js} +1 -1
  32. package/dist/{department-XVOQ254P.js → department-XRIBRAQE.js} +1 -1
  33. package/dist/{inquiry-EY5XY4UP.js → inquiry-LOH3OKG3.js} +1 -1
  34. package/dist/{job-title-QHIKTYLH.js → job-title-EMRVK4RO.js} +1 -1
  35. package/dist/{leave-C6K724AF.js → leave-BGDVEHQ7.js} +1 -1
  36. package/dist/{media-BFCZJMEU.js → media-OQRJYMJT.js} +1 -1
  37. package/dist/{notification-6T22IDIZ.js → notification-4DFO464P.js} +1 -1
  38. package/dist/{oneshot-IZCRIJJJ.js → oneshot-QLTXLUSM.js} +1 -1
  39. package/dist/{position-SBZD7AFE.js → position-3NRFWS3E.js} +1 -1
  40. package/dist/{project-RAYRR6JS.js → project-ROLQ535L.js} +1 -1
  41. package/dist/prospect-7L2UUNY3.js +107 -0
  42. package/dist/{registry-AZJFULY5.js → registry-XL6Z2QCB.js} +1 -1
  43. package/dist/{render-K45EOLHX.js → render-W523YEYF.js} +1 -1
  44. package/dist/report-YIOEMKUU.js +73 -0
  45. package/dist/{run-YKAUZRCI.js → run-N5EIN5WQ.js} +2 -2
  46. package/dist/sales-7DTKXDMD.js +4 -0
  47. package/dist/{server-skills-MW6YNLNT.js → server-skills-NXSUDHBD.js} +1 -1
  48. package/dist/{task-GKHDJZLP.js → task-CBJOR2GF.js} +2 -2
  49. package/dist/{update-MAQJ6VWV.js → update-3D2CMAIV.js} +1 -1
  50. package/dist/{user-GPAPJUHB.js → user-TNGMHVOJ.js} +8 -9
  51. package/dist/{workflow-EOEEPABZ.js → workflow-XDGT7L6G.js} +1 -1
  52. package/package.json +1 -1
  53. package/dist/chunk-EIA24ITC.js +0 -5
  54. package/dist/chunk-FTYJZFEK.js +0 -10
  55. package/dist/chunk-G4OO4M44.js +0 -16
  56. package/dist/chunk-LON7FN5A.js +0 -66
  57. package/dist/chunk-WBAEUHJB.js +0 -3
@@ -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-EIA24ITC.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-AX5GOOZP.js";import"./chunk-EIA24ITC.js";import"./chunk-GDM2QUBL.js";import"./chunk-5Q2CH4E7.js";import"./chunk-YVAN3H5W.js";import"./chunk-IOGVQVGD.js";import"./chunk-LON7FN5A.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-WBAEUHJB.js";import"./chunk-QQRJLH6B.js";import"./chunk-K2ONOH3L.js";import"./chunk-WVS4W5FY.js";import"./chunk-NHYMHCAT.js";import"./chunk-G4OO4M44.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};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
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
+ import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{estimateDomain,featureLicenseGuidance,invoiceDomain,licenseForbidden};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-ONTK2FR4.js";import"./chunk-VK2Z4QGC.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-QWSXHHFT.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
3
+ import{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-L52XJFJR.js";import"./chunk-QWSXHHFT.js";import"./chunk-VK2Z4QGC.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
@@ -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-FJESEWMF.js";import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-V4UGLDEH.js";import{boundedText,decimal,isoDate,priority}from"./chunk-UDPJ2IGK.js";import{PRIVATE_TASKS_PATH,
4
- TASK_MASTERS}from"./chunk-LON7FN5A.js";import"./chunk-FTYJZFEK.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-DDKZ5IPT.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-G4OO4M44.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,9 +1,8 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-V4UGLDEH.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-UDPJ2IGK.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-2M2JQ23W.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-LON7FN5A.js";import{ApiError}from"./chunk-FTYJZFEK.js";import{ResolveError,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,flagSegment,nonEmpty,positiveInteger,shellQuote}from"./chunk-G4OO4M44.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";
5
- import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs3 from"fs";import fs from"fs";var BOM=new RegExp(`^${String.fromCharCode(65279)}`);function decodeCsvText(bytes){try{return new TextDecoder("utf-8",{fatal:true}).decode(bytes).replace(BOM,"")}catch{return new TextDecoder("shift_jis").decode(bytes)}}function readCsvFileText(file,usage,maxBytes,tooLarge){try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>maxBytes)
6
- throw tooLarge(stat.size);return decodeCsvText(fs.readFileSync(file))}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
3
+ import{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
+ 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
+ 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")}
7
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\
8
7
  \u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
9
8
  message}\uFF09\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}}function assignmentPlan(input){const suffix=input.flags.has("--current")?"/assignments/current":"/assignments";return{method:"GET",path:`/api/v2/organization/users/${userPath(input,suffix)}`}}var listOperation={name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user assignment list <\u30E6\u30FC\u30B6\u30FC> [--current]",
@@ -134,7 +133,7 @@ newPosition;return withResolved(resolved,inherited)},plan(input){if(isBulk(input
134
133
  input,"userId"),departmentId:requireResolved(input,"department_id"),startDate:isoDate(input,START_DATE_FLAG.name),existingIds:existingIdsOf(input),current};ctx.warn((await partialMoveLines(ctx,target,!(err instanceof ApiError))).join("\n"))}throw err}},summarize:body=>isBulkBody(body)?bulkSummary(body):writeSummary(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),raw:body=>isBulkBody(body)?bulkRaw(body):writeResult(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),notes(body,input){if(isBulkBody(
135
134
  body))return bulkNotes(body);const notes=[...previousPrimaryNotes(body)];const current=currentPrimaryOf(input);const created=isRecord(body)&&isRecord(body["assignment"])?strOrNull(body["assignment"]["id"]):null;if(current!==null&&created!==null){const startDate=isoDate(input,START_DATE_FLAG.name);const immediate=startDate<=(input.resolved?.["today"]??"");const commands=revertCommands(requireResolved(input,"userId"),current,created,immediate);const later=immediate?"":`
136
135
  \uFF08${startDate} \u4EE5\u964D\u306B\u623B\u3059\u3068\u304D\u306F\u30012\u672C\u76EE\u306B --primary true \u3068\u5143\u306E\u89B3\u5BDF\u8005\u306E --observer \u3082\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF09`;notes.push(`\u53D6\u308A\u6D88\u3059\u306B\u306F:
137
- ${commands.map(c=>` ${c}`).join("\n")}${later}`)}return notes}};var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09\u306E\u53C2\u7167\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u30FB\u4ED8\u3051\u66FF\u3048",operations:[listOperation,createOperation,updateOperation,endOperation,deleteOperation,moveOperation]};import fs2 from"fs";var LOGIN_HISTORY_RETENTION_DAYS=90;var DEFAULT_INACTIVE_DAYS=60;var DEFAULT_MAX_USERS=2e3;var LIST_PAGE_LIMIT=100;var MATRIX_PAGE_LIMIT=200;var LOGIN_HISTORY_LIMIT=500;var CONCURRENCY=4;var SEND_PER_MINUTE=200;var SEND_BURST=30;var RATE_LIMIT_WAIT_MS=6e4;var RATE_LIMIT_RETRIES=2;var LEDGER_MAX_BYTES=5*1024*1024;var USAGE="twp user export [--file <\u53F0\u5E33CSV>] [--include-disabled] [--exclude-hidden] [--inactive-days <\u65E5\u6570>] [--code-column <\u5217\u540D>] [--name-column <\u5217\u540D>] [--email-column <\u5217\u540D>] [--department-c\
136
+ ${commands.map(c=>` ${c}`).join("\n")}${later}`)}return notes}};var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09\u306E\u53C2\u7167\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u30FB\u4ED8\u3051\u66FF\u3048",operations:[listOperation,createOperation,updateOperation,endOperation,deleteOperation,moveOperation]};import fs from"fs";var LOGIN_HISTORY_RETENTION_DAYS=90;var DEFAULT_INACTIVE_DAYS=60;var DEFAULT_MAX_USERS=2e3;var LIST_PAGE_LIMIT=100;var MATRIX_PAGE_LIMIT=200;var LOGIN_HISTORY_LIMIT=500;var CONCURRENCY=4;var SEND_PER_MINUTE=200;var SEND_BURST=30;var RATE_LIMIT_WAIT_MS=6e4;var RATE_LIMIT_RETRIES=2;var LEDGER_MAX_BYTES=5*1024*1024;var USAGE="twp user export [--file <\u53F0\u5E33CSV>] [--include-disabled] [--exclude-hidden] [--inactive-days <\u65E5\u6570>] [--code-column <\u5217\u540D>] [--name-column <\u5217\u540D>] [--email-column <\u5217\u540D>] [--department-c\
138
137
  olumn <\u5217\u540D>] [--position-column <\u5217\u540D>] [--max-users <\u4EBA\u6570>]";var HELP="twp user export help";var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});var LEDGER_ROLES=["code","name","email","department","position"];var ROLE_LABEL={code:"\u793E\u54E1\u756A\u53F7",name:"\u6C0F\u540D",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",department:"\u90E8\u7F72",position:"\u5F79\u8077"};var COLUMN_CANDIDATES={code:["\u793E\u54E1\u756A\u53F7","\u5F93\u696D\u54E1\u756A\u53F7",
139
138
  "\u793E\u54E1\u30B3\u30FC\u30C9","\u5F93\u696D\u54E1\u30B3\u30FC\u30C9","employee_code","employee_no"],name:["\u6C0F\u540D","\u540D\u524D","\u793E\u54E1\u540D","\u5F93\u696D\u54E1\u540D","name","user_name"],email:["\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9","\u4F1A\u793E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9","email","login_id"],department:["\u90E8\u7F72","\u90E8\u7F72\u540D","\u6240\u5C5E\u90E8\u7F72","department","department_name"],position:["\u5F79\u8077","\u5F79\u8077\u540D","position",
140
139
  "position_name"]};function parseCsvRecords(text){const records=[];let cells=[];let field="";let quoted=false;let started=false;let line=1;let recordLine=1;let i=0;const pushRecord=()=>{cells.push(field);records.push({line:recordLine,cells});cells=[];field="";started=false};while(i<text.length){const ch=text[i];if(quoted){if(ch==='"'){if(text[i+1]==='"'){field+='"';i+=2;continue}quoted=false}else if(ch==="\r"||ch==="\n"){if(ch==="\r"&&text[i+1]==="\n")i+=1;line+=1;field+="\n"}else{field+=ch}i+=1;
@@ -146,8 +145,8 @@ function normalizeHeader(value){return value.normalize("NFKC").trim().toLowerCas
146
145
  header.cells,overrides);const rows=[];const errors=[];const seen={code:new Map,email:new Map};for(const record of body){const value=role=>{const index=columns[role];if(index===void 0)return void 0;const raw=(record.cells[index]??"").trim();return raw===""?void 0:raw};const cells={};for(const role of LEDGER_ROLES){const v=value(role);if(v!==void 0)cells[role]=v}const row={line:record.line,...cells};if(row.code===void 0&&row.email===void 0&&row.name===void 0){errors.push(`${record.line} \u884C\u76EE: \u793E\u54E1\u756A\u53F7\u30FB\u30E1\
147
146
  \u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u6C0F\u540D\u304C\u3059\u3079\u3066\u7A7A\u3067\u3059`);continue}let duplicated=false;for(const role of["code","email"]){const v=row[role];if(v===void 0)continue;const first=seen[role].get(normalizeValue(v));if(first!==void 0){errors.push(`${record.line} \u884C\u76EE: ${ROLE_LABEL[role]} ${v} \u306F ${first} \u884C\u76EE\u3068\u91CD\u8907\u3057\u3066\u3044\u307E\u3059`);duplicated=true}else{seen[role].set(normalizeValue(v),record.line)}}if(!duplicated)rows.
148
147
  push(row)}if(errors.length>0){throw new UsageError(`\u53F0\u5E33 CSV \u306B\u4E0D\u6B63\u306A\u884C\u304C ${errors.length} \u884C\u3042\u308A\u307E\u3059:
149
- ${errors.join("\n ")}`,HELP)}return{header:header.cells.map(h=>h.trim()),columns,rows}}function readLedgerFile(file){let fd;try{fd=fs2.openSync(file,"r");if(!fs2.fstatSync(fd).isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,HELP);const buffer=Buffer.alloc(LEDGER_MAX_BYTES+1);let total=0;for(;;){const n=fs2.readSync(fd,buffer,total,buffer.length-total,null);if(n===0)break;total+=n;if(total>
150
- LEDGER_MAX_BYTES){throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059: ${file}`,`\u4E0A\u9650\u306F ${LEDGER_MAX_BYTES} \u30D0\u30A4\u30C8\u3067\u3059\u3002`)}}return buffer.subarray(0,total)}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,HELP)}finally{if(fd!==void 0)fs2.closeSync(fd)}}
148
+ ${errors.join("\n ")}`,HELP)}return{header:header.cells.map(h=>h.trim()),columns,rows}}function readLedgerFile(file){let fd;try{fd=fs.openSync(file,"r");if(!fs.fstatSync(fd).isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,HELP);const buffer=Buffer.alloc(LEDGER_MAX_BYTES+1);let total=0;for(;;){const n=fs.readSync(fd,buffer,total,buffer.length-total,null);if(n===0)break;total+=n;if(total>
149
+ LEDGER_MAX_BYTES){throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059: ${file}`,`\u4E0A\u9650\u306F ${LEDGER_MAX_BYTES} \u30D0\u30A4\u30C8\u3067\u3059\u3002`)}}return buffer.subarray(0,total)}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,HELP)}finally{if(fd!==void 0)fs.closeSync(fd)}}
151
150
  var KIND_LABEL={not_in_ledger:"\u53F0\u5E33\u306B\u3044\u306A\u3044\uFF08\u5931\u52B9\u6F0F\u308C\uFF09",missing_in_twp:"TWP \u306B\u3044\u306A\u3044\uFF08\u767B\u9332\u6F0F\u308C\uFF09",disabled_in_twp:"TWP \u3067\u5931\u52B9\u3057\u3066\u3044\u308B\uFF08\u8AA4\u5931\u52B9\uFF09",ambiguous:"\u8907\u6570\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u4E00\u81F4\uFF08\u7A81\u304D\u5408\u308F\u305B\u3067\u304D\u306A\u3044\uFF09",department_mismatch:"\u90E8\u7F72\u304C\u9055\u3046\uFF08\u7570\u52D5\u306E\u53CD\u6620\u6F0F\u308C\uFF09",
152
151
  position_mismatch:"\u5F79\u8077\u304C\u9055\u3046\uFF08\u7570\u52D5\u306E\u53CD\u6620\u6F0F\u308C\uFF09",inactive:"\u9577\u671F\u9593\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u306A\u3044"};function str(value){return typeof value==="string"&&value!==""?value:null}function listPlan(input,cursor){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:LIST_PAGE_LIMIT,cursor,include_hidden:input.flags.has("--exclude-hidden")?void 0:"true"}}}var sleep=ms=>new Promise(resolve=>setTimeout(resolve,
153
152
  ms));function pacedSender(ctx){const intervalMs=6e4/SEND_PER_MINUTE;let tokens=SEND_BURST;let last=Date.now();let chain=Promise.resolve();const take=()=>{chain=chain.then(async()=>{const now=Date.now();tokens=Math.min(SEND_BURST,tokens+(now-last)/intervalMs);last=now;if(tokens<1){await sleep((1-tokens)*intervalMs);tokens=1;last=Date.now()}tokens-=1});return chain};return async plan=>{for(let attempt=0;;attempt+=1){await take();try{return await ctx.send(plan)}catch(err){if(!(err instanceof ApiError)||
@@ -283,8 +282,8 @@ var PASSWORD_HINT="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F --password-file \u306B\u
283
282
  function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function roleType(input){const raw=input.flags.get("--role");if(raw===void 0)return void 0;const type=ROLE_TO_TYPE[raw.trim().toLowerCase()];if(type===void 0){throw new UsageError(`--role \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F admin\uFF08\u7BA1\u7406\u8005\uFF09/ user\uFF08\u4E00\u822C\uFF09\u3067\u3059\u3002")}
284
283
  return type}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){const file=input.flags.get(PASSWORD_FILE_FLAG.
285
284
  name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
286
- const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs3.statSync(file);if(!stat.isFile())throw new UsageError(`--passwor\
287
- d-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs3.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \
285
+ const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs2.statSync(file);if(!stat.isFile())throw new UsageError(`--passwor\
286
+ d-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs2.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \
288
287
  \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){
289
288
  const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;for(const field of DISPLAY_FIELDS){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.key]=value}return body}function writeAck(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(
290
289
  `${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["\
@@ -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-LON7FN5A.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-G4OO4M44.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.33.0",
3
+ "version": "0.35.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,5 +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-ADP6AOWX.js")).agentLoopDomain,attendance:async()=>(await import("./attendance-LM3Q4TAU.js")).attendanceDomain,backlog:async()=>(await import("./backlog-7BCJWAE2.js")).backlogDomain,department:async()=>(await import("./department-XVOQ254P.js")).departmentDomain,inquiry:async()=>(await import("./inquiry-EY5XY4UP.js")).inquiryDomain,"job-title":async()=>(await import("./job-title-QHIKTYLH.js")).jobTitleDomain,leave:async()=>(await import("./leave-C6K724AF.js")).
4
- leaveDomain,media:async()=>(await import("./media-BFCZJMEU.js")).mediaDomain,notification:async()=>(await import("./notification-6T22IDIZ.js")).notificationDomain,position:async()=>(await import("./position-SBZD7AFE.js")).positionDomain,project:async()=>(await import("./project-RAYRR6JS.js")).projectDomain,shift:async()=>(await import("./attendance-lists-PR6NQDQB.js")).shiftDomain,storage:async()=>(await import("./storage-ANKKJJJO.js")).storageDomain,task:async()=>(await import("./task-GKHDJZLP.js")).
5
- taskDomain,user:async()=>(await import("./user-GPAPJUHB.js")).userDomain,workchange:async()=>(await import("./attendance-lists-PR6NQDQB.js")).workchangeDomain,workflow:async()=>(await import("./workflow-EOEEPABZ.js")).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};