@tocca-systems/twp-cli 0.74.1 → 0.76.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 (87) hide show
  1. package/CHANGELOG.public.md +12 -0
  2. package/README.md +18 -2
  3. package/dist/{agent-QPAXYSJP.js → agent-63DPLVPG.js} +1 -1
  4. package/dist/{agent-loop-UTS4MYW6.js → agent-loop-ZNQJSXQV.js} +2 -2
  5. package/dist/{ai-dispatch-OAT752RN.js → ai-dispatch-NFFEUL6K.js} +3 -3
  6. package/dist/{analysis-PMGNH3TJ.js → analysis-SDYGHILR.js} +2 -2
  7. package/dist/{announcement-A5XPVBAG.js → announcement-4RI2COFS.js} +1 -1
  8. package/dist/{api-command-HEUUFIK4.js → api-command-OKQHSCD4.js} +4 -4
  9. package/dist/{app-SFKZTJYX.js → app-OAJTDDSR.js} +3 -3
  10. package/dist/{attendance-correct-ZHHHORBP.js → attendance-correct-NJACXW3S.js} +1 -1
  11. package/dist/{attendance-lists-7OWTOLFU.js → attendance-lists-AUEECNJL.js} +1 -1
  12. package/dist/{backlog-ZMXUHYE2.js → backlog-NQUZQSCY.js} +1 -1
  13. package/dist/{budget-FQERSD4Y.js → budget-ILEQGQOA.js} +1 -1
  14. package/dist/{chunk-ZWPF6UXE.js → chunk-3GYJG6DA.js} +1 -1
  15. package/dist/{chunk-GTRKN2YS.js → chunk-4VAWX7TW.js} +1 -1
  16. package/dist/{chunk-22FXTKWN.js → chunk-5VZSHYKX.js} +1 -1
  17. package/dist/{chunk-UAVL2GLZ.js → chunk-7APLKLQL.js} +49 -48
  18. package/dist/{chunk-5NXO4FRO.js → chunk-7FJFBIVB.js} +2 -2
  19. package/dist/{chunk-CXYDOAUY.js → chunk-BATCC7M5.js} +2 -2
  20. package/dist/{chunk-RVEOVJTT.js → chunk-CKYCRD2J.js} +1 -1
  21. package/dist/{chunk-V7WNVT2J.js → chunk-CKZDTAMN.js} +1 -1
  22. package/dist/{chunk-RKREN2F6.js → chunk-CZUXTKMR.js} +1 -1
  23. package/dist/{chunk-HOLKWMS2.js → chunk-F6LEGFID.js} +4 -3
  24. package/dist/{chunk-3N6GRIXQ.js → chunk-ICGIHXBA.js} +1 -1
  25. package/dist/{chunk-332Y5OGZ.js → chunk-IMXXECCD.js} +1 -1
  26. package/dist/chunk-JUJSF5ZG.js +19 -0
  27. package/dist/{chunk-VKIFQOWX.js → chunk-LWJI22LF.js} +1 -1
  28. package/dist/{chunk-MCQZDXIA.js → chunk-MNFO6G2H.js} +1 -1
  29. package/dist/{chunk-7RTGZALQ.js → chunk-NFTLHE4Z.js} +1 -1
  30. package/dist/{chunk-5ZPI5YQC.js → chunk-NNDUIAGN.js} +1 -1
  31. package/dist/chunk-OG7FD7SR.js +16 -0
  32. package/dist/{chunk-MPU5QXYR.js → chunk-PCE6OI4L.js} +56 -7
  33. package/dist/{chunk-ZMVHGXTO.js → chunk-QO2QPN3M.js} +1 -1
  34. package/dist/{chunk-AVMM7NAP.js → chunk-URI3URUA.js} +2 -2
  35. package/dist/{chunk-EFYFNGBR.js → chunk-UVU7JXCG.js} +1 -1
  36. package/dist/chunk-YIH36ZDI.js +11 -0
  37. package/dist/{chunk-JSKNOSN4.js → chunk-YX6ONBPK.js} +1 -1
  38. package/dist/cli.js +25 -6
  39. package/dist/{commands-ZCXAJXHW.js → commands-UMSNPM4D.js} +11 -11
  40. package/dist/{company-56JA5MUM.js → company-QFIHJ4OY.js} +2 -2
  41. package/dist/{contract-P65ENPX3.js → contract-IGH7GFOM.js} +2 -2
  42. package/dist/{department-PBRRHYCR.js → department-TIW5YISO.js} +1 -1
  43. package/dist/{deposit-ZOYD5SUR.js → deposit-2YPPFQVR.js} +1 -1
  44. package/dist/{domain-knowledge-7OXIH7ES.js → domain-knowledge-F3GKX2VI.js} +1 -1
  45. package/dist/{estimate-POXYAGM2.js → estimate-JBQSEUJY.js} +3 -3
  46. package/dist/{evaluation-HCF3OQB3.js → evaluation-4QE4L3OG.js} +1 -1
  47. package/dist/{expense-3JKVCFPK.js → expense-CFHOIO3I.js} +1 -1
  48. package/dist/{fiscal-year-K2NEKCRR.js → fiscal-year-N7POJ77K.js} +1 -1
  49. package/dist/{holiday-DM4WIJ2N.js → holiday-WRSUBPT3.js} +1 -1
  50. package/dist/{inquiry-IJ5CN23R.js → inquiry-6ANZ6HKD.js} +1 -1
  51. package/dist/{invoice-VZHODF7M.js → invoice-INIF6BUD.js} +2 -2
  52. package/dist/{job-title-ST5A45Z2.js → job-title-KOFDOB65.js} +1 -1
  53. package/dist/{knowledge-IM6ZDVME.js → knowledge-W3ONOGV2.js} +69 -51
  54. package/dist/{leave-ZTT3L4WN.js → leave-LE3CIRPT.js} +2 -2
  55. package/dist/{license-5C6R3BER.js → license-ME2GUNJQ.js} +1 -1
  56. package/dist/{media-VH64KNQT.js → media-FDOAC5ZH.js} +2 -2
  57. package/dist/{notification-FTCMINYA.js → notification-N4FVLOPW.js} +1 -1
  58. package/dist/{oneshot-3MFPNFIE.js → oneshot-ALYKVJW2.js} +1 -1
  59. package/dist/plan-submit-2FSRRNIV.js +4 -0
  60. package/dist/{position-XP7EWXSX.js → position-4C37LALY.js} +1 -1
  61. package/dist/{project-AHVY3PDZ.js → project-DUHSOINK.js} +1 -1
  62. package/dist/{prospect-BKOGWVUA.js → prospect-QRTQA2R6.js} +2 -2
  63. package/dist/{purchase-MILRQW5U.js → purchase-LWRNGP3T.js} +3 -3
  64. package/dist/{receivable-BH3EZHLN.js → receivable-A4T74HZK.js} +1 -1
  65. package/dist/{redmine-P3R2TP3R.js → redmine-X2GTGXHG.js} +1 -1
  66. package/dist/{registry-ZTH2SZO3.js → registry-NQZQRUDI.js} +1 -1
  67. package/dist/{report-UM6SYICS.js → report-UNEQSKNU.js} +1 -1
  68. package/dist/{run-3NTJP6DX.js → run-UYJP4Z5U.js} +1 -1
  69. package/dist/{sales-ai-review-ES7YXGQI.js → sales-ai-review-IT6X4YQB.js} +1 -1
  70. package/dist/{sales-master-F7A46LZS.js → sales-master-QYNSMAP4.js} +2 -2
  71. package/dist/{sales-numbering-EC5H7UJY.js → sales-numbering-LZQCKDUM.js} +1 -1
  72. package/dist/{search-CRWXNR32.js → search-GZIEQYLJ.js} +1 -1
  73. package/dist/{segment-6XCC5S5I.js → segment-NNWN5KJB.js} +1 -1
  74. package/dist/skill-MWETUX56.js +4 -0
  75. package/dist/{supplier-payment-GNCQUUQ5.js → supplier-payment-4UKRQZHS.js} +2 -2
  76. package/dist/{support-PIEDXQL2.js → support-JJ7ZCJFX.js} +1 -1
  77. package/dist/{task-45ALOWLP.js → task-HAVEGLQC.js} +2 -2
  78. package/dist/{user-BJUWEL3X.js → user-VRMLWGQ2.js} +2 -2
  79. package/dist/{user-contract-type-EO4Z7PWA.js → user-contract-type-ZCUMSGVP.js} +1 -1
  80. package/dist/{worker-agent-MTSMWW2T.js → worker-agent-VCJUJDBO.js} +1 -1
  81. package/dist/{workflow-VMFSVENL.js → workflow-I7L476KK.js} +1 -1
  82. package/package.json +1 -1
  83. package/dist/chunk-DXUFECE7.js +0 -13
  84. package/dist/chunk-FDLKXEF5.js +0 -11
  85. package/dist/chunk-QS5VWTI3.js +0 -16
  86. package/dist/plan-submit-CZRVVZZB.js +0 -4
  87. package/dist/skill-IHWKNBN7.js +0 -4
@@ -17,51 +17,52 @@ 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 MS365_CHAT_PAGE_TOP=50;var MS365_CHAT_FIND_MAX_PAGES=100;function ms365MemberUserIds(chat){
19
19
  const members=chat["members"];if(!Array.isArray(members))return[];return members.map(m=>isRecord(m)&&typeof m["userId"]==="string"&&m["userId"]!==""?m["userId"]:null).filter(v=>v!==null)}var BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\u3053\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";var PRIVATE_SCOPE_LABEL="\u500B\u4EBA\u30BF\u30B9\u30AF";var TENANT_CACHE_KEY="__tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="\
20
- /api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var SEGMENTS_PATH="/api/v2/organization/segments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";var SKILL_CATEGORIES_PATH="/api/v2/organization/skill-categories";var SKILLS_PATH="/api/v2/organization/skills";var FISCAL_YEAR_SETTINGS_PATH="/api/v2/organizat\
21
- ion/fiscal-year-settings";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var SUPPORTS_PATH="/api/v2/supports";var SUPPORT_CATEGORIES_PATH="/api/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";var DOMAIN_KNOWLEDGES_PATH="/api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;var WORKER_AGENTS_PATH="/api/v2/worker-agents";var AGENT_SESSIONS_PATH="\
22
- /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:"/api/v2/attendance/repor\
23
- t-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="/api/v2/sales/purcha\
24
- ses";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="\
25
- /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,
26
- 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"},
27
- "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"},
28
- "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}
29
- 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.
30
- 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:"\
31
- 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){
32
- 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")}
33
- 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}\
34
- \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",
35
- 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["\
36
- 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){
37
- 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.
38
- 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(
39
- 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(
40
- 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.
41
- 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(){
42
- 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}`,
43
- 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",
44
- 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.
45
- 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(
46
- `\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(
47
- 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(
48
- `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(
49
- 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.
50
- 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??
51
- []].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\
52
- \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",
53
- 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`)}
54
- 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",
55
- 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="\
56
- --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",
57
- 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.
58
- 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 skillCategory(input,flag="--category"){return resolveNamed(input,await this.skillCategories(),
59
- {flag,label:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",scope:TENANT_SCOPE_LABEL})}async skill(input,flag="<\u30B9\u30AD\u30EB>"){return resolveNamed(input,await this.skills(),{flag,label:"\u30B9\u30AD\u30EB",scope:TENANT_SCOPE_LABEL})}async skillsInCategory(categoryId){return this.cached(`skills-in-category-${categoryId}`,TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${SKILLS_PATH}?category_id=${encodeURIComponent(categoryId)}`),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({
60
- ...codedMasterRow(row),code:str(row["skill_code"])})))}async skillCategories(){return this.cached("skill-categories",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILL_CATEGORIES_PATH),"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA"),"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",codedMasterRow))}async skills(){return this.cached("skills",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILLS_PATH),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(
61
- row),code:str(row["skill_code"])})))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);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)}
62
- 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==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\
63
- \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")}
64
- 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`,
20
+ /api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var SEGMENTS_PATH="/api/v2/organization/segments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";var SKILL_CATEGORIES_PATH="/api/v2/organization/skill-categories";var SKILLS_PATH="/api/v2/organization/skills";var QUALIFICATIONS_PATH="/api/v2/organization/qu\
21
+ alifications";var FISCAL_YEAR_SETTINGS_PATH="/api/v2/organization/fiscal-year-settings";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var SUPPORTS_PATH="/api/v2/supports";var SUPPORT_CATEGORIES_PATH="/api/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";var DOMAIN_KNOWLEDGES_PATH="/api/v2/domain-knowledges";var DOMAIN_KNOWLEDGE_SLUG_RE=/^[a-z0-9][a-z0-9-]{1,62}$/;
22
+ var WORKER_AGENTS_PATH="/api/v2/worker-agents";var AGENT_SESSIONS_PATH="/api/v2/agent/sessions";var AGENT_REPOSITORIES_PATH="/api/v2/agent/repositories";var AGENT_SCHEDULES_PATH="/api/v2/agent/schedules";var NOTIFICATION_COUNT_MAX_PAGES=20;var NOTIFICATION_COUNT_PAGE_LIMIT=100;var WORKFLOWS_PATH="/api/v2/workflows";var REPORTS_PATH="/api/v2/reports";var ATTENDANCE_REPORTS_PATH="/api/v2/attendance/reports";var ATTENDANCE_REPORT_MASTER_PATHS={categories:"/api/v2/attendance/report-categories",reasons:"\
23
+ /api/v2/attendance/report-reasons",details:"/api/v2/attendance/report-reason-details"};var ATTENDANCE_REPORT_MASTER_LABELS={categories:"\u9023\u7D61\u533A\u5206",reasons:"\u9023\u7D61\u7406\u7531",details:"\u9023\u7D61\u7406\u7531\u8A73\u7D30"};var SALES_ESTIMATES_PATH="/api/v2/sales/estimates";var SALES_INVOICES_PATH="/api/v2/sales/invoices";var SALES_CONTRACTS_PATH="/api/v2/sales/contracts";var SALES_INVOICE_AUTO_TEMPLATES_PATH="/api/v2/sales/invoice-auto-templates";var SALES_DEPOSITS_PATH="/a\
24
+ pi/v2/sales/deposits";var SALES_PURCHASES_PATH="/api/v2/sales/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="/api/v2/sales/supplier-payments";var SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH="/api/v2/sales/supplier-payment-schedules";var SALES_BUSINESS_PLACES_PATH="/api/v2/sales/business-places";var SALES_PAYEES_PATH="/api/v2/sales/payees";var SALES_SEAL_IMPRESSIONS_PATH="/api/v2/sales/seal-impressions";var SALES_PURCHASE_AI_MAPPINGS_PATH="/api/v2/sales/purchase-ai-field-mappings";var SALES_ESTIMATE_NO_RULES_PATH="\
25
+ /api/v2/sales/estimate-no-rules";var SALES_INVOICE_NO_RULES_PATH="/api/v2/sales/invoice-no-rules";var SALES_PURCHASE_NO_RULES_PATH="/api/v2/sales/purchase-no-rules";var SALES_ESTIMATE_FORMATS_PATH="/api/v2/sales/estimate-formats";var SALES_ROUNDING_SETTING_PATH="/api/v2/sales/rounding-setting";var SALES_RECORD_KINDS={estimate:{path:SALES_ESTIMATES_PATH,label:"\u898B\u7A4D"},invoice:{path:SALES_INVOICES_PATH,label:"\u8ACB\u6C42"},contract:{path:SALES_CONTRACTS_PATH,label:"\u53D6\u5F15\u5951\u7D04"},
26
+ "invoice-auto-template":{path:SALES_INVOICE_AUTO_TEMPLATES_PATH,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},deposit:{path:SALES_DEPOSITS_PATH,label:"\u5165\u91D1"},purchase:{path:SALES_PURCHASES_PATH,label:"\u4ED5\u5165"},"supplier-payment":{path:SALES_SUPPLIER_PAYMENTS_PATH,label:"\u652F\u6255"},"supplier-payment-schedule":{path:SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF"},"business-place":{path:SALES_BUSINESS_PLACES_PATH,label:"\u4E8B\
27
+ \u696D\u6240"},payee:{path:SALES_PAYEES_PATH,label:"\u632F\u8FBC\u5148"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\u5370\u5F71"},"purchase-ai-mapping":{path:SALES_PURCHASE_AI_MAPPINGS_PATH,label:"\u4ED5\u5165AI\u30DE\u30C3\u30D4\u30F3\u30B0"},"estimate-no-rule":{path:SALES_ESTIMATE_NO_RULES_PATH,label:"\u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB"},"invoice-no-rule":{path:SALES_INVOICE_NO_RULES_PATH,label:"\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB"},"purchase-no-rule":{path:SALES_PURCHASE_NO_RULES_PATH,
28
+ label:"\u4ED5\u5165\u756A\u53F7\u30EB\u30FC\u30EB"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8"}};var SALES_COMPANIES_PATH="/api/v2/sales/companies";var CUSTOMERS_PATH="/api/v2/customers";var COMPANY_SEARCH_PAGE_LIMIT=100;var COMPANY_SEARCH_MAX_PAGES=10;var CUSTOMER_CHILDREN_PAGE_LIMIT=100;var PROSPECTS_PATH="/api/v2/prospects";var PROSPECT_SEARCH_PAGE_LIMIT=100;var PROSPECT_SEARCH_MAX_PAGES=10;function isExactNumericId(value){return/^[0-9]+$/.
29
+ test(value)&&String(Number(value))===value}function exactCompanyId(ref,label){if(!isExactNumericId(ref.id)){throw new ResolveError(`${label}\u4E00\u89A7\u306E id \u304C\u6574\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${ref.id}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return ref}var ORG_MASTER_LIMIT=1e3;var USER_LIST_MAX_PAGES=100;function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}function str(value){
30
+ return typeof value==="string"&&value.trim()!==""?value:null}function truthyFlag(value){return value===true||value===1}function rawGetVia(client){return async path2=>{try{return{ok:true,status:200,json:await client.request("GET",path2),error:null}}catch(err){if(err instanceof ApiError){return{ok:false,status:err.status,json:err.body,error:err.message}}throw err}}}var TASK_MASTERS={status:{path:"task-statuses",envelope:"data",scope:"task-statuses",label:"\u30B9\u30C6\u30FC\u30BF\u30B9"},type:{path:"\
31
+ 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){this.client=client;this.options=options;this.get=rawGetVia(
32
+ 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}`,
33
+ "\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`,
34
+ 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\
35
+ 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`,
36
+ 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(
37
+ "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(
38
+ 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(
39
+ "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,
40
+ 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].
41
+ 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(
42
+ "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}\
43
+ /${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(
44
+ 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`)}
45
+ 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(
46
+ "\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\
47
+ 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",
48
+ 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(
49
+ "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}`),
50
+ "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};
51
+ 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){
52
+ 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}\
53
+ ?${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\
54
+ \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\
55
+ \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,
56
+ 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(){
57
+ 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(
58
+ 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}\
59
+ ?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async skillCategory(input,flag="--category"){return resolveNamed(input,await this.skillCategories(),{flag,label:"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",scope:TENANT_SCOPE_LABEL})}async skill(input,flag="<\u30B9\u30AD\u30EB>"){return resolveNamed(input,await this.skills(),{flag,label:"\u30B9\u30AD\u30EB",scope:TENANT_SCOPE_LABEL})}async skillsInCategory(categoryId){return this.cached(`skills-in-category-${categoryId}`,
60
+ TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${SKILLS_PATH}?category_id=${encodeURIComponent(categoryId)}`),"\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(row),code:str(row["skill_code"])})))}async qualification(input,flag="<\u8CC7\u683C>"){return resolveNamed(input,await this.qualifications(),{flag,label:"\u8CC7\u683C",scope:TENANT_SCOPE_LABEL})}async qualifications(){return this.cached("qualifications",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(
61
+ await this.get(QUALIFICATIONS_PATH),"\u8CC7\u683C"),"\u8CC7\u683C",row=>({...codedMasterRow(row),code:str(row["abbreviation"])})))}async skillCategories(){return this.cached("skill-categories",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILL_CATEGORIES_PATH),"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA"),"\u30B9\u30AD\u30EB\u30AB\u30C6\u30B4\u30EA",codedMasterRow))}async skills(){return this.cached("skills",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(SKILLS_PATH),
62
+ "\u30B9\u30AD\u30EB"),"\u30B9\u30AD\u30EB",row=>({...codedMasterRow(row),code:str(row["skill_code"])})))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);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(
63
+ res.status,isRecord(res.json)?res.json:null,"GET",WORKER_AGENTS_PATH)}const rows=rawListFrom(res,"items","\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8");return resolveNamed(trimmed,namedFromRows(rows,"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",workerAgentRow),{flag,label:"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",scope:"\u3042\u306A\u305F\u304C\u53C2\u7167\u3067\u304D\u308B\u7BC4\u56F2"})}async domainKnowledge(input,flag="<KB>"){const trimmed=input.
64
+ trim();if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"KB \u306E ID \u304B slug \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(UUID_RE.test(trimmed))return{id:trimmed.toLowerCase(),name:trimmed};if(!DOMAIN_KNOWLEDGE_SLUG_RE.test(trimmed)){throw new UsageError(`KB \u306E ID \u3067\u3082 slug \u3067\u3082\u306A\u3044\u5024\u3067\u3059: ${input}`,"slug \u306F\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF082\u301C63\u6587\u5B57\u30FB\u5148\u982D\u306F\u82F1\u6570\u5B57\uFF09\u3067\u3059\u3002twp knowledge list \u306E id /\
65
+ slug \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}const res=await this.get(DOMAIN_KNOWLEDGES_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",DOMAIN_KNOWLEDGES_PATH)}const rows=rawListFrom(res,"domain_knowledges","\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9");const hit=rows.find(row=>row["slug"]===trimmed);if(hit===void 0){throw new ResolveError(`slug \u304C ${trimmed} \u306E\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08twp knowledge list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002`,
65
66
  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.
66
67
  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,
67
68
  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.
@@ -151,6 +152,6 @@ return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function s
151
152
  const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return rows}function codedMasterRow(row){return{id:str(
152
153
  row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
153
154
  status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.
154
- label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,REDMINE_BASE_PATH,redmineServerPath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,SEGMENTS_PATH,USER_CONTRACT_TYPES_PATH,SKILL_CATEGORIES_PATH,SKILLS_PATH,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,
155
- AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,WORKFLOWS_PATH,REPORTS_PATH,ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,ATTENDANCE_REPORT_MASTER_LABELS,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,
156
- SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
155
+ label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,REDMINE_BASE_PATH,redmineServerPath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,SEGMENTS_PATH,USER_CONTRACT_TYPES_PATH,SKILL_CATEGORIES_PATH,SKILLS_PATH,QUALIFICATIONS_PATH,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,DOMAIN_KNOWLEDGES_PATH,DOMAIN_KNOWLEDGE_SLUG_RE,
156
+ WORKER_AGENTS_PATH,AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,AGENT_SCHEDULES_PATH,WORKFLOWS_PATH,REPORTS_PATH,ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,ATTENDANCE_REPORT_MASTER_LABELS,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,
157
+ SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-3N6GRIXQ.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
4
- resolveNamed}from"./chunk-UAVL2GLZ.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
3
+ import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-ICGIHXBA.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
4
+ resolveNamed}from"./chunk-7APLKLQL.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
5
5
  allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
6
6
  \u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
7
7
  ory","excess_tax_amount"];var ALLOCATION_COLUMNS=["id","invoice_id","invoice_no","invoice_title","invoice_date","allocated_amount","invoice_remaining_amount"];function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function usageOf(op){return`twp deposit ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja\
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{salesAdminForbidden}from"./chunk-5NXO4FRO.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-3N6GRIXQ.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
4
- SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-UAVL2GLZ.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
3
+ import{salesAdminForbidden}from"./chunk-7FJFBIVB.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-ICGIHXBA.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
4
+ SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-7APLKLQL.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
5
5
  "string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
6
6
  trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
7
7
  count_up_num"]??1;const digits=rule["digit_count"];if(typeof current!=="number"||typeof step!=="number"||typeof digits!=="number")return void 0;const width=purchaseFormat&&digits===0?4:digits;const padded=String(current+step).padStart(width,"0");const prefix=rule["prefix"];if(purchaseFormat)return`${prefix===null||prefix===void 0?"2000":text(prefix)}${padded}`;return typeof prefix==="string"&&prefix!==""&&prefix!=="0"?`${prefix}${padded}`:padded}function withNext(spec,row){const next=nextNumber(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{analysisForbidden}from"./chunk-VKIFQOWX.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{analysisForbidden}from"./chunk-LWJI22LF.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
4
4
  return ANALYSIS_FORBIDDEN(body)}var FORBIDDEN=budgetForbidden;var EDIT_HINT="\u76EE\u6A19\u306E\u8A2D\u5B9A\u30FB\u30B3\u30D4\u30FC\u30FB\u53D6\u308A\u8FBC\u307F\u306F\u3001\u5168\u4F53\u7BA1\u7406\u8005\u304B\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u3067\u304D\u307E\u3059\u3002\u6309\u5206\u306F\u305D\u308C\u306B\u52A0\u3048\u3066\u3001\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u3082\u3067\u304D\u307E\u3059\n\uFF08\u3069\u3061\u3089\u3082\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002";
5
5
  var YEAR_MIN=2e3;var YEAR_MAX=2100;var IMPORT_MAX_BYTES=2048*1024;var SET_FILE_MAX_BYTES=4*1024*1024;var AMOUNT_MAX=999999999999;var SHOWN_OVERWRITES=24;var BOM=new RegExp(`^${String.fromCharCode(65279)}`);function usageOf(op){return`twp budget ${op} help`}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u306A\u3057\uFF09"}function noArgs(input,op){if(input.
6
6
  args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}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 dataRecord(body,what){const data=envelope(body,what)["data"];
@@ -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-5NXO4FRO.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-7FJFBIVB.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
4
4
  ["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
5
5
  nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
6
6
  "\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{featureLicenseGuidance}from"./chunk-3N6GRIXQ.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{isExactNumericId}from"./chunk-UAVL2GLZ.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
3
+ import{featureLicenseGuidance}from"./chunk-ICGIHXBA.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{isExactNumericId}from"./chunk-7APLKLQL.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
4
4
  "\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u51FA\u529B\u3067\u304D\u307E\u3059\uFF09`}return void 0}var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",noExample:"EST0000063",
5
5
  defaultKind:"estimate",kinds:{estimate:{segment:"estimate",label:"\u898B\u7A4D\u66F8"},order:{segment:"order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",noExample:"INV0000170",defaultKind:"invoice",kinds:{invoice:{segment:"invoice",label:"\u8ACB\u6C42\u66F8"},delivery:{segment:"delivery",label:"\u7D0D\u54C1\u66F8"},inspection:{segment:"inspection",label:"\u691C\u53CE\u66F8"}}};var PURCHASE={
6
6
  name:"purchase",label:"\u4ED5\u5165",defaultKind:"order",kinds:{order:{segment:"purchase-order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"purchase-order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
@@ -1,9 +1,10 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{placeholderTaskKey,stepToItem}from"./chunk-QS5VWTI3.js";import{localDate}from"./chunk-GAXJPIKO.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-5KAWCLYN.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs2 from"fs";import path2 from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
3
+ import{placeholderTaskKey,stepToItem}from"./chunk-OG7FD7SR.js";import{redactLoopOutput}from"./chunk-JUJSF5ZG.js";import{localDate}from"./chunk-GAXJPIKO.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-5KAWCLYN.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs2 from"fs";import path2 from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
4
4
  floor((now.getTime()-ts)/6e4)}return null}function inflightEntries(items,now=new Date,staleHours=INFLIGHT_STALE_HOURS){const staleMinutes=staleHours*60;const byKey=new Map;for(const item of items){const key=(item.task_key??"").trim();if(!key)continue;const ageMinutes=ageMinutesOf(item,now);if(ageMinutes!==null&&ageMinutes>staleMinutes)continue;const entry={key,runner:item.runner_id??"-",ageMinutes,label:(item.label??"").slice(0,60)};const prev=byKey.get(key);if(!prev||(entry.ageMinutes??-1)>(prev.
5
- ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}import fs from"fs";import path from"path";async function createItem(api,body){const res=await api.create(body);if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"i\
6
- tems");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){const re=new RegExp(`${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);return items.some(it=>re.test(`${it.label??""}
5
+ ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}import fs from"fs";import path from"path";async function createItem(api,body){const res=await api.create(redactItemBody(body));if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function redactItemBody(body){const out={...body};for(const key of["prompt","label"]){if(typeof out[key]==="string")
6
+ out[key]=redactLoopOutput(out[key])}return out}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"items");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){
7
+ const re=new RegExp(`${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);return items.some(it=>re.test(`${it.label??""}
7
8
  ${it.prompt??""}
8
9
  ${it.task_key??""}`))}function localTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");const offsetMin=-at.getTimezoneOffset();const sign=offsetMin>=0?"+":"-";const abs=Math.abs(offsetMin);return`${at.getFullYear()}-${p2(at.getMonth()+1)}-${p2(at.getDate())}T${p2(at.getHours())}:${p2(at.getMinutes())}:${p2(at.getSeconds())}${sign}${p2(Math.trunc(abs/60))}${p2(abs%60)}`}var ReleaseOutcomeLog=class{constructor(file){this.file=file}file;record(result,phase,reason,ai){const clean=reason.replace(
9
10
  /[\t\n]/g," ").slice(0,200);const line=`${localTimestamp()} ${result} ${phase||"unknown"} ${ai||"unknown"} ${clean}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-UAVL2GLZ.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
3
+ import{isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-7APLKLQL.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
4
4
  ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
5
5
  _\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
6
6
  return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-ZWPF6UXE.js";import{inspectLocalFile}from"./chunk-5KJ5OIKI.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-5ZPI5YQC.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-UAVL2GLZ.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";
3
+ import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-3GYJG6DA.js";import{inspectLocalFile}from"./chunk-5KJ5OIKI.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NNDUIAGN.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-7APLKLQL.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";
4
4
  import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
5
5
  document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
6
6
  urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={
@@ -0,0 +1,19 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{REDACTED,redactSecrets}from"./chunk-LDBYJPRD.js";var ENV_SECRET_ASSIGNMENT=/\b([A-Z0-9_]{0,128}?(?:TOKEN|SECRET|PASSWORD|PASSWD|API_?KEY|CREDENTIALS?|PRIVATE_KEY)(?:_[A-Z0-9_]{0,128})?=)(?:\\?"(?!\$)[^"\n]+?\\?"|\\?'(?!\$)[^'\n]+?\\?'|(?![$(])[^\s"'`;&)]{8,})/g;var PEM_BEGIN=/-----BEGIN [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_END=/-----END [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_UNCLOSED_BODY=/(?:(?:\r?\n|\\(?:r\\)?n)[ \t]*(?:(?:Proc-Type|DEK-Info):[^\n\\]*|(?:[A-Za-z0-9+/]{16,}={0,2}|[A-Za-z0-9+/]*={1,2})[ \t]*(?=[\r\n"\\]|$)))*/y;function redactPemPrivateKeys(text){
4
+ if(!text.includes("PRIVATE KEY-----"))return text;let out="";let last=0;let end=null;let noMoreEnd=false;PEM_BEGIN.lastIndex=0;for(let begin=PEM_BEGIN.exec(text);begin!==null;begin=PEM_BEGIN.exec(text)){const after=begin.index+begin[0].length;if(!noMoreEnd&&(end===null||end.index<after)){PEM_END.lastIndex=after;end=PEM_END.exec(text);noMoreEnd=end===null}let stop;if(end!==null&&!noMoreEnd){stop=end.index+end[0].length}else{PEM_UNCLOSED_BODY.lastIndex=after;PEM_UNCLOSED_BODY.exec(text);stop=Math.
5
+ max(after,PEM_UNCLOSED_BODY.lastIndex)}out+=text.slice(last,begin.index)+REDACTED;last=stop;PEM_BEGIN.lastIndex=stop}return out+text.slice(last)}var KNOWN_TOKEN_PATTERNS=[/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|(?:AKIA|ASIA)[0-9A-Z]{16}|npm_[A-Za-z0-9]{30,}|xox[abprs]-[A-Za-z0-9-]{10,})\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g];var URL_USERINFO=/((?<![A-Za-z0-9+.-])[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/@:"'`]+:[^\s/"'`]+@/gi;
6
+ var HEADER_TOKEN="[^\\s\"'`\\\\\\u0080-\\uFFFF]+";var HEADER_SEP=`(\\\\?["']?[ \\t]*:[ \\t]*\\\\?["']?)`;var AUTH_SCHEME="(?:basic|bearer|token|digest|negotiate|ntlm|aws4-hmac-sha256)";var HEADER_SECRET=new RegExp(`(?<![\\w-])(x-api-key|x-auth-token|x-vercel-protection-bypass)${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${HEADER_TOKEN}`,"gi");var AUTHORIZATION_HEADER=new RegExp(`(?<![\\w-])((?:proxy-)?authorization)${HEADER_SEP}(?!(?:${AUTH_SCHEME}[ \\t]+)?(?:[$(]|\\*\\*\\*\uFF08))(${AUTH_SCHEME}[ \\t]+)\
7
+ ?[^\\s"'\`\\\\\\u0080-\\uFFFF][^\\n"'\`\\\\\\u0080-\\uFFFF]*`,"gi");var COOKIE_TOKEN="[^\\s\"'`\\\\;\\u0080-\\uFFFF]+";var COOKIE_HEADER=new RegExp(`(?<![\\w-])((?:set-)?cookie)${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${COOKIE_TOKEN}(?:[ \\t]*;[ \\t]*${COOKIE_TOKEN})*`,"gi");var AWS_CREDENTIALS_FILE=/\b(aws_(?:secret_access_key|session_token|security_token)[ \t]*[=:][ \t]*["']?)(?![$(])[^\s"'`\\]+/gi;function redactLoopOutput(text){if(text==="")return text;let out=redactSecrets(text).replace(URL_USERINFO,
8
+ `$1${REDACTED}@`).replace(AUTHORIZATION_HEADER,(_m,name,sep,scheme)=>`${name}${sep}${scheme??""}${REDACTED}`).replace(HEADER_SECRET,`$1$2${REDACTED}`).replace(COOKIE_HEADER,`$1$2${REDACTED}`).replace(AWS_CREDENTIALS_FILE,`$1${REDACTED}`).replace(ENV_SECRET_ASSIGNMENT,(match,name)=>{const value=match.slice(name.length);const quote=/^\\?["']/.exec(value)?.[0]??"";return`${name}${quote}${REDACTED}${quote}`});for(const pattern of KNOWN_TOKEN_PATTERNS)out=out.replace(pattern,REDACTED);out=redactPemPrivateKeys(
9
+ out);return out}var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var ClaudeStreamRenderer=class{constructor(now=()=>new Date){this.now=now}now;toolNames=new Map;toolCount=0;result={subtype:null,isError:null,numTurns:null,costUsd:null,durationMs:null,tokensIn:null,tokensOut:null,rateLimited:false,resetsAt:null,finalText:""};push(line){const trimmed=line.trim();if(trimmed==="")return[];let event;try{const parsed=JSON.parse(trimmed);if(parsed===null||typeof parsed!=="\
10
+ object"||Array.isArray(parsed)){return[line]}event=parsed}catch{return[line]}switch(event["type"]){case"rate_limit_event":return this.onRateLimit(event);case"assistant":return this.onAssistant(event);case"user":return this.onUser(event);case"result":return this.onResult(event);default:return event["type"]==="system"?[]:[line]}}sawRateLimit(){return this.result.rateLimited}lastRateLimitNote="";onRateLimit(event){const info=event["rate_limit_info"];if(info===null||typeof info!=="object")return[];const rec=info;
11
+ const status=typeof rec["status"]==="string"?rec["status"]:"";const resets=typeof rec["resetsAt"]==="number"?rec["resetsAt"]:null;if(status==="")return[];const at=isSaneEpochSec(resets)?` resets=${new Date(resets*1e3).toISOString()}`:"";if(status.startsWith("allowed")){if(status==="allowed")return[];const seen=`${status}|${resets??""}`;if(seen===this.lastRateLimitNote)return[];this.lastRateLimitNote=seen;return[this.line(`\u2139\uFE0F \u4E0A\u9650\u306B\u63A5\u8FD1\uFF08status=${status}${at}\uFF09\u2014 \u5B9F\
12
+ \u884C\u306F\u7D99\u7D9A\u3057\u307E\u3059`)]}if(resets!==null)this.result.resetsAt=resets;this.result.rateLimited=true;return[this.line(`\u26A0\uFE0F \u30EC\u30FC\u30C8\u30EA\u30DF\u30C3\u30C8\u901A\u77E5: status=${status}${at}`)]}onAssistant(event){const out=[];for(const block of contentBlocks(event)){if(block.type==="tool_use"){const name=typeof block.name==="string"?block.name:"tool";if(typeof block.id==="string")this.toolNames.set(block.id,name);this.toolCount+=1;out.push(this.line(`>> ${name}${toolDetail(
13
+ name,block.input)}`))}else if(block.type==="text"&&typeof block.text==="string"&&block.text.trim()!==""){for(const l of block.text.trim().split("\n"))out.push(this.line(` \u{1F4AC} ${l}`))}}return out}onUser(event){const out=[];for(const block of contentBlocks(event)){if(block.type!=="tool_result")continue;const id=typeof block.id==="string"?block.id:"";const useId=typeof block.tool_use_id==="string"?block.tool_use_id:id;const name=this.toolNames.get(useId)??"tool";this.toolNames.delete(useId);
14
+ const isError=block.is_error===true;const detail=isError?firstErrorLine(block):"";out.push(this.line(`${isError?"!!":"<<"} ${name}${detail}`))}return out}onResult(event){const r=this.result;r.subtype=typeof event["subtype"]==="string"?event["subtype"]:null;r.isError=typeof event["is_error"]==="boolean"?event["is_error"]:null;r.numTurns=typeof event["num_turns"]==="number"?event["num_turns"]:null;r.costUsd=typeof event["total_cost_usd"]==="number"?event["total_cost_usd"]:null;r.durationMs=typeof event["\
15
+ duration_ms"]==="number"?event["duration_ms"]:null;const usage=event["usage"];if(usage!==null&&typeof usage==="object"&&!Array.isArray(usage)){const u=usage;const num=key=>typeof u[key]==="number"?u[key]:0;const hasIn=["input_tokens","cache_creation_input_tokens","cache_read_input_tokens"].some(k=>typeof u[k]==="number");r.tokensIn=hasIn?num("input_tokens")+num("cache_creation_input_tokens")+num("cache_read_input_tokens"):null;r.tokensOut=typeof u["output_tokens"]==="number"?u["output_tokens"]:null}
16
+ const out=[this.line(`\u5B8C\u4E86 (turns: ${r.numTurns??0}, tools: ${this.toolCount}, ${Math.round((r.durationMs??0)/1e3)}s, $${(r.costUsd??0).toFixed(3)})`)];const text=typeof event["result"]==="string"?event["result"]:"";r.finalText=text;if(text!==""){out.push(FINAL_REPORT_BEGIN,text,FINAL_REPORT_END)}return out}line(msg){const d=this.now();const ts=`${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;return` [${ts}] ${msg}`}};function firstErrorLine(block){const content=block.
17
+ content;const text=typeof content==="string"?content:Array.isArray(content)?content.map(c=>c!==null&&typeof c==="object"&&typeof c.text==="string"?c.text:"").join(" "):"";const first=text.trim().split("\n")[0]??"";return first===""?"":` | ${redactLoopOutput(first).slice(0,120)}`}function contentBlocks(event){const message=event["message"];if(message===null||typeof message!=="object")return[];const content=message["content"];if(!Array.isArray(content))return[];return content.filter(b=>b!==null&&typeof b===
18
+ "object")}function toolDetail(name,input){if(input===void 0||input===null)return"";const str=k=>typeof input[k]==="string"?input[k]:"";if(name==="Bash"){const cmd=redactLoopOutput(str("command"));return cmd===""?"":` $ ${cmd.slice(0,80)}${cmd.length>80?"...":""}`}if(name==="Read"||name==="Write"||name==="Edit"){const p=str("file_path");return p===""?"":` ${p}`}if(name==="Grep"||name==="Glob"){const p=str("pattern");return p===""?"":` '${p}'`}if(name==="Skill"){const s=str("skill");return s===""?
19
+ "":` /${s}`}if(name.includes("mcp__")){const args=[];for(const k of["task_id","project_id","status_id","issue_id"]){const v=str(k);if(v!=="")args.push(`${k}=${v.slice(0,16)}`)}return args.length===0?"":` (${args.slice(0,2).join(", ")})`}return""}function pad(n){return String(n).padStart(2,"0")}function isSaneEpochSec(v){return v!==null&&Number.isFinite(v)&&Math.abs(v)<864e10}export{redactLoopOutput,FINAL_REPORT_BEGIN,FINAL_REPORT_END,ClaudeStreamRenderer};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{hoursMinutes}from"./chunk-EFYFNGBR.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{hoursMinutes}from"./chunk-UVU7JXCG.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
4
4
  var PAGE_GUIDANCE=`\u3053\u306E\u5206\u6790\u30DA\u30FC\u30B8\u306E\u95B2\u89A7\u5BFE\u8C61\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u5BFE\u8C61\u3078\u306E\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002${ACCESSIBLE_PAGES_HINT}`;var PAGE_DENIED_MARK="\u5206\u6790\u30DA\u30FC\u30B8";function analysisForbidden(levelGuidance2){return body=>{if(body?.error==="permission_denied"){const text=body.error_description??"";
5
5
  if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053\u306E\u6A5F\u80FD"))return LICENSE_GUIDANCE;return void 0}if(body?.error==="forbidden")return levelGuidance2;return void 0}}function levelGuidance(page,features){return`${page}\u3092\u958B\u304F\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5206\u6790\u62C5\u5F53\u8005\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F${features}\u306E\u6A29\u9650\uFF08\u300C\u306A\u3057\u300D\u4EE5\u5916\uFF09\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}
6
6
  var FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MONTH_FLAG={name:"--month",summary:"1\u304B\u6708\u3060\u3051\uFF08YYYY-MM\uFF09\u3002--from / --to \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY-MM>"};var YEAR_FLAG={name:"--year",summary:"1\u5E74\u5206\uFF081\u301C12\u6708\u30FBYYYY\uFF09\u3002--from \
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-ZMVHGXTO.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{WORKFLOWS_PATH}from"./chunk-UAVL2GLZ.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
3
+ import{CRITERION_RE,checkCounts,checksOf,envelope,reasonsMap,reviewOf,withoutResult}from"./chunk-QO2QPN3M.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{WORKFLOWS_PATH}from"./chunk-7APLKLQL.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,
4
4
  pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INSTANCES_PATH=`${WORKFLOWS_PATH}/instances`;var COMMENT_MAX_CHARS=2e3;var IN_FLIGHT=new Set(["pending","processing"]);var GET_USAGE="twp workflow ai-review get <\u7533\u8ACBID>";var UPDATE_USAGE="twp workflow ai-review-comment update <\u6307\u6458ID> --instance <\u7533\u8ACBID> (--text <\u672C\u6587> | --text-file <\u30D1\u30B9>)";var DELETE_USAGE="twp workflow ai-review-comment delete <\u6307\u6458ID> --instance <\u7533\u8ACBID> --yes";function instanceUuid(raw,usage,what){const id=raw?.trim()??
5
5
  "";if(id==="")throw new UsageError(`\u7533\u8ACBID \u3092${what}\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(!UUID_RE.test(id))throw new UsageError(`\u7533\u8ACBID \u306F UUID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`${usage}
6
6
  \u7533\u8ACBID \u306F twp workflow approval pending \u306E id \u5217\u3067\u3059\u3002`);return id}function workflowReviewPath(instanceId){return`${INSTANCES_PATH}/${encodeURIComponent(instanceId)}/ai-review`}function reviewTarget(input){if(input.args.length>1)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${input.args.slice(1).join(" ")}`,GET_USAGE);return workflowReviewPath(instanceUuid(input.args[0],GET_USAGE,"\u4F4D\u7F6E\u5F15\u6570"))}function commentTarget(input,usage){
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-332Y5OGZ.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-ZWPF6UXE.js";import{inspectLocalFile}from"./chunk-5KJ5OIKI.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-5ZPI5YQC.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-UAVL2GLZ.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
3
+ import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-IMXXECCD.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-3GYJG6DA.js";import{inspectLocalFile}from"./chunk-5KJ5OIKI.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NNDUIAGN.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-7APLKLQL.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
4
4
  import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
5
5
  {kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","estimate_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=[
6
6
  "version_number","file_name","file_size","is_current","created_by_name","created_at"];var ESTIMATE_FLAG={name:"--estimate",summary:"\u898B\u7A4D\u306E ID\uFF08twp estimate list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u898B\u7A4DID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{ORG_MASTER_LIMIT}from"./chunk-UAVL2GLZ.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
3
+ import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{ORG_MASTER_LIMIT}from"./chunk-7APLKLQL.js";import{ULID_RE,UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var CLEAR_DATE="none";function placeholderOf(field){switch(field.kind){case"text":return`<${field.label}>`;case"integer":return"<\u6574\u6570>";case"number":return"<\u6570\u5024>";case"time":return"<HH:MM>";case"weekdays":return"<\u65E5\u6708\u706B\u6C34\u6728\u91D1\u571F\u306E0/1\u30927\u6841>";case"boolean":return"<true|false>";case"enum":return`<${field.values.join("|")}>`;case"date":return`<YYYY-MM-DD|${CLEAR_DATE}>`;case"ref":return field.placeholder}}function createFlags(fields){return fields.
4
4
  map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)}))}function updateFlags(fields){const flags=[];for(const field of fields){flags.push({name:field.flag,summary:field.summary,takesValue:true,placeholder:placeholderOf(field)});if(field.kind==="ref")flags.push({name:field.clearFlag,summary:field.clearSummary,takesValue:false})}return flags}function integerValue(field,raw){const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.
5
5
  NaN;const tooLarge=field.max!==void 0&&value>field.max;if(!Number.isSafeInteger(value)||value<field.min||tooLarge){const range=field.max!==void 0?`${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B`:`${field.min} \u4EE5\u4E0A`;throw new UsageError(`${field.flag} \u306F ${range}\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function numberValue(field,raw){
6
6
  const trimmed=raw.trim();const value=/^\d+(\.\d+)?$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isFinite(value)||value<field.min||value>field.max){throw new UsageError(`${field.flag} \u306F ${field.min} \u4EE5\u4E0A ${field.max} \u4EE5\u4E0B\u306E\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`${field.label}\u3092\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}var TIME_RE=/^\d{2}:\d{2}$/;function timeValue(flag,raw){const value=raw.
@@ -0,0 +1,16 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-JUJSF5ZG.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
+ 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
+ "\\"){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
+ '"')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(
7
+ text,open);if(close>at){const plan=tryParsePlan(text.slice(open,close+1));if(plan)return plan}if(open===0)break}}return null}function finalReports(text){const re=new RegExp(`${FINAL_REPORT_BEGIN}\\n?([\\s\\S]*?)${FINAL_REPORT_END}`,"g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out.reverse()}function extractFrom(text){for(const tag of["json:execution-plan","json"]){for(const block of fencedBlocks(text,tag).reverse()){const plan=tryParsePlan(block);if(plan)
8
+ return plan}}const resp=extractGeminiEnvelope(text);if(resp!==null){for(const block of[...fencedBlocks(resp,"json:execution-plan"),...fencedBlocks(resp,"json")].reverse()){const plan2=tryParsePlan(block);if(plan2)return plan2}const plan=tryParsePlan(resp);if(plan)return plan}const whole=tryParsePlan(text.trim());if(whole)return whole;return lastStepsObject(text)}function extractPlanJson(rawText){const text=rawText.replace(/^\s*\[\d{2}:\d{2}:\d{2}\][ \t]*(?:💬 ?)?/gmu,"");for(const report of finalReports(
9
+ text)){const plan=extractFrom(report);if(plan)return plan}return extractFrom(text)}function ledgerTaskKey(args){const key=extractLeadingTaskKey(args);if(key.length>LEDGER_TASK_KEY_MAX)return"";if(CONTROL_CHAR_RE.test(key))return"";if(FLAG_TOKEN_RE.test(key))return"";return key}function placeholderTaskKey(args){for(const token of args.split(/\s+/)){if(token==="")continue;if(token.startsWith("-"))continue;const m=/^[A-Z]{2,}[A-Z0-9]*-([A-Za-z0-9_<>{}]*)$/.exec(token);if(!m)return null;if(/^\d+$/.test(
10
+ m[1]??""))return null;return token}return null}function stepToItem(step,assign,prefix=skillPrefix()){const skill=typeof step.skill==="string"?step.skill.trim():"";if(!skill)return null;const args=redactLoopOutput((step.args??"").trim());const priority=step.priority??"P2";const prompt=skillCommand(skill,args,prefix);let label=redactLoopOutput((step.label??"").trim());const own=skillCommand(skill,"",prefix);const promptLike=prefix===""?label===own||label.startsWith(`${own} `):label.startsWith(`/${prefix}`);
11
+ if(!label||promptLike||label.startsWith("[P"))label=prompt;const taskKey=ledgerTaskKey(args);const category=assign?.categoryForSkill(skill)??step.ai_category??"complex";const display=taskKey&&!label.includes(taskKey)?`[${priority}] ${taskKey} ${label} #ai:${category}`:`[${priority}] ${label} #ai:${category}`;const item={label:display.slice(0,200),prompt,task_key:taskKey};const platforms=normalizeRequiredPlatforms(step.required_platforms);if(platforms.length>0)item.required_platforms=platforms;if(assign!==
12
+ void 0){const ai=assign.selectPrimary(category,skill,priority,display);if(ai!=="")item.ai_type=ai}return item}function parsePlanExcludeKeys(prefetchSection){const m=/OPS_PLAN_EXCLUDE_KEYS\s+([^\s]*)\s+-->/.exec(prefetchSection);const keys=new Set;if(!m||!m[1])return keys;for(const raw of m[1].split(",")){const key=raw.trim();if(key!=="")keys.add(key)}return keys}function excludedKeyInArgs(args,excluded){if(excluded.size===0)return null;for(const key of[...excluded].sort()){const re=new RegExp(`(\
13
+ ?<![A-Za-z0-9-])${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);if(re.test(args))return key}return null}function parseOpsCount(prefetchSection,field){const marker=/OPS_COUNTS\s+([^>]*?)-->/.exec(prefetchSection);if(!marker||!marker[1])return null;const escaped=field.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const hit=new RegExp(`(?:^|\\s)${escaped}=(-?\\d+)(?:\\s|$)`).exec(marker[1]);if(!hit||hit[1]===void 0)return null;const n=Number.parseInt(hit[1],10);if(!Number.isFinite(n)||n<0)return null;
14
+ return n}function releaseDeployDropReason(verifyBacklog,devVerifyPlanned){if(verifyBacklog===null){return"\u52D5\u4F5C\u78BA\u8A8D\u306E\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\uFF08\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u30EA\u30EA\u30FC\u30B9\u306F\u898B\u9001\u308B\uFF09"}if(verifyBacklog>devVerifyPlanned){return`\u52D5\u4F5C\u78BA\u8A8D${verifyBacklog}\u4EF6 > \u8A08\u753B\u5185dev-verify${devVerifyPlanned}\u4EF6\uFF08Phase 1\u306E0\u4EF6\u898B\u8FBC\u307F\u304C\u7ACB\u305F\u306A\u3044\uFF09`}
15
+ return null}function duplicateTaskKeyDropReason(enqueuedKeys,taskKey){if(!taskKey)return null;if(!enqueuedKeys.has(taskKey))return null;return`${taskKey} \u306F\u672C\u8A08\u753B\u3067\u65E2\u306B\u6295\u5165\u6E08\u307F\uFF08\u540C\u4E00\u30AD\u30FC\u306F1\u8A08\u753B1\u4EF6\uFF09`}var NO_ZERO_TARGET_GATES={};function zeroTargetDropReasons(prefetchSection,gates=NO_ZERO_TARGET_GATES){const reasons=new Map;for(const[skill,gate]of Object.entries(gates)){const n=parseOpsCount(prefetchSection,gate.field);
16
+ if(n===null)reasons.set(skill,`${gate.label}\u4EF6\u6570\u304C\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u898B\u9001\u308A`);else if(n===0)reasons.set(skill,`${gate.label}0\u4EF6\u306E\u305F\u3081\u5BFE\u8C61\u306A\u3057`)}return reasons}export{extractPlanJson,placeholderTaskKey,stepToItem,parsePlanExcludeKeys,excludedKeyInArgs,parseOpsCount,releaseDeployDropReason,duplicateTaskKeyDropReason,zeroTargetDropReasons};