@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
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-QZBE4KC2.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","plan"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--output","--query"]);var BOOLEAN_FLAGS=new Set(
3
+ import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-YYURQG4E.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","plan","capacity"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--output","--query"]);var BOOLEAN_FLAGS=new Set(
4
4
  ["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===void 0)continue;if(arg.startsWith("-")&&arg!=="-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.
5
5
  has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.
6
6
  includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{
@@ -18,19 +18,20 @@ ect",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{
18
18
  true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-file":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(
19
19
  i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(
20
20
  i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}break}case"--all":out.skillAll=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&(raw===
21
- "push"||raw==="pull")){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(raw==="push"||raw==="pull")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.
22
- loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod===
23
- "browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push(
24
- "--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-con\
25
- fig-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("-\
26
- -yes");const acceptsOutput=isDomainRoute||out.command==="whoami";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&out.taskLoopAction!=="schedule"){if(out.verbose)out.
27
- unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.
28
- push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){if(out.yes&&out.taskLoopAction!=="charter"&&out.taskLoopAction!=="skill")out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.
29
- push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="setup"){if(out.engine!==void 0)
30
- out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!==
31
- "push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.
32
- push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push("skill \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}else if(out.skillName===void 0&&!out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\
33
- \u3093")}if(out.skillOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycl\
34
- es")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.
35
- interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all")}if(out.command==="task-loop"&&out.
36
- taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}return out}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,GLOBAL_FLAGS,parseArgv};
21
+ "push"||raw==="pull")){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&raw==="report"){out.capacityOp="report";break}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(raw==="push"||raw==="pull")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith(
22
+ "-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.
23
+ push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod==="browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");
24
+ if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)
25
+ out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.planEmpty)out.unknown.
26
+ push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){
27
+ out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&out.taskLoopAction!=="schedule"){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){
28
+ out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){if(out.yes&&out.taskLoopAction!=="charter"&&out.taskLoopAction!=="skill")out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.
29
+ unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==
30
+ void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.
31
+ push("charter \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)
32
+ out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push("skill \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}else if(out.skillName===void 0&&!out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.
33
+ skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}if(out.skillOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==
34
+ void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.
35
+ daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterFile!==void 0)out.unknown.push(
36
+ "--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.
37
+ push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}return out}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,GLOBAL_FLAGS,parseArgv};
@@ -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-7LFYDASU.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-EO3M43TN.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.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-MYWDL3WX.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-ENVASCZU.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-G6RLNOIZ.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-ZSPWHEBL.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{contentTypeFor,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-CSXCHRYE.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance}from"./chunk-EO3M43TN.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-MYWDL3WX.js";
3
+ import{contentTypeFor,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance}from"./chunk-G6RLNOIZ.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-SCU74Z4U.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-ZSPWHEBL.js";
4
4
  import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,errorListMessages}from"./chunk-JA5A6UJ2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";function levelForbidden(licenseGuidance,levelGuidance){return body=>body?.error==="permission_denied"?licenseGuidance:levelGuidance}var COMPANY_LICENSE="\u53D6\u5F15\u5148\u3092\u6271\u3046\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u304B\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u304C\u3001\u3069\u3061\u3089\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u3069\u3061\u3089\u3082\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u6A29\u9650\u304C\u3069\u3061\u3089\u3082\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";
5
5
  var CUSTOMER_LICENSE=featureLicenseGuidance("\u9867\u5BA2\u7BA1\u7406");var COMPANY_WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\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 LEVEL_LABELS={admin:"\u7BA1\u7406\u8005",editor:"\u7DE8\u96C6\u8005",viewer:"\u95B2\u89A7\u8005",none:"\u306A\u3057"};var CHILD_DELETE_NEEDS="\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059";var CUSTOMER_DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u524A\u9664\u306B\u306F\u3001\u4F01\u696D\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304B\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3001\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\
@@ -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-7LFYDASU.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-ENVASCZU.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.
@@ -0,0 +1,11 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var LOADERS={agent:async()=>(await import("./agent-HM4FHCJT.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-VC47FGPR.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-PUJCOMP6.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-NEZXCJGT.js")).analysisDomain,announcement:async()=>(await import("./announcement-BEPIDOMO.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-ZEWRXHUU.js")).attendanceDomainWithRecords,
4
+ backlog:async()=>(await import("./backlog-UD226SVD.js")).backlogDomain,budget:async()=>(await import("./budget-6HOZNG3E.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-GRR4WKLO.js")).businessPlaceDomain,company:async()=>(await import("./company-MUGKJNY3.js")).companyDomain,contract:async()=>(await import("./contract-DJJQBAWX.js")).contractDomain,customer:async()=>(await import("./company-MUGKJNY3.js")).customerDomain,department:async()=>(await import("./department-RMZ72N6B.js")).
5
+ departmentDomain,deposit:async()=>(await import("./deposit-45Y3POXT.js")).depositDomain,estimate:async()=>(await import("./estimate-HTAF6FZT.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-J634U7JQ.js")).evaluationDomain,expense:async()=>(await import("./expense-EVNQ653C.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-MVOGDAIP.js")).fiscalYearDomain,"goal-sheet":async()=>(await import("./evaluation-J634U7JQ.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-XO5R47OO.js")).
6
+ inquiryDomain,invoice:async()=>(await import("./invoice-WE2SOMYN.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-3CGRQILF.js")).jobTitleDomain,leave:async()=>(await import("./leave-IFYBLQBF.js")).leaveDomain,media:async()=>(await import("./media-X32Y2MOY.js")).mediaDomain,meeting:async()=>(await import("./knowledge-X3FGXIBL.js")).meetingDomain,note:async()=>(await import("./knowledge-X3FGXIBL.js")).noteDomain,notification:async()=>(await import("./notification-MHYSQKYZ.js")).
7
+ notificationDomain,onedrive:async()=>(await import("./onedrive-ZY3GTU26.js")).onedriveDomain,outlook:async()=>(await import("./outlook-YG7GFF44.js")).outlookDomain,payee:async()=>(await import("./sales-master-GRR4WKLO.js")).payeeDomain,position:async()=>(await import("./position-6UC7X2BJ.js")).positionDomain,project:async()=>(await import("./project-LG47ZCEZ.js")).projectDomain,prospect:async()=>(await import("./prospect-FEU3WQYN.js")).prospectDomain,purchase:async()=>(await import("./purchase-44B2NOOB.js")).
8
+ purchaseDomain,qualification:async()=>(await import("./skill-PWCJCIQO.js")).qualificationDomain,receivable:async()=>(await import("./receivable-NQNZ2B6B.js")).receivableDomain,redmine:async()=>(await import("./redmine-T3JDIH37.js")).redmineDomain,report:async()=>(await import("./report-GJK2YXVO.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-IUYAABSM.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-GRR4WKLO.js")).sealImpressionDomain,
9
+ search:async()=>(await import("./search-N5UE5CUL.js")).searchDomain,segment:async()=>(await import("./segment-FQHY6DVH.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-BXAHFZYY.js")).shiftDomain,skill:async()=>(await import("./skill-PWCJCIQO.js")).skillDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-HTENSEXJ.js")).supplierPaymentDomain,support:async()=>(await import("./support-DOWAY63P.js")).
10
+ supportDomain,task:async()=>(await import("./task-OMYFPWQZ.js")).taskDomain,teams:async()=>(await import("./teams-AUFHZRDH.js")).teamsDomain,user:async()=>(await import("./user-C7UKUPGT.js")).userDomain,"user-contract-type":async()=>(await import("./user-contract-type-DO576EHJ.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-X3FGXIBL.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-BXAHFZYY.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-OBYRYPLC.js")).
11
+ workerAgentDomain,workflow:async()=>(await import("./workflow-C2BEVHQ2.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ var DOMAIN_NAMES=["agent","agent-loop","ai-review-reason","analysis","announcement","attendance","backlog","budget","business-place","company","contract","customer","department","deposit","estimate","evaluation","expense","fiscal-year","goal-sheet","inquiry","invoice","job-title","leave","media","meeting","note","notification","onedrive","outlook","payee","position","project","prospect","purchase","qualification","receivable","redmine","report","rounding-setting","seal-impression","search","segm\
4
+ ent","shift","skill","storage","supplier-payment","support","task","teams","user","user-contract-type","wiki","workchange","worker-agent","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -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-4PROMNXI.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-MYWDL3WX.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-FBBKRVVS.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-ZSPWHEBL.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,9 +1,48 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_PATHS,resolveNamed}from"./chunk-MYWDL3WX.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,
4
- UsageError}from"./chunk-VFPY2A23.js";var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
3
+ import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{STATUS_VALUES,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,targetId,truncationNotes,updateFlags}from"./chunk-SCU74Z4U.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{ATTENDANCE_REPORTS_PATH,ATTENDANCE_REPORT_MASTER_LABELS,ATTENDANCE_REPORT_MASTER_PATHS,ORG_MASTER_LIMIT,resolveNamed}from"./chunk-ZSPWHEBL.js";
4
+ import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
5
5
  function userPath(input,suffix=""){const userId=requireResolved(input,"userId");if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\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`)}return`${encodeURIComponent(userId)}${suffix}`}var USER_REF_FLAG={name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",
6
- takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}var REPORT_LIST_USAGE="twp attendance report list [--month <YYYY-MM> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var REPORT_GET_USAGE="twp attendance report get <ID>";var REPORT_REASONS_USAGE="twp attendance report reasons";var REPORT_CREATE_USAGE="twp attendance report create (--date <YYYY-MM-DD> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>) --category <\u533A\u5206> --reason <\u7406\u7531> [--detail <\u7406\u7531\u8A73\u7D30>] [--start-time <HH:MM>] [--end-time <HH:MM>] [--note <\u9023\u7D61\u5185\u5BB9> | --note-file <\u30D1\u30B9>]\
6
+ takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}var COMMAND="twp attendance";function label(kind){return ATTENDANCE_REPORT_MASTER_LABELS[kind]}function commonFields(name){return[{kind:"text",flag:"--code",key:"code",label:`${name}\u30B3\u30FC\u30C9`,maxChars:50,summary:`${name}\u30B3\u30FC\u30C9\uFF08\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09`},{kind:"text",flag:"--name",key:"name",label:`${name}\u540D`,maxChars:255,summary:`${name}\u540D`}]}function tailFields(){return[{kind:"integer",flag:"--sort",key:"sort",label:"\u8868\u793A\u9806",
7
+ min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\u3002\u5C0F\u3055\u3044\u307B\u3069\u4E0A\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF1D\u52E4\u6020\u9023\u7D61\u306E\u9078\u629E\u80A2\u306B\u51FA\u306A\u3044\uFF09"},{kind:"boolean",flag:"--admin-only",key:"is_admin_only",summary:"\u7BA1\u7406\u8005\u3060\u3051\u304C\u9078\u3079\u308B\u304B\uFF08true / false\uFF09"},{kind:"text",flag:"\
8
+ --description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"}]}function parentFlag(parent,mode){const parentLabel=label(parent.kind);const summary=mode==="create"?`\u7D10\u3065\u3051\u308B${parentLabel}\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\u3002\u7701\u304F\u3068\u6709\u52B9\u306A${parentLabel}\u3059\u3079\u3066\u306B\u7D10\u3065\u304F\uFF09`:`\u7D10\u3065\u3051\u308B${parentLabel}\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\u3002\u8907\u6570\u306A\u3089\u7E70\u308A\u8FD4\u3059\u3002\
9
+ \u6307\u5B9A\u3057\u305F\u3082\u306E\u3067\u7F6E\u304D\u63DB\u3048\u308B\uFF09`;return{name:parent.flag,summary,takesValue:true,placeholder:`<${parentLabel}>`,repeatable:true}}async function resolveParents(input,ctx,parent){const refs=repeatedValues(input,parent.flag);if(refs.length===0)return void 0;const ids=[];for(const ref of refs){if(ref.trim()==="")throw new UsageError(`${parent.flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);const id=(await ctx.resolver.attendanceReportMaster(
10
+ parent.kind,ref,parent.flag)).id;if(!ids.includes(id))ids.push(id)}return ids}function parentIds(input){const raw=input.resolved?.["parentIds"];return raw===void 0?void 0:JSON.parse(raw)}function writeBody(input,spec,fields){const body=fieldBody(input,fields);const ids=parentIds(input);if(spec.parent!==void 0&&ids!==void 0)body[spec.parent.bodyKey]=ids;return body}function noArgs(input,operation,usage){if(input.args.length>0)throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
11
+ args.join(" ")}`,usage)}function masterResource(spec){const name=label(spec.kind);const base=`${COMMAND} ${spec.name}`;const fields=[...commonFields(name),...spec.fields];const forbidden=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${name}\u306E\u4F5C\u6210\u30FB\u5909\u66F4\u30FB\u524A\u9664\u306F\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059\uFF08\u95B2\u89A7\u306F\u8AB0\u3067\u3082\u3067\u304D\u307E\u3059\uFF09`;const refHelp=`\
12
+ <${name}> \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u7121\u52B9\u306B\u3057\u305F\u3082\u306E\u3082\u542B\u3081\u3066\u5B8C\u5168\u4E00\u81F4\u3002\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2\uFF09\u3002`;const refFlag={name:`--${spec.name}`,summary:`\u5BFE\u8C61\u306E${name}\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09`,
13
+ takesValue:true,placeholder:`<${name}>`};const prepareTarget=async(input,ctx,usage)=>withResolved(input,{id:await targetId(input,{flag:refFlag.name,label:name,usage,resolve:ref=>ctx.resolver.attendanceReportMaster(spec.kind,ref,`<${name}>`)})});const itemPath=input=>`${ATTENDANCE_REPORT_MASTER_PATHS[spec.kind]}/${idSegment(input,name)}`;const item=body=>masterItem(body,spec.itemKey,name);const parent=spec.parent;const parentLabel=parent===void 0?void 0:label(parent.kind);const withParents=async(input,ctx)=>{
14
+ if(parent===void 0)return input;const ids=await resolveParents(input,ctx,parent);return ids===void 0?input:withResolved(input,{parentIds:JSON.stringify(ids)})};const listUsage=`${base} list [--status active|inactive] [--keyword <\u8A9E>]${parent!==void 0?` [${parent.flag} <${parentLabel}>]`:""} [--limit <\u4EF6\u6570>]`;const listOperation2={name:"list",summary:`${name}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u7121\u52B9\u306A\u3082\u306E\u3082\u542B\u3080\uFF09`,usage:listUsage,description:`GET ${ATTENDANCE_REPORT_MASTER_PATHS[spec.
15
+ kind].replace("/api","")} \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u753B\u9762\u300C\u5404\u7A2E\u30DE\u30B9\u30BF\u8A2D\u5B9A > ${name}\u300D\u3068\u540C\u3058\uFF09\u3002
16
+ --keyword \u306F\u30B3\u30FC\u30C9\u3068\u540D\u524D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u3059\u3002
17
+ `+(parent!==void 0?`${parent.flag} \u3092\u4ED8\u3051\u308B\u3068\u3001\u305D\u306E${parentLabel}\u306B\u7D10\u3065\u304F${name}\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u3002
18
+ `:"")+`\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001--limit \u4EF6\uFF08\u65E2\u5B9A ${ORG_MASTER_LIMIT}\uFF09\u3067\u6253\u3061\u5207\u308A\u307E\u3059\u3002\u6253\u3061\u5207\u3063\u305F\u3068\u304D\u306F stderr \u3067\u77E5\u3089\u305B\u307E\u3059\u3002
19
+
20
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
21
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${spec.listColumns.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080\uFF08active / inactive\uFF09",takesValue:true,placeholder:"<active|inactive>"},{name:"--keyword",summary:"\u30B3\u30FC\u30C9\u30FB\u540D\u524D\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},...parent!==void 0?[{name:parent.flag,summary:`\u7D10\u3065\u304F${parentLabel}\
22
+ \u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09`,takesValue:true,placeholder:`<${parentLabel}>`}]:[],{name:"--limit",summary:`\u53D6\u5F97\u3059\u308B\u4EF6\u6570\u306E\u4E0A\u9650\uFF08\u65E2\u5B9A ${ORG_MASTER_LIMIT}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"}],async prepare(input,ctx){noArgs(input,"list",listUsage);if(parent===void 0)return input;const ref=nonEmpty(input.flags,parent.flag);if(ref===void 0)return input;return withResolved(input,{
23
+ parentId:(await ctx.resolver.attendanceReportMaster(parent.kind,ref,parent.flag)).id})},plan(input){const raw=nonEmpty(input.flags,"--status");const status=raw?.trim().toLowerCase();if(status!==void 0&&!STATUS_VALUES.includes(status)){throw new UsageError(`--status \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${STATUS_VALUES.join(" / ")} \u3067\u3059\u3002`)}const query={status,keyword:nonEmpty(input.flags,"--keyword"),limit:positiveInteger(
24
+ input.flags,"--limit")??ORG_MASTER_LIMIT};if(parent!==void 0&&input.flags.has(parent.flag))query[parent.queryKey]=requireResolved(input,"parentId");return{method:"GET",path:ATTENDANCE_REPORT_MASTER_PATHS[spec.kind],query}},summarize:body=>masterRows(body,name).map(row=>pick(row,spec.listColumns)),raw:body=>masterRows(body,name),notes:body=>truncationNotes(body,name)};const createUsage=`${base} create --code <\u30B3\u30FC\u30C9> --name <\u540D\u524D>${parent!==void 0?` [${parent.flag} <${parentLabel}\
25
+ >]\u2026`:""} [\u9805\u76EE\u2026]`;const updateUsage=`${base} update <${name}> [\u9805\u76EE\u2026]`;return{name:spec.name,summary:`\u52E4\u6020\u9023\u7D61\u306E${name}\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u5909\u66F4\u30FB\u524A\u9664\uFF09`,operations:[listOperation2,{name:"get",summary:`${name}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B`,usage:`${base} get <${name}>`,description:`${refHelp}
26
+
27
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[refFlag],prepare:(input,ctx)=>prepareTarget(input,ctx,`${base} get help`),plan:input=>({method:"GET",path:itemPath(input)}),summarize:body=>pick(item(body),spec.getColumns),raw:body=>item(body)},{name:"create",summary:`${name}\u3092\u4F5C\u6210\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:createUsage,description:`--code \u3068 --name \u304C\u5FC5\u9808\u3067\u3059\
28
+ \u3002\u305D\u306E\u307B\u304B\u306E\u9805\u76EE\u306F\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08\u6709\u52B9\u30FB\u8868\u793A\u9806 0\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
29
+ `+(parent!==void 0?`${parent.flag} \u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u304C\u305D\u306E\u6642\u70B9\u3067\u6709\u52B9\u306A${parentLabel}\u3059\u3079\u3066\u306B\u7D10\u3065\u3051\u307E\u3059\uFF08\u5168${parentLabel}\u306E\u9078\u629E\u80A2\u306B\u51FA\u307E\u3059\uFF09\u3002
30
+ \u4F5C\u3063\u305F\u76F4\u5F8C\u306E${parentLabel}\u3082\u540D\u524D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u306E\u7167\u5408\u306F\u30AD\u30E3\u30C3\u30B7\u30E5\u3057\u307E\u305B\u3093\uFF09\u3002
31
+ `:"")+`
32
+ \u4F5C\u6210\u3057\u305F${name}\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002`,forbidden,flags:[...createFlags(fields),...parent!==void 0?[parentFlag(parent,"create")]:[]],async prepare(input,ctx){noArgs(input,"create",createUsage);const body=fieldBody(input,fields);for(const key of["code","name"]){if(body[key]===void 0)throw new UsageError(`--${key} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,createUsage)}return withParents(input,ctx)},plan:input=>({method:"POST",path:ATTENDANCE_REPORT_MASTER_PATHS[spec.
33
+ kind],body:writeBody(input,spec,fields)}),summarize:body=>pick(item(body),spec.getColumns),raw:body=>item(body)},{name:"update",summary:`${name}\u3092\u5909\u66F4\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u307F\uFF09`,usage:updateUsage,description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
34
+ `+(parent!==void 0?`${parent.flag} \u306F\u7D10\u3065\u3051\u3092**\u6307\u5B9A\u3057\u305F\u3082\u306E\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059**\uFF08\u8DB3\u3059\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
35
+ `:"")+`\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044${name}\u306F\u3001\u524A\u9664\u305B\u305A\u306B --status inactive \u3067\u7121\u52B9\u306B\u3067\u304D\u307E\u3059\uFF08\u904E\u53BB\u306E\u52E4\u6020\u9023\u7D61\u306E\u8868\u793A\u306F\u305D\u306E\u307E\u307E\u6B8B\u308A\u307E\u3059\uFF09\u3002
36
+
37
+ ${refHelp}`,forbidden,flags:[...updateFlags(fields),...parent!==void 0?[parentFlag(parent,"update")]:[],refFlag],async prepare(input,ctx){const parentGiven=parent!==void 0&&repeatedValues(input,parent.flag).length>0;if(!hasAnyField(input,fields)&&!parentGiven){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${base} update help`)}fieldBody(input,fields);const target=await prepareTarget(input,ctx,`${base} update \
38
+ help`);return withParents(target,ctx)},plan:input=>({method:"PUT",path:itemPath(input),body:writeBody(input,spec,fields)}),summarize:body=>pick(item(body),spec.getColumns),raw:body=>item(body)},{name:"delete",summary:`${name}\u3092\u524A\u9664\u3059\u308B\uFF08\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09`,usage:`${base} delete <${name}> --yes`,description:`${spec.deleteGuidance}
39
+
40
+ ${refHelp}`,destructive:true,forbidden,rejected:server=>server.includes("\u524A\u9664\u3067\u304D\u307E\u305B\u3093")?spec.deleteGuidance:void 0,flags:[refFlag],prepare:(input,ctx)=>prepareTarget(input,ctx,`${base} delete help`),plan:input=>({method:"DELETE",path:itemPath(input)}),summarize:body=>acknowledgement(body,`${name}\u524A\u9664`),raw:body=>acknowledgement(body,`${name}\u524A\u9664`)}]}}var reportCategoryResource=masterResource({kind:"categories",name:"report-category",itemKey:"category",
41
+ fields:[{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},...tailFields()],listColumns:["id","code","name","name_short","sort","status","is_admin_only"],getColumns:["id","code","name","name_short","sort","status","is_admin_only","description"],deleteGuidance:"\u9023\u7D61\u7406\u7531\u304C\u7D10\u3065\u3044\u3066\u3044\u308B\u9023\u7D61\u533A\u5206\u306F\u3001\u30B5\u30FC\u30D0\u304C\u524A\u9664\u3092\u65AD\u308A\u307E\u3059\uFF08\u524A\u9664\u306F\u5B50 \u2192 \u89AA\u306E\u9806\uFF09\u3002\n\u7D10\u3065\u304F\u7406\u7531\u306F twp attendance report-reason list --category <\u533A\u5206> \u3067\u78BA\u304B\u3081\u3001\u7406\u7531\u3092\u6D88\u3059\u304B\u7D10\u3065\u3051\u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\uFF08report-reason update <\u7406\u7531> --category <\u5225\u306E\u533A\u5206>\uFF09\u3002\n\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\
42
+ \u306B\u7121\u52B9\u306B\u3067\u304D\u307E\u3059: twp attendance report-category update <\u533A\u5206> --status inactive"});var reportReasonResource=masterResource({kind:"reasons",name:"report-reason",itemKey:"reason",fields:tailFields(),parent:{kind:"categories",flag:"--category",bodyKey:"category_ids",queryKey:"category_id"},listColumns:["id","code","name","category_ids","sort","status","is_admin_only"],getColumns:["id","code","name","category_ids","sort","status","is_admin_only","description"],
43
+ deleteGuidance:"\u9023\u7D61\u7406\u7531\u8A73\u7D30\u304C\u7D10\u3065\u3044\u3066\u3044\u308B\u9023\u7D61\u7406\u7531\u306F\u3001\u30B5\u30FC\u30D0\u304C\u524A\u9664\u3092\u65AD\u308A\u307E\u3059\uFF08\u524A\u9664\u306F\u5B50 \u2192 \u89AA\u306E\u9806\uFF09\u3002\n\u7D10\u3065\u304F\u7406\u7531\u8A73\u7D30\u306F twp attendance report-reason-detail list --reason <\u7406\u7531> \u3067\u78BA\u304B\u3081\u3001\u7406\u7531\u8A73\u7D30\u3092\u6D88\u3059\u304B\u7D10\u3065\u3051\u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\u306B\u7121\u52B9\u306B\u3067\u304D\u307E\u3059: twp attendance report-reason update <\u7406\u7531> --status inactive"});
44
+ var reportReasonDetailResource=masterResource({kind:"details",name:"report-reason-detail",itemKey:"reason_detail",fields:[...tailFields(),{kind:"boolean",flag:"--yearly-count",key:"show_yearly_count",summary:"\u5E74\u5EA6\u5185\u53D6\u5F97\u56DE\u6570\u8868\u793A\uFF08\u52E4\u6020\u9023\u7D61\u3067\u3053\u306E\u7406\u7531\u8A73\u7D30\u3092\u9078\u3093\u3060\u3068\u304D\u3001\u5E74\u5EA6\u5185\u306E\u53D6\u5F97\u56DE\u6570\u3092\u51FA\u3059\u304B\u3002true / false\uFF09"}],parent:{kind:"reasons",
45
+ flag:"--reason",bodyKey:"reason_ids",queryKey:"reason_id"},listColumns:["id","code","name","reason_ids","sort","status","is_admin_only","show_yearly_count"],getColumns:["id","code","name","reason_ids","sort","status","is_admin_only","show_yearly_count","description"],deleteGuidance:"\u9023\u7D61\u7406\u7531\u8A73\u7D30\u306F\u7D10\u3065\u304F\u5B50\u3092\u6301\u305F\u306A\u3044\u306E\u3067\u3001\u305D\u306E\u307E\u307E\u524A\u9664\u3067\u304D\u307E\u3059\u3002\n\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\u306B\u7121\u52B9\u306B\u3067\u304D\u307E\u3059: twp attendance report-reason-detail update <\u7406\u7531\u8A73\u7D30> --status inactive"});var REPORT_LIST_USAGE="twp attendance report list [--month <YYYY-MM> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var REPORT_GET_USAGE="twp attendance report get <ID>";var REPORT_REASONS_USAGE="twp attendance report reasons";var REPORT_CREATE_USAGE="twp attendance report create (--date <YYYY-MM-DD> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>) --category <\u533A\u5206> --reason <\u7406\u7531> [--detail <\u7406\u7531\u8A73\u7D30>] [--start-time <HH:MM>] [--end-time <HH:MM>] [--note <\u9023\u7D61\u5185\u5BB9> | --note-file <\u30D1\u30B9>]\
7
46
  [--private-note <\u975E\u516C\u958B\u30E1\u30E2> | --private-note-file <\u30D1\u30B9>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var REPORT_UPDATE_USAGE="twp attendance report update <ID> [--category <\u533A\u5206> --reason <\u7406\u7531>] [--reason <\u7406\u7531>] [--detail <\u7406\u7531\u8A73\u7D30> | --clear-detail] [--start-time <HH:MM>] [--end-time <HH:MM>] [--note <\u9023\u7D61\u5185\u5BB9> | --note-file <\u30D1\u30B9>] [--private-note <\u975E\u516C\u958B\u30E1\u30E2> | --private-note-file <\u30D1\u30B9>]";
8
47
  var REPORT_DELETE_USAGE="twp attendance report delete <ID> --yes";var TEAM_USAGE="twp attendance team [--mode all|related|project] [--project <\u30B3\u30FC\u30C9|ID>]";var FLEX_USAGE="twp attendance flex-settlement [--month <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var RANGE_MONTHS_MAX=12;var NOTE_MAX=2e3;var TIME_PATTERN=/^([01]\d|2[0-3]):[0-5]\d$/;var FOREIGN_ID_PREFIXES={"paid-leave-":"\u6709\u7D66\u4F11\u6687\uFF08twp leave\uFF09","work-change-":"\u52E4\u52D9\u5909\u66F4\uFF08twp workchange\uFF09"};
9
48
  var REPORT_COLUMNS=["report_date","user_name","kind","reason","detail","time","content","id"];var TEAM_COLUMNS=["user_name","user_code","status_label","last_type","last_recorded_at","project","work_location","notices","user_id"];var FLEX_COLUMNS=["settlement_period","settlement_start_month","settlement_end_month","current_year_month","is_settlement_month","total_scheduled_work_hours","total_actual_work_hours","carry_over_from_previous_hours","excess_or_deficiency_hours","legal_excess_hours","def\
@@ -13,8 +52,8 @@ takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--reason",summary:"\u9023\u
13
52
  --start-time",summary:"\u5BFE\u8C61\u306E\u958B\u59CB\u6642\u523B\uFF08HH:MM\u3002\u9045\u523B\u306E\u51FA\u52E4\u4E88\u5B9A\u306A\u3069\uFF09",takesValue:true,placeholder:"<HH:MM>"},{name:"--end-time",summary:"\u5BFE\u8C61\u306E\u7D42\u4E86\u6642\u523B\uFF08HH:MM\u3002\u65E9\u9000\u306E\u9000\u52E4\u4E88\u5B9A\u306A\u3069\uFF09",takesValue:true,placeholder:"<HH:MM>"},{name:"--note",summary:`\u9023\u7D61\u5185\u5BB9\uFF08${NOTE_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u9023\
14
53
  \u7D61\u5185\u5BB9>"},{name:"--note-file",summary:"\u9023\u7D61\u5185\u5BB9\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u306F\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--private-note",summary:`\u975E\u516C\u958B\u30E1\u30E2\uFF08\u672C\u4EBA\u30FB\u4F5C\u6210\u8005\u30FB\u7BA1\u7406\u8005\u3060\u3051\u304C\u898B\u3089\u308C\u308B\u30FB${NOTE_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30E1\u30E2>"},{name:"--priv\
15
54
  ate-note-file",summary:"\u975E\u516C\u958B\u30E1\u30E2\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u306F\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}];function monthsBetween(start,end){const months=[];let year=Number(start.slice(0,4));let month=Number(start.slice(5,7));const last=end.slice(0,7);for(;;){const current=`${String(year)}-${String(month).padStart(2,"0")}`;months.push(current);if(current>=last)return months;month+=1;if(month>12){month=1;
16
- year+=1}}}function noArgs(input,operation,usage){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function reportId(input,usage){const[id,...rest]=input.args;if(id===void 0||id.trim()==="")throw new UsageError("\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp attendance report list \u306E id \u5217\uFF09",usage);if(rest.length>
17
- 0)throw new UsageError(`ID \u306F1\u3064\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059: ${rest.join(" ")}`,usage);if(!isSafePathSegment(id.trim()))throw new UsageError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u6587\u5B57\u3092\u542B\u307F\u307E\u3059: ${id}`,usage);return id.trim()}function assertOwnReportId(id,usage){for(const[prefix,label]of Object.entries(FOREIGN_ID_PREFIXES)){if(id.startsWith(prefix)){throw new UsageError(`${id} \u306F\u52E4\u6020\u9023\u7D61\u3067\u306F\u306A\u304F${label}\
55
+ year+=1}}}function noArgs2(input,operation,usage){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usage)}}function reportId(input,usage){const[id,...rest]=input.args;if(id===void 0||id.trim()==="")throw new UsageError("\u52E4\u6020\u9023\u7D61\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp attendance report list \u306E id \u5217\uFF09",usage);if(rest.length>
56
+ 0)throw new UsageError(`ID \u306F1\u3064\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059: ${rest.join(" ")}`,usage);if(!isSafePathSegment(id.trim()))throw new UsageError(`\u52E4\u6020\u9023\u7D61\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u6587\u5B57\u3092\u542B\u307F\u307E\u3059: ${id}`,usage);return id.trim()}function assertOwnReportId(id,usage){for(const[prefix,label2]of Object.entries(FOREIGN_ID_PREFIXES)){if(id.startsWith(prefix)){throw new UsageError(`${id} \u306F\u52E4\u6020\u9023\u7D61\u3067\u306F\u306A\u304F${label2}\
18
57
  \u3067\u3059\u3002\u52E4\u6020\u9023\u7D61\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u5909\u66F4\u30FB\u524A\u9664\u3067\u304D\u307E\u305B\u3093`,usage)}}}async function resolveUserFlag(input,ctx){const ref=input.flags.get("--user");if(ref===void 0)return{};return{userId:(await ctx.resolver.user(ref,"--user")).id}}function timeFlag(input,name,usage){const raw=input.flags.get(name);if(raw===void 0)return void 0;if(!TIME_PATTERN.test(raw.trim()))throw new UsageError(`${name} \u306F HH:MM \u5F62\u5F0F\uFF0800:00\u301C23:59\
19
58
  \uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);return raw.trim()}function str(value){return typeof value==="string"&&value!==""?value:null}function rowsToRefs(rows){return rows.flatMap(row=>{const id=str(row["id"]);const name=str(row["name"]);return id===null||name===null?[]:[{id,name,code:str(row["code"])}]})}function linkedTo(row,key,parentId){const ids=row[key];return Array.isArray(ids)&&ids.includes(parentId)}async function resolveMasters(ctx,names){
20
59
  const masters=await ctx.resolver.attendanceReportMasters();const out={};let categoryId=names.categoryId;if(names.category!==void 0){categoryId=(await resolveNamed(names.category,rowsToRefs(masters.categories),{flag:"--category",label:"\u6709\u52B9\u306A\u9023\u7D61\u533A\u5206",scope:"\u3053\u306E\u30C6\u30CA\u30F3\u30C8"})).id;out["categoryId"]=categoryId}let reasonId=names.reasonId;if(names.reason!==void 0){const candidates=categoryId===void 0?masters.reasons:masters.reasons.filter(row=>linkedTo(
@@ -40,7 +79,7 @@ user_name"],kind:kindOf(row),reason:row["reason_name"]??(isRecord(row["reason"])
40
79
  ${USER_REF_HELP}
41
80
  \u627F\u8A8D\u6E08\u307F\u306E\u6709\u7D66\u4F11\u6687\uFF08id \u304C paid-leave-\u2026\uFF09\u3068\u52E4\u52D9\u5909\u66F4\uFF08work-change-\u2026\uFF09\u3082\u540C\u3058\u4E00\u89A7\u306B\u4E26\u3073\u307E\u3059\u3002
42
81
  \u884C\u306B\u306F\u533A\u5206\u30FB\u7406\u7531\u306E ID \u3057\u304B\u7121\u3044\u306E\u3067\u3001\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\u3082\u5F15\u3044\u3066\u540D\u524D\uFF08category_name / reason_name / reason_detail_name\uFF09\u3092\u8DB3\u3057\u307E\u3059\u3002
43
- --output json \u306F API \u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u3001\u3053\u306E3\u3064\u306E\u540D\u524D\u3092\u8DB3\u3057\u305F\u3082\u306E\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,USER_FLAG],async prepare(input,ctx){noArgs(input,"report list",REPORT_LIST_USAGE);listRange(input);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>listPlanFor(input,listRange(input).months[0]),plannedNotes:input=>{const{months}=listRange(input);const rest=months.
82
+ --output json \u306F API \u306E\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u3001\u3053\u306E3\u3064\u306E\u540D\u524D\u3092\u8DB3\u3057\u305F\u3082\u306E\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,USER_FLAG],async prepare(input,ctx){noArgs2(input,"report list",REPORT_LIST_USAGE);listRange(input);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>listPlanFor(input,listRange(input).months[0]),plannedNotes:input=>{const{months}=listRange(input);const rest=months.
44
83
  slice(1);return[...rest.length>0?[`\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066 ${rest.join(" / ")} \u306E\u4E00\u89A7\u3082\u9001\u308A\u307E\u3059\u3002`]:[],"\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\uFF08GET /api/v2/attendance/report-{categories,reasons,reason-details}\uFF09\u3082\u9001\u308A\u3001\u540D\u524D\u3092\u8DB3\u3057\u307E\u3059\u3002"]},execute:listReports,summarize:body=>reportList(body).map(summarizeReport),
45
84
  raw:body=>reportList(body),notes:body=>{const rows=reportList(body);const foreign=rows.filter(row=>isRecord(row)&&(row["is_paid_leave"]===true||row["is_work_change"]===true)).length;return[`${String(rows.length)} \u4EF6${foreign>0?`\uFF08\u3046\u3061\u6709\u7D66\u30FB\u52E4\u52D9\u5909\u66F4 ${String(foreign)} \u4EF6\u3002\u5909\u66F4\u306F twp leave / twp workchange \u3067\u884C\u3044\u307E\u3059\uFF09`:""}`]}};var getOperation={name:"get",summary:"\u52E4\u6020\u9023\u7D611\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",
46
85
  usage:REPORT_GET_USAGE,description:"GET /api/v2/attendance/reports/{id} \u3092\u8868\u793A\u3057\u307E\u3059\u3002\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306F\u30DE\u30B9\u30BF\u306E\u5185\u5BB9\uFF08category / reason / reason_detail\uFF09\u4ED8\u304D\u3067\u8FD4\u308A\u307E\u3059\u3002\npaid-leave-\u2026 / work-change-\u2026 \u306E ID \u306F\u3001\u6709\u7D66\u4F11\u6687\u30FB\u52E4\u52D9\u5909\u66F4\u306E\u5185\u5BB9\u3092\u52E4\u6020\u9023\u7D61\u306E\u5F62\u3067\u8FD4\u3057\u307E\u3059\u3002\n\u672C\u4EBA\u30FB\u4F5C\u6210\u8005\u30FB\u52E4\u6020\u306E\u7BA1\u7406\u8005\u4EE5\u5916\u306B\u306F\u3001\u975E\u516C\u958B\u30E1\u30E2\uFF08content_private\uFF09\u3068\u7406\u7531\u8A73\u7D30\u304C\u4F0F\u305B\u3089\u308C\u307E\u3059\u3002",
@@ -48,7 +87,7 @@ flags:[],plan:input=>({method:"GET",path:`${ATTENDANCE_REPORTS_PATH}/${encodeURI
48
87
  body)||!Array.isArray(body["categories"])||!Array.isArray(body["reasons"])||!Array.isArray(body["details"])){throw new ApiResponseError("\u533A\u5206\u30FB\u7406\u7531\u306E\u5FDC\u7B54\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")}return body}function summarizeReasons(body){const{categories,reasons,details}=mastersBody(body);const rows=[];for(const category of categories){const categoryId=str(
49
88
  category["id"]);if(categoryId===null)continue;for(const reason of reasons.filter(row=>linkedTo(row,"category_ids",categoryId))){const reasonId=str(reason["id"]);const linked=reasonId===null?[]:details.filter(row=>linkedTo(row,"reason_ids",reasonId));rows.push({category:category["name"],reason:reason["name"],details:linked.map(row=>row["name"]).join(" / ")||null,admin_only:category["is_admin_only"]===true||reason["is_admin_only"]===true})}}return rows}var reasonsOperation={name:"reasons",summary:"\
50
89
  \u52E4\u6020\u9023\u7D61\u3067\u4F7F\u3048\u308B\u533A\u5206\u30FB\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u7D44\u307F\u5408\u308F\u305B\u3092\u4E00\u89A7\u3059\u308B",usage:REPORT_REASONS_USAGE,description:"GET /api/v2/attendance/report-categories/active\u30FBreport-reasons/active\u30FBreport-reason-details/active \u3092\u5F15\u304D\u3001\n\u533A\u5206 \xD7 \u7406\u7531\u306E\u7D44\u307F\u5408\u308F\u305B\u3054\u3068\u306B1\u884C\u3067\u51FA\u3057\u307E\u3059\uFF08details \u306F\u305D\u306E\u7406\u7531\u3067\u9078\u3079\u308B\u7406\u7531\u8A73\u7D30\uFF09\u3002\nreport create \u306E --category / --reason / --detail \u306B\u306F\u3001\u3053\u3053\u306B\u51FA\u308B\u540D\u524D\uFF08\u307E\u305F\u306F\u30B3\u30FC\u30C9\u30FBID\uFF09\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\nadmin_only=true \u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u5411\u3051\u306E\u533A\u5206\u30FB\u7406\u7531\u3067\u3059\u3002\n--output json \u306F3\u3064\u306E\u4E00\
51
- \u89A7\uFF08categories / reasons / details\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\u533A\u5206\u30FB\u7406\u7531\u306E\u767B\u9332\u30FB\u5909\u66F4\u306F\u7BA1\u7406\u753B\u9762\u3067\u884C\u3044\u307E\u3059\u3002",flags:[],plan(input){noArgs(input,"report reasons",REPORT_REASONS_USAGE);return{method:"GET",path:`${ATTENDANCE_REPORT_MASTER_PATHS.categories}/active`}},plannedNotes:()=>["\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\uFF08report-reasons/active\u30FBreport-reason-details/active\uFF09\u3082\u9001\u308A\u307E\u3059\u3002"],
90
+ \u89A7\uFF08categories / reasons / details\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\u533A\u5206\u30FB\u7406\u7531\u306E\u767B\u9332\u30FB\u5909\u66F4\u306F\u7BA1\u7406\u753B\u9762\u3067\u884C\u3044\u307E\u3059\u3002",flags:[],plan(input){noArgs2(input,"report reasons",REPORT_REASONS_USAGE);return{method:"GET",path:`${ATTENDANCE_REPORT_MASTER_PATHS.categories}/active`}},plannedNotes:()=>["\u5B9F\u884C\u6642\u306F\u7D9A\u3051\u3066\u7406\u7531\u30FB\u7406\u7531\u8A73\u7D30\u306E\u4E00\u89A7\uFF08report-reasons/active\u30FBreport-reason-details/active\uFF09\u3082\u9001\u308A\u307E\u3059\u3002"],
52
91
  execute:listReasons,summarize:summarizeReasons,raw:mastersBody};function createDates(input){const date=dateFlag(input.flags);const from=dateFlag(input.flags,"--from");const to=dateFlag(input.flags,"--to");if(date!==void 0&&(from!==void 0||to!==void 0)){throw new UsageError("--date \u3068 --from / --to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",REPORT_CREATE_USAGE)}if(date!==void 0)return{date,months:[date.slice(0,7)]};if(from===void 0||to===void 0){throw new UsageError("\
53
92
  \u65E5\u4ED8\u3092 --date \u304B --from / --to\uFF08\u4E21\u65B9\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",REPORT_CREATE_USAGE)}if(from>to)throw new UsageError(`--from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u3067\u3059`,REPORT_CREATE_USAGE);return{from,to,months:monthsBetween(from,to)}}var RANGE_CONFIRM_DAYS=31;function calendarDays(from,to){return Math.round((Date.parse(`${to}T00:00:00Z`)-Date.parse(`${from}T00:00:00Z`))/864e5)+1}async function createPreview(input){
54
93
  const dates=createDates(input);if(dates.from===void 0||dates.to===void 0)return{notes:[],warnings:[]};const days=calendarDays(dates.from,dates.to);return{notes:[`${dates.from}\u301C${dates.to} \u306E ${String(days)} \u65E5\u5206\uFF08\u571F\u65E5\u795D\u3092\u542B\u3080\u6BCE\u65E5\uFF09\u306B\u3001\u52E4\u6020\u9023\u7D61\u30921\u4EF6\u305A\u3064\u767B\u9332\u3057\u307E\u3059`],warnings:days>RANGE_CONFIRM_DAYS?[`\u671F\u9593\u304C ${String(days)} \u65E5\u3042\u308A\u307E\u3059\uFF08${String(RANGE_CONFIRM_DAYS)}\
@@ -64,7 +103,7 @@ usage:REPORT_CREATE_USAGE,description:`--date \u306A\u3089 POST /api/v2/attendan
64
103
  --user \u3092\u7701\u304F\u3068\u81EA\u5206\u306E\u5206\u3067\u3059\u3002\u4ED6\u306E\u4EBA\u306E\u5206\u306F\u52E4\u6020\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u767B\u9332\u3067\u304D\u307E\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002
65
104
  ${USER_REF_HELP}
66
105
  \u767B\u9332\u3059\u308B\u3068\u4E0A\u9577\u3078\u901A\u77E5\u304C\u5C4A\u304D\u307E\u3059\u3002\u5BFE\u8C61\u306E\u6708\uFF08\u671F\u9593\u306A\u3089\u304B\u304B\u308B\u6708\u3059\u3079\u3066\uFF09\u304C\u7DE0\u3081\u6E08\u307F\u306A\u3089\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002`,flags:[{name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},FROM_FLAG,TO_FLAG,...WRITE_FLAGS,
67
- USER_FLAG],async prepare(input,ctx){noArgs(input,"report create",REPORT_CREATE_USAGE);createDates(input);timeFlag(input,"--start-time",REPORT_CREATE_USAGE);timeFlag(input,"--end-time",REPORT_CREATE_USAGE);const category=requireFlag(input,"--category",REPORT_CREATE_USAGE);const reason=requireFlag(input,"--reason",REPORT_CREATE_USAGE);const notes=await readNotes(input,REPORT_CREATE_USAGE);const user=await resolveUserFlag(input,ctx);const detail=input.flags.get("--detail");const masters=await resolveMasters(
106
+ USER_FLAG],async prepare(input,ctx){noArgs2(input,"report create",REPORT_CREATE_USAGE);createDates(input);timeFlag(input,"--start-time",REPORT_CREATE_USAGE);timeFlag(input,"--end-time",REPORT_CREATE_USAGE);const category=requireFlag(input,"--category",REPORT_CREATE_USAGE);const reason=requireFlag(input,"--reason",REPORT_CREATE_USAGE);const notes=await readNotes(input,REPORT_CREATE_USAGE);const user=await resolveUserFlag(input,ctx);const detail=input.flags.get("--detail");const masters=await resolveMasters(
68
107
  ctx,{category,reason,...detail===void 0?{}:{detail}});return withResolved(input,{...user,...masters,...notes})},plan:createPlan,preview:createPreview,plannedNotes:()=>[closingNote("\u767B\u9332")],async execute(input,ctx){const plan=createPlan(input);await assertReportMonthsOpen(ctx,createDates(input).months,input.resolved?.["userId"],"\u767B\u9332");return withNames(await ctx.send(plan),input)},summarize:body=>createdReports(body).map(summarizeReport),raw:body=>(createdReports(body),body),notes:body=>{
69
108
  const skipped=isRecord(body)&&Array.isArray(body["skipped_dates"])?body["skipped_dates"]:[];const notes=[`${String(createdReports(body).length)} \u4EF6\u767B\u9332\u3057\u307E\u3057\u305F`];if(skipped.length>0)notes.push(`\u30B5\u30FC\u30D0\u304C\u767B\u9332\u3057\u306A\u304B\u3063\u305F\u65E5: ${skipped.map(String).join(" / ")}`);return notes}};async function prepareExisting(input,ctx,usage){const id=reportId(input,usage);assertOwnReportId(id,usage);const report=await ctx.resolver.attendanceReport(
70
109
  id);const date=str(report["report_date"]);const userId=str(report["user_id"]);if(date===null||userId===null){throw new ApiResponseError("\u52E4\u6020\u9023\u7D61\u306E\u5FDC\u7B54\u306B report_date / user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{reportMonth:date.slice(0,7),reportUserId:userId,...str(report["category_id"])===null?{}:{currentCategoryId:str(report["category_id"])},...str(report["reason_id"])===
@@ -85,7 +124,7 @@ operations:[listOperation,getOperation,createOperation,updateOperation,deleteOpe
85
124
  "\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u72B6\u6CC1\u306E\u5FDC\u7B54\u306B team_status \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeMember(member){const row=isRecord(member)?member:{};const last=isRecord(row["last_record"])?row["last_record"]:void 0;const notices=Array.isArray(row["notices"])?row["notices"]:[];return pick({user_name:row["user_name"],user_code:row["user_code"],status_label:row["\
86
125
  status_label"],last_type:last?.["type_label"]??null,last_recorded_at:last?.["recorded_at"]??null,project:row["current_project_name"],work_location:row["work_location"],notices:notices.map(notice=>isRecord(notice)?notice["label"]:notice).join(" / ")||null,user_id:row["user_id"]},TEAM_COLUMNS)}var teamOperation={name:"team",summary:"\u30C1\u30FC\u30E0\u306E\u3044\u307E\u306E\u6253\u523B\u72B6\u614B\u3068\u3001\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u4F11\u6687\u3092\u8868\u793A\u3059\u308B",
87
126
  usage:TEAM_USAGE,description:"GET /api/v1/attendance/team-dashboard \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u300C\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u300D\u3068\u540C\u3058\u96C6\u8A08\uFF09\u3002\n--mode all\uFF08\u65E2\u5B9A\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u8868\u793A\u5BFE\u8C61\u306E\u5168\u54E1\u3001related \u306F\u81EA\u5206\u3068\u95A2\u4FC2\u306E\u3042\u308B\u4EBA\uFF08\u90E8\u4E0B\u30FB\u540C\u3058\u90E8\u7F72\u306A\u3069\uFF09\u3001\nproject \u306F --project \u306E\u30E1\u30F3\u30D0\u30FC\u3067\u3059\uFF08--project \u3092\u4ED8\u3051\u308C\u3070 --mode \u306F\u7701\u3051\u307E\u3059\uFF09\u3002\nnotices \u306F\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u6709\u7D66\u30FB\u52E4\u52D9\u5909\u66F4\u30FB\u30B7\u30D5\u30C8\u3067\u3059\u3002\u4ECA\u65E5\u306E\u65E5\u4ED8\u3068\u3001\u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61\u30FB\u4F11\u8077\u4E2D\u306E\u4EBA\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08attendance_reports\u30FBleaves_of_absence \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
88
- flags:[{name:"--mode",summary:"\u5BFE\u8C61\u306E\u7BC4\u56F2\uFF08all / related / project\uFF09",takesValue:true,placeholder:"<all|related|project>"},{name:"--project",summary:"\u5BFE\u8C61\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u30FB--mode project\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"}],async prepare(input,ctx){noArgs(input,"team",TEAM_USAGE);teamMode(input);const explicit=input.flags.get("--project");if(explicit===void 0)return input;
127
+ flags:[{name:"--mode",summary:"\u5BFE\u8C61\u306E\u7BC4\u56F2\uFF08all / related / project\uFF09",takesValue:true,placeholder:"<all|related|project>"},{name:"--project",summary:"\u5BFE\u8C61\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u30FB--mode project\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"}],async prepare(input,ctx){noArgs2(input,"team",TEAM_USAGE);teamMode(input);const explicit=input.flags.get("--project");if(explicit===void 0)return input;
89
128
  return withResolved(input,{projectId:await ctx.projectId(explicit)})},plan(input){const mode=teamMode(input);return{method:"GET",path:"/api/v1/attendance/team-dashboard",query:{mode,project_id:mode==="project"?requireResolved(input,"projectId"):void 0}}},summarize:body=>teamBody(body)["team_status"].map(summarizeMember),raw:teamBody,notes:body=>{const sheet=teamBody(body);const reports=Array.isArray(sheet["attendance_reports"])?sheet["attendance_reports"].length:0;const leaves=Array.isArray(sheet["\
90
129
  leaves_of_absence"])?sheet["leaves_of_absence"].length:0;return[`${String(sheet["date"])} \u6642\u70B9: ${String(sheet["team_status"].length)} \u4EBA / \u4ECA\u65E5\u306E\u52E4\u6020\u9023\u7D61 ${String(reports)} \u4EF6 / \u4F11\u8077\u4E2D ${String(leaves)} \u4EBA`]}};function flexBody(body){if(!isRecord(body)||typeof body["is_flex"]!=="boolean"||body["is_flex"]&&!isRecord(body["flex_settlement"])){throw new ApiResponseError("\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\u306E\u5FDC\u7B54\u306B is_flex / flex_settlement \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
91
130
  return body}var flexSettlementOperation={name:"flex-settlement",summary:"\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\uFF08\u6E05\u7B97\u671F\u9593\u306E\u6240\u5B9A\u30FB\u5B9F\u52B4\u50CD\u30FB\u904E\u4E0D\u8DB3\uFF09\u3092\u8868\u793A\u3059\u308B",usage:FLEX_USAGE,description:`GET /api/v2/attendance/flex-settlement \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u6700\u65B0\u306E\u6253\u523B\u304B\u3089\u8A08\u7B97\u3057\u76F4\u3057\u305F\u5024\uFF09\u3002
@@ -93,9 +132,9 @@ return body}var flexSettlementOperation={name:"flex-settlement",summary:"\u30D5\
93
132
  \u4ED6\u306E\u4EBA\u306E\u5206\u306F\u3001\u52E4\u6020\u306E\u7BA1\u7406\u8005\u304B\u305D\u306E\u4EBA\u306E\u4E0A\u9577\u3060\u3051\u304C\u898B\u3089\u308C\u307E\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002
94
133
  ${USER_REF_HELP}
95
134
  \u30D5\u30EC\u30C3\u30AF\u30B9\u52E4\u52D9\u5236\u3067\u306A\u3044\u4EBA\u306F is_flex=false \u3092\u8FD4\u3057\u307E\u3059\uFF08\u30A8\u30E9\u30FC\u306B\u306F\u3057\u307E\u305B\u3093\uFF09\u3002
96
- --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u6708\u5225\u306E\u5185\u8A33 monthly_data\u30FBmonthly_adjusted_data \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,USER_FLAG],async prepare(input,ctx){noArgs(input,"flex-settlement",FLEX_USAGE);monthFlag(input.flags);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>({method:"GET",path:"/api/v2/attendance/flex-settlement",query:{year_month:monthFlag(input.
135
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u6708\u5225\u306E\u5185\u8A33 monthly_data\u30FBmonthly_adjusted_data \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002`,flags:[MONTH_FLAG,USER_FLAG],async prepare(input,ctx){noArgs2(input,"flex-settlement",FLEX_USAGE);monthFlag(input.flags);return withResolved(input,await resolveUserFlag(input,ctx))},plan:input=>({method:"GET",path:"/api/v2/attendance/flex-settlement",query:{year_month:monthFlag(input.
97
136
  flags),user_id:input.resolved?.["userId"]}}),summarize:body=>{const sheet=flexBody(body);if(!sheet["is_flex"])return{is_flex:false,message:sheet["message"]??null};return{is_flex:true,...pick(sheet["flex_settlement"],FLEX_COLUMNS)}},raw:flexBody,notes:body=>flexBody(body)["is_flex"]?[]:[`${String(flexBody(body)["message"]??"\u30D5\u30EC\u30C3\u30AF\u30B9\u52E4\u52D9\u5236\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002")}`]};var STATUS_USAGE="twp attendance status";var LIST_USAGE="twp attendance list [--month <YYYY-MM> | --date <YYYY-MM-DD>]";var TIMESHEET_USAGE="twp attendance timesheet [--month <YYYY-MM>]";var PUNCH_USAGE="twp attendance punch <clock-in|clock-out|break-start|break-end|switch> [--project <\u30B3\u30FC\u30C9|ID>] [--task <\u30BF\u30B9\u30AFID>] [--memo <\u30E1\u30E2>]";var PUNCH_TYPES={"clock-in":"clock_in","clock-out":"clock_out","break-start":"break_start","break-end":"break_end",switch:"switch"};
98
- var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var MEMO_MAX=500;var PUNCH_COLUMNS=["id","type","type_label","recorded_at","year_month","project_id","task_id","memo"];var RECORD_COLUMNS=["recorded_at","type","type_label","work_location","is_manual","project_id","task_id","memo","id"];var DAY_COLUMNS=["date","clock_in","clock_out","work","break","overtime","late","early_leave","holiday","memo"];function noArgs2(input,operation){if(input.args.length>0){throw new UsageError(
137
+ var UUID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var MEMO_MAX=500;var PUNCH_COLUMNS=["id","type","type_label","recorded_at","year_month","project_id","task_id","memo"];var RECORD_COLUMNS=["recorded_at","type","type_label","work_location","is_manual","project_id","task_id","memo","id"];var DAY_COLUMNS=["date","clock_in","clock_out","work","break","overtime","late","early_leave","holiday","memo"];function noArgs3(input,operation){if(input.args.length>0){throw new UsageError(
99
138
  `${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`twp attendance ${operation} help`)}}function hoursMinutes(value){if(typeof value!=="number"||!Number.isFinite(value))return value;const sign=value<0?"-":"";const abs=Math.round(Math.abs(value));return`${sign}${Math.floor(abs/60)}:${String(abs%60).padStart(2,"0")}`}function currentBody(body){if(!isRecord(body)||typeof body["status"]!=="string"||!Array.isArray(body["today_records"])){
100
139
  throw new ApiResponseError("\u6253\u523B\u72B6\u614B\u306E\u5FDC\u7B54\u306B status / today_records \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function summarizeCurrent(body){const current=currentBody(body);const last=isRecord(current["last_record"])?current["last_record"]:void 0;const actions=Array.isArray(current["available_actions"])?current["available_actions"]:[];return{status:current["status"],status_label:current["\
101
140
  status_label"],last_type:last?.["type_label"]??null,last_recorded_at:last?.["recorded_at"]??null,today_records:current["today_records"].length,available_actions:actions.join(" / ")}}function records(body){if(!isRecord(body)||!Array.isArray(body["records"])){throw new ApiResponseError("\u6253\u523B\u5C65\u6B74\u306E\u5FDC\u7B54\u306B records \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body["records"]}function timesheetBody(body){
@@ -111,7 +150,7 @@ async function assertMonthsOpen(ctx,months,action){for(const month of[...new Set
111
150
  const record=isRecord(body)?body["record"]:void 0;if(!isRecord(record)||typeof record["type"]!=="string"){throw new ApiResponseError("\u6253\u523B\u306E\u5FDC\u7B54\u306B\u6253\u523B\u8A18\u9332\uFF08type\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return record}var OVERTIME_USAGE="twp attendance overtime [--month <YYYY-MM>] [--agreement36]";var CLOSINGS_LIST_USAGE="twp attendance closings list [--month <YYYY-MM>\
112
151
  ] [--include-hidden]";var FORBIDDEN_ADMIN="\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\uFF08\u52E4\u6020: \u7BA1\u7406\u8005\uFF09\u304C\u5FC5\u8981\u3067\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u6A29\u9650\u306E\u4ED8\u4E0E\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044";var OVERTIME_SCOPE_NOTE="\u5BFE\u8C61\u306F\u3001\u3053\u306E\u6708\u306E\u7DE0\u3081\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u3001\u8868\u793A\u5BFE\u8C61\u3067\u3001\u6709\u52B9\u306A\u5951\u7D04\u304C\u3042\u308B\u4EBA\u3060\u3051\u3067\u3059\uFF08\u8F09\u3063\u3066\u3044\u306A\u3044\u4EBA\u306F\u6B8B\u696D0\u3068\u3044\u3046\u610F\u5473\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002";
113
152
  var MONTH_FLAG2={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var OVERTIME_COLUMNS=["user_name","contract_type_name","overtime","legal_overtime","night_work","holiday_work","total_work","total_work_days","is_overtime_exempt","user_id"];var AGREEMENT36_COLUMNS=["user_name","alert_level","monthly_legal_overtime","monthly_percent","annual_legal_overtime","annual_percent","contract_type_name","user_id"];var CLOSING_COLUMNS=["user\
114
- _name","closed_at","closed_by","logic_version","user_id","id"];function isAgreement36(input){return input.flags.has("--agreement36")}function overtimeBody(body,label){if(!isRecord(body)||!Array.isArray(body["users"])){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B users \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function isAgreement36Body(body){return isRecord(body)&&isRecord(body["limits"])}
153
+ _name","closed_at","closed_by","logic_version","user_id","id"];function isAgreement36(input){return input.flags.has("--agreement36")}function overtimeBody(body,label2){if(!isRecord(body)||!Array.isArray(body["users"])){throw new ApiResponseError(`${label2}\u306E\u5FDC\u7B54\u306B users \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function isAgreement36Body(body){return isRecord(body)&&isRecord(body["limits"])}
115
154
  function summarizeOvertimeUser(user){const row=isRecord(user)?user:{};return pick({user_name:row["user_name"],contract_type_name:row["contract_type_name"],overtime:hoursMinutes(row["overtime_minutes"]),legal_overtime:hoursMinutes(row["legal_overtime_minutes"]),night_work:hoursMinutes(row["night_work_minutes"]),holiday_work:hoursMinutes(row["holiday_work_minutes"]),total_work:hoursMinutes(row["total_work_minutes"]),total_work_days:row["total_work_days"],is_overtime_exempt:row["is_overtime_exempt"],
116
155
  user_id:row["user_id"]},OVERTIME_COLUMNS)}function summarizeAgreement36User(user){const row=isRecord(user)?user:{};return pick({user_name:row["user_name"],alert_level:row["alert_level"],monthly_legal_overtime:hoursMinutes(row["monthly_legal_overtime_minutes"]),monthly_percent:row["monthly_percent"],annual_legal_overtime:hoursMinutes(row["annual_legal_overtime_minutes"]),annual_percent:row["annual_percent"],contract_type_name:row["contract_type_name"],user_id:row["user_id"]},AGREEMENT36_COLUMNS)}
117
156
  function summarizeOvertime(body){if(isAgreement36Body(body)){return overtimeBody(body,"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9")["users"].map(summarizeAgreement36User)}return overtimeBody(body,"\u6B8B\u696D\u30B5\u30DE\u30EA")["users"].map(summarizeOvertimeUser)}function overtimeNotes(body){if(isAgreement36Body(body)){const sheet2=overtimeBody(body,"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9");const limits=sheet2["limits"];const summary=isRecord(sheet2["summary"])?
@@ -121,21 +160,21 @@ total["user_count"])} \u4EBA\uFF09: \u6B8B\u696D ${String(hoursMinutes(total["ov
121
160
  "\u7DE0\u3081\u72B6\u6CC1\u306E\u5FDC\u7B54\u306B closings \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function closingsNotes(body){const sheet=closingsBody(body);const count=sheet["closings"].length;return[`${String(sheet["year_month"])} \u306B\u7DE0\u3081\u6E08\u307F\u306E\u4EBA: ${String(count)} \u4EBA\uFF08\u7DE0\u3081\u3066\u3044\u306A\u3044\u4EBA\u306F\u4E00\u89A7\u306B\u51FA\u307E\u305B\u3093\uFF09`]}
122
161
  var overtimeOperation={name:"overtime",summary:"\u6708\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\uFF08\u793E\u54E1\u5225\uFF09\u3092\u8868\u793A\u3059\u308B\u3002--agreement36 \u306736\u5354\u5B9A\u306E\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u72B6\u6CC1\uFF08\u7BA1\u7406\u8005\uFF09",usage:OVERTIME_USAGE,description:"GET /api/v1/attendance/overtime \u3092\u8868\u793A\u3057\u307E\u3059\u3002--agreement36 \u3092\u4ED8\u3051\u308B\u3068 GET /api/v1/attendance/overtime/agreement36\n\uFF0836\u5354\u5B9A\u306E\u6708\u30FB\u5E74\u306E\u6CD5\u5B9A\u5916\u6B8B\u696D\u3068\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u5272\u5408\u30FB\u8B66\u544A\u30EC\u30D9\u30EB\uFF09\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\
123
162
  \u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\u4ECA\u6708\u306F\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u306E\u96C6\u8A08\u3001\u904E\u53BB\u306E\u6708\u306F\u7DE0\u3081\u305F\u6642\u70B9\u306E\u96C6\u8A08\u3067\u3059\u3002\n\u4E26\u3076\u306E\u306F\u3001\u305D\u306E\u6708\u306E\u7DE0\u3081\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u3001\u8868\u793A\u5BFE\u8C61\u3067\u3001\u305D\u306E\u6708\u306B\u6709\u52B9\u306A\u5951\u7D04\u304C\u3042\u308B\u4EBA\u3060\u3051\u3067\u3059\uFF08\u8F09\u3063\u3066\u3044\u306A\u3044\u4EBA\u306F\u300C\u6B8B\u696D0\u300D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n--output table / text / tsv \u306F\u793E\u54E1\u5225\u306E\u8981\u7D04\u5217\uFF08\u6642\u9593\u306F H:MM\uFF09\u3067\u3001\u5408\u8A08\u30FB\u4E0A\u9650\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
124
- flags:[MONTH_FLAG2,{name:"--agreement36",summary:"36\u5354\u5B9A\u306E\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u72B6\u6CC1\u3092\u8868\u793A\u3059\u308B",takesValue:false}],plan(input){noArgs2(input,"overtime");const path=isAgreement36(input)?"/api/v1/attendance/overtime/agreement36":"/api/v1/attendance/overtime";return{method:"GET",path,query:{year_month:monthFlag(input.flags)}}},summarize:summarizeOvertime,raw:body=>overtimeBody(body,isAgreement36Body(body)?"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9":
163
+ flags:[MONTH_FLAG2,{name:"--agreement36",summary:"36\u5354\u5B9A\u306E\u4E0A\u9650\u306B\u5BFE\u3059\u308B\u72B6\u6CC1\u3092\u8868\u793A\u3059\u308B",takesValue:false}],plan(input){noArgs3(input,"overtime");const path=isAgreement36(input)?"/api/v1/attendance/overtime/agreement36":"/api/v1/attendance/overtime";return{method:"GET",path,query:{year_month:monthFlag(input.flags)}}},summarize:summarizeOvertime,raw:body=>overtimeBody(body,isAgreement36Body(body)?"36\u5354\u5B9A\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9":
125
164
  "\u6B8B\u696D\u30B5\u30DE\u30EA"),notes:overtimeNotes,forbidden:FORBIDDEN_ADMIN};var closingsListOperation={name:"list",summary:"\u6708\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u306E\u4E00\u89A7\uFF09\u3092\u8868\u793A\u3059\u308B\uFF08\u7BA1\u7406\u8005\uFF09",usage:CLOSINGS_LIST_USAGE,description:"GET /api/v1/attendance/closings \u3092\u8868\u793A\u3057\u307E\u3059\u3002\u52E4\u6020\u306E\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u7121\u3051\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n\u4E26\u3076\u306E\u306F\u7DE0\u3081\u6E08\u307F\u306E\u4EBA\u3060\u3051\u3067\u3059\uFF08\u7DE0\u3081\u3066\u3044\u306A\u3044\u4EBA\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002\u4EBA\u6570\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--include-hi\
126
165
  dden \u3092\u4ED8\u3051\u308B\u3068\u3001\u7121\u52B9\u5316\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u7DE0\u3081\u3082\u542B\u3081\u307E\u3059\u3002\n\u7DE0\u3081\u306E\u5B9F\u884C\u30FB\u89E3\u9664\u306F\u3067\u304D\u307E\u305B\u3093\uFF08\u7D66\u4E0E\u306E\u78BA\u5B9A\u306B\u52B9\u304F\u305F\u3081\u3001\u753B\u9762\u304B\u3089\u884C\u3063\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",
127
- flags:[MONTH_FLAG2,{name:"--include-hidden",summary:"\u7121\u52B9\u5316\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u7DE0\u3081\u3082\u542B\u3081\u308B",takesValue:false}],plan(input){noArgs2(input,"closings list");return{method:"GET",path:"/api/v1/attendance/closings",query:{year_month:monthFlag(input.flags),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>closingsBody(body)["closings"].map(row=>pick(row,CLOSING_COLUMNS)),raw:body=>closingsBody(body),notes:closingsNotes,
166
+ flags:[MONTH_FLAG2,{name:"--include-hidden",summary:"\u7121\u52B9\u5316\u6E08\u307F\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u7DE0\u3081\u3082\u542B\u3081\u308B",takesValue:false}],plan(input){noArgs3(input,"closings list");return{method:"GET",path:"/api/v1/attendance/closings",query:{year_month:monthFlag(input.flags),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>closingsBody(body)["closings"].map(row=>pick(row,CLOSING_COLUMNS)),raw:body=>closingsBody(body),notes:closingsNotes,
128
167
  forbidden:FORBIDDEN_ADMIN};var closingsResource={name:"closings",summary:"\u52E4\u6020\u306E\u7DE0\u3081\u72B6\u6CC1\uFF08\u4E00\u89A7\u306E\u307F\u30FB\u7BA1\u7406\u8005\uFF09",operations:[closingsListOperation]};var attendanceDomain={name:"attendance",summary:"\u52E4\u6020\uFF08\u81EA\u5206\u306E\u6253\u523B\u72B6\u614B\u30FB\u6253\u523B\u5C65\u6B74\u30FB\u52E4\u6020\u8868\u30FB\u6253\u523B\u30FB\u52E4\u6020\u9023\u7D61\u30FB\u30C1\u30FC\u30E0\u306E\u52E4\u6020\u30FB\u30D5\u30EC\u30C3\u30AF\u30B9\u7CBE\u7B97\uFF0F\u7BA1\u7406\u8005\u5411\u3051\u306E\u6B8B\u696D\u30B5\u30DE\u30EA\u30FB\u7DE0\u3081\u72B6\u6CC1\uFF09",
129
168
  operations:[{name:"status",summary:"\u3044\u307E\u306E\u6253\u523B\u72B6\u614B\u3068\u3001\u6B21\u306B\u6253\u3066\u308B\u6253\u523B\u3092\u8868\u793A\u3059\u308B",usage:STATUS_USAGE,description:"GET /api/v1/attendance/current \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\navailable_actions \u306F\u3001\u3044\u307E\u306E\u72B6\u614B\u304B\u3089\u6253\u3066\u308B\u6253\u523B\u306E\u7A2E\u985E\u3067\u3059\uFF08clock_in / clock_out / break_start / break_end / switch\uFF09\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4ECA\u65E5\u306E\u6253\u523B\u306E\u4E00\u89A7 today_records \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
130
- flags:[],plan(input){noArgs2(input,"status");return{method:"GET",path:"/api/v1/attendance/current"}},summarize:summarizeCurrent,raw:body=>currentBody(body)},{name:"list",summary:"\u6253\u523B\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:LIST_USAGE,description:`GET /api/v1/attendance/records \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\u30FB\u65B0\u3057\u3044\u9806\uFF09\u3002
169
+ flags:[],plan(input){noArgs3(input,"status");return{method:"GET",path:"/api/v1/attendance/current"}},summarize:summarizeCurrent,raw:body=>currentBody(body)},{name:"list",summary:"\u6253\u523B\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B\uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:LIST_USAGE,description:`GET /api/v1/attendance/records \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\u30FB\u65B0\u3057\u3044\u9806\uFF09\u3002
131
170
  --month \u3068 --date \u306F\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u3069\u3061\u3089\u3082\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059
132
171
  \uFF08\u300C\u4ECA\u6708\u300D\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002
133
172
  --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
134
- --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${RECORD_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"},{name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"}],plan(input){noArgs2(input,"list");const month=monthFlag(input.flags);const date=dateFlag(input.flags);if(month!==void 0&&date!==void 0){throw new UsageError(
173
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${RECORD_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"},{name:"--date",summary:"\u5BFE\u8C61\u306E\u65E5\u4ED8\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"}],plan(input){noArgs3(input,"list");const month=monthFlag(input.flags);const date=dateFlag(input.flags);if(month!==void 0&&date!==void 0){throw new UsageError(
135
174
  "--month \u3068 --date \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",LIST_USAGE)}return{method:"GET",path:"/api/v1/attendance/records",query:{year_month:month,date}}},summarize:body=>records(body).map(row=>pick(row,RECORD_COLUMNS)),raw:body=>records(body)},{name:"timesheet",summary:"\u6708\u306E\u52E4\u6020\u8868\uFF08\u65E5\u5225\u306E\u51FA\u9000\u52E4\u30FB\u52B4\u50CD\u30FB\u6B8B\u696D\u3068\u6708\u306E\u5408\u8A08\uFF09\u3092\u8868\u793A\u3059\u308B",usage:TIMESHEET_USAGE,
136
175
  description:"GET /api/v1/attendance/timesheet \u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\n--month \u304C\u7121\u3051\u308C\u3070\u4ECA\u6708\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u696D\u52D9\u65E5\u306E\u533A\u5207\u308A\u3067\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09\u3002\n--output table / text / tsv \u306F\u65E5\u5225\u306E\u8981\u7D04\u5217\uFF08\u6642\u9593\u306F H:MM\uFF09\u3067\u3001\u6708\u306E\u5408\u8A08\u306F stderr \u306B\u51FA\u3057\u307E\u3059\u3002\n\u7DE0\u3081\u6E08\u307F\u306E\u6708\u306F\u3001\u7DE0\u3081\u305F\u6642\u70B9\u306E\u96C6\u8A08\u3067\u3042\u308B\u3053\u3068\u3092 stderr \u3067\u77E5\u3089\u305B\u307E\u3059\u3002\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08summary\u30FBis_closed \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002",
137
- flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"}],plan(input){noArgs2(input,"timesheet");return{method:"GET",path:"/api/v1/attendance/timesheet",query:{year_month:monthFlag(input.flags)}}},summarize:body=>timesheetBody(body)["days"].map(summarizeDay),raw:body=>timesheetBody(body),notes:timesheetNotes},{name:"punch",summary:"\u6253\u523B\u3059\u308B\uFF08\u51FA\u52E4\u30FB\u9000\u52E4\u30FB\u4F11\u61A9\u958B\u59CB\u30FB\u4F11\u61A9\u7D42\u4E86\u30FB\u4F5C\u696D\u306E\u5207\u308A\u66FF\u3048\uFF09",
176
+ flags:[{name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"}],plan(input){noArgs3(input,"timesheet");return{method:"GET",path:"/api/v1/attendance/timesheet",query:{year_month:monthFlag(input.flags)}}},summarize:body=>timesheetBody(body)["days"].map(summarizeDay),raw:body=>timesheetBody(body),notes:timesheetNotes},{name:"punch",summary:"\u6253\u523B\u3059\u308B\uFF08\u51FA\u52E4\u30FB\u9000\u52E4\u30FB\u4F11\u61A9\u958B\u59CB\u30FB\u4F11\u61A9\u7D42\u4E86\u30FB\u4F5C\u696D\u306E\u5207\u308A\u66FF\u3048\uFF09",
138
177
  usage:PUNCH_USAGE,description:"POST /api/v1/attendance/punch \u3092\u9001\u308A\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u308B\u672C\u4EBA\u306E\u5206\uFF09\u3002\u6253\u523B\u6642\u523B\u306F\u30B5\u30FC\u30D0\u306E\u6642\u523B\u3067\u3059\u3002\n\u7A2E\u985E: clock-in\uFF08\u51FA\u52E4\uFF09/ clock-out\uFF08\u9000\u52E4\uFF09/ break-start\uFF08\u4F11\u61A9\u958B\u59CB\uFF09/ break-end\uFF08\u4F11\u61A9\u7D42\u4E86\uFF09/ switch\uFF08\u4F5C\u696D\u306E\u5207\u308A\u66FF\u3048\uFF09\u3002\n\u3044\u307E\u6253\u3066\u308B\u7A2E\u985E\u306F twp attendance status \u306E available_actions \u3067\u5206\u304B\u308A\u307E\u3059\u3002\n--project \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID\u3001--task \u306F\u30BF\u30B9\u30AF\u306E ID\uFF08UUID\uFF09\u3067\u3059\u3002\n\u9001\u308B\u524D\u306B\u4ECA\u6708\u306E\u52E4\u6020\u8868\uFF08GET /api/v1/attendance/timesheet\uFF09\u3092\u898B\u3066\u3001\u7DE0\u3081\u6E08\u307F\u306A\u3089\u6253\u523B\u3092\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF09\u3002\n--dry-run \u306F\u6253\u523B\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3060\u3051\u3092\u8868\u793A\u3057\u307E\u3059\uFF08\u7DE0\u3081\u306E\u78BA\u8A8D\u306F\u9001\u308A\u307E\u305B\u3093\uFF09\u3002\n\u904E\u53BB\u306E\u6642\u523B\u3067\u306E\u6253\u523B\u306F twp attendance record create\u3001\u30E1\u30E2\u306E\u5909\u66F4\u30FB\u53D6\u308A\u6D88\u3057\u30FB\u4ED8\u3051\u66FF\u3048\u306F twp attendance record update / de\
139
178
  lete / move \u3067\u3059\u3002",flags:[{name:"--project",summary:"\u4F5C\u696D\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--task",summary:"\u4F5C\u696D\u3059\u308B\u30BF\u30B9\u30AF\u306E ID\uFF08UUID\uFF09",takesValue:true,placeholder:"<\u30BF\u30B9\u30AFID>"},{name:"--memo",summary:`\u30E1\u30E2\uFF08${MEMO_MAX} \u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30E1\u30E2>"}],
140
179
  async prepare(input,ctx){punchType(input);const explicit=input.flags.get("--project");if(explicit===void 0)return input;return withResolved(input,{projectId:await ctx.projectId(explicit)})},plan:punchPlan,plannedNotes:()=>["\u5B9F\u884C\u6642\u306F\u3001\u3053\u306E\u524D\u306B\u4ECA\u6708\u306E\u7DE0\u3081\u306E\u78BA\u8A8D\uFF08GET /api/v1/attendance/timesheet\uFF09\u3092\u9001\u308A\u3001\u7DE0\u3081\u6E08\u307F\u306A\u3089\u6253\u523B\u3092\u9001\u308A\u307E\u305B\u3093\u3002"],execute:punch,
141
- summarize:body=>{const status=isRecord(body)&&isRecord(body["status"])?body["status"]:{};return{...pick(punchRecord(body),PUNCH_COLUMNS),status:status["status"]??null,status_label:status["status_label"]??null}},raw:body=>(punchRecord(body),body)},teamOperation,flexSettlementOperation,overtimeOperation],subresources:[reportResource,closingsResource]};export{USER_REF_HELP,userPath,USER_REF_FLAG,prepareUser,PUNCH_TYPES,hoursMinutes,assertMonthOpen,assertMonthsOpen,attendanceDomain};
180
+ summarize:body=>{const status=isRecord(body)&&isRecord(body["status"])?body["status"]:{};return{...pick(punchRecord(body),PUNCH_COLUMNS),status:status["status"]??null,status_label:status["status_label"]??null}},raw:body=>(punchRecord(body),body)},teamOperation,flexSettlementOperation,overtimeOperation],subresources:[reportResource,reportCategoryResource,reportReasonResource,reportReasonDetailResource,closingsResource]};export{USER_REF_HELP,userPath,USER_REF_FLAG,prepareUser,PUNCH_TYPES,hoursMinutes,assertMonthOpen,assertMonthsOpen,attendanceDomain};