@tocca-systems/twp-cli 0.92.0 → 0.93.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 (108) hide show
  1. package/CHANGELOG.public.md +8 -0
  2. package/README.md +62 -1
  3. package/dist/{agent-SX7Z5BVN.js → agent-JNWPWVHF.js} +1 -1
  4. package/dist/{agent-loop-QV7WHT7B.js → agent-loop-HMSOMXFI.js} +2 -2
  5. package/dist/{ai-dispatch-YPQGMOBK.js → ai-dispatch-FVHIWBCX.js} +2 -2
  6. package/dist/{analysis-6MPLKJUS.js → analysis-UP5QD5OD.js} +2 -2
  7. package/dist/{announcement-4ZK63ONY.js → announcement-A3J2DYSQ.js} +1 -1
  8. package/dist/{api-command-K6I3WSI4.js → api-command-W5NBP6LO.js} +3 -3
  9. package/dist/api-key-YSHTZPY2.js +66 -0
  10. package/dist/{app-Z6NIVNWQ.js → app-ATZXNSKN.js} +5 -5
  11. package/dist/{attendance-correct-X67ITW3J.js → attendance-correct-GBJUPRTU.js} +2 -2
  12. package/dist/{attendance-lists-RVJIQAAM.js → attendance-lists-BIGQFPVN.js} +1 -1
  13. package/dist/{backlog-ZHON6HED.js → backlog-VJWLVDSM.js} +1 -1
  14. package/dist/{budget-FEEEYUX2.js → budget-VUMWU762.js} +2 -2
  15. package/dist/{capacity-list-command-GFHEKY47.js → capacity-list-command-CPUOR57V.js} +1 -1
  16. package/dist/{chunk-SZOEBJGI.js → chunk-24AJQUDZ.js} +1 -1
  17. package/dist/{chunk-NELPXRBC.js → chunk-3E7QVTKD.js} +1 -1
  18. package/dist/{chunk-VROESTZQ.js → chunk-4557EX6E.js} +1 -1
  19. package/dist/{chunk-3UOVTIM6.js → chunk-45WIRMGL.js} +1 -1
  20. package/dist/{chunk-6DM366P6.js → chunk-4DOPQ74T.js} +51 -47
  21. package/dist/{chunk-Y4U3F4UM.js → chunk-4JJFIPTI.js} +2 -2
  22. package/dist/{chunk-RY27USNC.js → chunk-4YCX5UNV.js} +1 -1
  23. package/dist/{chunk-IXT2X5BZ.js → chunk-5TKHN3A5.js} +6 -6
  24. package/dist/{chunk-PBMHUH73.js → chunk-5WJWURQT.js} +1 -1
  25. package/dist/{chunk-N3I76TL6.js → chunk-6CALO6LE.js} +1 -1
  26. package/dist/{chunk-FLLSRBFZ.js → chunk-6FPW6T4P.js} +1 -1
  27. package/dist/{chunk-VBIZ6U7C.js → chunk-6HR26FNC.js} +1 -1
  28. package/dist/{chunk-RZA3PZNH.js → chunk-7T5CEF6J.js} +1 -1
  29. package/dist/{chunk-M763HXDH.js → chunk-A3VGBVQP.js} +1 -1
  30. package/dist/{chunk-NXPLTDN4.js → chunk-BABZL52A.js} +9 -9
  31. package/dist/{chunk-JBAVETQP.js → chunk-DMMSNDDD.js} +1 -1
  32. package/dist/{chunk-BPLDHTAS.js → chunk-EOXGQHZA.js} +1 -1
  33. package/dist/{chunk-HZNC2UFL.js → chunk-FLIY4GM2.js} +1 -1
  34. package/dist/{chunk-UVTOBRHP.js → chunk-HPBAAKJS.js} +1 -1
  35. package/dist/{chunk-GLOGPK4Y.js → chunk-ILEV32T6.js} +1 -1
  36. package/dist/chunk-MSZWJ24L.js +12 -0
  37. package/dist/{chunk-BROJYH74.js → chunk-MZB4KA26.js} +1 -1
  38. package/dist/{chunk-D6MAASMD.js → chunk-O6GAIXHJ.js} +1 -1
  39. package/dist/{chunk-3D734ED2.js → chunk-P54LCXEY.js} +1 -1
  40. package/dist/{chunk-4DUZIRGL.js → chunk-PTLUNRQS.js} +10 -10
  41. package/dist/{chunk-MQOHOOJP.js → chunk-SPQJNTAK.js} +1 -1
  42. package/dist/{chunk-NB2GXB27.js → chunk-SQMJ7XKE.js} +1 -1
  43. package/dist/{chunk-ELW4VTSK.js → chunk-TUFWQYKB.js} +1 -1
  44. package/dist/{chunk-3S52X3Z7.js → chunk-VHKZ6RUA.js} +1 -1
  45. package/dist/{chunk-IQL7NZKM.js → chunk-VRRDGI2I.js} +1 -1
  46. package/dist/chunk-X3F7DOP5.js +4 -0
  47. package/dist/{chunk-VOSADZUE.js → chunk-XIAZ6ZJG.js} +3 -3
  48. package/dist/{chunk-7UAJ3ZY7.js → chunk-YB4ZDJXR.js} +1 -1
  49. package/dist/cli.js +42 -9
  50. package/dist/{commands-MNYRRJBT.js → commands-A3RLFXMI.js} +1 -1
  51. package/dist/{commands-23GMSCTQ.js → commands-QNVPMZDX.js} +12 -12
  52. package/dist/{company-YFHD4RLP.js → company-HUP72FGC.js} +2 -2
  53. package/dist/{completion-KPMCNLV2.js → completion-YB2UIXEL.js} +1 -1
  54. package/dist/{contract-C7PTM573.js → contract-WE37KVDC.js} +2 -2
  55. package/dist/{department-JZVWFUCI.js → department-5V4W37PU.js} +1 -1
  56. package/dist/{deposit-NUWEBC7M.js → deposit-VI3KTO7N.js} +2 -2
  57. package/dist/{domain-knowledge-QDSWQW4E.js → domain-knowledge-NOORBHDM.js} +1 -1
  58. package/dist/{estimate-GJEDV3D5.js → estimate-5GPJ33DO.js} +4 -4
  59. package/dist/{evaluation-KQPTG4G3.js → evaluation-5Q5GHKM3.js} +2 -2
  60. package/dist/{expense-NFQY5NZN.js → expense-F5UUXTGV.js} +1 -1
  61. package/dist/faq-QBCNTMXP.js +122 -0
  62. package/dist/{fiscal-year-GL3RFX6H.js → fiscal-year-CVYFYGRR.js} +1 -1
  63. package/dist/{holiday-FUYMZVGX.js → holiday-UPF22P5V.js} +2 -2
  64. package/dist/{inquiry-XMM6EHNJ.js → inquiry-57RLTCK2.js} +1 -1
  65. package/dist/{invoice-MLJEVQA4.js → invoice-FL42M3A4.js} +2 -2
  66. package/dist/{job-title-JHTVL7OO.js → job-title-LEHO7TBW.js} +1 -1
  67. package/dist/{knowledge-MROBIUE5.js → knowledge-CELSHUX6.js} +2 -2
  68. package/dist/{leave-GXVOULRK.js → leave-7BXZEIEQ.js} +2 -2
  69. package/dist/{license-XUPFMAGX.js → license-YOBNOTSR.js} +1 -1
  70. package/dist/{login-history-JIWV62KF.js → login-history-RCUHEEYE.js} +1 -1
  71. package/dist/{media-FKKQA223.js → media-SE6FZLQG.js} +3 -3
  72. package/dist/{notification-YAT6O2TK.js → notification-BE6KRW5R.js} +1 -1
  73. package/dist/{oneshot-HV5VMNFX.js → oneshot-2V5GL6OA.js} +1 -1
  74. package/dist/{outlook-GXWQLCR6.js → outlook-RWEUIFAI.js} +2 -2
  75. package/dist/{plan-submit-I5QAVNZN.js → plan-submit-3LCM44YE.js} +2 -2
  76. package/dist/{position-33HC7ETC.js → position-YAC32O37.js} +1 -1
  77. package/dist/{project-O6TQKZBJ.js → project-EQQEF622.js} +2 -2
  78. package/dist/{prospect-LQ2RLIBN.js → prospect-C3OWZPUJ.js} +1 -1
  79. package/dist/{purchase-E25SBHR2.js → purchase-7NN4SIER.js} +3 -3
  80. package/dist/{receivable-M3IUSRB7.js → receivable-4UCQ5G4R.js} +1 -1
  81. package/dist/{redmine-OIBKHGK3.js → redmine-THH5YMND.js} +1 -1
  82. package/dist/{registry-QHNBNSNA.js → registry-PJBXIHUK.js} +1 -1
  83. package/dist/{render-BY4KHD5D.js → render-XILFR4N3.js} +1 -1
  84. package/dist/{report-TS7D6YF5.js → report-TQRJJEGK.js} +1 -1
  85. package/dist/{run-AHNWMLZ4.js → run-DHHIH5A3.js} +2 -2
  86. package/dist/{runner-command-GN45H7TL.js → runner-command-PIHQW65P.js} +1 -1
  87. package/dist/{sales-ai-review-KYYUF5HG.js → sales-ai-review-JH6UAUHC.js} +2 -2
  88. package/dist/{sales-master-UNKMFZDV.js → sales-master-QF4ZGAGF.js} +3 -3
  89. package/dist/{sales-numbering-URGXUTUX.js → sales-numbering-I4CGWWLF.js} +2 -2
  90. package/dist/{search-OEOAUIW3.js → search-65MA22AA.js} +1 -1
  91. package/dist/{segment-H7FFI52Z.js → segment-PTTW7IJM.js} +1 -1
  92. package/dist/{skill-BJFHENEO.js → skill-J2HXRXLF.js} +2 -2
  93. package/dist/{skill-manage-command-Z4MLSACA.js → skill-manage-command-RKQHSPRJ.js} +2 -2
  94. package/dist/{staffing-board-2ZV2Q6TC.js → staffing-board-FSZ6WM2E.js} +3 -3
  95. package/dist/{status-command-XOELHUCV.js → status-command-5G7ZNGN2.js} +2 -2
  96. package/dist/{supplier-payment-2OVDNHBD.js → supplier-payment-OOX5NQH5.js} +3 -3
  97. package/dist/{support-6NZCSDPJ.js → support-LWKDMVP7.js} +2 -2
  98. package/dist/{task-GLFAR4GN.js → task-XF3MUGDE.js} +4 -4
  99. package/dist/{teams-KNXVEWMD.js → teams-J66HFCF5.js} +1 -1
  100. package/dist/{user-L6NYXPV6.js → user-PWZUOZGI.js} +43 -22
  101. package/dist/{user-contract-type-2PUE2JQL.js → user-contract-type-XM4G3TX5.js} +1 -1
  102. package/dist/{user-group-EIYVFUTB.js → user-group-5V3L7WYR.js} +1 -1
  103. package/dist/{worker-agent-2BARDPDL.js → worker-agent-G6MC436V.js} +1 -1
  104. package/dist/{workflow-P4SJX6YR.js → workflow-KTXVWCPN.js} +2 -2
  105. package/package.json +1 -1
  106. package/dist/chunk-JQQP7JLQ.js +0 -4
  107. package/dist/chunk-LGNYEROA.js +0 -12
  108. package/dist/faq-QVRTJ3KS.js +0 -68
@@ -18,21 +18,21 @@ const tmp=`${file}.${process.pid}.tmp`;try{fs.mkdirSync(dir,{recursive:true,mode
18
18
  `,{mode:384});fs.renameSync(tmp,file)}catch{try{fs.rmSync(tmp,{force:true})}catch{}}}function removeCache(key,options={}){const env=options.env??process.env;if(!isCacheLocationTrusted(env))return;try{fs.rmSync(cacheFilePath(key,env),{force:true})}catch{}}var SELF_REF="me";var PRIVATE_TASKS_PATH="/api/v2/tasks/private";var PRIVATE_MASTERS_CACHE_KEY="__private__";var BACKLOG_SPACES_CACHE_KEY="__backlog__";var REDMINE_SERVERS_CACHE_KEY="__redmine__";var REDMINE_SCOPE_LABEL="\u767B\u9332\u6E08\u307F\u306E Redmine \u63A5\u7D9A\u5148";var MS365_TEAMS_CACHE_KEY="__ms365__";var MS365_SCOPE_LABEL="\u53C2\u52A0\u3057\u3066\u3044\u308B Teams";var MS365_RESOLVE_MAX_PAGES=20;var MS365_CHAT_PAGE_TOP=50;var MS365_CHAT_FIND_MAX_PAGES=100;function ms365MemberUserIds(chat){
19
19
  const members=chat["members"];if(!Array.isArray(members))return[];return members.map(m=>isRecord(m)&&typeof m["userId"]==="string"&&m["userId"]!==""?m["userId"]:null).filter(v=>v!==null)}var BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\u3053\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";var PRIVATE_SCOPE_LABEL="\u500B\u4EBA\u30BF\u30B9\u30AF";var TENANT_CACHE_KEY="__tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="\
20
20
  /api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var SEGMENTS_PATH="/api/v2/organization/segments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";var SKILL_CATEGORIES_PATH="/api/v2/organization/skill-categories";var SKILLS_PATH="/api/v2/organization/skills";var QUALIFICATIONS_PATH="/api/v2/organization/qu\
21
- alifications";var FISCAL_YEAR_SETTINGS_PATH="/api/v2/organization/fiscal-year-settings";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var USER_GROUPS_PATH="/api/v2/usergroups";var USER_GROUP_LIMIT=1e3;var SUPPORTS_PATH="/api/v2/supports";var SUPPORT_CATEGORIES_PATH="/api/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";var FAQS_PATH="/api/v2/faqs";var DOMAIN_KNOWLEDGES_PATH="\
22
- /api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;var WORKER_AGENTS_PATH="/api/v2/worker-agents";var PROJECT_TEMPLATES_PATH="/api/v2/project-templates";var AGENT_SESSIONS_PATH="/api/v2/agent/sessions";var AGENT_REPOSITORIES_PATH="/api/v2/agent/repositories";var AGENT_SCHEDULES_PATH="/api/v2/agent/schedules";var NOTIFICATION_COUNT_MAX_PAGES=20;var NOTIFICATION_COUNT_PAGE_LIMIT=100;var WORKFLOWS_PATH="/api/v2/workflows";var REPORTS_PATH="/api/v2/reports";var ATTENDANCE_REPORTS_PATH="\
23
- /api/v2/attendance/reports";var ATTENDANCE_REPORT_MASTER_PATHS={categories:"/api/v2/attendance/report-categories",reasons:"/api/v2/attendance/report-reasons",details:"/api/v2/attendance/report-reason-details"};var ATTENDANCE_REPORT_MASTER_LABELS={categories:"\u9023\u7D61\u533A\u5206",reasons:"\u9023\u7D61\u7406\u7531",details:"\u9023\u7D61\u7406\u7531\u8A73\u7D30"};var SALES_ESTIMATES_PATH="/api/v2/sales/estimates";var SALES_INVOICES_PATH="/api/v2/sales/invoices";var SALES_CONTRACTS_PATH="/api/v\
24
- 2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/api/v2/sales/deposits";var SALES_PURCHASES_PATH="/api/v2/sales/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="/api/v2/sales/supplier-payments";var SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH="/api/v2/sales/supplier-payment-schedules";var SALES_BUSINESS_PLACES_PATH="/api/v2/sales/business-places";var SALES_PAYEES_PATH="/api/v2/sales/payees";var SALES_SEAL_IMPRESSIONS_PATH="/api/v2/sal\
25
- es/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="/api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="/api/v2/sales/invoice-no-rules";var SALES_PURCHASE_NO_RULES_PATH="/api/v2/sales/purchase-no-rules";var SALES_ESTIMATE_FORMATS_PATH="/api/v2/sales/estimate-formats";var SALES_ROUNDING_SETTING_PATH="/api/v2/sales/rounding-setting";var SALES_RECORD_KINDS={estimate:{path:SALES_ESTIMATES_PATH,label:"\u898B\u7A4D"},
26
- invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},"invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},deposit:{path:SALES_DEPOSITS_PATH,label:"\u5165\u91D1"},purchase:{path:SALES_PURCHASES_PATH,label:"\u4ED5\u5165"},"supplier-payment":{path:SALES_SUPPLIER_PAYMENTS_PATH,label:"\u652F\u6255"},"supplier-payment-schedule":{path:SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,
27
- label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\u5370\u5F71"},"purchase-ai-mapping":{path:SALES_PURCHASE_AI_MAPPINGS_PATH,label:"\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0"},"estimate-no-rule":{path:SALES_ESTIMATE_NO_RULES_PATH,label:"\u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB"},"invoice-no-rule":{path:SALES_INVOICE_NO_RULES_PATH,
28
- label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8"}};var SALES_COMPANIES_PATH="/api/v2/sales/companies";var CUSTOMERS_PATH="/api/v2/customers";var COMPANY_SEARCH_PAGE_LIMIT=100;var COMPANY_SEARCH_MAX_PAGES=10;var CUSTOMER_CHILDREN_PAGE_LIMIT=100;var PROSPECTS_PATH="/api/v2/prospects";
29
- var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.test(value)&&String(Number(value))===value}function exactCompanyId(ref,label){if(!isExactNumericId(ref.id)){throw new ResolveError(`${label}\u4E00\u89A7\u306E id \u304C\u6574\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${ref.id}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return ref}var ORG_MASTER_LIMIT=1e3;var USER_LIST_MAX_PAGES=100;
30
- var FEATURE_TOKEN_RE=/^[a-z][a-z0-9_]*$/;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){return typeof value==="string"&&value.trim()!==""?value:null}function truthyFlag(value){return value===true||value===1}function rawGetVia(client){return async path2=>{try{return{ok:true,status:200,json:await client.request("GET",path2),error:null}}catch(err){if(err instanceof ApiError){return{ok:false,status:err.status,json:err.body,error:err.message}}
31
- throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"task-types",envelope:"data",scope:"task-types",label:"\u7A2E\u5225"},category:{path:"task-categories",envelope:"data",scope:"task-categories",label:"\u30AB\u30C6\u30B4\u30EA"},milestone:{path:"task-milestones",envelope:"data",scope:"task-milestones",label:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"},label:{path:"task-labels",envelope:"items",scope:"\
32
- task-labels",label:"\u30E9\u30D9\u30EB"},group:{path:"task-groups",envelope:"data",scope:"task-groups",label:"\u30BF\u30B9\u30AF\u30B0\u30EB\u30FC\u30D7"}};var Resolver=class{constructor(client,options){this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=null;featurePermissionsCache=null;async project(ref){const trimmed=ref.trim();if(trimmed==="")throw new UsageError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");
33
- return resolveProjectRef(trimmed,this.get,safeProjectIdPolicy)}async projectByCodeOrName(ref,flag="--project"){try{return await this.project(ref)}catch(error){if(!(error instanceof ResolveError)||error.status!==404)throw error}const name=ref.trim();const res=await this.get(`/api/v2/projects?keyword=${encodeURIComponent(name)}&limit=100`);const body=isRecord(res.json)?res.json:{};if(!res.ok||!Array.isArray(body["items"])){throw new ResolveError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u540D\u524D\u3067\u691C\u7D22\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
34
- status??"-"}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const hits=body["items"].filter(row=>isRecord(row)&&row["name"]===name);if(hits.length>1){const codes=hits.map(row=>String(row["code"]??row["id"])).join(" / ");throw new UsageError(`${flag} \u306E\u540D\u524D\u306B\u4E00\u81F4\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u8907\u6570\u3042\u308A\u307E\u3059: ${name}`,`\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5019\u88DC: ${codes}\uFF09\u3002`)}
35
- const hit=hits[0];if(hit===void 0||typeof hit["id"]!=="string"){throw new ResolveError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${name}\uFF08\u30B3\u30FC\u30C9\u30FBID\u30FB\u540D\u524D\u306E\u5B8C\u5168\u4E00\u81F4\u3067\u691C\u7D22\u3057\u3066\u3044\u307E\u3059\uFF09`+(body["has_more"]===true?"\u3002\u540D\u524D\u306E\u691C\u7D22\u7D50\u679C\u304C\u591A\u3059\u304E\u3066\u5168\u90E8\u3092\u898B\u3089\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":
21
+ alifications";var FISCAL_YEAR_SETTINGS_PATH="/api/v2/organization/fiscal-year-settings";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var USER_GROUPS_PATH="/api/v2/usergroups";var USER_GROUP_LIMIT=1e3;var API_KEYS_PATH="/api/v2/admin/api-keys";var SUPPORTS_PATH="/api/v2/supports";var SUPPORT_CATEGORIES_PATH="/api/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";var FAQS_PATH="\
22
+ /api/v2/faqs";var DOMAIN_KNOWLEDGES_PATH="/api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;var WORKER_AGENTS_PATH="/api/v2/worker-agents";var PROJECT_TEMPLATES_PATH="/api/v2/project-templates";var AGENT_SESSIONS_PATH="/api/v2/agent/sessions";var AGENT_REPOSITORIES_PATH="/api/v2/agent/repositories";var AGENT_SCHEDULES_PATH="/api/v2/agent/schedules";var NOTIFICATION_COUNT_MAX_PAGES=20;var NOTIFICATION_COUNT_PAGE_LIMIT=100;var WORKFLOWS_PATH="/api/v2/workflows";var REPORTS_PATH="\
23
+ /api/v2/reports";var ATTENDANCE_REPORTS_PATH="/api/v2/attendance/reports";var ATTENDANCE_REPORT_MASTER_PATHS={categories:"/api/v2/attendance/report-categories",reasons:"/api/v2/attendance/report-reasons",details:"/api/v2/attendance/report-reason-details"};var ATTENDANCE_REPORT_MASTER_LABELS={categories:"\u9023\u7D61\u533A\u5206",reasons:"\u9023\u7D61\u7406\u7531",details:"\u9023\u7D61\u7406\u7531\u8A73\u7D30"};var SALES_ESTIMATES_PATH="/api/v2/sales/estimates";var SALES_INVOICES_PATH="/api/v2/sa\
24
+ les/invoices";var SALES_CONTRACTS_PATH="/api/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/api/v2/sales/deposits";var SALES_PURCHASES_PATH="/api/v2/sales/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="/api/v2/sales/supplier-payments";var SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH="/api/v2/sales/supplier-payment-schedules";var SALES_BUSINESS_PLACES_PATH="/api/v2/sales/business-places";var SALES_PAYEES_PATH="/api/v2/sales/payees";
25
+ var SALES_SEAL_IMPRESSIONS_PATH="/api/v2/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="/api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="/api/v2/sales/invoice-no-rules";var SALES_PURCHASE_NO_RULES_PATH="/api/v2/sales/purchase-no-rules";var SALES_ESTIMATE_FORMATS_PATH="/api/v2/sales/estimate-formats";var SALES_ROUNDING_SETTING_PATH="/api/v2/sales/rounding-setting";var SALES_RECORD_KINDS={estimate:{
26
+ path:SALES_ESTIMATES_PATH,label:"\u898B\u7A4D"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},"invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},deposit:{path:SALES_DEPOSITS_PATH,label:"\u5165\u91D1"},purchase:{path:SALES_PURCHASES_PATH,label:"\u4ED5\u5165"},"supplier-payment":{path:SALES_SUPPLIER_PAYMENTS_PATH,label:"\u652F\u6255"},"s\
27
+ upplier-payment-schedule":{path:SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\u5370\u5F71"},"purchase-ai-mapping":{path:SALES_PURCHASE_AI_MAPPINGS_PATH,label:"\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0"},"estimate-no-rule":{path:SALES_ESTIMATE_NO_RULES_PATH,label:"\
28
+ \u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB"},"invoice-no-rule":{path:SALES_INVOICE_NO_RULES_PATH,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8"}};var SALES_COMPANIES_PATH="/api/v2/sales/companies";var CUSTOMERS_PATH="/api/v2/customers";var COMPANY_SEARCH_PAGE_LIMIT=100;var COMPANY_SEARCH_MAX_PAGES=10;
29
+ var CUSTOMER_CHILDREN_PAGE_LIMIT=100;var PROSPECTS_PATH="/api/v2/prospects";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.test(value)&&String(Number(value))===value}function exactCompanyId(ref,label){if(!isExactNumericId(ref.id)){throw new ResolveError(`${label}\u4E00\u89A7\u306E id \u304C\u6574\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${ref.id}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
30
+ return ref}var ORG_MASTER_LIMIT=1e3;var USER_LIST_MAX_PAGES=100;var FEATURE_TOKEN_RE=/^[a-z][a-z0-9_]*$/;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){return typeof value==="string"&&value.trim()!==""?value:null}function truthyFlag(value){return value===true||value===1}function rawGetVia(client){return async path2=>{try{return{ok:true,status:200,json:await client.request("GET",path2),error:null}}catch(err){if(err instanceof ApiError){
31
+ return{ok:false,status:err.status,json:err.body,error:err.message}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"task-types",envelope:"data",scope:"task-types",label:"\u7A2E\u5225"},category:{path:"task-categories",envelope:"data",scope:"task-categories",label:"\u30AB\u30C6\u30B4\u30EA"},milestone:{path:"task-milestones",envelope:"data",scope:"task-milestones",label:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3"},
32
+ label:{path:"task-labels",envelope:"items",scope:"task-labels",label:"\u30E9\u30D9\u30EB"},group:{path:"task-groups",envelope:"data",scope:"task-groups",label:"\u30BF\u30B9\u30AF\u30B0\u30EB\u30FC\u30D7"}};var Resolver=class{constructor(client,options){this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=null;featurePermissionsCache=null;defaultFeaturePermissionsCache=null;async project(ref){const trimmed=ref.trim();if(trimmed==="")throw new UsageError(
33
+ "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");return resolveProjectRef(trimmed,this.get,safeProjectIdPolicy)}async projectByCodeOrName(ref,flag="--project"){try{return await this.project(ref)}catch(error){if(!(error instanceof ResolveError)||error.status!==404)throw error}const name=ref.trim();const res=await this.get(`/api/v2/projects?keyword=${encodeURIComponent(name)}&limit=100`);const body=isRecord(res.json)?res.
34
+ json:{};if(!res.ok||!Array.isArray(body["items"])){throw new ResolveError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u540D\u524D\u3067\u691C\u7D22\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status??"-"}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const hits=body["items"].filter(row=>isRecord(row)&&row["name"]===name);if(hits.length>1){const codes=hits.map(row=>String(row["code"]??row["id"])).join(" / ");throw new UsageError(`${flag} \u306E\u540D\u524D\u306B\u4E00\u81F4\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u8907\u6570\u3042\u308A\u307E\u3059: ${name}`,
35
+ `\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5019\u88DC: ${codes}\uFF09\u3002`)}const hit=hits[0];if(hit===void 0||typeof hit["id"]!=="string"){throw new ResolveError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${name}\uFF08\u30B3\u30FC\u30C9\u30FBID\u30FB\u540D\u524D\u306E\u5B8C\u5168\u4E00\u81F4\u3067\u691C\u7D22\u3057\u3066\u3044\u307E\u3059\uFF09`+(body["has_more"]===true?"\u3002\u540D\u524D\u306E\u691C\u7D22\u7D50\u679C\u304C\u591A\u3059\u304E\u3066\u5168\u90E8\u3092\u898B\u3089\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B3\u30FC\u30C9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":
36
36
  ""),404)}safeProjectIdPolicy.assertId(hit["id"]);return{id:hit["id"],code:String(hit["code"]??""),name}}async taskByKey(key){const trimmed=key.trim();if(!isTaskKey(trimmed)){throw new UsageError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${key}`,"\u30AD\u30FC\u306F\u300C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9-\u756A\u53F7\u300D\u306E\u5F62\u3067\u3059\uFF08\u4F8B: ABC-123\uFF09\u3002")}const res=await this.get(`/api/v2/tasks/resolv\
37
37
  e-by-key/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}\uFF08\u5B58\u5728\u3057\u306A\u3044\u304B\u3001\u95B2\u89A7\u3067\u304D\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3042\u308A\u307E\u305B\u3093\uFF09`,404)}if(!res.ok){throw new ResolveError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${trimmed}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\
38
38
  \u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const body=isRecord(res.json)?res.json:{};const projectId=str(body["project_id"]);const task=body["task"];if(projectId===null||!isRecord(task)){throw new ResolveError("\u30BF\u30B9\u30AF\u30AD\u30FC\u89E3\u6C7A\u306E\u5FDC\u7B54\u306B project_id / task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.
@@ -48,10 +48,13 @@ return requireDefault(await this.privateStatuses(),{flag:"--status",label:"\u30B
48
48
  res.status)}return task}async primaryAssignment(userId){if(!isSafePathSegment(userId)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments/primary`);if(res.status===404)return null;if(!res.ok){throw new ResolveError(`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
49
49
  status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const assignment=isRecord(res.json)?res.json["assignment"]:void 0;if(!isRecord(assignment)||typeof assignment["id"]!=="string"){throw new ResolveError("\u4E3B\u6240\u5C5E\u306E\u5FDC\u7B54\u306B assignment.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return assignment}async assignments(userId){if(!isSafePathSegment(userId)){throw new ResolveError(
50
50
  `\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments`);if(!res.ok){throw new ResolveError(`\u6240\u5C5E\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const list=isRecord(
51
- res.json)?res.json["list"]:void 0;if(!Array.isArray(list)||!list.every(isRecord)){throw new ResolveError("\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",res.status)}return list}async featurePermissions(){this.featurePermissionsCache??=(async()=>{const res=await this.get("/api/v2/admin/tenant/default-feature-permissions");if(!res.ok){throw new ResolveError(`\
52
- \u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const metadata=isRecord(res.json)?res.json["feature_metadata"]:void 0;if(!isRecord(metadata)){throw new ResolveError("\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u306E\u5FDC\u7B54\u306B feature_metadata \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
53
- res.status)}const defs=new Map;for(const[code,meta]of Object.entries(metadata)){const levels=isRecord(meta)?meta["levels"]:void 0;if(!FEATURE_TOKEN_RE.test(code))continue;if(!Array.isArray(levels)||!levels.every(level=>typeof level==="string"&&FEATURE_TOKEN_RE.test(level)))continue;defs.set(code,{code,label:str(isRecord(meta)?meta["label"]:null)??code,levels})}if(defs.size===0){throw new ResolveError("\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u304C1\u4EF6\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
54
- res.status)}return defs})();return this.featurePermissionsCache}async privateMasters(envelope,label){return namedFromRows(await this.privateMasterRows(envelope,label),label,codedMasterRow)}async privateMasterRows(envelope,label){return this.cached(`private-${envelope}`,PRIVATE_MASTERS_CACHE_KEY,async()=>rawListFrom(await this.privateMastersResponse(),envelope,label))}privateMastersResponse(){this.privateMastersInFlight??=this.get(`${PRIVATE_TASKS_PATH}/masters`);return this.privateMastersInFlight}async members(projectId){
51
+ res.json)?res.json["list"]:void 0;if(!Array.isArray(list)||!list.every(isRecord)){throw new ResolveError("\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",res.status)}return list}async featurePermissions(){this.featurePermissionsCache??=(async()=>{const metadata=(await this.defaultFeaturePermissionsResponse())["feature_metadata"];if(!isRecord(metadata)){throw new ResolveError(
52
+ "\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u306E\u5FDC\u7B54\u306B feature_metadata \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const defs=new Map;for(const[code,meta]of Object.entries(metadata)){const levels=isRecord(meta)?meta["levels"]:void 0;if(!FEATURE_TOKEN_RE.test(code))continue;if(!Array.isArray(levels)||!levels.every(level=>typeof level==="string"&&FEATURE_TOKEN_RE.test(level)))continue;defs.set(code,{code,label:str(
53
+ isRecord(meta)?meta["label"]:null)??code,levels})}if(defs.size===0){throw new ResolveError("\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u304C1\u4EF6\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return defs})();return this.featurePermissionsCache}async defaultFeatureLevels(){const json=await this.defaultFeaturePermissionsResponse();const levels=json["default_feature_permissions"];const metadata=json["feature_metadata"];if(!isRecord(
54
+ levels)||!isRecord(metadata)){throw new ResolveError("\u65E2\u5B9A\u306E\u6A5F\u80FD\u6A29\u9650\u306E\u5FDC\u7B54\u306B default_feature_permissions / feature_metadata \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const missing=Object.keys(metadata).filter(code=>typeof levels[code]!=="string");if(missing.length>0){throw new ResolveError(`\u65E2\u5B9A\u306E\u6A5F\u80FD\u6A29\u9650\u306E\u5FDC\u7B54\u306B\u3001\u5B9A\u7FA9\u306B\u3042\u308B\u6A5F\u80FD\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093: ${missing.
55
+ join(" / ")}\u3002\u3053\u306E\u307E\u307E\u66F4\u65B0\u3059\u308B\u3068\u3001\u305D\u306E\u6A5F\u80FD\u306E\u65E2\u5B9A\u304C none \u306B\u306A\u308B\u305F\u3081\u6B62\u3081\u307E\u3057\u305F\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return Object.fromEntries(Object.entries(levels).filter(entry=>typeof entry[1]==="string"))}defaultFeaturePermissionsResponse(){this.defaultFeaturePermissionsCache??=(async()=>{const res=await this.get("/api/v2/admin/tena\
56
+ nt/default-feature-permissions");if(!res.ok){throw new ResolveError(`\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}if(!isRecord(res.json)){throw new ResolveError("\u6A5F\u80FD\u6A29\u9650\u306E\u5B9A\u7FA9\u306E\u5FDC\u7B54\u304C JSON \u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
57
+ res.status)}return res.json})();return this.defaultFeaturePermissionsCache}async privateMasters(envelope,label){return namedFromRows(await this.privateMasterRows(envelope,label),label,codedMasterRow)}async privateMasterRows(envelope,label){return this.cached(`private-${envelope}`,PRIVATE_MASTERS_CACHE_KEY,async()=>rawListFrom(await this.privateMastersResponse(),envelope,label))}privateMastersResponse(){this.privateMastersInFlight??=this.get(`${PRIVATE_TASKS_PATH}/masters`);return this.privateMastersInFlight}async members(projectId){
55
58
  return this.cached("members",projectId,()=>this.namedList(`/api/v2/projects/${encodeURIComponent(projectId)}/members?limit=${PROJECT_MEMBERS_LIMIT}`,"list","\u30E1\u30F3\u30D0\u30FC",row=>({id:str(row["user_id"]),name:str(row["user_name"]),code:null,aliases:[str(row["alias"]),str(row["user_email"])].filter(v=>v!==null)})).then(refs=>assertMembersComplete(refs)))}async memberRows(projectId){return assertMembersComplete(rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/\
56
59
  members?limit=${PROJECT_MEMBERS_LIMIT}`),"list","\u30E1\u30F3\u30D0\u30FC"))}invalidateMembers(projectId){removeCache({profile:this.options.profile,scope:"members",project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async user(input,flag="<\u30E6\u30FC\u30B6\u30FC>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(trimmed.toLowerCase()===SELF_REF)return this.self();if(UUID_RE.
57
60
  test(trimmed))return{id:trimmed,name:trimmed};const searched=await this.searchUsers(trimmed);if(searched.refs!==null){const needle=trimmed.toLowerCase();const hits=searched.refs.filter(ref=>[ref.id,ref.code,ref.name,...ref.aliases??[]].some(key=>typeof key==="string"&&key.trim().toLowerCase()===needle));if(hits.length>0)return resolveNamed(trimmed,hits,{flag,label:"\u30E6\u30FC\u30B6\u30FC",scope:TENANT_SCOPE_LABEL})}try{return await resolveNamed(trimmed,await this.visibleUsers(),{flag,label:"\u30E6\u30FC\
@@ -129,29 +132,30 @@ scope:TENANT_SCOPE_LABEL})}async inquiryCategoryRows(options={}){const load=asyn
129
132
  ttlMs:this.options.ttlMs}:{},...this.options.now!==void 0?{now:this.options.now}:{}});return rows}async supportCategory(input,flag="--category"){const rows=await this.cached("support-categories",TENANT_CACHE_KEY,async()=>rawListFrom(await this.get(SUPPORT_CATEGORIES_PATH),"data","\u30B5\u30DD\u30FC\u30C8\u306E\u30AB\u30C6\u30B4\u30EA"));return resolveNamed(input,namedFromRows(rows,"\u30B5\u30DD\u30FC\u30C8\u306E\u30AB\u30C6\u30B4\u30EA",supportCategoryRow),{flag,label:"\u30B5\u30DD\u30FC\u30C8\u306E\u30AB\u30C6\u30B4\u30EA",
130
133
  scope:TENANT_SCOPE_LABEL})}async userGroup(input,flag="<\u30B0\u30EB\u30FC\u30D7>"){const rows=await this.cached("user-groups",TENANT_CACHE_KEY,async()=>{const query=new URLSearchParams({search_page_limit:String(USER_GROUP_LIMIT)});const res=await this.get(`${USER_GROUPS_PATH}?${query.toString()}`);const list=rawListFrom(res,"list","\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum==="number"&&sum>list.length){throw new ResolveError(
131
134
  `\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u4E00\u89A7\u304C ${sum} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return list});return resolveNamed(input,namedFromRows(rows,"\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7",userGroupRow),{flag,label:"\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7",
132
- scope:TENANT_SCOPE_LABEL})}async userGroupDetail(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7 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`)}const res=await this.get(`${USER_GROUPS_PATH}/${encodeURIComponent(id)}`);if(!res.ok){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\
133
- \uFF08HTTP ${res.status}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u306E\u8A73\u7D30\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002`,res.status)}const body=isRecord(res.json)?res.json:{};const group=body["usergroup_data"];if(group===null)throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404);const members=body["user_list"];if(!isRecord(group)||!Array.isArray(members)){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\
134
- \u30D7\u306E\u5FDC\u7B54\u306B usergroup_data / user_list \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return{group,members:members.filter(isRecord)}}invalidateUserGroups(){removeCache({profile:this.options.profile,scope:"user-groups",project:TENANT_CACHE_KEY},this.options.env!==void 0?{env:this.options.env}:{})}invalidateInquiryCategories(){removeCache({profile:this.options.profile,scope:"inquiry-categories",
135
- project:TENANT_CACHE_KEY},this.options.env!==void 0?{env:this.options.env}:{})}async notificationCategory(input,flag="--category"){const rows=await this.cached("notification-categories",TENANT_CACHE_KEY,async()=>rawListFrom(await this.get(`${NOTIFICATIONS_PATH}/categories`),"categories","\u901A\u77E5\u30AB\u30C6\u30B4\u30EA"));return resolveNamed(input,namedFromRows(rows,"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA",notificationCategoryRow),{flag,label:"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA",scope:TENANT_SCOPE_LABEL})}async notificationUnreadCount(category){
136
- if(category===null){const res=await this.get(`${NOTIFICATIONS_PATH}/counts`);const count=res.ok&&isRecord(res.json)?res.json["unread_count"]:void 0;if(typeof count!=="number"||!Number.isSafeInteger(count)||count<0){throw new ResolveError(res.ok?"\u901A\u77E5\u4EF6\u6570\u306E\u5FDC\u7B54\u306B unread_count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u901A\u77E5\u306E\u672A\u8AAD\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
137
- status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return{count,complete:true}}let total=0;let cursor=null;for(let page=0;page<NOTIFICATION_COUNT_MAX_PAGES;page++){const query=new URLSearchParams({read_status:"unread",category,limit:String(NOTIFICATION_COUNT_PAGE_LIMIT)});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${NOTIFICATIONS_PATH}?${query.toString()}`);total+=rawListFrom(
138
- res,"list","\u901A\u77E5").length;const body=res.json;if(body["has_more"]===false)return{count:total,complete:true};if(body["has_more"]!==true||typeof body["next_cursor"]!=="string"||body["next_cursor"]===""){throw new ResolveError("\u901A\u77E5\u4E00\u89A7\u306E\u5FDC\u7B54\u306E has_more / next_cursor \u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3002\u672A\u8AAD\u4EF6\u6570\u3092\u6570\u3048\u3089\u308C\u306A\u3044\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002",res.status)}cursor=
139
- body["next_cursor"]}return{count:total,complete:false}}async faqCategory(input,flag="--category"){const value=input.trim();if(value==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u30AB\u30C6\u30B4\u30EA\u306F twp faq categories \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");const res=await this.get(`${FAQS_PATH}/categories`);const rows=res.ok&&isRecord(res.json)?res.json["categories"]:void 0;if(!Array.isArray(rows)){throw new ResolveError(
140
- res.ok?"FAQ \u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\u306E\u5FDC\u7B54\u306B categories \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":`FAQ \u306E\u30AB\u30C6\u30B4\u30EA\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const records=rows.filter(
141
- isRecord);const hit=records.find(row=>row["code"]===value||row["label"]===value);if(hit===void 0||typeof hit["code"]!=="string"){const known=records.map(row=>`${String(row["code"])}\uFF08${String(row["label"])}\uFF09`).join(" / ");throw new UsageError(`FAQ \u306E\u30AB\u30C6\u30B4\u30EA\u306B\u3042\u308A\u307E\u305B\u3093\uFF08${flag}\uFF09: ${value}`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${known} \u3067\u3059\u3002`)}return hit["code"]}async announcementUnreadCount(){const res=await this.
142
- get(`${ANNOUNCEMENTS_PATH}/counts`);const count=res.ok&&isRecord(res.json)?res.json["unread_count"]:void 0;if(typeof count!=="number"||!Number.isSafeInteger(count)||count<0){throw new ResolveError(res.ok?"\u304A\u77E5\u3089\u305B\u4EF6\u6570\u306E\u5FDC\u7B54\u306B unread_count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u304A\u77E5\u3089\u305B\u306E\u672A\u8AAD\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
143
- status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return count}async namedList(path2,envelope,label,map){return namedListFrom(await this.get(path2),envelope,label,map)}async cached(scope,projectId,load){const key={profile:this.options.profile,scope,project:projectId};const options={...this.options.env!==void 0?{env:this.options.env}:{},refresh:this.options.refresh,...this.options.ttlMs!==void 0?
144
- {ttlMs:this.options.ttlMs}:{},...this.options.now!==void 0?{now:this.options.now}:{}};const hit=readCache(key,options);if(hit!==null&&Array.isArray(hit))return hit;const fresh=await load();writeCache(key,fresh,options);return fresh}applyAlias(kind,input){const table=this.options.aliases?.[kind];if(table===void 0)return input;const needle=input.trim().toLowerCase();for(const[from,to]of Object.entries(table)){if(from.trim().toLowerCase()===needle&&typeof to==="string"&&to.trim()!=="")return to}return input}async backlogSpaces(){
145
- return this.cached("backlog-spaces",BACKLOG_SPACES_CACHE_KEY,()=>this.namedList(`${BACKLOG_BASE_PATH}/spaces`,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9",backlogSpaceRow))}async backlogSpace(ref,flag="--space"){return resolveNamed(ref,await this.backlogSpaces(),{flag,label:"Backlog \u30B9\u30DA\u30FC\u30B9",scope:BACKLOG_SCOPE_LABEL})}async backlogDefaultSpace(){const spaces=await this.backlogSpaces();if(spaces.length===1)return spaces[0];if(spaces.length===0){throw new UsageError("Backlog \u30B9\u30DA\u30FC\u30B9\u304C\
146
- 1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u3067 Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}throw new UsageError(`Backlog \u30B9\u30DA\u30FC\u30B9\u304C ${spaces.length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,
147
- "twp backlog space list \u3067 ID \u3068\u30B9\u30DA\u30FC\u30B9URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\u6BCE\u56DE\u306E\u6307\u5B9A\u3092\u7701\u304F\u306B\u306F twp configure \u3067\u65E2\u5B9A\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}async backlogProjects(spaceId){return this.cached("backlog-projects",spaceId,()=>this.namedList(backlogSpacePath(spaceId,"/projects"),"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",
148
- backlogProjectRow))}async backlogStatuses(spaceId,projectId){return this.cached("backlog-statuses",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/statuses`),"statuses","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9",backlogStatusRow))}async backlogUsers(spaceId,projectId){return this.cached("backlog-users",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(
149
- spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/users`),"users","Backlog \u30E6\u30FC\u30B6\u30FC",backlogUserRow))}async redmineServers(){return this.cached("redmine-servers",REDMINE_SERVERS_CACHE_KEY,()=>this.namedList(`${REDMINE_BASE_PATH}/servers`,"items","Redmine \u63A5\u7D9A\u5148",redmineServerRow))}async redmineServer(ref){return resolveNamed(ref,await this.redmineServers(),{flag:"--space",label:"Redmine \u63A5\u7D9A\u5148",
150
- scope:REDMINE_SCOPE_LABEL})}async redmineDefaultServer(){const servers=await this.redmineServers();if(servers.length===1)return servers[0];if(servers.length===0){throw new UsageError("Redmine \u306E\u63A5\u7D9A\u5148\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u500B\u4EBA\u8A2D\u5B9A\uFF08\u5916\u90E8\u30B7\u30B9\u30C6\u30E0\u9023\u643A\uFF09\u3067 Redmine \u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp redmine space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}
151
- throw new UsageError(`Redmine \u306E\u63A5\u7D9A\u5148\u304C ${servers.length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp redmine space list \u3067 ID \u3068\u63A5\u7D9A\u5148URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}async ms365Teams(){return this.cached("ms365-teams",MS365_TEAMS_CACHE_KEY,()=>this.ms365NamedList(ms365Path("/teams/teams"),"Teams \u306E\u30C1\u30FC\u30E0"))}async ms365Team(ref){
152
- return resolveNamed(ref,await this.ms365Teams(),{flag:"--team",label:"\u30C1\u30FC\u30E0",scope:MS365_SCOPE_LABEL})}async ms365Channels(teamId){return this.cached("ms365-channels",teamId,()=>this.ms365NamedList(ms365Path(`/teams/teams/${ms365Segment(teamId,"\u30C1\u30FC\u30E0 ID")}/channels`),"Teams \u306E\u30C1\u30E3\u30CD\u30EB"))}async ms365Channel(teamId,ref){return resolveNamed(ref,await this.ms365Channels(teamId),{flag:"--channel",label:"\u30C1\u30E3\u30CD\u30EB",scope:"\u3053\u306E\u30C1\u30FC\u30E0"})}async ms365FindChat(chatId){
153
- const path2=ms365Path("/teams/chats");let cursor=null;let seen=0;let common=null;for(let page=1;page<=MS365_CHAT_FIND_MAX_PAGES;page+=1){const query=`top=${MS365_CHAT_PAGE_TOP}&expand=members${cursor===null?"":`&skiptoken=${encodeURIComponent(cursor)}`}`;const res=await this.get(`${path2}?${query}`);if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`Teams \u306E\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
154
- status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;const value=isRecord(data)?data["value"]:void 0;if(!isRecord(data)||!Array.isArray(value)){throw new ResolveError("Teams \u306E\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data.value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
135
+ scope:TENANT_SCOPE_LABEL})}async apiKey(input,flag="<\u30AD\u30FC>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(UUID_RE.test(trimmed))return{id:trimmed,name:trimmed};const res=await this.get(API_KEYS_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",API_KEYS_PATH)}const rows=rawListFrom(res,"list","API \u30AD\u30FC");return resolveNamed(
136
+ trimmed,namedFromRows(rows,"API \u30AD\u30FC",apiKeyRow),{flag,label:"API \u30AD\u30FC",scope:TENANT_SCOPE_LABEL})}async apiKeyPermissions(){const path2=`${API_KEYS_PATH}/permissions`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}return rawListFrom(res,"permissions","API \u30AD\u30FC\u306E\u6A29\u9650")}async userGroupDetail(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7 ID \u3092\u30D1\u30B9\u306B\u4F7F\
137
+ \u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`${USER_GROUPS_PATH}/${encodeURIComponent(id)}`);if(!res.ok){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\uFF08HTTP ${res.status}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u306E\u8A73\u7D30\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u8AAD\u3081\u307E\u3059\u3002`,
138
+ res.status)}const body=isRecord(res.json)?res.json:{};const group=body["usergroup_data"];if(group===null)throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404);const members=body["user_list"];if(!isRecord(group)||!Array.isArray(members)){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u30B0\u30EB\u30FC\u30D7\u306E\u5FDC\u7B54\u306B usergroup_data / user_list \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
139
+ res.status)}return{group,members:members.filter(isRecord)}}invalidateUserGroups(){removeCache({profile:this.options.profile,scope:"user-groups",project:TENANT_CACHE_KEY},this.options.env!==void 0?{env:this.options.env}:{})}invalidateInquiryCategories(){removeCache({profile:this.options.profile,scope:"inquiry-categories",project:TENANT_CACHE_KEY},this.options.env!==void 0?{env:this.options.env}:{})}async notificationCategory(input,flag="--category"){const rows=await this.cached("notification-cate\
140
+ gories",TENANT_CACHE_KEY,async()=>rawListFrom(await this.get(`${NOTIFICATIONS_PATH}/categories`),"categories","\u901A\u77E5\u30AB\u30C6\u30B4\u30EA"));return resolveNamed(input,namedFromRows(rows,"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA",notificationCategoryRow),{flag,label:"\u901A\u77E5\u30AB\u30C6\u30B4\u30EA",scope:TENANT_SCOPE_LABEL})}async notificationUnreadCount(category){if(category===null){const res=await this.get(`${NOTIFICATIONS_PATH}/counts`);const count=res.ok&&isRecord(res.json)?res.json["\
141
+ unread_count"]:void 0;if(typeof count!=="number"||!Number.isSafeInteger(count)||count<0){throw new ResolveError(res.ok?"\u901A\u77E5\u4EF6\u6570\u306E\u5FDC\u7B54\u306B unread_count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u901A\u77E5\u306E\u672A\u8AAD\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
142
+ res.status)}return{count,complete:true}}let total=0;let cursor=null;for(let page=0;page<NOTIFICATION_COUNT_MAX_PAGES;page++){const query=new URLSearchParams({read_status:"unread",category,limit:String(NOTIFICATION_COUNT_PAGE_LIMIT)});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${NOTIFICATIONS_PATH}?${query.toString()}`);total+=rawListFrom(res,"list","\u901A\u77E5").length;const body=res.json;if(body["has_more"]===false)return{count:total,complete:true};if(body["has_more"]!==
143
+ true||typeof body["next_cursor"]!=="string"||body["next_cursor"]===""){throw new ResolveError("\u901A\u77E5\u4E00\u89A7\u306E\u5FDC\u7B54\u306E has_more / next_cursor \u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3002\u672A\u8AAD\u4EF6\u6570\u3092\u6570\u3048\u3089\u308C\u306A\u3044\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002",res.status)}cursor=body["next_cursor"]}return{count:total,complete:false}}async faqCategory(input,flag="--category"){const value=input.trim();if(value==="")throw new UsageError(
144
+ `${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u30AB\u30C6\u30B4\u30EA\u306F twp faq categories \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");const res=await this.get(`${FAQS_PATH}/categories`);const rows=res.ok&&isRecord(res.json)?res.json["categories"]:void 0;if(!Array.isArray(rows)){throw new ResolveError(res.ok?"FAQ \u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\u306E\u5FDC\u7B54\u306B categories \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":
145
+ `FAQ \u306E\u30AB\u30C6\u30B4\u30EA\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const records=rows.filter(isRecord);const hit=records.find(row=>row["code"]===value||row["label"]===value);if(hit===void 0||typeof hit["code"]!=="string"){const known=records.map(row=>`${String(row["code"])}\uFF08${String(row["la\
146
+ bel"])}\uFF09`).join(" / ");throw new UsageError(`FAQ \u306E\u30AB\u30C6\u30B4\u30EA\u306B\u3042\u308A\u307E\u305B\u3093\uFF08${flag}\uFF09: ${value}`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${known} \u3067\u3059\u3002`)}return hit["code"]}async announcementUnreadCount(){const res=await this.get(`${ANNOUNCEMENTS_PATH}/counts`);const count=res.ok&&isRecord(res.json)?res.json["unread_count"]:void 0;if(typeof count!=="number"||!Number.isSafeInteger(count)||count<0){throw new ResolveError(res.ok?
147
+ "\u304A\u77E5\u3089\u305B\u4EF6\u6570\u306E\u5FDC\u7B54\u306B unread_count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u304A\u77E5\u3089\u305B\u306E\u672A\u8AAD\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return count}async namedList(path2,envelope,label,map){
148
+ return namedListFrom(await this.get(path2),envelope,label,map)}async cached(scope,projectId,load){const key={profile:this.options.profile,scope,project:projectId};const options={...this.options.env!==void 0?{env:this.options.env}:{},refresh:this.options.refresh,...this.options.ttlMs!==void 0?{ttlMs:this.options.ttlMs}:{},...this.options.now!==void 0?{now:this.options.now}:{}};const hit=readCache(key,options);if(hit!==null&&Array.isArray(hit))return hit;const fresh=await load();writeCache(key,fresh,
149
+ options);return fresh}applyAlias(kind,input){const table=this.options.aliases?.[kind];if(table===void 0)return input;const needle=input.trim().toLowerCase();for(const[from,to]of Object.entries(table)){if(from.trim().toLowerCase()===needle&&typeof to==="string"&&to.trim()!=="")return to}return input}async backlogSpaces(){return this.cached("backlog-spaces",BACKLOG_SPACES_CACHE_KEY,()=>this.namedList(`${BACKLOG_BASE_PATH}/spaces`,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9",backlogSpaceRow))}async backlogSpace(ref,flag="\
150
+ --space"){return resolveNamed(ref,await this.backlogSpaces(),{flag,label:"Backlog \u30B9\u30DA\u30FC\u30B9",scope:BACKLOG_SCOPE_LABEL})}async backlogDefaultSpace(){const spaces=await this.backlogSpaces();if(spaces.length===1)return spaces[0];if(spaces.length===0){throw new UsageError("Backlog \u30B9\u30DA\u30FC\u30B9\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u3067 Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}
151
+ throw new UsageError(`Backlog \u30B9\u30DA\u30FC\u30B9\u304C ${spaces.length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp backlog space list \u3067 ID \u3068\u30B9\u30DA\u30FC\u30B9URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\u6BCE\u56DE\u306E\u6307\u5B9A\u3092\u7701\u304F\u306B\u306F twp configure \u3067\u65E2\u5B9A\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}async backlogProjects(spaceId){
152
+ return this.cached("backlog-projects",spaceId,()=>this.namedList(backlogSpacePath(spaceId,"/projects"),"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",backlogProjectRow))}async backlogStatuses(spaceId,projectId){return this.cached("backlog-statuses",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/statuses`),"statuses","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9",
153
+ backlogStatusRow))}async backlogUsers(spaceId,projectId){return this.cached("backlog-users",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/users`),"users","Backlog \u30E6\u30FC\u30B6\u30FC",backlogUserRow))}async redmineServers(){return this.cached("redmine-servers",REDMINE_SERVERS_CACHE_KEY,()=>this.namedList(`${REDMINE_BASE_PATH}/servers`,"items","Redmi\
154
+ ne \u63A5\u7D9A\u5148",redmineServerRow))}async redmineServer(ref){return resolveNamed(ref,await this.redmineServers(),{flag:"--space",label:"Redmine \u63A5\u7D9A\u5148",scope:REDMINE_SCOPE_LABEL})}async redmineDefaultServer(){const servers=await this.redmineServers();if(servers.length===1)return servers[0];if(servers.length===0){throw new UsageError("Redmine \u306E\u63A5\u7D9A\u5148\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u500B\u4EBA\u8A2D\u5B9A\uFF08\u5916\u90E8\u30B7\u30B9\u30C6\u30E0\u9023\u643A\uFF09\u3067 Redmine \u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\
155
+ \uFF08twp redmine space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}throw new UsageError(`Redmine \u306E\u63A5\u7D9A\u5148\u304C ${servers.length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp redmine space list \u3067 ID \u3068\u63A5\u7D9A\u5148URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}async ms365Teams(){return this.cached("ms365-teams",MS365_TEAMS_CACHE_KEY,()=>this.ms365NamedList(
156
+ ms365Path("/teams/teams"),"Teams \u306E\u30C1\u30FC\u30E0"))}async ms365Team(ref){return resolveNamed(ref,await this.ms365Teams(),{flag:"--team",label:"\u30C1\u30FC\u30E0",scope:MS365_SCOPE_LABEL})}async ms365Channels(teamId){return this.cached("ms365-channels",teamId,()=>this.ms365NamedList(ms365Path(`/teams/teams/${ms365Segment(teamId,"\u30C1\u30FC\u30E0 ID")}/channels`),"Teams \u306E\u30C1\u30E3\u30CD\u30EB"))}async ms365Channel(teamId,ref){return resolveNamed(ref,await this.ms365Channels(teamId),
157
+ {flag:"--channel",label:"\u30C1\u30E3\u30CD\u30EB",scope:"\u3053\u306E\u30C1\u30FC\u30E0"})}async ms365FindChat(chatId){const path2=ms365Path("/teams/chats");let cursor=null;let seen=0;let common=null;for(let page=1;page<=MS365_CHAT_FIND_MAX_PAGES;page+=1){const query=`top=${MS365_CHAT_PAGE_TOP}&expand=members${cursor===null?"":`&skiptoken=${encodeURIComponent(cursor)}`}`;const res=await this.get(`${path2}?${query}`);if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`Teams \
158
+ \u306E\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;const value=isRecord(data)?data["value"]:void 0;if(!isRecord(data)||!Array.isArray(value)){throw new ResolveError("Teams \u306E\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data.value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
155
159
  res.status)}const rows=value.filter(isRecord);for(const row of rows){const ids=new Set(ms365MemberUserIds(row));common=common===null?ids:new Set([...common].filter(id=>ids.has(id)))}seen+=rows.length;const hit=rows.find(row=>row["id"]===chatId);if(hit!==void 0)return{chat:hit,commonUserIds:seen>=2&&common!==null?[...common]:[]};const next=data["@odata.nextLink"];if(next===void 0||next===null)return null;const parsed=typeof next==="string"?graphNextCursor(next):null;if(parsed===null||parsed.kind!==
156
160
  "skiptoken"){throw new ResolveError("Teams \u306E\u30C1\u30E3\u30C3\u30C8\u4E00\u89A7\u306E\u7D9A\u304D\uFF08@odata.nextLink\uFF09\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}cursor=parsed.value}throw new UsageError(`\u30C1\u30E3\u30C3\u30C8\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u4E00\u89A7\u304B\u3089\u63A2\u3057\u304D\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${MS365_CHAT_FIND_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u307E\u3057\u305F\
157
161
  \uFF09`,"--name \u3067\u8868\u793A\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}async ms365Message(messageId){const res=await this.get(ms365Path(`/outlook/messages/${ms365Segment(messageId,"\u30E1\u30FC\u30EBID")}`));if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`\u5143\u306E\u30E1\u30FC\u30EB\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
@@ -164,10 +168,10 @@ res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;const value=is
164
168
  return this.client}};function assertMembersComplete(rows){if(rows.length>=PROJECT_MEMBERS_LIMIT){throw new ResolveError(`\u30E1\u30F3\u30D0\u30FC\u304C ${PROJECT_MEMBERS_LIMIT} \u4EBA\u4EE5\u4E0A\u3044\u308B\u305F\u3081\u3001\u5168\u54E1\u3092\u7167\u5408\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return rows}function rawListFrom(res,envelope,label){if(!res.ok){throw new ResolveError(`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
165
169
  status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const list=isRecord(res.json)?res.json[envelope]:void 0;if(!Array.isArray(list)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B ${envelope} \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return list.map((row,index)=>{if(!isRecord(
166
170
  row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\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`,res.status)}return row})}function userRow(row){const email=str(row["email"]);const employeeCode=str(row["employee_code"]);return{id:str(row["user_id"]),name:str(row["user_name"]),code:employeeCode??email,aliases:[email,employeeCode].filter(v=>v!==null)}}function notificationCategoryRow(row){
167
- return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function supportCategoryRow(row){return{id:str(row["id"]),name:str(row["name"])}}function workerAgentRow(row){return{id:str(row["agent_id"]),name:str(row["name"])}}function agentRepositoryRow(row){const short=str(row["name"]);return{id:str(row["id"]),name:str(row["full_name"]),aliases:short===null?[]:[short]}}function userGroupRow(row){return{id:str(row["id"]),name:str(row["usergroup_name"])}}function inquiryCategoryRow(row){return{
168
- id:str(row["id"]),name:str(row["title"]),code:str(row["category_code"])}}function masterList(res,label){const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
169
- res.status)}return rows}function codedMasterRow(row){return{id:str(row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\
170
- \u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;
171
- throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,REDMINE_BASE_PATH,redmineServerPath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,SEGMENTS_PATH,USER_CONTRACT_TYPES_PATH,SKILL_CATEGORIES_PATH,SKILLS_PATH,QUALIFICATIONS_PATH,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,USER_GROUPS_PATH,USER_GROUP_LIMIT,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,
171
+ return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function supportCategoryRow(row){return{id:str(row["id"]),name:str(row["name"])}}function workerAgentRow(row){return{id:str(row["agent_id"]),name:str(row["name"])}}function agentRepositoryRow(row){const short=str(row["name"]);return{id:str(row["id"]),name:str(row["full_name"]),aliases:short===null?[]:[short]}}function apiKeyRow(row){const prefix=str(row["key_prefix"]);return{id:str(row["id"]),name:str(row["name"]),aliases:prefix===
172
+ null?[]:[prefix]}}function userGroupRow(row){return{id:str(row["id"]),name:str(row["usergroup_name"])}}function inquiryCategoryRow(row){return{id:str(row["id"]),name:str(row["title"]),code:str(row["category_code"])}}function masterList(res,label){const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\
173
+ \u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return rows}function codedMasterRow(row){return{id:str(row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.
174
+ name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){
175
+ const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,REDMINE_BASE_PATH,redmineServerPath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,SEGMENTS_PATH,USER_CONTRACT_TYPES_PATH,SKILL_CATEGORIES_PATH,SKILLS_PATH,QUALIFICATIONS_PATH,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,USER_GROUPS_PATH,USER_GROUP_LIMIT,API_KEYS_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,
172
176
  FAQS_PATH,DOMAIN_KNOWLEDGES_PATH,DOMAIN_KNOWLEDGE_SLUG_RE,WORKER_AGENTS_PATH,PROJECT_TEMPLATES_PATH,AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,WORKFLOWS_PATH,REPORTS_PATH,ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,ATTENDANCE_REPORT_MASTER_LABELS,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,SALES_BUSINESS_PLACES_PATH,
173
177
  SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{projectEvaluationResource}from"./chunk-GLOGPK4Y.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-NB2GXB27.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,idSegment,resolveRefFields,updateFlags}from"./chunk-3UOVTIM6.js";
4
- import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-M763HXDH.js";import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{PROJECT_MEMBERS_LIMIT,PROJECT_TEMPLATES_PATH,resolveNamed}from"./chunk-6DM366P6.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{REDACTED}from"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";
3
+ import{projectEvaluationResource}from"./chunk-ILEV32T6.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-SQMJ7XKE.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,idSegment,resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";
4
+ import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-A3VGBVQP.js";import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-5TKHN3A5.js";import{PROJECT_MEMBERS_LIMIT,PROJECT_TEMPLATES_PATH,resolveNamed}from"./chunk-4DOPQ74T.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";
5
5
  import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
6
6
  --start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
7
7
  var WIKI_ROLE_FLAG={name:"--wiki-role",summary:"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E Wiki \u6A29\u9650\uFF08admin\uFF1DWiki \u7BA1\u7406\u8005 / member\uFF1D\u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|member>"};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var WIKI_ROLES=["admin",
@@ -7,7 +7,7 @@ body,"hidden_count"),removed_count:pickNumber(body,"removed_count"),hide_after_d
7
7
  const{resolveOutputFormat}=await import("./format-F6PPBPY5.js");const format=resolveOutputFormat({...opts.output!==void 0?{flag:opts.output}:{},isTty:io.isTty});if(format===null||!LIST_FORMATS.includes(format)){throw new UsageError(`runner list \u306E --output \u306B\u300C${opts.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${LIST_FORMATS.join(" / ")} \u3067\u3059`)}const res=await api.request("GET","/runners");if(!res.ok){io.
8
8
  err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
9
9
  `);return apiExit(res)}const parsed=parseRunners(res);if(parsed===null){io.err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
10
- `);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-BY4KHD5D.js");if(format==="json"){const value={...summary,runners:entries};const selected2=opts.query===void 0?value:await evaluateQuery(opts.query,value);const text2=renderOutput(selected2,"json");io.out(text2.endsWith("\n")?text2:`${text2}
10
+ `);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-XILFR4N3.js");if(format==="json"){const value={...summary,runners:entries};const selected2=opts.query===void 0?value:await evaluateQuery(opts.query,value);const text2=renderOutput(selected2,"json");io.out(text2.endsWith("\n")?text2:`${text2}
11
11
  `);return EXIT_OK}io.err(summaryLine(summary));const selected=opts.query===void 0?entries:await evaluateQuery(opts.query,entries);if(opts.query===void 0&&entries.length===0){io.err("\u4E00\u89A7\u306B\u8868\u793A\u3055\u308C\u308B\u767B\u9332\u306F\u3042\u308A\u307E\u305B\u3093\n");return EXIT_OK}const text=renderOutput(selected,format);io.out(text.endsWith("\n")?text:`${text}
12
12
  `);if(opts.query===void 0&&entries.some(e=>e.state==="stale")){io.err(`${removeHint(opts)}
13
13
  `)}return EXIT_OK}function summaryLine(s){const n=v=>v===null?"?":String(v);const parts=[`\u7A3C\u50CD ${n(s.live_count)} / ${n(s.max_runners)}\uFF08\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${n(s.heartbeat_timeout)}\u79D2\uFF09`];parts.push(`${n(s.hide_after_days)}\u65E5\u4EE5\u4E0A\u5FDC\u7B54\u306A\u3057\u3067\u975E\u8868\u793A ${n(s.hidden_count)}\u53F0`);if(s.removed_count!==null)parts.push(`\u624B\u52D5\u3067\u5916\u3057\u305F\u767B\u9332 ${s.removed_count}\u53F0`);return`\u30E9\u30F3\u30CA\u30FC: ${parts.
@@ -2,12 +2,12 @@ import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";var SENSITIVE_HEADERS=new Set(["authorization","proxy-authorization","cookie","set-cookie","x-api-key","x-auth-token","x-vercel-protection-bypass"]);var REDACTED="***\uFF08\u4F0F\u5B57\uFF09";var SECRET_KEY_PATTERN="[A-Za-z0-9_-]*(?:token|secret|password|passwd|api[_-]?key|credential|signature|tempauth|upload_?url)[A-Za-z0-9_-]*";var NOT_SECRET_FLAGS="(?:starting-token)";var NOT_SECRET_QUERY="(?:skiptoken)";function caseless(source){let out="";let inClass=false;let escaped=false;for(const c of source){
4
4
  if(escaped){out+=c;escaped=false}else if(c==="\\"){out+=c;escaped=true}else if(inClass){if(c==="]")inClass=false;out+=c}else if(c==="["){inClass=true;out+=c}else if(/[a-z]/i.test(c)){out+=`[${c.toLowerCase()}${c.toUpperCase()}]`}else{out+=c}}return out}function referenceStart(endChars){return String.raw`\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[A-Za-z_][A-Za-z0-9_]*\}|\([^()\n]*\))(?=[\s"'`+"`"+String.raw`,;)\]}${endChars}]|\\[\s"nrt]|$)`}var BEARER_REFERENCE_START=referenceStart("");var QUERY_REFERENCE_START=referenceStart(
5
- "&");var PURE_REFERENCE=/^\s*(?:\$[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$\([^()\n]*\))\s*$/;var VALUE_ESCAPE=String.raw`\\[^\s"nrt]`;var BEARER_VALUE=new RegExp(String.raw`\b${caseless("bearer")}\s+(?!${BEARER_REFERENCE_START})(?:[^\s"'`+"`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,"g");var SECRET_QUERY_VALUE=new RegExp(String.raw`([?&](?!${caseless(NOT_SECRET_QUERY)}=)${caseless(SECRET_KEY_PATTERN)}=)(?!${QUERY_REFERENCE_START})(?:[^&\s"'`+"`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,
6
- "g");var SECRET_FLAG_VALUE=new RegExp(String.raw`(--(?!${caseless(NOT_SECRET_FLAGS)}(?:=|\s))${caseless(SECRET_KEY_PATTERN)}(?:=|\s+))('[^']*'|"[^"]*"|(?:[A-Za-z0-9_.~+/=|:%-]|${VALUE_ESCAPE})+)`,"g");function redactSecrets(text){return text.replace(BEARER_VALUE,`Bearer ${REDACTED}`).replace(/(\/v2\/(?:admin\/)?invitations\/)[A-Za-z0-9_-]{16,}/g,`$1${REDACTED}`).replace(new RegExp(`("${SECRET_KEY_PATTERN}"\\s*:\\s*)"(?:[^"\\\\]|\\\\.)*"`,"gi"),`$1"${REDACTED}"`).replace(SECRET_QUERY_VALUE,`$1${REDACTED}`).
7
- replace(SECRET_FLAG_VALUE,(match,prefix,value)=>{const unquoted=/^["']/.test(value)?value.slice(1,-1):value;return PURE_REFERENCE.test(unquoted)?match:`${prefix}${REDACTED}`})}var SECRET_KEY_NAME=new RegExp(`^${SECRET_KEY_PATTERN}$`,"i");function redactSecretValues(value){if(Array.isArray(value))return value.map(item=>redactSecretValues(item));if(value!==null&&typeof value==="object"){const out={};for(const[key,item]of Object.entries(value)){const shownKey=uniqueKey(out,redactSecrets(key));out[shownKey]=
8
- SECRET_KEY_NAME.test(key)&&!(typeof item==="string"&&PURE_REFERENCE.test(item))?REDACTED:redactSecretValues(item)}return out}if(typeof value==="string")return redactSecrets(value);return value}function uniqueKey(out,key){if(!Object.hasOwn(out,key))return key;let n=2;while(Object.hasOwn(out,`${key} (${n})`))n+=1;return`${key} (${n})`}function formatHeaders(headers){if(!headers)return[];const entries=headers instanceof Headers?[...headers.entries()]:Array.isArray(headers)?headers:Object.entries(headers);
9
- return entries.map(([name,value])=>{const shown=SENSITIVE_HEADERS.has(name.toLowerCase())?REDACTED:redactSecrets(String(value));return` ${name.toLowerCase()}: ${shown}`})}var BODY_LIMIT=4e3;function omitAttachmentBytes(body){return body.replace(/"contentBytes":"([A-Za-z0-9+/=]*)"/g,(_,b64)=>`"contentBytes":"\uFF08base64 ${b64.length} \u6587\u5B57\u30FB\u51FA\u529B\u3057\u306A\u3044\uFF09"`)}function formatBody(raw){const safe=omitAttachmentBytes(redactSecrets(stripTerminalControls(raw)));return safe.
10
- length>BODY_LIMIT?`${safe.slice(0,BODY_LIMIT)}
5
+ "&");var PURE_REFERENCE=/^\s*(?:\$[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$\([^()\n]*\))\s*$/;var VALUE_ESCAPE=String.raw`\\[^\s"nrt]`;var BEARER_VALUE=new RegExp(String.raw`\b${caseless("bearer")}\s+(?!${BEARER_REFERENCE_START})(?:[^\s"'`+"`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,"g");var TWP_API_KEY_VALUE=/(?<![A-Za-z0-9])twpk_[A-Za-z0-9]{20,}/g;var SECRET_QUERY_VALUE=new RegExp(String.raw`([?&](?!${caseless(NOT_SECRET_QUERY)}=)${caseless(SECRET_KEY_PATTERN)}=)(?!${QUERY_REFERENCE_START})(?:[^&\s"'`+
6
+ "`"+String.raw`,;)\]}\\]|${VALUE_ESCAPE})+`,"g");var SECRET_FLAG_VALUE=new RegExp(String.raw`(--(?!${caseless(NOT_SECRET_FLAGS)}(?:=|\s))${caseless(SECRET_KEY_PATTERN)}(?:=|\s+))('[^']*'|"[^"]*"|(?:[A-Za-z0-9_.~+/=|:%-]|${VALUE_ESCAPE})+)`,"g");function redactSecrets(text){return text.replace(BEARER_VALUE,`Bearer ${REDACTED}`).replace(TWP_API_KEY_VALUE,REDACTED).replace(/(\/v2\/(?:admin\/)?invitations\/)[A-Za-z0-9_-]{16,}/g,`$1${REDACTED}`).replace(new RegExp(`("${SECRET_KEY_PATTERN}"\\s*:\\s*)"(?\
7
+ :[^"\\\\]|\\\\.)*"`,"gi"),`$1"${REDACTED}"`).replace(SECRET_QUERY_VALUE,`$1${REDACTED}`).replace(SECRET_FLAG_VALUE,(match,prefix,value)=>{const unquoted=/^["']/.test(value)?value.slice(1,-1):value;return PURE_REFERENCE.test(unquoted)?match:`${prefix}${REDACTED}`})}var SECRET_KEY_NAME=new RegExp(`^${SECRET_KEY_PATTERN}$`,"i");function redactSecretValues(value){if(Array.isArray(value))return value.map(item=>redactSecretValues(item));if(value!==null&&typeof value==="object"){const out={};for(const[
8
+ key,item]of Object.entries(value)){const shownKey=uniqueKey(out,redactSecrets(key));out[shownKey]=SECRET_KEY_NAME.test(key)&&!(typeof item==="string"&&PURE_REFERENCE.test(item))?REDACTED:redactSecretValues(item)}return out}if(typeof value==="string")return redactSecrets(value);return value}function uniqueKey(out,key){if(!Object.hasOwn(out,key))return key;let n=2;while(Object.hasOwn(out,`${key} (${n})`))n+=1;return`${key} (${n})`}function formatHeaders(headers){if(!headers)return[];const entries=headers instanceof
9
+ Headers?[...headers.entries()]:Array.isArray(headers)?headers:Object.entries(headers);return entries.map(([name,value])=>{const shown=SENSITIVE_HEADERS.has(name.toLowerCase())?REDACTED:redactSecrets(String(value));return` ${name.toLowerCase()}: ${shown}`})}var BODY_LIMIT=4e3;function omitAttachmentBytes(body){return body.replace(/"contentBytes":"([A-Za-z0-9+/=]*)"/g,(_,b64)=>`"contentBytes":"\uFF08base64 ${b64.length} \u6587\u5B57\u30FB\u51FA\u529B\u3057\u306A\u3044\uFF09"`)}function formatBody(raw){
10
+ const safe=omitAttachmentBytes(redactSecrets(stripTerminalControls(raw)));return safe.length>BODY_LIMIT?`${safe.slice(0,BODY_LIMIT)}
11
11
  \u2026\uFF08\u4EE5\u964D ${safe.length-BODY_LIMIT} \u6587\u5B57\u3092\u7701\u7565\uFF09`:safe}function isTextualContentType(contentType){if(contentType===null)return false;return/^\s*(text\/|application\/(json|xml|javascript|x-www-form-urlencoded)|application\/[\w.+-]*\+(json|xml))/i.test(contentType)}function withDebug(inner,options={}){const write=options.write??(text=>void process.stderr.write(text));const now=options.now??(()=>Date.now());return async(input,init)=>{const method=init?.method??
12
12
  "GET";const lines=[`[debug] \u2192 ${method} ${redactSecrets(input)}`,...formatHeaders(init?.headers)];if(options.omitBodies!==void 0&&init?.body!==void 0&&init.body!==null)lines.push(` \uFF08\u672C\u6587\u306F${options.omitBodies}\u305F\u3081\u51FA\u529B\u3057\u306A\u3044\uFF09`);else if(typeof init?.body==="string")lines.push(` ${formatBody(init.body)}`);else if(init?.body instanceof Uint8Array)lines.push(` \uFF08\u672C\u6587\u306F ${init.body.byteLength} \u30D0\u30A4\u30C8\u306E\u30D0\u30A4\u30C8\u5217\u3002\u51FA\u529B\u3057\u306A\u3044\uFF09`);
13
13
  write(`${lines.join("\n")}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-NELPXRBC.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-ELW4VTSK.js";import{inspectLocalFile}from"./chunk-WTYIFLVB.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-3UOVTIM6.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-6DM366P6.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-3E7QVTKD.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-TUFWQYKB.js";import{inspectLocalFile}from"./chunk-WTYIFLVB.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-45WIRMGL.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-4DOPQ74T.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
5
5
  {kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","estimate_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=[
6
6
  "version_number","file_name","file_size","is_current","created_by_name","created_at"];var ESTIMATE_FLAG={name:"--estimate",summary:"\u898B\u7A4D\u306E ID\uFF08twp estimate list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u898B\u7A4DID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-HZNC2UFL.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
3
+ import{salesAdminForbidden}from"./chunk-FLIY4GM2.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
4
4
  ["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
5
5
  nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
6
6
  "\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-HZNC2UFL.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-VROESTZQ.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-6DM366P6.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,
3
+ import{salesAdminForbidden}from"./chunk-FLIY4GM2.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-4557EX6E.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-4DOPQ74T.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,
4
4
  nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
5
5
  "string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
6
6
  trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{emailText,ms365Forbidden,recipientsText,str}from"./chunk-M37IYSEG.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-M763HXDH.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-MMVXE2CJ.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var BODY_MAX_CHARS=1e5;var ATTACH_TOTAL_MAX_BYTES=3*1024*1024;var ADDRESS=/^[^\s@,;<>"]+@[^\s@,;<>"]+$/;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;function oneLine(value){return value.replace(/[\r\n\t]+/g," ").replace(/[\p{Cc}\p{Cf}]/gu,"")}var TO_FLAG={name:"--to",summary:"\u5B9B\u5148\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u5FC5\u9808\u3002\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true};var CC_FLAG={name:"--c\
3
+ import{emailText,ms365Forbidden,recipientsText,str}from"./chunk-M37IYSEG.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{readBody}from"./chunk-A3VGBVQP.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-MMVXE2CJ.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var BODY_MAX_CHARS=1e5;var ATTACH_TOTAL_MAX_BYTES=3*1024*1024;var ADDRESS=/^[^\s@,;<>"]+@[^\s@,;<>"]+$/;var INVISIBLE=/[\p{Cc}\p{Cf}]/u;function oneLine(value){return value.replace(/[\r\n\t]+/g," ").replace(/[\p{Cc}\p{Cf}]/gu,"")}var TO_FLAG={name:"--to",summary:"\u5B9B\u5148\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u5FC5\u9808\u3002\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true};var CC_FLAG={name:"--c\
4
4
  c",summary:"Cc \u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\uFF09",takesValue:true,placeholder:"<\u30A2\u30C9\u30EC\u30B9>",repeatable:true};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var BODY_FLAG={name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",
5
5
  takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var HTML_FLAG={name:"--html",summary:"\u672C\u6587\u3092 HTML \u3068\u3057\u3066\u9001\u308B\uFF08\u65E2\u5B9A\u306F\u30C6\u30AD\u30B9\u30C8\uFF09",takesValue:false};var MESSAGE_FLAG={name:"--message",summary:"\u5143\u306E\u30E1\u30FC\u30EBID\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<ID>"};var EXTERNAL_SEND_HELP="\u26A0 \u5916\u90E8\u3078\u51FA\u308B\u64CD\u4F5C\u3067\u3059\u3002\u5B9F\u884C\u3057\u305F\u77AC\u9593\u306B\u76F8\u624B\u306E\u53D7\u4FE1\u7BB1\u3078\u5C4A\u304D\u3001\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\u3002\n --yes \u304C\u7121\u3051\u308C\u3070\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002--dry-run \u3067\u9001\u308B\u5185\u5BB9\uFF08\u5B9B\u5148\u30FB\u4EF6\
6
6
  \u540D\u30FB\u672C\u6587\u30FB\u6DFB\u4ED8\u306E\u540D\u524D\u3068\u5927\u304D\u3055\uFF09\u3092\u78BA\u304B\u3081\u3066\u304B\u3089\n --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08--dry-run \u306F --yes \u3092\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\n\u26A0 \u7D42\u4E86\u30B3\u30FC\u30C9 4\uFF08\u901A\u4FE1\u306E\u5931\u6557\u30FB\u30B5\u30FC\u30D0\u306E\u4E00\u6642\u30A8\u30E9\u30FC\uFF09\u3067\u3082\u3001Microsoft 365 \u5074\u3067\u306F\u9001\u4FE1\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n \u6253\u3061\u76F4\u3059\u524D\u306B twp outlook mail list --folder sentitems \u3067\u9001\u4FE1\u6E08\u307F\u30A2\u30A4\u30C6\u30E0\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{placeholderTaskKey,stepToItem}from"./chunk-3D734ED2.js";import{localDate}from"./chunk-6EQLA56A.js";import{redactLoopOutput}from"./chunk-NXPLTDN4.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-UZUV5FYG.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs from"fs";import path from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
3
+ import{placeholderTaskKey,stepToItem}from"./chunk-P54LCXEY.js";import{localDate}from"./chunk-6EQLA56A.js";import{redactLoopOutput}from"./chunk-BABZL52A.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-UZUV5FYG.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs from"fs";import path from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
4
4
  floor((now.getTime()-ts)/6e4)}return null}function inflightEntries(items,now=new Date,staleHours=INFLIGHT_STALE_HOURS){const staleMinutes=staleHours*60;const byKey=new Map;for(const item of items){const key=(item.task_key??"").trim();if(!key)continue;const ageMinutes=ageMinutesOf(item,now);if(ageMinutes!==null&&ageMinutes>staleMinutes)continue;const entry={key,runner:item.runner_id??"-",ageMinutes,label:(item.label??"").slice(0,60)};const prev=byKey.get(key);if(!prev||(entry.ageMinutes??-1)>(prev.
5
5
  ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}async function createItem(api,body){const res=await api.create(redactItemBody(body));if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function redactItemBody(body){const out={...body};for(const key of["prompt","label"]){if(typeof out[key]==="string")
6
6
  out[key]=redactLoopOutput(out[key])}return out}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"items");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-IXT2X5BZ.js";import{UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \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\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
3
+ import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-5TKHN3A5.js";import{UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \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\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
4
4
  push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8")}function charCount(text){return[...text].length}function containsRedactedMarker(text){if(text.includes(REDACTED))return true;let parsed;try{parsed=JSON.parse(text)}catch(error){if(error instanceof SyntaxError)return false;throw error}const pending=[parsed];while(pending.length>0){const value=pending.pop();if(typeof value==="string"){if(value.includes(REDACTED))return true}else if(Array.isArray(value)){for(const item of value)
5
5
  pending.push(item)}else if(value!==null&&typeof value==="object"){for(const[key,item]of Object.entries(value)){if(key.includes(REDACTED))return true;pending.push(item)}}}return false}async function readBody(input,spec){const inline=input.flags.get(spec.flag);const file=input.flags.get(spec.fileFlag);if(inline!==void 0&&file!==void 0){throw new UsageError(`${spec.label}\u304C ${spec.flag} \u3068 ${spec.fileFlag} \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,`\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\
6
6
  \u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${spec.fileFlag} - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\uFF09\u3002`)}if(inline===void 0&&file===void 0)return void 0;const text=inline??await readFrom(file,spec);const stripped=text.startsWith(BOM)?text.slice(BOM.length):text;if(stripped.trim()===""){throw new UsageError(`${spec.label}\u304C\u7A7A\u3067\u3059\uFF08${inline!==void 0?spec.flag:`${spec.fileFlag} ${file}`}\uFF09`,spec.usage)}const count=charCount(stripped);
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{REDACTED,redactSecrets}from"./chunk-IXT2X5BZ.js";var PEM_BEGIN=/-----BEGIN [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_END=/-----END [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_UNCLOSED_BODY=/(?:(?:\r?\n|\\(?:r\\)?n)[ \t]*(?:(?:Proc-Type|DEK-Info):[^\n\\]*|(?:[A-Za-z0-9+/]{16,}={0,2}|[A-Za-z0-9+/]*={1,2})[ \t]*(?=[\r\n"\\]|$)))*/y;function redactPemPrivateKeys(text){if(!text.includes("PRIVATE KEY-----"))return text;let out="";let last=0;let end=null;let noMoreEnd=false;PEM_BEGIN.lastIndex=0;for(let begin=PEM_BEGIN.exec(text);begin!==null;begin=PEM_BEGIN.
3
+ import{REDACTED,redactSecrets}from"./chunk-5TKHN3A5.js";var PEM_BEGIN=/-----BEGIN [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_END=/-----END [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_UNCLOSED_BODY=/(?:(?:\r?\n|\\(?:r\\)?n)[ \t]*(?:(?:Proc-Type|DEK-Info):[^\n\\]*|(?:[A-Za-z0-9+/]{16,}={0,2}|[A-Za-z0-9+/]*={1,2})[ \t]*(?=[\r\n"\\]|$)))*/y;function redactPemPrivateKeys(text){if(!text.includes("PRIVATE KEY-----"))return text;let out="";let last=0;let end=null;let noMoreEnd=false;PEM_BEGIN.lastIndex=0;for(let begin=PEM_BEGIN.exec(text);begin!==null;begin=PEM_BEGIN.
4
4
  exec(text)){const after=begin.index+begin[0].length;if(!noMoreEnd&&(end===null||end.index<after)){PEM_END.lastIndex=after;end=PEM_END.exec(text);noMoreEnd=end===null}let stop;if(end!==null&&!noMoreEnd){stop=end.index+end[0].length}else{PEM_UNCLOSED_BODY.lastIndex=after;PEM_UNCLOSED_BODY.exec(text);stop=Math.max(after,PEM_UNCLOSED_BODY.lastIndex)}out+=text.slice(last,begin.index)+REDACTED;last=stop;PEM_BEGIN.lastIndex=stop}return out+text.slice(last)}var KNOWN_TOKEN_PATTERNS=[/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|(?:AKIA|ASIA)[0-9A-Z]{16}|npm_[A-Za-z0-9]{30,}|xox[abprs]-[A-Za-z0-9-]{10,})\b/g,
5
- /\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g];var URL_USERINFO=/((?<![A-Za-z0-9+.-])[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/@:"'`]+:[^\s/"'`]+@/gi;var VALUE_ESCAPE="(?:\\\\\\\\ |\\\\[^\\r\\n\"'`nrt\\u0080-\\uFFFF])";var UNCLOSED_DOUBLE_JSON=String.raw`\\"(?!\$)(?:\\\\\\"|\\\\(?!\\")|\\[rt]|[^\\\n"])+`;var UNCLOSED_DOUBLE_RAW=String.raw`"(?!\$)(?:[^\n\\"]|\\[^\n])+`;var UNCLOSED_SINGLE_RAW=String.raw`'(?!\$)(?:[^\n\\"']|\\[^\n])+`;var ENV_SECRET_ASSIGNMENT=new RegExp(`\\b([A-Z0-9_]{\
6
- 0,128}?(?:TOKEN|SECRET|PASSWORD|PASSWD|API_?KEY|CREDENTIALS?|PRIVATE_KEY)(?:_[A-Z0-9_]{0,128})?=)(?:${UNCLOSED_DOUBLE_JSON}${String.raw`(?:\\")?`}|${UNCLOSED_DOUBLE_RAW}"?|(['])(?!\\$)(?:(?!\\2)[^\\n\\\\]|\\\\[^\\n])+?\\2|\\\\(['])(?!\\$)(?:\\\\\\\\\\\\\\3|(?!\\\\\\3)(?:[^\\n\\\\]|\\\\[^\\n]))+?\\\\\\3|${UNCLOSED_SINGLE_RAW}|(?![$(])(?:[^\\s"'\`;&)\\\\]|${VALUE_ESCAPE}){8,})`,"g");var ENV_SECRET_ASSIGNMENT_JSON_STRING=new RegExp(ENV_SECRET_ASSIGNMENT.source.replace(UNCLOSED_SINGLE_RAW,String.raw`'(?!\$)(?:[^\n\\']|\\[^\n])+`),
7
- "g");var HEADER_TOKEN=`(?:[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var HEADER_SEP=`(\\\\?["']?[ \\t]*:[ \\t]*(?:\\\\?["'])?)`;function caseless(source){return source.replace(/[a-z]/g,c=>`[${c}${c.toUpperCase()}]`)}var AUTH_SCHEME=caseless("(?:basic|bearer|token|digest|negotiate|ntlm|aws4-hmac-sha256)");var HEADER_SECRET=new RegExp(`(?<![\\w-])(${caseless("x-api-key|x-auth-token|x-vercel-protection-bypass")})${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${HEADER_TOKEN}`,"g");var AUTH_QUOTED_PARAM=`\
8
- (?<=[A-Za-z0-9_-])=((?:\\\\\\\\)*\\\\?["'])[^\\r\\n"'\`\\\\]*\\4(?=[ \\t]*(?:[,"'\`\\\\\\r\\n]|$))`;var AUTH_VALUE_HEAD=`(?:\\*\\*\\*\uFF08\u4F0F\u5B57\uFF09|[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})`;var AUTH_VALUE_REST=`(?:\\*\\*\\*\uFF08\u4F0F\u5B57\uFF09|${AUTH_QUOTED_PARAM}|[^\\n"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})*`;var AUTHORIZATION_HEADER=new RegExp(`(?<![\\w-])(${caseless("(?:proxy-)?authorization")})${HEADER_SEP}(?!(?:${AUTH_SCHEME}[ \\t]+)?(?:[$(]|\\*\\*\\*\uFF08\u4F0F\u5B57\uFF09(?!\\\\ )))(${AUTH_SCHEME}\
9
- [ \\t]+)?${AUTH_VALUE_HEAD}${AUTH_VALUE_REST}`,"g");var BEARER_VALUE=new RegExp(`\\b(${caseless("bearer")}[ \\t]+)(?![$(]|\\*\\*\\*\uFF08)(?:[^\\s"'\`,;)\\]}\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`,"g");var COOKIE_TOKEN=`(?:[^\\s"'\`\\\\;\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var COOKIE_HEADER=new RegExp(`(?<![\\w-])(${caseless("(?:set-)?cookie")})${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${COOKIE_TOKEN}(?:[ \\t]*;[ \\t]*${COOKIE_TOKEN})*`,"g");var AWS_CREDENTIALS_FILE=new RegExp(`\\b(${caseless("aws_(?:\
10
- secret_access_key|session_token|security_token)")}[ \\t]*[=:][ \\t]*(?:\\\\?["'])?)(?![$(])(?:[^\\s"'\`\\\\]|${VALUE_ESCAPE})+`,"g");function redactPlainOutput(text,decodedJsonString=false){if(text==="")return text;let out=redactSecrets(text.replace(BEARER_VALUE,`$1${REDACTED}`)).replace(URL_USERINFO,`$1${REDACTED}@`).replace(AUTHORIZATION_HEADER,(_m,name,sep,scheme)=>`${name}${sep}${scheme??""}${REDACTED}`).replace(HEADER_SECRET,`$1$2${REDACTED}`).replace(COOKIE_HEADER,`$1$2${REDACTED}`).replace(
11
- AWS_CREDENTIALS_FILE,`$1${REDACTED}`).replace(decodedJsonString?ENV_SECRET_ASSIGNMENT_JSON_STRING:ENV_SECRET_ASSIGNMENT,(match,name)=>{const value=match.slice(name.length);const quote=/^\\?["']/.exec(value)?.[0]??"";return`${name}${quote}${REDACTED}${quote}`});for(const pattern of KNOWN_TOKEN_PATTERNS)out=out.replace(pattern,REDACTED);out=redactPemPrivateKeys(out);return out}function redactLoopOutput(text){let out=text;if(/^\s*[[{]/.test(text)){try{JSON.parse(text);out=text.replace(/"(?:[^"\\]|\\.)*"/g,
12
- token=>{const raw=JSON.parse(token);const redacted=redactPlainOutput(raw,true);return raw===redacted?token:JSON.stringify(redacted)})}catch{}}return redactPlainOutput(out)}var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var ClaudeStreamRenderer=class{constructor(now=()=>new Date){this.now=now}now;toolNames=new Map;toolCount=0;result={subtype:null,isError:null,numTurns:null,costUsd:null,durationMs:null,tokensIn:null,tokensOut:null,rateLimited:false,resetsAt:null,finalText:""};push(line){const trimmed=line.trim();if(trimmed==="")return[];let event;try{const parsed=JSON.parse(trimmed);if(parsed===null||typeof parsed!=="\
5
+ /(?<![A-Za-z0-9])twpk_[A-Za-z0-9]{20,}/g,/\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g];var URL_USERINFO=/((?<![A-Za-z0-9+.-])[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/@:"'`]+:[^\s/"'`]+@/gi;var VALUE_ESCAPE="(?:\\\\\\\\ |\\\\[^\\r\\n\"'`nrt\\u0080-\\uFFFF])";var UNCLOSED_DOUBLE_JSON=String.raw`\\"(?!\$)(?:\\\\\\"|\\\\(?!\\")|\\[rt]|[^\\\n"])+`;var UNCLOSED_DOUBLE_RAW=String.raw`"(?!\$)(?:[^\n\\"]|\\[^\n])+`;var UNCLOSED_SINGLE_RAW=String.raw`'(?!\$)(?:[^\n\\"']|\\[^\n])+`;var ENV_SECRET_ASSIGNMENT=new RegExp(
6
+ `\\b([A-Z0-9_]{0,128}?(?:TOKEN|SECRET|PASSWORD|PASSWD|API_?KEY|CREDENTIALS?|PRIVATE_KEY)(?:_[A-Z0-9_]{0,128})?=)(?:${UNCLOSED_DOUBLE_JSON}${String.raw`(?:\\")?`}|${UNCLOSED_DOUBLE_RAW}"?|(['])(?!\\$)(?:(?!\\2)[^\\n\\\\]|\\\\[^\\n])+?\\2|\\\\(['])(?!\\$)(?:\\\\\\\\\\\\\\3|(?!\\\\\\3)(?:[^\\n\\\\]|\\\\[^\\n]))+?\\\\\\3|${UNCLOSED_SINGLE_RAW}|(?![$(])(?:[^\\s"'\`;&)\\\\]|${VALUE_ESCAPE}){8,})`,"g");var ENV_SECRET_ASSIGNMENT_JSON_STRING=new RegExp(ENV_SECRET_ASSIGNMENT.source.replace(UNCLOSED_SINGLE_RAW,
7
+ String.raw`'(?!\$)(?:[^\n\\']|\\[^\n])+`),"g");var HEADER_TOKEN=`(?:[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var HEADER_SEP=`(\\\\?["']?[ \\t]*:[ \\t]*(?:\\\\?["'])?)`;function caseless(source){return source.replace(/[a-z]/g,c=>`[${c}${c.toUpperCase()}]`)}var AUTH_SCHEME=caseless("(?:basic|bearer|token|digest|negotiate|ntlm|aws4-hmac-sha256)");var HEADER_SECRET=new RegExp(`(?<![\\w-])(${caseless("x-api-key|x-auth-token|x-vercel-protection-bypass")})${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${HEADER_TOKEN}`,
8
+ "g");var AUTH_QUOTED_PARAM=`(?<=[A-Za-z0-9_-])=((?:\\\\\\\\)*\\\\?["'])[^\\r\\n"'\`\\\\]*\\4(?=[ \\t]*(?:[,"'\`\\\\\\r\\n]|$))`;var AUTH_VALUE_HEAD=`(?:\\*\\*\\*\uFF08\u4F0F\u5B57\uFF09|[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})`;var AUTH_VALUE_REST=`(?:\\*\\*\\*\uFF08\u4F0F\u5B57\uFF09|${AUTH_QUOTED_PARAM}|[^\\n"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})*`;var AUTHORIZATION_HEADER=new RegExp(`(?<![\\w-])(${caseless("(?:proxy-)?authorization")})${HEADER_SEP}(?!(?:${AUTH_SCHEME}[ \\t]+)?(?:[$(]|\
9
+ \\*\\*\\*\uFF08\u4F0F\u5B57\uFF09(?!\\\\ )))(${AUTH_SCHEME}[ \\t]+)?${AUTH_VALUE_HEAD}${AUTH_VALUE_REST}`,"g");var BEARER_VALUE=new RegExp(`\\b(${caseless("bearer")}[ \\t]+)(?![$(]|\\*\\*\\*\uFF08)(?:[^\\s"'\`,;)\\]}\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`,"g");var COOKIE_TOKEN=`(?:[^\\s"'\`\\\\;\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var COOKIE_HEADER=new RegExp(`(?<![\\w-])(${caseless("(?:set-)?cookie")})${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${COOKIE_TOKEN}(?:[ \\t]*;[ \\t]*${COOKIE_TOKEN})*`,"g");var AWS_CREDENTIALS_FILE=new RegExp(
10
+ `\\b(${caseless("aws_(?:secret_access_key|session_token|security_token)")}[ \\t]*[=:][ \\t]*(?:\\\\?["'])?)(?![$(])(?:[^\\s"'\`\\\\]|${VALUE_ESCAPE})+`,"g");function redactPlainOutput(text,decodedJsonString=false){if(text==="")return text;let out=redactSecrets(text.replace(BEARER_VALUE,`$1${REDACTED}`)).replace(URL_USERINFO,`$1${REDACTED}@`).replace(AUTHORIZATION_HEADER,(_m,name,sep,scheme)=>`${name}${sep}${scheme??""}${REDACTED}`).replace(HEADER_SECRET,`$1$2${REDACTED}`).replace(COOKIE_HEADER,`\
11
+ $1$2${REDACTED}`).replace(AWS_CREDENTIALS_FILE,`$1${REDACTED}`).replace(decodedJsonString?ENV_SECRET_ASSIGNMENT_JSON_STRING:ENV_SECRET_ASSIGNMENT,(match,name)=>{const value=match.slice(name.length);const quote=/^\\?["']/.exec(value)?.[0]??"";return`${name}${quote}${REDACTED}${quote}`});for(const pattern of KNOWN_TOKEN_PATTERNS)out=out.replace(pattern,REDACTED);out=redactPemPrivateKeys(out);return out}function redactLoopOutput(text){let out=text;if(/^\s*[[{]/.test(text)){try{JSON.parse(text);out=
12
+ text.replace(/"(?:[^"\\]|\\.)*"/g,token=>{const raw=JSON.parse(token);const redacted=redactPlainOutput(raw,true);return raw===redacted?token:JSON.stringify(redacted)})}catch{}}return redactPlainOutput(out)}var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var ClaudeStreamRenderer=class{constructor(now=()=>new Date){this.now=now}now;toolNames=new Map;toolCount=0;result={subtype:null,isError:null,numTurns:null,costUsd:null,durationMs:null,tokensIn:null,tokensOut:null,rateLimited:false,resetsAt:null,finalText:""};push(line){const trimmed=line.trim();if(trimmed==="")return[];let event;try{const parsed=JSON.parse(trimmed);if(parsed===null||typeof parsed!=="\
13
13
  object"||Array.isArray(parsed)){return[line]}event=parsed}catch{return[line]}switch(event["type"]){case"rate_limit_event":return this.onRateLimit(event);case"assistant":return this.onAssistant(event);case"user":return this.onUser(event);case"result":return this.onResult(event);default:return event["type"]==="system"?[]:[line]}}sawRateLimit(){return this.result.rateLimited}lastRateLimitNote="";onRateLimit(event){const info=event["rate_limit_info"];if(info===null||typeof info!=="object")return[];const rec=info;
14
14
  const status=typeof rec["status"]==="string"?rec["status"]:"";const resets=typeof rec["resetsAt"]==="number"?rec["resetsAt"]:null;if(status==="")return[];const at=isSaneEpochSec(resets)?` resets=${new Date(resets*1e3).toISOString()}`:"";if(status.startsWith("allowed")){if(status==="allowed")return[];const seen=`${status}|${resets??""}`;if(seen===this.lastRateLimitNote)return[];this.lastRateLimitNote=seen;return[this.line(`\u2139\uFE0F \u4E0A\u9650\u306B\u63A5\u8FD1\uFF08status=${status}${at}\uFF09\u2014 \u5B9F\
15
15
  \u884C\u306F\u7D99\u7D9A\u3057\u307E\u3059`)]}if(resets!==null)this.result.resetsAt=resets;this.result.rateLimited=true;return[this.line(`\u26A0\uFE0F \u30EC\u30FC\u30C8\u30EA\u30DF\u30C3\u30C8\u901A\u77E5: status=${status}${at}`)]}onAssistant(event){const out=[];for(const block of contentBlocks(event)){if(block.type==="tool_use"){const name=typeof block.name==="string"?block.name:"tool";if(typeof block.id==="string")this.toolNames.set(block.id,name);this.toolCount+=1;out.push(this.line(`>> ${name}${toolDetail(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{featureLicenseGuidance}from"./chunk-VROESTZQ.js";import{isExactNumericId}from"./chunk-6DM366P6.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
3
+ import{featureLicenseGuidance}from"./chunk-4557EX6E.js";import{isExactNumericId}from"./chunk-4DOPQ74T.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
4
4
  "\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u51FA\u529B\u3067\u304D\u307E\u3059\uFF09`}return void 0}var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",noExample:"EST0000063",
5
5
  defaultKind:"estimate",kinds:{estimate:{segment:"estimate",label:"\u898B\u7A4D\u66F8"},order:{segment:"order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",noExample:"INV0000170",defaultKind:"invoice",kinds:{invoice:{segment:"invoice",label:"\u8ACB\u6C42\u66F8"},delivery:{segment:"delivery",label:"\u7D0D\u54C1\u66F8"},inspection:{segment:"inspection",label:"\u691C\u53CE\u66F8"}}};var PURCHASE={
6
6
  name:"purchase",label:"\u4ED5\u5165",defaultKind:"order",kinds:{order:{segment:"purchase-order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"purchase-order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-M763HXDH.js";import{WORKER_AGENTS_PATH}from"./chunk-6DM366P6.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{charCount,readBody}from"./chunk-A3VGBVQP.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{WORKER_AGENTS_PATH}from"./chunk-4DOPQ74T.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";var LABEL="\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8";var LIST_COLUMNS=["agent_id","name","is_enabled","schedule","next_run_at","last_run_status","last_run_at","owner_user_name"];var GET_COLUMNS=["agent_id","name","description","owner_user_name","is_enabled","schedule","next_run_at","is_running","last_run_status","last_run_at","last_run_id","allowed_tool_count","write_enabled","ai_model","consecutive_failure_count","auto_disabled_reason"];var TOOL_COLUMNS=["name","category","d\
5
5
  isplay_name","is_mutating","is_available"];var TOOL_GET_COLUMNS=["name","category","display_name","description","is_mutating","is_destructive","is_available","required_feature","required_level","required_api_scopes"];var RUN_COLUMNS=["run_id","status","trigger","started_at","duration_ms","tool_call_count","consumed_credits","summary"];var RUN_GET_COLUMNS=["summary","status","skip_reason","error_code","error_message","run_id","agent_id","trigger","is_dry_run","started_at","finished_at","duration_\
6
6
  ms","iteration_count","tool_call_count","mutation_count","consumed_credits","ai_model"];var STEP_COLUMNS=["step_no","type","tool_name","is_mutation","duration_ms","content","error_message"];var STEP_TYPES=["thinking","tool_call","tool_result","error","budget_warning","final_summary"];var FORBIDDEN="AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6A5F\u80FD\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\uFF08agent\uFF09\u304C\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u4F7F\u3048\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u308A\u5F53\u3066\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-VROESTZQ.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-M763HXDH.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-6DM366P6.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
3
+ import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-4557EX6E.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-A3VGBVQP.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-4DOPQ74T.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
4
4
  STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\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`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
5
5
  allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
6
6
  \u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\