@oni.bot/core 1.0.0 → 1.0.2

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 (511) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/SECURITY.md +2 -2
  3. package/dist/agents/context.d.ts +0 -2
  4. package/dist/agents/context.d.ts.map +1 -1
  5. package/dist/agents/context.js +1 -3
  6. package/dist/agents/context.js.map +1 -1
  7. package/dist/agents/define-agent.d.ts.map +1 -1
  8. package/dist/agents/define-agent.js +92 -39
  9. package/dist/agents/define-agent.js.map +1 -1
  10. package/dist/agents/functional-agent.d.ts.map +1 -1
  11. package/dist/agents/functional-agent.js +0 -7
  12. package/dist/agents/functional-agent.js.map +1 -1
  13. package/dist/agents/types.d.ts +0 -2
  14. package/dist/agents/types.d.ts.map +1 -1
  15. package/dist/checkpointers/postgres.js +4 -4
  16. package/dist/checkpointers/postgres.js.map +1 -1
  17. package/dist/checkpointers/sqlite.js +4 -4
  18. package/dist/checkpointers/sqlite.js.map +1 -1
  19. package/dist/cli/router.js +1 -1
  20. package/dist/config/loader.d.ts.map +1 -1
  21. package/dist/config/loader.js +23 -1
  22. package/dist/config/loader.js.map +1 -1
  23. package/dist/context.d.ts +20 -0
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js.map +1 -1
  26. package/dist/coordination/request-reply.d.ts +1 -0
  27. package/dist/coordination/request-reply.d.ts.map +1 -1
  28. package/dist/coordination/request-reply.js +13 -1
  29. package/dist/coordination/request-reply.js.map +1 -1
  30. package/dist/graph.d.ts.map +1 -1
  31. package/dist/graph.js +17 -2
  32. package/dist/graph.js.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/mcp/client.js +1 -1
  35. package/dist/pregel.d.ts +2 -0
  36. package/dist/pregel.d.ts.map +1 -1
  37. package/dist/pregel.js +415 -341
  38. package/dist/pregel.js.map +1 -1
  39. package/dist/store/index.d.ts +1 -1
  40. package/dist/store/index.d.ts.map +1 -1
  41. package/dist/store/index.js +28 -5
  42. package/dist/store/index.js.map +1 -1
  43. package/dist/streaming.d.ts +5 -2
  44. package/dist/streaming.d.ts.map +1 -1
  45. package/dist/streaming.js +9 -8
  46. package/dist/streaming.js.map +1 -1
  47. package/dist/swarm/graph.d.ts +1 -0
  48. package/dist/swarm/graph.d.ts.map +1 -1
  49. package/dist/swarm/graph.js +162 -40
  50. package/dist/swarm/graph.js.map +1 -1
  51. package/dist/swarm/pool.d.ts.map +1 -1
  52. package/dist/swarm/pool.js +12 -4
  53. package/dist/swarm/pool.js.map +1 -1
  54. package/dist/tools/define.d.ts.map +1 -1
  55. package/dist/tools/define.js +1 -0
  56. package/dist/tools/define.js.map +1 -1
  57. package/dist/tools/types.d.ts +2 -0
  58. package/dist/tools/types.d.ts.map +1 -1
  59. package/package.json +7 -1
  60. package/dist/oni-code/agent-registry.d.ts +0 -73
  61. package/dist/oni-code/agent-registry.d.ts.map +0 -1
  62. package/dist/oni-code/agent-registry.js +0 -151
  63. package/dist/oni-code/agent-registry.js.map +0 -1
  64. package/dist/oni-code/bin.d.ts +0 -18
  65. package/dist/oni-code/bin.d.ts.map +0 -1
  66. package/dist/oni-code/bin.js +0 -78
  67. package/dist/oni-code/bin.js.map +0 -1
  68. package/dist/oni-code/change-tracking.d.ts +0 -28
  69. package/dist/oni-code/change-tracking.d.ts.map +0 -1
  70. package/dist/oni-code/change-tracking.js +0 -77
  71. package/dist/oni-code/change-tracking.js.map +0 -1
  72. package/dist/oni-code/cli.d.ts +0 -6
  73. package/dist/oni-code/cli.d.ts.map +0 -1
  74. package/dist/oni-code/cli.js +0 -30
  75. package/dist/oni-code/cli.js.map +0 -1
  76. package/dist/oni-code/conductor.d.ts +0 -203
  77. package/dist/oni-code/conductor.d.ts.map +0 -1
  78. package/dist/oni-code/conductor.js +0 -1547
  79. package/dist/oni-code/conductor.js.map +0 -1
  80. package/dist/oni-code/config.d.ts +0 -130
  81. package/dist/oni-code/config.d.ts.map +0 -1
  82. package/dist/oni-code/config.js +0 -264
  83. package/dist/oni-code/config.js.map +0 -1
  84. package/dist/oni-code/context-files.d.ts +0 -22
  85. package/dist/oni-code/context-files.d.ts.map +0 -1
  86. package/dist/oni-code/context-files.js +0 -156
  87. package/dist/oni-code/context-files.js.map +0 -1
  88. package/dist/oni-code/cron/humanize.d.ts +0 -26
  89. package/dist/oni-code/cron/humanize.d.ts.map +0 -1
  90. package/dist/oni-code/cron/humanize.js +0 -83
  91. package/dist/oni-code/cron/humanize.js.map +0 -1
  92. package/dist/oni-code/cron/index.d.ts +0 -10
  93. package/dist/oni-code/cron/index.d.ts.map +0 -1
  94. package/dist/oni-code/cron/index.js +0 -7
  95. package/dist/oni-code/cron/index.js.map +0 -1
  96. package/dist/oni-code/cron/matcher.d.ts +0 -29
  97. package/dist/oni-code/cron/matcher.d.ts.map +0 -1
  98. package/dist/oni-code/cron/matcher.js +0 -73
  99. package/dist/oni-code/cron/matcher.js.map +0 -1
  100. package/dist/oni-code/cron/parser.d.ts +0 -27
  101. package/dist/oni-code/cron/parser.d.ts.map +0 -1
  102. package/dist/oni-code/cron/parser.js +0 -149
  103. package/dist/oni-code/cron/parser.js.map +0 -1
  104. package/dist/oni-code/cron/persistence.d.ts +0 -21
  105. package/dist/oni-code/cron/persistence.d.ts.map +0 -1
  106. package/dist/oni-code/cron/persistence.js +0 -58
  107. package/dist/oni-code/cron/persistence.js.map +0 -1
  108. package/dist/oni-code/cron/scheduler.d.ts +0 -64
  109. package/dist/oni-code/cron/scheduler.d.ts.map +0 -1
  110. package/dist/oni-code/cron/scheduler.js +0 -188
  111. package/dist/oni-code/cron/scheduler.js.map +0 -1
  112. package/dist/oni-code/cron/store.d.ts +0 -46
  113. package/dist/oni-code/cron/store.d.ts.map +0 -1
  114. package/dist/oni-code/cron/store.js +0 -68
  115. package/dist/oni-code/cron/store.js.map +0 -1
  116. package/dist/oni-code/env.d.ts +0 -17
  117. package/dist/oni-code/env.d.ts.map +0 -1
  118. package/dist/oni-code/env.js +0 -51
  119. package/dist/oni-code/env.js.map +0 -1
  120. package/dist/oni-code/file-reader.d.ts +0 -28
  121. package/dist/oni-code/file-reader.d.ts.map +0 -1
  122. package/dist/oni-code/file-reader.js +0 -368
  123. package/dist/oni-code/file-reader.js.map +0 -1
  124. package/dist/oni-code/file-watcher.d.ts +0 -66
  125. package/dist/oni-code/file-watcher.d.ts.map +0 -1
  126. package/dist/oni-code/file-watcher.js +0 -167
  127. package/dist/oni-code/file-watcher.js.map +0 -1
  128. package/dist/oni-code/loop-detector.d.ts +0 -64
  129. package/dist/oni-code/loop-detector.d.ts.map +0 -1
  130. package/dist/oni-code/loop-detector.js +0 -163
  131. package/dist/oni-code/loop-detector.js.map +0 -1
  132. package/dist/oni-code/permissions.d.ts +0 -43
  133. package/dist/oni-code/permissions.d.ts.map +0 -1
  134. package/dist/oni-code/permissions.js +0 -98
  135. package/dist/oni-code/permissions.js.map +0 -1
  136. package/dist/oni-code/planner.d.ts +0 -26
  137. package/dist/oni-code/planner.d.ts.map +0 -1
  138. package/dist/oni-code/planner.js +0 -86
  139. package/dist/oni-code/planner.js.map +0 -1
  140. package/dist/oni-code/plugin-loader.d.ts +0 -103
  141. package/dist/oni-code/plugin-loader.d.ts.map +0 -1
  142. package/dist/oni-code/plugin-loader.js +0 -171
  143. package/dist/oni-code/plugin-loader.js.map +0 -1
  144. package/dist/oni-code/process-tree.d.ts +0 -44
  145. package/dist/oni-code/process-tree.d.ts.map +0 -1
  146. package/dist/oni-code/process-tree.js +0 -107
  147. package/dist/oni-code/process-tree.js.map +0 -1
  148. package/dist/oni-code/progress-tracker.d.ts +0 -40
  149. package/dist/oni-code/progress-tracker.d.ts.map +0 -1
  150. package/dist/oni-code/progress-tracker.js +0 -375
  151. package/dist/oni-code/progress-tracker.js.map +0 -1
  152. package/dist/oni-code/scheduler.d.ts +0 -56
  153. package/dist/oni-code/scheduler.d.ts.map +0 -1
  154. package/dist/oni-code/scheduler.js +0 -105
  155. package/dist/oni-code/scheduler.js.map +0 -1
  156. package/dist/oni-code/session-fork.d.ts +0 -146
  157. package/dist/oni-code/session-fork.d.ts.map +0 -1
  158. package/dist/oni-code/session-fork.js +0 -238
  159. package/dist/oni-code/session-fork.js.map +0 -1
  160. package/dist/oni-code/session-stats.d.ts +0 -72
  161. package/dist/oni-code/session-stats.d.ts.map +0 -1
  162. package/dist/oni-code/session-stats.js +0 -141
  163. package/dist/oni-code/session-stats.js.map +0 -1
  164. package/dist/oni-code/session-title.d.ts +0 -25
  165. package/dist/oni-code/session-title.d.ts.map +0 -1
  166. package/dist/oni-code/session-title.js +0 -67
  167. package/dist/oni-code/session-title.js.map +0 -1
  168. package/dist/oni-code/shell-parser.d.ts +0 -112
  169. package/dist/oni-code/shell-parser.d.ts.map +0 -1
  170. package/dist/oni-code/shell-parser.js +0 -657
  171. package/dist/oni-code/shell-parser.js.map +0 -1
  172. package/dist/oni-code/summarizer.d.ts +0 -27
  173. package/dist/oni-code/summarizer.d.ts.map +0 -1
  174. package/dist/oni-code/summarizer.js +0 -70
  175. package/dist/oni-code/summarizer.js.map +0 -1
  176. package/dist/oni-code/swarm-checkpoint.d.ts +0 -52
  177. package/dist/oni-code/swarm-checkpoint.d.ts.map +0 -1
  178. package/dist/oni-code/swarm-checkpoint.js +0 -71
  179. package/dist/oni-code/swarm-checkpoint.js.map +0 -1
  180. package/dist/oni-code/swarm-runner.d.ts +0 -173
  181. package/dist/oni-code/swarm-runner.d.ts.map +0 -1
  182. package/dist/oni-code/swarm-runner.js +0 -873
  183. package/dist/oni-code/swarm-runner.js.map +0 -1
  184. package/dist/oni-code/system-prompt.d.ts +0 -13
  185. package/dist/oni-code/system-prompt.d.ts.map +0 -1
  186. package/dist/oni-code/system-prompt.js +0 -64
  187. package/dist/oni-code/system-prompt.js.map +0 -1
  188. package/dist/oni-code/task-evaluator.d.ts +0 -73
  189. package/dist/oni-code/task-evaluator.d.ts.map +0 -1
  190. package/dist/oni-code/task-evaluator.js +0 -172
  191. package/dist/oni-code/task-evaluator.js.map +0 -1
  192. package/dist/oni-code/tools/batch.d.ts +0 -12
  193. package/dist/oni-code/tools/batch.d.ts.map +0 -1
  194. package/dist/oni-code/tools/batch.js +0 -116
  195. package/dist/oni-code/tools/batch.js.map +0 -1
  196. package/dist/oni-code/tools/coding.d.ts +0 -10
  197. package/dist/oni-code/tools/coding.d.ts.map +0 -1
  198. package/dist/oni-code/tools/coding.js +0 -557
  199. package/dist/oni-code/tools/coding.js.map +0 -1
  200. package/dist/oni-code/tools/cron.d.ts +0 -4
  201. package/dist/oni-code/tools/cron.d.ts.map +0 -1
  202. package/dist/oni-code/tools/cron.js +0 -120
  203. package/dist/oni-code/tools/cron.js.map +0 -1
  204. package/dist/oni-code/tools/custom.d.ts +0 -43
  205. package/dist/oni-code/tools/custom.d.ts.map +0 -1
  206. package/dist/oni-code/tools/custom.js +0 -115
  207. package/dist/oni-code/tools/custom.js.map +0 -1
  208. package/dist/oni-code/tools/patch.d.ts +0 -58
  209. package/dist/oni-code/tools/patch.d.ts.map +0 -1
  210. package/dist/oni-code/tools/patch.js +0 -247
  211. package/dist/oni-code/tools/patch.js.map +0 -1
  212. package/dist/oni-code/tools/plan.d.ts +0 -17
  213. package/dist/oni-code/tools/plan.d.ts.map +0 -1
  214. package/dist/oni-code/tools/plan.js +0 -48
  215. package/dist/oni-code/tools/plan.js.map +0 -1
  216. package/dist/oni-code/tools/question.d.ts +0 -17
  217. package/dist/oni-code/tools/question.d.ts.map +0 -1
  218. package/dist/oni-code/tools/question.js +0 -46
  219. package/dist/oni-code/tools/question.js.map +0 -1
  220. package/dist/oni-code/tools/skill.d.ts +0 -36
  221. package/dist/oni-code/tools/skill.d.ts.map +0 -1
  222. package/dist/oni-code/tools/skill.js +0 -132
  223. package/dist/oni-code/tools/skill.js.map +0 -1
  224. package/dist/oni-code/tools/spawn-agents.d.ts +0 -37
  225. package/dist/oni-code/tools/spawn-agents.d.ts.map +0 -1
  226. package/dist/oni-code/tools/spawn-agents.js +0 -91
  227. package/dist/oni-code/tools/spawn-agents.js.map +0 -1
  228. package/dist/oni-code/tools/spawn-swarm.d.ts +0 -70
  229. package/dist/oni-code/tools/spawn-swarm.d.ts.map +0 -1
  230. package/dist/oni-code/tools/spawn-swarm.js +0 -129
  231. package/dist/oni-code/tools/spawn-swarm.js.map +0 -1
  232. package/dist/oni-code/tools/web.d.ts +0 -11
  233. package/dist/oni-code/tools/web.d.ts.map +0 -1
  234. package/dist/oni-code/tools/web.js +0 -375
  235. package/dist/oni-code/tools/web.js.map +0 -1
  236. package/dist/oni-code/topology-agent-builder.d.ts +0 -22
  237. package/dist/oni-code/topology-agent-builder.d.ts.map +0 -1
  238. package/dist/oni-code/topology-agent-builder.js +0 -220
  239. package/dist/oni-code/topology-agent-builder.js.map +0 -1
  240. package/dist/oni-code/topology-selector.d.ts +0 -85
  241. package/dist/oni-code/topology-selector.d.ts.map +0 -1
  242. package/dist/oni-code/topology-selector.js +0 -338
  243. package/dist/oni-code/topology-selector.js.map +0 -1
  244. package/dist/oni-code/ui/App.d.ts +0 -10
  245. package/dist/oni-code/ui/App.d.ts.map +0 -1
  246. package/dist/oni-code/ui/App.js +0 -395
  247. package/dist/oni-code/ui/App.js.map +0 -1
  248. package/dist/oni-code/ui/FooterPanel.d.ts +0 -16
  249. package/dist/oni-code/ui/FooterPanel.d.ts.map +0 -1
  250. package/dist/oni-code/ui/FooterPanel.js +0 -56
  251. package/dist/oni-code/ui/FooterPanel.js.map +0 -1
  252. package/dist/oni-code/ui/Header.d.ts +0 -21
  253. package/dist/oni-code/ui/Header.d.ts.map +0 -1
  254. package/dist/oni-code/ui/Header.js +0 -105
  255. package/dist/oni-code/ui/Header.js.map +0 -1
  256. package/dist/oni-code/ui/InputArea.d.ts +0 -11
  257. package/dist/oni-code/ui/InputArea.d.ts.map +0 -1
  258. package/dist/oni-code/ui/InputArea.js +0 -82
  259. package/dist/oni-code/ui/InputArea.js.map +0 -1
  260. package/dist/oni-code/ui/MessageBlock.d.ts +0 -11
  261. package/dist/oni-code/ui/MessageBlock.d.ts.map +0 -1
  262. package/dist/oni-code/ui/MessageBlock.js +0 -103
  263. package/dist/oni-code/ui/MessageBlock.js.map +0 -1
  264. package/dist/oni-code/ui/OutputPane.d.ts +0 -12
  265. package/dist/oni-code/ui/OutputPane.d.ts.map +0 -1
  266. package/dist/oni-code/ui/OutputPane.js +0 -8
  267. package/dist/oni-code/ui/OutputPane.js.map +0 -1
  268. package/dist/oni-code/ui/PermissionPrompt.d.ts +0 -11
  269. package/dist/oni-code/ui/PermissionPrompt.d.ts.map +0 -1
  270. package/dist/oni-code/ui/PermissionPrompt.js +0 -48
  271. package/dist/oni-code/ui/PermissionPrompt.js.map +0 -1
  272. package/dist/oni-code/ui/QuestionPrompt.d.ts +0 -8
  273. package/dist/oni-code/ui/QuestionPrompt.d.ts.map +0 -1
  274. package/dist/oni-code/ui/QuestionPrompt.js +0 -9
  275. package/dist/oni-code/ui/QuestionPrompt.js.map +0 -1
  276. package/dist/oni-code/ui/StatusLine.d.ts +0 -14
  277. package/dist/oni-code/ui/StatusLine.d.ts.map +0 -1
  278. package/dist/oni-code/ui/StatusLine.js +0 -23
  279. package/dist/oni-code/ui/StatusLine.js.map +0 -1
  280. package/dist/oni-code/ui/SwarmPanel.d.ts +0 -9
  281. package/dist/oni-code/ui/SwarmPanel.d.ts.map +0 -1
  282. package/dist/oni-code/ui/SwarmPanel.js +0 -52
  283. package/dist/oni-code/ui/SwarmPanel.js.map +0 -1
  284. package/dist/oni-code/ui/ToolCallBlock.d.ts +0 -10
  285. package/dist/oni-code/ui/ToolCallBlock.d.ts.map +0 -1
  286. package/dist/oni-code/ui/ToolCallBlock.js +0 -21
  287. package/dist/oni-code/ui/ToolCallBlock.js.map +0 -1
  288. package/dist/oni-code/ui/Toolbar.d.ts +0 -8
  289. package/dist/oni-code/ui/Toolbar.d.ts.map +0 -1
  290. package/dist/oni-code/ui/Toolbar.js +0 -11
  291. package/dist/oni-code/ui/Toolbar.js.map +0 -1
  292. package/dist/oni-code/ui/WelcomeBanner.d.ts +0 -12
  293. package/dist/oni-code/ui/WelcomeBanner.d.ts.map +0 -1
  294. package/dist/oni-code/ui/WelcomeBanner.js +0 -24
  295. package/dist/oni-code/ui/WelcomeBanner.js.map +0 -1
  296. package/dist/oni-code/ui/activity.d.ts +0 -15
  297. package/dist/oni-code/ui/activity.d.ts.map +0 -1
  298. package/dist/oni-code/ui/activity.js +0 -252
  299. package/dist/oni-code/ui/activity.js.map +0 -1
  300. package/dist/oni-code/ui/banner.d.ts +0 -16
  301. package/dist/oni-code/ui/banner.d.ts.map +0 -1
  302. package/dist/oni-code/ui/banner.js +0 -132
  303. package/dist/oni-code/ui/banner.js.map +0 -1
  304. package/dist/oni-code/ui/command-menu.d.ts +0 -7
  305. package/dist/oni-code/ui/command-menu.d.ts.map +0 -1
  306. package/dist/oni-code/ui/command-menu.js +0 -20
  307. package/dist/oni-code/ui/command-menu.js.map +0 -1
  308. package/dist/oni-code/ui/diff.d.ts +0 -17
  309. package/dist/oni-code/ui/diff.d.ts.map +0 -1
  310. package/dist/oni-code/ui/diff.js +0 -37
  311. package/dist/oni-code/ui/diff.js.map +0 -1
  312. package/dist/oni-code/ui/format.d.ts +0 -41
  313. package/dist/oni-code/ui/format.d.ts.map +0 -1
  314. package/dist/oni-code/ui/format.js +0 -223
  315. package/dist/oni-code/ui/format.js.map +0 -1
  316. package/dist/oni-code/ui/input.d.ts +0 -28
  317. package/dist/oni-code/ui/input.d.ts.map +0 -1
  318. package/dist/oni-code/ui/input.js +0 -216
  319. package/dist/oni-code/ui/input.js.map +0 -1
  320. package/dist/oni-code/ui/insights.d.ts +0 -39
  321. package/dist/oni-code/ui/insights.d.ts.map +0 -1
  322. package/dist/oni-code/ui/insights.js +0 -193
  323. package/dist/oni-code/ui/insights.js.map +0 -1
  324. package/dist/oni-code/ui/markdown.d.ts +0 -9
  325. package/dist/oni-code/ui/markdown.d.ts.map +0 -1
  326. package/dist/oni-code/ui/markdown.js +0 -44
  327. package/dist/oni-code/ui/markdown.js.map +0 -1
  328. package/dist/oni-code/ui/panels.d.ts +0 -39
  329. package/dist/oni-code/ui/panels.d.ts.map +0 -1
  330. package/dist/oni-code/ui/panels.js +0 -209
  331. package/dist/oni-code/ui/panels.js.map +0 -1
  332. package/dist/oni-code/ui/paste.d.ts +0 -17
  333. package/dist/oni-code/ui/paste.d.ts.map +0 -1
  334. package/dist/oni-code/ui/paste.js +0 -45
  335. package/dist/oni-code/ui/paste.js.map +0 -1
  336. package/dist/oni-code/ui/raw-spinner.d.ts +0 -37
  337. package/dist/oni-code/ui/raw-spinner.d.ts.map +0 -1
  338. package/dist/oni-code/ui/raw-spinner.js +0 -121
  339. package/dist/oni-code/ui/raw-spinner.js.map +0 -1
  340. package/dist/oni-code/ui/session.d.ts +0 -44
  341. package/dist/oni-code/ui/session.d.ts.map +0 -1
  342. package/dist/oni-code/ui/session.js +0 -93
  343. package/dist/oni-code/ui/session.js.map +0 -1
  344. package/dist/oni-code/ui/spinner.d.ts +0 -7
  345. package/dist/oni-code/ui/spinner.d.ts.map +0 -1
  346. package/dist/oni-code/ui/spinner.js +0 -20
  347. package/dist/oni-code/ui/spinner.js.map +0 -1
  348. package/dist/oni-code/ui/swarm-activity.d.ts +0 -50
  349. package/dist/oni-code/ui/swarm-activity.d.ts.map +0 -1
  350. package/dist/oni-code/ui/swarm-activity.js +0 -233
  351. package/dist/oni-code/ui/swarm-activity.js.map +0 -1
  352. package/dist/oni-code/ui/terminal-size.d.ts +0 -18
  353. package/dist/oni-code/ui/terminal-size.d.ts.map +0 -1
  354. package/dist/oni-code/ui/terminal-size.js +0 -45
  355. package/dist/oni-code/ui/terminal-size.js.map +0 -1
  356. package/dist/oni-code/ui/theme.d.ts +0 -82
  357. package/dist/oni-code/ui/theme.d.ts.map +0 -1
  358. package/dist/oni-code/ui/theme.js +0 -101
  359. package/dist/oni-code/ui/theme.js.map +0 -1
  360. package/dist/oni-code/ui/tool-utils.d.ts +0 -10
  361. package/dist/oni-code/ui/tool-utils.d.ts.map +0 -1
  362. package/dist/oni-code/ui/tool-utils.js +0 -82
  363. package/dist/oni-code/ui/tool-utils.js.map +0 -1
  364. package/dist/oni-code/ui/useTerminalSize.d.ts +0 -3
  365. package/dist/oni-code/ui/useTerminalSize.d.ts.map +0 -1
  366. package/dist/oni-code/ui/useTerminalSize.js +0 -16
  367. package/dist/oni-code/ui/useTerminalSize.js.map +0 -1
  368. package/dist/oni-code/workspace/change-tracker.d.ts +0 -18
  369. package/dist/oni-code/workspace/change-tracker.d.ts.map +0 -1
  370. package/dist/oni-code/workspace/change-tracker.js +0 -67
  371. package/dist/oni-code/workspace/change-tracker.js.map +0 -1
  372. package/dist/oni-code/workspace/conflict-detector.d.ts +0 -12
  373. package/dist/oni-code/workspace/conflict-detector.d.ts.map +0 -1
  374. package/dist/oni-code/workspace/conflict-detector.js +0 -24
  375. package/dist/oni-code/workspace/conflict-detector.js.map +0 -1
  376. package/dist/oni-code/workspace/file-snapshots.d.ts +0 -39
  377. package/dist/oni-code/workspace/file-snapshots.d.ts.map +0 -1
  378. package/dist/oni-code/workspace/file-snapshots.js +0 -77
  379. package/dist/oni-code/workspace/file-snapshots.js.map +0 -1
  380. package/dist/oni-code/workspace/index.d.ts +0 -5
  381. package/dist/oni-code/workspace/index.d.ts.map +0 -1
  382. package/dist/oni-code/workspace/index.js +0 -5
  383. package/dist/oni-code/workspace/index.js.map +0 -1
  384. package/dist/oni-code/workspace/project-map.d.ts +0 -14
  385. package/dist/oni-code/workspace/project-map.d.ts.map +0 -1
  386. package/dist/oni-code/workspace/project-map.js +0 -91
  387. package/dist/oni-code/workspace/project-map.js.map +0 -1
  388. package/dist/sentinel/config/index.d.ts +0 -2
  389. package/dist/sentinel/config/index.d.ts.map +0 -1
  390. package/dist/sentinel/config/index.js +0 -2
  391. package/dist/sentinel/config/index.js.map +0 -1
  392. package/dist/sentinel/config/schema.d.ts +0 -4
  393. package/dist/sentinel/config/schema.d.ts.map +0 -1
  394. package/dist/sentinel/config/schema.js +0 -42
  395. package/dist/sentinel/config/schema.js.map +0 -1
  396. package/dist/sentinel/debate/index.d.ts +0 -6
  397. package/dist/sentinel/debate/index.d.ts.map +0 -1
  398. package/dist/sentinel/debate/index.js +0 -64
  399. package/dist/sentinel/debate/index.js.map +0 -1
  400. package/dist/sentinel/debate/prompts.d.ts +0 -4
  401. package/dist/sentinel/debate/prompts.d.ts.map +0 -1
  402. package/dist/sentinel/debate/prompts.js +0 -13
  403. package/dist/sentinel/debate/prompts.js.map +0 -1
  404. package/dist/sentinel/fix/index.d.ts +0 -6
  405. package/dist/sentinel/fix/index.d.ts.map +0 -1
  406. package/dist/sentinel/fix/index.js +0 -27
  407. package/dist/sentinel/fix/index.js.map +0 -1
  408. package/dist/sentinel/fix/strategies.d.ts +0 -9
  409. package/dist/sentinel/fix/strategies.d.ts.map +0 -1
  410. package/dist/sentinel/fix/strategies.js +0 -40
  411. package/dist/sentinel/fix/strategies.js.map +0 -1
  412. package/dist/sentinel/index.d.ts +0 -14
  413. package/dist/sentinel/index.d.ts.map +0 -1
  414. package/dist/sentinel/index.js +0 -22
  415. package/dist/sentinel/index.js.map +0 -1
  416. package/dist/sentinel/integrations/cli.d.ts +0 -10
  417. package/dist/sentinel/integrations/cli.d.ts.map +0 -1
  418. package/dist/sentinel/integrations/cli.js +0 -24
  419. package/dist/sentinel/integrations/cli.js.map +0 -1
  420. package/dist/sentinel/integrations/index.d.ts +0 -2
  421. package/dist/sentinel/integrations/index.d.ts.map +0 -1
  422. package/dist/sentinel/integrations/index.js +0 -2
  423. package/dist/sentinel/integrations/index.js.map +0 -1
  424. package/dist/sentinel/memory/index.d.ts +0 -16
  425. package/dist/sentinel/memory/index.d.ts.map +0 -1
  426. package/dist/sentinel/memory/index.js +0 -60
  427. package/dist/sentinel/memory/index.js.map +0 -1
  428. package/dist/sentinel/report/console.d.ts +0 -3
  429. package/dist/sentinel/report/console.d.ts.map +0 -1
  430. package/dist/sentinel/report/console.js +0 -27
  431. package/dist/sentinel/report/console.js.map +0 -1
  432. package/dist/sentinel/report/github.d.ts +0 -3
  433. package/dist/sentinel/report/github.d.ts.map +0 -1
  434. package/dist/sentinel/report/github.js +0 -36
  435. package/dist/sentinel/report/github.js.map +0 -1
  436. package/dist/sentinel/report/index.d.ts +0 -6
  437. package/dist/sentinel/report/index.d.ts.map +0 -1
  438. package/dist/sentinel/report/index.js +0 -15
  439. package/dist/sentinel/report/index.js.map +0 -1
  440. package/dist/sentinel/report/sarif.d.ts +0 -3
  441. package/dist/sentinel/report/sarif.d.ts.map +0 -1
  442. package/dist/sentinel/report/sarif.js +0 -29
  443. package/dist/sentinel/report/sarif.js.map +0 -1
  444. package/dist/sentinel/sentinel.d.ts +0 -17
  445. package/dist/sentinel/sentinel.d.ts.map +0 -1
  446. package/dist/sentinel/sentinel.js +0 -111
  447. package/dist/sentinel/sentinel.js.map +0 -1
  448. package/dist/sentinel/swarm/agents.d.ts +0 -6
  449. package/dist/sentinel/swarm/agents.d.ts.map +0 -1
  450. package/dist/sentinel/swarm/agents.js +0 -36
  451. package/dist/sentinel/swarm/agents.js.map +0 -1
  452. package/dist/sentinel/swarm/index.d.ts +0 -8
  453. package/dist/sentinel/swarm/index.d.ts.map +0 -1
  454. package/dist/sentinel/swarm/index.js +0 -74
  455. package/dist/sentinel/swarm/index.js.map +0 -1
  456. package/dist/sentinel/swarm/prompts.d.ts +0 -2
  457. package/dist/sentinel/swarm/prompts.d.ts.map +0 -1
  458. package/dist/sentinel/swarm/prompts.js +0 -24
  459. package/dist/sentinel/swarm/prompts.js.map +0 -1
  460. package/dist/sentinel/swarm/topology.d.ts +0 -10
  461. package/dist/sentinel/swarm/topology.d.ts.map +0 -1
  462. package/dist/sentinel/swarm/topology.js +0 -38
  463. package/dist/sentinel/swarm/topology.js.map +0 -1
  464. package/dist/sentinel/triage/analyzers/complexity-analyzer.d.ts +0 -7
  465. package/dist/sentinel/triage/analyzers/complexity-analyzer.d.ts.map +0 -1
  466. package/dist/sentinel/triage/analyzers/complexity-analyzer.js +0 -94
  467. package/dist/sentinel/triage/analyzers/complexity-analyzer.js.map +0 -1
  468. package/dist/sentinel/triage/analyzers/custom-analyzer.d.ts +0 -19
  469. package/dist/sentinel/triage/analyzers/custom-analyzer.d.ts.map +0 -1
  470. package/dist/sentinel/triage/analyzers/custom-analyzer.js +0 -268
  471. package/dist/sentinel/triage/analyzers/custom-analyzer.js.map +0 -1
  472. package/dist/sentinel/triage/analyzers/dependency-analyzer.d.ts +0 -26
  473. package/dist/sentinel/triage/analyzers/dependency-analyzer.d.ts.map +0 -1
  474. package/dist/sentinel/triage/analyzers/dependency-analyzer.js +0 -220
  475. package/dist/sentinel/triage/analyzers/dependency-analyzer.js.map +0 -1
  476. package/dist/sentinel/triage/analyzers/diff-analyzer.d.ts +0 -12
  477. package/dist/sentinel/triage/analyzers/diff-analyzer.d.ts.map +0 -1
  478. package/dist/sentinel/triage/analyzers/diff-analyzer.js +0 -19
  479. package/dist/sentinel/triage/analyzers/diff-analyzer.js.map +0 -1
  480. package/dist/sentinel/triage/analyzers/index.d.ts +0 -14
  481. package/dist/sentinel/triage/analyzers/index.d.ts.map +0 -1
  482. package/dist/sentinel/triage/analyzers/index.js +0 -25
  483. package/dist/sentinel/triage/analyzers/index.js.map +0 -1
  484. package/dist/sentinel/triage/analyzers/pattern-analyzer.d.ts +0 -7
  485. package/dist/sentinel/triage/analyzers/pattern-analyzer.d.ts.map +0 -1
  486. package/dist/sentinel/triage/analyzers/pattern-analyzer.js +0 -180
  487. package/dist/sentinel/triage/analyzers/pattern-analyzer.js.map +0 -1
  488. package/dist/sentinel/triage/analyzers/security-analyzer.d.ts +0 -7
  489. package/dist/sentinel/triage/analyzers/security-analyzer.d.ts.map +0 -1
  490. package/dist/sentinel/triage/analyzers/security-analyzer.js +0 -96
  491. package/dist/sentinel/triage/analyzers/security-analyzer.js.map +0 -1
  492. package/dist/sentinel/triage/analyzers/ts-parser.d.ts +0 -71
  493. package/dist/sentinel/triage/analyzers/ts-parser.d.ts.map +0 -1
  494. package/dist/sentinel/triage/analyzers/ts-parser.js +0 -323
  495. package/dist/sentinel/triage/analyzers/ts-parser.js.map +0 -1
  496. package/dist/sentinel/triage/analyzers/typescript-analyzer.d.ts +0 -7
  497. package/dist/sentinel/triage/analyzers/typescript-analyzer.d.ts.map +0 -1
  498. package/dist/sentinel/triage/analyzers/typescript-analyzer.js +0 -68
  499. package/dist/sentinel/triage/analyzers/typescript-analyzer.js.map +0 -1
  500. package/dist/sentinel/triage/index.d.ts +0 -10
  501. package/dist/sentinel/triage/index.d.ts.map +0 -1
  502. package/dist/sentinel/triage/index.js +0 -39
  503. package/dist/sentinel/triage/index.js.map +0 -1
  504. package/dist/sentinel/triage/scorer.d.ts +0 -9
  505. package/dist/sentinel/triage/scorer.d.ts.map +0 -1
  506. package/dist/sentinel/triage/scorer.js +0 -28
  507. package/dist/sentinel/triage/scorer.js.map +0 -1
  508. package/dist/sentinel/types.d.ts +0 -125
  509. package/dist/sentinel/types.d.ts.map +0 -1
  510. package/dist/sentinel/types.js +0 -6
  511. package/dist/sentinel/types.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import { writeFileSync, mkdirSync, renameSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- const ONI_DIR = ".oni";
4
- const TASKS_FILE = "scheduled_tasks.json";
5
- const CURRENT_VERSION = 1;
6
- const DEFAULT_AUTO_EXPIRY_MS = 3 * 24 * 60 * 60 * 1000; // 3 days
7
- /**
8
- * Load persisted jobs from `<rootDir>/.oni/scheduled_tasks.json`.
9
- * Filters out expired jobs and jobs with missing required fields.
10
- * Returns empty array if file is missing or corrupt.
11
- */
12
- export function loadPersistedJobs(rootDir, opts) {
13
- try {
14
- const filePath = join(rootDir, ONI_DIR, TASKS_FILE);
15
- const raw = readFileSync(filePath, "utf-8");
16
- const data = JSON.parse(raw);
17
- if (!data || !Array.isArray(data.jobs))
18
- return [];
19
- const now = Date.now();
20
- const expiryMs = opts?.autoExpiryMs ?? DEFAULT_AUTO_EXPIRY_MS;
21
- return data.jobs.filter((j) => {
22
- // Validate required fields
23
- if (!j.id || !j.cron || !j.prompt || typeof j.createdAt !== "number" || typeof j.recurring !== "boolean") {
24
- return false;
25
- }
26
- // Filter expired
27
- return (now - j.createdAt) <= expiryMs;
28
- });
29
- }
30
- catch {
31
- return [];
32
- }
33
- }
34
- export function persistJobs(rootDir, jobs) {
35
- try {
36
- const dir = join(rootDir, ONI_DIR);
37
- mkdirSync(dir, { recursive: true });
38
- const data = {
39
- version: CURRENT_VERSION,
40
- jobs: jobs.map((j) => ({
41
- id: j.id,
42
- cron: j.cron,
43
- prompt: j.prompt,
44
- recurring: j.recurring,
45
- createdAt: j.createdAt,
46
- humanSchedule: j.humanSchedule,
47
- })),
48
- };
49
- const filePath = join(dir, TASKS_FILE);
50
- const tmpPath = filePath + ".tmp";
51
- writeFileSync(tmpPath, JSON.stringify(data, null, 2), "utf-8");
52
- renameSync(tmpPath, filePath);
53
- }
54
- catch {
55
- // Fire-and-forget — write errors must not crash the scheduler
56
- }
57
- }
58
- //# sourceMappingURL=persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/oni-code/cron/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,eAAe,GAAG,CAAC,CAAC;AAiB1B,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAOjE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,IAAkB;IACnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAElD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,EAAE,YAAY,IAAI,sBAAsB,CAAC;QAE9D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,2BAA2B;YAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,iBAAiB;YACjB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,IAAe;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpC,MAAM,IAAI,GAAkB;YAC1B,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,aAAa,EAAE,CAAC,CAAC,aAAa;aAC/B,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QAClC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC"}
@@ -1,64 +0,0 @@
1
- import type { CronJob, CronJobInput } from "./store.js";
2
- export interface CronSchedulerConfig {
3
- /** Callback: fires a prompt into the agent loop. */
4
- onFire: (prompt: string, jobId: string) => void;
5
- /** Callback: returns true if the agent is currently busy. */
6
- isBusy: () => boolean;
7
- /** Override tick interval for testing (default 1000ms). */
8
- tickIntervalMs?: number;
9
- /** Override auto-expiry duration for testing (default 3 days). */
10
- autoExpiryMs?: number;
11
- /** Optional callback fired after create() and cancel().
12
- * Receives the current job list. Errors are swallowed.
13
- * NOT fired on dispose() — persisted state should survive session exit. */
14
- onMutate?: (jobs: CronJob[]) => void;
15
- }
16
- export declare class CronScheduler {
17
- private store;
18
- private timer;
19
- private config;
20
- private tickIntervalMs;
21
- private autoExpiryMs;
22
- /** Track the last minute we fired for each job to avoid double-firing within the same minute. */
23
- private lastFiredMinute;
24
- constructor(config: CronSchedulerConfig);
25
- /** Create and schedule a new job. Returns the job. */
26
- create(input: CronJobInput): CronJob;
27
- /** Cancel a job by ID. Returns true if found. */
28
- cancel(id: string): boolean;
29
- /** List all active jobs. */
30
- list(): CronJob[];
31
- /** Get a job by ID. */
32
- get(id: string): CronJob | undefined;
33
- /** Number of active jobs. */
34
- get size(): number;
35
- /** Start the tick loop. Idempotent. */
36
- start(): void;
37
- /** Stop the tick loop. Idempotent. */
38
- stop(): void;
39
- /** Stop and clear all jobs. */
40
- dispose(): void;
41
- /** Bulk-restore persisted jobs. Preserves original createdAt.
42
- * Does NOT fire onMutate — avoids N redundant disk writes at startup.
43
- * Silently skips jobs that fail (e.g., at capacity). */
44
- restore(jobs: Array<{
45
- id: string;
46
- cron: string;
47
- prompt: string;
48
- recurring: boolean;
49
- createdAt: number;
50
- humanSchedule?: string;
51
- }>): void;
52
- /** Whether the tick loop is running. */
53
- get running(): boolean;
54
- private notifyMutate;
55
- /** Single tick: check all jobs, fire ready ones (if idle). */
56
- private tick;
57
- /** Fire a job's prompt. */
58
- private fire;
59
- /** Compute and store the next fire time for a job (approximate — used for display). */
60
- private computeNextFireTime;
61
- /** Exposed for testing: manually invoke one tick cycle. */
62
- _tick(): void;
63
- }
64
- //# sourceMappingURL=scheduler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/oni-code/cron/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWxD,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,6DAA6D;IAC7D,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;gFAE4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtC;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,iGAAiG;IACjG,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,mBAAmB;IAMvC,sDAAsD;IACtD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAkBpC,iDAAiD;IACjD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa3B,4BAA4B;IAC5B,IAAI,IAAI,OAAO,EAAE;IAIjB,uBAAuB;IACvB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,6BAA6B;IAC7B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,uCAAuC;IACvC,KAAK,IAAI,IAAI;IASb,sCAAsC;IACtC,IAAI,IAAI,IAAI;IAOZ,+BAA+B;IAC/B,OAAO,IAAI,IAAI;IAMf;;6DAEyD;IACzD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAqBvI,wCAAwC;IACxC,IAAI,OAAO,IAAI,OAAO,CAErB;IAID,OAAO,CAAC,YAAY;IAWpB,8DAA8D;IAC9D,OAAO,CAAC,IAAI;IA0CZ,2BAA2B;IAC3B,OAAO,CAAC,IAAI;IAQZ,uFAAuF;IACvF,OAAO,CAAC,mBAAmB;IAe3B,2DAA2D;IAC3D,KAAK,IAAI,IAAI;CAGd"}
@@ -1,188 +0,0 @@
1
- import { CronStore } from "./store.js";
2
- import { cronMatches } from "./matcher.js";
3
- import { humanizeCron } from "./humanize.js";
4
- // ── Constants ────────────────────────────────────────────────
5
- const TICK_INTERVAL_MS = 1_000;
6
- const AUTO_EXPIRY_MS = 259_200_000; // 3 days (72 hours)
7
- // ── Scheduler ────────────────────────────────────────────────
8
- export class CronScheduler {
9
- store = new CronStore();
10
- timer = null;
11
- config;
12
- tickIntervalMs;
13
- autoExpiryMs;
14
- /** Track the last minute we fired for each job to avoid double-firing within the same minute. */
15
- lastFiredMinute = new Map();
16
- constructor(config) {
17
- this.config = config;
18
- this.tickIntervalMs = config.tickIntervalMs ?? TICK_INTERVAL_MS;
19
- this.autoExpiryMs = config.autoExpiryMs ?? AUTO_EXPIRY_MS;
20
- }
21
- /** Create and schedule a new job. Returns the job. */
22
- create(input) {
23
- const job = this.store.add({
24
- ...input,
25
- humanSchedule: input.humanSchedule ?? humanizeCron(input.cron),
26
- });
27
- // Compute initial nextFireTime
28
- this.computeNextFireTime(job);
29
- // Auto-start ticking if not already running
30
- if (!this.timer) {
31
- this.start();
32
- }
33
- this.notifyMutate();
34
- return job;
35
- }
36
- /** Cancel a job by ID. Returns true if found. */
37
- cancel(id) {
38
- this.lastFiredMinute.delete(id);
39
- const removed = this.store.remove(id);
40
- // Stop ticking if no more jobs
41
- if (this.store.size === 0) {
42
- this.stop();
43
- }
44
- this.notifyMutate();
45
- return removed;
46
- }
47
- /** List all active jobs. */
48
- list() {
49
- return this.store.list();
50
- }
51
- /** Get a job by ID. */
52
- get(id) {
53
- return this.store.get(id);
54
- }
55
- /** Number of active jobs. */
56
- get size() {
57
- return this.store.size;
58
- }
59
- /** Start the tick loop. Idempotent. */
60
- start() {
61
- if (this.timer)
62
- return;
63
- this.timer = setInterval(() => this.tick(), this.tickIntervalMs);
64
- // Don't prevent process exit
65
- if (this.timer && typeof this.timer === "object" && "unref" in this.timer) {
66
- this.timer.unref();
67
- }
68
- }
69
- /** Stop the tick loop. Idempotent. */
70
- stop() {
71
- if (this.timer) {
72
- clearInterval(this.timer);
73
- this.timer = null;
74
- }
75
- }
76
- /** Stop and clear all jobs. */
77
- dispose() {
78
- this.stop();
79
- this.store.clear();
80
- this.lastFiredMinute.clear();
81
- }
82
- /** Bulk-restore persisted jobs. Preserves original createdAt.
83
- * Does NOT fire onMutate — avoids N redundant disk writes at startup.
84
- * Silently skips jobs that fail (e.g., at capacity). */
85
- restore(jobs) {
86
- for (const pj of jobs) {
87
- try {
88
- const job = this.store.add({
89
- cron: pj.cron,
90
- prompt: pj.prompt,
91
- recurring: pj.recurring,
92
- createdAt: pj.createdAt,
93
- humanSchedule: pj.humanSchedule ?? humanizeCron(pj.cron),
94
- });
95
- this.computeNextFireTime(job);
96
- }
97
- catch {
98
- // Skip jobs that fail to restore (e.g., at capacity)
99
- }
100
- }
101
- if (this.store.size > 0 && !this.timer) {
102
- this.start();
103
- }
104
- }
105
- /** Whether the tick loop is running. */
106
- get running() {
107
- return this.timer !== null;
108
- }
109
- // ── Private helpers ─────────────────────────────────────────
110
- notifyMutate() {
111
- if (!this.config.onMutate)
112
- return;
113
- try {
114
- this.config.onMutate(this.store.list());
115
- }
116
- catch {
117
- // Mutation callback errors must not crash the scheduler
118
- }
119
- }
120
- // ── Internal ───────────────────────────────────────────────
121
- /** Single tick: check all jobs, fire ready ones (if idle). */
122
- tick() {
123
- if (this.config.isBusy())
124
- return;
125
- const now = Date.now();
126
- const currentDate = new Date(now);
127
- const currentMinute = Math.floor(now / 60_000);
128
- for (const job of this.store.list()) {
129
- // Check cron match
130
- if (!cronMatches(job.cron, currentDate))
131
- continue;
132
- // Avoid double-firing within the same minute
133
- if (this.lastFiredMinute.get(job.id) === currentMinute)
134
- continue;
135
- // Check auto-expiry (3 days)
136
- const age = now - job.createdAt;
137
- if (age > this.autoExpiryMs) {
138
- // Fire one final time, then delete
139
- this.lastFiredMinute.set(job.id, currentMinute);
140
- this.fire(job);
141
- this.store.remove(job.id);
142
- this.lastFiredMinute.delete(job.id);
143
- continue;
144
- }
145
- // Fire!
146
- this.lastFiredMinute.set(job.id, currentMinute);
147
- this.fire(job);
148
- // One-shot: delete after firing
149
- if (!job.recurring) {
150
- this.store.remove(job.id);
151
- this.lastFiredMinute.delete(job.id);
152
- }
153
- }
154
- // Auto-stop if all jobs gone
155
- if (this.store.size === 0) {
156
- this.stop();
157
- }
158
- }
159
- /** Fire a job's prompt. */
160
- fire(job) {
161
- try {
162
- this.config.onFire(job.prompt, job.id);
163
- }
164
- catch {
165
- // Fire callback errors must not crash the scheduler
166
- }
167
- }
168
- /** Compute and store the next fire time for a job (approximate — used for display). */
169
- computeNextFireTime(job) {
170
- const now = new Date();
171
- // Scan forward up to 24 hours to find the next matching minute
172
- for (let i = 1; i <= 1440; i++) {
173
- const candidate = new Date(now.getTime() + i * 60_000);
174
- candidate.setSeconds(0, 0);
175
- if (cronMatches(job.cron, candidate)) {
176
- this.store.updateFireTime(job.id, candidate.getTime());
177
- return;
178
- }
179
- }
180
- // Fallback: 1 minute from now
181
- this.store.updateFireTime(job.id, now.getTime() + 60_000);
182
- }
183
- /** Exposed for testing: manually invoke one tick cycle. */
184
- _tick() {
185
- this.tick();
186
- }
187
- }
188
- //# sourceMappingURL=scheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/oni-code/cron/scheduler.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- export interface CronJob {
2
- /** 8-character hex ID */
3
- id: string;
4
- /** 5-field cron expression */
5
- cron: string;
6
- /** Prompt to fire into the agent loop */
7
- prompt: string;
8
- /** If true, reschedule after firing. If false, delete after firing. */
9
- recurring: boolean;
10
- /** Creation timestamp (ms) */
11
- createdAt: number;
12
- /** Next computed fire time (ms). Updated after each fire. */
13
- nextFireTime: number;
14
- /** Human-readable schedule description */
15
- humanSchedule?: string;
16
- }
17
- export interface CronJobInput {
18
- cron: string;
19
- prompt: string;
20
- recurring?: boolean;
21
- humanSchedule?: string;
22
- /** Optional creation timestamp (ms). Preserved when restoring persisted jobs. */
23
- createdAt?: number;
24
- }
25
- export declare class CronStore {
26
- private jobs;
27
- /** Generate an 8-char hex ID */
28
- private generateId;
29
- /** Add a new job. Returns the created job. Throws if at capacity. */
30
- add(input: CronJobInput): CronJob;
31
- /** Remove a job by ID. Returns true if found and removed. */
32
- remove(id: string): boolean;
33
- /** Get a job by ID. */
34
- get(id: string): CronJob | undefined;
35
- /** List all jobs. */
36
- list(): CronJob[];
37
- /** Get all jobs whose nextFireTime <= now. */
38
- getReady(now: number): CronJob[];
39
- /** Update a job's nextFireTime. */
40
- updateFireTime(id: string, nextFireTime: number): void;
41
- /** Number of active jobs. */
42
- get size(): number;
43
- /** Clear all jobs. */
44
- clear(): void;
45
- }
46
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/oni-code/cron/store.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAA8B;IAE1C,gCAAgC;IAChC,OAAO,CAAC,UAAU;IAIlB,qEAAqE;IACrE,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAqBjC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,uBAAuB;IACvB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,qBAAqB;IACrB,IAAI,IAAI,OAAO,EAAE;IAIjB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE;IAUhC,mCAAmC;IACnC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAOtD,6BAA6B;IAC7B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,KAAK,IAAI,IAAI;CAGd"}
@@ -1,68 +0,0 @@
1
- import { randomBytes } from "node:crypto";
2
- // ── Constants ────────────────────────────────────────────────
3
- const MAX_JOBS = 50;
4
- // ── Store ────────────────────────────────────────────────────
5
- export class CronStore {
6
- jobs = new Map();
7
- /** Generate an 8-char hex ID */
8
- generateId() {
9
- return randomBytes(4).toString("hex");
10
- }
11
- /** Add a new job. Returns the created job. Throws if at capacity. */
12
- add(input) {
13
- if (this.jobs.size >= MAX_JOBS) {
14
- throw new Error(`Maximum of ${MAX_JOBS} concurrent scheduled jobs reached`);
15
- }
16
- const id = this.generateId();
17
- const now = Date.now();
18
- const job = {
19
- id,
20
- cron: input.cron,
21
- prompt: input.prompt,
22
- recurring: input.recurring ?? true,
23
- createdAt: input.createdAt ?? now,
24
- nextFireTime: 0, // Will be computed by scheduler
25
- humanSchedule: input.humanSchedule,
26
- };
27
- this.jobs.set(id, job);
28
- return job;
29
- }
30
- /** Remove a job by ID. Returns true if found and removed. */
31
- remove(id) {
32
- return this.jobs.delete(id);
33
- }
34
- /** Get a job by ID. */
35
- get(id) {
36
- return this.jobs.get(id);
37
- }
38
- /** List all jobs. */
39
- list() {
40
- return [...this.jobs.values()];
41
- }
42
- /** Get all jobs whose nextFireTime <= now. */
43
- getReady(now) {
44
- const ready = [];
45
- for (const job of this.jobs.values()) {
46
- if (job.nextFireTime > 0 && job.nextFireTime <= now) {
47
- ready.push(job);
48
- }
49
- }
50
- return ready;
51
- }
52
- /** Update a job's nextFireTime. */
53
- updateFireTime(id, nextFireTime) {
54
- const job = this.jobs.get(id);
55
- if (job) {
56
- job.nextFireTime = nextFireTime;
57
- }
58
- }
59
- /** Number of active jobs. */
60
- get size() {
61
- return this.jobs.size;
62
- }
63
- /** Clear all jobs. */
64
- clear() {
65
- this.jobs.clear();
66
- }
67
- }
68
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/oni-code/cron/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8B1C,gEAAgE;AAEhE,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,gEAAgE;AAEhE,MAAM,OAAO,SAAS;IACZ,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE1C,gCAAgC;IACxB,UAAU;QAChB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,qEAAqE;IACrE,GAAG,CAAC,KAAmB;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,oCAAoC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAY;YACnB,EAAE;YACF,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG;YACjC,YAAY,EAAE,CAAC,EAAE,gCAAgC;YACjD,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,uBAAuB;IACvB,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,qBAAqB;IACrB,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,8CAA8C;IAC9C,QAAQ,CAAC,GAAW;QAClB,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mCAAmC;IACnC,cAAc,CAAC,EAAU,EAAE,YAAoB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Load environment variables from the target project, current working directory,
3
- * and the user's global ONI env directory.
4
- *
5
- * Precedence:
6
- * 1. Existing shell environment
7
- * 2. Explicit project directory (`--dir`)
8
- * 3. Current working directory
9
- * 4. Global ONI directory (`~/.oni`)
10
- * 5. Home directory (`~`)
11
- * 6. `.env.local` before `.env` inside each directory
12
- */
13
- export declare function loadProjectEnv(projectDir?: string, options?: {
14
- cwd?: string;
15
- homeDir?: string;
16
- }): string[];
17
- //# sourceMappingURL=env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/oni-code/env.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,MAAM,EAAE,CAoBV"}
@@ -1,51 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join, resolve } from "node:path";
4
- import { config as dotenvConfig } from "dotenv";
5
- const ENV_FILES = [".env.local", ".env"];
6
- function uniqueDirs(dirs) {
7
- const seen = new Set();
8
- const ordered = [];
9
- for (const dir of dirs) {
10
- if (!dir)
11
- continue;
12
- const resolved = resolve(dir);
13
- if (seen.has(resolved))
14
- continue;
15
- seen.add(resolved);
16
- ordered.push(resolved);
17
- }
18
- return ordered;
19
- }
20
- /**
21
- * Load environment variables from the target project, current working directory,
22
- * and the user's global ONI env directory.
23
- *
24
- * Precedence:
25
- * 1. Existing shell environment
26
- * 2. Explicit project directory (`--dir`)
27
- * 3. Current working directory
28
- * 4. Global ONI directory (`~/.oni`)
29
- * 5. Home directory (`~`)
30
- * 6. `.env.local` before `.env` inside each directory
31
- */
32
- export function loadProjectEnv(projectDir, options) {
33
- const loaded = [];
34
- const cwd = options?.cwd ?? process.cwd();
35
- const homeDir = options?.homeDir ?? homedir();
36
- const dirs = uniqueDirs([projectDir, cwd, join(homeDir, ".oni"), homeDir]);
37
- for (const dir of dirs) {
38
- for (const file of ENV_FILES) {
39
- const path = join(dir, file);
40
- if (!existsSync(path))
41
- continue;
42
- const result = dotenvConfig({ path, quiet: true });
43
- if (result.error) {
44
- throw new Error(`Failed to load environment file: ${path}`);
45
- }
46
- loaded.push(path);
47
- }
48
- }
49
- return loaded;
50
- }
51
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/oni-code/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,MAAM,CAAU,CAAC;AAElD,SAAS,UAAU,CAAC,IAA+B;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAmB,EACnB,OAA4C;IAE5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,28 +0,0 @@
1
- export interface ExtractedContent {
2
- /** Extracted text content */
3
- content: string;
4
- /** Detected format (e.g. "docx", "pdf", "xlsx", "image") */
5
- format: string;
6
- /** Additional metadata (page count, sheet names, image dimensions, etc.) */
7
- metadata?: Record<string, unknown>;
8
- }
9
- /**
10
- * Parse ZIP local file headers and extract deflated entries as UTF-8 strings.
11
- * Returns a Map<filename, decompressedContent>.
12
- *
13
- * This is a minimal parser — it reads local headers sequentially
14
- * and decompresses deflate (method 8) or stores (method 0) entries.
15
- * Sufficient for Office Open XML formats.
16
- */
17
- export declare function parseZipEntries(buf: Buffer): Map<string, string>;
18
- /**
19
- * Extract text content from a file based on its extension.
20
- * Returns structured content for binary formats, or reads as UTF-8 for text files.
21
- */
22
- export declare function extractFileContent(absPath: string): ExtractedContent;
23
- /**
24
- * Returns true if the file extension indicates a binary format
25
- * that extractFileContent can handle (not a plain text file).
26
- */
27
- export declare function isBinaryFormat(absPath: string): boolean;
28
- //# sourceMappingURL=file-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-reader.d.ts","sourceRoot":"","sources":["../../src/oni-code/file-reader.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AA0CD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0ChE;AAkQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAuCpE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD"}