@tocca-systems/twp-cli 0.63.0 → 0.65.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 (98) hide show
  1. package/CHANGELOG.public.md +16 -0
  2. package/README.md +90 -4
  3. package/dist/{agent-TLKSUAYA.js → agent-HM4FHCJT.js} +1 -1
  4. package/dist/{agent-loop-6FS7FFXY.js → agent-loop-VC47FGPR.js} +2 -2
  5. package/dist/{ai-dispatch-HRXPRWCT.js → ai-dispatch-GN5ZQPHC.js} +2 -2
  6. package/dist/analysis-NEZXCJGT.js +5 -0
  7. package/dist/{announcement-LNG32J6X.js → announcement-BEPIDOMO.js} +1 -1
  8. package/dist/{api-command-SFJFE2PE.js → api-command-HP3ABNDG.js} +4 -4
  9. package/dist/{app-N2ZLD6HG.js → app-C4TUNEAO.js} +4 -4
  10. package/dist/{attendance-correct-3C2BHJQG.js → attendance-correct-ZEWRXHUU.js} +2 -2
  11. package/dist/{attendance-lists-VMOIE3XO.js → attendance-lists-BXAHFZYY.js} +2 -2
  12. package/dist/{backlog-D5LZIEN4.js → backlog-UD226SVD.js} +38 -28
  13. package/dist/{budget-RENLLCYQ.js → budget-6HOZNG3E.js} +2 -2
  14. package/dist/capacity-report-command-A6RYG2NV.js +15 -0
  15. package/dist/{chunk-UVCIVMT6.js → chunk-2G6ZZPME.js} +2 -2
  16. package/dist/{chunk-T5CRU4DB.js → chunk-5AQ2JPIS.js} +1 -1
  17. package/dist/{chunk-52V2AZ7D.js → chunk-AYE4DF6J.js} +1 -1
  18. package/dist/{chunk-EWRZ4GSN.js → chunk-BTN4M7Y5.js} +2 -2
  19. package/dist/{chunk-S5DEP2HA.js → chunk-BXTAAF5F.js} +1 -1
  20. package/dist/{chunk-2B7A3OY7.js → chunk-CGHGQAEM.js} +14 -52
  21. package/dist/{chunk-7LFYDASU.js → chunk-ENVASCZU.js} +2 -2
  22. package/dist/{chunk-PIB6MGG5.js → chunk-FAHDBWW2.js} +1 -1
  23. package/dist/{chunk-4PROMNXI.js → chunk-FBBKRVVS.js} +1 -1
  24. package/dist/{chunk-LMYOCAEY.js → chunk-FTAKYID7.js} +1 -1
  25. package/dist/{chunk-WBSAJ3P2.js → chunk-G26GIBRL.js} +1 -1
  26. package/dist/chunk-G4TZFGNN.js +41 -0
  27. package/dist/{chunk-EO3M43TN.js → chunk-G6RLNOIZ.js} +1 -1
  28. package/dist/{chunk-NXWXTUU6.js → chunk-RSATLT5H.js} +1 -1
  29. package/dist/{chunk-CSXCHRYE.js → chunk-SCU74Z4U.js} +16 -13
  30. package/dist/chunk-SPZ3GBYC.js +16 -0
  31. package/dist/{chunk-QEWCTKPV.js → chunk-UODNIEO2.js} +1 -1
  32. package/dist/chunk-UUP4X3WH.js +97 -0
  33. package/dist/{chunk-4ZREAAP4.js → chunk-WG6NCT4L.js} +18 -17
  34. package/dist/{chunk-T4YEQWJO.js → chunk-WHCMWXLC.js} +2 -2
  35. package/dist/{chunk-BZJJAJGN.js → chunk-XNOZJ6T2.js} +1 -1
  36. package/dist/{chunk-SLD6FCXA.js → chunk-Y2J4M2MG.js} +1 -1
  37. package/dist/chunk-YASL34FY.js +11 -0
  38. package/dist/chunk-YYURQG4E.js +4 -0
  39. package/dist/{chunk-HEQCEFAW.js → chunk-Z2I5BGXV.js} +1 -1
  40. package/dist/{chunk-E3KMIBSP.js → chunk-ZJW3GBE5.js} +57 -18
  41. package/dist/{chunk-MYWDL3WX.js → chunk-ZSPWHEBL.js} +44 -37
  42. package/dist/cli.js +82 -10
  43. package/dist/{commands-6QNMVCU3.js → commands-2FOGOL65.js} +97 -149
  44. package/dist/{commands-WIQVCMQE.js → commands-EK3EYLQH.js} +1 -1
  45. package/dist/{company-F3IGQMOJ.js → company-MUGKJNY3.js} +2 -2
  46. package/dist/{completion-MUSSUG6N.js → completion-DGPGHQNL.js} +4 -3
  47. package/dist/{contract-OWR27GIO.js → contract-DJJQBAWX.js} +2 -2
  48. package/dist/{department-3QDHMZ5P.js → department-RMZ72N6B.js} +1 -1
  49. package/dist/{deposit-IPYESXIQ.js → deposit-45Y3POXT.js} +1 -1
  50. package/dist/{estimate-4P67OZWB.js → estimate-HTAF6FZT.js} +3 -3
  51. package/dist/{evaluation-ZA23GR7P.js → evaluation-J634U7JQ.js} +1 -1
  52. package/dist/{expense-GEOAM7B3.js → expense-EVNQ653C.js} +1 -1
  53. package/dist/fiscal-year-MVOGDAIP.js +17 -0
  54. package/dist/{inquiry-3SCMJOEM.js → inquiry-XO5R47OO.js} +1 -1
  55. package/dist/{invoice-ONTG53HY.js → invoice-WE2SOMYN.js} +3 -3
  56. package/dist/{job-title-OQQH5W6C.js → job-title-3CGRQILF.js} +1 -1
  57. package/dist/{knowledge-IX7AZIBJ.js → knowledge-X3FGXIBL.js} +1 -1
  58. package/dist/{leave-7HMMZPCR.js → leave-IFYBLQBF.js} +3 -3
  59. package/dist/{logout-guard-GQBF3GQH.js → logout-guard-S2PVXK4V.js} +1 -1
  60. package/dist/{media-4RUOR6LY.js → media-X32Y2MOY.js} +3 -3
  61. package/dist/{notification-ZT23M4R6.js → notification-MHYSQKYZ.js} +1 -1
  62. package/dist/{oneshot-4NIS4J4S.js → oneshot-VL45DNR7.js} +1 -1
  63. package/dist/{outlook-AAS5DXYQ.js → outlook-YG7GFF44.js} +1 -1
  64. package/dist/{plan-submit-AWMD7XOY.js → plan-submit-CUVVYDTN.js} +2 -1
  65. package/dist/{position-HWBHYAD2.js → position-6UC7X2BJ.js} +1 -1
  66. package/dist/{project-3ROID2HA.js → project-LG47ZCEZ.js} +1 -1
  67. package/dist/{prospect-7B5UWFLH.js → prospect-FEU3WQYN.js} +2 -2
  68. package/dist/{purchase-QVINV4TM.js → purchase-44B2NOOB.js} +3 -3
  69. package/dist/{receivable-66MYAIVR.js → receivable-NQNZ2B6B.js} +1 -1
  70. package/dist/redmine-T3JDIH37.js +35 -0
  71. package/dist/{registry-4V3YNENU.js → registry-LBL4AOZW.js} +1 -1
  72. package/dist/{report-XFTM4GCX.js → report-GJK2YXVO.js} +1 -1
  73. package/dist/{run-J7ACNZ3D.js → run-RLV6W5JA.js} +2 -2
  74. package/dist/{sales-ai-review-IVRISSWX.js → sales-ai-review-PUJCOMP6.js} +1 -1
  75. package/dist/{sales-master-BGVF2AZL.js → sales-master-GRR4WKLO.js} +3 -3
  76. package/dist/{sales-numbering-4423JWN6.js → sales-numbering-IUYAABSM.js} +1 -1
  77. package/dist/{schedule-command-R5KTFAVZ.js → schedule-command-ZX5WNSAC.js} +1 -1
  78. package/dist/{search-TMROBRYD.js → search-N5UE5CUL.js} +1 -1
  79. package/dist/segment-FQHY6DVH.js +6 -0
  80. package/dist/server-settings-77MPN3UN.js +3 -0
  81. package/dist/{server-skills-IFTDV3IQ.js → server-skills-KX236POI.js} +1 -1
  82. package/dist/{setup-MUPUY2AX.js → setup-PF2VH2TW.js} +1 -1
  83. package/dist/{skill-S7EPMW5Z.js → skill-PWCJCIQO.js} +1 -1
  84. package/dist/{supplier-payment-O7GZSKGD.js → supplier-payment-HTENSEXJ.js} +2 -2
  85. package/dist/{support-U3VY5JI5.js → support-DOWAY63P.js} +1 -1
  86. package/dist/{task-EQBPQ7H4.js → task-OMYFPWQZ.js} +3 -3
  87. package/dist/{teams-GPJ6HMIX.js → teams-AUFHZRDH.js} +1 -1
  88. package/dist/{user-XYUB54QT.js → user-C7UKUPGT.js} +2 -2
  89. package/dist/user-contract-type-DO576EHJ.js +32 -0
  90. package/dist/{worker-agent-VPRWBAWG.js → worker-agent-OBYRYPLC.js} +1 -1
  91. package/dist/{workflow-GMP6W5EF.js → workflow-C2BEVHQ2.js} +1 -1
  92. package/package.json +1 -1
  93. package/dist/analysis-XO3WRAJR.js +0 -4
  94. package/dist/chunk-AT432SCP.js +0 -15
  95. package/dist/chunk-PNLP5SXG.js +0 -10
  96. package/dist/chunk-QHX5YFMM.js +0 -23
  97. package/dist/chunk-QZBE4KC2.js +0 -4
  98. package/dist/server-settings-3YD7RR3A.js +0 -3
@@ -3,7 +3,8 @@ const require = __twpCreateRequire(import.meta.url);
3
3
  import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-H4CDX4TX.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-VFPY2A23.js";import{loadProjectConfig,loadUserConfig}from"./chunk-4VZKNEVN.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
4
4
  "Backlog \u30B9\u30DA\u30FC\u30B9 ID");return`${BACKLOG_BASE_PATH}/${encodeURIComponent(spaceId)}${suffix}`}function idString(value){if(typeof value==="number"&&Number.isFinite(value))return String(value);if(typeof value==="string"&&value.trim()!=="")return value.trim();return null}function text(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function backlogSpaceAliases(spaceUrl){const aliases=[];const trimmed=spaceUrl.trim().replace(/\/+$/,"");if(trimmed==="")return aliases;
5
5
  let host;try{host=new URL(trimmed).host}catch{host=trimmed.replace(/^\/+/,"").split("/")[0]??""}if(host==="")return aliases;aliases.push(host);const label=host.split(".")[0];if(label!==void 0&&label!==""&&label!==host)aliases.push(label);return aliases}function backlogSpaceRow(row){const url=text(row["space_url"]);return{id:idString(row["id"]),name:url,code:null,aliases:url!==null?backlogSpaceAliases(url):[]}}function backlogProjectRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:text(
6
- row["projectKey"])}}function backlogStatusRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null}}function backlogUserRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null,aliases:[text(row["userId"]),text(row["mailAddress"])].filter(v=>v!==null)}}var DEFAULT_LOOKUP_SCOPE="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";function fold(value){return value.trim().toLowerCase()}function keysOf(ref){return[ref.id,ref.code,ref.name,...ref.aliases??[]].filter(v=>typeof v==="string"&&v.trim()!=="").map(fold)}function describe(ref){return ref.code!==void 0&&ref.code!==null&&ref.code!==""&&ref.code!==ref.name?`${ref.name}\uFF08${ref.code}\uFF09`:ref.name}async function suggest(input,candidates){try{const{default:fuzzysort}=await import("./fuzzysort-DFVKV4B4.js");
6
+ row["projectKey"])}}function backlogStatusRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null}}function backlogUserRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null,aliases:[text(row["userId"]),text(row["mailAddress"])].filter(v=>v!==null)}}var REDMINE_BASE_PATH="/api/v2/integrations/redmine";function redmineServerPath(serverId,suffix=""){assertBacklogPathSegment(serverId,"Redmine \u63A5\u7D9A\u5148 ID");return`${REDMINE_BASE_PATH}/${encodeURIComponent(serverId)}${suffix}`}function text2(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function redmineServerAliases(baseUrl){const trimmed=baseUrl.trim().replace(/\/+$/,"");if(trimmed==="")return[];const aliases=[trimmed];try{const host=new URL(trimmed).host;
7
+ if(host!==""&&host!==trimmed)aliases.push(host)}catch{}return aliases}function redmineServerRow(row){const url=text2(row["base_url"]);const id=typeof row["id"]==="string"&&row["id"].trim()!==""?row["id"].trim():null;return{id,name:text2(row["name"])??url,code:null,aliases:url!==null?redmineServerAliases(url):[]}}var DEFAULT_LOOKUP_SCOPE="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";function fold(value){return value.trim().toLowerCase()}function keysOf(ref){return[ref.id,ref.code,ref.name,...ref.aliases??[]].filter(v=>typeof v==="string"&&v.trim()!=="").map(fold)}function describe(ref){return ref.code!==void 0&&ref.code!==null&&ref.code!==""&&ref.code!==ref.name?`${ref.name}\uFF08${ref.code}\uFF09`:ref.name}async function suggest(input,candidates){try{const{default:fuzzysort}=await import("./fuzzysort-DFVKV4B4.js");
7
8
  const indexed=candidates.map(ref=>({hay:keysOf(ref).join(" "),ref}));const hits=fuzzysort.go(input.trim(),indexed,{key:"hay",limit:5,threshold:-1e4});return hits.map(hit=>hit.obj.ref)}catch{return[]}}function listCandidates(candidates,limit=10){const shown=candidates.slice(0,limit).map(describe).join(" / ");return candidates.length>limit?`${shown} \u2026\uFF08\u5168 ${candidates.length} \u4EF6\uFF09`:shown}async function resolveNamed(input,candidates,ctx){const needle=fold(input);if(needle===""){
8
9
  throw new UsageError(`${ctx.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`)}if(candidates.length===0){throw new UsageError(`${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F${ctx.label}\u304C1\u4EF6\u3082\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${ctx.flag} ${input}\uFF09`)}const hits=candidates.filter(ref=>keysOf(ref).includes(needle));const distinct=[...new Map(hits.map(ref=>[ref.id,ref])).values()];if(distinct.length===1)return distinct[0];if(distinct.
9
10
  length>1){throw new UsageError(`${ctx.flag} \u306E\u300C${input}\u300D\u304C${ctx.label}${distinct.length}\u4EF6\u306B\u4E00\u81F4\u3057\u307E\u3059: ${listCandidates(distinct)}`,`\u3069\u308C\u304B1\u3064\u306B\u6C7A\u307E\u308B\u5024\uFF08ID \u304B\u30B3\u30FC\u30C9\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const near=await suggest(input,candidates);throw new UsageError(`${ctx.flag} \u306E\u300C${input}\u300D\u306B\u4E00\u81F4\u3059\u308B${ctx.label}\u304C\u3042\u308A\u307E\u305B\u3093`,
@@ -14,12 +15,13 @@ env);const fromProfile=usable(user.profiles?.[profileName]?.project);if(fromProf
14
15
  "dir"))return false}return true}function readCache(key,options={}){if(options.refresh===true)return null;const env=options.env??process.env;const file=cacheFilePath(key,env);if(!isCacheLocationTrusted(env)||!isOursAndPrivate(file,"file"))return null;let parsed;try{parsed=JSON.parse(fs.readFileSync(file,"utf8"))}catch{return null}if(parsed?.version!==CACHE_VERSION||!parsed.key||!sameKey(parsed.key,key))return null;const fetchedAt=Date.parse(parsed.fetched_at);if(!Number.isFinite(fetchedAt))return null;
15
16
  const ttl=options.ttlMs??DEFAULT_TTL_MS;const now=(options.now??Date.now)();if(Math.abs(now-fetchedAt)>ttl)return null;return parsed.value}function writeCache(key,value,options={}){const env=options.env??process.env;const dir=cacheDir(env);const file=cacheFilePath(key,env);const body={version:CACHE_VERSION,key:{profile:key.profile,scope:key.scope,...key.project!==void 0?{project:key.project}:{}},fetched_at:new Date((options.now??Date.now)()).toISOString(),value};if(!isCacheLocationTrusted(env))return;
16
17
  const tmp=`${file}.${process.pid}.tmp`;try{fs.mkdirSync(dir,{recursive:true,mode:448});fs.writeFileSync(tmp,`${JSON.stringify(body)}
17
- `,{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 MS365_TEAMS_CACHE_KEY="__ms365__";var MS365_SCOPE_LABEL="\u53C2\u52A0\u3057\u3066\u3044\u308B Teams";var MS365_RESOLVE_MAX_PAGES=20;var BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\u3053\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";var PRIVATE_SCOPE_LABEL="\u500B\u4EBA\u30BF\u30B9\u30AF";var TENANT_CACHE_KEY="\
18
- __tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="/api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var 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="/ap\
19
- i/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";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 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={
20
- categories:"/api/v2/attendance/report-categories",reasons:"/api/v2/attendance/report-reasons",details:"/api/v2/attendance/report-reason-details"};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/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="\
21
- /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="/api/v2/sales/invoice-no-rules";
22
- 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,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},
18
+ `,{mode:384});fs.renameSync(tmp,file)}catch{try{fs.rmSync(tmp,{force:true})}catch{}}}function removeCache(key,options={}){const env=options.env??process.env;if(!isCacheLocationTrusted(env))return;try{fs.rmSync(cacheFilePath(key,env),{force:true})}catch{}}var SELF_REF="me";var PRIVATE_TASKS_PATH="/api/v2/tasks/private";var PRIVATE_MASTERS_CACHE_KEY="__private__";var BACKLOG_SPACES_CACHE_KEY="__backlog__";var REDMINE_SERVERS_CACHE_KEY="__redmine__";var REDMINE_SCOPE_LABEL="\u767B\u9332\u6E08\u307F\u306E Redmine \u63A5\u7D9A\u5148";var MS365_TEAMS_CACHE_KEY="__ms365__";var MS365_SCOPE_LABEL="\u53C2\u52A0\u3057\u3066\u3044\u308B Teams";var MS365_RESOLVE_MAX_PAGES=20;var BACKLOG_SCOPE_LABEL="\u3053\u306E\u63A5\u7D9A\u5148";var BACKLOG_PROJECT_SCOPE_LABEL="\
19
+ \u3053\u306E Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8";var PRIVATE_SCOPE_LABEL="\u500B\u4EBA\u30BF\u30B9\u30AF";var TENANT_CACHE_KEY="__tenant__";var TENANT_SCOPE_LABEL="\u3053\u306E\u30C6\u30CA\u30F3\u30C8";var ADMIN_USERS_LIST_PATH="/api/v2/admin/users/list";var PROJECT_MEMBERS_LIMIT=1e4;var DEPARTMENTS_PATH="/api/v2/organization/departments";var POSITIONS_PATH="/api/v2/organization/positions";var JOB_TITLES_PATH="/api/v2/organization/job-titles";var SEGMENTS_PATH="/api/v2/organization/seg\
20
+ ments";var USER_CONTRACT_TYPES_PATH="/api/v2/organization/user-contract-types";var FISCAL_YEAR_SETTINGS_PATH="/api/v2/organization/fiscal-year-settings";var PROCESS_MASTERS_PATH="/api/v2/project/processes";var INQUIRY_CATEGORIES_PATH="/api/v2/inquiries/categories";var SUPPORTS_PATH="/api/v2/supports";var SUPPORT_CATEGORIES_PATH="/api/v2/supports/categories";var NOTIFICATIONS_PATH="/api/v2/notifications";var ANNOUNCEMENTS_PATH="/api/v2/announcements";var WORKER_AGENTS_PATH="/api/v2/worker-agents";
21
+ var AGENT_SESSIONS_PATH="/api/v2/agent/sessions";var AGENT_REPOSITORIES_PATH="/api/v2/agent/repositories";var 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/report-reason-details"};var ATTENDANCE_REPORT_MASTER_LABELS={
22
+ 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/purchases";var SALES_SUPPLIER_PAYMENTS_PATH="/api/v2/sales/sup\
23
+ plier-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="/api/v2/sales/invoice-no-rules";var SALES_PURCHASE_NO_RULES_PATH="\
24
+ /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,label:"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8"},
23
25
  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"},"seal-impression":{path:SALES_SEAL_IMPRESSIONS_PATH,label:"\
24
26
  \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"},"estimate-format":{path:SALES_ESTIMATE_FORMATS_PATH,label:"\
25
27
  \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}function exactCompanyId(ref,label){if(!isExactNumericId(
@@ -49,18 +51,20 @@ env}:{})}async user(input,flag="<\u30E6\u30FC\u30B6\u30FC>"){const trimmed=input
49
51
  \u305F\u305F\u3081\u3001\u8868\u793A\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\u3060\u3051\u3067\u7167\u5408\u3057\u307E\u3057\u305F\uFF09`,err.hint)}throw err}}async searchUsers(keyword){const query=new URLSearchParams({keyword,include_hidden:"true",limit:"100"});const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);if(!res.ok)return{refs:null,failure:`HTTP ${res.status}`};return{refs:namedFromRows(rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"),"\u30E6\u30FC\u30B6\u30FC",
50
52
  userRow),failure:null}}async visibleUsers(){return this.cached("admin-users-visible",TENANT_CACHE_KEY,async()=>{const rows=[];let cursor=null;for(let page=0;;page++){if(page>=USER_LIST_MAX_PAGES){throw new ResolveError(`\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u304C ${USER_LIST_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u304B\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
51
53
  const query=new URLSearchParams({limit:"100"});if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${ADMIN_USERS_LIST_PATH}?${query.toString()}`);rows.push(...rawListFrom(res,"items","\u30E6\u30FC\u30B6\u30FC"));const body=isRecord(res.json)?res.json:{};if(body["has_more"]===false)break;const next=str(body["next_cursor"]);if(body["has_more"]!==true||next===null){throw new ResolveError("\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B has_more / next_cursor \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
52
- 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 departments(){
53
- 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 jobTitles(){return this.cached("job-titles",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(
54
- await this.get(`${JOB_TITLES_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();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(
55
- 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 processMaster(input,flag="--process"){return resolveNamed(
56
- input,await this.processMasters(),{flag,label:"\u5DE5\u7A0B\u30DE\u30B9\u30BF",scope:TENANT_SCOPE_LABEL})}async processMasters(){return this.cached("process-masters",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${PROCESS_MASTERS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5DE5\u7A0B\u30DE\u30B9\u30BF"),"\u5DE5\u7A0B\u30DE\u30B9\u30BF",codedMasterRow))}async workflow(input,flag="<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(
57
- category),{flag,label:category===void 0?"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC":`\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08${category}\uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.
58
- get(`${WORKFLOWS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u7533\u8ACB\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const workflow=isRecord(
59
- res.json)?res.json["workflow"]:void 0;if(!isRecord(workflow)){throw new ResolveError("\u7533\u8ACB\u66F8\u306E\u5FDC\u7B54\u306B workflow \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return workflow}async attendanceReportMasters(){const load=async(path2,label)=>rawListFrom(await this.get(`${path2}/active`),"list",label);const[categories,reasons,details]=await Promise.all([load(ATTENDANCE_REPORT_MASTER_PATHS.
60
- categories,"\u52E4\u6020\u9023\u7D61\u306E\u533A\u5206"),load(ATTENDANCE_REPORT_MASTER_PATHS.reasons,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531"),load(ATTENDANCE_REPORT_MASTER_PATHS.details,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531\u8A73\u7D30")]);return{categories,reasons,details}}async attendanceReport(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`)}const res=await this.get(`${ATTENDANCE_REPORTS_PATH}\
61
- /${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const report=isRecord(res.json)?res.json["\
62
- report"]:void 0;if(!isRecord(report)){throw new ResolveError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return report}async applicableWorkflows(category){const path2=category===void 0?`${WORKFLOWS_PATH}/applicable`:`${WORKFLOWS_PATH}/applicable/${encodeURIComponent(category)}`;const scope=category===void 0?"workflows-applicable":`workflows-applicable\
63
- -${category}`;return this.cached(scope,TENANT_CACHE_KEY,async()=>{const res=await this.get(path2);const rows=rawListFrom(res,"list","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum==="number"&&sum>rows.length){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7\u304C ${sum} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
54
+ res.status)}cursor=next}return namedFromRows(rows,"\u30E6\u30FC\u30B6\u30FC",userRow)})}async department(input,flag="--department"){return resolveNamed(input,await this.departments(),{flag,label:"\u90E8\u7F72",scope:TENANT_SCOPE_LABEL})}async position(input,flag="--position"){return resolveNamed(input,await this.positions(),{flag,label:"\u5F79\u8077",scope:TENANT_SCOPE_LABEL})}async jobTitle(input,flag="--job-title"){return resolveNamed(input,await this.jobTitles(),{flag,label:"\u8077\u4F4D",scope:TENANT_SCOPE_LABEL})}async segment(input,flag="\
55
+ --segment"){return resolveNamed(input,await this.segments(),{flag,label:"\u30BB\u30B0\u30E1\u30F3\u30C8",scope:TENANT_SCOPE_LABEL})}async userContractType(input,flag="--contract-type"){return resolveNamed(input,await this.userContractTypes(),{flag,label:"\u5951\u7D04\u5F62\u614B",scope:TENANT_SCOPE_LABEL})}async departments(){return this.cached("departments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${DEPARTMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u90E8\u7F72"),"\u90E8\u7F72",
56
+ codedMasterRow))}async positions(){return this.cached("positions",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${POSITIONS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5F79\u8077"),"\u5F79\u8077",codedMasterRow))}async segments(){return this.cached("segments",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${SEGMENTS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u30BB\u30B0\u30E1\u30F3\u30C8"),"\u30BB\u30B0\u30E1\u30F3\u30C8",codedMasterRow))}async userContractTypes(){return this.
57
+ cached("user-contract-types",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(USER_CONTRACT_TYPES_PATH),"\u5951\u7D04\u5F62\u614B"),"\u5951\u7D04\u5F62\u614B",codedMasterRow))}async jobTitles(){return this.cached("job-titles",TENANT_CACHE_KEY,async()=>namedFromRows(masterList(await this.get(`${JOB_TITLES_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u8077\u4F4D"),"\u8077\u4F4D",codedMasterRow))}async workerAgent(input,flag="<\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8>"){const trimmed=input.trim();
58
+ if(trimmed==="")throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);if(ULID_RE.test(trimmed.toUpperCase()))return{id:trimmed.toUpperCase(),name:trimmed};const res=await this.get(WORKER_AGENTS_PATH);if(res.status===401||res.status===403){throw new ApiError(res.status,isRecord(res.json)?res.json:null,"GET",WORKER_AGENTS_PATH)}const rows=rawListFrom(res,"items","\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8");return resolveNamed(trimmed,
59
+ namedFromRows(rows,"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",workerAgentRow),{flag,label:"\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",scope:"\u3042\u306A\u305F\u304C\u53C2\u7167\u3067\u304D\u308B\u7BC4\u56F2"})}async processMaster(input,flag="--process"){return resolveNamed(input,await this.processMasters(),{flag,label:"\u5DE5\u7A0B\u30DE\u30B9\u30BF",scope:TENANT_SCOPE_LABEL})}async processMasters(){return this.cached("process-masters",TENANT_CACHE_KEY,async()=>namedFromRows(
60
+ masterList(await this.get(`${PROCESS_MASTERS_PATH}?limit=${ORG_MASTER_LIMIT}`),"\u5DE5\u7A0B\u30DE\u30B9\u30BF"),"\u5DE5\u7A0B\u30DE\u30B9\u30BF",codedMasterRow))}async workflow(input,flag="<\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC>",category){return resolveNamed(input,await this.applicableWorkflows(category),{flag,label:category===void 0?"\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC":`\u7533\u8ACB\u3067\u304D\u308B\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\uFF08${category}\uFF09`,scope:TENANT_SCOPE_LABEL})}async workflowDefinition(id){
61
+ if(!isSafePathSegment(id)){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const res=await this.get(`${WORKFLOWS_PATH}/${encodeURIComponent(id)}`);if(res.status===404){throw new ResolveError(`\u7533\u8ACB\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u7533\u8ACB\u66F8\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\
62
+ \uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const workflow=isRecord(res.json)?res.json["workflow"]:void 0;if(!isRecord(workflow)){throw new ResolveError("\u7533\u8ACB\u66F8\u306E\u5FDC\u7B54\u306B workflow \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return workflow}async attendanceReportMasters(){
63
+ const load=async(path2,label)=>rawListFrom(await this.get(`${path2}/active`),"list",label);const[categories,reasons,details]=await Promise.all([load(ATTENDANCE_REPORT_MASTER_PATHS.categories,"\u52E4\u6020\u9023\u7D61\u306E\u533A\u5206"),load(ATTENDANCE_REPORT_MASTER_PATHS.reasons,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531"),load(ATTENDANCE_REPORT_MASTER_PATHS.details,"\u52E4\u6020\u9023\u7D61\u306E\u7406\u7531\u8A73\u7D30")]);return{categories,reasons,details}}async attendanceReportMaster(kind,input,flag){
64
+ const label=ATTENDANCE_REPORT_MASTER_LABELS[kind];const rows=masterList(await this.get(`${ATTENDANCE_REPORT_MASTER_PATHS[kind]}?limit=${ORG_MASTER_LIMIT}`),label);return resolveNamed(input,namedFromRows(rows,label,codedMasterRow),{flag,label,scope:TENANT_SCOPE_LABEL})}async attendanceReport(id){if(!isSafePathSegment(id)){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`)}const res=await this.get(`${ATTENDANCE_REPORTS_PATH}/${encodeURIComponent(
65
+ id)}`);if(res.status===404){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: ${id}`,404)}if(!res.ok){throw new ResolveError(`\u52E4\u6020\u9023\u7D61\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${id}\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const report=isRecord(res.json)?res.json["report"]:void 0;if(!isRecord(
66
+ report)){throw new ResolveError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return report}async applicableWorkflows(category){const path2=category===void 0?`${WORKFLOWS_PATH}/applicable`:`${WORKFLOWS_PATH}/applicable/${encodeURIComponent(category)}`;const scope=category===void 0?"workflows-applicable":`workflows-applicable-${category}`;return this.cached(
67
+ scope,TENANT_CACHE_KEY,async()=>{const res=await this.get(path2);const rows=rawListFrom(res,"list","\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC");const sum=isRecord(res.json)?res.json["sum"]:void 0;if(typeof sum==="number"&&sum>rows.length){throw new ResolveError(`\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u4E00\u89A7\u304C ${sum} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
64
68
  res.status)}return namedFromRows(rows,"\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC",row=>({id:str(row["id"]),name:str(row["name"]),code:null}))})}async reportFormat(input,flag="--format",usableOnly=false){const load=async()=>rawListFrom(await this.get(`${REPORTS_PATH}/formats${usableOnly?"?include_unavailable=false":""}`),"formats","\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8");const rows=usableOnly?await load():await this.cached("report-formats",TENANT_CACHE_KEY,load);return resolveNamed(
65
69
  input,namedFromRows(rows,"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",row=>({id:str(row["id"]),name:str(row["name"]),code:str(row["code"])})),{flag,label:usableOnly?"\u4F5C\u6210\u3067\u304D\u308B\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8":"\u30EC\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",scope:TENANT_SCOPE_LABEL})}async company(input,options){const trimmed=input.trim();if(trimmed==="")throw new UsageError(`${options.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);
66
70
  if(isExactNumericId(trimmed))return options.mustExist===true?this.companyById(trimmed,options):{id:trimmed,name:trimmed};if(/^[0-9]+$/.test(trimmed)){throw new UsageError(`${options.flag} \u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${trimmed}`)}const label=options.source==="customer"?"\u9867\u5BA2":"\u53D6\u5F15\u5148";const base=options.source==="customer"?CUSTOMERS_PATH:SALES_COMPANIES_PATH;const rows=[];
@@ -118,21 +122,24 @@ from,to]of Object.entries(table)){if(from.trim().toLowerCase()===needle&&typeof
118
122
  const spaces=await this.backlogSpaces();if(spaces.length===1)return spaces[0];if(spaces.length===0){throw new UsageError("Backlog \u30B9\u30DA\u30FC\u30B9\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u3067 Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}throw new UsageError(`Backlog \u30B9\u30DA\u30FC\u30B9\u304C ${spaces.
119
123
  length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,`twp backlog space list \u3067 ID \u3068\u30B9\u30DA\u30FC\u30B9URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}async backlogProjects(spaceId){return this.cached("backlog-projects",spaceId,()=>this.namedList(backlogSpacePath(spaceId,"/projects"),"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",backlogProjectRow))}async backlogStatuses(spaceId,projectId){
120
124
  return this.cached("backlog-statuses",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/statuses`),"statuses","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9",backlogStatusRow))}async backlogUsers(spaceId,projectId){return this.cached("backlog-users",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(
121
- projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/users`),"users","Backlog \u30E6\u30FC\u30B6\u30FC",backlogUserRow))}async ms365Teams(){return this.cached("ms365-teams",MS365_TEAMS_CACHE_KEY,()=>this.ms365NamedList(ms365Path("/teams/teams"),"Teams \u306E\u30C1\u30FC\u30E0"))}async ms365Team(ref){return resolveNamed(ref,await this.ms365Teams(),{flag:"--team",label:"\u30C1\u30FC\u30E0",scope:MS365_SCOPE_LABEL})}async ms365Channels(teamId){return this.cached("ms365-channels",teamId,()=>this.
122
- ms365NamedList(ms365Path(`/teams/teams/${ms365Segment(teamId,"\u30C1\u30FC\u30E0 ID")}/channels`),"Teams \u306E\u30C1\u30E3\u30CD\u30EB"))}async ms365Channel(teamId,ref){return resolveNamed(ref,await this.ms365Channels(teamId),{flag:"--channel",label:"\u30C1\u30E3\u30CD\u30EB",scope:"\u3053\u306E\u30C1\u30FC\u30E0"})}async ms365Message(messageId){const res=await this.get(ms365Path(`/outlook/messages/${ms365Segment(messageId,"\u30E1\u30FC\u30EBID")}`));if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(
123
- res.json)??`\u5143\u306E\u30E1\u30FC\u30EB\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(data)){throw new ResolveError("\u5143\u306E\u30E1\u30FC\u30EB\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
124
- res.status)}return data}async ms365Event(eventId){const res=await this.get(ms365Path(`/calendar/events/${ms365Segment(eventId,"\u4E88\u5B9AID")}`));if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`\u4E88\u5B9A\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u4E88\u5B9AID \u306F twp outlook event list \u306E id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["\
125
- data"]:void 0;if(!isRecord(data)){throw new ResolveError("\u4E88\u5B9A\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return data}async ms365NamedList(path2,label){const rows=[];let cursor=null;for(let page=1;page<=MS365_RESOLVE_MAX_PAGES;page+=1){const res=await this.get(cursor===null?path2:`${path2}?skiptoken=${encodeURIComponent(cursor)}`);if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(
126
- res.json)??`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;const value=isRecord(data)?data["value"]:void 0;if(!isRecord(data)||!Array.isArray(value)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data.value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
127
- res.status)}value.forEach((row,index)=>{if(!isRecord(row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${rows.length+index+1} \u4EF6\u76EE\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}rows.push(row)});const next=data["@odata.nextLink"];if(next===void 0||next===null)return namedFromRows(rows,label,ms365NamedRow,res.status??void 0);const parsed=typeof next==="string"?graphNextCursor(
128
- next):null;if(parsed===null||parsed.kind!=="skiptoken"){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u7D9A\u304D\uFF08@odata.nextLink\uFF09\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}cursor=parsed.value}throw new UsageError(`${label}\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u540D\u524D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08${MS365_RESOLVE_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u307E\u3057\u305F\uFF09`,
129
- "\u4E00\u89A7\u30B3\u30DE\u30F3\u30C9\u306E\u51FA\u529B\u306B\u3042\u308B id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}get apiClient(){return this.client}};function assertMembersComplete(rows){if(rows.length>=PROJECT_MEMBERS_LIMIT){throw new ResolveError(`\u30E1\u30F3\u30D0\u30FC\u304C ${PROJECT_MEMBERS_LIMIT} \u4EBA\u4EE5\u4E0A\u3044\u308B\u305F\u3081\u3001\u5168\u54E1\u3092\u7167\u5408\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
130
- return rows}function rawListFrom(res,envelope,label){if(!res.ok){throw new ResolveError(`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const list=isRecord(res.json)?res.json[envelope]:void 0;if(!Array.isArray(list)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B ${envelope}\
131
- \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return list.map((row,index)=>{if(!isRecord(row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return row})}function userRow(row){const email=str(row["emai\
132
- l"]);const employeeCode=str(row["employee_code"]);return{id:str(row["user_id"]),name:str(row["user_name"]),code:employeeCode??email,aliases:[email,employeeCode].filter(v=>v!==null)}}function notificationCategoryRow(row){return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function supportCategoryRow(row){return{id:str(row["id"]),name:str(row["name"])}}function workerAgentRow(row){return{id:str(row["agent_id"]),name:str(row["name"])}}function agentRepositoryRow(row){const short=str(
133
- row["name"]);return{id:str(row["id"]),name:str(row["full_name"]),aliases:short===null?[]:[short]}}function inquiryCategoryRow(row){return{id:str(row["id"]),name:str(row["title"]),code:str(row["category_code"])}}function masterList(res,label){const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \
134
- \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return rows}function codedMasterRow(row){return{id:str(row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(
135
- `${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.
136
- isDefault===true);if(hit!==void 0)return hit;throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,INQUIRY_CATEGORIES_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,WORKER_AGENTS_PATH,AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,WORKFLOWS_PATH,REPORTS_PATH,ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,
137
- SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,
138
- Resolver};
125
+ projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/users`),"users","Backlog \u30E6\u30FC\u30B6\u30FC",backlogUserRow))}async redmineServers(){return this.cached("redmine-servers",REDMINE_SERVERS_CACHE_KEY,()=>this.namedList(`${REDMINE_BASE_PATH}/servers`,"items","Redmine \u63A5\u7D9A\u5148",redmineServerRow))}async redmineServer(ref){return resolveNamed(ref,await this.redmineServers(),{flag:"--space",label:"Redmine \u63A5\u7D9A\u5148",scope:REDMINE_SCOPE_LABEL})}async redmineDefaultServer(){
126
+ const servers=await this.redmineServers();if(servers.length===1)return servers[0];if(servers.length===0){throw new UsageError("Redmine \u306E\u63A5\u7D9A\u5148\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u500B\u4EBA\u8A2D\u5B9A\uFF08\u5916\u90E8\u30B7\u30B9\u30C6\u30E0\u9023\u643A\uFF09\u3067 Redmine \u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp redmine space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}throw new UsageError(
127
+ `Redmine \u306E\u63A5\u7D9A\u5148\u304C ${servers.length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp redmine space list \u3067 ID \u3068\u63A5\u7D9A\u5148URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}async ms365Teams(){return this.cached("ms365-teams",MS365_TEAMS_CACHE_KEY,()=>this.ms365NamedList(ms365Path("/teams/teams"),"Teams \u306E\u30C1\u30FC\u30E0"))}async ms365Team(ref){return resolveNamed(
128
+ ref,await this.ms365Teams(),{flag:"--team",label:"\u30C1\u30FC\u30E0",scope:MS365_SCOPE_LABEL})}async ms365Channels(teamId){return this.cached("ms365-channels",teamId,()=>this.ms365NamedList(ms365Path(`/teams/teams/${ms365Segment(teamId,"\u30C1\u30FC\u30E0 ID")}/channels`),"Teams \u306E\u30C1\u30E3\u30CD\u30EB"))}async ms365Channel(teamId,ref){return resolveNamed(ref,await this.ms365Channels(teamId),{flag:"--channel",label:"\u30C1\u30E3\u30CD\u30EB",scope:"\u3053\u306E\u30C1\u30FC\u30E0"})}async ms365Message(messageId){
129
+ const res=await this.get(ms365Path(`/outlook/messages/${ms365Segment(messageId,"\u30E1\u30FC\u30EBID")}`));if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`\u5143\u306E\u30E1\u30FC\u30EB\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u30E1\u30FC\u30EBID \u306F twp outlook mail list \u306E id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;
130
+ if(!isRecord(data)){throw new ResolveError("\u5143\u306E\u30E1\u30FC\u30EB\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return data}async ms365Event(eventId){const res=await this.get(ms365Path(`/calendar/events/${ms365Segment(eventId,"\u4E88\u5B9AID")}`));if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`\u4E88\u5B9A\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
131
+ status}\uFF09\u3002\u4E88\u5B9AID \u306F twp outlook event list \u306E id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["data"]:void 0;if(!isRecord(data)){throw new ResolveError("\u4E88\u5B9A\u306E\u5FDC\u7B54\u306B data \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",res.status)}return data}async ms365NamedList(path2,label){const rows=[];let cursor=null;for(let page=1;page<=
132
+ MS365_RESOLVE_MAX_PAGES;page+=1){const res=await this.get(cursor===null?path2:`${path2}?skiptoken=${encodeURIComponent(cursor)}`);if(!res.ok){throw new ResolveError(ms365NotConnectedGuidance(res.json)??`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}const data=isRecord(res.json)?res.json["\
133
+ data"]:void 0;const value=isRecord(data)?data["value"]:void 0;if(!isRecord(data)||!Array.isArray(value)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data.value \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}value.forEach((row,index)=>{if(!isRecord(row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${rows.length+index+1} \u4EF6\u76EE\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
134
+ res.status)}rows.push(row)});const next=data["@odata.nextLink"];if(next===void 0||next===null)return namedFromRows(rows,label,ms365NamedRow,res.status??void 0);const parsed=typeof next==="string"?graphNextCursor(next):null;if(parsed===null||parsed.kind!=="skiptoken"){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u7D9A\u304D\uFF08@odata.nextLink\uFF09\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}cursor=parsed.
135
+ value}throw new UsageError(`${label}\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u540D\u524D\u3067\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08${MS365_RESOLVE_MAX_PAGES} \u30DA\u30FC\u30B8\u3092\u8D85\u3048\u307E\u3057\u305F\uFF09`,"\u4E00\u89A7\u30B3\u30DE\u30F3\u30C9\u306E\u51FA\u529B\u306B\u3042\u308B id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}get apiClient(){return this.client}};function assertMembersComplete(rows){if(rows.length>=PROJECT_MEMBERS_LIMIT){throw new ResolveError(
136
+ `\u30E1\u30F3\u30D0\u30FC\u304C ${PROJECT_MEMBERS_LIMIT} \u4EBA\u4EE5\u4E0A\u3044\u308B\u305F\u3081\u3001\u5168\u54E1\u3092\u7167\u5408\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return rows}function rawListFrom(res,envelope,label){if(!res.ok){throw new ResolveError(`${label}\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
137
+ res.status)}const list=isRecord(res.json)?res.json[envelope]:void 0;if(!Array.isArray(list)){throw new ResolveError(`${label}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B ${envelope} \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return list.map((row,index)=>{if(!isRecord(row)){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
138
+ res.status)}return row})}function userRow(row){const email=str(row["email"]);const employeeCode=str(row["employee_code"]);return{id:str(row["user_id"]),name:str(row["user_name"]),code:employeeCode??email,aliases:[email,employeeCode].filter(v=>v!==null)}}function notificationCategoryRow(row){return{id:str(row["key"]),name:str(row["name"]),code:str(row["key"])}}function supportCategoryRow(row){return{id:str(row["id"]),name:str(row["name"])}}function workerAgentRow(row){return{id:str(row["agent_id"]),
139
+ name:str(row["name"])}}function agentRepositoryRow(row){const short=str(row["name"]);return{id:str(row["id"]),name:str(row["full_name"]),aliases:short===null?[]:[short]}}function inquiryCategoryRow(row){return{id:str(row["id"]),name:str(row["title"]),code:str(row["category_code"])}}function masterList(res,label){const rows=rawListFrom(res,"list",label);const count=isRecord(res.json)?res.json["count"]:void 0;if(typeof count==="number"&&count>rows.length){throw new ResolveError(`${label}\u4E00\u89A7\u304C ${count}\
140
+ \u4EF6\u4E2D ${rows.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\u308C\u305F\u305F\u3081\u3001\u540D\u524D\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3002ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return rows}function codedMasterRow(row){return{id:str(row["id"]),name:str(row["name"]),code:str(row["code"]),isDefault:truthyFlag(row["is_default"])}}function namedListFrom(res,envelope,label,map){return namedFromRows(rawListFrom(res,envelope,label),label,
141
+ map,res.status??void 0)}function namedFromRows(rows,label,map,status=200){return rows.map((row,index)=>{const mapped=map(row);if(mapped.id===null||mapped.name===null){throw new ResolveError(`${label}\u4E00\u89A7\u306E ${index+1} \u4EF6\u76EE\u306B id / \u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,status)}return{id:mapped.id,name:mapped.name,...mapped.code!==void 0?{code:mapped.code}:{},...mapped.aliases!==void 0&&
142
+ mapped.aliases.length>0?{aliases:mapped.aliases}:{},...mapped.isDefault!==void 0?{isDefault:mapped.isDefault}:{}}})}function requireDefault(candidates,ctx){const hit=candidates.find(ref=>ref.isDefault===true);if(hit!==void 0)return hit;throw new UsageError(`${ctx.flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${ctx.scope??DEFAULT_LOOKUP_SCOPE}\u306B\u306F\u65E2\u5B9A\u306E${ctx.label}\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09`,`\u6307\u5B9A\u3067\u304D\u308B${ctx.
143
+ label}: ${candidates.map(ref=>ref.name).join(" / ")}\uFF08\u53E4\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u304C\u6B8B\u3063\u3066\u3044\u308B\u5834\u5408\u306F --refresh \u3067\u53D6\u308A\u76F4\u305B\u307E\u3059\uFF09`)}export{BACKLOG_BASE_PATH,backlogSpacePath,REDMINE_BASE_PATH,redmineServerPath,resolveNamed,requireDefaultProject,PRIVATE_TASKS_PATH,BACKLOG_SCOPE_LABEL,BACKLOG_PROJECT_SCOPE_LABEL,PROJECT_MEMBERS_LIMIT,DEPARTMENTS_PATH,POSITIONS_PATH,JOB_TITLES_PATH,SEGMENTS_PATH,USER_CONTRACT_TYPES_PATH,FISCAL_YEAR_SETTINGS_PATH,INQUIRY_CATEGORIES_PATH,SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH,NOTIFICATIONS_PATH,ANNOUNCEMENTS_PATH,WORKER_AGENTS_PATH,AGENT_SESSIONS_PATH,AGENT_REPOSITORIES_PATH,WORKFLOWS_PATH,REPORTS_PATH,
144
+ ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,ATTENDANCE_REPORT_MASTER_LABELS,SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,SALES_CONTRACTS_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,SALES_DEPOSITS_PATH,SALES_PURCHASES_PATH,SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,SALES_PURCHASE_AI_MAPPINGS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ESTIMATE_FORMATS_PATH,
145
+ SALES_ROUNDING_SETTING_PATH,SALES_COMPANIES_PATH,CUSTOMERS_PATH,PROSPECTS_PATH,isExactNumericId,ORG_MASTER_LIMIT,TASK_MASTERS,Resolver};
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-4ZREAAP4.js";import"./chunk-2LOT54OO.js";import"./chunk-QZBE4KC2.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.63.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-WG6NCT4L.js";import"./chunk-2LOT54OO.js";import"./chunk-YYURQG4E.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.65.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -63,6 +63,11 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
63
63
  \u8A08\u753BAI\u304C\u8A08\u753B\u3092\u30EB\u30FC\u30D7\u3078\u63D0\u51FA\u3059\u308B\uFF08\u8A08\u753B\u30D5\u30A7\u30FC\u30BA\u306E\u4E2D\u3067\u3060\u3051\u53D7\u3051\u4ED8\u3051\u308B\uFF09\u3002
64
64
  step \u3054\u3068\u306B\u53D7\u7406/\u68C4\u5374\u3068\u7406\u7531\u3092\u8868\u793A\u3057\u3001\u68C4\u5374\u304C\u3042\u308C\u3070\u975E0\u3067\u7D42\u308F\u308B\u3002
65
65
  \u51FA\u3057\u76F4\u3059\u3068\u6700\u5F8C\u306E\u63D0\u51FA\u304C\u6709\u52B9\u3002--check \u306F\u691C\u67FB\u3060\u3051\u3067\u7F6E\u304B\u306A\u3044
66
+ twp task-loop capacity report --project <\u30AD\u30FC|UUID>
67
+ \u30EB\u30FC\u30D7\u3092\u56DE\u3055\u305A\u306B AI \u30A2\u30AB\u30A6\u30F3\u30C8\u67A0\u306E\u89B3\u6E2C\u5024\u30921\u56DE\u3060\u3051\u9001\u308B\uFF08\u5E38\u99D0\u3057\u306A\u3044\u3002
68
+ \u5B9A\u671F\u5B9F\u884C\u306F systemd timer / cron / launchd \u306B\u4EFB\u305B\u308B\uFF09\u3002\u8A2D\u5B9A\u306F\u30EB\u30FC\u30D7\u3068
69
+ \u540C\u3058 capacity_probe\u3002\u672A\u8A2D\u5B9A\u306A\u3089\u4F55\u3082\u305B\u305A 0\u3001\u540C\u3058\u6A5F\u306E\u30EB\u30FC\u30D7\u304C\u767B\u9332\u6E08\u307F
70
+ \u306A\u3089\u9001\u3089\u305A 0\u3001\u30D7\u30ED\u30FC\u30D6\u304C\u5931\u6557\u3057\u3066\u3082 error \u3092\u9001\u308C\u308C\u3070 0\u3001\u9001\u4FE1\u306E\u5931\u6557\u306F 1
66
71
  twp --mode <id> \u8D77\u52D5\u6642\u306E\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\uFF08dev | biz | plan\uFF09
67
72
  twp --permission-mode <v>
68
73
  \u30C4\u30FC\u30EB\u5B9F\u884C\u306E\u65E2\u5B9A\u3092\u4E0A\u66F8\u304D\uFF08plan | acceptEdits | denyAll\uFF09\u3002
@@ -331,6 +336,36 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
331
336
  \u52E4\u6020\u9023\u7D61\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\uFF09
332
337
  twp attendance report reasons
333
338
  \u52E4\u6020\u9023\u7D61\u3067\u4F7F\u3048\u308B\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u7D44\u307F\u5408\u308F\u305B
339
+ twp attendance report-category list
340
+ \u52E4\u6020\u9023\u7D61\u306E\u9023\u7D61\u533A\u5206\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\uFF08\u7121\u52B9\u3092\u542B\u3080\uFF09
341
+ twp attendance report-category get <\u9023\u7D61\u533A\u5206>
342
+ \u9023\u7D61\u533A\u52061\u4EF6\u306E\u8A73\u7D30
343
+ twp attendance report-category create
344
+ \u9023\u7D61\u533A\u5206\u3092\u4F5C\u6210\u3059\u308B\uFF08--code\u30FB--name \u5FC5\u9808\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
345
+ twp attendance report-category update <\u9023\u7D61\u533A\u5206>
346
+ \u9023\u7D61\u533A\u5206\u3092\u5909\u66F4\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
347
+ twp attendance report-category delete <\u9023\u7D61\u533A\u5206>
348
+ \u9023\u7D61\u533A\u5206\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u5B50 \u2192 \u89AA\u306E\u9806\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
349
+ twp attendance report-reason list
350
+ \u52E4\u6020\u9023\u7D61\u306E\u9023\u7D61\u7406\u7531\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\uFF08\u7121\u52B9\u3092\u542B\u3080\uFF09
351
+ twp attendance report-reason get <\u9023\u7D61\u7406\u7531>
352
+ \u9023\u7D61\u7406\u75311\u4EF6\u306E\u8A73\u7D30
353
+ twp attendance report-reason create
354
+ \u9023\u7D61\u7406\u7531\u3092\u4F5C\u6210\u3059\u308B\uFF08--code\u30FB--name \u5FC5\u9808\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
355
+ twp attendance report-reason update <\u9023\u7D61\u7406\u7531>
356
+ \u9023\u7D61\u7406\u7531\u3092\u5909\u66F4\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
357
+ twp attendance report-reason delete <\u9023\u7D61\u7406\u7531>
358
+ \u9023\u7D61\u7406\u7531\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u5B50 \u2192 \u89AA\u306E\u9806\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
359
+ twp attendance report-reason-detail list
360
+ \u52E4\u6020\u9023\u7D61\u306E\u9023\u7D61\u7406\u7531\u8A73\u7D30\u30DE\u30B9\u30BF\u306E\u4E00\u89A7\uFF08\u7121\u52B9\u3092\u542B\u3080\uFF09
361
+ twp attendance report-reason-detail get <\u9023\u7D61\u7406\u7531\u8A73\u7D30>
362
+ \u9023\u7D61\u7406\u7531\u8A73\u7D301\u4EF6\u306E\u8A73\u7D30
363
+ twp attendance report-reason-detail create
364
+ \u9023\u7D61\u7406\u7531\u8A73\u7D30\u3092\u4F5C\u6210\u3059\u308B\uFF08--code\u30FB--name \u5FC5\u9808\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
365
+ twp attendance report-reason-detail update <\u9023\u7D61\u7406\u7531\u8A73\u7D30>
366
+ \u9023\u7D61\u7406\u7531\u8A73\u7D30\u3092\u5909\u66F4\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
367
+ twp attendance report-reason-detail delete <\u9023\u7D61\u7406\u7531\u8A73\u7D30>
368
+ \u9023\u7D61\u7406\u7531\u8A73\u7D30\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u5B50 \u2192 \u89AA\u306E\u9806\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\uFF09
334
369
  twp attendance overtime \u6708\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\uFF08\u793E\u54E1\u5225\u30FB--month\u30FB--agreement36 \u306736\u5354\u5B9A\u3002\u7BA1\u7406\u8005\uFF09
335
370
  twp attendance closings list
336
371
  \u6708\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u306E\u4E00\u89A7\u30FB--month\u3002\u7BA1\u7406\u8005\uFF09
@@ -484,6 +519,16 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
484
519
  Backlog \u8AB2\u984C\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092 --out \u3078\u66F8\u304D\u51FA\u3059
485
520
  twp backlog status list Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u4E00\u89A7\u3059\u308B\uFF08--project \u304C\u8981\u308B\uFF09
486
521
  twp backlog user list Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08--project \u304C\u8981\u308B\uFF09
522
+ twp redmine space list \u767B\u9332\u6E08\u307F\u306E Redmine \u63A5\u7D9A\u5148\u3092\u4E00\u89A7\u3059\u308B
523
+ twp redmine project list
524
+ Redmine \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B
525
+ twp redmine issue list Redmine \u30C1\u30B1\u30C3\u30C8\u3092\u4E00\u89A7\u3059\u308B\uFF08--project / --status / --assignee\uFF09
526
+ twp redmine issue get <\u30C1\u30B1\u30C3\u30C8\u756A\u53F7>
527
+ Redmine \u30C1\u30B1\u30C3\u30C81\u4EF6\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u30FB\u30B3\u30E1\u30F3\u30C8\u30FB\u6DFB\u4ED8\u4E00\u89A7\u3064\u304D\uFF09
528
+ twp redmine attachment list <\u30C1\u30B1\u30C3\u30C8\u756A\u53F7>
529
+ Redmine \u30C1\u30B1\u30C3\u30C8\u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092\u4E00\u89A7\u3059\u308B\uFF08id / filename / filesize\uFF09
530
+ twp redmine attachment download <\u6DFB\u4ED8ID> --out <\u30D1\u30B9>
531
+ Redmine \u306E\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB\u3092 --out \u3078\u66F8\u304D\u51FA\u3059
487
532
  twp outlook mail list Outlook \u306E\u30E1\u30FC\u30EB\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65E2\u5B9A\u306F\u53D7\u4FE1\u30C8\u30EC\u30A4\u30FB--unread / --search\uFF09
488
533
  twp outlook mail get <\u30E1\u30FC\u30EBID>
489
534
  \u30E1\u30FC\u30EB1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u672C\u6587\u3064\u304D\uFF09
@@ -613,6 +658,33 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
613
658
  \u8077\u4F4D\u3092\u66F4\u65B0\u3059\u308B\uFF08--status inactive \u3067\u7121\u52B9\u5316\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
614
659
  twp job-title delete <\u8077\u4F4D>
615
660
  \u8077\u4F4D\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
661
+ twp segment list \u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B
662
+ twp segment get <\u30BB\u30B0\u30E1\u30F3\u30C8>
663
+ \u30BB\u30B0\u30E1\u30F3\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B
664
+ twp segment create \u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09
665
+ twp segment update <\u30BB\u30B0\u30E1\u30F3\u30C8>
666
+ \u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u66F4\u65B0\u3059\u308B\uFF08--status inactive \u3067\u7121\u52B9\u5316\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
667
+ twp segment delete <\u30BB\u30B0\u30E1\u30F3\u30C8>
668
+ \u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
669
+ twp user-contract-type list
670
+ \u5951\u7D04\u5F62\u614B\u3092\u4E00\u89A7\u3059\u308B\uFF08--active \u3067\u7D5E\u308A\u8FBC\u307F\uFF09
671
+ twp user-contract-type get <\u5951\u7D04\u5F62\u614B>
672
+ \u5951\u7D04\u5F62\u614B1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B
673
+ twp user-contract-type create
674
+ \u5951\u7D04\u5F62\u614B\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09
675
+ twp user-contract-type update <\u5951\u7D04\u5F62\u614B>
676
+ \u5951\u7D04\u5F62\u614B\u3092\u66F4\u65B0\u3059\u308B\uFF08--active false \u3067\u7121\u52B9\u5316\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
677
+ twp user-contract-type delete <\u5951\u7D04\u5F62\u614B>
678
+ \u5951\u7D04\u5F62\u614B\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
679
+ twp fiscal-year list \u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A\u3092\u4E00\u89A7\u3059\u308B
680
+ twp fiscal-year get <\u5E74\u5EA6>
681
+ \u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B
682
+ twp fiscal-year create <\u5E74\u5EA6>
683
+ \u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09
684
+ twp fiscal-year update <\u5E74\u5EA6>
685
+ \u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A\u3092\u66F4\u65B0\u3059\u308B\uFF08\u7BA1\u7406\u8005\u306E\u307F\uFF09
686
+ twp fiscal-year delete <\u5E74\u5EA6>
687
+ \u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u7BA1\u7406\u8005\u306E\u307F\uFF09
616
688
  twp evaluation list \u898B\u3066\u3088\u3044\u7BC4\u56F2\u306E\u4EBA\u4E8B\u8A55\u4FA1\u3092\u4E00\u89A7\u3059\u308B\uFF08--period\u30FB--status\uFF09
617
689
  twp evaluation subordinates --period <\u8A55\u4FA1\u671F\u9593ID>
618
690
  \u8A55\u4FA1\u8005\u3068\u3057\u3066\u6301\u3064\u90E8\u4E0B\u3068\u8A55\u4FA1\u306E\u72B6\u614B\u3092\u4E00\u89A7\u3059\u308B
@@ -1125,16 +1197,16 @@ TUI \u5185:
1125
1197
  TWP API \u3092\u547C\u3079\u307E\u3059\u3002TWP API \u306E\u30C4\u30FC\u30EB\u306F\u65E2\u5B9A\u3067\u78BA\u8A8D\u304C\u51FA\u307E\u3059\uFF08-p \u3067\u306F\u62D2\u5426\u3002--allowed-tools \u3067\u540D\u524D\u3092\u8A31\u53EF\uFF09\u3002
1126
1198
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
1127
1199
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
1128
- `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-MUSSUG6N.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1129
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-4V3YNENU.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
1200
+ `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-DGPGHQNL.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1201
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-LBL4AOZW.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
1130
1202
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
1131
1203
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
1132
1204
 
1133
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-J7ACNZ3D.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
1134
- domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-SFJFE2PE.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
1135
- void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-WIQVCMQE.js");
1136
- const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-6QNMVCU3.js");process.exitCode=await runTaskLoop(
1205
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-RLV6W5JA.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1206
+ {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-HP3ABNDG.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1207
+ profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-EK3EYLQH.js");
1208
+ const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-2FOGOL65.js");process.exitCode=await runTaskLoop(
1137
1209
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,charterOp:args.charterOp,charterInput:args.charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,
1138
- skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,planOp:args.planOp,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-4NIS4J4S.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==
1139
- void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-N2ZLD6HG.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.
1140
- isTTY,doctor:args.doctor,version:VERSION})}await main();
1210
+ skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,planOp:args.planOp,capacityOp:args.capacityOp,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-VL45DNR7.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.
1211
+ mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-C4TUNEAO.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,
1212
+ noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();