oh-my-claude-sisyphus 3.7.2 → 3.7.3

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 (325) hide show
  1. package/dist/__tests__/compatibility-security.test.d.ts +13 -0
  2. package/dist/__tests__/compatibility-security.test.d.ts.map +1 -0
  3. package/dist/__tests__/compatibility-security.test.js +403 -0
  4. package/dist/__tests__/compatibility-security.test.js.map +1 -0
  5. package/dist/__tests__/compatibility.test.d.ts +7 -0
  6. package/dist/__tests__/compatibility.test.d.ts.map +1 -0
  7. package/dist/__tests__/compatibility.test.js +484 -0
  8. package/dist/__tests__/compatibility.test.js.map +1 -0
  9. package/dist/__tests__/hud/analytics-display.test.js +4 -0
  10. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  11. package/dist/cli/analytics.js +0 -0
  12. package/dist/cli/index.js +0 -0
  13. package/dist/compatibility/discovery.d.ts +58 -0
  14. package/dist/compatibility/discovery.d.ts.map +1 -0
  15. package/dist/compatibility/discovery.js +619 -0
  16. package/dist/compatibility/discovery.js.map +1 -0
  17. package/dist/compatibility/index.d.ts +51 -0
  18. package/dist/compatibility/index.d.ts.map +1 -0
  19. package/dist/compatibility/index.js +72 -0
  20. package/dist/compatibility/index.js.map +1 -0
  21. package/dist/compatibility/mcp-bridge.d.ts +138 -0
  22. package/dist/compatibility/mcp-bridge.d.ts.map +1 -0
  23. package/dist/compatibility/mcp-bridge.js +524 -0
  24. package/dist/compatibility/mcp-bridge.js.map +1 -0
  25. package/dist/compatibility/permission-adapter.d.ts +79 -0
  26. package/dist/compatibility/permission-adapter.d.ts.map +1 -0
  27. package/dist/compatibility/permission-adapter.js +369 -0
  28. package/dist/compatibility/permission-adapter.js.map +1 -0
  29. package/dist/compatibility/registry.d.ts +161 -0
  30. package/dist/compatibility/registry.d.ts.map +1 -0
  31. package/dist/compatibility/registry.js +389 -0
  32. package/dist/compatibility/registry.js.map +1 -0
  33. package/dist/compatibility/types.d.ts +249 -0
  34. package/dist/compatibility/types.d.ts.map +1 -0
  35. package/dist/compatibility/types.js +8 -0
  36. package/dist/compatibility/types.js.map +1 -0
  37. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  38. package/dist/features/rate-limit-wait/daemon.js +3 -0
  39. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  40. package/dist/hud/analytics-display.d.ts +1 -1
  41. package/dist/hud/analytics-display.d.ts.map +1 -1
  42. package/dist/hud/analytics-display.js +24 -7
  43. package/dist/hud/analytics-display.js.map +1 -1
  44. package/docs/COMPATIBILITY.md +1051 -0
  45. package/package.json +3 -1
  46. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  47. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  48. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  49. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  50. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  51. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  52. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  53. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  54. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  55. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  56. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  57. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  58. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  59. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  60. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  61. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  62. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  63. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  64. package/dist/__tests__/learned-skills/config.test.js +0 -37
  65. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  66. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  67. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  68. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  69. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  70. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  71. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  72. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  73. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  74. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  75. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  76. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  77. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  78. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  79. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  80. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  81. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  82. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  83. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  84. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  85. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  86. package/dist/agents/codex-agents.d.ts +0 -20
  87. package/dist/agents/codex-agents.d.ts.map +0 -1
  88. package/dist/agents/codex-agents.js +0 -36
  89. package/dist/agents/codex-agents.js.map +0 -1
  90. package/dist/agents/document-writer.d.ts +0 -11
  91. package/dist/agents/document-writer.d.ts.map +0 -1
  92. package/dist/agents/document-writer.js +0 -209
  93. package/dist/agents/document-writer.js.map +0 -1
  94. package/dist/agents/frontend-engineer.d.ts +0 -11
  95. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  96. package/dist/agents/frontend-engineer.js +0 -115
  97. package/dist/agents/frontend-engineer.js.map +0 -1
  98. package/dist/agents/librarian.d.ts +0 -12
  99. package/dist/agents/librarian.d.ts.map +0 -1
  100. package/dist/agents/librarian.js +0 -103
  101. package/dist/agents/librarian.js.map +0 -1
  102. package/dist/agents/metis.d.ts +0 -12
  103. package/dist/agents/metis.d.ts.map +0 -1
  104. package/dist/agents/metis.js +0 -117
  105. package/dist/agents/metis.js.map +0 -1
  106. package/dist/agents/momus.d.ts +0 -12
  107. package/dist/agents/momus.d.ts.map +0 -1
  108. package/dist/agents/momus.js +0 -128
  109. package/dist/agents/momus.js.map +0 -1
  110. package/dist/agents/multimodal-looker.d.ts +0 -11
  111. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  112. package/dist/agents/multimodal-looker.js +0 -70
  113. package/dist/agents/multimodal-looker.js.map +0 -1
  114. package/dist/agents/oracle.d.ts +0 -13
  115. package/dist/agents/oracle.d.ts.map +0 -1
  116. package/dist/agents/oracle.js +0 -191
  117. package/dist/agents/oracle.js.map +0 -1
  118. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  119. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  120. package/dist/agents/orchestrator-sisyphus.js +0 -115
  121. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  122. package/dist/agents/prometheus.d.ts +0 -12
  123. package/dist/agents/prometheus.d.ts.map +0 -1
  124. package/dist/agents/prometheus.js +0 -195
  125. package/dist/agents/prometheus.js.map +0 -1
  126. package/dist/agents/sisyphus-junior.d.ts +0 -12
  127. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  128. package/dist/agents/sisyphus-junior.js +0 -93
  129. package/dist/agents/sisyphus-junior.js.map +0 -1
  130. package/dist/cli/components/CostDashboard.d.ts +0 -15
  131. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  132. package/dist/cli/components/CostDashboard.js +0 -15
  133. package/dist/cli/components/CostDashboard.js.map +0 -1
  134. package/dist/cli/components/LiveStats.d.ts +0 -16
  135. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  136. package/dist/cli/components/LiveStats.js +0 -16
  137. package/dist/cli/components/LiveStats.js.map +0 -1
  138. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  139. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  140. package/dist/cli/components/SessionBrowser.js +0 -14
  141. package/dist/cli/components/SessionBrowser.js.map +0 -1
  142. package/dist/cli/tui.d.ts +0 -21
  143. package/dist/cli/tui.d.ts.map +0 -1
  144. package/dist/cli/tui.js +0 -21
  145. package/dist/cli/tui.js.map +0 -1
  146. package/dist/hooks/autopilot/signals.d.ts +0 -20
  147. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  148. package/dist/hooks/autopilot/signals.js +0 -75
  149. package/dist/hooks/autopilot/signals.js.map +0 -1
  150. package/dist/hooks/autopilot/summary.d.ts +0 -27
  151. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  152. package/dist/hooks/autopilot/summary.js +0 -160
  153. package/dist/hooks/autopilot/summary.js.map +0 -1
  154. package/dist/hooks/autopilot/transition.d.ts +0 -39
  155. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  156. package/dist/hooks/autopilot/transition.js +0 -216
  157. package/dist/hooks/autopilot/transition.js.map +0 -1
  158. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  159. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  160. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  161. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  162. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  163. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  164. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  165. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  166. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  167. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  168. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  169. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  170. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  171. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  172. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  173. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  174. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  175. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  176. package/dist/hooks/edit-error-recovery/index.js +0 -89
  177. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  178. package/dist/hooks/learned-skills/config.d.ts +0 -53
  179. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  180. package/dist/hooks/learned-skills/config.js +0 -103
  181. package/dist/hooks/learned-skills/config.js.map +0 -1
  182. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  183. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  184. package/dist/hooks/learned-skills/constants.js +0 -26
  185. package/dist/hooks/learned-skills/constants.js.map +0 -1
  186. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  187. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  188. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  189. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  190. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  191. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  192. package/dist/hooks/learned-skills/detector.js +0 -150
  193. package/dist/hooks/learned-skills/detector.js.map +0 -1
  194. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  195. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  196. package/dist/hooks/learned-skills/finder.js +0 -117
  197. package/dist/hooks/learned-skills/finder.js.map +0 -1
  198. package/dist/hooks/learned-skills/index.d.ts +0 -62
  199. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  200. package/dist/hooks/learned-skills/index.js +0 -137
  201. package/dist/hooks/learned-skills/index.js.map +0 -1
  202. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  203. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  204. package/dist/hooks/learned-skills/loader.js +0 -107
  205. package/dist/hooks/learned-skills/loader.js.map +0 -1
  206. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  207. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  208. package/dist/hooks/learned-skills/parser.js +0 -190
  209. package/dist/hooks/learned-skills/parser.js.map +0 -1
  210. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  211. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  212. package/dist/hooks/learned-skills/promotion.js +0 -87
  213. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  214. package/dist/hooks/learned-skills/types.d.ts +0 -109
  215. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  216. package/dist/hooks/learned-skills/types.js +0 -8
  217. package/dist/hooks/learned-skills/types.js.map +0 -1
  218. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  219. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  220. package/dist/hooks/learned-skills/validator.js +0 -87
  221. package/dist/hooks/learned-skills/validator.js.map +0 -1
  222. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  223. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  224. package/dist/hooks/learned-skills/writer.js +0 -126
  225. package/dist/hooks/learned-skills/writer.js.map +0 -1
  226. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  227. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  228. package/dist/hooks/mnemosyne/config.js +0 -103
  229. package/dist/hooks/mnemosyne/config.js.map +0 -1
  230. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  231. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  232. package/dist/hooks/mnemosyne/constants.js +0 -26
  233. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  234. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  235. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  236. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  237. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  238. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  239. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  240. package/dist/hooks/mnemosyne/detector.js +0 -150
  241. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  242. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  243. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  244. package/dist/hooks/mnemosyne/finder.js +0 -117
  245. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  246. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  247. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  248. package/dist/hooks/mnemosyne/index.js +0 -137
  249. package/dist/hooks/mnemosyne/index.js.map +0 -1
  250. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  251. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  252. package/dist/hooks/mnemosyne/loader.js +0 -113
  253. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  254. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  255. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  256. package/dist/hooks/mnemosyne/parser.js +0 -190
  257. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  258. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  259. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  260. package/dist/hooks/mnemosyne/promotion.js +0 -87
  261. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  262. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  263. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  264. package/dist/hooks/mnemosyne/types.js +0 -8
  265. package/dist/hooks/mnemosyne/types.js.map +0 -1
  266. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  267. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  268. package/dist/hooks/mnemosyne/validator.js +0 -87
  269. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  270. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  271. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  272. package/dist/hooks/mnemosyne/writer.js +0 -126
  273. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  274. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  275. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  276. package/dist/hooks/ralph-loop/index.js +0 -322
  277. package/dist/hooks/ralph-loop/index.js.map +0 -1
  278. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  279. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  280. package/dist/hooks/ralph-prd/index.js +0 -310
  281. package/dist/hooks/ralph-prd/index.js.map +0 -1
  282. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  283. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  284. package/dist/hooks/ralph-progress/index.js +0 -408
  285. package/dist/hooks/ralph-progress/index.js.map +0 -1
  286. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  287. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  288. package/dist/hooks/ralph-verifier/index.js +0 -223
  289. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  290. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  291. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  292. package/dist/hooks/session-recovery/constants.js +0 -78
  293. package/dist/hooks/session-recovery/constants.js.map +0 -1
  294. package/dist/hooks/session-recovery/index.d.ts +0 -53
  295. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  296. package/dist/hooks/session-recovery/index.js +0 -321
  297. package/dist/hooks/session-recovery/index.js.map +0 -1
  298. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  299. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  300. package/dist/hooks/session-recovery/storage.js +0 -383
  301. package/dist/hooks/session-recovery/storage.js.map +0 -1
  302. package/dist/hooks/session-recovery/types.d.ts +0 -145
  303. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  304. package/dist/hooks/session-recovery/types.js +0 -8
  305. package/dist/hooks/session-recovery/types.js.map +0 -1
  306. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  307. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  308. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  309. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  310. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  311. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  312. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  313. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  314. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  315. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  316. package/dist/hooks/ultraqa-loop/index.js +0 -216
  317. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  318. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  319. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  320. package/dist/hooks/ultrawork-state/index.js +0 -208
  321. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  322. package/dist/hud/sisyphus-state.d.ts +0 -31
  323. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  324. package/dist/hud/sisyphus-state.js +0 -163
  325. package/dist/hud/sisyphus-state.js.map +0 -1
@@ -1,241 +0,0 @@
1
- /**
2
- * Context Window Limit Error Parser
3
- *
4
- * Parses error responses to detect token/context limit errors.
5
- *
6
- * Adapted from oh-my-opencode's anthropic-context-window-limit-recovery hook.
7
- */
8
- /**
9
- * Patterns to extract token counts from error messages
10
- */
11
- const TOKEN_LIMIT_PATTERNS = [
12
- /(\d+)\s*tokens?\s*>\s*(\d+)\s*maximum/i,
13
- /prompt.*?(\d+).*?tokens.*?exceeds.*?(\d+)/i,
14
- /(\d+).*?tokens.*?limit.*?(\d+)/i,
15
- /context.*?length.*?(\d+).*?maximum.*?(\d+)/i,
16
- /max.*?context.*?(\d+).*?but.*?(\d+)/i,
17
- ];
18
- /**
19
- * Keywords indicating token limit errors
20
- */
21
- const TOKEN_LIMIT_KEYWORDS = [
22
- 'prompt is too long',
23
- 'is too long',
24
- 'context_length_exceeded',
25
- 'max_tokens',
26
- 'token limit',
27
- 'context length',
28
- 'too many tokens',
29
- 'non-empty content',
30
- ];
31
- /**
32
- * Patterns indicating thinking block structure errors (NOT token limit)
33
- * These should be handled differently
34
- */
35
- const THINKING_BLOCK_ERROR_PATTERNS = [
36
- /thinking.*first block/i,
37
- /first block.*thinking/i,
38
- /must.*start.*thinking/i,
39
- /thinking.*redacted_thinking/i,
40
- /expected.*thinking.*found/i,
41
- /thinking.*disabled.*cannot.*contain/i,
42
- ];
43
- /**
44
- * Pattern to extract message index from error
45
- */
46
- const MESSAGE_INDEX_PATTERN = /messages\.(\d+)/;
47
- /**
48
- * Check if error is a thinking block structure error
49
- */
50
- function isThinkingBlockError(text) {
51
- return THINKING_BLOCK_ERROR_PATTERNS.some((pattern) => pattern.test(text));
52
- }
53
- /**
54
- * Extract token counts from error message
55
- */
56
- function extractTokensFromMessage(message) {
57
- for (const pattern of TOKEN_LIMIT_PATTERNS) {
58
- const match = message.match(pattern);
59
- if (match) {
60
- const num1 = parseInt(match[1], 10);
61
- const num2 = parseInt(match[2], 10);
62
- return num1 > num2
63
- ? { current: num1, max: num2 }
64
- : { current: num2, max: num1 };
65
- }
66
- }
67
- return null;
68
- }
69
- /**
70
- * Extract message index from error text
71
- */
72
- function extractMessageIndex(text) {
73
- const match = text.match(MESSAGE_INDEX_PATTERN);
74
- if (match) {
75
- return parseInt(match[1], 10);
76
- }
77
- return undefined;
78
- }
79
- /**
80
- * Check if text indicates a token limit error
81
- */
82
- function isTokenLimitError(text) {
83
- if (isThinkingBlockError(text)) {
84
- return false;
85
- }
86
- const lower = text.toLowerCase();
87
- return TOKEN_LIMIT_KEYWORDS.some((kw) => lower.includes(kw.toLowerCase()));
88
- }
89
- /**
90
- * Parse an error to detect if it's a token limit error
91
- */
92
- export function parseTokenLimitError(err) {
93
- // Handle string errors
94
- if (typeof err === 'string') {
95
- if (err.toLowerCase().includes('non-empty content')) {
96
- return {
97
- currentTokens: 0,
98
- maxTokens: 0,
99
- errorType: 'non-empty content',
100
- messageIndex: extractMessageIndex(err),
101
- };
102
- }
103
- if (isTokenLimitError(err)) {
104
- const tokens = extractTokensFromMessage(err);
105
- return {
106
- currentTokens: tokens?.current ?? 0,
107
- maxTokens: tokens?.max ?? 0,
108
- errorType: 'token_limit_exceeded_string',
109
- };
110
- }
111
- return null;
112
- }
113
- // Handle non-object errors
114
- if (!err || typeof err !== 'object')
115
- return null;
116
- const errObj = err;
117
- // Collect all text sources from the error object
118
- const textSources = [];
119
- const dataObj = errObj.data;
120
- const responseBody = dataObj?.responseBody;
121
- const errorMessage = errObj.message;
122
- const errorData = errObj.error;
123
- const nestedError = errorData?.error;
124
- if (typeof responseBody === 'string')
125
- textSources.push(responseBody);
126
- if (typeof errorMessage === 'string')
127
- textSources.push(errorMessage);
128
- if (typeof errorData?.message === 'string')
129
- textSources.push(errorData.message);
130
- if (typeof errObj.body === 'string')
131
- textSources.push(errObj.body);
132
- if (typeof errObj.details === 'string')
133
- textSources.push(errObj.details);
134
- if (typeof errObj.reason === 'string')
135
- textSources.push(errObj.reason);
136
- if (typeof errObj.description === 'string')
137
- textSources.push(errObj.description);
138
- if (typeof nestedError?.message === 'string')
139
- textSources.push(nestedError.message);
140
- if (typeof dataObj?.message === 'string')
141
- textSources.push(dataObj.message);
142
- if (typeof dataObj?.error === 'string')
143
- textSources.push(dataObj.error);
144
- // Try JSON stringification if no text sources found
145
- if (textSources.length === 0) {
146
- try {
147
- const jsonStr = JSON.stringify(errObj);
148
- if (isTokenLimitError(jsonStr)) {
149
- textSources.push(jsonStr);
150
- }
151
- }
152
- catch {
153
- // Ignore JSON errors
154
- }
155
- }
156
- const combinedText = textSources.join(' ');
157
- if (!isTokenLimitError(combinedText))
158
- return null;
159
- // Try to parse structured response body
160
- if (typeof responseBody === 'string') {
161
- try {
162
- const jsonPatterns = [
163
- /data:\s*(\{[\s\S]*\})\s*$/m,
164
- /(\{"type"\s*:\s*"error"[\s\S]*\})/,
165
- /(\{[\s\S]*"error"[\s\S]*\})/,
166
- ];
167
- for (const pattern of jsonPatterns) {
168
- const dataMatch = responseBody.match(pattern);
169
- if (dataMatch) {
170
- try {
171
- const jsonData = JSON.parse(dataMatch[1]);
172
- const message = jsonData.error?.message || '';
173
- const tokens = extractTokensFromMessage(message);
174
- if (tokens) {
175
- return {
176
- currentTokens: tokens.current,
177
- maxTokens: tokens.max,
178
- requestId: jsonData.request_id,
179
- errorType: jsonData.error?.type || 'token_limit_exceeded',
180
- };
181
- }
182
- }
183
- catch {
184
- // Ignore parse errors
185
- }
186
- }
187
- }
188
- // Check for Bedrock-style errors
189
- const bedrockJson = JSON.parse(responseBody);
190
- if (typeof bedrockJson.message === 'string' &&
191
- isTokenLimitError(bedrockJson.message)) {
192
- return {
193
- currentTokens: 0,
194
- maxTokens: 0,
195
- errorType: 'bedrock_input_too_long',
196
- };
197
- }
198
- }
199
- catch {
200
- // Ignore parse errors
201
- }
202
- }
203
- // Extract tokens from any text source
204
- for (const text of textSources) {
205
- const tokens = extractTokensFromMessage(text);
206
- if (tokens) {
207
- return {
208
- currentTokens: tokens.current,
209
- maxTokens: tokens.max,
210
- errorType: 'token_limit_exceeded',
211
- };
212
- }
213
- }
214
- // Check for non-empty content error
215
- if (combinedText.toLowerCase().includes('non-empty content')) {
216
- return {
217
- currentTokens: 0,
218
- maxTokens: 0,
219
- errorType: 'non-empty content',
220
- messageIndex: extractMessageIndex(combinedText),
221
- };
222
- }
223
- // Generic token limit error
224
- if (isTokenLimitError(combinedText)) {
225
- return {
226
- currentTokens: 0,
227
- maxTokens: 0,
228
- errorType: 'token_limit_exceeded_unknown',
229
- };
230
- }
231
- return null;
232
- }
233
- /**
234
- * Check if a string contains a token limit error indication
235
- */
236
- export function containsTokenLimitError(text) {
237
- return isTokenLimitError(text);
238
- }
239
- // Re-export patterns for testing
240
- export { TOKEN_LIMIT_PATTERNS, TOKEN_LIMIT_KEYWORDS, THINKING_BLOCK_ERROR_PATTERNS, };
241
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/hooks/context-window-limit-recovery/parser.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Context Window Limit Recovery Types
3
- *
4
- * Type definitions for detecting and recovering from context window limit errors.
5
- *
6
- * Adapted from oh-my-opencode's anthropic-context-window-limit-recovery hook.
7
- */
8
- /**
9
- * Parsed token limit error information
10
- */
11
- export interface ParsedTokenLimitError {
12
- /** Current number of tokens in the conversation */
13
- currentTokens: number;
14
- /** Maximum allowed tokens */
15
- maxTokens: number;
16
- /** Request ID from the API response */
17
- requestId?: string;
18
- /** Type of error detected */
19
- errorType: string;
20
- /** Provider ID (e.g., 'anthropic') */
21
- providerID?: string;
22
- /** Model ID (e.g., 'claude-3-opus-20240229') */
23
- modelID?: string;
24
- /** Index of the problematic message */
25
- messageIndex?: number;
26
- }
27
- /**
28
- * Retry state for recovery attempts
29
- */
30
- export interface RetryState {
31
- /** Number of retry attempts made */
32
- attempt: number;
33
- /** Timestamp of last retry attempt */
34
- lastAttemptTime: number;
35
- }
36
- /**
37
- * Truncation state for progressive truncation
38
- */
39
- export interface TruncateState {
40
- /** Number of truncation attempts made */
41
- truncateAttempt: number;
42
- /** ID of the last truncated part */
43
- lastTruncatedPartId?: string;
44
- }
45
- /**
46
- * Recovery result
47
- */
48
- export interface RecoveryResult {
49
- /** Whether recovery was attempted */
50
- attempted: boolean;
51
- /** Whether recovery was successful */
52
- success: boolean;
53
- /** Recovery message to inject */
54
- message?: string;
55
- /** Error type detected */
56
- errorType?: string;
57
- }
58
- /**
59
- * Configuration for retry behavior
60
- */
61
- export declare const RETRY_CONFIG: {
62
- /** Maximum retry attempts */
63
- readonly maxAttempts: 2;
64
- /** Initial delay between retries in ms */
65
- readonly initialDelayMs: 2000;
66
- /** Backoff factor for exponential backoff */
67
- readonly backoffFactor: 2;
68
- /** Maximum delay between retries in ms */
69
- readonly maxDelayMs: 30000;
70
- };
71
- /**
72
- * Configuration for truncation behavior
73
- */
74
- export declare const TRUNCATE_CONFIG: {
75
- /** Maximum truncation attempts */
76
- readonly maxTruncateAttempts: 20;
77
- /** Minimum output size (chars) to attempt truncation */
78
- readonly minOutputSizeToTruncate: 500;
79
- /** Target token ratio after truncation */
80
- readonly targetTokenRatio: 0.5;
81
- /** Average characters per token estimate */
82
- readonly charsPerToken: 4;
83
- };
84
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/context-window-limit-recovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,6BAA6B;;IAE7B,0CAA0C;;IAE1C,6CAA6C;;IAE7C,0CAA0C;;CAElC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,kCAAkC;;IAElC,wDAAwD;;IAExD,0CAA0C;;IAE1C,4CAA4C;;CAEpC,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Context Window Limit Recovery Types
3
- *
4
- * Type definitions for detecting and recovering from context window limit errors.
5
- *
6
- * Adapted from oh-my-opencode's anthropic-context-window-limit-recovery hook.
7
- */
8
- /**
9
- * Configuration for retry behavior
10
- */
11
- export const RETRY_CONFIG = {
12
- /** Maximum retry attempts */
13
- maxAttempts: 2,
14
- /** Initial delay between retries in ms */
15
- initialDelayMs: 2000,
16
- /** Backoff factor for exponential backoff */
17
- backoffFactor: 2,
18
- /** Maximum delay between retries in ms */
19
- maxDelayMs: 30000,
20
- };
21
- /**
22
- * Configuration for truncation behavior
23
- */
24
- export const TRUNCATE_CONFIG = {
25
- /** Maximum truncation attempts */
26
- maxTruncateAttempts: 20,
27
- /** Minimum output size (chars) to attempt truncation */
28
- minOutputSizeToTruncate: 500,
29
- /** Target token ratio after truncation */
30
- targetTokenRatio: 0.5,
31
- /** Average characters per token estimate */
32
- charsPerToken: 4,
33
- };
34
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/context-window-limit-recovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwDH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,6BAA6B;IAC7B,WAAW,EAAE,CAAC;IACd,0CAA0C;IAC1C,cAAc,EAAE,IAAI;IACpB,6CAA6C;IAC7C,aAAa,EAAE,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,KAAK;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kCAAkC;IAClC,mBAAmB,EAAE,EAAE;IACvB,wDAAwD;IACxD,uBAAuB,EAAE,GAAG;IAC5B,0CAA0C;IAC1C,gBAAgB,EAAE,GAAG;IACrB,4CAA4C;IAC5C,aAAa,EAAE,CAAC;CACR,CAAC"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Edit Error Recovery Hook
3
- *
4
- * Detects Edit tool errors caused by AI mistakes and injects
5
- * a recovery reminder to guide corrective action.
6
- *
7
- * Common Edit tool failures:
8
- * - oldString and newString must be different (trying to "edit" to same content)
9
- * - oldString not found (wrong assumption about file content)
10
- * - oldString found multiple times (ambiguous match, need more context)
11
- *
12
- * Ported from oh-my-opencode's edit-error-recovery hook.
13
- */
14
- /**
15
- * Known Edit tool error patterns that indicate the AI made a mistake
16
- */
17
- export declare const EDIT_ERROR_PATTERNS: readonly ["oldString and newString must be different", "oldString not found", "oldString found multiple times", "old_string not found", "old_string and new_string must be different"];
18
- /**
19
- * System reminder injected when Edit tool fails due to AI mistake
20
- * Short, direct, and commanding - forces immediate corrective action
21
- */
22
- export declare const EDIT_ERROR_REMINDER = "\n[EDIT ERROR - IMMEDIATE ACTION REQUIRED]\n\nYou made an Edit mistake. STOP and do this NOW:\n\n1. READ the file immediately to see its ACTUAL current state\n2. VERIFY what the content really looks like (your assumption was wrong)\n3. APOLOGIZE briefly to the user for the error\n4. CONTINUE with corrected action based on the real file content\n\nDO NOT attempt another edit until you've read and verified the file state.\n";
23
- /**
24
- * Check if an output contains an edit error pattern
25
- */
26
- export declare function detectEditError(output: string): boolean;
27
- /**
28
- * Inject the edit error recovery reminder into the output
29
- */
30
- export declare function injectEditErrorRecovery(output: string): string;
31
- /**
32
- * Hook input interface for tool execution
33
- */
34
- export interface ToolExecuteInput {
35
- tool: string;
36
- sessionId: string;
37
- callId: string;
38
- }
39
- /**
40
- * Hook output interface for tool execution
41
- */
42
- export interface ToolExecuteOutput {
43
- title: string;
44
- output: string;
45
- metadata?: unknown;
46
- }
47
- /**
48
- * Creates the edit error recovery hook for Claude Code.
49
- * This is the main export for hook registration.
50
- */
51
- export declare function createEditErrorRecoveryHook(): {
52
- /**
53
- * After tool execution, check for Edit errors and inject recovery reminder.
54
- */
55
- afterToolExecute: (input: ToolExecuteInput, output: ToolExecuteOutput) => ToolExecuteOutput;
56
- };
57
- /**
58
- * Process edit tool output and inject recovery if needed.
59
- * Simplified function for direct use without hook context.
60
- */
61
- export declare function processEditOutput(toolName: string, output: string): string;
62
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/edit-error-recovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,wLAMtB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8aAW/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B;IAEvC;;OAEG;8BAEM,gBAAgB,UACf,iBAAiB,KACxB,iBAAiB;EAevB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK1E"}
@@ -1,89 +0,0 @@
1
- /**
2
- * Edit Error Recovery Hook
3
- *
4
- * Detects Edit tool errors caused by AI mistakes and injects
5
- * a recovery reminder to guide corrective action.
6
- *
7
- * Common Edit tool failures:
8
- * - oldString and newString must be different (trying to "edit" to same content)
9
- * - oldString not found (wrong assumption about file content)
10
- * - oldString found multiple times (ambiguous match, need more context)
11
- *
12
- * Ported from oh-my-opencode's edit-error-recovery hook.
13
- */
14
- /**
15
- * Known Edit tool error patterns that indicate the AI made a mistake
16
- */
17
- export const EDIT_ERROR_PATTERNS = [
18
- 'oldString and newString must be different',
19
- 'oldString not found',
20
- 'oldString found multiple times',
21
- 'old_string not found',
22
- 'old_string and new_string must be different',
23
- ];
24
- /**
25
- * System reminder injected when Edit tool fails due to AI mistake
26
- * Short, direct, and commanding - forces immediate corrective action
27
- */
28
- export const EDIT_ERROR_REMINDER = `
29
- [EDIT ERROR - IMMEDIATE ACTION REQUIRED]
30
-
31
- You made an Edit mistake. STOP and do this NOW:
32
-
33
- 1. READ the file immediately to see its ACTUAL current state
34
- 2. VERIFY what the content really looks like (your assumption was wrong)
35
- 3. APOLOGIZE briefly to the user for the error
36
- 4. CONTINUE with corrected action based on the real file content
37
-
38
- DO NOT attempt another edit until you've read and verified the file state.
39
- `;
40
- /**
41
- * Check if an output contains an edit error pattern
42
- */
43
- export function detectEditError(output) {
44
- const outputLower = output.toLowerCase();
45
- return EDIT_ERROR_PATTERNS.some((pattern) => outputLower.includes(pattern.toLowerCase()));
46
- }
47
- /**
48
- * Inject the edit error recovery reminder into the output
49
- */
50
- export function injectEditErrorRecovery(output) {
51
- if (detectEditError(output)) {
52
- return output + EDIT_ERROR_REMINDER;
53
- }
54
- return output;
55
- }
56
- /**
57
- * Creates the edit error recovery hook for Claude Code.
58
- * This is the main export for hook registration.
59
- */
60
- export function createEditErrorRecoveryHook() {
61
- return {
62
- /**
63
- * After tool execution, check for Edit errors and inject recovery reminder.
64
- */
65
- afterToolExecute: (input, output) => {
66
- if (input.tool.toLowerCase() !== 'edit') {
67
- return output;
68
- }
69
- if (detectEditError(output.output)) {
70
- return {
71
- ...output,
72
- output: output.output + EDIT_ERROR_REMINDER,
73
- };
74
- }
75
- return output;
76
- },
77
- };
78
- }
79
- /**
80
- * Process edit tool output and inject recovery if needed.
81
- * Simplified function for direct use without hook context.
82
- */
83
- export function processEditOutput(toolName, output) {
84
- if (toolName.toLowerCase() !== 'edit') {
85
- return output;
86
- }
87
- return injectEditErrorRecovery(output);
88
- }
89
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/edit-error-recovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,2CAA2C;IAC3C,qBAAqB;IACrB,gCAAgC;IAChC,sBAAsB;IACtB,6CAA6C;CACrC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAWlC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,GAAG,mBAAmB,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAoBD;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL;;WAEG;QACH,gBAAgB,EAAE,CAChB,KAAuB,EACvB,MAAyB,EACN,EAAE;YACrB,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,GAAG,MAAM;oBACT,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,mBAAmB;iBAC5C,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IAChE,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Claudeception Configuration
3
- *
4
- * Handles configuration loading and validation.
5
- */
6
- export interface ClaudeceptionConfig {
7
- /** Feature enabled/disabled */
8
- enabled: boolean;
9
- /** Detection configuration */
10
- detection: {
11
- /** Enable auto-detection */
12
- enabled: boolean;
13
- /** Confidence threshold for prompting (0-100) */
14
- promptThreshold: number;
15
- /** Cooldown between prompts (messages) */
16
- promptCooldown: number;
17
- };
18
- /** Quality gate configuration */
19
- quality: {
20
- /** Minimum score to accept (0-100) */
21
- minScore: number;
22
- /** Minimum problem length */
23
- minProblemLength: number;
24
- /** Minimum solution length */
25
- minSolutionLength: number;
26
- };
27
- /** Storage configuration */
28
- storage: {
29
- /** Maximum skills per scope */
30
- maxSkillsPerScope: number;
31
- /** Auto-prune old skills */
32
- autoPrune: boolean;
33
- /** Days before auto-prune (if enabled) */
34
- pruneDays: number;
35
- };
36
- }
37
- /**
38
- * Load configuration from disk.
39
- */
40
- export declare function loadConfig(): ClaudeceptionConfig;
41
- /**
42
- * Save configuration to disk.
43
- */
44
- export declare function saveConfig(config: Partial<ClaudeceptionConfig>): boolean;
45
- /**
46
- * Get a specific config value.
47
- */
48
- export declare function getConfigValue<K extends keyof ClaudeceptionConfig>(key: K): ClaudeceptionConfig[K];
49
- /**
50
- * Update a specific config value.
51
- */
52
- export declare function setConfigValue<K extends keyof ClaudeceptionConfig>(key: K, value: ClaudeceptionConfig[K]): boolean;
53
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/hooks/learned-skills/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,SAAS,EAAE;QACT,4BAA4B;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,iDAAiD;QACjD,eAAe,EAAE,MAAM,CAAC;QACxB,0CAA0C;QAC1C,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,iCAAiC;IACjC,OAAO,EAAE;QACP,sCAAsC;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,6BAA6B;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,8BAA8B;QAC9B,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,4BAA4B;IAC5B,OAAO,EAAE;QACP,+BAA+B;QAC/B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,4BAA4B;QAC5B,SAAS,EAAE,OAAO,CAAC;QACnB,0CAA0C;QAC1C,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAuBD;;GAEG;AACH,wBAAgB,UAAU,IAAI,mBAAmB,CAehD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAgBxE;AA0BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAChE,GAAG,EAAE,CAAC,GACL,mBAAmB,CAAC,CAAC,CAAC,CAGxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAChE,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAIT"}