@tocca-systems/twp-cli 0.88.0 → 0.90.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 (109) hide show
  1. package/CHANGELOG.public.md +24 -0
  2. package/README.md +84 -3
  3. package/dist/{agent-SFDNPV24.js → agent-IVJ5DCFU.js} +1 -1
  4. package/dist/analysis-DIWOPBN6.js +5 -0
  5. package/dist/{announcement-XAIC4CNE.js → announcement-KOXBNHSN.js} +1 -1
  6. package/dist/{api-command-XFQUUFDV.js → api-command-OJORMKTD.js} +3 -3
  7. package/dist/{app-M56CCOE7.js → app-V6K6YNWR.js} +4 -4
  8. package/dist/{attendance-correct-CJ3FJSVI.js → attendance-correct-XM26CE65.js} +2 -2
  9. package/dist/{attendance-lists-RRGFCDZR.js → attendance-lists-VNAHH3R4.js} +2 -2
  10. package/dist/{backlog-L5VRYZGM.js → backlog-LCGG5HRB.js} +22 -20
  11. package/dist/budget-OYBU4JFH.js +4 -0
  12. package/dist/{chunk-MUIN7OUW.js → chunk-23MEOBJF.js} +3 -5
  13. package/dist/{chunk-VRJF6JLR.js → chunk-5STCZEOX.js} +1 -1
  14. package/dist/chunk-62GRAKUD.js +38 -0
  15. package/dist/{chunk-XJ5EKWQY.js → chunk-AVOZLZA5.js} +1 -1
  16. package/dist/chunk-C6U2CGX7.js +4 -0
  17. package/dist/{chunk-RTYJWZRA.js → chunk-EGOE26U7.js} +1 -1
  18. package/dist/{chunk-WWDNWWPJ.js → chunk-EQTXWU2Y.js} +1 -1
  19. package/dist/{chunk-QUMDKN3U.js → chunk-EQXJOEOK.js} +1 -1
  20. package/dist/{chunk-Y7QW7MHQ.js → chunk-FCC7JJR5.js} +1 -1
  21. package/dist/chunk-GLOGPK4Y.js +88 -0
  22. package/dist/{chunk-FBVSHQST.js → chunk-H7XVCIL7.js} +1 -1
  23. package/dist/{chunk-QLDKF6GK.js → chunk-IWY2SNST.js} +1 -1
  24. package/dist/{chunk-2AVQILQQ.js → chunk-M36DAHMH.js} +62 -57
  25. package/dist/{chunk-OW23MAVO.js → chunk-M37IYSEG.js} +1 -1
  26. package/dist/{chunk-IWYJSQ5I.js → chunk-M763HXDH.js} +1 -1
  27. package/dist/{chunk-H4CDX4TX.js → chunk-MMVXE2CJ.js} +4 -3
  28. package/dist/{chunk-WDQMYRPE.js → chunk-MPGJU5A7.js} +1 -1
  29. package/dist/{chunk-NMYHFVDR.js → chunk-NYQYDX7G.js} +1 -1
  30. package/dist/{chunk-E4FUHYC6.js → chunk-P673SKUV.js} +33 -14
  31. package/dist/chunk-RACLI3FA.js +8 -0
  32. package/dist/{chunk-GO4KFSBE.js → chunk-T3PYPLTG.js} +106 -23
  33. package/dist/{chunk-LGJPXLMC.js → chunk-T7MUDWUH.js} +1 -1
  34. package/dist/{chunk-RMU72S3D.js → chunk-U2CRCBJ3.js} +1 -1
  35. package/dist/{chunk-4VBSSXGA.js → chunk-U3XIH7WP.js} +1 -1
  36. package/dist/{chunk-M7UEPYUQ.js → chunk-U6KPYJTM.js} +1 -1
  37. package/dist/{chunk-AV7L2IEN.js → chunk-UCPK53K4.js} +1 -1
  38. package/dist/chunk-UVCJXHWN.js +5 -0
  39. package/dist/{chunk-FJEGS55N.js → chunk-VLBWNFQW.js} +1 -1
  40. package/dist/chunk-Y5XM6W3S.js +12 -0
  41. package/dist/{chunk-KPCVSILY.js → chunk-YPS5XHYE.js} +1 -1
  42. package/dist/{chunk-TJNM7PHZ.js → chunk-ZTDDOUS4.js} +5 -5
  43. package/dist/cli.js +77 -12
  44. package/dist/{commands-V7ZBTH7I.js → commands-FOEEAVJQ.js} +1 -1
  45. package/dist/{commands-2GRO356U.js → commands-ULMFP3LH.js} +47 -46
  46. package/dist/{company-TF76Z3U5.js → company-BW3U437C.js} +2 -2
  47. package/dist/{completion-G54M3EFF.js → completion-636S3VU3.js} +1 -1
  48. package/dist/{configure-3JID6MQ5.js → configure-DONZ3M6N.js} +3 -3
  49. package/dist/{contract-CFLPFV4I.js → contract-2MANNVJT.js} +2 -2
  50. package/dist/{department-T22PBYMP.js → department-LT3IM65L.js} +1 -1
  51. package/dist/{deposit-PLQ7WHOX.js → deposit-RYRCQ2U7.js} +1 -1
  52. package/dist/{domain-knowledge-YFY5H6UB.js → domain-knowledge-Q2YMI7I2.js} +1 -1
  53. package/dist/{estimate-DYPQ27KU.js → estimate-MMS326SE.js} +3 -3
  54. package/dist/evaluation-KSZPNKBM.js +122 -0
  55. package/dist/{expense-EA77QGLW.js → expense-J7KGZKLH.js} +1 -1
  56. package/dist/faq-FJUCNBEB.js +68 -0
  57. package/dist/{fiscal-year-YSFASZEW.js → fiscal-year-AFO5CWDN.js} +1 -1
  58. package/dist/{holiday-E5WEZU6J.js → holiday-KF2RVJSU.js} +3 -3
  59. package/dist/{inquiry-LEYPOQWZ.js → inquiry-IAAJYTXP.js} +1 -1
  60. package/dist/{invoice-CAYBEW65.js → invoice-A3X3JF2H.js} +2 -2
  61. package/dist/{job-title-RSDAHHVJ.js → job-title-PF4C6D6U.js} +1 -1
  62. package/dist/{knowledge-GYLFDEXS.js → knowledge-2YF7CJKA.js} +7 -7
  63. package/dist/{leave-IG7SWPPB.js → leave-2JNN3V3D.js} +3 -3
  64. package/dist/{license-I2SL53UI.js → license-MRXITCY7.js} +1 -1
  65. package/dist/{media-TKP7ONY4.js → media-IQ2AIN67.js} +3 -3
  66. package/dist/{notification-IEANIYPD.js → notification-4YXX6H3D.js} +1 -1
  67. package/dist/{onedrive-KWVOUGG6.js → onedrive-Z43D26SJ.js} +1 -1
  68. package/dist/{oneshot-3N2W247J.js → oneshot-ZCGHYKQM.js} +1 -1
  69. package/dist/{outlook-FQYNTXOB.js → outlook-ZRFSKSJ3.js} +1 -1
  70. package/dist/{position-CRVEGXPL.js → position-M2MEJBUK.js} +1 -1
  71. package/dist/project-EF2JKWVC.js +4 -0
  72. package/dist/{prospect-A2YNQ4DE.js → prospect-R6346ME5.js} +2 -2
  73. package/dist/{purchase-F3HUNCJE.js → purchase-XCTYVG4N.js} +3 -3
  74. package/dist/{receivable-K4UKS46G.js → receivable-FVLXVO2S.js} +1 -1
  75. package/dist/{redmine-MC3RIB7W.js → redmine-EUFN35BT.js} +1 -1
  76. package/dist/{registry-FAISFFZY.js → registry-TGKZPLKO.js} +1 -1
  77. package/dist/{report-HUP2TXTK.js → report-6Q3JV4DN.js} +1 -1
  78. package/dist/{run-UH7QKMO3.js → run-3UJFGBQR.js} +2 -2
  79. package/dist/{runner-command-YIAPRXZP.js → runner-command-GN45H7TL.js} +1 -1
  80. package/dist/{sales-ai-review-5BJ3HNP5.js → sales-ai-review-TTWTHKQJ.js} +2 -2
  81. package/dist/{sales-master-DUTB2DUX.js → sales-master-VKS2HENV.js} +2 -2
  82. package/dist/{sales-numbering-WTEFGPOV.js → sales-numbering-W2W57UPY.js} +1 -1
  83. package/dist/{search-3ZPF7X5S.js → search-N45JL2PU.js} +1 -1
  84. package/dist/{segment-ZKJYMOKV.js → segment-3MKCPWT2.js} +1 -1
  85. package/dist/{setup-2KAICJYN.js → setup-ICJPTYKW.js} +1 -1
  86. package/dist/{skill-5NCDQFDN.js → skill-Z3DEECEK.js} +2 -2
  87. package/dist/{skill-check-VNUNX6IO.js → skill-check-3RWESZ4O.js} +1 -1
  88. package/dist/{staffing-board-NWZLXYXJ.js → staffing-board-LWUCHN7P.js} +3 -3
  89. package/dist/{status-command-2FL2SVFR.js → status-command-XOELHUCV.js} +1 -1
  90. package/dist/{supplier-payment-QKWONHRH.js → supplier-payment-AUT2FZBR.js} +2 -2
  91. package/dist/{support-MLNODDQT.js → support-OUQWV5KP.js} +2 -2
  92. package/dist/{task-7RLVDTK2.js → task-7FOEUQJ6.js} +4 -4
  93. package/dist/{teams-X5WBB5YH.js → teams-FOR3O7KH.js} +1 -1
  94. package/dist/{user-FA2FIC47.js → user-TRXOR2Q6.js} +4 -4
  95. package/dist/{user-contract-type-RELV4BV7.js → user-contract-type-MPZQ7Y2P.js} +1 -1
  96. package/dist/{worker-agent-IPOLSJEA.js → worker-agent-4E5P75SJ.js} +1 -1
  97. package/dist/{workflow-VJL4FV3U.js → workflow-G7QZZPAX.js} +1 -1
  98. package/package.json +1 -1
  99. package/dist/analysis-DPQN4BFG.js +0 -5
  100. package/dist/budget-T5YJTALN.js +0 -4
  101. package/dist/chunk-C7MO3RHJ.js +0 -37
  102. package/dist/chunk-GYB2R6BV.js +0 -11
  103. package/dist/chunk-L37NS5L2.js +0 -8
  104. package/dist/chunk-MLRBDF44.js +0 -4
  105. package/dist/evaluation-NG4DIIJM.js +0 -61
  106. package/dist/project-JICUCXI5.js +0 -4
  107. /package/dist/{capacity-list-command-LKOVLAY4.js → capacity-list-command-GFHEKY47.js} +0 -0
  108. /package/dist/{chunk-NMERFYLD.js → chunk-RY27USNC.js} +0 -0
  109. /package/dist/{skill-manage-command-E7M7ZSQP.js → skill-manage-command-Z4MLSACA.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-H4CDX4TX.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-VFPY2A23.js";import{loadProjectConfig,loadUserConfig}from"./chunk-EDF4U5BT.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
3
+ import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-MMVXE2CJ.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-VFPY2A23.js";import{loadProjectConfig,loadUserConfig}from"./chunk-EDF4U5BT.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
4
4
  "Backlog \u30B9\u30DA\u30FC\u30B9 ID");return`${BACKLOG_BASE_PATH}/${encodeURIComponent(spaceId)}${suffix}`}function idString(value){if(typeof value==="number"&&Number.isFinite(value))return String(value);if(typeof value==="string"&&value.trim()!=="")return value.trim();return null}function text(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function backlogSpaceAliases(spaceUrl){const aliases=[];const trimmed=spaceUrl.trim().replace(/\/+$/,"");if(trimmed==="")return aliases;
5
5
  let host;try{host=new URL(trimmed).host}catch{host=trimmed.replace(/^\/+/,"").split("/")[0]??""}if(host==="")return aliases;aliases.push(host);const label=host.split(".")[0];if(label!==void 0&&label!==""&&label!==host)aliases.push(label);return aliases}function backlogSpaceRow(row){const url=text(row["space_url"]);return{id:idString(row["id"]),name:url,code:null,aliases:url!==null?backlogSpaceAliases(url):[]}}function backlogProjectRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:text(
6
6
  row["projectKey"])}}function backlogStatusRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null}}function backlogUserRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null,aliases:[text(row["userId"]),text(row["mailAddress"])].filter(v=>v!==null)}}var REDMINE_BASE_PATH="/api/v2/integrations/redmine";function redmineServerPath(serverId,suffix=""){assertBacklogPathSegment(serverId,"Redmine \u63A5\u7D9A\u5148 ID");return`${REDMINE_BASE_PATH}/${encodeURIComponent(serverId)}${suffix}`}function text2(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function redmineServerAliases(baseUrl){const trimmed=baseUrl.trim().replace(/\/+$/,"");if(trimmed==="")return[];const aliases=[trimmed];try{const host=new URL(trimmed).host;
@@ -18,22 +18,22 @@ 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 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 DOMAIN_KNOWLEDGES_PATH="/api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;
22
- var WORKER_AGENTS_PATH="/api/v2/worker-agents";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="/api/v2/attendance/reports";var ATTENDANCE_REPORT_MASTER_PATHS={categories:"/api/v2/attendance/report-categories",reasons:"\
23
- /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/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/a\
24
- pi/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/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="\
25
- /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"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},
26
- "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,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\
27
- \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,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,
28
- 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";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.
29
- 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;var FEATURE_TOKEN_RE=/^[a-z][a-z0-9_]*$/;function isRecord(value){return typeof value==="object"&&value!==
30
- 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}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\
31
- \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:"task-labels",label:"\u30E9\u30D9\u30EB"},group:{path:"task-groups",envelope:"data",scope:"task-groups",
32
- 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");return resolveProjectRef(trimmed,this.get,safeProjectIdPolicy)}async taskByKey(key){
33
- 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/resolve-by-key/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}\
34
- \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\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const body=isRecord(res.
35
- 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.status)}safeProjectIdPolicy.assertId(projectId);return{projectId,task}}async currentUser(){const res=await this.get("/api/v2/user");if(!res.ok){throw new ResolveError(
36
- `\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002twp login \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const user=isRecord(res.json)?res.json["user"]:void 0;if(!isRecord(user)||str(user["id"])===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u53D6\u5F97\u306E\u5FDC\u7B54\u306B user.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
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 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="/api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;
22
+ 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="/api/v2/attendance/reports";var ATTENDANCE_REPORT_MASTER_PATHS={
23
+ 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/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v\
24
+ 2/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/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v\
25
+ 2/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"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},
26
+ 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,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},
27
+ "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,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},
28
+ "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";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;
29
+ 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;var FEATURE_TOKEN_RE=/^[a-z][a-z0-9_]*$/;function isRecord(value){
30
+ 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}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",
31
+ 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:"task-labels",label:"\u30E9\u30D9\u30EB"},group:{path:"task\
32
+ -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");return resolveProjectRef(
33
+ trimmed,this.get,safeProjectIdPolicy)}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/resolve-by-key/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(
34
+ `\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\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
35
+ 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.status)}safeProjectIdPolicy.assertId(projectId);return{projectId,task}}async currentUser(){const res=await this.
36
+ get("/api/v2/user");if(!res.ok){throw new ResolveError(`\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002twp login \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const user=isRecord(res.json)?res.json["user"]:void 0;if(!isRecord(user)||str(user["id"])===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u53D6\u5F97\u306E\u5FDC\u7B54\u306B user.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
37
37
  res.status)}return{id:user["id"],name:str(user["name"])??user["id"],email:str(user["email"])}}async status(projectId,input,flag="--status"){return resolveNamed(this.applyAlias("status",input),await this.statuses(projectId),{flag,label:"\u30B9\u30C6\u30FC\u30BF\u30B9"})}async taskType(projectId,input){return resolveNamed(this.applyAlias("type",input),await this.taskTypes(projectId),{flag:"--type",label:"\u7A2E\u5225"})}async assignee(projectId,input,flag="--assignee"){if(input.trim().toLowerCase()===
38
38
  SELF_REF)return this.self();const value=this.applyAlias("assignee",input);if(value.trim().toLowerCase()===SELF_REF)return this.self();return resolveNamed(value,await this.members(projectId),{flag,label:"\u30E1\u30F3\u30D0\u30FC"})}async self(){const me=await this.currentUser();return{id:me.id,name:me.name,...me.email!==null?{aliases:[me.email]}:{}}}async defaultStatus(projectId){return requireDefault(await this.statuses(projectId),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"})}async defaultTaskType(projectId){
39
39
  return requireDefault(await this.taskTypes(projectId),{flag:"--type",label:"\u7A2E\u5225"})}async statuses(projectId){return namedFromRows(await this.taskMasterRows("status",projectId),"\u30B9\u30C6\u30FC\u30BF\u30B9",codedMasterRow)}async taskTypes(projectId){return namedFromRows(await this.taskMasterRows("type",projectId),"\u7A2E\u5225",codedMasterRow)}async taskMaster(kind,projectId,input,flag){const spec=TASK_MASTERS[kind];return resolveNamed(input,await this.taskMasterRefs(kind,projectId),{
@@ -62,34 +62,36 @@ masterList(await this.get(`${POSITIONS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5F79
62
62
  "\u5951\u7D04\u5F62\u614B"),"\u5951\u7D04\u5F62\u614B",codedMasterRow))}async jobTitles(){return this.cached("job-titles",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${JOB_TITLES_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async skillCategory(input,flag="--category"){return resolveNamed(input,await this.skillCategories(),{flag,label:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",scope:TENANT_SCOPE_LABEL})}async skill(input,flag="<\u30B9\u30AD\u30EB>"){
63
63
  return resolveNamed(input,await this.skills(),{flag,label:"\u30B9\u30AD\u30EB",scope:TENANT_SCOPE_LABEL})}async skillsInCategory(categoryId){return this.cached(`skills-in-category-${categoryId}`,TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${SKILLS_PATH}?category_id=${encodeURIComponent(categoryId)}`),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(row),code:str(row["skill_code"])})))}async qualification(input,flag="<\u8CC7\u683C>"){return resolveNamed(input,
64
64
  await this.qualifications(),{flag,label:"\u8CC7\u683C",scope:TENANT_SCOPE_LABEL})}async qualifications(){return this.cached("qualifications",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(QUALIFICATIONS_PATH),"\u8CC7\u683C"),"\u8CC7\u683C",row=>({...codedMasterRow(row),code:str(row["abbreviation"])})))}async skillCategories(){return this.cached("skill-categories",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILL_CATEGORIES_PATH),"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA"),
65
- "\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",codedMasterRow))}async skills(){return this.cached("skills",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILLS_PATH),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(row),code:str(row["skill_code"])})))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);
66
- if(ULID_RE.test(trimmed.toUpperCase()))return{id:trimmed.toUpperCase(),name:trimmed};const res=await this.get(WORKER_AGENTS_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",WORKER_AGENTS_PATH)}const rows=rawListFrom(res,"items","\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8");return resolveNamed(trimmed,namedFromRows(rows,"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",workerAgentRow),{flag,label:"\u30EF\u30FC\u30AB\u30FC\
67
- \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",scope:"\u3042\u306A\u305F\u304C\u53C2\u7167\u3067\u304D\u308B\u7BC4\u56F2"})}async domainKnowledge(input,flag="<KB>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"KB \u306E ID \u304B slug \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(UUID_RE.test(trimmed))return{id:trimmed.toLowerCase(),name:trimmed};if(!DOMAIN_KNOWLEDGE_SLUG_RE.test(trimmed)){
68
- throw new UsageError(`KB \u306E ID \u3067\u3082 slug \u3067\u3082\u306A\u3044\u5024\u3067\u3059: ${input}`,"slug \u306F\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF082\u301C63\u6587\u5B57\u30FB\u5148\u982D\u306F\u82F1\u6570\u5B57\uFF09\u3067\u3059\u3002twp knowledge list \u306E id / slug \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}const res=await this.get(DOMAIN_KNOWLEDGES_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(
69
- res.json)?res.json:null,"GET",DOMAIN_KNOWLEDGES_PATH)}const rows=rawListFrom(res,"domain_knowledges","\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9");const hit=rows.find(row=>row["slug"]===trimmed);if(hit===void 0){throw new ResolveError(`slug \u304C ${trimmed} \u306E\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08twp knowledge list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002`,404)}const id=hit["id"];if(typeof id!=="string"||!isSafePathSegment(
70
- id)){throw new ResolveError(`\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u4E00\u89A7\u306E id \u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${String(id)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return{id,name:typeof hit["name"]==="string"?hit["name"]:trimmed}}async processMaster(input,flag="--process"){return resolveNamed(input,await this.processMasters(),{flag,label:"\u5DE5\u7A0B\u30DE\u30B9\u30BF",scope:TENANT_SCOPE_LABEL})}async processMasters(){
71
- return this.cached("process-masters",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${PROCESS_MASTERS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5DE5\u7A0B\u30DE\u30B9\u30BF"),"\u5DE5\u7A0B\u30DE\u30B9\u30BF",codedMasterRow))}async workflow(input,flag="<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(category),{flag,label:category===void 0?"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC":`\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08${category}\
72
- \uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC 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(`${WORKFLOWS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u7533\u8ACB\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}
73
- if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\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 workflow=isRecord(res.json)?res.json["workflow"]:void 0;if(!isRecord(workflow)){throw new ResolveError("\u7533\u8ACB\u66F8\u306E\u5FDC\u7B54\u306B workflow \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
74
- res.status)}return workflow}async attendanceReportMasters(){const load=async(path2,label)=>rawListFrom(await this.get(`${path2}/active`),"list",label);const[categories,reasons,details]=await Promise.all([load(ATTENDANCE_REPORT_MASTER_PATHS.categories,"\u52E4\u6020\u9023\u7D61\u306E\u533A\u5206"),load(ATTENDANCE_REPORT_MASTER_PATHS.reasons,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531"),load(ATTENDANCE_REPORT_MASTER_PATHS.details,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531\u8A73\u7D30")]);return{categories,
75
- reasons,details}}async attendanceReportMaster(kind,input,flag){const label=ATTENDANCE_REPORT_MASTER_LABELS[kind];const rows=masterList(await this.get(`${ATTENDANCE_REPORT_MASTER_PATHS[kind]}?limit=${ORG_MASTER_LIMIT}`),label);return resolveNamed(input,namedFromRows(rows,label,codedMasterRow),{flag,label,scope:TENANT_SCOPE_LABEL})}async attendanceReport(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`)}
76
- const res=await this.get(`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\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`,
77
- res.status)}const report=isRecord(res.json)?res.json["report"]:void 0;if(!isRecord(report)){throw new ResolveError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return report}async applicableWorkflows(category){const path2=category===void 0?`${WORKFLOWS_PATH}/applicable`:`${WORKFLOWS_PATH}/applicable/${encodeURIComponent(category)}`;const scope=category===
78
- void 0?"workflows-applicable":`workflows-applicable-${category}`;return this.cached(scope,TENANT_CACHE_KEY,async()=>{const res=await this.get(path2);const rows=rawListFrom(res,"list","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum==="number"&&sum>rows.length){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7\u304C ${sum} \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`,
79
- res.status)}return namedFromRows(rows,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",row=>({id:str(row["id"]),name:str(row["name"]),code:null}))})}async reportFormat(input,flag="--format",usableOnly=false){const load=async()=>rawListFrom(await this.get(`${REPORTS_PATH}/formats${usableOnly?"?include_unavailable=false":""}`),"formats","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8");const rows=usableOnly?await load():await this.cached("report-formats",TENANT_CACHE_KEY,load);return resolveNamed(
80
- input,namedFromRows(rows,"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",row=>({id:str(row["id"]),name:str(row["name"]),code:str(row["code"])})),{flag,label:usableOnly?"\u4F5C\u6210\u3067\u304D\u308B\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8":"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",scope:TENANT_SCOPE_LABEL})}async company(input,options){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${options.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);
81
- if(isExactNumericId(trimmed))return options.mustExist===true?this.companyById(trimmed,options):{id:trimmed,name:trimmed};if(/^[0-9]+$/.test(trimmed)){throw new UsageError(`${options.flag} \u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${trimmed}`)}const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const base=options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH;const rows=[];
82
- let truncated=false;for(let page=1;;page+=1){const path2=`${base}?keyword=${encodeURIComponent(trimmed)}&sort_column=id&sort_direction=desc&page_limit=${COMPANY_SEARCH_PAGE_LIMIT}&page_no=${page}`;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)}for(const row of rawListFrom(res,"list",label))rows.push(row);const pageSum=isRecord(res.json)?res.json["page_sum"]:void 0;if(!Number.isInteger(pageSum)){throw new ResolveError(
83
- `${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B page_sum \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}if(page>=pageSum)break;if(page>=COMPANY_SEARCH_MAX_PAGES){truncated=true;break}}const listCommand=options.source==="customer"?"twp customer list":"twp company list";if(rows.length===0){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u3042\u308A\u307E\u305B\u3093`,
84
- `${label}\u306F ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}const refs=namedFromRows(rows,label,row=>({id:str(row["id"]),name:str(row["company_name"]),code:null,aliases:[str(row["company_short_name"]),str(row["company_name_kana"])].filter(v=>v!==null)}));const needle=trimmed.toLowerCase();const hits=refs.filter(ref=>[ref.name,...ref.aliases??[]].some(key=>key.trim().toLowerCase()===needle));const ctx={flag:options.flag,
85
- label,scope:TENANT_SCOPE_LABEL};if(truncated){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u591A\u3059\u304E\u308B\u305F\u3081\uFF08${COMPANY_SEARCH_MAX_PAGES*COMPANY_SEARCH_PAGE_LIMIT} \u4EF6\u3092\u8D85\u3048\u3066\uFF09\u4E00\u610F\u306B\u6C7A\u3081\u3089\u308C\u307E\u305B\u3093`,`ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}if(hits.length>
86
- 0)return exactCompanyId(await resolveNamed(trimmed,hits,ctx),label);return exactCompanyId(await resolveNamed(trimmed,refs,ctx),label)}async companyById(id,options){const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const path2=`${options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH}/${id}`;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)}if(res.status===404)throw new UsageError(
87
- `${options.flag} \u306E ID ${id} \u306E${label}\u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;const name=isRecord(data)?str(data["company_name"]):null;if(!isRecord(data)||data["id"]!==id||name===null){throw new ResolveError(`${label}\u306E\u5FDC\u7B54\u306B data.id / company_name \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
88
- res.status)}return{id,name}}async companyRecord(id){if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${SALES_COMPANIES_PATH}/${id}`;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)}if(res.status===404)return null;if(!res.ok)throw new ResolveError(
89
- `\u53D6\u5F15\u5148\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError("\u53D6\u5F15\u5148\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",res.status)}return data}async salesRecord(kind,id,flag){
90
- const{label,path:base}=SALES_RECORD_KINDS[kind];if(!isExactNumericId(id))throw new UsageError(`${flag} \u306E${label} ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${base}/${id}`;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)}if(res.status===404)throw new UsageError(`${flag} \u306E ID ${id} \u306E${label}\
91
- \u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError(`${label}\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`,
92
- res.status)}return data}async salesJson(path2,label){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)}if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);if(!isRecord(res.json)||res.json["result"]!==true)throw new ResolveError(`${label}\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`,
65
+ "\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",codedMasterRow))}async skills(){return this.cached("skills",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILLS_PATH),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(row),code:str(row["skill_code"])})))}async projectTemplate(input,flag="<\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);
66
+ if(UUID_RE.test(trimmed))return{id:trimmed.toLowerCase(),name:trimmed};const res=await this.get(PROJECT_TEMPLATES_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",PROJECT_TEMPLATES_PATH)}const rows=rawListFrom(res,"data","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8");return resolveNamed(trimmed,namedFromRows(rows,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",codedMasterRow),
67
+ {flag,label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",scope:TENANT_SCOPE_LABEL})}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(ULID_RE.test(trimmed.toUpperCase()))return{id:trimmed.toUpperCase(),name:trimmed};const res=await this.get(WORKER_AGENTS_PATH);if(res.status===401||res.status===403){
68
+ throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",WORKER_AGENTS_PATH)}const rows=rawListFrom(res,"items","\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8");return resolveNamed(trimmed,namedFromRows(rows,"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",workerAgentRow),{flag,label:"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",scope:"\u3042\u306A\u305F\u304C\u53C2\u7167\u3067\u304D\u308B\u7BC4\u56F2"})}async domainKnowledge(input,flag="\
69
+ <KB>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"KB \u306E ID \u304B slug \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(UUID_RE.test(trimmed))return{id:trimmed.toLowerCase(),name:trimmed};if(!DOMAIN_KNOWLEDGE_SLUG_RE.test(trimmed)){throw new UsageError(`KB \u306E ID \u3067\u3082 slug \u3067\u3082\u306A\u3044\u5024\u3067\u3059: ${input}`,"slug \u306F\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF082\u301C63\u6587\u5B57\u30FB\u5148\u982D\u306F\u82F1\u6570\u5B57\uFF09\u3067\
70
+ \u3059\u3002twp knowledge list \u306E id / slug \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}const res=await this.get(DOMAIN_KNOWLEDGES_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",DOMAIN_KNOWLEDGES_PATH)}const rows=rawListFrom(res,"domain_knowledges","\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9");const hit=rows.find(row=>row["slug"]===trimmed);if(hit===void 0){throw new ResolveError(`slug \u304C ${trimmed} \u306E\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306F\
71
+ \u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08twp knowledge list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002`,404)}const id=hit["id"];if(typeof id!=="string"||!isSafePathSegment(id)){throw new ResolveError(`\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u4E00\u89A7\u306E id \u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${String(id)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return{id,name:typeof hit["\
72
+ name"]==="string"?hit["name"]:trimmed}}async processMaster(input,flag="--process"){return resolveNamed(input,await this.processMasters(),{flag,label:"\u5DE5\u7A0B\u30DE\u30B9\u30BF",scope:TENANT_SCOPE_LABEL})}async processMasters(){return this.cached("process-masters",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${PROCESS_MASTERS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5DE5\u7A0B\u30DE\u30B9\u30BF"),"\u5DE5\u7A0B\u30DE\u30B9\u30BF",codedMasterRow))}async workflow(input,flag="<\
73
+ \u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(category),{flag,label:category===void 0?"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC":`\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08${category}\uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\
74
+ \u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`${WORKFLOWS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u7533\u8ACB\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\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`,
75
+ res.status)}const workflow=isRecord(res.json)?res.json["workflow"]:void 0;if(!isRecord(workflow)){throw new ResolveError("\u7533\u8ACB\u66F8\u306E\u5FDC\u7B54\u306B workflow \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return workflow}async attendanceReportMasters(){const load=async(path2,label)=>rawListFrom(await this.get(`${path2}/active`),"list",label);const[categories,reasons,details]=await Promise.all([
76
+ load(ATTENDANCE_REPORT_MASTER_PATHS.categories,"\u52E4\u6020\u9023\u7D61\u306E\u533A\u5206"),load(ATTENDANCE_REPORT_MASTER_PATHS.reasons,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531"),load(ATTENDANCE_REPORT_MASTER_PATHS.details,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531\u8A73\u7D30")]);return{categories,reasons,details}}async attendanceReportMaster(kind,input,flag){const label=ATTENDANCE_REPORT_MASTER_LABELS[kind];const rows=masterList(await this.get(`${ATTENDANCE_REPORT_MASTER_PATHS[kind]}?limi\
77
+ t=${ORG_MASTER_LIMIT}`),label);return resolveNamed(input,namedFromRows(rows,label,codedMasterRow),{flag,label,scope:TENANT_SCOPE_LABEL})}async attendanceReport(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`)}const res=await this.get(`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,
78
+ 404)}if(!res.ok){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\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 report=isRecord(res.json)?res.json["report"]:void 0;if(!isRecord(report)){throw new ResolveError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
79
+ res.status)}return report}async applicableWorkflows(category){const path2=category===void 0?`${WORKFLOWS_PATH}/applicable`:`${WORKFLOWS_PATH}/applicable/${encodeURIComponent(category)}`;const scope=category===void 0?"workflows-applicable":`workflows-applicable-${category}`;return this.cached(scope,TENANT_CACHE_KEY,async()=>{const res=await this.get(path2);const rows=rawListFrom(res,"list","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum===
80
+ "number"&&sum>rows.length){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7\u304C ${sum} \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`,res.status)}return namedFromRows(rows,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",row=>({id:str(row["id"]),name:str(row["name"]),code:null}))})}async reportFormat(input,flag="\
81
+ --format",usableOnly=false){const load=async()=>rawListFrom(await this.get(`${REPORTS_PATH}/formats${usableOnly?"?include_unavailable=false":""}`),"formats","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8");const rows=usableOnly?await load():await this.cached("report-formats",TENANT_CACHE_KEY,load);return resolveNamed(input,namedFromRows(rows,"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",row=>({id:str(row["id"]),name:str(row["name"]),code:str(row["code"])})),{flag,
82
+ label:usableOnly?"\u4F5C\u6210\u3067\u304D\u308B\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8":"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",scope:TENANT_SCOPE_LABEL})}async company(input,options){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${options.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(isExactNumericId(trimmed))return options.mustExist===true?this.companyById(trimmed,options):{id:trimmed,name:trimmed};
83
+ if(/^[0-9]+$/.test(trimmed)){throw new UsageError(`${options.flag} \u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${trimmed}`)}const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const base=options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH;const rows=[];let truncated=false;for(let page=1;;page+=1){const path2=`${base}?keyword=${encodeURIComponent(trimmed)}&sort_column=id&\
84
+ sort_direction=desc&page_limit=${COMPANY_SEARCH_PAGE_LIMIT}&page_no=${page}`;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)}for(const row of rawListFrom(res,"list",label))rows.push(row);const pageSum=isRecord(res.json)?res.json["page_sum"]:void 0;if(!Number.isInteger(pageSum)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B page_sum \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
85
+ res.status)}if(page>=pageSum)break;if(page>=COMPANY_SEARCH_MAX_PAGES){truncated=true;break}}const listCommand=options.source==="customer"?"twp customer list":"twp company list";if(rows.length===0){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u3042\u308A\u307E\u305B\u3093`,`${label}\u306F ID \u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}const refs=namedFromRows(
86
+ rows,label,row=>({id:str(row["id"]),name:str(row["company_name"]),code:null,aliases:[str(row["company_short_name"]),str(row["company_name_kana"])].filter(v=>v!==null)}));const needle=trimmed.toLowerCase();const hits=refs.filter(ref=>[ref.name,...ref.aliases??[]].some(key=>key.trim().toLowerCase()===needle));const ctx={flag:options.flag,label,scope:TENANT_SCOPE_LABEL};if(truncated){throw new UsageError(`${options.flag} \u306E\u300C${trimmed}\u300D\u3092\u540D\u524D\u306B\u542B\u3080${label}\u304C\u591A\u3059\u304E\u308B\u305F\
87
+ \u3081\uFF08${COMPANY_SEARCH_MAX_PAGES*COMPANY_SEARCH_PAGE_LIMIT} \u4EF6\u3092\u8D85\u3048\u3066\uFF09\u4E00\u610F\u306B\u6C7A\u3081\u3089\u308C\u307E\u305B\u3093`,`ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${listCommand} --keyword <\u8A9E> \u306E id \u5217\uFF09\u3002`)}if(hits.length>0)return exactCompanyId(await resolveNamed(trimmed,hits,ctx),label);return exactCompanyId(await resolveNamed(trimmed,refs,ctx),label)}async companyById(id,options){const label=options.source===
88
+ "customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const path2=`${options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH}/${id}`;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)}if(res.status===404)throw new UsageError(`${options.flag} \u306E ID ${id} \u306E${label}\u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
89
+ status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;const name=isRecord(data)?str(data["company_name"]):null;if(!isRecord(data)||data["id"]!==id||name===null){throw new ResolveError(`${label}\u306E\u5FDC\u7B54\u306B data.id / company_name \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return{id,name}}async companyRecord(id){if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148\u306E \
90
+ ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${SALES_COMPANIES_PATH}/${id}`;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)}if(res.status===404)return null;if(!res.ok)throw new ResolveError(`\u53D6\u5F15\u5148\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\
91
+ \uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError("\u53D6\u5F15\u5148\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",res.status)}return data}async salesRecord(kind,id,flag){const{label,path:base}=SALES_RECORD_KINDS[kind];if(!isExactNumericId(id))throw new UsageError(
92
+ `${flag} \u306E${label} ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`);const path2=`${base}/${id}`;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)}if(res.status===404)throw new UsageError(`${flag} \u306E ID ${id} \u306E${label}\u306F\u3042\u308A\u307E\u305B\u3093`);if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\
93
+ \u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(res.json)||res.json["result"]!==true||!isRecord(data)||data["id"]!==id){throw new ResolveError(`${label}\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`,res.status)}return data}async salesJson(path2,label){const res=await this.get(
94
+ path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",path2)}if(!res.ok)throw new ResolveError(`${label}\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002`,res.status);if(!isRecord(res.json)||res.json["result"]!==true)throw new ResolveError(`${label}\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`,
93
95
  res.status);return res.json}async invoiceByNumber(invoiceNo){const path2=`${SALES_INVOICES_PATH}?keyword=${encodeURIComponent(invoiceNo)}&page_limit=100&page_no=1`;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)}const rows=rawListFrom(res,"list","\u8ACB\u6C42");const all=rows.flatMap(row=>[row,...Array.isArray(row["children"])?row["children"].filter(isRecord):[]]);const hits=all.filter(row=>row["in\
94
96
  voice_no"]===invoiceNo);return hits.length===1?hits[0]:null}async estimateAllocations(estimateId){if(!isExactNumericId(estimateId))throw new UsageError(`\u898B\u7A4D\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${estimateId}`);const path2=`${SALES_ESTIMATES_PATH}/${estimateId}/allocations`;const res=await this.get(path2);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?
95
97
  res.json:null,"GET",path2)}return rawListFrom(res,"data","\u90E8\u7F72\u6309\u5206")}async mediaFolders(scope,scopeId){const query=`scope=${encodeURIComponent(scope)}${scopeId===void 0?"":`&scope_id=${encodeURIComponent(scopeId)}`}`;const path2=`/api/v2/media/folders/tree?${query}`;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)}if(!res.ok)throw new ResolveError(`\u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
@@ -126,15 +128,18 @@ scope:TENANT_SCOPE_LABEL})}invalidateInquiryCategories(){removeCache({profile:th
126
128
  "\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["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":
127
129
  `\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`,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)});
128
130
  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"]!==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",
129
- res.status)}cursor=body["next_cursor"]}return{count:total,complete:false}}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?"\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":
130
- `\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){return namedListFrom(await this.get(path2),envelope,label,map)}async cached(scope,projectId,load){const key={profile:this.options.profile,scope,project:projectId};
131
- 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,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[
132
- 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){return resolveNamed(ref,await this.backlogSpaces(),{flag:"--space",label:"Backlog \u30B9\u30DA\u30FC\u30B9",scope:BACKLOG_SCOPE_LABEL})}async backlogDefaultSpace(){
133
- 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")}throw new UsageError(`Backlog \u30B9\u30DA\u30FC\u30B9\u304C ${spaces.
134
- 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){return this.cached(
135
- "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",backlogStatusRow))}async backlogUsers(spaceId,projectId){
136
- 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","Redmine \u63A5\u7D9A\u5148",redmineServerRow))}async redmineServer(ref){
137
- 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\uFF08twp redmine space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}
131
+ 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(`${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(
132
+ 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":`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)}
133
+ 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["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(){
134
+ 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?"\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.
135
+ 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?
136
+ {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(){
137
+ 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\
138
+ 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`,
139
+ "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",
140
+ 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(
141
+ 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",
142
+ 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")}
138
143
  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){
139
144
  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){
140
145
  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.
@@ -155,6 +160,6 @@ return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function s
155
160
  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`,res.status)}return rows}function codedMasterRow(row){return{id:str(
156
161
  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\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
157
162
  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;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.
158
- 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,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,DOMAIN_KNOWLEDGES_PATH,DOMAIN_KNOWLEDGE_SLUG_RE,
159
- WORKER_AGENTS_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,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,
160
- 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};
163
+ 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,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,FAQS_PATH,DOMAIN_KNOWLEDGES_PATH,
164
+ 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,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,
165
+ 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,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{graphNextCursor,ms365NotConnectedGuidance}from"./chunk-H4CDX4TX.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";function graphData(body,label){const data=isRecord(body)?body["data"]:void 0;if(!isRecord(data)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function graphValue(body,label){const value=graphData(body,label)["value"];if(!Array.isArray(value)){throw new ApiResponseError(`${label}\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`)}
3
+ import{graphNextCursor,ms365NotConnectedGuidance}from"./chunk-MMVXE2CJ.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";function graphData(body,label){const data=isRecord(body)?body["data"]:void 0;if(!isRecord(data)){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function graphValue(body,label){const value=graphData(body,label)["value"];if(!Array.isArray(value)){throw new ApiResponseError(`${label}\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`)}
4
4
  return value}function readGraphCursor(body,label,kind){const next=graphData(body,label)["@odata.nextLink"];if(next===void 0||next===null)return{hasMore:false,cursor:null};const parsed=typeof next==="string"?graphNextCursor(next):null;if(parsed===null||kind!=="either"&&parsed.kind!==kind){return{hasMore:"@odata.nextLink \u304B\u3089\u7D9A\u304D\u306E\u5024\u3092\u53D6\u308A\u51FA\u305B\u307E\u305B\u3093",cursor:void 0}}return{hasMore:true,cursor:parsed.value}}function graphPaging(options){const{label,
5
5
  kind}=options;return{cursorParam:kind==="either"?"skiptoken":kind,...options.cursorParamFor!==void 0?{cursorParamFor:options.cursorParamFor}:{},items:body=>graphValue(body,label),readCursor:body=>readGraphCursor(body,label,kind),nextCursor(body){const{hasMore,cursor}=readGraphCursor(body,label,kind);if(hasMore===false)return null;if(hasMore!==true||typeof cursor!=="string"||cursor===""){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B\u7D9A\u304D\uFF08@odata.nextLink\uFF09\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u7D9A\u304D\u306E\u5024\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u5168\u4EF6\u3092\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002`)}
6
6
  return cursor},withItems(body,merged){const data=graphData(body,label);graphValue(body,label);const seen=new Set;const unique=merged.filter(row=>{const id=isRecord(row)?row["id"]:void 0;if(typeof id!=="string")return true;if(seen.has(id))return false;seen.add(id);return true});return{...body,data:{...data,value:unique,[DUPLICATES_KEY]:merged.length-unique.length}}}}}var DUPLICATES_KEY="@twp.duplicatesRemoved";function graphPagingNotes(body,label){const removed=graphData(body,label)[DUPLICATES_KEY];
@@ -8,4 +8,4 @@ if(count>spec.maxChars){throw new UsageError(`${spec.label}\u304C\u9577\u3059\u3
8
8
  \u300D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\uFF08${inline!==void 0?spec.flag:`${spec.fileFlag} ${file}`}\uFF09`,`\u4F0F\u5B57\u5316\u3055\u308C\u305F\u5FDC\u7B54\u3092\u305D\u306E\u307E\u307E\u66F8\u304D\u623B\u3059\u3068\u3001\u5143\u306E\u5024\u304C\u5931\u308F\u308C\u307E\u3059\u3002--no-redact \u3092\u4ED8\u3051\u3066\u8AAD\u307F\u76F4\u3057\u3001\u305D\u306E\u51FA\u529B\u304B\u3089\u672C\u6587\u3092\u4F5C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u4F0F\u5B57\u306E\u6587\u8A00\u305D\u306E\u3082\u306E\u3092\u9001\u308A\u305F\u3044\u3068\u304D\u3060\u3051 ${ALLOW_REDACTED_FLAG.
9
9
  name} \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}return stripped}async function readFrom(file,spec){if(file==="-")return readStdin(spec);try{const stat=fs.statSync(file);if(!stat.isFile()){throw new UsageError(`${spec.label}\u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,`${spec.fileFlag} \u306B\u306F\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3080\u306A\u3089 ${spec.
10
10
  fileFlag} -\uFF09\u3002`)}if(stat.size>spec.maxChars*4){throw new UsageError(`${spec.label}\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${spec.maxChars} \u6587\u5B57\uFF09: ${file}`,"\u5206\u5272\u3057\u3066\u6295\u7A3F\u3059\u308B\u304B\u3001\u8A73\u7D30\u306F\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return fs.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)
11
- throw err;const reason=err.code??err.message;throw new UsageError(`${spec.label}\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,`${spec.fileFlag} \u306B\u306F\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3080\u306A\u3089 ${spec.fileFlag} -\uFF09\u3002`)}}export{charCount,readBody};
11
+ throw err;const reason=err.code??err.message;throw new UsageError(`${spec.label}\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,`${spec.fileFlag} \u306B\u306F\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3080\u306A\u3089 ${spec.fileFlag} -\uFF09\u3002`)}}export{charCount,containsRedactedMarker,readBody};
@@ -4,6 +4,7 @@ import{UsageError}from"./chunk-VFPY2A23.js";var MS365_BASE_PATH="/api/v2/integra
4
4
  function ms365Segment(value,label){return encodeURIComponent(assertMs365PathSegment(value,label))}function ms365Path(suffix){return`${MS365_BASE_PATH}${suffix}`}function graphNextCursor(nextLink){const queryStart=nextLink.indexOf("?");if(queryStart<0)return null;const query=nextLink.slice(queryStart+1).split("#")[0]??"";for(const pair of query.split("&")){const eq=pair.indexOf("=");if(eq<0)continue;const key=pair.slice(0,eq).toLowerCase().replace(/^%24/,"$");if(key!=="$skip"&&key!=="$skiptoken")
5
5
  continue;const encoded=pair.slice(eq+1);if(encoded==="")return null;let value;try{value=decodeURIComponent(encoded)}catch{return null}return{kind:key==="$skip"?"skip":"skiptoken",value}}return null}function ms365NotConnectedGuidance(body){if(typeof body!=="object"||body===null){return void 0}const error=body["error"];if(error==="ms365_blocked_by_policy"){return ms365BlockedByPolicyGuidance(body)}if(error!=="ms365_not_connected"){return void 0}const url=body["connect_url"];const where=typeof url===
6
6
  "string"&&url!==""?`${url} \u3092\u958B\u304D\u3001`:"TWP \u306E\u30ED\u30B0\u30A4\u30F3\u753B\u9762\u3067";return`Microsoft 365 \u3068\u9023\u643A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u307E\u305F\u306F\u9023\u643A\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059\uFF09\u3002${where}\u300CMicrosoft\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30ED\u30B0\u30A4\u30F3\u300D\u304B\u3089\u4E00\u5EA6\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u3068\u9023\u643A\u3055\u308C\u307E\u3059\u3002CLI \u306E\u518D\u30ED\u30B0\u30A4\u30F3\u306F\u8981\u308A\u307E\u305B\u3093\u3002\u9023\u643A\u5F8C\u306B\u540C\u3058\u30B3\u30DE\u30F3\u30C9\u3092\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u3082\u89E3\u6D88\u3057\u306A\u3044\u5834\u5408\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B Microsoft 365 \u306E\u30A2\u30AF\u30BB\u30B9\u8A31\u53EF\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002`}
7
- function ms365BlockedByPolicyGuidance(body){const code=body["aadsts_code"];const suffix=typeof code==="number"&&Number.isInteger(code)?`\uFF08AADSTS${code}\uFF09`:"";return`\u7D44\u7E54\u306E\u30C7\u30D0\u30A4\u30B9\u30DD\u30EA\u30B7\u30FC\uFF08\u6761\u4EF6\u4ED8\u304D\u30A2\u30AF\u30BB\u30B9\uFF09\u306B\u3088\u308A\u3001Microsoft \u304C\u30B5\u30FC\u30D0\u304B\u3089\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u62D2\u5426\u3057\u307E\u3057\u305F${suffix}\u3002Microsoft 365 \u3068\u306E\u9023\u643A\u306F\u6B8B\u3063\u3066\u3044\u307E\u3059\u304C\u3001TWP \u3084 CLI \u306B\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u3082\u89E3\u6D88\
8
- \u3057\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u3001Microsoft Entra ID \u306E\u6761\u4EF6\u4ED8\u304D\u30A2\u30AF\u30BB\u30B9\u3067 TWP \u304B\u3089\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function ms365NamedRow(row){const id=row["id"];const name=row["displayName"];return{id:typeof id==="string"&&id!==""?id:null,name:typeof name==="string"&&name!==""?
9
- name:null}}export{assertMs365PathSegment,ms365Segment,ms365Path,graphNextCursor,ms365NotConnectedGuidance,ms365NamedRow};
7
+ function ms365BlockedByPolicyGuidance(body){const code=body["aadsts_code"];const isCode=typeof code==="number"&&Number.isInteger(code);const suffix=isCode?`\uFF08AADSTS${code}\uFF09`:"";const askAdmin="\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u3001Microsoft Entra ID \u306E\u6761\u4EF6\u4ED8\u304D\u30A2\u30AF\u30BB\u30B9\u3067 TWP \u304B\u3089\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
8
+ const head=`\u7D44\u7E54\u306E\u30C7\u30D0\u30A4\u30B9\u30DD\u30EA\u30B7\u30FC\uFF08\u6761\u4EF6\u4ED8\u304D\u30A2\u30AF\u30BB\u30B9\uFF09\u306B\u3088\u308A\u3001Microsoft \u304C\u30B5\u30FC\u30D0\u304B\u3089\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u62D2\u5426\u3057\u307E\u3057\u305F${suffix}\u3002Microsoft 365 \u3068\u306E\u9023\u643A\u306F\u6B8B\u3063\u3066\u3044\u307E\u3059\u3002`;if(isCode&&DEVICE_LOGIN_REMEDIABLE_CODES.includes(code)){return head+`\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u304B\u3089 Microsoft \u3067\u30ED\u30B0\u30A4\u30F3\u3057\u305F\u9023\u643A\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306B\u8D77\u304D\u307E\u3059\u3002PC \u306E\
9
+ \u30D6\u30E9\u30A6\u30B6\u304B\u3089 Microsoft \u3067\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3059\u3068\u89E3\u6D88\u3057\u307E\u3059\uFF08CLI \u306E\u518D\u30ED\u30B0\u30A4\u30F3\u306F\u8981\u308A\u307E\u305B\u3093\uFF09\u3002\u89E3\u6D88\u3057\u306A\u3044\u5834\u5408\u306F\u3001${askAdmin}`}return head+"TWP \u3084 CLI \u306B\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u3082\u89E3\u6D88\u3057\u307E\u305B\u3093\u3002"+askAdmin}var DEVICE_LOGIN_REMEDIABLE_CODES=[530002,530003];function ms365NamedRow(row){
10
+ const id=row["id"];const name=row["displayName"];return{id:typeof id==="string"&&id!==""?id:null,name:typeof name==="string"&&name!==""?name:null}}export{assertMs365PathSegment,ms365Segment,ms365Path,graphNextCursor,ms365NotConnectedGuidance,ms365NamedRow};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{ORG_MASTER_LIMIT}from"./chunk-2AVQILQQ.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
3
+ import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{ORG_MASTER_LIMIT}from"./chunk-M36DAHMH.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
4
4
  map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.
5
5
  NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function numberValue(field,raw){
6
6
  const trimmed=raw.trim();const value=/^\d+(\.\d+)?$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isFinite(value)||value<field.min||value>field.max){throw new UsageError(`${field.flag} \u306F ${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B\u306E\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}var TIME_RE=/^\d{2}:\d{2}$/;function timeValue(flag,raw){const value=raw.
@@ -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-QUMDKN3U.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-IWYJSQ5I.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-2AVQILQQ.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-EQXJOEOK.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-M36DAHMH.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\