@oni.bot/core 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/package.json +1 -1
  2. package/dist/oni-code/agent-registry.d.ts +0 -73
  3. package/dist/oni-code/agent-registry.d.ts.map +0 -1
  4. package/dist/oni-code/agent-registry.js +0 -151
  5. package/dist/oni-code/agent-registry.js.map +0 -1
  6. package/dist/oni-code/bin.d.ts +0 -18
  7. package/dist/oni-code/bin.d.ts.map +0 -1
  8. package/dist/oni-code/bin.js +0 -78
  9. package/dist/oni-code/bin.js.map +0 -1
  10. package/dist/oni-code/change-tracking.d.ts +0 -28
  11. package/dist/oni-code/change-tracking.d.ts.map +0 -1
  12. package/dist/oni-code/change-tracking.js +0 -77
  13. package/dist/oni-code/change-tracking.js.map +0 -1
  14. package/dist/oni-code/cli.d.ts +0 -6
  15. package/dist/oni-code/cli.d.ts.map +0 -1
  16. package/dist/oni-code/cli.js +0 -30
  17. package/dist/oni-code/cli.js.map +0 -1
  18. package/dist/oni-code/conductor.d.ts +0 -203
  19. package/dist/oni-code/conductor.d.ts.map +0 -1
  20. package/dist/oni-code/conductor.js +0 -1547
  21. package/dist/oni-code/conductor.js.map +0 -1
  22. package/dist/oni-code/config.d.ts +0 -130
  23. package/dist/oni-code/config.d.ts.map +0 -1
  24. package/dist/oni-code/config.js +0 -264
  25. package/dist/oni-code/config.js.map +0 -1
  26. package/dist/oni-code/context-files.d.ts +0 -22
  27. package/dist/oni-code/context-files.d.ts.map +0 -1
  28. package/dist/oni-code/context-files.js +0 -156
  29. package/dist/oni-code/context-files.js.map +0 -1
  30. package/dist/oni-code/cron/humanize.d.ts +0 -26
  31. package/dist/oni-code/cron/humanize.d.ts.map +0 -1
  32. package/dist/oni-code/cron/humanize.js +0 -83
  33. package/dist/oni-code/cron/humanize.js.map +0 -1
  34. package/dist/oni-code/cron/index.d.ts +0 -10
  35. package/dist/oni-code/cron/index.d.ts.map +0 -1
  36. package/dist/oni-code/cron/index.js +0 -7
  37. package/dist/oni-code/cron/index.js.map +0 -1
  38. package/dist/oni-code/cron/matcher.d.ts +0 -29
  39. package/dist/oni-code/cron/matcher.d.ts.map +0 -1
  40. package/dist/oni-code/cron/matcher.js +0 -73
  41. package/dist/oni-code/cron/matcher.js.map +0 -1
  42. package/dist/oni-code/cron/parser.d.ts +0 -27
  43. package/dist/oni-code/cron/parser.d.ts.map +0 -1
  44. package/dist/oni-code/cron/parser.js +0 -149
  45. package/dist/oni-code/cron/parser.js.map +0 -1
  46. package/dist/oni-code/cron/persistence.d.ts +0 -21
  47. package/dist/oni-code/cron/persistence.d.ts.map +0 -1
  48. package/dist/oni-code/cron/persistence.js +0 -58
  49. package/dist/oni-code/cron/persistence.js.map +0 -1
  50. package/dist/oni-code/cron/scheduler.d.ts +0 -64
  51. package/dist/oni-code/cron/scheduler.d.ts.map +0 -1
  52. package/dist/oni-code/cron/scheduler.js +0 -188
  53. package/dist/oni-code/cron/scheduler.js.map +0 -1
  54. package/dist/oni-code/cron/store.d.ts +0 -46
  55. package/dist/oni-code/cron/store.d.ts.map +0 -1
  56. package/dist/oni-code/cron/store.js +0 -68
  57. package/dist/oni-code/cron/store.js.map +0 -1
  58. package/dist/oni-code/env.d.ts +0 -17
  59. package/dist/oni-code/env.d.ts.map +0 -1
  60. package/dist/oni-code/env.js +0 -51
  61. package/dist/oni-code/env.js.map +0 -1
  62. package/dist/oni-code/file-reader.d.ts +0 -28
  63. package/dist/oni-code/file-reader.d.ts.map +0 -1
  64. package/dist/oni-code/file-reader.js +0 -368
  65. package/dist/oni-code/file-reader.js.map +0 -1
  66. package/dist/oni-code/file-watcher.d.ts +0 -66
  67. package/dist/oni-code/file-watcher.d.ts.map +0 -1
  68. package/dist/oni-code/file-watcher.js +0 -167
  69. package/dist/oni-code/file-watcher.js.map +0 -1
  70. package/dist/oni-code/loop-detector.d.ts +0 -64
  71. package/dist/oni-code/loop-detector.d.ts.map +0 -1
  72. package/dist/oni-code/loop-detector.js +0 -163
  73. package/dist/oni-code/loop-detector.js.map +0 -1
  74. package/dist/oni-code/permissions.d.ts +0 -43
  75. package/dist/oni-code/permissions.d.ts.map +0 -1
  76. package/dist/oni-code/permissions.js +0 -98
  77. package/dist/oni-code/permissions.js.map +0 -1
  78. package/dist/oni-code/planner.d.ts +0 -26
  79. package/dist/oni-code/planner.d.ts.map +0 -1
  80. package/dist/oni-code/planner.js +0 -86
  81. package/dist/oni-code/planner.js.map +0 -1
  82. package/dist/oni-code/plugin-loader.d.ts +0 -103
  83. package/dist/oni-code/plugin-loader.d.ts.map +0 -1
  84. package/dist/oni-code/plugin-loader.js +0 -171
  85. package/dist/oni-code/plugin-loader.js.map +0 -1
  86. package/dist/oni-code/process-tree.d.ts +0 -44
  87. package/dist/oni-code/process-tree.d.ts.map +0 -1
  88. package/dist/oni-code/process-tree.js +0 -107
  89. package/dist/oni-code/process-tree.js.map +0 -1
  90. package/dist/oni-code/progress-tracker.d.ts +0 -40
  91. package/dist/oni-code/progress-tracker.d.ts.map +0 -1
  92. package/dist/oni-code/progress-tracker.js +0 -375
  93. package/dist/oni-code/progress-tracker.js.map +0 -1
  94. package/dist/oni-code/scheduler.d.ts +0 -56
  95. package/dist/oni-code/scheduler.d.ts.map +0 -1
  96. package/dist/oni-code/scheduler.js +0 -105
  97. package/dist/oni-code/scheduler.js.map +0 -1
  98. package/dist/oni-code/session-fork.d.ts +0 -146
  99. package/dist/oni-code/session-fork.d.ts.map +0 -1
  100. package/dist/oni-code/session-fork.js +0 -238
  101. package/dist/oni-code/session-fork.js.map +0 -1
  102. package/dist/oni-code/session-stats.d.ts +0 -72
  103. package/dist/oni-code/session-stats.d.ts.map +0 -1
  104. package/dist/oni-code/session-stats.js +0 -141
  105. package/dist/oni-code/session-stats.js.map +0 -1
  106. package/dist/oni-code/session-title.d.ts +0 -25
  107. package/dist/oni-code/session-title.d.ts.map +0 -1
  108. package/dist/oni-code/session-title.js +0 -67
  109. package/dist/oni-code/session-title.js.map +0 -1
  110. package/dist/oni-code/shell-parser.d.ts +0 -112
  111. package/dist/oni-code/shell-parser.d.ts.map +0 -1
  112. package/dist/oni-code/shell-parser.js +0 -657
  113. package/dist/oni-code/shell-parser.js.map +0 -1
  114. package/dist/oni-code/summarizer.d.ts +0 -27
  115. package/dist/oni-code/summarizer.d.ts.map +0 -1
  116. package/dist/oni-code/summarizer.js +0 -70
  117. package/dist/oni-code/summarizer.js.map +0 -1
  118. package/dist/oni-code/swarm-checkpoint.d.ts +0 -52
  119. package/dist/oni-code/swarm-checkpoint.d.ts.map +0 -1
  120. package/dist/oni-code/swarm-checkpoint.js +0 -71
  121. package/dist/oni-code/swarm-checkpoint.js.map +0 -1
  122. package/dist/oni-code/swarm-runner.d.ts +0 -173
  123. package/dist/oni-code/swarm-runner.d.ts.map +0 -1
  124. package/dist/oni-code/swarm-runner.js +0 -873
  125. package/dist/oni-code/swarm-runner.js.map +0 -1
  126. package/dist/oni-code/system-prompt.d.ts +0 -13
  127. package/dist/oni-code/system-prompt.d.ts.map +0 -1
  128. package/dist/oni-code/system-prompt.js +0 -64
  129. package/dist/oni-code/system-prompt.js.map +0 -1
  130. package/dist/oni-code/task-evaluator.d.ts +0 -73
  131. package/dist/oni-code/task-evaluator.d.ts.map +0 -1
  132. package/dist/oni-code/task-evaluator.js +0 -172
  133. package/dist/oni-code/task-evaluator.js.map +0 -1
  134. package/dist/oni-code/tools/batch.d.ts +0 -12
  135. package/dist/oni-code/tools/batch.d.ts.map +0 -1
  136. package/dist/oni-code/tools/batch.js +0 -116
  137. package/dist/oni-code/tools/batch.js.map +0 -1
  138. package/dist/oni-code/tools/coding.d.ts +0 -10
  139. package/dist/oni-code/tools/coding.d.ts.map +0 -1
  140. package/dist/oni-code/tools/coding.js +0 -557
  141. package/dist/oni-code/tools/coding.js.map +0 -1
  142. package/dist/oni-code/tools/cron.d.ts +0 -4
  143. package/dist/oni-code/tools/cron.d.ts.map +0 -1
  144. package/dist/oni-code/tools/cron.js +0 -120
  145. package/dist/oni-code/tools/cron.js.map +0 -1
  146. package/dist/oni-code/tools/custom.d.ts +0 -43
  147. package/dist/oni-code/tools/custom.d.ts.map +0 -1
  148. package/dist/oni-code/tools/custom.js +0 -115
  149. package/dist/oni-code/tools/custom.js.map +0 -1
  150. package/dist/oni-code/tools/patch.d.ts +0 -58
  151. package/dist/oni-code/tools/patch.d.ts.map +0 -1
  152. package/dist/oni-code/tools/patch.js +0 -247
  153. package/dist/oni-code/tools/patch.js.map +0 -1
  154. package/dist/oni-code/tools/plan.d.ts +0 -17
  155. package/dist/oni-code/tools/plan.d.ts.map +0 -1
  156. package/dist/oni-code/tools/plan.js +0 -48
  157. package/dist/oni-code/tools/plan.js.map +0 -1
  158. package/dist/oni-code/tools/question.d.ts +0 -17
  159. package/dist/oni-code/tools/question.d.ts.map +0 -1
  160. package/dist/oni-code/tools/question.js +0 -46
  161. package/dist/oni-code/tools/question.js.map +0 -1
  162. package/dist/oni-code/tools/skill.d.ts +0 -36
  163. package/dist/oni-code/tools/skill.d.ts.map +0 -1
  164. package/dist/oni-code/tools/skill.js +0 -132
  165. package/dist/oni-code/tools/skill.js.map +0 -1
  166. package/dist/oni-code/tools/spawn-agents.d.ts +0 -37
  167. package/dist/oni-code/tools/spawn-agents.d.ts.map +0 -1
  168. package/dist/oni-code/tools/spawn-agents.js +0 -91
  169. package/dist/oni-code/tools/spawn-agents.js.map +0 -1
  170. package/dist/oni-code/tools/spawn-swarm.d.ts +0 -70
  171. package/dist/oni-code/tools/spawn-swarm.d.ts.map +0 -1
  172. package/dist/oni-code/tools/spawn-swarm.js +0 -129
  173. package/dist/oni-code/tools/spawn-swarm.js.map +0 -1
  174. package/dist/oni-code/tools/web.d.ts +0 -11
  175. package/dist/oni-code/tools/web.d.ts.map +0 -1
  176. package/dist/oni-code/tools/web.js +0 -375
  177. package/dist/oni-code/tools/web.js.map +0 -1
  178. package/dist/oni-code/topology-agent-builder.d.ts +0 -22
  179. package/dist/oni-code/topology-agent-builder.d.ts.map +0 -1
  180. package/dist/oni-code/topology-agent-builder.js +0 -220
  181. package/dist/oni-code/topology-agent-builder.js.map +0 -1
  182. package/dist/oni-code/topology-selector.d.ts +0 -85
  183. package/dist/oni-code/topology-selector.d.ts.map +0 -1
  184. package/dist/oni-code/topology-selector.js +0 -338
  185. package/dist/oni-code/topology-selector.js.map +0 -1
  186. package/dist/oni-code/ui/App.d.ts +0 -10
  187. package/dist/oni-code/ui/App.d.ts.map +0 -1
  188. package/dist/oni-code/ui/App.js +0 -395
  189. package/dist/oni-code/ui/App.js.map +0 -1
  190. package/dist/oni-code/ui/FooterPanel.d.ts +0 -16
  191. package/dist/oni-code/ui/FooterPanel.d.ts.map +0 -1
  192. package/dist/oni-code/ui/FooterPanel.js +0 -56
  193. package/dist/oni-code/ui/FooterPanel.js.map +0 -1
  194. package/dist/oni-code/ui/Header.d.ts +0 -21
  195. package/dist/oni-code/ui/Header.d.ts.map +0 -1
  196. package/dist/oni-code/ui/Header.js +0 -105
  197. package/dist/oni-code/ui/Header.js.map +0 -1
  198. package/dist/oni-code/ui/InputArea.d.ts +0 -11
  199. package/dist/oni-code/ui/InputArea.d.ts.map +0 -1
  200. package/dist/oni-code/ui/InputArea.js +0 -82
  201. package/dist/oni-code/ui/InputArea.js.map +0 -1
  202. package/dist/oni-code/ui/MessageBlock.d.ts +0 -11
  203. package/dist/oni-code/ui/MessageBlock.d.ts.map +0 -1
  204. package/dist/oni-code/ui/MessageBlock.js +0 -103
  205. package/dist/oni-code/ui/MessageBlock.js.map +0 -1
  206. package/dist/oni-code/ui/OutputPane.d.ts +0 -12
  207. package/dist/oni-code/ui/OutputPane.d.ts.map +0 -1
  208. package/dist/oni-code/ui/OutputPane.js +0 -8
  209. package/dist/oni-code/ui/OutputPane.js.map +0 -1
  210. package/dist/oni-code/ui/PermissionPrompt.d.ts +0 -11
  211. package/dist/oni-code/ui/PermissionPrompt.d.ts.map +0 -1
  212. package/dist/oni-code/ui/PermissionPrompt.js +0 -48
  213. package/dist/oni-code/ui/PermissionPrompt.js.map +0 -1
  214. package/dist/oni-code/ui/QuestionPrompt.d.ts +0 -8
  215. package/dist/oni-code/ui/QuestionPrompt.d.ts.map +0 -1
  216. package/dist/oni-code/ui/QuestionPrompt.js +0 -9
  217. package/dist/oni-code/ui/QuestionPrompt.js.map +0 -1
  218. package/dist/oni-code/ui/StatusLine.d.ts +0 -14
  219. package/dist/oni-code/ui/StatusLine.d.ts.map +0 -1
  220. package/dist/oni-code/ui/StatusLine.js +0 -23
  221. package/dist/oni-code/ui/StatusLine.js.map +0 -1
  222. package/dist/oni-code/ui/SwarmPanel.d.ts +0 -9
  223. package/dist/oni-code/ui/SwarmPanel.d.ts.map +0 -1
  224. package/dist/oni-code/ui/SwarmPanel.js +0 -52
  225. package/dist/oni-code/ui/SwarmPanel.js.map +0 -1
  226. package/dist/oni-code/ui/ToolCallBlock.d.ts +0 -10
  227. package/dist/oni-code/ui/ToolCallBlock.d.ts.map +0 -1
  228. package/dist/oni-code/ui/ToolCallBlock.js +0 -21
  229. package/dist/oni-code/ui/ToolCallBlock.js.map +0 -1
  230. package/dist/oni-code/ui/Toolbar.d.ts +0 -8
  231. package/dist/oni-code/ui/Toolbar.d.ts.map +0 -1
  232. package/dist/oni-code/ui/Toolbar.js +0 -11
  233. package/dist/oni-code/ui/Toolbar.js.map +0 -1
  234. package/dist/oni-code/ui/WelcomeBanner.d.ts +0 -12
  235. package/dist/oni-code/ui/WelcomeBanner.d.ts.map +0 -1
  236. package/dist/oni-code/ui/WelcomeBanner.js +0 -24
  237. package/dist/oni-code/ui/WelcomeBanner.js.map +0 -1
  238. package/dist/oni-code/ui/activity.d.ts +0 -15
  239. package/dist/oni-code/ui/activity.d.ts.map +0 -1
  240. package/dist/oni-code/ui/activity.js +0 -252
  241. package/dist/oni-code/ui/activity.js.map +0 -1
  242. package/dist/oni-code/ui/banner.d.ts +0 -16
  243. package/dist/oni-code/ui/banner.d.ts.map +0 -1
  244. package/dist/oni-code/ui/banner.js +0 -132
  245. package/dist/oni-code/ui/banner.js.map +0 -1
  246. package/dist/oni-code/ui/command-menu.d.ts +0 -7
  247. package/dist/oni-code/ui/command-menu.d.ts.map +0 -1
  248. package/dist/oni-code/ui/command-menu.js +0 -20
  249. package/dist/oni-code/ui/command-menu.js.map +0 -1
  250. package/dist/oni-code/ui/diff.d.ts +0 -17
  251. package/dist/oni-code/ui/diff.d.ts.map +0 -1
  252. package/dist/oni-code/ui/diff.js +0 -37
  253. package/dist/oni-code/ui/diff.js.map +0 -1
  254. package/dist/oni-code/ui/format.d.ts +0 -41
  255. package/dist/oni-code/ui/format.d.ts.map +0 -1
  256. package/dist/oni-code/ui/format.js +0 -223
  257. package/dist/oni-code/ui/format.js.map +0 -1
  258. package/dist/oni-code/ui/input.d.ts +0 -28
  259. package/dist/oni-code/ui/input.d.ts.map +0 -1
  260. package/dist/oni-code/ui/input.js +0 -216
  261. package/dist/oni-code/ui/input.js.map +0 -1
  262. package/dist/oni-code/ui/insights.d.ts +0 -39
  263. package/dist/oni-code/ui/insights.d.ts.map +0 -1
  264. package/dist/oni-code/ui/insights.js +0 -193
  265. package/dist/oni-code/ui/insights.js.map +0 -1
  266. package/dist/oni-code/ui/markdown.d.ts +0 -9
  267. package/dist/oni-code/ui/markdown.d.ts.map +0 -1
  268. package/dist/oni-code/ui/markdown.js +0 -44
  269. package/dist/oni-code/ui/markdown.js.map +0 -1
  270. package/dist/oni-code/ui/panels.d.ts +0 -39
  271. package/dist/oni-code/ui/panels.d.ts.map +0 -1
  272. package/dist/oni-code/ui/panels.js +0 -209
  273. package/dist/oni-code/ui/panels.js.map +0 -1
  274. package/dist/oni-code/ui/paste.d.ts +0 -17
  275. package/dist/oni-code/ui/paste.d.ts.map +0 -1
  276. package/dist/oni-code/ui/paste.js +0 -45
  277. package/dist/oni-code/ui/paste.js.map +0 -1
  278. package/dist/oni-code/ui/raw-spinner.d.ts +0 -37
  279. package/dist/oni-code/ui/raw-spinner.d.ts.map +0 -1
  280. package/dist/oni-code/ui/raw-spinner.js +0 -121
  281. package/dist/oni-code/ui/raw-spinner.js.map +0 -1
  282. package/dist/oni-code/ui/session.d.ts +0 -44
  283. package/dist/oni-code/ui/session.d.ts.map +0 -1
  284. package/dist/oni-code/ui/session.js +0 -93
  285. package/dist/oni-code/ui/session.js.map +0 -1
  286. package/dist/oni-code/ui/spinner.d.ts +0 -7
  287. package/dist/oni-code/ui/spinner.d.ts.map +0 -1
  288. package/dist/oni-code/ui/spinner.js +0 -20
  289. package/dist/oni-code/ui/spinner.js.map +0 -1
  290. package/dist/oni-code/ui/swarm-activity.d.ts +0 -50
  291. package/dist/oni-code/ui/swarm-activity.d.ts.map +0 -1
  292. package/dist/oni-code/ui/swarm-activity.js +0 -233
  293. package/dist/oni-code/ui/swarm-activity.js.map +0 -1
  294. package/dist/oni-code/ui/terminal-size.d.ts +0 -18
  295. package/dist/oni-code/ui/terminal-size.d.ts.map +0 -1
  296. package/dist/oni-code/ui/terminal-size.js +0 -45
  297. package/dist/oni-code/ui/terminal-size.js.map +0 -1
  298. package/dist/oni-code/ui/theme.d.ts +0 -82
  299. package/dist/oni-code/ui/theme.d.ts.map +0 -1
  300. package/dist/oni-code/ui/theme.js +0 -101
  301. package/dist/oni-code/ui/theme.js.map +0 -1
  302. package/dist/oni-code/ui/tool-utils.d.ts +0 -10
  303. package/dist/oni-code/ui/tool-utils.d.ts.map +0 -1
  304. package/dist/oni-code/ui/tool-utils.js +0 -82
  305. package/dist/oni-code/ui/tool-utils.js.map +0 -1
  306. package/dist/oni-code/ui/useTerminalSize.d.ts +0 -3
  307. package/dist/oni-code/ui/useTerminalSize.d.ts.map +0 -1
  308. package/dist/oni-code/ui/useTerminalSize.js +0 -16
  309. package/dist/oni-code/ui/useTerminalSize.js.map +0 -1
  310. package/dist/oni-code/workspace/change-tracker.d.ts +0 -18
  311. package/dist/oni-code/workspace/change-tracker.d.ts.map +0 -1
  312. package/dist/oni-code/workspace/change-tracker.js +0 -67
  313. package/dist/oni-code/workspace/change-tracker.js.map +0 -1
  314. package/dist/oni-code/workspace/conflict-detector.d.ts +0 -12
  315. package/dist/oni-code/workspace/conflict-detector.d.ts.map +0 -1
  316. package/dist/oni-code/workspace/conflict-detector.js +0 -24
  317. package/dist/oni-code/workspace/conflict-detector.js.map +0 -1
  318. package/dist/oni-code/workspace/file-snapshots.d.ts +0 -39
  319. package/dist/oni-code/workspace/file-snapshots.d.ts.map +0 -1
  320. package/dist/oni-code/workspace/file-snapshots.js +0 -77
  321. package/dist/oni-code/workspace/file-snapshots.js.map +0 -1
  322. package/dist/oni-code/workspace/index.d.ts +0 -5
  323. package/dist/oni-code/workspace/index.d.ts.map +0 -1
  324. package/dist/oni-code/workspace/index.js +0 -5
  325. package/dist/oni-code/workspace/index.js.map +0 -1
  326. package/dist/oni-code/workspace/project-map.d.ts +0 -14
  327. package/dist/oni-code/workspace/project-map.d.ts.map +0 -1
  328. package/dist/oni-code/workspace/project-map.js +0 -91
  329. package/dist/oni-code/workspace/project-map.js.map +0 -1
  330. package/dist/sentinel/config/index.d.ts +0 -2
  331. package/dist/sentinel/config/index.d.ts.map +0 -1
  332. package/dist/sentinel/config/index.js +0 -2
  333. package/dist/sentinel/config/index.js.map +0 -1
  334. package/dist/sentinel/config/schema.d.ts +0 -4
  335. package/dist/sentinel/config/schema.d.ts.map +0 -1
  336. package/dist/sentinel/config/schema.js +0 -42
  337. package/dist/sentinel/config/schema.js.map +0 -1
  338. package/dist/sentinel/debate/index.d.ts +0 -6
  339. package/dist/sentinel/debate/index.d.ts.map +0 -1
  340. package/dist/sentinel/debate/index.js +0 -64
  341. package/dist/sentinel/debate/index.js.map +0 -1
  342. package/dist/sentinel/debate/prompts.d.ts +0 -4
  343. package/dist/sentinel/debate/prompts.d.ts.map +0 -1
  344. package/dist/sentinel/debate/prompts.js +0 -13
  345. package/dist/sentinel/debate/prompts.js.map +0 -1
  346. package/dist/sentinel/fix/index.d.ts +0 -6
  347. package/dist/sentinel/fix/index.d.ts.map +0 -1
  348. package/dist/sentinel/fix/index.js +0 -27
  349. package/dist/sentinel/fix/index.js.map +0 -1
  350. package/dist/sentinel/fix/strategies.d.ts +0 -9
  351. package/dist/sentinel/fix/strategies.d.ts.map +0 -1
  352. package/dist/sentinel/fix/strategies.js +0 -40
  353. package/dist/sentinel/fix/strategies.js.map +0 -1
  354. package/dist/sentinel/index.d.ts +0 -14
  355. package/dist/sentinel/index.d.ts.map +0 -1
  356. package/dist/sentinel/index.js +0 -22
  357. package/dist/sentinel/index.js.map +0 -1
  358. package/dist/sentinel/integrations/cli.d.ts +0 -10
  359. package/dist/sentinel/integrations/cli.d.ts.map +0 -1
  360. package/dist/sentinel/integrations/cli.js +0 -24
  361. package/dist/sentinel/integrations/cli.js.map +0 -1
  362. package/dist/sentinel/integrations/index.d.ts +0 -2
  363. package/dist/sentinel/integrations/index.d.ts.map +0 -1
  364. package/dist/sentinel/integrations/index.js +0 -2
  365. package/dist/sentinel/integrations/index.js.map +0 -1
  366. package/dist/sentinel/memory/index.d.ts +0 -16
  367. package/dist/sentinel/memory/index.d.ts.map +0 -1
  368. package/dist/sentinel/memory/index.js +0 -60
  369. package/dist/sentinel/memory/index.js.map +0 -1
  370. package/dist/sentinel/report/console.d.ts +0 -3
  371. package/dist/sentinel/report/console.d.ts.map +0 -1
  372. package/dist/sentinel/report/console.js +0 -27
  373. package/dist/sentinel/report/console.js.map +0 -1
  374. package/dist/sentinel/report/github.d.ts +0 -3
  375. package/dist/sentinel/report/github.d.ts.map +0 -1
  376. package/dist/sentinel/report/github.js +0 -36
  377. package/dist/sentinel/report/github.js.map +0 -1
  378. package/dist/sentinel/report/index.d.ts +0 -6
  379. package/dist/sentinel/report/index.d.ts.map +0 -1
  380. package/dist/sentinel/report/index.js +0 -15
  381. package/dist/sentinel/report/index.js.map +0 -1
  382. package/dist/sentinel/report/sarif.d.ts +0 -3
  383. package/dist/sentinel/report/sarif.d.ts.map +0 -1
  384. package/dist/sentinel/report/sarif.js +0 -29
  385. package/dist/sentinel/report/sarif.js.map +0 -1
  386. package/dist/sentinel/sentinel.d.ts +0 -17
  387. package/dist/sentinel/sentinel.d.ts.map +0 -1
  388. package/dist/sentinel/sentinel.js +0 -111
  389. package/dist/sentinel/sentinel.js.map +0 -1
  390. package/dist/sentinel/swarm/agents.d.ts +0 -6
  391. package/dist/sentinel/swarm/agents.d.ts.map +0 -1
  392. package/dist/sentinel/swarm/agents.js +0 -36
  393. package/dist/sentinel/swarm/agents.js.map +0 -1
  394. package/dist/sentinel/swarm/index.d.ts +0 -8
  395. package/dist/sentinel/swarm/index.d.ts.map +0 -1
  396. package/dist/sentinel/swarm/index.js +0 -74
  397. package/dist/sentinel/swarm/index.js.map +0 -1
  398. package/dist/sentinel/swarm/prompts.d.ts +0 -2
  399. package/dist/sentinel/swarm/prompts.d.ts.map +0 -1
  400. package/dist/sentinel/swarm/prompts.js +0 -24
  401. package/dist/sentinel/swarm/prompts.js.map +0 -1
  402. package/dist/sentinel/swarm/topology.d.ts +0 -10
  403. package/dist/sentinel/swarm/topology.d.ts.map +0 -1
  404. package/dist/sentinel/swarm/topology.js +0 -38
  405. package/dist/sentinel/swarm/topology.js.map +0 -1
  406. package/dist/sentinel/triage/analyzers/complexity-analyzer.d.ts +0 -7
  407. package/dist/sentinel/triage/analyzers/complexity-analyzer.d.ts.map +0 -1
  408. package/dist/sentinel/triage/analyzers/complexity-analyzer.js +0 -94
  409. package/dist/sentinel/triage/analyzers/complexity-analyzer.js.map +0 -1
  410. package/dist/sentinel/triage/analyzers/custom-analyzer.d.ts +0 -19
  411. package/dist/sentinel/triage/analyzers/custom-analyzer.d.ts.map +0 -1
  412. package/dist/sentinel/triage/analyzers/custom-analyzer.js +0 -268
  413. package/dist/sentinel/triage/analyzers/custom-analyzer.js.map +0 -1
  414. package/dist/sentinel/triage/analyzers/dependency-analyzer.d.ts +0 -26
  415. package/dist/sentinel/triage/analyzers/dependency-analyzer.d.ts.map +0 -1
  416. package/dist/sentinel/triage/analyzers/dependency-analyzer.js +0 -220
  417. package/dist/sentinel/triage/analyzers/dependency-analyzer.js.map +0 -1
  418. package/dist/sentinel/triage/analyzers/diff-analyzer.d.ts +0 -12
  419. package/dist/sentinel/triage/analyzers/diff-analyzer.d.ts.map +0 -1
  420. package/dist/sentinel/triage/analyzers/diff-analyzer.js +0 -19
  421. package/dist/sentinel/triage/analyzers/diff-analyzer.js.map +0 -1
  422. package/dist/sentinel/triage/analyzers/index.d.ts +0 -14
  423. package/dist/sentinel/triage/analyzers/index.d.ts.map +0 -1
  424. package/dist/sentinel/triage/analyzers/index.js +0 -25
  425. package/dist/sentinel/triage/analyzers/index.js.map +0 -1
  426. package/dist/sentinel/triage/analyzers/pattern-analyzer.d.ts +0 -7
  427. package/dist/sentinel/triage/analyzers/pattern-analyzer.d.ts.map +0 -1
  428. package/dist/sentinel/triage/analyzers/pattern-analyzer.js +0 -180
  429. package/dist/sentinel/triage/analyzers/pattern-analyzer.js.map +0 -1
  430. package/dist/sentinel/triage/analyzers/security-analyzer.d.ts +0 -7
  431. package/dist/sentinel/triage/analyzers/security-analyzer.d.ts.map +0 -1
  432. package/dist/sentinel/triage/analyzers/security-analyzer.js +0 -96
  433. package/dist/sentinel/triage/analyzers/security-analyzer.js.map +0 -1
  434. package/dist/sentinel/triage/analyzers/ts-parser.d.ts +0 -71
  435. package/dist/sentinel/triage/analyzers/ts-parser.d.ts.map +0 -1
  436. package/dist/sentinel/triage/analyzers/ts-parser.js +0 -323
  437. package/dist/sentinel/triage/analyzers/ts-parser.js.map +0 -1
  438. package/dist/sentinel/triage/analyzers/typescript-analyzer.d.ts +0 -7
  439. package/dist/sentinel/triage/analyzers/typescript-analyzer.d.ts.map +0 -1
  440. package/dist/sentinel/triage/analyzers/typescript-analyzer.js +0 -68
  441. package/dist/sentinel/triage/analyzers/typescript-analyzer.js.map +0 -1
  442. package/dist/sentinel/triage/index.d.ts +0 -10
  443. package/dist/sentinel/triage/index.d.ts.map +0 -1
  444. package/dist/sentinel/triage/index.js +0 -39
  445. package/dist/sentinel/triage/index.js.map +0 -1
  446. package/dist/sentinel/triage/scorer.d.ts +0 -9
  447. package/dist/sentinel/triage/scorer.d.ts.map +0 -1
  448. package/dist/sentinel/triage/scorer.js +0 -28
  449. package/dist/sentinel/triage/scorer.js.map +0 -1
  450. package/dist/sentinel/types.d.ts +0 -125
  451. package/dist/sentinel/types.d.ts.map +0 -1
  452. package/dist/sentinel/types.js +0 -6
  453. package/dist/sentinel/types.js.map +0 -1
@@ -1,323 +0,0 @@
1
- /**
2
- * Shared TypeScript source parsing utilities.
3
- *
4
- * Pure functions — no model calls, no I/O, no side effects.
5
- * Used by the dependency analyzer (Task 2) and complexity analyzer (Task 4).
6
- *
7
- * Approach: regex-based parsing (consistent with other analyzers in this directory).
8
- * Multi-line imports are pre-joined before matching so a single regex handles both
9
- * single-line and multi-line forms.
10
- */
11
- // ---------------------------------------------------------------------------
12
- // Helpers
13
- // ---------------------------------------------------------------------------
14
- /**
15
- * Pre-join continuation lines so multi-line import blocks become a single line.
16
- * We detect a "dangling" import by looking for `import` that has no `from "…"`
17
- * on the same line and hasn't been closed yet.
18
- *
19
- * Returns an array of { text, originalLine } where originalLine is the 1-based
20
- * index of the first line of that logical line.
21
- */
22
- function joinContinuationLines(content) {
23
- const raw = content.split("\n");
24
- const result = [];
25
- let i = 0;
26
- while (i < raw.length) {
27
- const line = raw[i];
28
- // Detect start of a multi-line import (has `import` but no closing `from "…"` yet)
29
- const isImportStart = /^\s*import\b/.test(line) &&
30
- !(/from\s+["'`][^"'`]*["'`]/.test(line)) &&
31
- // Must have an opening brace to be multi-line (or be a hanging line)
32
- (line.includes("{") || line.trimEnd().endsWith(","));
33
- if (isImportStart) {
34
- const originalLine = i + 1;
35
- let joined = line;
36
- i++;
37
- // Accumulate lines until we hit the closing `from "…"`
38
- while (i < raw.length) {
39
- joined += " " + raw[i].trim();
40
- if (/from\s+["'`][^"'`]*["'`]/.test(raw[i])) {
41
- i++;
42
- break;
43
- }
44
- i++;
45
- }
46
- result.push({ text: joined, originalLine });
47
- }
48
- else {
49
- result.push({ text: line, originalLine: i + 1 });
50
- i++;
51
- }
52
- }
53
- return result;
54
- }
55
- /**
56
- * Find the 1-based line of the closing brace that matches the opening brace
57
- * assumed to be on `startLine` (1-based). Skips braces inside string literals
58
- * and single-line comments.
59
- */
60
- function findClosingBrace(lines, startLine) {
61
- let depth = 0;
62
- let inString = null;
63
- for (let i = startLine - 1; i < lines.length; i++) {
64
- const line = lines[i];
65
- let j = 0;
66
- while (j < line.length) {
67
- const ch = line[j];
68
- // Handle string literals
69
- if (inString) {
70
- if (ch === "\\" && inString !== "`") {
71
- j += 2; // skip escaped char
72
- continue;
73
- }
74
- if (ch === inString)
75
- inString = null;
76
- j++;
77
- continue;
78
- }
79
- // Start of string literal
80
- if (ch === '"' || ch === "'" || ch === "`") {
81
- inString = ch;
82
- j++;
83
- continue;
84
- }
85
- // Single-line comment — skip rest of line
86
- if (ch === "/" && line[j + 1] === "/")
87
- break;
88
- if (ch === "{")
89
- depth++;
90
- else if (ch === "}") {
91
- depth--;
92
- if (depth === 0)
93
- return i + 1; // 1-based
94
- }
95
- j++;
96
- }
97
- }
98
- return startLine; // fallback
99
- }
100
- // ---------------------------------------------------------------------------
101
- // extractImports
102
- // ---------------------------------------------------------------------------
103
- /**
104
- * Extract all import statements from TypeScript/JavaScript source.
105
- *
106
- * Handles:
107
- * - ES module named, default, and namespace imports
108
- * - `import type` declarations
109
- * - Combined default + named: `import Foo, { bar } from "x"`
110
- * - Multi-line imports (pre-joined before matching)
111
- * - `require()` calls
112
- * - Dynamic `import()` calls
113
- */
114
- export function extractImports(content, _filePath) {
115
- const results = [];
116
- const logicalLines = joinContinuationLines(content);
117
- for (const { text, originalLine } of logicalLines) {
118
- // ------- ES module imports -------
119
- // Matches: import [type] <stuff> from "source"
120
- const esImportRe = /^\s*import\s+(type\s+)?(.+?)\s+from\s+["'`]([^"'`]+)["'`]/;
121
- const esMatch = esImportRe.exec(text);
122
- if (esMatch) {
123
- const isTypeOnly = !!esMatch[1];
124
- const specifierChunk = esMatch[2].trim();
125
- const source = esMatch[3];
126
- const specifiers = [];
127
- // Namespace: * as ns
128
- const nsMatch = /^\*\s+as\s+(\w+)$/.exec(specifierChunk);
129
- if (nsMatch) {
130
- specifiers.push(`* as ${nsMatch[1]}`);
131
- }
132
- else {
133
- // May have default + named: "React, { useState, useEffect }"
134
- // Or just default: "React"
135
- // Or just named: "{ useState, useEffect }"
136
- const namedBlockMatch = /\{([^}]*)\}/.exec(specifierChunk);
137
- const withoutNamed = specifierChunk.replace(/\{[^}]*\}/, "").replace(/,/g, "").trim();
138
- if (withoutNamed) {
139
- // Default import identifier
140
- specifiers.push(withoutNamed);
141
- }
142
- if (namedBlockMatch) {
143
- const names = namedBlockMatch[1]
144
- .split(",")
145
- .map(s => s.trim())
146
- .filter(Boolean);
147
- for (const n of names) {
148
- // Handle "local as alias" — keep the local name for named imports
149
- const asParts = n.split(/\s+as\s+/);
150
- specifiers.push(asParts[0].trim());
151
- }
152
- }
153
- }
154
- results.push({ source, specifiers, line: originalLine, isTypeOnly });
155
- continue;
156
- }
157
- // ------- require() calls -------
158
- // const x = require("y") or just require("y")
159
- const requireRe = /\brequire\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/;
160
- const reqMatch = requireRe.exec(text);
161
- if (reqMatch) {
162
- results.push({
163
- source: reqMatch[1],
164
- specifiers: [],
165
- line: originalLine,
166
- isTypeOnly: false,
167
- });
168
- continue;
169
- }
170
- // ------- dynamic import() calls -------
171
- // await import("x") or import("x")
172
- const dynImportRe = /(?<![a-zA-Z$_])import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/;
173
- const dynMatch = dynImportRe.exec(text);
174
- if (dynMatch) {
175
- results.push({
176
- source: dynMatch[1],
177
- specifiers: [],
178
- line: originalLine,
179
- isTypeOnly: false,
180
- });
181
- }
182
- }
183
- return results;
184
- }
185
- // ---------------------------------------------------------------------------
186
- // extractFunctions
187
- // ---------------------------------------------------------------------------
188
- // Control-flow keywords that look like method names when followed by `(` — skip them.
189
- const CONTROL_FLOW_KEYWORDS = new Set([
190
- "if", "for", "while", "switch", "catch", "do",
191
- ]);
192
- /**
193
- * Extract function/method definitions from TypeScript/JavaScript source.
194
- *
195
- * Handles:
196
- * - `function name(...)` declarations (with/without export, async)
197
- * - `const/let/var name = (...) =>` arrow functions (with/without export)
198
- * - Class methods: `name(...) {` (skips control-flow keywords)
199
- */
200
- export function extractFunctions(content, _filePath) {
201
- const lines = content.split("\n");
202
- const results = [];
203
- // Regex patterns
204
- // 1. Named function declaration
205
- const fnDeclRe = /^(\s*)(export\s+)?(async\s+)?function\s+(\w+)\s*\(([^)]*)\)/;
206
- // 2. Arrow function assignment
207
- // Pattern: [export] const name = [async] (params)[: ReturnType] =>
208
- // The return type annotation after `)` is optional and must be skipped before `=>`.
209
- const arrowRe = /^(\s*)(export\s+)?(const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?\(([^)]*)\)(?:\s*:\s*[^=]+?)?\s*=>/;
210
- // 3. Class method (public/private/protected/static/async qualifiers optional)
211
- const methodRe = /^(\s*)(?:(?:public|private|protected|static|async|override)\s+)*(\w+)\s*\(([^)]*)\)\s*(?::\s*\S[^{]*)?\{/;
212
- for (let i = 0; i < lines.length; i++) {
213
- const line = lines[i];
214
- const lineNo = i + 1;
215
- // --- Named function declaration ---
216
- const fnMatch = fnDeclRe.exec(line);
217
- if (fnMatch) {
218
- const exported = !!fnMatch[2];
219
- const name = fnMatch[4];
220
- const params = fnMatch[5].trim();
221
- const paramCount = params === "" ? 0 : params.split(",").length;
222
- const endLine = findClosingBrace(lines, lineNo);
223
- results.push({
224
- name,
225
- line: lineNo,
226
- endLine,
227
- lineCount: endLine - lineNo + 1,
228
- paramCount,
229
- exported,
230
- });
231
- continue;
232
- }
233
- // --- Arrow function assignment ---
234
- const arrowMatch = arrowRe.exec(line);
235
- if (arrowMatch) {
236
- const exported = !!arrowMatch[2];
237
- const name = arrowMatch[4];
238
- const params = arrowMatch[5].trim();
239
- const paramCount = params === "" ? 0 : params.split(",").length;
240
- // Arrow may be single-expression (no braces) or block body
241
- const endLine = line.includes("{") ? findClosingBrace(lines, lineNo) : lineNo;
242
- results.push({
243
- name,
244
- line: lineNo,
245
- endLine,
246
- lineCount: endLine - lineNo + 1,
247
- paramCount,
248
- exported,
249
- });
250
- continue;
251
- }
252
- // --- Class methods ---
253
- const methodMatch = methodRe.exec(line);
254
- if (methodMatch) {
255
- const name = methodMatch[2];
256
- // Skip control-flow keywords and common non-function words
257
- if (CONTROL_FLOW_KEYWORDS.has(name) || name === "class" || name === "return")
258
- continue;
259
- const params = methodMatch[3].trim();
260
- const paramCount = params === "" ? 0 : params.split(",").length;
261
- const endLine = findClosingBrace(lines, lineNo);
262
- results.push({
263
- name,
264
- line: lineNo,
265
- endLine,
266
- lineCount: endLine - lineNo + 1,
267
- paramCount,
268
- exported: false,
269
- });
270
- }
271
- }
272
- return results;
273
- }
274
- // ---------------------------------------------------------------------------
275
- // extractExports
276
- // ---------------------------------------------------------------------------
277
- /**
278
- * Extract exported symbol names from TypeScript/JavaScript source.
279
- *
280
- * Handles:
281
- * - `export function/const/let/var/class/type/interface/enum name`
282
- * - `export { name1, name2 }` with optional `as alias`
283
- * - `export default`
284
- */
285
- export function extractExports(content, _filePath) {
286
- const lines = content.split("\n");
287
- const results = [];
288
- // Matches: export [type] (function|const|let|var|class|interface|enum|abstract class) name
289
- const namedExportRe = /^\s*export\s+(?:type\s+|abstract\s+)?(?:function\s+|const\s+|let\s+|var\s+|class\s+|interface\s+|enum\s+|type\s+)(\w+)/;
290
- // Matches: export { foo, bar as baz, ... }
291
- const groupedExportRe = /^\s*export\s+\{([^}]+)\}/;
292
- // Matches: export default
293
- const defaultExportRe = /^\s*export\s+default\b/;
294
- for (let i = 0; i < lines.length; i++) {
295
- const line = lines[i];
296
- const lineNo = i + 1;
297
- // export default — captures the name "default"
298
- if (defaultExportRe.test(line)) {
299
- results.push({ name: "default", line: lineNo });
300
- continue;
301
- }
302
- // export { a, b as c }
303
- const groupedMatch = groupedExportRe.exec(line);
304
- if (groupedMatch) {
305
- const items = groupedMatch[1].split(",").map(s => s.trim()).filter(Boolean);
306
- for (const item of items) {
307
- // "foo as bar" → exported name is "bar"; plain "foo" → "foo"
308
- const asParts = item.split(/\s+as\s+/);
309
- const exportedName = asParts.length === 2 ? asParts[1].trim() : asParts[0].trim();
310
- if (exportedName)
311
- results.push({ name: exportedName, line: lineNo });
312
- }
313
- continue;
314
- }
315
- // export function/const/let/var/class/interface/enum name
316
- const namedMatch = namedExportRe.exec(line);
317
- if (namedMatch) {
318
- results.push({ name: namedMatch[1], line: lineNo });
319
- }
320
- }
321
- return results;
322
- }
323
- //# sourceMappingURL=ts-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ts-parser.js","sourceRoot":"","sources":["../../../../src/sentinel/triage/analyzers/ts-parser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { Analyzer, AnalyzerResult } from "../../types.js";
2
- export declare class TypeScriptAnalyzer implements Analyzer {
3
- name: string;
4
- weight: number;
5
- analyze(file: string, content: string, _rootDir: string): Promise<AnalyzerResult>;
6
- }
7
- //# sourceMappingURL=typescript-analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/sentinel/triage/analyzers/typescript-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAW,MAAM,gBAAgB,CAAC;AAWxE,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,IAAI,SAAgB;IACpB,MAAM,SAAQ;IAER,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAgExF"}
@@ -1,68 +0,0 @@
1
- // Matches exported function/arrow declarations that lack an explicit return type annotation.
2
- // Pattern: export function name(...) { OR export const name = (...) =>
3
- // We check that there is no ): ReturnType before { or =>
4
- const MISSING_RETURN_TYPE_FN = /^export\s+(?:async\s+)?function\s+\w+\s*\([^)]*\)\s*\{/;
5
- const MISSING_RETURN_TYPE_ARROW = /^export\s+(?:const|let|var)\s+\w+\s*=\s*(?:async\s+)?\([^)]*\)\s*=>/;
6
- const HAS_RETURN_TYPE = /\)\s*:\s*\S/;
7
- const ANY_USAGE = /\bany\b/g;
8
- export class TypeScriptAnalyzer {
9
- name = "typescript";
10
- weight = 0.25;
11
- async analyze(file, content, _rootDir) {
12
- // Only analyze TypeScript files
13
- if (!file.endsWith(".ts") && !file.endsWith(".tsx")) {
14
- return { analyzer: this.name, file, score: 0, findings: [] };
15
- }
16
- const lines = content.split("\n");
17
- const findings = [];
18
- for (let i = 0; i < lines.length; i++) {
19
- const line = lines[i].trim();
20
- // Check for missing return type on exported functions
21
- if ((MISSING_RETURN_TYPE_FN.test(line) || MISSING_RETURN_TYPE_ARROW.test(line)) &&
22
- !HAS_RETURN_TYPE.test(line)) {
23
- findings.push({
24
- id: `ts-missing-return-type-${file}-${i + 1}`,
25
- file,
26
- line: i + 1,
27
- severity: "info",
28
- category: "correctness",
29
- message: "Exported function is missing an explicit return type annotation",
30
- suggestion: "Add a return type annotation for better type safety and IDE support",
31
- confidence: 0.75,
32
- agent: "typescript",
33
- });
34
- }
35
- // Check for any usage
36
- ANY_USAGE.lastIndex = 0;
37
- let match;
38
- while ((match = ANY_USAGE.exec(line)) !== null) {
39
- // Skip if inside a comment
40
- const beforeMatch = line.slice(0, match.index);
41
- if (beforeMatch.includes("//"))
42
- break;
43
- findings.push({
44
- id: `ts-any-${file}-${i + 1}-${match.index}`,
45
- file,
46
- line: i + 1,
47
- severity: "warning",
48
- category: "correctness",
49
- message: "Use of `any` type reduces type safety",
50
- suggestion: "Replace `any` with a more specific type or `unknown`",
51
- confidence: 0.8,
52
- agent: "typescript",
53
- });
54
- // Only flag once per line to avoid noise
55
- break;
56
- }
57
- }
58
- const score = Math.min(100, findings.length * 10);
59
- return {
60
- analyzer: this.name,
61
- file,
62
- score,
63
- findings,
64
- metadata: { issueCount: findings.length },
65
- };
66
- }
67
- }
68
- //# sourceMappingURL=typescript-analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-analyzer.js","sourceRoot":"","sources":["../../../../src/sentinel/triage/analyzers/typescript-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { SentinelConfig, FileScore } from "../types.js";
2
- export interface FileInput {
3
- path: string;
4
- content: string;
5
- }
6
- export declare function minimatch(filePath: string, pattern: string): boolean;
7
- export declare function triageFiles(files: FileInput[], config: SentinelConfig, rootDir: string): Promise<FileScore[]>;
8
- export { computeRiskScore, assignTier, ANALYZER_WEIGHTS } from "./scorer.js";
9
- export { createAllAnalyzers } from "./analyzers/index.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sentinel/triage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAI7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQpE;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,EAAE,CAAC,CAoCtB;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,39 +0,0 @@
1
- import { createAllAnalyzers } from "./analyzers/index.js";
2
- import { computeRiskScore, assignTier } from "./scorer.js";
3
- export function minimatch(filePath, pattern) {
4
- const escaped = pattern
5
- .replace(/[.+^${}()|[\]\\]/g, "\\$&")
6
- .replace(/\*\*/g, "{{GLOBSTAR}}")
7
- .replace(/\*/g, "[^/]*")
8
- .replace(/\{\{GLOBSTAR\}\}/g, ".*")
9
- .replace(/\?/g, "[^/]");
10
- return new RegExp(`^${escaped}$`).test(filePath);
11
- }
12
- export async function triageFiles(files, config, rootDir) {
13
- const analyzers = createAllAnalyzers(files, config.custom_analyzers);
14
- // Build weight map for custom analyzers (built-ins use ANALYZER_WEIGHTS)
15
- const customWeights = {};
16
- for (const a of analyzers) {
17
- if (a.name.startsWith("custom:")) {
18
- customWeights[a.name] = a.weight;
19
- }
20
- }
21
- const filtered = files.filter(f => !config.ignore.some(pattern => minimatch(f.path, pattern)));
22
- const results = await Promise.all(filtered.map(async (file) => {
23
- const analyzerResults = await Promise.all(analyzers.map(a => a.analyze(file.path, file.content, rootDir).catch(() => ({
24
- analyzer: a.name, file: file.path, score: 0, findings: [],
25
- }))));
26
- const allFindings = analyzerResults.flatMap(r => r.findings);
27
- const breakdown = {};
28
- for (const r of analyzerResults)
29
- breakdown[r.analyzer] = r.score;
30
- const score = computeRiskScore(analyzerResults, { recentCommits: 0, churnCount: 0 }, customWeights);
31
- const tier = assignTier(score);
32
- return { file: file.path, score, tier, breakdown, findings: allFindings };
33
- }));
34
- results.sort((a, b) => b.score - a.score);
35
- return results;
36
- }
37
- export { computeRiskScore, assignTier, ANALYZER_WEIGHTS } from "./scorer.js";
38
- export { createAllAnalyzers } from "./analyzers/index.js";
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sentinel/triage/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { AnalyzerResult, Tier } from "../types.js";
2
- export declare const ANALYZER_WEIGHTS: Record<string, number>;
3
- export interface FileContext {
4
- recentCommits: number;
5
- churnCount: number;
6
- }
7
- export declare function computeRiskScore(results: AnalyzerResult[], ctx: FileContext, extraWeights?: Record<string, number>): number;
8
- export declare function assignTier(score: number): Tier;
9
- //# sourceMappingURL=scorer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../../src/sentinel/triage/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOnD,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,GAAG,EAAE,WAAW,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CASR;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9C"}
@@ -1,28 +0,0 @@
1
- export const ANALYZER_WEIGHTS = {
2
- typescript: 0.25,
3
- complexity: 0.20,
4
- security: 0.25,
5
- dependency: 0.10,
6
- pattern: 0.10,
7
- diff: 0.10,
8
- };
9
- export function computeRiskScore(results, ctx, extraWeights) {
10
- let weighted = 0;
11
- for (const r of results) {
12
- const w = ANALYZER_WEIGHTS[r.analyzer] ?? extraWeights?.[r.analyzer] ?? 0;
13
- weighted += r.score * w;
14
- }
15
- const recencyBonus = ctx.recentCommits > 0 ? 10 : 0;
16
- const churnBonus = Math.min(ctx.churnCount * 5, 15);
17
- return Math.min(100, Math.max(0, Math.round(weighted + recencyBonus + churnBonus)));
18
- }
19
- export function assignTier(score) {
20
- if (score <= 15)
21
- return "clean";
22
- if (score <= 40)
23
- return "low";
24
- if (score <= 70)
25
- return "medium";
26
- return "high";
27
- }
28
- //# sourceMappingURL=scorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../../src/sentinel/triage/scorer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;CACX,CAAC;AAOF,MAAM,UAAU,gBAAgB,CAC9B,OAAyB,EACzB,GAAgB,EAChB,YAAqC;IAErC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1E,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,125 +0,0 @@
1
- export type Severity = "error" | "warning" | "info";
2
- export type Category = "security" | "architecture" | "performance" | "correctness" | "style";
3
- export type Tier = "clean" | "low" | "medium" | "high";
4
- export type DebateVerdict = "confirmed" | "dismissed" | "downgraded";
5
- export type FixStrategy = "direct" | "pattern" | "creative";
6
- export interface Finding {
7
- id: string;
8
- file: string;
9
- line: number;
10
- endLine?: number;
11
- severity: Severity;
12
- category: Category;
13
- message: string;
14
- suggestion?: string;
15
- confidence: number;
16
- agent: string;
17
- relatedFiles?: string[];
18
- debateVerdict?: DebateVerdict;
19
- fixPatch?: string;
20
- fixStrategy?: FixStrategy;
21
- }
22
- export interface AnalyzerResult {
23
- analyzer: string;
24
- file: string;
25
- score: number;
26
- findings: Finding[];
27
- metadata?: Record<string, unknown>;
28
- }
29
- export interface FileScore {
30
- file: string;
31
- score: number;
32
- tier: Tier;
33
- breakdown: Record<string, number>;
34
- findings: Finding[];
35
- }
36
- export interface SentinelConfig {
37
- severity_threshold: Severity;
38
- auto_fix: boolean;
39
- max_fix_attempts: number;
40
- max_debates: number;
41
- debate_auto_confirm_above: number;
42
- ignore: string[];
43
- rules: Partial<Record<Category, Severity>>;
44
- custom_analyzers: CustomAnalyzerConfig[];
45
- }
46
- export interface CustomAnalyzerConfig {
47
- name: string;
48
- command: string;
49
- parser: "sarif" | "json" | "text";
50
- }
51
- export type ReportFormat = "console" | "sarif" | "json" | "github";
52
- export interface SentinelReport {
53
- findings: Finding[];
54
- summary: ReportSummary;
55
- duration: number;
56
- config: SentinelConfig;
57
- }
58
- export interface ReportSummary {
59
- totalFiles: number;
60
- filesScanned: number;
61
- filesSkipped: number;
62
- totalFindings: number;
63
- bySeverity: Record<Severity, number>;
64
- byCategory: Record<Category, number>;
65
- fixesApplied: number;
66
- fixesFailed: number;
67
- debatesRun: number;
68
- debateDismissals: number;
69
- }
70
- export interface SwarmReviewConfig {
71
- topology: "single" | "fanOut";
72
- agents: string[];
73
- model: "fast" | "standard";
74
- }
75
- export interface SentinelOptions {
76
- model: import("../models/types.js").ONIModel;
77
- fastModel?: import("../models/types.js").ONIModel;
78
- config?: string | Partial<SentinelConfig>;
79
- memoryPath?: string;
80
- memoryJson?: string;
81
- rootDir?: string;
82
- }
83
- export interface ScanOptions {
84
- paths: string[];
85
- format?: ReportFormat;
86
- }
87
- export interface PRReviewOptions {
88
- diff: string;
89
- baseBranch: string;
90
- format?: ReportFormat;
91
- }
92
- export interface Analyzer {
93
- name: string;
94
- weight: number;
95
- analyze(file: string, content: string, rootDir: string): Promise<AnalyzerResult>;
96
- }
97
- export interface MemoryPattern {
98
- id: string;
99
- type: "false_positive" | "fix";
100
- analyzer: string;
101
- rule: string;
102
- codeShape: string;
103
- suppressions: number;
104
- permanent: boolean;
105
- createdAt: number;
106
- updatedAt: number;
107
- }
108
- export interface FixPattern {
109
- id: string;
110
- category: Category;
111
- beforeHash: string;
112
- afterHash: string;
113
- patch: string;
114
- successCount: number;
115
- createdAt: number;
116
- }
117
- export interface ReviewRecord {
118
- id: string;
119
- timestamp: number;
120
- totalFindings: number;
121
- fixRate: number;
122
- falsePositiveRate: number;
123
- duration: number;
124
- }
125
- //# sourceMappingURL=types.d.ts.map