@oomol-lab/open-connector 1.9.0 → 1.9.1

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 (395) hide show
  1. package/assets/open-connector/catalog/apps/agentearth.json +441 -0
  2. package/assets/open-connector/catalog/apps/appgrowing_mcp.json +863 -0
  3. package/assets/open-connector/catalog/apps/arcmira.json +610 -0
  4. package/assets/open-connector/catalog/apps/bainiu.json +654 -0
  5. package/assets/open-connector/catalog/apps/chaport.json +331 -0
  6. package/assets/open-connector/catalog/apps/cnb.json +1408 -0
  7. package/assets/open-connector/catalog/apps/crtsh.json +123 -0
  8. package/assets/open-connector/catalog/apps/eastmoney_miaoxiang.json +406 -0
  9. package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
  10. package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
  11. package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
  12. package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
  13. package/assets/open-connector/catalog/apps/github.json +38 -3
  14. package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
  15. package/assets/open-connector/catalog/apps/humor_api.json +351 -0
  16. package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
  17. package/assets/open-connector/catalog/apps/linear_mcp.json +882 -22
  18. package/assets/open-connector/catalog/apps/listinggood.json +362 -0
  19. package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
  20. package/assets/open-connector/catalog/apps/outlook.json +414 -0
  21. package/assets/open-connector/catalog/apps/porteden.json +1258 -0
  22. package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
  23. package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
  24. package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
  25. package/assets/open-connector/catalog/apps/redfox.json +9661 -897
  26. package/assets/open-connector/catalog/apps/salesforce.json +4907 -0
  27. package/assets/open-connector/catalog/apps/sansan.json +4594 -0
  28. package/assets/open-connector/catalog/apps/smarthr.json +8071 -0
  29. package/assets/open-connector/catalog/apps/smooth.json +914 -0
  30. package/assets/open-connector/catalog/apps/tapd.json +727 -0
  31. package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
  32. package/assets/open-connector/catalog/apps/threatfox.json +203 -0
  33. package/assets/open-connector/catalog/apps/tradebee.json +915 -0
  34. package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
  35. package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
  36. package/assets/open-connector/catalog/apps/weread.json +1514 -0
  37. package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
  38. package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
  39. package/assets/open-connector/catalog/apps-index.json +1 -1
  40. package/package.json +2 -1
  41. package/src/connection-service.js +55 -11
  42. package/src/core/provider-error-codes.d.ts +9 -0
  43. package/src/core/provider-error-codes.js +13 -0
  44. package/src/core/request.d.ts +2 -0
  45. package/src/core/request.js +11 -2
  46. package/src/mail/imap-smtp/protocol.js +4 -3
  47. package/src/oauth/oauth-flow-service.js +1 -0
  48. package/src/oauth/oauth-token.d.ts +2 -0
  49. package/src/providers/17track/runtime.js +17 -20
  50. package/src/providers/action-contracts.generated.d.ts +36 -6
  51. package/src/providers/agentearth/actions.d.ts +2 -0
  52. package/src/providers/agentearth/actions.js +100 -0
  53. package/src/providers/agentearth/executors.d.ts +4 -0
  54. package/src/providers/agentearth/executors.js +109 -0
  55. package/src/providers/appgrowing_mcp/actions.d.ts +2 -0
  56. package/src/providers/appgrowing_mcp/actions.js +175 -0
  57. package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
  58. package/src/providers/appgrowing_mcp/executors.js +66 -0
  59. package/src/providers/arcmira/executors.d.ts +3 -0
  60. package/src/providers/arcmira/executors.js +8 -0
  61. package/src/providers/arcmira/runtime.d.ts +6 -0
  62. package/src/providers/arcmira/runtime.js +41 -0
  63. package/src/providers/bainiu/actions.d.ts +2 -0
  64. package/src/providers/bainiu/actions.js +108 -0
  65. package/src/providers/bainiu/executors.d.ts +4 -0
  66. package/src/providers/bainiu/executors.js +113 -0
  67. package/src/providers/baixiao/executors.js +1 -1
  68. package/src/providers/bing_webmaster/executors.js +1 -1
  69. package/src/providers/chaport/actions.d.ts +2 -0
  70. package/src/providers/chaport/actions.js +70 -0
  71. package/src/providers/chaport/executors.d.ts +4 -0
  72. package/src/providers/chaport/executors.js +128 -0
  73. package/src/providers/clickup/runtime.js +49 -52
  74. package/src/providers/cnb/actions.d.ts +2 -0
  75. package/src/providers/cnb/actions.js +341 -0
  76. package/src/providers/cnb/executors.d.ts +4 -0
  77. package/src/providers/cnb/executors.js +135 -0
  78. package/src/providers/coupontools/runtime.js +11 -14
  79. package/src/providers/crtsh/executors.d.ts +3 -0
  80. package/src/providers/crtsh/executors.js +19 -0
  81. package/src/providers/crtsh/runtime.d.ts +17 -0
  82. package/src/providers/crtsh/runtime.js +84 -0
  83. package/src/providers/eastmoney_miaoxiang/actions.d.ts +2 -0
  84. package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
  85. package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
  86. package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
  87. package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
  88. package/src/providers/fastmoss_mcp/actions-content.js +140 -0
  89. package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
  90. package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
  91. package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
  92. package/src/providers/fastmoss_mcp/actions-product.js +167 -0
  93. package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
  94. package/src/providers/fastmoss_mcp/actions-research.js +174 -0
  95. package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
  96. package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
  97. package/src/providers/fastmoss_mcp/actions.js +11 -12
  98. package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
  99. package/src/providers/fastmoss_mcp/schemas.js +52 -0
  100. package/src/providers/ftshare/actions.d.ts +2 -0
  101. package/src/providers/ftshare/actions.js +124 -0
  102. package/src/providers/ftshare/executors.d.ts +4 -0
  103. package/src/providers/ftshare/executors.js +102 -0
  104. package/src/providers/fusion-api/operations.js +37 -0
  105. package/src/providers/fxbaogao/actions.d.ts +2 -0
  106. package/src/providers/fxbaogao/actions.js +74 -0
  107. package/src/providers/fxbaogao/executors.d.ts +4 -0
  108. package/src/providers/fxbaogao/executors.js +155 -0
  109. package/src/providers/github/app-installation.d.ts +37 -0
  110. package/src/providers/github/app-installation.js +233 -0
  111. package/src/providers/github/executors.js +93 -15
  112. package/src/providers/github/runtime-repository.js +21 -1
  113. package/src/providers/github/runtime-shared.d.ts +2 -0
  114. package/src/providers/github/runtime-shared.js +1 -0
  115. package/src/providers/googledrive/runtime-request.js +3 -3
  116. package/src/providers/hrmos_kintai/actions.d.ts +2 -0
  117. package/src/providers/hrmos_kintai/actions.js +139 -0
  118. package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
  119. package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
  120. package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
  121. package/src/providers/hrmos_kintai/business-actions.js +143 -0
  122. package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
  123. package/src/providers/hrmos_kintai/business-schemas.js +320 -0
  124. package/src/providers/hrmos_kintai/executors.d.ts +4 -0
  125. package/src/providers/hrmos_kintai/executors.js +61 -0
  126. package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
  127. package/src/providers/hrmos_kintai/export-actions.js +58 -0
  128. package/src/providers/hrmos_kintai/operations.d.ts +9 -0
  129. package/src/providers/hrmos_kintai/operations.js +278 -0
  130. package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
  131. package/src/providers/hrmos_kintai/runtime.js +217 -0
  132. package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
  133. package/src/providers/hrmos_kintai/schemas.js +70 -0
  134. package/src/providers/humor_api/actions.d.ts +2 -0
  135. package/src/providers/humor_api/actions.js +96 -0
  136. package/src/providers/humor_api/executors.d.ts +4 -0
  137. package/src/providers/humor_api/executors.js +76 -0
  138. package/src/providers/kaonavi/actions.d.ts +4 -0
  139. package/src/providers/kaonavi/actions.js +144 -0
  140. package/src/providers/kaonavi/additional-actions.d.ts +10 -0
  141. package/src/providers/kaonavi/additional-actions.js +203 -0
  142. package/src/providers/kaonavi/executors.d.ts +4 -0
  143. package/src/providers/kaonavi/executors.js +69 -0
  144. package/src/providers/kaonavi/runtime.d.ts +4 -0
  145. package/src/providers/kaonavi/runtime.js +69 -0
  146. package/src/providers/linear_mcp/actions.d.ts +14 -0
  147. package/src/providers/linear_mcp/actions.js +134 -0
  148. package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
  149. package/src/providers/linear_mcp/runtime-mcp.js +140 -28
  150. package/src/providers/linkfox/runtime.js +48 -51
  151. package/src/providers/listinggood/actions.d.ts +2 -0
  152. package/src/providers/listinggood/actions.js +95 -0
  153. package/src/providers/listinggood/executors.d.ts +4 -0
  154. package/src/providers/listinggood/executors.js +99 -0
  155. package/src/providers/mcp-tools.d.ts +3 -0
  156. package/src/providers/mcp-tools.js +5 -4
  157. package/src/providers/notion_mcp/executors.js +53 -24
  158. package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
  159. package/src/providers/notion_mcp/mcp-response.js +95 -0
  160. package/src/providers/omise/executors.js +1 -1
  161. package/src/providers/outlook/executors.js +35 -2
  162. package/src/providers/porteden/actions.d.ts +2 -0
  163. package/src/providers/porteden/actions.js +162 -0
  164. package/src/providers/porteden/executors.d.ts +4 -0
  165. package/src/providers/porteden/executors.js +140 -0
  166. package/src/providers/provider-runtime.d.ts +3 -2
  167. package/src/providers/pushover/runtime.js +28 -31
  168. package/src/providers/qianfan/runtime.js +16 -19
  169. package/src/providers/qiuxiaoce/actions.d.ts +2 -0
  170. package/src/providers/qiuxiaoce/actions.js +248 -0
  171. package/src/providers/qiuxiaoce/executors.d.ts +4 -0
  172. package/src/providers/qiuxiaoce/executors.js +76 -0
  173. package/src/providers/qiuxiaoce/routes.d.ts +1 -0
  174. package/src/providers/qiuxiaoce/routes.js +20 -0
  175. package/src/providers/qqmusic/actions.d.ts +2 -0
  176. package/src/providers/qqmusic/actions.js +229 -0
  177. package/src/providers/qqmusic/executors.d.ts +4 -0
  178. package/src/providers/qqmusic/executors.js +92 -0
  179. package/src/providers/qqmusic/report-schema.d.ts +4 -0
  180. package/src/providers/qqmusic/report-schema.js +119 -0
  181. package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
  182. package/src/providers/rakuraku_seisan/actions.js +50 -0
  183. package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
  184. package/src/providers/rakuraku_seisan/executors.js +40 -0
  185. package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
  186. package/src/providers/rakuraku_seisan/runtime.js +251 -0
  187. package/src/providers/redfox/actions-account.d.ts +2 -0
  188. package/src/providers/redfox/actions-account.js +24 -0
  189. package/src/providers/redfox/actions-autohome.d.ts +2 -0
  190. package/src/providers/redfox/actions-autohome.js +51 -0
  191. package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
  192. package/src/providers/redfox/actions-baijiahao.js +58 -0
  193. package/src/providers/redfox/actions-bilibili.d.ts +2 -0
  194. package/src/providers/redfox/actions-bilibili.js +67 -0
  195. package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
  196. package/src/providers/redfox/actions-dongchedi.js +49 -0
  197. package/src/providers/redfox/actions-douyin.d.ts +2 -0
  198. package/src/providers/redfox/actions-douyin.js +297 -0
  199. package/src/providers/redfox/actions-generation.d.ts +2 -0
  200. package/src/providers/redfox/actions-generation.js +293 -0
  201. package/src/providers/redfox/actions-instagram.d.ts +2 -0
  202. package/src/providers/redfox/actions-instagram.js +49 -0
  203. package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
  204. package/src/providers/redfox/actions-kuaishou.js +53 -0
  205. package/src/providers/redfox/actions-search.d.ts +2 -0
  206. package/src/providers/redfox/actions-search.js +125 -0
  207. package/src/providers/redfox/actions-tiktok.d.ts +2 -0
  208. package/src/providers/redfox/actions-tiktok.js +136 -0
  209. package/src/providers/redfox/actions-tools.d.ts +2 -0
  210. package/src/providers/redfox/actions-tools.js +151 -0
  211. package/src/providers/redfox/actions-toutiao.d.ts +2 -0
  212. package/src/providers/redfox/actions-toutiao.js +68 -0
  213. package/src/providers/redfox/actions-transcription.d.ts +2 -0
  214. package/src/providers/redfox/actions-transcription.js +165 -0
  215. package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
  216. package/src/providers/redfox/actions-wechat-channel.js +63 -0
  217. package/src/providers/redfox/actions-wechat.d.ts +2 -0
  218. package/src/providers/redfox/actions-wechat.js +302 -0
  219. package/src/providers/redfox/actions-weibo.d.ts +2 -0
  220. package/src/providers/redfox/actions-weibo.js +61 -0
  221. package/src/providers/redfox/actions-x.d.ts +2 -0
  222. package/src/providers/redfox/actions-x.js +126 -0
  223. package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
  224. package/src/providers/redfox/actions-xiaohongshu.js +244 -0
  225. package/src/providers/redfox/actions-yiche.d.ts +2 -0
  226. package/src/providers/redfox/actions-yiche.js +59 -0
  227. package/src/providers/redfox/actions-youtube.d.ts +2 -0
  228. package/src/providers/redfox/actions-youtube.js +64 -0
  229. package/src/providers/redfox/actions-zhihu.d.ts +2 -0
  230. package/src/providers/redfox/actions-zhihu.js +26 -0
  231. package/src/providers/redfox/actions.d.ts +2 -0
  232. package/src/providers/redfox/actions.js +49 -0
  233. package/src/providers/redfox/executors.d.ts +2 -14
  234. package/src/providers/redfox/executors.js +28 -551
  235. package/src/providers/redfox/routes.d.ts +11 -0
  236. package/src/providers/redfox/routes.js +329 -0
  237. package/src/providers/redfox/runtime.d.ts +6 -0
  238. package/src/providers/redfox/runtime.js +151 -0
  239. package/src/providers/redfox/schemas.d.ts +9 -0
  240. package/src/providers/redfox/schemas.js +40 -0
  241. package/src/providers/registry.generated.js +30 -0
  242. package/src/providers/salesforce/context.d.ts +16 -0
  243. package/src/providers/salesforce/context.js +58 -0
  244. package/src/providers/salesforce/executors.d.ts +5 -0
  245. package/src/providers/salesforce/executors.js +54 -0
  246. package/src/providers/salesforce/media.d.ts +9 -0
  247. package/src/providers/salesforce/media.js +66 -0
  248. package/src/providers/salesforce/oauth.d.ts +2 -0
  249. package/src/providers/salesforce/oauth.js +89 -0
  250. package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
  251. package/src/providers/salesforce/runtime-analytics.js +60 -0
  252. package/src/providers/salesforce/runtime-automation.d.ts +2 -0
  253. package/src/providers/salesforce/runtime-automation.js +64 -0
  254. package/src/providers/salesforce/runtime-base.d.ts +2 -0
  255. package/src/providers/salesforce/runtime-base.js +51 -0
  256. package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
  257. package/src/providers/salesforce/runtime-bulk.js +98 -0
  258. package/src/providers/salesforce/runtime-data.d.ts +2 -0
  259. package/src/providers/salesforce/runtime-data.js +207 -0
  260. package/src/providers/salesforce/runtime-files.d.ts +2 -0
  261. package/src/providers/salesforce/runtime-files.js +108 -0
  262. package/src/providers/salesforce/transport.d.ts +9 -0
  263. package/src/providers/salesforce/transport.js +65 -0
  264. package/src/providers/sansan/actions.d.ts +2 -0
  265. package/src/providers/sansan/actions.js +165 -0
  266. package/src/providers/sansan/admin-actions.d.ts +2 -0
  267. package/src/providers/sansan/admin-actions.js +181 -0
  268. package/src/providers/sansan/admin.d.ts +2 -0
  269. package/src/providers/sansan/admin.js +42 -0
  270. package/src/providers/sansan/business-actions.d.ts +2 -0
  271. package/src/providers/sansan/business-actions.js +160 -0
  272. package/src/providers/sansan/business.d.ts +2 -0
  273. package/src/providers/sansan/business.js +51 -0
  274. package/src/providers/sansan/executors.d.ts +4 -0
  275. package/src/providers/sansan/executors.js +59 -0
  276. package/src/providers/sansan/file-schema.d.ts +2 -0
  277. package/src/providers/sansan/file-schema.js +8 -0
  278. package/src/providers/sansan/files.d.ts +11 -0
  279. package/src/providers/sansan/files.js +49 -0
  280. package/src/providers/sansan/organization-actions.d.ts +2 -0
  281. package/src/providers/sansan/organization-actions.js +198 -0
  282. package/src/providers/sansan/organization-columns.d.ts +2 -0
  283. package/src/providers/sansan/organization-columns.js +33 -0
  284. package/src/providers/sansan/organization.d.ts +2 -0
  285. package/src/providers/sansan/organization.js +88 -0
  286. package/src/providers/sansan/read.d.ts +2 -0
  287. package/src/providers/sansan/read.js +25 -0
  288. package/src/providers/sansan/request.d.ts +22 -0
  289. package/src/providers/sansan/request.js +94 -0
  290. package/src/providers/sansan/schemas.d.ts +7 -0
  291. package/src/providers/sansan/schemas.js +72 -0
  292. package/src/providers/shopee/runtime.d.ts +33 -29
  293. package/src/providers/shopee/runtime.js +166 -169
  294. package/src/providers/smarthr/actions.d.ts +2 -0
  295. package/src/providers/smarthr/actions.js +286 -0
  296. package/src/providers/smarthr/employee-runtime.d.ts +1 -0
  297. package/src/providers/smarthr/employee-runtime.js +63 -0
  298. package/src/providers/smarthr/employee-schema.d.ts +3 -0
  299. package/src/providers/smarthr/employee-schema.js +222 -0
  300. package/src/providers/smarthr/executors.d.ts +4 -0
  301. package/src/providers/smarthr/executors.js +35 -0
  302. package/src/providers/smarthr/pagination.d.ts +1 -0
  303. package/src/providers/smarthr/pagination.js +84 -0
  304. package/src/providers/smarthr/resource-routes.d.ts +16 -0
  305. package/src/providers/smarthr/resource-routes.js +163 -0
  306. package/src/providers/smarthr/runtime.d.ts +13 -0
  307. package/src/providers/smarthr/runtime.js +242 -0
  308. package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
  309. package/src/providers/smarthr/supplemental-actions.js +541 -0
  310. package/src/providers/smooth/actions.d.ts +2 -0
  311. package/src/providers/smooth/actions.js +138 -0
  312. package/src/providers/smooth/executors.d.ts +4 -0
  313. package/src/providers/smooth/executors.js +102 -0
  314. package/src/providers/tapd/actions.d.ts +8 -0
  315. package/src/providers/tapd/actions.js +89 -0
  316. package/src/providers/tapd/executors.d.ts +4 -0
  317. package/src/providers/tapd/executors.js +137 -0
  318. package/src/providers/teable/runtime.js +12 -15
  319. package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
  320. package/src/providers/tencent_meeting_mcp/actions.js +420 -0
  321. package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
  322. package/src/providers/tencent_meeting_mcp/executors.js +117 -0
  323. package/src/providers/threatfox/executors.d.ts +4 -0
  324. package/src/providers/threatfox/executors.js +40 -0
  325. package/src/providers/threatfox/runtime.d.ts +15 -0
  326. package/src/providers/threatfox/runtime.js +128 -0
  327. package/src/providers/ticket_tailor/runtime.js +1 -1
  328. package/src/providers/ticketmaster/runtime.js +3 -6
  329. package/src/providers/timelinesai/runtime.js +13 -16
  330. package/src/providers/tradebee/actions.d.ts +2 -0
  331. package/src/providers/tradebee/actions.js +176 -0
  332. package/src/providers/tradebee/executors.d.ts +4 -0
  333. package/src/providers/tradebee/executors.js +83 -0
  334. package/src/providers/twittrapi/executors.d.ts +4 -0
  335. package/src/providers/twittrapi/executors.js +17 -0
  336. package/src/providers/twittrapi/runtime.d.ts +12 -0
  337. package/src/providers/twittrapi/runtime.js +203 -0
  338. package/src/providers/urlhaus/executors.d.ts +4 -0
  339. package/src/providers/urlhaus/executors.js +40 -0
  340. package/src/providers/urlhaus/runtime.d.ts +15 -0
  341. package/src/providers/urlhaus/runtime.js +142 -0
  342. package/src/providers/wangdian/runtime.js +16 -19
  343. package/src/providers/weread/actions.d.ts +2 -0
  344. package/src/providers/weread/actions.js +424 -0
  345. package/src/providers/weread/executors.d.ts +4 -0
  346. package/src/providers/weread/executors.js +98 -0
  347. package/src/providers/whatsapp/runtime.js +6 -1
  348. package/src/providers/workast/runtime.js +12 -17
  349. package/src/providers/youzan/runtime.js +21 -24
  350. package/src/providers/zenkit/runtime.js +13 -19
  351. package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
  352. package/src/providers/zhiliaobiaoxun/actions.js +138 -0
  353. package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
  354. package/src/providers/zhiliaobiaoxun/executors.js +78 -0
  355. package/src/server/api/auth.d.ts +2 -0
  356. package/src/server/api/auth.js +2 -1
  357. package/src/server/api/console-catalog-routes.d.ts +17 -0
  358. package/src/server/api/console-catalog-routes.js +88 -0
  359. package/src/server/api/console-oauth-routes.d.ts +18 -0
  360. package/src/server/api/console-oauth-routes.js +298 -0
  361. package/src/server/api/docs-routes.d.ts +12 -0
  362. package/src/server/api/docs-routes.js +38 -0
  363. package/src/server/api/http-utils.d.ts +1 -0
  364. package/src/server/api/http-utils.js +8 -0
  365. package/src/server/api/marketplace-routes.d.ts +7 -0
  366. package/src/server/api/marketplace-routes.js +62 -0
  367. package/src/server/api/mcp-routes.d.ts +18 -0
  368. package/src/server/api/mcp-routes.js +37 -0
  369. package/src/server/api/policy-routes.d.ts +13 -0
  370. package/src/server/api/policy-routes.js +50 -0
  371. package/src/server/api/policy-snapshot.d.ts +14 -0
  372. package/src/server/api/policy-snapshot.js +30 -0
  373. package/src/server/api/run-log-routes.d.ts +7 -0
  374. package/src/server/api/run-log-routes.js +70 -0
  375. package/src/server/api/runtime-api.d.ts +0 -7
  376. package/src/server/api/runtime-api.js +0 -13
  377. package/src/server/api/runtime-app-routes.d.ts +10 -0
  378. package/src/server/api/runtime-app-routes.js +72 -0
  379. package/src/server/api/runtime-catalog-routes.d.ts +37 -0
  380. package/src/server/api/runtime-catalog-routes.js +133 -0
  381. package/src/server/api/runtime-execution-routes.d.ts +16 -0
  382. package/src/server/api/runtime-execution-routes.js +198 -0
  383. package/src/server/api/saas-oauth-routes.d.ts +9 -0
  384. package/src/server/api/saas-oauth-routes.js +27 -0
  385. package/src/server/api/saas-project-routes.d.ts +7 -0
  386. package/src/server/api/saas-project-routes.js +16 -0
  387. package/src/server/api/transit-file-routes.d.ts +9 -0
  388. package/src/server/api/transit-file-routes.js +49 -0
  389. package/src/server/api/trigger-routes.d.ts +15 -0
  390. package/src/server/api/trigger-routes.js +48 -0
  391. package/src/server/connect-app.d.ts +1 -0
  392. package/src/server/connect-app.js +3 -1
  393. package/src/server/connect-server.d.ts +3 -54
  394. package/src/server/connect-server.js +95 -1148
  395. package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
@@ -0,0 +1,278 @@
1
+ export const hrmosOperations = {
2
+ list_employees: {
3
+ path: "/users",
4
+ method: "GET",
5
+ response: "list",
6
+ },
7
+ list_departments: {
8
+ path: "/departments",
9
+ method: "GET",
10
+ response: "list",
11
+ },
12
+ list_employment_types: {
13
+ path: "/employments",
14
+ method: "GET",
15
+ response: "list",
16
+ },
17
+ list_workplaces: {
18
+ path: "/lodgments",
19
+ method: "GET",
20
+ response: "list",
21
+ },
22
+ list_work_segments: {
23
+ path: "/segments",
24
+ method: "GET",
25
+ response: "list",
26
+ },
27
+ list_leave_types: {
28
+ path: "/paid_holidays",
29
+ method: "GET",
30
+ response: "list",
31
+ },
32
+ list_daily_attendance: {
33
+ path: "/work_outputs/daily/{day}",
34
+ method: "GET",
35
+ response: "list",
36
+ },
37
+ list_monthly_attendance: {
38
+ path: "/work_outputs/monthly/{month}",
39
+ method: "GET",
40
+ response: "list",
41
+ },
42
+ list_monthly_reports: {
43
+ path: "/work_output_months/monthly/{month}",
44
+ method: "GET",
45
+ response: "list",
46
+ },
47
+ list_daily_stamp_logs: {
48
+ path: "/stamp_logs/daily/{day}",
49
+ method: "GET",
50
+ response: "list",
51
+ },
52
+ list_employee_stamp_logs: {
53
+ path: "/stamp_logs/user/{user_id}",
54
+ method: "GET",
55
+ response: "list",
56
+ },
57
+ list_employee_leave_history: {
58
+ path: "/paid_holidays/{id}/users/{user_id}/year/{year}",
59
+ method: "GET",
60
+ response: "list",
61
+ },
62
+ list_daily_attendance_differences: {
63
+ path: "/work_output_diffs/daily/{day}",
64
+ method: "GET",
65
+ response: "list",
66
+ },
67
+ list_monthly_attendance_differences: {
68
+ path: "/work_output_diffs/monthly/{month}",
69
+ method: "GET",
70
+ response: "list",
71
+ aliases: {
72
+ employeeId: "user_id",
73
+ },
74
+ },
75
+ list_daily_time_band_totals: {
76
+ path: "/work_output_original_aggregates/daily/{month}",
77
+ method: "GET",
78
+ response: "list",
79
+ aliases: {
80
+ employeeId: "user_id",
81
+ timeBandId: "original_aggregate_id",
82
+ },
83
+ },
84
+ list_monthly_time_band_totals: {
85
+ path: "/work_output_original_aggregates/monthly/{month}",
86
+ method: "GET",
87
+ response: "list",
88
+ aliases: {
89
+ employeeId: "user_id",
90
+ timeBandId: "original_aggregate_id",
91
+ },
92
+ },
93
+ get_monthly_report_definitions: {
94
+ path: "/work_output_months/work_report_definitions",
95
+ method: "GET",
96
+ response: "definitions",
97
+ },
98
+ list_monthly_report_values: {
99
+ path: "/work_output_months/monthly/{month}/work_report",
100
+ method: "GET",
101
+ response: "list",
102
+ aliases: {
103
+ employeeNumbers: "number",
104
+ statuses: "status",
105
+ },
106
+ },
107
+ get_time_band_report_definitions: {
108
+ path: "/work_output_original_aggregates/work_report_definitions",
109
+ method: "GET",
110
+ response: "definitions",
111
+ },
112
+ list_time_band_report_values: {
113
+ path: "/work_output_original_aggregates/monthly/{month}/work_report",
114
+ method: "GET",
115
+ response: "list",
116
+ },
117
+ list_prefectures: {
118
+ path: "/prefecturals",
119
+ method: "GET",
120
+ response: "list",
121
+ },
122
+ update_attendance: {
123
+ path: "/work",
124
+ method: "PUT",
125
+ response: "record",
126
+ bodyField: "data",
127
+ },
128
+ upsert_external_attendance: {
129
+ path: "/work/other_systems",
130
+ method: "POST",
131
+ response: "record",
132
+ bodyField: "data",
133
+ },
134
+ upsert_employee: {
135
+ path: "/users",
136
+ method: "POST",
137
+ response: "record",
138
+ bodyField: "data",
139
+ },
140
+ create_stamp: {
141
+ path: "/stamp_logs",
142
+ method: "POST",
143
+ response: "record",
144
+ bodyField: "data",
145
+ },
146
+ export_dependent_declaration: {
147
+ path: "/nnc/reports/{year}/fuyo_shinkoku_csv",
148
+ method: "GET",
149
+ response: "file",
150
+ },
151
+ export_next_year_dependent_declaration: {
152
+ path: "/nnc/reports/{year}/fuyo_shinkoku_rainen_csv",
153
+ method: "GET",
154
+ response: "file",
155
+ },
156
+ export_insurance_deduction_declaration: {
157
+ path: "/nnc/reports/{year}/hokenryo_shinkoku_csv",
158
+ method: "GET",
159
+ response: "file",
160
+ },
161
+ export_income_deduction_declaration: {
162
+ path: "/nnc/reports/{year}/kihaisho_shinkoku_csv",
163
+ method: "GET",
164
+ response: "file",
165
+ },
166
+ export_housing_loan_declaration: {
167
+ path: "/nnc/reports/{year}/jutaku_loan_shinkoku_csv",
168
+ method: "GET",
169
+ response: "file",
170
+ },
171
+ export_previous_employment_withholding: {
172
+ path: "/nnc/reports/{year}/zenshoku_gensen_choshuhyo_csv",
173
+ method: "GET",
174
+ response: "file",
175
+ },
176
+ list_contracts: {
177
+ path: "/deal_contracts",
178
+ method: "GET",
179
+ response: "list",
180
+ aliases: {
181
+ employeeId: "user_id",
182
+ partnerId: "business_partner_id",
183
+ },
184
+ },
185
+ create_contract: {
186
+ path: "/deal_contracts",
187
+ method: "POST",
188
+ response: "record",
189
+ aliases: {},
190
+ bodyField: "data",
191
+ },
192
+ update_contract: {
193
+ path: "/deal_contracts/{id}",
194
+ method: "PUT",
195
+ response: "record",
196
+ aliases: {
197
+ contractId: "id",
198
+ },
199
+ bodyField: "data",
200
+ },
201
+ delete_contract: {
202
+ path: "/deal_contracts/{id}",
203
+ method: "DELETE",
204
+ response: "record",
205
+ aliases: {
206
+ contractId: "id",
207
+ },
208
+ },
209
+ list_business_partners: {
210
+ path: "/business_partners",
211
+ method: "GET",
212
+ response: "list",
213
+ aliases: {
214
+ partnerId: "id",
215
+ closeOut: "close_out",
216
+ },
217
+ },
218
+ create_business_partner: {
219
+ path: "/business_partners",
220
+ method: "POST",
221
+ response: "record",
222
+ aliases: {},
223
+ bodyField: "data",
224
+ },
225
+ update_business_partner: {
226
+ path: "/business_partners/{id}",
227
+ method: "PUT",
228
+ response: "record",
229
+ aliases: {
230
+ partnerId: "id",
231
+ },
232
+ bodyField: "data",
233
+ },
234
+ delete_business_partner: {
235
+ path: "/business_partners/{id}",
236
+ method: "DELETE",
237
+ response: "record",
238
+ aliases: {
239
+ partnerId: "id",
240
+ },
241
+ },
242
+ list_partner_contacts: {
243
+ path: "/business_partners/{business_partner_id}/business_partner_users",
244
+ method: "GET",
245
+ response: "list",
246
+ aliases: {
247
+ partnerId: "business_partner_id",
248
+ },
249
+ },
250
+ create_partner_contact: {
251
+ path: "/business_partners/{business_partner_id}/business_partner_users",
252
+ method: "POST",
253
+ response: "record",
254
+ aliases: {
255
+ partnerId: "business_partner_id",
256
+ },
257
+ bodyField: "data",
258
+ },
259
+ update_partner_contact: {
260
+ path: "/business_partners/{business_partner_id}/business_partner_users/{id}",
261
+ method: "PUT",
262
+ response: "record",
263
+ aliases: {
264
+ partnerId: "business_partner_id",
265
+ contactId: "id",
266
+ },
267
+ bodyField: "data",
268
+ },
269
+ delete_partner_contact: {
270
+ path: "/business_partners/{business_partner_id}/business_partner_users/{id}",
271
+ method: "DELETE",
272
+ response: "record",
273
+ aliases: {
274
+ partnerId: "business_partner_id",
275
+ contactId: "id",
276
+ },
277
+ },
278
+ };
@@ -0,0 +1,10 @@
1
+ import type { ApiKeyProviderContext } from "../provider-runtime.ts";
2
+ import { ProviderRequestError } from "../provider-runtime.ts";
3
+ export declare function normalizeCompany(value: unknown): string;
4
+ export declare function hrmosBaseUrl(company: string): string;
5
+ export declare function readHrmosError(response: Response): Promise<ProviderRequestError>;
6
+ export declare function authenticate(company: string, apiKey: string, fetcher: typeof fetch, signal?: AbortSignal, force?: boolean): Promise<string>;
7
+ export interface HrmosContext extends ApiKeyProviderContext {
8
+ company: string;
9
+ }
10
+ export declare function executeHrmosAction(actionName: string, parameters: Record<string, unknown>, context: HrmosContext): Promise<unknown>;
@@ -0,0 +1,217 @@
1
+ import { sha256Hex } from "../../core/aws-sigv4.js";
2
+ import { optionalRecord, optionalString } from "../../core/cast.js";
3
+ import { storeResponseInTransit } from "../../core/request.js";
4
+ import { basicAuthorizationHeader, isAbortLikeError, providerInputError, providerResponseError, providerUserAgent, ProviderRequestError, requiredInputString, requiredResponseRecord, runProviderRequest, } from "../provider-runtime.js";
5
+ import { hrmosOperations } from "./operations.js";
6
+ export function normalizeCompany(value) {
7
+ let company = requiredInputString(value, "companyUrl");
8
+ if (company.startsWith("https://")) {
9
+ let url;
10
+ try {
11
+ url = new URL(company);
12
+ }
13
+ catch {
14
+ throw providerInputError("companyUrl must be a valid HRMOS login URL");
15
+ }
16
+ if (url.origin !== "https://ieyasu.co" || url.username || url.password || url.search || url.hash) {
17
+ throw providerInputError("Use an HRMOS company login URL on https://ieyasu.co");
18
+ }
19
+ company = url.pathname.slice(1);
20
+ if (company.endsWith("/"))
21
+ company = company.slice(0, -1);
22
+ const segments = company.split("/");
23
+ if (segments.length === 2 && segments[1] === "login")
24
+ company = segments[0];
25
+ }
26
+ const allowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-";
27
+ if (!company || [...company].some((character) => !allowed.includes(character))) {
28
+ throw providerInputError("companyUrl must be the company slug or its https://ieyasu.co login URL");
29
+ }
30
+ return company;
31
+ }
32
+ export function hrmosBaseUrl(company) {
33
+ return `https://ieyasu.co/api/${normalizeCompany(company)}/v1`;
34
+ }
35
+ export async function readHrmosError(response) {
36
+ let body;
37
+ try {
38
+ body = await response.json();
39
+ }
40
+ catch (error) {
41
+ if (isAbortLikeError(error))
42
+ throw error;
43
+ }
44
+ // The generic 401 response cannot distinguish keys, tokens and permissions.
45
+ return new ProviderRequestError(response.status, optionalString(optionalRecord(body)?.message) ?? `HRMOS Kintai request failed (${response.status})`, undefined, response.status === 429 ? "rate_limited" : "provider_error");
46
+ }
47
+ async function readJson(response) {
48
+ if (!response.ok)
49
+ throw await readHrmosError(response);
50
+ try {
51
+ return await response.json();
52
+ }
53
+ catch (error) {
54
+ if (isAbortLikeError(error))
55
+ throw error;
56
+ throw providerResponseError("HRMOS Kintai returned invalid JSON");
57
+ }
58
+ }
59
+ function paginationInteger(headers, name) {
60
+ const raw = headers.get(name);
61
+ if (raw === null || raw.trim() === "")
62
+ return null;
63
+ const value = Number(raw);
64
+ return Number.isInteger(value) && value >= 0 ? value : null;
65
+ }
66
+ const tokens = new Map();
67
+ export async function authenticate(company, apiKey, fetcher, signal, force = false) {
68
+ const cacheKey = sha256Hex(JSON.stringify([company, apiKey]));
69
+ if (force)
70
+ tokens.delete(cacheKey);
71
+ const cached = tokens.get(cacheKey);
72
+ if (cached) {
73
+ const result = await cached;
74
+ if (result.expiresAt > Date.now())
75
+ return result.token;
76
+ if (tokens.get(cacheKey) !== cached)
77
+ return authenticate(company, apiKey, fetcher, signal);
78
+ tokens.delete(cacheKey);
79
+ }
80
+ const pending = runProviderRequest({ label: "HRMOS Kintai authentication", signal }, async (requestSignal) => {
81
+ const response = await fetcher(`${hrmosBaseUrl(company)}/authentication/token`, {
82
+ method: "GET",
83
+ headers: {
84
+ // HRMOS encodes the Secret Key itself, with no trailing Basic-auth colon.
85
+ authorization: basicAuthorizationHeader(apiKey),
86
+ accept: "application/json",
87
+ "content-type": "application/json",
88
+ "user-agent": providerUserAgent,
89
+ },
90
+ signal: requestSignal,
91
+ });
92
+ const body = requiredResponseRecord(await readJson(response), "HRMOS Kintai token response");
93
+ const token = optionalString(body.token);
94
+ const expiresAt = Date.parse(optionalString(body.expired_at) ?? "");
95
+ if (!token?.trim() || !Number.isFinite(expiresAt) || expiresAt <= Date.now()) {
96
+ throw providerResponseError("HRMOS Kintai returned an invalid or expired token");
97
+ }
98
+ return { token, expiresAt: expiresAt - Math.min(60_000, (expiresAt - Date.now()) / 2) };
99
+ });
100
+ tokens.set(cacheKey, pending);
101
+ if (tokens.size > 500) {
102
+ const oldest = tokens.keys().next().value;
103
+ if (oldest !== undefined)
104
+ tokens.delete(oldest);
105
+ }
106
+ try {
107
+ return (await pending).token;
108
+ }
109
+ catch (error) {
110
+ if (tokens.get(cacheKey) === pending)
111
+ tokens.delete(cacheKey);
112
+ throw error;
113
+ }
114
+ }
115
+ export async function executeHrmosAction(actionName, parameters, context) {
116
+ const { company, apiKey, fetcher, transitFiles } = context;
117
+ const operation = hrmosOperations[actionName];
118
+ if (!operation)
119
+ throw providerInputError("Unknown HRMOS Kintai action");
120
+ if (operation.response === "file" && !transitFiles) {
121
+ throw new ProviderRequestError(500, "HRMOS CSV export requires transit storage");
122
+ }
123
+ let path = operation.path;
124
+ const aliases = {
125
+ employeeId: "user_id",
126
+ leaveTypeId: "id",
127
+ prefectureId: "prefectural_id",
128
+ stampType: "stamp_type",
129
+ employeeNumbers: "number",
130
+ statuses: "status",
131
+ ...operation.aliases,
132
+ };
133
+ const query = new URLSearchParams();
134
+ for (const [name, value] of Object.entries(parameters)) {
135
+ if (value === undefined || name === operation.bodyField)
136
+ continue;
137
+ const upstream = aliases[name] ?? name;
138
+ const marker = `{${upstream}}`;
139
+ if (path.includes(marker))
140
+ path = path.replace(marker, encodeURIComponent(String(value)));
141
+ else if (name === "employeeNumbers" && Array.isArray(value)) {
142
+ // OpenAPI form + explode arrays use repeated parameter names.
143
+ for (const number of value)
144
+ query.append("number", String(number));
145
+ }
146
+ else
147
+ query.set(upstream, Array.isArray(value) ? value.join(",") : String(value));
148
+ }
149
+ const token = await authenticate(company, apiKey, fetcher, context.signal);
150
+ return runProviderRequest({
151
+ label: "HRMOS Kintai",
152
+ signal: context.signal,
153
+ timeoutMs: operation.response === "file" ? 120_000 : undefined,
154
+ }, async (signal) => {
155
+ const url = new URL(`${hrmosBaseUrl(company)}${path}`);
156
+ url.search = query.toString();
157
+ const response = await fetcher(url, {
158
+ method: operation.method,
159
+ headers: {
160
+ authorization: `Token ${token}`,
161
+ "content-type": "application/json",
162
+ accept: operation.response === "file" ? "text/csv" : "application/json",
163
+ "user-agent": providerUserAgent,
164
+ },
165
+ body: operation.bodyField ? JSON.stringify(parameters[operation.bodyField]) : undefined,
166
+ signal,
167
+ });
168
+ if (response.status === 401)
169
+ tokens.delete(sha256Hex(JSON.stringify([company, apiKey])));
170
+ if (operation.response === "file") {
171
+ if (!response.ok)
172
+ throw await readHrmosError(response);
173
+ const mimeType = response.headers.get("content-type") || "text/csv";
174
+ if (mimeType.includes("text/html") || mimeType.includes("application/json")) {
175
+ await response.body?.cancel();
176
+ throw providerResponseError("HRMOS Kintai returned a non-CSV export response");
177
+ }
178
+ const name = `hrmos-${actionName.slice("export_".length)}-${parameters.year}.csv`;
179
+ const file = await storeResponseInTransit(response, transitFiles, {
180
+ name,
181
+ mimeType,
182
+ signal,
183
+ maxBytes: 64 * 1024 * 1024,
184
+ fieldName: "HRMOS Kintai CSV export",
185
+ createError: providerResponseError,
186
+ });
187
+ if (file.sizeBytes === 0) {
188
+ await transitFiles.delete(file.fileId);
189
+ throw providerResponseError("HRMOS Kintai returned an empty CSV export");
190
+ }
191
+ return { file };
192
+ }
193
+ const payload = await readJson(response);
194
+ if (operation.response === "record") {
195
+ return { record: requiredResponseRecord(payload, "HRMOS Kintai operation response") };
196
+ }
197
+ if (operation.response === "definitions") {
198
+ const definitions = requiredResponseRecord(payload, "HRMOS Kintai report definitions");
199
+ if (!Array.isArray(definitions.items)) {
200
+ throw providerResponseError("HRMOS Kintai definitions must include items");
201
+ }
202
+ return definitions;
203
+ }
204
+ if (!Array.isArray(payload))
205
+ throw providerResponseError("HRMOS Kintai list response must be an array");
206
+ const page = Number(parameters.page ?? 1);
207
+ const totalPages = paginationInteger(response.headers, "X-Total-Page");
208
+ return {
209
+ items: payload,
210
+ page,
211
+ totalCount: paginationInteger(response.headers, "X-Total-Count"),
212
+ totalPages,
213
+ nextPage: totalPages !== null && page < totalPages ? page + 1 : null,
214
+ useHourHoliday: response.headers.get("X-Use-Hour-Holiday"),
215
+ };
216
+ });
217
+ }
@@ -0,0 +1,10 @@
1
+ import type { JsonSchema } from "../../core/types.ts";
2
+ export declare const pagination: Record<string, JsonSchema>;
3
+ export declare const employeeRecord: JsonSchema;
4
+ export declare const namedRecord: JsonSchema;
5
+ export declare const segmentRecord: JsonSchema;
6
+ export declare const attendanceRecord: JsonSchema;
7
+ export declare const reportRecord: JsonSchema;
8
+ export declare const stampRecord: JsonSchema;
9
+ export declare const leaveRecord: JsonSchema;
10
+ export declare function listOutput(record: JsonSchema): JsonSchema;
@@ -0,0 +1,70 @@
1
+ import { s } from "../../core/json-schema.js";
2
+ export const pagination = {
3
+ limit: s.integer("Maximum records per page (1–100); defaults to 25.", {
4
+ minimum: 1,
5
+ maximum: 100,
6
+ default: 25,
7
+ }),
8
+ page: s.integer("Page number, starting at 1.", { minimum: 1, default: 1 }),
9
+ from: s.string("Include records updated at or after this timestamp.", { format: "date-time" }),
10
+ to: s.string("Include records updated at or before this timestamp.", { format: "date-time" }),
11
+ };
12
+ export const employeeRecord = s.looseObject("HRMOS employee record; additional upstream fields are preserved.", {
13
+ id: s.nullable(s.integer("Record ID.")),
14
+ number: s.nullable(s.string("Employee number.")),
15
+ first_name: s.nullable(s.string("Employee given name.")),
16
+ last_name: s.nullable(s.string("Employee family name.")),
17
+ department_id: s.nullable(s.integer("Department ID.")),
18
+ employment_id: s.nullable(s.integer("Employment type ID.")),
19
+ lodgment_id: s.nullable(s.integer("Workplace ID.")),
20
+ });
21
+ export const namedRecord = s.looseObject("HRMOS named record; additional upstream fields are preserved.", {
22
+ id: s.nullable(s.integer("Record ID.")),
23
+ name: s.nullable(s.string("Display name.")),
24
+ });
25
+ export const segmentRecord = s.looseObject("HRMOS segment record; additional upstream fields are preserved.", {
26
+ title: s.nullable(s.string("Work classification title.")),
27
+ display_title: s.nullable(s.string("Work classification display title.")),
28
+ });
29
+ export const attendanceRecord = s.looseObject("HRMOS attendance record; additional upstream fields are preserved.", {
30
+ user_id: s.nullable(s.integer("Employee ID.")),
31
+ number: s.nullable(s.string("Employee number.")),
32
+ full_name: s.nullable(s.string("Employee full name.")),
33
+ month: s.nullable(s.string("Attendance month as returned by HRMOS.")),
34
+ day: s.nullable(s.string("Attendance date.")),
35
+ actual_working_hours: s.nullable(s.string("Actual working duration in the HRMOS representation.")),
36
+ total_working_hours: s.nullable(s.string("Total working duration in the HRMOS representation.")),
37
+ });
38
+ export const reportRecord = s.looseObject("HRMOS report record; additional upstream fields are preserved.", {
39
+ user_id: s.nullable(s.integer("Employee ID.")),
40
+ number: s.nullable(s.string("Employee number.")),
41
+ month: s.nullable(s.string("Attendance month as returned by HRMOS.")),
42
+ actual_working_hours: s.nullable(s.string("Actual working duration in the HRMOS representation.")),
43
+ total_working_hours: s.nullable(s.string("Total working duration in the HRMOS representation.")),
44
+ over_work_time: s.nullable(s.string("Overtime duration in the HRMOS representation.")),
45
+ remain_paid_holidays: s.nullable(s.string("Remaining paid leave days as reported in the monthly summary.")),
46
+ });
47
+ export const stampRecord = s.looseObject("HRMOS stamp record; additional upstream fields are preserved.", {
48
+ user_id: s.nullable(s.integer("Employee ID.")),
49
+ stamp_type: s.nullable(s.integer("Punch type: 1 clock-in, 2 clock-out, 7 break start, 8 break end.")),
50
+ created_at: s.nullable(s.string("Record creation timestamp.")),
51
+ lodgment_id: s.nullable(s.integer("Workplace ID.")),
52
+ });
53
+ export const leaveRecord = s.looseObject("HRMOS leave record; additional upstream fields are preserved.", {
54
+ user_id: s.nullable(s.integer("Employee ID.")),
55
+ date: s.nullable(s.string("Leave history date.")),
56
+ remaining_days: s.nullable(s.number("Remaining leave days.")),
57
+ remaining_hours: s.nullable(s.number("Remaining leave hours.")),
58
+ taken_days: s.nullable(s.number("Leave days taken.")),
59
+ received_days: s.nullable(s.number("Leave days granted.")),
60
+ });
61
+ export function listOutput(record) {
62
+ return s.requiredObject("A page of HRMOS Kintai records with pagination metadata.", {
63
+ items: s.array("Records with original HRMOS field names and additional upstream fields preserved.", record),
64
+ page: s.integer("Current page number."),
65
+ totalCount: s.nullable(s.integer("Total records reported by HRMOS, or null when unavailable.")),
66
+ totalPages: s.nullable(s.integer("Total pages reported by HRMOS, or null when unavailable.")),
67
+ nextPage: s.nullable(s.integer("Next page number, or null when there is no known next page.")),
68
+ useHourHoliday: s.nullable(s.string("Raw X-Use-Hour-Holiday value for leave history, or null when absent.")),
69
+ });
70
+ }
@@ -0,0 +1,2 @@
1
+ import type { ActionDefinition } from "../../core/types.ts";
2
+ export declare const humorApiActions: readonly ActionDefinition[];