@tocca-systems/twp-cli 0.70.0 → 0.72.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 (110) hide show
  1. package/CHANGELOG.public.md +20 -0
  2. package/README.md +55 -5
  3. package/dist/{agent-SFX3ZVOB.js → agent-C37HJDJY.js} +1 -1
  4. package/dist/{agent-loop-6JO4PJRG.js → agent-loop-XFYCEK5S.js} +32 -17
  5. package/dist/{ai-dispatch-H7OOHHKO.js → ai-dispatch-GONY4JAY.js} +2 -2
  6. package/dist/{analysis-HMOECNWG.js → analysis-THRX37XW.js} +2 -2
  7. package/dist/{announcement-Q642UMYK.js → announcement-4R7XFO5W.js} +1 -1
  8. package/dist/{api-command-OJWUGQKF.js → api-command-YMEYR2LG.js} +3 -3
  9. package/dist/{app-DT4HVGYU.js → app-37IMKCQZ.js} +4 -4
  10. package/dist/{attendance-correct-DWVFYL2Y.js → attendance-correct-Z5BGCSCL.js} +1 -1
  11. package/dist/{attendance-lists-772Y3ZWA.js → attendance-lists-357A3O5Y.js} +1 -1
  12. package/dist/{backlog-FG3Y5JTE.js → backlog-KF63TCEG.js} +1 -1
  13. package/dist/{budget-5RPOQZN7.js → budget-W7JXDJ4J.js} +1 -1
  14. package/dist/{capacity-report-command-PBE73I43.js → capacity-report-command-QSV3A6EX.js} +1 -1
  15. package/dist/charter-command-A4MFFBGE.js +3 -0
  16. package/dist/{chunk-QJAZLPA3.js → chunk-2CIQOXPK.js} +1 -1
  17. package/dist/chunk-35MQ27I6.js +4 -0
  18. package/dist/{chunk-NVMJXFBT.js → chunk-45OL54MY.js} +1 -1
  19. package/dist/chunk-5KAWCLYN.js +16 -0
  20. package/dist/chunk-5VZ54H2J.js +11 -0
  21. package/dist/{chunk-WBUYPDJH.js → chunk-A3FJEUDB.js} +1 -1
  22. package/dist/{chunk-GLKZ4ZZY.js → chunk-ARB4QFWO.js} +1 -1
  23. package/dist/{chunk-WMEGP2BT.js → chunk-BBOWZVCC.js} +1 -1
  24. package/dist/{chunk-W2AIT5FJ.js → chunk-BYUV3D5Z.js} +2 -2
  25. package/dist/chunk-CCHPF23L.js +31 -0
  26. package/dist/{chunk-7EJOKJLV.js → chunk-DAXVAUV4.js} +1 -1
  27. package/dist/{chunk-JIGA6KKU.js → chunk-DFHOCPA5.js} +9 -8
  28. package/dist/{chunk-EDBJQCNC.js → chunk-DPIJF3EN.js} +1 -1
  29. package/dist/{chunk-APPYZQNC.js → chunk-IVKWLJCY.js} +1 -1
  30. package/dist/{chunk-DAOC7VRM.js → chunk-K4JE26L6.js} +1 -1
  31. package/dist/{charter-command-LIX2JXRJ.js → chunk-LH4AZKLT.js} +1 -1
  32. package/dist/{chunk-XGYOJHZC.js → chunk-MP6YIILX.js} +1 -1
  33. package/dist/{chunk-HNG6MF26.js → chunk-MVZFZAT4.js} +69 -65
  34. package/dist/{chunk-RRHAX7RK.js → chunk-MYBIPHZ7.js} +1 -1
  35. package/dist/{chunk-X6L5LUC4.js → chunk-NBOA4T7F.js} +1 -1
  36. package/dist/{chunk-6PAZUW73.js → chunk-QS5VWTI3.js} +1 -1
  37. package/dist/{chunk-HBEOI456.js → chunk-QVID3GT4.js} +1 -1
  38. package/dist/chunk-T3C2BAVA.js +49 -0
  39. package/dist/chunk-TTST7UDR.js +20 -0
  40. package/dist/{chunk-XCPZ4R65.js → chunk-UGDB4QTS.js} +1 -1
  41. package/dist/{chunk-CCBNU5Y3.js → chunk-UXEYWMPO.js} +9 -8
  42. package/dist/{chunk-F4PGPJOI.js → chunk-VEA72AKG.js} +1 -1
  43. package/dist/{chunk-G4TZFGNN.js → chunk-VYDPW2YO.js} +2 -19
  44. package/dist/{chunk-P6M2MCZJ.js → chunk-WYYHMKF7.js} +2 -2
  45. package/dist/{chunk-OMWCSE4P.js → chunk-XF4DN44V.js} +2 -2
  46. package/dist/{chunk-LJVAOWZI.js → chunk-XMPHGOW4.js} +4 -32
  47. package/dist/{chunk-P2DSHLHD.js → chunk-Z6T5M3NJ.js} +2 -2
  48. package/dist/cli.js +35 -9
  49. package/dist/{commands-4C6TJ4WG.js → commands-GMUQCBFQ.js} +1 -1
  50. package/dist/{commands-MTH5LEV7.js → commands-MYGPEYBE.js} +111 -102
  51. package/dist/{company-4DHVAW25.js → company-W2OBOOKJ.js} +2 -2
  52. package/dist/{completion-JDD3SNUO.js → completion-EMY4WDII.js} +3 -3
  53. package/dist/{contract-PT7VW4IE.js → contract-LTQVLI7A.js} +2 -2
  54. package/dist/{department-C6WIZPBS.js → department-GZBKUFON.js} +1 -1
  55. package/dist/{deposit-OEYFPEZG.js → deposit-HCMV2MBU.js} +1 -1
  56. package/dist/domain-knowledge-32TTPFVY.js +79 -0
  57. package/dist/{estimate-4BUJQ3TP.js → estimate-ILUXZJG3.js} +3 -3
  58. package/dist/{evaluation-GLXQ54F6.js → evaluation-PE7QHATW.js} +1 -1
  59. package/dist/{expense-QE3WIJTN.js → expense-K2JPBP2M.js} +1 -1
  60. package/dist/{fiscal-year-YJWFQN4P.js → fiscal-year-XY4KA67D.js} +1 -1
  61. package/dist/{inquiry-ORB3ROAJ.js → inquiry-FEQWFU7Z.js} +1 -1
  62. package/dist/{invoice-XLX5KS2T.js → invoice-WOQZUL66.js} +2 -2
  63. package/dist/{job-title-UDF6I3BP.js → job-title-CDAMB4Q2.js} +1 -1
  64. package/dist/{knowledge-GB6IFUMG.js → knowledge-VM6P4XDQ.js} +78 -48
  65. package/dist/{leave-3BJMXI7Q.js → leave-TEXQJURZ.js} +2 -2
  66. package/dist/{license-OMIZUUTW.js → license-ZSZM5OSK.js} +1 -1
  67. package/dist/{logout-guard-2Y7HPIKN.js → logout-guard-3B767ADS.js} +2 -2
  68. package/dist/{media-HJDG3QWD.js → media-TAS7FF5K.js} +3 -3
  69. package/dist/{notification-2IESSY5E.js → notification-T46TUUMO.js} +1 -1
  70. package/dist/{oneshot-4XO5HIJR.js → oneshot-XRN744YK.js} +1 -1
  71. package/dist/plan-submit-YBTGYQD7.js +4 -0
  72. package/dist/{position-CR6P4WC5.js → position-BKZQH6A3.js} +1 -1
  73. package/dist/{project-JJEMEO2W.js → project-KL4DH2XE.js} +1 -1
  74. package/dist/{prospect-QG6X7ALK.js → prospect-BEB5AXPM.js} +2 -2
  75. package/dist/{purchase-Z6ENEOZM.js → purchase-P37K6MVO.js} +3 -3
  76. package/dist/{receivable-ZBDXXMHX.js → receivable-5N3KL3L4.js} +1 -1
  77. package/dist/{redmine-EIFHMLNE.js → redmine-K7A7AEUA.js} +1 -1
  78. package/dist/{registry-DWIGRC5S.js → registry-GGKX3MCP.js} +1 -1
  79. package/dist/{report-TTXGXSR3.js → report-PZ4GMMK2.js} +1 -1
  80. package/dist/{revision-command-TYBPPUAF.js → revision-command-KT7NMRES.js} +1 -1
  81. package/dist/{run-36UF6SY5.js → run-65IJLMKQ.js} +2 -2
  82. package/dist/{sales-ai-review-6TDJFHDL.js → sales-ai-review-NBNSHUUP.js} +1 -1
  83. package/dist/{sales-master-H5HMVBJV.js → sales-master-23PVQUTQ.js} +2 -2
  84. package/dist/{sales-numbering-Q5KRM63Y.js → sales-numbering-FQ7YPQME.js} +1 -1
  85. package/dist/{schedule-command-2HCOGYJW.js → schedule-command-RVKP6QQS.js} +1 -1
  86. package/dist/search-NYY22NHK.js +29 -0
  87. package/dist/{segment-YOUY4PZC.js → segment-2C3MYZCV.js} +1 -1
  88. package/dist/server-settings-ELHHMBBK.js +4 -0
  89. package/dist/{server-skills-4XYTHPN3.js → server-skills-EEPBSOPO.js} +1 -1
  90. package/dist/{setup-HHPKB6N4.js → setup-74LO2SXN.js} +2 -2
  91. package/dist/{skill-RH5MBRXZ.js → skill-RKCTUJHW.js} +1 -1
  92. package/dist/skill-check-2ILLHGDQ.js +29 -0
  93. package/dist/skill-command-4VMZ2H6A.js +3 -0
  94. package/dist/{skill-manage-command-S2RLIHTA.js → skill-manage-command-HPJQOTQK.js} +1 -1
  95. package/dist/{supplier-payment-EJTFKAKY.js → supplier-payment-G2BGSGLA.js} +2 -2
  96. package/dist/{support-FR3KY63E.js → support-E3PBMVG4.js} +1 -1
  97. package/dist/{task-O7K6725Y.js → task-N6OVWNAT.js} +2 -2
  98. package/dist/{user-PRGHG3HM.js → user-VODWJQZI.js} +2 -2
  99. package/dist/{user-contract-type-K7CLKCEE.js → user-contract-type-7AVII6SV.js} +1 -1
  100. package/dist/{worker-agent-WDYZTQ5C.js → worker-agent-KRMY2RKK.js} +1 -1
  101. package/dist/{workflow-S25JXGWN.js → workflow-GWEN7NSQ.js} +1 -1
  102. package/package.json +1 -1
  103. package/dist/chunk-D5EYI7S3.js +0 -48
  104. package/dist/chunk-KDH3KWPO.js +0 -4
  105. package/dist/chunk-S7IEZSPJ.js +0 -11
  106. package/dist/chunk-SPZ3GBYC.js +0 -16
  107. package/dist/plan-submit-T5KHXNGH.js +0 -4
  108. package/dist/search-GRAWP2LX.js +0 -26
  109. package/dist/server-settings-LJBDUOTV.js +0 -4
  110. package/dist/skill-command-4V2GT73D.js +0 -3
@@ -17,68 +17,72 @@ const ttl=options.ttlMs??DEFAULT_TTL_MS;const now=(options.now??Date.now)();if(M
17
17
  const tmp=`${file}.${process.pid}.tmp`;try{fs.mkdirSync(dir,{recursive:true,mode:448});fs.writeFileSync(tmp,`${JSON.stringify(body)}
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 BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\
19
19
  \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="/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/seg\
20
- ments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";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 WORKER_AGENTS_PATH="/api/v2/worker-agents";
21
- 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:"/api/v2/attendance/report-reasons",details:"\
22
- /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="/api/v2/sales/deposits";var SALES_PURCHASES_PATH="\
23
- /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="/api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="\
24
- /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"},"invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,
25
- 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\u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},
26
- "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,label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},
27
- "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]+$/.test(value)&&String(Number(value))===value}
28
- 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;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){return typeof value==="string"&&value.
29
- 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:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"task-types",envelope:"data",scope:"\
30
- 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"}};var Resolver=class{constructor(client,options){this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=null;async project(ref){
31
- 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){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")}
32
- 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}\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}\
33
- \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.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",
34
- res.status)}safeProjectIdPolicy.assertId(projectId);return{projectId,task}}async currentUser(){const res=await this.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["\
35
- 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",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){
36
- 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()===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.
37
- 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){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(
38
- 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),{flag,label:spec.label})}async taskMasterRefs(kind,projectId){const spec=TASK_MASTERS[kind];return namedFromRows(await this.taskMasterRows(kind,projectId),spec.label,codedMasterRow)}async privateTaskMaster(envelope,input,flag,label){return resolveNamed(input,await this.privateMasters(
39
- envelope,label),{flag,label,scope:PRIVATE_SCOPE_LABEL})}async taskMasterRows(kind,projectId){const spec=TASK_MASTERS[kind];return this.cached(spec.scope,projectId,async()=>rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/${spec.path}`),spec.envelope,spec.label))}invalidateTaskMaster(kind,projectId){removeCache({profile:this.options.profile,scope:TASK_MASTERS[kind].scope,project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async privateStatuses(){return this.
40
- privateMasters("statuses","\u30B9\u30C6\u30FC\u30BF\u30B9")}async privateTaskTypes(){return this.privateMasters("types","\u7A2E\u5225")}async privateStatus(input){return resolveNamed(this.applyAlias("status",input),await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateTaskType(input){return resolveNamed(this.applyAlias("type",input),await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultStatus(){
41
- return requireDefault(await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultTaskType(){return requireDefault(await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateTask(ref){const trimmed=ref.trim();const res=await this.get(`${PRIVATE_TASKS_PATH}/${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}`,
42
- 404)}if(!res.ok){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u3092\u53D6\u5F97\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 task=isRecord(res.json)?res.json["task"]:void 0;if(!isRecord(task)){throw new ResolveError("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
43
- res.status)}return task}async primaryAssignment(userId){if(!isSafePathSegment(userId)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments/primary`);if(res.status===404)return null;if(!res.ok){throw new ResolveError(`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
44
- status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const assignment=isRecord(res.json)?res.json["assignment"]:void 0;if(!isRecord(assignment)||typeof assignment["id"]!=="string"){throw new ResolveError("\u4E3B\u6240\u5C5E\u306E\u5FDC\u7B54\u306B assignment.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return assignment}async assignments(userId){if(!isSafePathSegment(userId)){throw new ResolveError(
45
- `\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments`);if(!res.ok){throw new ResolveError(`\u6240\u5C5E\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const list=isRecord(
46
- res.json)?res.json["list"]:void 0;if(!Array.isArray(list)||!list.every(isRecord)){throw new ResolveError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return list}async privateMasters(envelope,label){return namedFromRows(await this.privateMasterRows(envelope,label),label,codedMasterRow)}async privateMasterRows(envelope,label){return this.cached(
47
- `private-${envelope}`,PRIVATE_MASTERS_CACHE_KEY,async()=>rawListFrom(await this.privateMastersResponse(),envelope,label))}privateMastersResponse(){this.privateMastersInFlight??=this.get(`${PRIVATE_TASKS_PATH}/masters`);return this.privateMastersInFlight}async members(projectId){return this.cached("members",projectId,()=>this.namedList(`/api/v2/projects/${encodeURIComponent(projectId)}/members?limit=${PROJECT_MEMBERS_LIMIT}`,"list","\u30E1\u30F3\u30D0\u30FC",row=>({id:str(row["user_id"]),name:str(
48
- row["user_name"]),code:null,aliases:[str(row["alias"]),str(row["user_email"])].filter(v=>v!==null)})).then(refs=>assertMembersComplete(refs)))}async memberRows(projectId){return assertMembersComplete(rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/members?limit=${PROJECT_MEMBERS_LIMIT}`),"list","\u30E1\u30F3\u30D0\u30FC"))}invalidateMembers(projectId){removeCache({profile:this.options.profile,scope:"members",project:projectId},this.options.env!==void 0?{env:this.options.
49
- env}:{})}async user(input,flag="<\u30E6\u30FC\u30B6\u30FC>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(trimmed.toLowerCase()===SELF_REF)return this.self();if(UUID_RE.test(trimmed))return{id:trimmed,name:trimmed};const searched=await this.searchUsers(trimmed);if(searched.refs!==null){const needle=trimmed.toLowerCase();const hits=searched.refs.filter(ref=>[ref.id,ref.code,ref.name,...ref.aliases??
50
- []].some(key=>typeof key==="string"&&key.trim().toLowerCase()===needle));if(hits.length>0)return resolveNamed(trimmed,hits,{flag,label:"\u30E6\u30FC\u30B6\u30FC",scope:TENANT_SCOPE_LABEL})}try{return await resolveNamed(trimmed,await this.visibleUsers(),{flag,label:"\u30E6\u30FC\u30B6\u30FC",scope:TENANT_SCOPE_LABEL})}catch(err){if(err instanceof UsageError&&searched.failure!==null){throw new UsageError(`${err.message}\uFF08\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C ${searched.failure} \u3067\u5931\u6557\u3057\
51
- \u305F\u305F\u3081\u3001\u8868\u793A\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u3067\u7167\u5408\u3057\u307E\u3057\u305F\uFF09`,err.hint)}throw err}}async searchUsers(keyword){const query=new URLSearchParams({keyword,include_hidden:"true",limit:"100"});const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);if(!res.ok)return{refs:null,failure:`HTTP ${res.status}`};return{refs:namedFromRows(rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"),"\u30E6\u30FC\u30B6\u30FC",
52
- userRow),failure:null}}async visibleUsers(){return this.cached("admin-users-visible",TENANT_CACHE_KEY,async()=>{const rows=[];let cursor=null;for(let page=0;;page++){if(page>=USER_LIST_MAX_PAGES){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C ${USER_LIST_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u304B\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
53
- const query=new URLSearchParams({limit:"100"});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);rows.push(...rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"));const body=isRecord(res.json)?res.json:{};if(body["has_more"]===false)break;const next=str(body["next_cursor"]);if(body["has_more"]!==true||next===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B has_more / next_cursor \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
54
- res.status)}cursor=next}return namedFromRows(rows,"\u30E6\u30FC\u30B6\u30FC",userRow)})}async department(input,flag="--department"){return resolveNamed(input,await this.departments(),{flag,label:"\u90E8\u7F72",scope:TENANT_SCOPE_LABEL})}async position(input,flag="--position"){return resolveNamed(input,await this.positions(),{flag,label:"\u5F79\u8077",scope:TENANT_SCOPE_LABEL})}async jobTitle(input,flag="--job-title"){return resolveNamed(input,await this.jobTitles(),{flag,label:"\u8077\u4F4D",scope:TENANT_SCOPE_LABEL})}async segment(input,flag="\
55
- --segment"){return resolveNamed(input,await this.segments(),{flag,label:"\u30BB\u30B0\u30E1\u30F3\u30C8",scope:TENANT_SCOPE_LABEL})}async userContractType(input,flag="--contract-type"){return resolveNamed(input,await this.userContractTypes(),{flag,label:"\u5951\u7D04\u5F62\u614B",scope:TENANT_SCOPE_LABEL})}async departments(){return this.cached("departments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${DEPARTMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u90E8\u7F72"),"\u90E8\u7F72",
56
- codedMasterRow))}async positions(){return this.cached("positions",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${POSITIONS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5F79\u8077"),"\u5F79\u8077",codedMasterRow))}async segments(){return this.cached("segments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${SEGMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u30BB\u30B0\u30E1\u30F3\u30C8"),"\u30BB\u30B0\u30E1\u30F3\u30C8",codedMasterRow))}async userContractTypes(){return this.
57
- cached("user-contract-types",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(USER_CONTRACT_TYPES_PATH),"\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 workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();
58
- 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){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,
59
- 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 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(
60
- 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}\uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){
61
- 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)}if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\
62
- \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",res.status)}return workflow}async attendanceReportMasters(){
63
- 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,reasons,details}}async attendanceReportMaster(kind,input,flag){
64
- 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}`)}const res=await this.get(`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(
65
- 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`,res.status)}const report=isRecord(res.json)?res.json["report"]:void 0;if(!isRecord(
66
- 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===void 0?"workflows-applicable":`workflows-applicable-${category}`;return this.cached(
67
- 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`,
68
- 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(
69
- 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`);
70
- 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=[];
71
- 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(
72
- `${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`,
73
- `${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,
74
- 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>
75
- 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(
76
- `${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`,
77
- 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(
78
- `\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){
79
- 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}\
80
- \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`,
81
- 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`,
20
+ ments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";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-kno\
21
+ wledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;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={
22
+ 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\
23
+ 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\
24
+ 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"},
25
+ 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"},
26
+ "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"},
27
+ "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;
28
+ 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;function isRecord(value){return typeof value==="object"&&
29
+ 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",envelope:"data",scope:"task-sta\
30
+ tuses",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"}};var Resolver=class{constructor(client,options){
31
+ this.client=client;this.options=options;this.get=rawGetVia(client)}client;options;get;privateMastersInFlight=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){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}`,
32
+ "\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}\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`,
33
+ 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.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 p\
34
+ roject_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(`\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`,
35
+ 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",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(
36
+ "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()===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(
37
+ 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){return requireDefault(await this.taskTypes(projectId),{flag:"--type",label:"\u7A2E\u5225"})}async statuses(projectId){return namedFromRows(await this.taskMasterRows(
38
+ "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),{flag,label:spec.label})}async taskMasterRefs(kind,projectId){const spec=TASK_MASTERS[kind];return namedFromRows(await this.taskMasterRows(kind,projectId),spec.label,
39
+ codedMasterRow)}async privateTaskMaster(envelope,input,flag,label){return resolveNamed(input,await this.privateMasters(envelope,label),{flag,label,scope:PRIVATE_SCOPE_LABEL})}async taskMasterRows(kind,projectId){const spec=TASK_MASTERS[kind];return this.cached(spec.scope,projectId,async()=>rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/${spec.path}`),spec.envelope,spec.label))}invalidateTaskMaster(kind,projectId){removeCache({profile:this.options.profile,scope:TASK_MASTERS[kind].
40
+ scope,project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async privateStatuses(){return this.privateMasters("statuses","\u30B9\u30C6\u30FC\u30BF\u30B9")}async privateTaskTypes(){return this.privateMasters("types","\u7A2E\u5225")}async privateStatus(input){return resolveNamed(this.applyAlias("status",input),await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateTaskType(input){return resolveNamed(this.applyAlias(
41
+ "type",input),await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultStatus(){return requireDefault(await this.privateStatuses(),{flag:"--status",label:"\u30B9\u30C6\u30FC\u30BF\u30B9",scope:PRIVATE_SCOPE_LABEL})}async privateDefaultTaskType(){return requireDefault(await this.privateTaskTypes(),{flag:"--type",label:"\u7A2E\u5225",scope:PRIVATE_SCOPE_LABEL})}async privateTask(ref){const trimmed=ref.trim();const res=await this.get(`${PRIVATE_TASKS_PATH}\
42
+ /${encodeURIComponent(trimmed)}`);if(res.status===404){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${trimmed}`,404)}if(!res.ok){throw new ResolveError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u3092\u53D6\u5F97\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 task=isRecord(
43
+ res.json)?res.json["task"]:void 0;if(!isRecord(task)){throw new ResolveError("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return task}async primaryAssignment(userId){if(!isSafePathSegment(userId)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
44
+ const res=await this.get(`/api/v2/organization/users/${encodeURIComponent(userId)}/assignments/primary`);if(res.status===404)return null;if(!res.ok){throw new ResolveError(`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const assignment=isRecord(res.json)?res.json["assignment"]:void 0;if(!isRecord(assignment)||typeof assignment["id"]!=="string"){throw new ResolveError(
45
+ "\u4E3B\u6240\u5C5E\u306E\u5FDC\u7B54\u306B assignment.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return assignment}async assignments(userId){if(!isSafePathSegment(userId)){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`/ap\
46
+ i/v2/organization/users/${encodeURIComponent(userId)}/assignments`);if(!res.ok){throw new ResolveError(`\u6240\u5C5E\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}${res.error?`: ${res.error}`:""}\uFF09\u3002`,res.status)}const list=isRecord(res.json)?res.json["list"]:void 0;if(!Array.isArray(list)||!list.every(isRecord)){throw new ResolveError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
47
+ res.status)}return list}async privateMasters(envelope,label){return namedFromRows(await this.privateMasterRows(envelope,label),label,codedMasterRow)}async privateMasterRows(envelope,label){return this.cached(`private-${envelope}`,PRIVATE_MASTERS_CACHE_KEY,async()=>rawListFrom(await this.privateMastersResponse(),envelope,label))}privateMastersResponse(){this.privateMastersInFlight??=this.get(`${PRIVATE_TASKS_PATH}/masters`);return this.privateMastersInFlight}async members(projectId){return this.cached(
48
+ "members",projectId,()=>this.namedList(`/api/v2/projects/${encodeURIComponent(projectId)}/members?limit=${PROJECT_MEMBERS_LIMIT}`,"list","\u30E1\u30F3\u30D0\u30FC",row=>({id:str(row["user_id"]),name:str(row["user_name"]),code:null,aliases:[str(row["alias"]),str(row["user_email"])].filter(v=>v!==null)})).then(refs=>assertMembersComplete(refs)))}async memberRows(projectId){return assertMembersComplete(rawListFrom(await this.get(`/api/v2/projects/${encodeURIComponent(projectId)}/members?limit=${PROJECT_MEMBERS_LIMIT}`),
49
+ "list","\u30E1\u30F3\u30D0\u30FC"))}invalidateMembers(projectId){removeCache({profile:this.options.profile,scope:"members",project:projectId},this.options.env!==void 0?{env:this.options.env}:{})}async user(input,flag="<\u30E6\u30FC\u30B6\u30FC>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(trimmed.toLowerCase()===SELF_REF)return this.self();if(UUID_RE.test(trimmed))return{id:trimmed,name:trimmed};
50
+ const searched=await this.searchUsers(trimmed);if(searched.refs!==null){const needle=trimmed.toLowerCase();const hits=searched.refs.filter(ref=>[ref.id,ref.code,ref.name,...ref.aliases??[]].some(key=>typeof key==="string"&&key.trim().toLowerCase()===needle));if(hits.length>0)return resolveNamed(trimmed,hits,{flag,label:"\u30E6\u30FC\u30B6\u30FC",scope:TENANT_SCOPE_LABEL})}try{return await resolveNamed(trimmed,await this.visibleUsers(),{flag,label:"\u30E6\u30FC\u30B6\u30FC",scope:TENANT_SCOPE_LABEL})}catch(err){
51
+ if(err instanceof UsageError&&searched.failure!==null){throw new UsageError(`${err.message}\uFF08\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C ${searched.failure} \u3067\u5931\u6557\u3057\u305F\u305F\u3081\u3001\u8868\u793A\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u3067\u7167\u5408\u3057\u307E\u3057\u305F\uFF09`,err.hint)}throw err}}async searchUsers(keyword){const query=new URLSearchParams({keyword,include_hidden:"true",limit:"100"});const res=await this.get(`${ADMIN_USERS_LIST_PATH}\
52
+ ?${query.toString()}`);if(!res.ok)return{refs:null,failure:`HTTP ${res.status}`};return{refs:namedFromRows(rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"),"\u30E6\u30FC\u30B6\u30FC",userRow),failure:null}}async visibleUsers(){return this.cached("admin-users-visible",TENANT_CACHE_KEY,async()=>{const rows=[];let cursor=null;for(let page=0;;page++){if(page>=USER_LIST_MAX_PAGES){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C ${USER_LIST_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u304B\u30E1\u30FC\u30EB\
53
+ \u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const query=new URLSearchParams({limit:"100"});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);rows.push(...rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"));const body=isRecord(res.json)?res.json:{};if(body["has_more"]===false)break;const next=str(body["next_cursor"]);if(body["has_more"]!==true||next===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\
54
+ \u306E\u5FDC\u7B54\u306B has_more / next_cursor \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}cursor=next}return namedFromRows(rows,"\u30E6\u30FC\u30B6\u30FC",userRow)})}async department(input,flag="--department"){return resolveNamed(input,await this.departments(),{flag,label:"\u90E8\u7F72",scope:TENANT_SCOPE_LABEL})}async position(input,flag="--position"){return resolveNamed(input,await this.positions(),{flag,
55
+ label:"\u5F79\u8077",scope:TENANT_SCOPE_LABEL})}async jobTitle(input,flag="--job-title"){return resolveNamed(input,await this.jobTitles(),{flag,label:"\u8077\u4F4D",scope:TENANT_SCOPE_LABEL})}async segment(input,flag="--segment"){return resolveNamed(input,await this.segments(),{flag,label:"\u30BB\u30B0\u30E1\u30F3\u30C8",scope:TENANT_SCOPE_LABEL})}async userContractType(input,flag="--contract-type"){return resolveNamed(input,await this.userContractTypes(),{flag,label:"\u5951\u7D04\u5F62\u614B",scope:TENANT_SCOPE_LABEL})}async departments(){
56
+ return this.cached("departments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${DEPARTMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u90E8\u7F72"),"\u90E8\u7F72",codedMasterRow))}async positions(){return this.cached("positions",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${POSITIONS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5F79\u8077"),"\u5F79\u8077",codedMasterRow))}async segments(){return this.cached("segments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(
57
+ await this.get(`${SEGMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u30BB\u30B0\u30E1\u30F3\u30C8"),"\u30BB\u30B0\u30E1\u30F3\u30C8",codedMasterRow))}async userContractTypes(){return this.cached("user-contract-types",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(USER_CONTRACT_TYPES_PATH),"\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}\
58
+ ?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}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){throw new ApiError(res.status,isRecord(
59
+ 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="<KB>"){const trimmed=input.trim();if(trimmed===
60
+ "")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\u3059\u3002twp knowledge list \u306E id / slug \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}
61
+ 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\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08twp knowledge list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002`,
62
+ 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["name"]==="string"?hit["name"]:trimmed}}async processMaster(input,flag="--process"){return resolveNamed(input,await this.
63
+ 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="<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(category),{flag,
64
+ 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}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.
65
+ 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`,res.status)}const workflow=isRecord(
66
+ 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([load(ATTENDANCE_REPORT_MASTER_PATHS.
67
+ 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]}?limit=${ORG_MASTER_LIMIT}`),label);return resolveNamed(
68
+ 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}`,404)}if(!res.ok){throw new ResolveError(
69
+ `\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",
70
+ 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===
71
+ "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="\
72
+ --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,
73
+ 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};
74
+ 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&\
75
+ 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`,
76
+ 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(
77
+ 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\
78
+ \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===
79
+ "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.
80
+ 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 \
81
+ 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}\
82
+ \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(
83
+ `${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\
84
+ \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(
85
+ 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`,
82
86
  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\
83
87
  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)?
84
88
  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.
@@ -140,6 +144,6 @@ name:str(row["name"])}}function agentRepositoryRow(row){const short=str(row["nam
140
144
  \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(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,
141
145
  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`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&
142
146
  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.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.
143
- 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,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,WORKER_AGENTS_PATH,AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,WORKFLOWS_PATH,
144
- 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,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,
145
- SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
147
+ 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,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,DOMAIN_KNOWLEDGES_PATH,DOMAIN_KNOWLEDGE_SLUG_RE,WORKER_AGENTS_PATH,AGENT_SESSIONS_PATH,
148
+ 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,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,
149
+ 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};
@@ -58,4 +58,4 @@ w)).map(x=>x.detail.name);io.err(`\u26D4 \u5C55\u958B\u6E08\u307F: ${done.length
58
58
  `);return EXIT_API_SERVER}const out=[];for(const item of raw){const r=item&&typeof item==="object"?item:{};const name=str(r["name"]);const digest=str(r["digest"]);const revision=pickNumber(r,"revision");if(!isValidSkillName(name)||!/^sha256:[0-9a-f]{64}$/.test(digest)||revision===null){err(`\u26D4 \u30B9\u30AD\u30EB\u5B9A\u7FA9\u306E\u4E00\u89A7\u306B\u5951\u7D04\u5916\u306E\u8981\u7D20\u304C\u3042\u308A\u307E\u3059\uFF08${JSON.stringify(item).slice(0,160)}\uFF09
59
59
  `);return EXIT_API_SERVER}out.push({name,digest,revision})}return out}function unwrap(res,key){const json=res.json??{};const data=json["data"];if(data&&typeof data==="object"&&!Array.isArray(data)&&key in data){return data}return json}function parseDetail(res){const b=unwrap(res,"revision");const revision=pickNumber(b,"revision");const body=b["body"];const name=b["name"];if(revision===null||typeof body!=="string"||typeof name!=="string")return null;return{name,body,revision,updatedByName:str(b["\
60
60
  updated_by_name"]),updatedAt:str(b["updated_at"])}}function reasonOf(res){const json=res.json??{};const data=json["data"]&&typeof json["data"]==="object"?json["data"]:{};return str(json["error"])||str(json["reason"])||str(data["reason"])}function serverLabel(name,current){if(current===null)return`\u30B5\u30FC\u30D0\uFF08${name}\u30FB\u672A\u767B\u9332\uFF09`;return`\u30B5\u30FC\u30D0\uFF08${name}\u30FBrevision ${current.revision}${current.updatedByName?`\u30FB${current.updatedByName}`:""}\uFF09`}
61
- function confirmCommand(opts,name,revision){const parts=["twp task-loop skill push","--project",shellQuote(opts.projectRef)];if(opts.profile!==void 0)parts.push("--profile",shellQuote(opts.profile));if(opts.dir!==void 0)parts.push("--dir",shellQuote(opts.dir));parts.push(name===void 0?"--all":shellQuote(name),"--yes","--revision",shellQuote(revision));return parts.join(" ")}export{DEFAULT_SKILL_DIR,isValidSkillName,skillDigest,runSkillCommand,fetchSkill,unwrap,reasonOf};
61
+ function confirmCommand(opts,name,revision){const parts=["twp task-loop skill push","--project",shellQuote(opts.projectRef)];if(opts.profile!==void 0)parts.push("--profile",shellQuote(opts.profile));if(opts.dir!==void 0)parts.push("--dir",shellQuote(opts.dir));parts.push(name===void 0?"--all":shellQuote(name),"--yes","--revision",shellQuote(revision));return parts.join(" ")}export{DEFAULT_SKILL_DIR,isValidSkillName,skillDigest,runSkillCommand,fetchSkill,fetchList,unwrap,reasonOf};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{describeError}from"./chunk-SPZ3GBYC.js";import{DEFAULT_INTERVAL_SEC}from"./chunk-LJVAOWZI.js";import{CHAIN_KEYS,reloadAiConfig}from"./chunk-FABDZBDZ.js";import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var PROMPT_KEYS=["charter","charter_prefix","charter_suffix","plan_preamble","step_budget","non_interactive_note","safe_mode_note"];function parseServerSettings(res){const json=res.json;if(json===null||typeof json!=="object"||Array.isArray(json))return null;const top=json;const data=top["data"];const b=data!==null&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data?data:top;const revision=b["revision"];if(typeof revision!=="number"||!Number.isInteger(revision)||revision<0)return null;
3
+ import{DEFAULT_INTERVAL_SEC}from"./chunk-CCHPF23L.js";import{CHAIN_KEYS,reloadAiConfig}from"./chunk-FABDZBDZ.js";import{describeError}from"./chunk-5KAWCLYN.js";import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var PROMPT_KEYS=["charter","charter_prefix","charter_suffix","plan_preamble","step_budget","non_interactive_note","safe_mode_note"];function parseServerSettings(res){const json=res.json;if(json===null||typeof json!=="object"||Array.isArray(json))return null;const top=json;const data=top["data"];const b=data!==null&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data?data:top;const revision=b["revision"];if(typeof revision!=="number"||!Number.isInteger(revision)||revision<0)return null;
4
4
  const rawAi=b["ai"];const ai=rawAi!==null&&typeof rawAi==="object"&&!Array.isArray(rawAi)?Object.fromEntries(Object.entries(rawAi).filter(([,v])=>v!==null&&v!==void 0)):{};const prompts={};const rawPrompts=b["prompts"];if(rawPrompts!==null&&typeof rawPrompts==="object"&&!Array.isArray(rawPrompts)){for(const key of PROMPT_KEYS){const v=rawPrompts[key];if(typeof v==="string")prompts[key]=v}}const rawLoop=b["loop"];const rawInterval=rawLoop!==null&&typeof rawLoop==="object"&&!Array.isArray(rawLoop)?
5
5
  rawLoop["interval_sec"]:void 0;const intervalSec=typeof rawInterval==="number"&&Number.isInteger(rawInterval)&&rawInterval>0?rawInterval:null;const rawOutcomes=b["outcomes"];const outcomeSkills=Array.isArray(rawOutcomes)?[...new Set(rawOutcomes.map(r=>r!==null&&typeof r==="object"?r["skill"]:void 0).filter(v=>typeof v==="string"&&v.trim()!==""))]:[];return{revision,ai,prompts,intervalSec,outcomeSkills}}function formatConfigHash(aiHash,revision,ai,charter){return`${aiHash};r=${revision};ai=${ai};\
6
6
  charter=${charter}`}function renderStepBudget(template,vars){return template.replaceAll("{timeout_min}",String(vars.timeoutMin)).replaceAll("{soft_min}",String(vars.softMin)).replaceAll("{wrap_up_min}",String(vars.wrapUpMin))}var LoopSettingsApplier=class{constructor(deps){this.deps=deps}deps;last=null;lastWarning="";lastAiWarning="";lastSummary="";serverAiApplied=false;lastSafeWarning="";lastInterval="";async apply(){const{config,log}=this.deps;const outcome=await this.fetch();const warning=outcome.
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FINAL_REPORT_BEGIN,FINAL_REPORT_END}from"./chunk-DXUFECE7.js";import{normalizeRequiredPlatforms}from"./chunk-SPZ3GBYC.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
3
+ import{FINAL_REPORT_BEGIN,FINAL_REPORT_END}from"./chunk-DXUFECE7.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{normalizeRequiredPlatforms}from"./chunk-5KAWCLYN.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
4
4
  function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
5
5
  "\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function matchingBrace(text,start){let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(inStr){if(c==="\\")escape=true;else if(c===
6
6
  '"')inStr=false;continue}if(c==='"')inStr=true;else if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0)return i}}return-1}var MAX_STEPS_ANCHORS=20;var MAX_OPEN_CANDIDATES=8;function lastStepsObject(text){const anchors=[...text.matchAll(/"steps"\s*:/g)].map(m=>m.index).filter(i=>i!==void 0);for(const at of anchors.reverse().slice(0,MAX_STEPS_ANCHORS)){let tried=0;for(let open=text.lastIndexOf("{",at);open>=0&&tried<MAX_OPEN_CANDIDATES;open=text.lastIndexOf("{",open-1)){tried++;const close=matchingBrace(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{WORKER_AGENTS_PATH}from"./chunk-HNG6MF26.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{WORKER_AGENTS_PATH}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";var LABEL="\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8";var LIST_COLUMNS=["agent_id","name","is_enabled","schedule","next_run_at","last_run_status","last_run_at","owner_user_name"];var GET_COLUMNS=["agent_id","name","description","owner_user_name","is_enabled","schedule","next_run_at","is_running","last_run_status","last_run_at","last_run_id","allowed_tool_count","write_enabled","ai_model","consecutive_failure_count","auto_disabled_reason"];var TOOL_COLUMNS=["name","category","d\
5
5
  isplay_name","is_mutating","is_available"];var TOOL_GET_COLUMNS=["name","category","display_name","description","is_mutating","is_destructive","is_available","required_feature","required_level","required_api_scopes"];var RUN_COLUMNS=["run_id","status","trigger","started_at","duration_ms","tool_call_count","consumed_credits","summary"];var RUN_GET_COLUMNS=["summary","status","skip_reason","error_code","error_message","run_id","agent_id","trigger","is_dry_run","started_at","finished_at","duration_\
6
6
  ms","iteration_count","tool_call_count","mutation_count","consumed_credits","ai_model"];var STEP_COLUMNS=["step_no","type","tool_name","is_mutation","duration_ms","content","error_message"];var STEP_TYPES=["thinking","tool_call","tool_result","error","budget_warning","final_summary"];var FORBIDDEN="AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6A5F\u80FD\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\uFF08agent\uFF09\u304C\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u4F7F\u3048\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u308A\u5F53\u3066\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
@@ -0,0 +1,49 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-35MQ27I6.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","settings","plan","capacity"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--from","--to","--c\
4
+ onfig","--output","--query"]);var BOOLEAN_FLAGS=new Set(["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===void 0)continue;if(arg.startsWith("-")&&arg!==
5
+ "-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}
6
+ function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,
7
+ consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{action:"run"}:{},consumed}}if(second!==void 0&&secondIndex!==void 0)consumed.push(secondIndex);return{kind:"domain",domain:first,...second!==void 0?{operation:second}:{},consumed}}var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(argv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],domainHelp:false,dryRun:false,
8
+ debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const route=resolveRoute(dispatch(argv));const consumed=new Set;const[firstIndex,secondIndex]=route.consumed;if(route.kind==="builtin"){out.command=route.command;if(route.action!==void 0)out.taskLoopAction=route.action;for(const index of route.consumed)consumed.add(index)}else if(route.kind==="domain"){if(route.domain===HELP_TOKEN){if(route.operation===void 0){out.command="help";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(
9
+ route.operation)){out.command="domain";out.domain=route.operation;out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}else if(route.operation===API_TOKEN){out.command="api";out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}}else if(route.domain===API_TOKEN){out.command="api";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.domain)){out.command=
10
+ "domain";out.domain=route.domain;if(route.operation!==void 0)out.operation=route.operation;for(const index of route.consumed)consumed.add(index)}}const hasSubcommandToken=route.kind==="builtin"||route.kind==="domain"&&(route.domain===HELP_TOKEN||route.domain===API_TOKEN||isDomainName(route.domain));const isDomainRoute=out.command==="domain"||out.command==="api";const takeValue=(i,flag,inline)=>{const value=inline??argv[i+1];if(value===void 0||inline===void 0&&value.startsWith("-")){out.unknown.push(
11
+ flag);return{step:0}}if(value.trim()===""){out.unknown.push(inline===void 0?`${flag} `:`${flag}=${inline}`);return{step:0}}return{value,step:inline===void 0?1:0}};let optionsClosed=false;for(let i=0;i<argv.length;i++){if(consumed.has(i))continue;const raw=argv[i];if(raw===void 0)continue;if(isDomainRoute&&raw==="--")optionsClosed=true;const{name:arg,value:inline}=splitFlagToken(raw);if(isDomainRoute&&(optionsClosed||!GLOBAL_FLAGS.has(arg))){out.domainArgv.push(raw);continue}if(inline!==void 0&&BOOLEAN_FLAGS.
12
+ has(arg)){out.unknown.push(raw);continue}switch(arg){case"-h":case"--help":if(isDomainRoute)out.domainHelp=true;else out.command="help";break;case"-v":case"--version":out.command="version";break;case"--no-tui":out.noTui=true;break;case"--doctor":out.doctor=true;break;case"--password":out.loginMethod="password";break;case"--token":out.loginMethod="token";break;case"--no-browser":out.loginNoBrowser=true;break;case"--profile":{const{value,step}=takeValue(i,"--profile",inline);if(value!==void 0){out.
13
+ profile=value;i+=step}break}case"-p":case"--print":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(hasSubcommandToken){out.unknown.push(raw)}else if(next==="-"){out.command="print";out.promptFromStdin=true;out.prompt="";i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.command="print";out.prompt=next;i+=step}else{out.unknown.push(raw)}break}case"--output":{const{value,step}=takeValue(i,"--output",inline);if(value!==void 0){out.output=value;i+=step}break}case"\
14
+ --query":{const{value,step}=takeValue(i,"--query",inline);if(value!==void 0){out.query=value;i+=step}break}case"--dry-run":out.dryRun=true;break;case"--debug":out.debug=true;break;case"--refresh":out.refresh=true;break;case"--tenant":{const{value,step}=takeValue(i,"--tenant",inline);if(value!==void 0){out.tenant=value;i+=step}break}case"--mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isModeId(next)){out.mode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith(
15
+ "-"))){out.unknown.push(inline!==void 0?raw:`--mode ${next}`);i+=step}else{out.unknown.push("--mode")}break}case"--permission-mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isPermissionModeId(next)){out.permissionMode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.unknown.push(inline!==void 0?raw:`--permission-mode ${next}`);i+=step}else{out.unknown.push("--permission-mode")}break}case"--allowed-tools":case"--disallowed-tools":{const{value,
16
+ step}=takeValue(i,arg,inline);if(value!==void 0){(arg==="--allowed-tools"?out.allowedTools:out.disallowedTools).push(value);i+=step}break}case"--model":{const{value,step}=takeValue(i,"--model",inline);if(value!==void 0){out.model=value;i+=step}break}case"--safe":out.safe=true;break;case"--daemon":out.daemon=true;break;case"--force-runner":out.forceRunner=true;break;case"--force":out.stopForce=true;break;case"--drain":out.stopDrain=true;break;case"--project":{const{value,step}=takeValue(i,"--proj\
17
+ ect",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{const{value,step}=takeValue(i,"--engine",inline);if(value!==void 0){out.engine=value;i+=step}break}case"--interval":case"--max-cycles":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){const n=Number.parseInt(value,10);if(Number.isInteger(n)&&n>0){if(arg==="--interval")out.interval=n;else out.maxCycles=n}else{out.unknown.push(inline!==void 0?raw:`${arg} ${value}`)}i+=step}break}case"--yes":case"-y":out.yes=
18
+ true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-file":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(
19
+ i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(
20
+ i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--from":{const{value:v,step}=takeValue(i,"--from",inline);if(v!==void 0){out.revisionFrom=v;i+=step}break}case"--to":{const{value:v,step}=takeValue(i,"--to",inline);if(v!==void 0){out.revisionTo=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}
21
+ break}case"--config":{const{value:v,step}=takeValue(i,"--config",inline);if(v!==void 0){out.skillConfig=v;i+=step}break}case"--all":out.skillAll=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&isRevisionAwareOp(raw)){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="schedule"){if(out.scheduleOp===void 0&&isScheduleOp(raw)){out.scheduleOp=
22
+ raw;break}if(out.scheduleOp==="config"&&out.scheduleConfigOp===void 0&&(raw==="pull"||raw==="push")){out.scheduleConfigOp=raw;break}if(out.scheduleOp==="delete"&&out.scheduleId===void 0&&!raw.startsWith("-")){out.scheduleId=raw;break}}if(out.command==="task-loop"&&out.taskLoopAction==="settings"&&out.settingsOp===void 0&&(raw==="push"||raw==="pull")){out.settingsOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}
23
+ if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&raw==="report"){out.capacityOp="report";break}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(isRevisionAwareOp(raw)||isSkillManageOp(raw)||raw==="check")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod===
24
+ "password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod==="browse\
25
+ r")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--i\
26
+ nterval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-\
27
+ file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config");if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to");if(out.
28
+ planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami"||out.command==="task-loop"&&out.taskLoopAction==="skill"&&(out.skillOp==="list"||out.skillOp==="show"||out.skillOp==="check");if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}else if(out.command==="task-loop"&&
29
+ out.skillOp==="check"&&out.query!==void 0){out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&(out.taskLoopAction!=="schedule"||out.scheduleOp!==void 0)){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.
30
+ scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");
31
+ out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){const yesConfirms=out.taskLoopAction==="charter"||out.taskLoopAction==="skill"||out.taskLoopAction==="settings"||out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0&&out.scheduleOp!=="list";if(out.yes&&!yesConfirms)out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai\
32
+ -config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&
33
+ out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\
34
+ \u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.charterOp);if((out.charterOp==="history"||out.charterOp==="diff")&&out.yes)out.unknown.push("--yes");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daem\
35
+ on");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push(SKILL_OP_REQUIRED)}else if(out.skillOp==="check"){if(out.skillName!==void 0)out.unknown.push("skill check \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5168\u30B9\u30AD\u30EB\u3092\u691C\u67FB\u3057\u307E\u3059\uFF09");
36
+ if(out.skillAll)out.unknown.push("--all");if(out.yes)out.unknown.push("--yes")}else if(out.skillOp==="list"&&out.skillAll){out.unknown.push("--all")}else if(out.skillOp==="list"&&out.skillName!==void 0){out.unknown.push(`skill list \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${out.skillName}`)}else if(out.skillOp==="list"){}else if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306F --all \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u540D\u30921\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(out.
37
+ skillName===void 0&&!out.skillAll){out.unknown.push(out.skillOp==="push"||out.skillOp==="pull"?`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`:`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}
38
+ if(out.skillOp!=="push"&&out.skillOp!=="revert"&&out.skillOp!=="delete"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.skillOp);if((out.skillOp==="history"||out.skillOp==="diff"||out.skillOp==="list"||out.skillOp==="show")&&out.yes){out.unknown.push("--yes")}if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillOp!=="check"&&out.skillConfig!==void 0)out.unknown.push("--config");if(out.charterFile!==
39
+ void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="settings"){if(out.settingsOp===void 0)out.unknown.push(
40
+ "settings \u306B\u306F push / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.settingsOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.settingsOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.settingsOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runne\
41
+ r");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push(
42
+ "--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterFile!==void 0)
43
+ out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction===
44
+ "schedule"&&out.scheduleOp!==void 0){const op=out.scheduleOp;const takesFile=op==="push"||op==="config"&&out.scheduleConfigOp==="push";if(op==="config"&&out.scheduleConfigOp===void 0){out.unknown.push("schedule config \u306B\u306F pull \u304B push \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(op==="delete"&&out.scheduleId===void 0)out.unknown.push("schedule delete \u306B\u306F\u5B9A\u7FA9ID\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(takesFile&&out.charterFile===void 0)
45
+ out.unknown.push(`schedule ${op==="push"?"push":"config push"} \u306B\u306F --file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);if(!takesFile&&out.charterFile!==void 0)out.unknown.push("--file");if(!(op==="config"&&out.scheduleConfigOp==="pull")&&out.charterOut!==void 0)out.unknown.push("--out");if((op==="list"||op==="config"&&out.scheduleConfigOp!=="push")&&out.charterRevision!==void 0){out.unknown.push("--revision")}if(out.safe)out.unknown.push("--safe");if(out.daemon)
46
+ out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.command==="task-loop"&&out.taskLoopAction!==
47
+ "skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"&&out.taskLoopAction!=="charter"){if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--\
48
+ check")}return out}function isScheduleOp(raw){return raw==="list"||raw==="push"||raw==="delete"||raw==="config"}function isSkillManageOp(raw){return raw==="list"||raw==="show"||raw==="delete"}var SKILL_OP_REQUIRED="skill \u306B\u306F push / pull / list / show / delete / history / diff / revert / check \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044";function isRevisionAwareOp(raw){return raw==="push"||raw==="pull"||raw==="history"||raw==="diff"||raw==="revert"}
49
+ function pushRevisionFlagErrors(out,op){if(op!=="diff"&&out.revisionFrom!==void 0)out.unknown.push("--from");if(op!=="diff"&&op!=="revert"&&out.revisionTo!==void 0)out.unknown.push("--to")}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,GLOBAL_FLAGS,parseArgv};
@@ -0,0 +1,20 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{spawn}from"child_process";function resolveHookCommand(file,env){if(process.platform!=="win32")return file;if(isWindowsDriveAbsolute(file))return file;return findExecutable(file,{env,platform:"win32"})}var DEFAULT_TIMEOUT_SEC=120;var MAX_OUTPUT_BYTES=512*1024;var HOOK_ID_RE=/^[A-Za-z0-9._:-]{1,64}$/;function validateHooks(raw,configKey="prefetch"){const warnings=[];if(raw===void 0||raw===null)return{hooks:[],warnings};if(!Array.isArray(raw)){return{hooks:[],warnings:[`${configKey} \u306F\u914D\u5217\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30D5\u30C3\u30AF\u306F1\u3064\u3082\u5B9F\u884C\u3057\u307E\u305B\u3093`]}}
4
+ const hooks=[];const seen=new Set;for(const[i,entry]of raw.entries()){if(entry===null||typeof entry!=="object"||Array.isArray(entry)){warnings.push(`${configKey}[${i}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const e=entry;const id=typeof e["id"]==="string"?e["id"].trim():"";const command=e["command"];if(id===""){warnings.push(`${configKey}[${i}] \u306B id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\
5
+ \u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(!HOOK_ID_RE.test(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u306F64\u6587\u5B57\u4EE5\u4E0B\u306E\u82F1\u6570\u5B57\u3068 . _ : - \u3060\u3051\u3092\u4F7F\u3048\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(seen.has(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);
6
+ continue}if(!Array.isArray(command)||command.length===0||!command.every(c=>typeof c==="string")){warnings.push(`${configKey}[${i}]\uFF08${id}\uFF09\u306E command \u304C\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const timeout=typeof e["timeout"]==="number"&&Number.isFinite(e["timeout"])&&e["timeout"]>0?Math.trunc(e["timeout"]):DEFAULT_TIMEOUT_SEC;seen.add(id);hooks.push({id,
7
+ command,timeout})}return{hooks,warnings}}async function runHook(hook,cwd,env=process.env,allowEmpty=false){const started=Date.now();const[file,...args]=hook.command;if(file===void 0){return{id:hook.id,ok:false,stdout:"",reason:"command \u304C\u7A7A\u3067\u3059",durationMs:0}}return new Promise(resolve=>{const resolved=resolveHookCommand(file,env);if(resolved===null){resolve({id:hook.id,ok:false,stdout:"",reason:`\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB ${file} \u3092 PATH \u4E0A\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08Windows \u3067\u306F bare nam\
8
+ e \u3067\u8D77\u52D5\u3057\u307E\u305B\u3093\uFF09`,failure:"spawn",durationMs:0});return}let child;try{child=spawn(resolved,args,{cwd,env,detached:process.platform!=="win32",stdio:["ignore","pipe","pipe"]})}catch(e){const code=e.code??"spawn \u5931\u6557";resolve({id:hook.id,ok:false,stdout:"",reason:`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${file} (${code})`,failure:"spawn",durationMs:Date.now()-started});return}let stdout="";let stderr="";let truncated=false;let timedOut=false;const timer=setTimeout(
9
+ ()=>{timedOut=true;killProcessTree(child,"SIGKILL")},(hook.timeout??DEFAULT_TIMEOUT_SEC)*1e3);child.stdout.on("data",c=>{if(stdout.length>=MAX_OUTPUT_BYTES){truncated=true;return}stdout+=c.toString("utf8");if(stdout.length>MAX_OUTPUT_BYTES){stdout=stdout.slice(0,MAX_OUTPUT_BYTES);truncated=true}});child.stderr.on("data",c=>{if(stderr.length<8192)stderr+=c.toString("utf8")});const done=(ok,reason,failure)=>{clearTimeout(timer);resolve({id:hook.id,ok,stdout:truncated?`${stdout}
10
+ \u2026\uFF08\u51FA\u529B\u304C\u4E0A\u9650\u3092\u8D85\u3048\u305F\u305F\u3081\u5207\u308A\u8A70\u3081\u307E\u3057\u305F\uFF09`:stdout,reason,...failure===void 0?{}:{failure},durationMs:Date.now()-started})};child.on("error",e=>done(false,`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${e.message}`,"spawn"));child.on("close",code=>{if(timedOut)return done(false,`\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08${hook.timeout??DEFAULT_TIMEOUT_SEC}\u79D2\uFF09`,"timeout");if(code!==0)return done(false,`\u7D42\u4E86\u30B3\
11
+ \u30FC\u30C9 ${code}${stderr.trim()===""?"":`: ${firstLine(stderr)}`}`,"exit");if(!allowEmpty&&stdout.trim()==="")return done(false,"\u51FA\u529B\u304C\u7A7A\u3067\u3057\u305F","empty");done(true,null)})})}async function runPrefetch(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env);if(r.ok){log(` prefetch: ${r.id} \u53D6\u5F97\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);sections.push(`--- pref\
12
+ etch: ${r.id} ---
13
+ ${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F prefetch: ${r.id} \u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- prefetch: ${r.id} ---
14
+ \uFF08\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u60C5\u5831\u306F\u6B20\u3051\u3066\u3044\u307E\u3059\uFF09`)}}return["\u3010\u4E8B\u524D\u53D6\u5F97\u6E08\u307F\u30C7\u30FC\u30BF\u3011","\u4EE5\u4E0B\u306F\u30EB\u30FC\u30D7\u304C\u4E8B\u524D\u306B\u53D6\u5F97\u3057\u305F\u8A08\u753B\u7528\u30C7\u30FC\u30BF\u3067\u3059\u3002\u540C\u3058\u60C5\u5831\u3092\u96C6\u3081\u76F4\u3059\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u300C\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u300D\u3068\u66F8\u304B\u308C\u305F\u7BC0\u3060\u3051\
15
+ \u306F\u6B20\u3051\u3066\u3044\u308B\u306E\u3067\u3001\u5FC5\u8981\u306A\u3089\u305D\u306E\u5206\u3092\u81EA\u5206\u3067\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}async function runPreflight(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env,true);if(r.ok){log(` preflight: ${r.id} \u78BA\u8A8D\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);if(r.stdout.
16
+ trim()!=="")sections.push(`--- preflight: ${r.id} ---
17
+ ${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F preflight: ${r.id} \u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- preflight: ${r.id} ---
18
+ \uFF08\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u524D\u63D0\u6761\u4EF6\u306F\u4E0D\u660E\u3067\u3059\uFF09`)}}if(sections.length===0)return"";return["\u3010\u74B0\u5883\u306E\u524D\u63D0\u6761\u4EF6\uFF08preflight\uFF09\u3011","\u4EE5\u4E0B\u306F\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u306E\u5192\u982D\u3067\u78BA\u8A8D\u3057\u305F\u74B0\u5883\u60C5\u5831\u3067\u3059\u3002\u8A08\u753B\u3068\u5404\u30A2\u30A4\u30C6\u30E0\u306E\u5B9F\u884C\u3067\u8003\u616E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
19
+ "\u5931\u6557\u3057\u305F\u30D5\u30C3\u30AF\u304C\u3042\u3063\u3066\u3082\u30B5\u30A4\u30AF\u30EB\u306F\u7D99\u7D9A\u3057\u307E\u3059\u3002\u5FC5\u8981\u306A\u62C5\u4FDD\u304C\u53D6\u308C\u306A\u3044\u5834\u5408\u306F\u3001\u305D\u306E\u4E8B\u5B9F\u3092\u660E\u8A18\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}function firstLine(s){return(s.trim().split("\n")[0]??"").slice(0,200)}function formatHookWiring(prefetch,preflight){return`LOOP_HOOKS ${formatHookIds(prefetch,
20
+ preflight)}`}function formatHookIds(prefetch,preflight){const ids=hooks=>hooks.map(h=>h.id).join(",");return`prefetch=[${ids(prefetch)}] preflight=[${ids(preflight)}]`}export{validateHooks,runHook,runPrefetch,runPreflight,formatHookWiring,formatHookIds};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-P2DSHLHD.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
3
+ import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
4
4
  ["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
5
5
  nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
6
6
  "\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.