@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,146 +0,0 @@
1
- /**
2
- * Session Forking — branch-based conversation history management.
3
- *
4
- * Enables forking a conversation at any point to explore alternatives.
5
- * Each branch is an independent copy of the message history that can
6
- * diverge from the fork point.
7
- *
8
- * Swarm-aware: Forked branches can be dispatched as parallel swarm agents
9
- * exploring different approaches (race/debate topologies). The SessionTree
10
- * is concurrency-safe for reads — writes go through the active branch only.
11
- *
12
- * Usage:
13
- * const tree = new SessionTree();
14
- * tree.initRoot(existingMessages);
15
- * const branchId = tree.fork(3); // Fork at message index 3
16
- * tree.switchBranch(branchId); // Switch to new branch
17
- * tree.updateMessages(newMessages); // Independent history
18
- * tree.switchBranch(tree.rootBranchId); // Switch back
19
- */
20
- import type { ONIModelMessage } from "../models/types.js";
21
- export interface BranchMessage extends ONIModelMessage {
22
- /** Unique message ID within the session tree */
23
- messageId: string;
24
- }
25
- export interface SessionBranch {
26
- /** Unique branch identifier */
27
- id: string;
28
- /** Parent branch (undefined for root) */
29
- parentBranchId?: string;
30
- /** Message ID where this branch forked from parent */
31
- forkMessageId?: string;
32
- /** Index in parent's message array where the fork occurred */
33
- forkIndex?: number;
34
- /** Branch display label */
35
- label?: string;
36
- /** Conversation messages in this branch */
37
- messages: BranchMessage[];
38
- /** When the branch was created */
39
- createdAt: number;
40
- /** Active agent name at branch creation */
41
- activeAgent?: string;
42
- }
43
- export interface BranchInfo {
44
- id: string;
45
- parentBranchId?: string;
46
- forkIndex?: number;
47
- label?: string;
48
- messageCount: number;
49
- createdAt: number;
50
- activeAgent?: string;
51
- isActive: boolean;
52
- }
53
- /**
54
- * Assign unique IDs to messages that lack them.
55
- * Messages that already have a `messageId` keep it (idempotent).
56
- */
57
- export declare function assignMessageIds(messages: ONIModelMessage[]): BranchMessage[];
58
- export declare class SessionTree {
59
- private branches;
60
- private activeBranchId;
61
- /** Root branch ID — always set after construction */
62
- readonly rootBranchId: string;
63
- constructor();
64
- /**
65
- * Initialize the root branch with existing conversation messages.
66
- * Call this once after construction to seed the tree.
67
- */
68
- initRoot(messages: ONIModelMessage[]): void;
69
- /**
70
- * Fork the active branch at a specific message index.
71
- *
72
- * Creates a new branch with messages [0..atIndex-1] from the active branch.
73
- * If `atIndex` is omitted, forks at the current end (all messages copied).
74
- *
75
- * Returns the new branch ID.
76
- */
77
- fork(atIndex?: number, label?: string): string;
78
- /**
79
- * Switch the active branch. Returns the messages in the new active branch.
80
- * Throws if branchId doesn't exist.
81
- */
82
- switchBranch(branchId: string): BranchMessage[];
83
- /**
84
- * Update the active branch's messages (e.g., after a chat turn).
85
- * Messages without IDs get new ones assigned.
86
- */
87
- updateMessages(messages: ONIModelMessage[]): void;
88
- /**
89
- * Get the messages from the active branch.
90
- */
91
- getMessages(): BranchMessage[];
92
- /**
93
- * Get raw messages (without messageId) for passing to the agent loop.
94
- * The agent loop expects ONIModelMessage[], not BranchMessage[].
95
- */
96
- getMessagesForLoop(): ONIModelMessage[];
97
- /**
98
- * Get the active branch.
99
- */
100
- getActiveBranch(): SessionBranch;
101
- /**
102
- * Get a branch by ID.
103
- */
104
- getBranch(branchId: string): SessionBranch | undefined;
105
- /**
106
- * Get the active branch ID.
107
- */
108
- getActiveBranchId(): string;
109
- /**
110
- * List all branches with summary info.
111
- */
112
- listBranches(): BranchInfo[];
113
- /**
114
- * Get the number of branches.
115
- */
116
- get branchCount(): number;
117
- /**
118
- * Get children of a branch (branches that forked from it).
119
- */
120
- getChildren(branchId: string): SessionBranch[];
121
- /**
122
- * Delete a branch. Cannot delete the root branch.
123
- * If `cascade` is true, also deletes all children recursively.
124
- *
125
- * If the deleted branch was active, switches to root.
126
- * Returns true if the branch was deleted.
127
- */
128
- deleteBranch(branchId: string, cascade?: boolean): boolean;
129
- /**
130
- * Export the full tree state for persistence.
131
- */
132
- toJSON(): {
133
- rootBranchId: string;
134
- activeBranchId: string;
135
- branches: SessionBranch[];
136
- };
137
- /**
138
- * Restore a tree from serialized state.
139
- */
140
- static fromJSON(data: {
141
- rootBranchId: string;
142
- activeBranchId: string;
143
- branches: SessionBranch[];
144
- }): SessionTree;
145
- }
146
- //# sourceMappingURL=session-fork.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-fork.d.ts","sourceRoot":"","sources":["../../src/oni-code/session-fork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAgBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EAAE,GAC1B,aAAa,EAAE,CAOjB;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,cAAc,CAAS;IAE/B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;;IAe9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAO3C;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAiC9C;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAa/C;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAKjD;;OAEG;IACH,WAAW,IAAI,aAAa,EAAE;IAI9B;;;OAGG;IACH,kBAAkB,IAAI,eAAe,EAAE;IAMvC;;OAEG;IACH,eAAe,IAAI,aAAa;IAIhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAItD;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,YAAY,IAAI,UAAU,EAAE;IAa5B;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAQ9C;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO;IA2BxD;;OAEG;IACH,MAAM,IAAI;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;KAC3B;IAQD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;KAC3B,GAAG,WAAW;CAahB"}
@@ -1,238 +0,0 @@
1
- /**
2
- * Session Forking — branch-based conversation history management.
3
- *
4
- * Enables forking a conversation at any point to explore alternatives.
5
- * Each branch is an independent copy of the message history that can
6
- * diverge from the fork point.
7
- *
8
- * Swarm-aware: Forked branches can be dispatched as parallel swarm agents
9
- * exploring different approaches (race/debate topologies). The SessionTree
10
- * is concurrency-safe for reads — writes go through the active branch only.
11
- *
12
- * Usage:
13
- * const tree = new SessionTree();
14
- * tree.initRoot(existingMessages);
15
- * const branchId = tree.fork(3); // Fork at message index 3
16
- * tree.switchBranch(branchId); // Switch to new branch
17
- * tree.updateMessages(newMessages); // Independent history
18
- * tree.switchBranch(tree.rootBranchId); // Switch back
19
- */
20
- // ── ID Generation ─────────────────────────────────────────────
21
- let counter = 0;
22
- function generateBranchId() {
23
- return `br_${Date.now().toString(36)}_${(counter++).toString(36)}`;
24
- }
25
- function generateMessageId() {
26
- return `msg_${Date.now().toString(36)}_${(counter++).toString(36)}`;
27
- }
28
- // ── assignMessageIds ──────────────────────────────────────────
29
- /**
30
- * Assign unique IDs to messages that lack them.
31
- * Messages that already have a `messageId` keep it (idempotent).
32
- */
33
- export function assignMessageIds(messages) {
34
- return messages.map((msg) => {
35
- if ("messageId" in msg && typeof msg.messageId === "string") {
36
- return msg;
37
- }
38
- return { ...msg, messageId: generateMessageId() };
39
- });
40
- }
41
- // ── SessionTree ───────────────────────────────────────────────
42
- export class SessionTree {
43
- branches = new Map();
44
- activeBranchId;
45
- /** Root branch ID — always set after construction */
46
- rootBranchId;
47
- constructor() {
48
- const rootId = generateBranchId();
49
- this.rootBranchId = rootId;
50
- this.activeBranchId = rootId;
51
- this.branches.set(rootId, {
52
- id: rootId,
53
- messages: [],
54
- createdAt: Date.now(),
55
- });
56
- }
57
- // ── Root initialization ─────────────────────────────────────
58
- /**
59
- * Initialize the root branch with existing conversation messages.
60
- * Call this once after construction to seed the tree.
61
- */
62
- initRoot(messages) {
63
- const root = this.branches.get(this.rootBranchId);
64
- root.messages = assignMessageIds(messages);
65
- }
66
- // ── Fork ────────────────────────────────────────────────────
67
- /**
68
- * Fork the active branch at a specific message index.
69
- *
70
- * Creates a new branch with messages [0..atIndex-1] from the active branch.
71
- * If `atIndex` is omitted, forks at the current end (all messages copied).
72
- *
73
- * Returns the new branch ID.
74
- */
75
- fork(atIndex, label) {
76
- const active = this.getActiveBranch();
77
- const maxIndex = active.messages.length;
78
- const forkAt = atIndex !== undefined ? Math.min(Math.max(0, atIndex), maxIndex) : maxIndex;
79
- const forkMessageId = forkAt > 0
80
- ? active.messages[forkAt - 1].messageId
81
- : undefined;
82
- // Clone messages up to the fork point with new IDs
83
- const clonedMessages = active.messages.slice(0, forkAt).map((msg) => ({
84
- ...msg,
85
- messageId: generateMessageId(),
86
- }));
87
- const branchId = generateBranchId();
88
- const branch = {
89
- id: branchId,
90
- parentBranchId: active.id,
91
- forkMessageId,
92
- forkIndex: forkAt,
93
- label,
94
- messages: clonedMessages,
95
- createdAt: Date.now(),
96
- activeAgent: active.activeAgent,
97
- };
98
- this.branches.set(branchId, branch);
99
- return branchId;
100
- }
101
- // ── Branch switching ────────────────────────────────────────
102
- /**
103
- * Switch the active branch. Returns the messages in the new active branch.
104
- * Throws if branchId doesn't exist.
105
- */
106
- switchBranch(branchId) {
107
- const branch = this.branches.get(branchId);
108
- if (!branch) {
109
- throw new Error(`Branch "${branchId}" not found. Available: ${[...this.branches.keys()].join(", ")}`);
110
- }
111
- this.activeBranchId = branchId;
112
- return [...branch.messages];
113
- }
114
- // ── Message management ──────────────────────────────────────
115
- /**
116
- * Update the active branch's messages (e.g., after a chat turn).
117
- * Messages without IDs get new ones assigned.
118
- */
119
- updateMessages(messages) {
120
- const active = this.getActiveBranch();
121
- active.messages = assignMessageIds(messages);
122
- }
123
- /**
124
- * Get the messages from the active branch.
125
- */
126
- getMessages() {
127
- return [...this.getActiveBranch().messages];
128
- }
129
- /**
130
- * Get raw messages (without messageId) for passing to the agent loop.
131
- * The agent loop expects ONIModelMessage[], not BranchMessage[].
132
- */
133
- getMessagesForLoop() {
134
- return this.getActiveBranch().messages.map(({ messageId: _, ...msg }) => msg);
135
- }
136
- // ── Branch queries ──────────────────────────────────────────
137
- /**
138
- * Get the active branch.
139
- */
140
- getActiveBranch() {
141
- return this.branches.get(this.activeBranchId);
142
- }
143
- /**
144
- * Get a branch by ID.
145
- */
146
- getBranch(branchId) {
147
- return this.branches.get(branchId);
148
- }
149
- /**
150
- * Get the active branch ID.
151
- */
152
- getActiveBranchId() {
153
- return this.activeBranchId;
154
- }
155
- /**
156
- * List all branches with summary info.
157
- */
158
- listBranches() {
159
- return [...this.branches.values()].map((b) => ({
160
- id: b.id,
161
- parentBranchId: b.parentBranchId,
162
- forkIndex: b.forkIndex,
163
- label: b.label,
164
- messageCount: b.messages.length,
165
- createdAt: b.createdAt,
166
- activeAgent: b.activeAgent,
167
- isActive: b.id === this.activeBranchId,
168
- }));
169
- }
170
- /**
171
- * Get the number of branches.
172
- */
173
- get branchCount() {
174
- return this.branches.size;
175
- }
176
- /**
177
- * Get children of a branch (branches that forked from it).
178
- */
179
- getChildren(branchId) {
180
- return [...this.branches.values()].filter((b) => b.parentBranchId === branchId);
181
- }
182
- // ── Branch deletion ─────────────────────────────────────────
183
- /**
184
- * Delete a branch. Cannot delete the root branch.
185
- * If `cascade` is true, also deletes all children recursively.
186
- *
187
- * If the deleted branch was active, switches to root.
188
- * Returns true if the branch was deleted.
189
- */
190
- deleteBranch(branchId, cascade = false) {
191
- if (branchId === this.rootBranchId) {
192
- return false; // Cannot delete root
193
- }
194
- if (!this.branches.has(branchId)) {
195
- return false;
196
- }
197
- if (cascade) {
198
- const children = this.getChildren(branchId);
199
- for (const child of children) {
200
- this.deleteBranch(child.id, true);
201
- }
202
- }
203
- this.branches.delete(branchId);
204
- // If we deleted the active branch, switch to root
205
- if (this.activeBranchId === branchId) {
206
- this.activeBranchId = this.rootBranchId;
207
- }
208
- return true;
209
- }
210
- // ── Serialization ───────────────────────────────────────────
211
- /**
212
- * Export the full tree state for persistence.
213
- */
214
- toJSON() {
215
- return {
216
- rootBranchId: this.rootBranchId,
217
- activeBranchId: this.activeBranchId,
218
- branches: [...this.branches.values()],
219
- };
220
- }
221
- /**
222
- * Restore a tree from serialized state.
223
- */
224
- static fromJSON(data) {
225
- const tree = new SessionTree();
226
- // Clear auto-generated root
227
- tree.branches.clear();
228
- // Restore branches
229
- for (const branch of data.branches) {
230
- tree.branches.set(branch.id, { ...branch });
231
- }
232
- // Restore IDs via private field writes
233
- tree.rootBranchId = data.rootBranchId;
234
- tree.activeBranchId = data.activeBranchId;
235
- return tree;
236
- }
237
- }
238
- //# sourceMappingURL=session-fork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-fork.js","sourceRoot":"","sources":["../../src/oni-code/session-fork.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Session Statistics — tracks tool calls, timing, errors, and denials.
3
- *
4
- * Wired into the Conductor via PostToolUse / PostToolUseFailure hooks
5
- * for zero-overhead observability. The UI can query stats for display.
6
- */
7
- interface ToolStats {
8
- count: number;
9
- totalMs: number;
10
- }
11
- interface ErrorEntry {
12
- tool: string;
13
- error: string;
14
- }
15
- export interface TokenUsage {
16
- inputTokens: number;
17
- outputTokens: number;
18
- cacheReadTokens: number;
19
- cacheWriteTokens: number;
20
- }
21
- export interface SessionSummary {
22
- totalToolCalls: number;
23
- totalErrors: number;
24
- totalDenied: number;
25
- totalDurationMs: number;
26
- toolBreakdown: Record<string, ToolStats>;
27
- errors: ErrorEntry[];
28
- /** Total token usage across all inference calls this session */
29
- tokens: TokenUsage;
30
- /** Number of inference calls made */
31
- inferenceCount: number;
32
- /** Number of compactions performed */
33
- compactionCount: number;
34
- }
35
- export declare class SessionStats {
36
- private toolCounts;
37
- private errorLog;
38
- private errorCount;
39
- private deniedCount;
40
- private totalCalls;
41
- private totalMs;
42
- private tokens;
43
- private inferences;
44
- private compactions;
45
- /** Record a successful tool call with its duration */
46
- recordToolCall(toolName: string, durationMs: number): void;
47
- /** Record a tool error */
48
- recordToolError(toolName: string, error: string): void;
49
- /** Record a denied tool call (permission or loop detection) */
50
- recordDenied(toolName: string, _reason: string): void;
51
- /** Record token usage from an inference call */
52
- recordInference(usage: {
53
- inputTokens?: number;
54
- outputTokens?: number;
55
- cacheReadTokens?: number;
56
- cacheWriteTokens?: number;
57
- }): void;
58
- /** Record that a compaction occurred */
59
- recordCompaction(): void;
60
- /** Get current total token usage */
61
- getTokenUsage(): TokenUsage;
62
- /** Get structured summary */
63
- getSummary(): SessionSummary;
64
- /** Format a human-readable summary */
65
- formatSummary(): string;
66
- /** Concise context string for PostCompact reinsertion — budget awareness */
67
- toContextString(): string;
68
- /** Reset all state */
69
- reset(): void;
70
- }
71
- export {};
72
- //# sourceMappingURL=session-stats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-stats.d.ts","sourceRoot":"","sources":["../../src/oni-code/session-stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gEAAgE;IAChE,MAAM,EAAE,UAAU,CAAC;IACnB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,MAAM,CAA4F;IAC1G,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,sDAAsD;IACtD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAa1D,0BAA0B;IAC1B,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtD,+DAA+D;IAC/D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrD,gDAAgD;IAChD,eAAe,CAAC,KAAK,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,IAAI;IAQR,wCAAwC;IACxC,gBAAgB,IAAI,IAAI;IAIxB,oCAAoC;IACpC,aAAa,IAAI,UAAU;IAI3B,6BAA6B;IAC7B,UAAU,IAAI,cAAc;IAmB5B,sCAAsC;IACtC,aAAa,IAAI,MAAM;IA8BvB,4EAA4E;IAC5E,eAAe,IAAI,MAAM;IAwBzB,sBAAsB;IACtB,KAAK,IAAI,IAAI;CAWd"}
@@ -1,141 +0,0 @@
1
- /**
2
- * Session Statistics — tracks tool calls, timing, errors, and denials.
3
- *
4
- * Wired into the Conductor via PostToolUse / PostToolUseFailure hooks
5
- * for zero-overhead observability. The UI can query stats for display.
6
- */
7
- // ── Constants ────────────────────────────────────────────────
8
- const MAX_ERROR_LOG = 50;
9
- // ── SessionStats ─────────────────────────────────────────────
10
- export class SessionStats {
11
- toolCounts = new Map();
12
- errorLog = [];
13
- errorCount = 0;
14
- deniedCount = 0;
15
- totalCalls = 0;
16
- totalMs = 0;
17
- tokens = { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 };
18
- inferences = 0;
19
- compactions = 0;
20
- /** Record a successful tool call with its duration */
21
- recordToolCall(toolName, durationMs) {
22
- this.totalCalls++;
23
- this.totalMs += durationMs;
24
- const existing = this.toolCounts.get(toolName);
25
- if (existing) {
26
- existing.count++;
27
- existing.totalMs += durationMs;
28
- }
29
- else {
30
- this.toolCounts.set(toolName, { count: 1, totalMs: durationMs });
31
- }
32
- }
33
- /** Record a tool error */
34
- recordToolError(toolName, error) {
35
- this.errorCount++;
36
- if (this.errorLog.length < MAX_ERROR_LOG) {
37
- this.errorLog.push({ tool: toolName, error });
38
- }
39
- }
40
- /** Record a denied tool call (permission or loop detection) */
41
- recordDenied(toolName, _reason) {
42
- this.deniedCount++;
43
- }
44
- /** Record token usage from an inference call */
45
- recordInference(usage) {
46
- this.inferences++;
47
- this.tokens.inputTokens += usage.inputTokens ?? 0;
48
- this.tokens.outputTokens += usage.outputTokens ?? 0;
49
- this.tokens.cacheReadTokens += usage.cacheReadTokens ?? 0;
50
- this.tokens.cacheWriteTokens += usage.cacheWriteTokens ?? 0;
51
- }
52
- /** Record that a compaction occurred */
53
- recordCompaction() {
54
- this.compactions++;
55
- }
56
- /** Get current total token usage */
57
- getTokenUsage() {
58
- return { ...this.tokens };
59
- }
60
- /** Get structured summary */
61
- getSummary() {
62
- const toolBreakdown = {};
63
- for (const [name, stats] of this.toolCounts) {
64
- toolBreakdown[name] = { ...stats };
65
- }
66
- return {
67
- totalToolCalls: this.totalCalls,
68
- totalErrors: this.errorCount,
69
- totalDenied: this.deniedCount,
70
- totalDurationMs: this.totalMs,
71
- toolBreakdown,
72
- errors: [...this.errorLog],
73
- tokens: { ...this.tokens },
74
- inferenceCount: this.inferences,
75
- compactionCount: this.compactions,
76
- };
77
- }
78
- /** Format a human-readable summary */
79
- formatSummary() {
80
- const s = this.getSummary();
81
- const lines = [];
82
- lines.push(`${s.totalToolCalls} tool calls | ${s.totalErrors} error${s.totalErrors !== 1 ? "s" : ""} | ${Math.round(s.totalDurationMs)}ms total`);
83
- if (Object.keys(s.toolBreakdown).length > 0) {
84
- const sorted = Object.entries(s.toolBreakdown)
85
- .sort((a, b) => b[1].count - a[1].count);
86
- for (const [name, stats] of sorted) {
87
- lines.push(` ${name}: ${stats.count}x (${Math.round(stats.totalMs)}ms)`);
88
- }
89
- }
90
- if (s.totalDenied > 0) {
91
- lines.push(`${s.totalDenied} denied`);
92
- }
93
- if (s.inferenceCount > 0) {
94
- const totalTok = s.tokens.inputTokens + s.tokens.outputTokens;
95
- lines.push(`${s.inferenceCount} inference${s.inferenceCount !== 1 ? "s" : ""} | ${formatTokenCount(totalTok)} tokens (${formatTokenCount(s.tokens.inputTokens)} in, ${formatTokenCount(s.tokens.outputTokens)} out)`);
96
- }
97
- if (s.compactionCount > 0) {
98
- lines.push(`${s.compactionCount} compaction${s.compactionCount !== 1 ? "s" : ""}`);
99
- }
100
- return lines.join("\n");
101
- }
102
- /** Concise context string for PostCompact reinsertion — budget awareness */
103
- toContextString() {
104
- if (this.inferences === 0 && this.totalCalls === 0)
105
- return "";
106
- const totalTok = this.tokens.inputTokens + this.tokens.outputTokens;
107
- const parts = [];
108
- if (this.inferences > 0) {
109
- parts.push(`${this.inferences} inference${this.inferences !== 1 ? "s" : ""}`, `${formatTokenCount(totalTok)} tokens (${formatTokenCount(this.tokens.inputTokens)} in, ${formatTokenCount(this.tokens.outputTokens)} out)`);
110
- }
111
- if (this.compactions > 0) {
112
- parts.push(`${this.compactions} compaction${this.compactions !== 1 ? "s" : ""}`);
113
- }
114
- if (this.totalCalls > 0) {
115
- parts.push(`${this.totalCalls} tool calls`);
116
- }
117
- return parts.join(" | ");
118
- }
119
- /** Reset all state */
120
- reset() {
121
- this.toolCounts.clear();
122
- this.errorLog = [];
123
- this.errorCount = 0;
124
- this.deniedCount = 0;
125
- this.totalCalls = 0;
126
- this.totalMs = 0;
127
- this.tokens = { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 };
128
- this.inferences = 0;
129
- this.compactions = 0;
130
- }
131
- }
132
- // ── Helpers ──────────────────────────────────────────────────
133
- /** Format token count with K/M suffix for readability */
134
- function formatTokenCount(count) {
135
- if (count >= 1_000_000)
136
- return `${(count / 1_000_000).toFixed(1)}M`;
137
- if (count >= 1_000)
138
- return `${(count / 1_000).toFixed(1)}K`;
139
- return String(count);
140
- }
141
- //# sourceMappingURL=session-stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-stats.js","sourceRoot":"","sources":["../../src/oni-code/session-stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoCH,gEAAgE;AAEhE,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,gEAAgE;AAEhE,MAAM,OAAO,YAAY;IACf,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC1C,QAAQ,GAAiB,EAAE,CAAC;IAC5B,UAAU,GAAG,CAAC,CAAC;IACf,WAAW,GAAG,CAAC,CAAC;IAChB,UAAU,GAAG,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,CAAC;IACZ,MAAM,GAAe,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;IAClG,UAAU,GAAG,CAAC,CAAC;IACf,WAAW,GAAG,CAAC,CAAC;IAExB,sDAAsD;IACtD,cAAc,CAAC,QAAgB,EAAE,UAAkB;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,QAAgB,EAAE,KAAa;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,YAAY,CAAC,QAAgB,EAAE,OAAe;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,gDAAgD;IAChD,eAAe,CAAC,KAKf;QACC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,wCAAwC;IACxC,gBAAgB;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,oCAAoC;IACpC,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,6BAA6B;IAC7B,UAAU;QACR,MAAM,aAAa,GAA8B,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QACrC,CAAC;QAED,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,UAAU;YAC/B,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,OAAO;YAC7B,aAAa;YACb,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;YAC1B,cAAc,EAAE,IAAI,CAAC,UAAU;YAC/B,eAAe,EAAE,IAAI,CAAC,WAAW;SAClC,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,aAAa;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,iBAAiB,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAElJ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;iBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,aAAa,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxN,CAAC;QAED,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,4EAA4E;IAC5E,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACpE,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACjE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAC5I,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,cAAc,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;CACF;AAED,gEAAgE;AAEhE,yDAAyD;AACzD,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,IAAI,KAAK,IAAI,KAAK;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Session Title Generator — auto-generates a short title for the session
3
- * from the user's first message.
4
- *
5
- * Uses a fast/cheap model (when available) to generate a ≤50 character title.
6
- * Fire-and-forget after the first assistant response completes.
7
- * Gracefully degrades: returns null on any error.
8
- */
9
- import type { ONIModel } from "../models/types.js";
10
- export declare class SessionTitleGenerator {
11
- private readonly model;
12
- private title;
13
- constructor(model: ONIModel);
14
- /**
15
- * Generate a title from the user's message.
16
- * Returns the cached title if already generated.
17
- * Returns null on error or empty response.
18
- */
19
- generate(userMessage: string): Promise<string | null>;
20
- /** Get the current title (null if not yet generated). */
21
- getTitle(): string | null;
22
- /** Check if a title string is a placeholder/default. */
23
- static isDefaultTitle(title: string): boolean;
24
- }
25
- //# sourceMappingURL=session-title.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-title.d.ts","sourceRoot":"","sources":["../../src/oni-code/session-title.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAkBnD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,KAAK,CAAuB;gBAExB,KAAK,EAAE,QAAQ;IAI3B;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4B3D,yDAAyD;IACzD,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,wDAAwD;IACxD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAG9C"}