cloving 0.3.19 → 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 (507) hide show
  1. package/{LICENSE.md → LICENSE} +1 -1
  2. package/README.md +475 -182
  3. package/dist/src/authority/budgets.d.ts +12 -0
  4. package/dist/src/authority/budgets.js +42 -0
  5. package/dist/src/authority/commands.d.ts +7 -0
  6. package/dist/src/authority/commands.js +263 -0
  7. package/dist/src/authority/details.d.ts +28 -0
  8. package/dist/src/authority/details.js +33 -0
  9. package/dist/src/authority/dispatch-decision.d.ts +40 -0
  10. package/dist/src/authority/dispatch-decision.js +47 -0
  11. package/dist/src/authority/effect-requests.d.ts +2 -0
  12. package/dist/src/authority/effect-requests.js +139 -0
  13. package/dist/src/authority/effect-results.d.ts +4 -0
  14. package/dist/src/authority/effect-results.js +236 -0
  15. package/dist/src/authority/events.d.ts +2 -0
  16. package/dist/src/authority/events.js +45 -0
  17. package/dist/src/authority/gate-reduction.d.ts +8 -0
  18. package/dist/src/authority/gate-reduction.js +109 -0
  19. package/dist/src/authority/gates.d.ts +48 -0
  20. package/dist/src/authority/gates.js +77 -0
  21. package/dist/src/authority/history-state.d.ts +15 -0
  22. package/dist/src/authority/history-state.js +61 -0
  23. package/dist/src/authority/history.d.ts +13 -0
  24. package/dist/src/authority/history.js +37 -0
  25. package/dist/src/authority/instants.d.ts +3 -0
  26. package/dist/src/authority/instants.js +38 -0
  27. package/dist/src/authority/leases.d.ts +15 -0
  28. package/dist/src/authority/leases.js +113 -0
  29. package/dist/src/authority/operations.d.ts +101 -0
  30. package/dist/src/authority/operations.js +75 -0
  31. package/dist/src/authority/reconciliation.d.ts +27 -0
  32. package/dist/src/authority/reconciliation.js +147 -0
  33. package/dist/src/authority/reducer.d.ts +41 -0
  34. package/dist/src/authority/reducer.js +139 -0
  35. package/dist/src/authority/reduction-state.d.ts +36 -0
  36. package/dist/src/authority/reduction-state.js +68 -0
  37. package/dist/src/authority/reduction.d.ts +6 -0
  38. package/dist/src/authority/reduction.js +160 -0
  39. package/dist/src/authority/status-closure.d.ts +4 -0
  40. package/dist/src/authority/status-closure.js +57 -0
  41. package/dist/src/authority/status-effects.d.ts +17 -0
  42. package/dist/src/authority/status-effects.js +43 -0
  43. package/dist/src/authority/status-input.d.ts +45 -0
  44. package/dist/src/authority/status-input.js +9 -0
  45. package/dist/src/authority/status.d.ts +32 -0
  46. package/dist/src/authority/status.js +256 -0
  47. package/dist/src/authority/stop-sequence.d.ts +37 -0
  48. package/dist/src/authority/stop-sequence.js +91 -0
  49. package/dist/src/authority/transitions.d.ts +63 -0
  50. package/dist/src/authority/transitions.js +122 -0
  51. package/dist/src/broker/actor/adapter-calls.d.ts +13 -0
  52. package/dist/src/broker/actor/adapter-calls.js +34 -0
  53. package/dist/src/broker/actor/adapter-outcomes.d.ts +28 -0
  54. package/dist/src/broker/actor/adapter-outcomes.js +80 -0
  55. package/dist/src/broker/actor/authority-actor.d.ts +25 -0
  56. package/dist/src/broker/actor/authority-actor.js +169 -0
  57. package/dist/src/broker/actor/authority-changes.d.ts +31 -0
  58. package/dist/src/broker/actor/authority-changes.js +46 -0
  59. package/dist/src/broker/actor/authority-connection.d.ts +15 -0
  60. package/dist/src/broker/actor/authority-connection.js +44 -0
  61. package/dist/src/broker/actor/authority-conversion.d.ts +10 -0
  62. package/dist/src/broker/actor/authority-conversion.js +72 -0
  63. package/dist/src/broker/actor/authority-delivery.d.ts +13 -0
  64. package/dist/src/broker/actor/authority-delivery.js +162 -0
  65. package/dist/src/broker/actor/authority-logger.d.ts +2 -0
  66. package/dist/src/broker/actor/authority-logger.js +19 -0
  67. package/dist/src/broker/actor/authority-policy.d.ts +9 -0
  68. package/dist/src/broker/actor/authority-policy.js +11 -0
  69. package/dist/src/broker/actor/authority-queries.d.ts +45 -0
  70. package/dist/src/broker/actor/authority-queries.js +85 -0
  71. package/dist/src/broker/actor/authority-receipts.d.ts +28 -0
  72. package/dist/src/broker/actor/authority-receipts.js +84 -0
  73. package/dist/src/broker/actor/authority-release.d.ts +13 -0
  74. package/dist/src/broker/actor/authority-release.js +69 -0
  75. package/dist/src/broker/actor/authority-runtime.d.ts +60 -0
  76. package/dist/src/broker/actor/authority-runtime.js +204 -0
  77. package/dist/src/broker/actor/authority-session.d.ts +65 -0
  78. package/dist/src/broker/actor/authority-session.js +252 -0
  79. package/dist/src/broker/actor/authority-settings.d.ts +33 -0
  80. package/dist/src/broker/actor/authority-settings.js +63 -0
  81. package/dist/src/broker/actor/authority-upgrades.d.ts +16 -0
  82. package/dist/src/broker/actor/authority-upgrades.js +12 -0
  83. package/dist/src/broker/actor/authority-watchdog.d.ts +14 -0
  84. package/dist/src/broker/actor/authority-watchdog.js +41 -0
  85. package/dist/src/broker/actor/authority.d.ts +14 -0
  86. package/dist/src/broker/actor/authority.js +115 -0
  87. package/dist/src/broker/actor/delivery-intents.d.ts +68 -0
  88. package/dist/src/broker/actor/delivery-intents.js +77 -0
  89. package/dist/src/broker/actor/delivery-plan.d.ts +2 -0
  90. package/dist/src/broker/actor/delivery-plan.js +109 -0
  91. package/dist/src/broker/actor/delivery-results.d.ts +11 -0
  92. package/dist/src/broker/actor/delivery-results.js +63 -0
  93. package/dist/src/broker/actor/effect-delivery.d.ts +19 -0
  94. package/dist/src/broker/actor/effect-delivery.js +118 -0
  95. package/dist/src/broker/actor/effect-plan.d.ts +41 -0
  96. package/dist/src/broker/actor/effect-plan.js +173 -0
  97. package/dist/src/broker/actor/effect-queries.d.ts +27 -0
  98. package/dist/src/broker/actor/effect-queries.js +80 -0
  99. package/dist/src/broker/actor/effect-turn.d.ts +25 -0
  100. package/dist/src/broker/actor/effect-turn.js +84 -0
  101. package/dist/src/broker/actor/pin-check.d.ts +6 -0
  102. package/dist/src/broker/actor/pin-check.js +12 -0
  103. package/dist/src/broker/actor/runtime-parts.d.ts +23 -0
  104. package/dist/src/broker/actor/runtime-parts.js +34 -0
  105. package/dist/src/broker/actor/stop-plan.d.ts +20 -0
  106. package/dist/src/broker/actor/stop-plan.js +46 -0
  107. package/dist/src/broker/actor/stop-turn.d.ts +17 -0
  108. package/dist/src/broker/actor/stop-turn.js +42 -0
  109. package/dist/src/broker/actor/turn-draft.d.ts +31 -0
  110. package/dist/src/broker/actor/turn-draft.js +138 -0
  111. package/dist/src/broker/actor/turn-plan.d.ts +17 -0
  112. package/dist/src/broker/actor/turn-plan.js +136 -0
  113. package/dist/src/broker/actor/turn-refusals.d.ts +8 -0
  114. package/dist/src/broker/actor/turn-refusals.js +35 -0
  115. package/dist/src/broker/actor/turn-staging.d.ts +78 -0
  116. package/dist/src/broker/actor/turn-staging.js +34 -0
  117. package/dist/src/broker/actor/turn-state.d.ts +34 -0
  118. package/dist/src/broker/actor/turn-state.js +208 -0
  119. package/dist/src/broker/authority-admission.d.ts +21 -0
  120. package/dist/src/broker/authority-admission.js +70 -0
  121. package/dist/src/broker/authority-restore.d.ts +30 -0
  122. package/dist/src/broker/authority-restore.js +165 -0
  123. package/dist/src/broker/decision-restore.d.ts +16 -0
  124. package/dist/src/broker/decision-restore.js +158 -0
  125. package/dist/src/broker/decision-upgrade.d.ts +3 -0
  126. package/dist/src/broker/decision-upgrade.js +12 -0
  127. package/dist/src/broker/effect-restore.d.ts +20 -0
  128. package/dist/src/broker/effect-restore.js +111 -0
  129. package/dist/src/broker/effect-upgrade.d.ts +3 -0
  130. package/dist/src/broker/effect-upgrade.js +9 -0
  131. package/dist/src/broker/operation-digest.d.ts +1 -0
  132. package/dist/src/broker/operation-digest.js +4 -0
  133. package/dist/src/broker/socket-address.d.ts +9 -0
  134. package/dist/src/broker/socket-address.js +14 -0
  135. package/dist/src/broker/workflow-pin.d.ts +2 -0
  136. package/dist/src/broker/workflow-pin.js +5 -0
  137. package/dist/src/chats/destination.d.ts +4 -0
  138. package/dist/src/chats/destination.js +94 -0
  139. package/dist/src/chats/import.d.ts +13 -0
  140. package/dist/src/chats/import.js +71 -0
  141. package/dist/src/chats/normalize.d.ts +20 -0
  142. package/dist/src/chats/normalize.js +139 -0
  143. package/dist/src/chats/reader.d.ts +15 -0
  144. package/dist/src/chats/reader.js +87 -0
  145. package/dist/src/cli/arguments.d.ts +23 -0
  146. package/dist/src/cli/arguments.js +154 -0
  147. package/dist/src/cli/client.d.ts +15 -0
  148. package/dist/src/cli/client.js +122 -0
  149. package/dist/src/cli/commands.d.ts +14 -0
  150. package/dist/src/cli/commands.js +253 -0
  151. package/dist/src/cli/main.d.ts +1 -0
  152. package/dist/src/cli/main.js +80 -0
  153. package/dist/src/cli/render.d.ts +8 -0
  154. package/dist/src/cli/render.js +186 -0
  155. package/dist/src/cli/runtime-arguments.d.ts +73 -0
  156. package/dist/src/cli/runtime-arguments.js +248 -0
  157. package/dist/src/cli/runtime-directory.d.ts +4 -0
  158. package/dist/src/cli/runtime-directory.js +25 -0
  159. package/dist/src/cli/toolchain.d.ts +3 -0
  160. package/dist/src/cli/toolchain.js +74 -0
  161. package/dist/src/cli/usage.d.ts +4 -0
  162. package/dist/src/cli/usage.js +124 -0
  163. package/dist/src/cli/validate.d.ts +38 -0
  164. package/dist/src/cli/validate.js +116 -0
  165. package/dist/src/cli/watch-board-view.d.ts +22 -0
  166. package/dist/src/cli/watch-board-view.js +128 -0
  167. package/dist/src/cli/watch-board.d.ts +15 -0
  168. package/dist/src/cli/watch-board.js +174 -0
  169. package/dist/src/cli/watch-element.d.ts +11 -0
  170. package/dist/src/cli/watch-element.js +6 -0
  171. package/dist/src/cli/watch-model.d.ts +29 -0
  172. package/dist/src/cli/watch-model.js +261 -0
  173. package/dist/src/cli/watch-navigation.d.ts +9 -0
  174. package/dist/src/cli/watch-navigation.js +40 -0
  175. package/dist/src/cli/watch-page.d.ts +1 -0
  176. package/dist/src/cli/watch-page.js +272 -0
  177. package/dist/src/cli/watch-paths.d.ts +2 -0
  178. package/dist/src/cli/watch-paths.js +52 -0
  179. package/dist/src/cli/watch-phases.d.ts +7 -0
  180. package/dist/src/cli/watch-phases.js +148 -0
  181. package/dist/src/cli/watch-reads.d.ts +28 -0
  182. package/dist/src/cli/watch-reads.js +244 -0
  183. package/dist/src/cli/watch-render.d.ts +139 -0
  184. package/dist/src/cli/watch-render.js +95 -0
  185. package/dist/src/cli/watch-server.d.ts +10 -0
  186. package/dist/src/cli/watch-server.js +176 -0
  187. package/dist/src/cli/watch-stream.d.ts +11 -0
  188. package/dist/src/cli/watch-stream.js +128 -0
  189. package/dist/src/cli/watch-turn.d.ts +29 -0
  190. package/dist/src/cli/watch-turn.js +130 -0
  191. package/dist/src/cli/watch-view.d.ts +39 -0
  192. package/dist/src/cli/watch-view.js +223 -0
  193. package/dist/src/cli.d.ts +2 -0
  194. package/dist/src/cli.js +62 -0
  195. package/dist/src/daemon/claude-turn.d.ts +28 -0
  196. package/dist/src/daemon/claude-turn.js +135 -0
  197. package/dist/src/daemon/claude-worker.d.ts +26 -0
  198. package/dist/src/daemon/claude-worker.js +224 -0
  199. package/dist/src/daemon/codex-stream.d.ts +4 -0
  200. package/dist/src/daemon/codex-stream.js +113 -0
  201. package/dist/src/daemon/daemon.d.ts +46 -0
  202. package/dist/src/daemon/daemon.js +186 -0
  203. package/dist/src/daemon/delivery-router.d.ts +10 -0
  204. package/dist/src/daemon/delivery-router.js +34 -0
  205. package/dist/src/daemon/github-calls.d.ts +29 -0
  206. package/dist/src/daemon/github-calls.js +127 -0
  207. package/dist/src/daemon/github-issue-methods.d.ts +3 -0
  208. package/dist/src/daemon/github-issue-methods.js +99 -0
  209. package/dist/src/daemon/github-issue-privacy.d.ts +6 -0
  210. package/dist/src/daemon/github-issue-privacy.js +131 -0
  211. package/dist/src/daemon/github-merge.d.ts +18 -0
  212. package/dist/src/daemon/github-merge.js +259 -0
  213. package/dist/src/daemon/github-methods.d.ts +5 -0
  214. package/dist/src/daemon/github-methods.js +198 -0
  215. package/dist/src/daemon/github-operation.d.ts +38 -0
  216. package/dist/src/daemon/github-operation.js +57 -0
  217. package/dist/src/daemon/github-worker.d.ts +17 -0
  218. package/dist/src/daemon/github-worker.js +281 -0
  219. package/dist/src/daemon/host-environment.d.ts +8 -0
  220. package/dist/src/daemon/host-environment.js +14 -0
  221. package/dist/src/daemon/issue-queue.d.ts +9 -0
  222. package/dist/src/daemon/issue-queue.js +163 -0
  223. package/dist/src/daemon/notify-message.d.ts +14 -0
  224. package/dist/src/daemon/notify-message.js +48 -0
  225. package/dist/src/daemon/notify.d.ts +12 -0
  226. package/dist/src/daemon/notify.js +161 -0
  227. package/dist/src/daemon/operation-journal.d.ts +42 -0
  228. package/dist/src/daemon/operation-journal.js +53 -0
  229. package/dist/src/daemon/ticket-registration.d.ts +33 -0
  230. package/dist/src/daemon/ticket-registration.js +177 -0
  231. package/dist/src/daemon/ticket-source.d.ts +17 -0
  232. package/dist/src/daemon/ticket-source.js +36 -0
  233. package/dist/src/daemon/work-tree.d.ts +26 -0
  234. package/dist/src/daemon/work-tree.js +206 -0
  235. package/dist/src/effect-authorization.d.ts +21 -0
  236. package/dist/src/effect-authorization.js +14 -0
  237. package/dist/src/execution-pin.d.ts +4 -0
  238. package/dist/src/execution-pin.js +68 -0
  239. package/dist/src/host/start-delivery.d.ts +41 -0
  240. package/dist/src/host/start-delivery.js +68 -0
  241. package/dist/src/host/step-bridge-host.d.ts +79 -0
  242. package/dist/src/host/step-bridge-host.js +205 -0
  243. package/dist/src/host/step-claims.d.ts +31 -0
  244. package/dist/src/host/step-claims.js +85 -0
  245. package/dist/src/host/world-host.d.ts +21 -0
  246. package/dist/src/host/world-host.js +51 -0
  247. package/dist/src/host/world-reconciliation.d.ts +37 -0
  248. package/dist/src/host/world-reconciliation.js +75 -0
  249. package/dist/src/host/world-runs.d.ts +14 -0
  250. package/dist/src/host/world-runs.js +61 -0
  251. package/dist/src/operation-identity.d.ts +7 -0
  252. package/dist/src/operation-identity.js +59 -0
  253. package/dist/src/protocol.d.ts +35 -0
  254. package/dist/src/protocol.js +64 -0
  255. package/dist/src/resource-files.d.ts +1 -0
  256. package/dist/src/resource-files.js +29 -0
  257. package/dist/src/service/changes.d.ts +11 -0
  258. package/dist/src/service/changes.js +32 -0
  259. package/dist/src/service/decision-handler.d.ts +9 -0
  260. package/dist/src/service/decision-handler.js +233 -0
  261. package/dist/src/service/event-handler.d.ts +10 -0
  262. package/dist/src/service/event-handler.js +70 -0
  263. package/dist/src/service/expiry.d.ts +13 -0
  264. package/dist/src/service/expiry.js +53 -0
  265. package/dist/src/service/gateway.d.ts +21 -0
  266. package/dist/src/service/gateway.js +120 -0
  267. package/dist/src/service/registry.d.ts +40 -0
  268. package/dist/src/service/registry.js +13 -0
  269. package/dist/src/service/replies.d.ts +26 -0
  270. package/dist/src/service/replies.js +56 -0
  271. package/dist/src/service/run-handlers.d.ts +4 -0
  272. package/dist/src/service/run-handlers.js +271 -0
  273. package/dist/src/service/service.d.ts +58 -0
  274. package/dist/src/service/service.js +212 -0
  275. package/dist/src/service/submission-handler.d.ts +4 -0
  276. package/dist/src/service/submission-handler.js +206 -0
  277. package/dist/src/service/transport.d.ts +16 -0
  278. package/dist/src/service/transport.js +141 -0
  279. package/dist/src/service/worker-port.d.ts +85 -0
  280. package/dist/src/service/worker-port.js +126 -0
  281. package/dist/src/step-bridge.d.ts +57 -0
  282. package/dist/src/step-bridge.js +4 -0
  283. package/dist/src/steps/decision-gate.d.ts +2 -0
  284. package/dist/src/steps/decision-gate.js +8 -0
  285. package/dist/src/steps/load-cycle.d.ts +10 -0
  286. package/dist/src/steps/load-cycle.js +11 -0
  287. package/dist/src/steps/protected-effect.d.ts +2 -0
  288. package/dist/src/steps/protected-effect.js +8 -0
  289. package/dist/src/storage/decision-rows.d.ts +54 -0
  290. package/dist/src/storage/decision-rows.js +72 -0
  291. package/dist/src/storage/decision-snapshots.d.ts +17 -0
  292. package/dist/src/storage/decision-snapshots.js +25 -0
  293. package/dist/src/storage/domain-changes.d.ts +48 -0
  294. package/dist/src/storage/domain-changes.js +213 -0
  295. package/dist/src/storage/domain-rows.d.ts +85 -0
  296. package/dist/src/storage/domain-rows.js +129 -0
  297. package/dist/src/storage/domain-schema.d.ts +32 -0
  298. package/dist/src/storage/domain-schema.js +193 -0
  299. package/dist/src/storage/effect-changes.d.ts +5 -0
  300. package/dist/src/storage/effect-changes.js +105 -0
  301. package/dist/src/storage/effect-rows.d.ts +67 -0
  302. package/dist/src/storage/effect-rows.js +74 -0
  303. package/dist/src/storage/effect-schema.d.ts +1 -0
  304. package/dist/src/storage/effect-schema.js +59 -0
  305. package/dist/src/storage/statements.d.ts +9 -0
  306. package/dist/src/storage/statements.js +8 -0
  307. package/dist/src/submission.d.ts +42 -0
  308. package/dist/src/submission.js +71 -0
  309. package/dist/src/turn-profile.d.ts +13 -0
  310. package/dist/src/turn-profile.js +100 -0
  311. package/dist/src/workflow-admission.d.ts +45 -0
  312. package/dist/src/workflow-admission.js +151 -0
  313. package/dist/src/workflow-contracts.d.ts +27 -0
  314. package/dist/src/workflow-contracts.js +88 -0
  315. package/dist/src/workflow-declaration.d.ts +11 -0
  316. package/dist/src/workflow-declaration.js +57 -0
  317. package/dist/src/workflow-resources.d.ts +8 -0
  318. package/dist/src/workflow-resources.js +14 -0
  319. package/dist/src/workflows.d.ts +5 -0
  320. package/dist/src/workflows.js +3 -0
  321. package/dist/tools/compile-workflows.d.ts +1 -0
  322. package/dist/tools/compile-workflows.js +33 -0
  323. package/dist/tools/self-host-processes.d.ts +10 -0
  324. package/dist/tools/self-host-processes.js +151 -0
  325. package/dist/tools/self-host-workflows.d.ts +15 -0
  326. package/dist/tools/self-host-workflows.js +78 -0
  327. package/dist/tools/self-host.d.ts +1 -0
  328. package/dist/tools/self-host.js +261 -0
  329. package/dist/tools/self-update-host.d.ts +6 -0
  330. package/dist/tools/self-update-host.js +41 -0
  331. package/dist/tools/self-update.d.ts +10 -0
  332. package/dist/tools/self-update.js +105 -0
  333. package/dist/tools/workflow-manifest.d.ts +3 -0
  334. package/dist/tools/workflow-manifest.js +34 -0
  335. package/dist/workflows/develop-prd.d.ts +7 -0
  336. package/dist/workflows/develop-prd.js +97 -0
  337. package/dist/workflows/develop-ticket.d.ts +15 -0
  338. package/dist/workflows/develop-ticket.js +301 -0
  339. package/dist/workflows/issue-labels.d.ts +14 -0
  340. package/dist/workflows/issue-labels.js +36 -0
  341. package/package.json +82 -75
  342. package/.DS_Store +0 -0
  343. package/.aider.chat.history.md +0 -16978
  344. package/.aider.input.history +0 -15
  345. package/.aider.tags.cache.v3/cache.db +0 -0
  346. package/.aider.tags.cache.v3/cache.db-shm +0 -0
  347. package/.aider.tags.cache.v3/cache.db-wal +0 -0
  348. package/.cursorrules +0 -77
  349. package/.github/workflows/auto-release.yml +0 -83
  350. package/.github/workflows/ci.yml +0 -32
  351. package/.github/workflows/npm-publish.yml +0 -34
  352. package/.gitignore +0 -67
  353. package/.husky/_/.gitignore +0 -1
  354. package/.husky/_/applypatch-msg +0 -2
  355. package/.husky/_/commit-msg +0 -2
  356. package/.husky/_/h +0 -22
  357. package/.husky/_/husky.sh +0 -9
  358. package/.husky/_/post-applypatch +0 -2
  359. package/.husky/_/post-checkout +0 -2
  360. package/.husky/_/post-commit +0 -2
  361. package/.husky/_/post-merge +0 -2
  362. package/.husky/_/post-rewrite +0 -2
  363. package/.husky/_/pre-applypatch +0 -2
  364. package/.husky/_/pre-auto-gc +0 -2
  365. package/.husky/_/pre-commit +0 -2
  366. package/.husky/_/pre-merge-commit +0 -2
  367. package/.husky/_/pre-push +0 -2
  368. package/.husky/_/pre-rebase +0 -2
  369. package/.husky/_/prepare-commit-msg +0 -2
  370. package/.husky/pre-commit +0 -1
  371. package/.husky/pre-push +0 -1
  372. package/.prettierrc.json +0 -7
  373. package/.tool-versions +0 -2
  374. package/SECURITY.md +0 -15
  375. package/cloving.json +0 -67
  376. package/dist/abstract_gpt/index.js +0 -55
  377. package/dist/cloving_gpt/adapters/Adapter.js +0 -2
  378. package/dist/cloving_gpt/adapters/azureopenai.js +0 -69
  379. package/dist/cloving_gpt/adapters/claude.js +0 -128
  380. package/dist/cloving_gpt/adapters/gemini.js +0 -135
  381. package/dist/cloving_gpt/adapters/gpt4all.js +0 -29
  382. package/dist/cloving_gpt/adapters/index.js +0 -2
  383. package/dist/cloving_gpt/adapters/mistral.js +0 -128
  384. package/dist/cloving_gpt/adapters/ollama.js +0 -128
  385. package/dist/cloving_gpt/adapters/openai.js +0 -100
  386. package/dist/cloving_gpt/index.js +0 -192
  387. package/dist/commands/analyze.js +0 -47
  388. package/dist/commands/chat.js +0 -14
  389. package/dist/commands/check.js +0 -7
  390. package/dist/commands/commit.js +0 -44
  391. package/dist/commands/config.js +0 -167
  392. package/dist/commands/describe.js +0 -235
  393. package/dist/commands/generate/code.js +0 -21
  394. package/dist/commands/generate/commit.js +0 -11
  395. package/dist/commands/generate/context.js +0 -82
  396. package/dist/commands/generate/docs.js +0 -11
  397. package/dist/commands/generate/documentation.js +0 -11
  398. package/dist/commands/generate/fizzbuzz.js +0 -35
  399. package/dist/commands/generate/init.js +0 -15
  400. package/dist/commands/generate/review.js +0 -11
  401. package/dist/commands/generate/sh.js +0 -95
  402. package/dist/commands/generate/shell.js +0 -11
  403. package/dist/commands/generate/unit_tests.js +0 -11
  404. package/dist/commands/init.js +0 -13
  405. package/dist/commands/models.js +0 -22
  406. package/dist/commands/project/build.js +0 -88
  407. package/dist/commands/project/complete.js +0 -12
  408. package/dist/commands/project/init.js +0 -82
  409. package/dist/commands/project/plan.js +0 -108
  410. package/dist/commands/proxy.js +0 -11
  411. package/dist/commands/review.js +0 -50
  412. package/dist/commands/tokens.js +0 -75
  413. package/dist/commands/unit_tests.js +0 -150
  414. package/dist/commands/update.js +0 -7
  415. package/dist/file2.js +0 -4
  416. package/dist/index.js +0 -134
  417. package/dist/managers/BlockManager.js +0 -120
  418. package/dist/managers/ChatManager.js +0 -653
  419. package/dist/managers/ChunkManager.js +0 -32
  420. package/dist/managers/CodeManager.js +0 -185
  421. package/dist/managers/CommitManager.js +0 -64
  422. package/dist/managers/DocsManager.js +0 -88
  423. package/dist/managers/DocumentationManager.js +0 -114
  424. package/dist/managers/InitManager.js +0 -230
  425. package/dist/managers/ProxyManager.js +0 -210
  426. package/dist/managers/ReviewManager.js +0 -131
  427. package/dist/managers/ShellManager.js +0 -163
  428. package/dist/managers/StreamManager.js +0 -308
  429. package/dist/managers/UnitTestManager.js +0 -243
  430. package/dist/managers/src/managers/ProxyManager.js +0 -1
  431. package/dist/newfile.js +0 -2
  432. package/dist/package.json +0 -86
  433. package/dist/utils/command_utils.js +0 -384
  434. package/dist/utils/config_utils.js +0 -249
  435. package/dist/utils/gitUtils.js +0 -42
  436. package/dist/utils/git_utils.js +0 -217
  437. package/dist/utils/modelUtils.js +0 -7
  438. package/dist/utils/model_utils.js +0 -7
  439. package/dist/utils/prompt_utils.js +0 -333
  440. package/dist/utils/prompts/CODEGEN_COULDNT_APPLY.md +0 -5
  441. package/dist/utils/prompts/CODEGEN_EXAMPLES.md +0 -82
  442. package/dist/utils/prompts/CODEGEN_INSTRUCTIONS.md +0 -43
  443. package/dist/utils/prompts/DOCS_INSTRUCTIONS.md +0 -9
  444. package/dist/utils/prompts/INIT_INSTRUCTIONS.md +0 -132
  445. package/dist/utils/prompts/REVIEW_INSTRUCTIONS.md +0 -49
  446. package/dist/utils/prompts/SHELL_INSTRUCTIONS.md +0 -15
  447. package/dist/utils/prompts/SPECIAL_FILES.md +0 -66
  448. package/dist/utils/prompts/index.js +0 -27
  449. package/dist/utils/string_utils.js +0 -505
  450. package/dist/utils/types.js +0 -2
  451. package/jest.config.js +0 -11
  452. package/src/cloving_gpt/adapters/azureopenai.ts +0 -83
  453. package/src/cloving_gpt/adapters/claude.ts +0 -140
  454. package/src/cloving_gpt/adapters/gemini.ts +0 -146
  455. package/src/cloving_gpt/adapters/index.ts +0 -43
  456. package/src/cloving_gpt/adapters/mistral.ts +0 -142
  457. package/src/cloving_gpt/adapters/ollama.ts +0 -136
  458. package/src/cloving_gpt/adapters/openai.ts +0 -113
  459. package/src/cloving_gpt/index.ts +0 -229
  460. package/src/commands/chat.ts +0 -12
  461. package/src/commands/config.ts +0 -192
  462. package/src/commands/generate/code.ts +0 -18
  463. package/src/commands/generate/commit.ts +0 -9
  464. package/src/commands/generate/context.ts +0 -93
  465. package/src/commands/generate/docs.ts +0 -9
  466. package/src/commands/generate/review.ts +0 -9
  467. package/src/commands/generate/shell.ts +0 -9
  468. package/src/commands/generate/unit_tests.ts +0 -9
  469. package/src/commands/init.ts +0 -9
  470. package/src/commands/models.ts +0 -21
  471. package/src/commands/proxy.ts +0 -9
  472. package/src/commands/tokens.ts +0 -82
  473. package/src/index.ts +0 -197
  474. package/src/managers/BlockManager.ts +0 -126
  475. package/src/managers/ChatManager.ts +0 -755
  476. package/src/managers/ChunkManager.ts +0 -31
  477. package/src/managers/CodeManager.ts +0 -226
  478. package/src/managers/CommitManager.ts +0 -71
  479. package/src/managers/DocsManager.ts +0 -101
  480. package/src/managers/InitManager.ts +0 -263
  481. package/src/managers/ProxyManager.ts +0 -240
  482. package/src/managers/ReviewManager.ts +0 -154
  483. package/src/managers/ShellManager.ts +0 -172
  484. package/src/managers/StreamManager.ts +0 -353
  485. package/src/managers/UnitTestManager.ts +0 -293
  486. package/src/utils/config_utils.ts +0 -271
  487. package/src/utils/git_utils.ts +0 -230
  488. package/src/utils/model_utils.ts +0 -3
  489. package/src/utils/prompt_utils.ts +0 -375
  490. package/src/utils/prompts/CODEGEN_COULDNT_APPLY.md +0 -5
  491. package/src/utils/prompts/CODEGEN_EXAMPLES.md +0 -82
  492. package/src/utils/prompts/CODEGEN_INSTRUCTIONS.md +0 -43
  493. package/src/utils/prompts/DOCS_INSTRUCTIONS.md +0 -9
  494. package/src/utils/prompts/INIT_INSTRUCTIONS.md +0 -132
  495. package/src/utils/prompts/REVIEW_INSTRUCTIONS.md +0 -49
  496. package/src/utils/prompts/SHELL_INSTRUCTIONS.md +0 -15
  497. package/src/utils/prompts/SPECIAL_FILES.md +0 -66
  498. package/src/utils/prompts/index.ts +0 -37
  499. package/src/utils/string_utils.ts +0 -552
  500. package/src/utils/types.ts +0 -127
  501. package/tests/commands/generate/unit_tests.test.ts +0 -27
  502. package/tests/utils/git_utils.test.ts +0 -116
  503. package/tests/utils/model_utils.test.ts +0 -27
  504. package/tests/utils/prompt_utils.test.ts +0 -33
  505. package/tests/utils/string_utils.test.ts +0 -560
  506. package/tsconfig.json +0 -14
  507. package/yarn.lock +0 -5823
@@ -1,192 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const cli_highlight_1 = __importDefault(require("cli-highlight"));
7
- const process_1 = __importDefault(require("process"));
8
- const colors_1 = __importDefault(require("colors"));
9
- const prompts_1 = require("@inquirer/prompts");
10
- const axios_1 = __importDefault(require("axios"));
11
- const claude_1 = require("./adapters/claude");
12
- const openai_1 = require("./adapters/openai");
13
- const mistral_1 = require("./adapters/mistral");
14
- const ollama_1 = require("./adapters/ollama");
15
- const gemini_1 = require("./adapters/gemini");
16
- const azureopenai_1 = require("./adapters/azureopenai");
17
- const string_utils_1 = require("../utils/string_utils");
18
- const config_utils_1 = require("../utils/config_utils");
19
- class ClovingGPT {
20
- constructor(options) {
21
- const { model: partialModel } = options;
22
- const config = (0, config_utils_1.getConfig)(options);
23
- if (!config || !config.models) {
24
- console.log('No cloving configuration found. Please run: cloving config');
25
- process_1.default.exit(1);
26
- }
27
- const primaryModel = (0, config_utils_1.getPrimaryModel)(partialModel);
28
- if (!primaryModel) {
29
- console.log('No AI API models found in the cloving configuration. Please run: cloving config');
30
- process_1.default.exit(1);
31
- }
32
- const { provider, model, config: modelConfig } = primaryModel;
33
- this.apiKey = modelConfig.apiKey;
34
- this.temperature = options.temperature || modelConfig.temperature || 0.2;
35
- this.silent = options.silent || modelConfig.silent || false;
36
- this.stream = options.stream || false;
37
- this.timeout = options.timeout || 60000; // Default timeout of 60 seconds
38
- switch (provider) {
39
- case 'claude':
40
- this.adapter = new claude_1.ClaudeAdapter(model);
41
- break;
42
- case 'openai':
43
- this.adapter = new openai_1.OpenAIAdapter(model);
44
- break;
45
- case 'mistral':
46
- this.adapter = new mistral_1.MistralAdapter(model);
47
- break;
48
- case 'ollama':
49
- this.adapter = new ollama_1.OllamaAdapter(model);
50
- break;
51
- case 'gemini':
52
- this.adapter = new gemini_1.GeminiAdapter(model);
53
- break;
54
- case 'azureopenai':
55
- if (!modelConfig.endpoint) {
56
- throw new Error('Azure OpenAI endpoint not configured');
57
- }
58
- this.adapter = new azureopenai_1.AzureOpenAIAdapter(model, modelConfig.endpoint);
59
- break;
60
- default:
61
- throw new Error(`Unsupported provider: ${provider}`);
62
- }
63
- }
64
- async reviewPrompt(prompt, messages, endpoint) {
65
- if (this.silent)
66
- return prompt;
67
- const fullPrompt = messages
68
- .map((m) => (m.role === 'user' ? `# Task\n\n${m.content}` : m.content))
69
- .join('\n\n');
70
- const tokenCount = Math.ceil(fullPrompt.length / 4).toLocaleString();
71
- const reviewPrompt = await (0, prompts_1.confirm)({
72
- message: `Do you want to review the ~${tokenCount} token prompt before sending it to ${endpoint}?`,
73
- default: true,
74
- });
75
- if (reviewPrompt) {
76
- (0, string_utils_1.parseMarkdownInstructions)(fullPrompt).map((code) => {
77
- if (code.trim().startsWith('```')) {
78
- const lines = code.split('\n');
79
- const language = code.match(/```(\w+)/)?.[1] || 'default';
80
- console.log(lines[0]);
81
- try {
82
- if (language === 'default') {
83
- console.log((0, cli_highlight_1.default)(lines.slice(1, -1).join('\n')));
84
- }
85
- else {
86
- console.log((0, cli_highlight_1.default)(lines.slice(1, -1).join('\n'), { language }));
87
- }
88
- }
89
- catch (error) {
90
- // don't highlight if it fails
91
- console.log(lines.slice(1, -1).join('\n'));
92
- }
93
- console.log(lines.slice(-1)[0]);
94
- }
95
- else {
96
- console.log((0, cli_highlight_1.default)(code, { language: 'markdown' }));
97
- }
98
- });
99
- const confirmPrompt = await (0, prompts_1.confirm)({
100
- message: `Are you sure you want to continue?`,
101
- default: true,
102
- });
103
- if (!confirmPrompt) {
104
- process_1.default.exit(1);
105
- }
106
- }
107
- return prompt;
108
- }
109
- async streamText(request) {
110
- request.stream = true;
111
- request.temperature || (request.temperature = this.temperature);
112
- const endpoint = this.adapter.getEndpoint(this.stream);
113
- const payload = this.adapter.getPayload(request, this.stream);
114
- const headers = this.adapter.getHeaders(this.apiKey);
115
- const reviewedPrompt = await this.reviewPrompt(request.prompt, request.messages || [], endpoint);
116
- if (reviewedPrompt === null) {
117
- throw new Error('Operation cancelled by user');
118
- }
119
- request.prompt = reviewedPrompt;
120
- const maxRetries = 5;
121
- let attempt = 0;
122
- let delay = 1000; // Initial delay of 1 second
123
- while (attempt < maxRetries) {
124
- try {
125
- return await (0, axios_1.default)({
126
- method: 'post',
127
- url: endpoint,
128
- data: payload,
129
- headers: headers,
130
- responseType: 'stream',
131
- timeout: this.timeout,
132
- });
133
- }
134
- catch (err) {
135
- const error = err;
136
- if (error.response && error.response.status === 429) {
137
- attempt++;
138
- const tokenCount = payload.messages
139
- .reduce((acc, message) => acc + Math.ceil(message.content.length / 4), 0)
140
- .toLocaleString();
141
- console.warn(`${colors_1.default.red.bold('ERROR')} Rate limit error for this ${tokenCount} token prompt. Possibly past the token limit for this AI API. Try including fewer code files. Retrying in ${delay / 1000} seconds... (Attempt ${attempt} of ${maxRetries})`);
142
- await new Promise((resolve) => setTimeout(resolve, delay));
143
- delay *= 2; // Exponential backoff
144
- }
145
- else {
146
- throw error;
147
- }
148
- }
149
- }
150
- throw new Error('Max retries exceeded');
151
- }
152
- async generateText(request) {
153
- request.temperature || (request.temperature = this.temperature);
154
- const endpoint = this.adapter.getEndpoint(this.stream);
155
- const payload = this.adapter.getPayload(request, this.stream);
156
- const headers = this.adapter.getHeaders(this.apiKey);
157
- const reviewedPrompt = await this.reviewPrompt(request.prompt, request.messages || [], endpoint);
158
- if (reviewedPrompt === null) {
159
- throw new Error('Operation cancelled by user');
160
- }
161
- request.prompt = reviewedPrompt;
162
- try {
163
- const response = await axios_1.default.post(endpoint, payload, { headers });
164
- return this.adapter.extractResponse(response.data);
165
- }
166
- catch (err) {
167
- const error = err;
168
- let errorMessage = 'An error occurred while communicating with the AI server';
169
- if (error.response) {
170
- // The request was made and the server responded with a status code
171
- // that falls out of the range of 2xx
172
- errorMessage = `Server responded with status ${error.response.status}: ${error.response.statusText}`;
173
- }
174
- else if (error.request) {
175
- // The request was made but no response was received
176
- errorMessage = 'No response received from the server';
177
- }
178
- else {
179
- // Something happened in setting up the request that triggered an Error
180
- errorMessage = error.message || 'Unknown error occurred';
181
- }
182
- console.error(`${colors_1.default.red.bold('ERROR')} ${errorMessage}\n` +
183
- `Endpoint: ${this.adapter.getEndpoint(this.stream)}\n` +
184
- `Details: ${colors_1.default.yellow(JSON.stringify(error.response?.data || {}, null, 2))}\n`);
185
- throw new Error(errorMessage);
186
- }
187
- }
188
- convertStream(data) {
189
- return this.adapter.convertStream(data);
190
- }
191
- }
192
- exports.default = ClovingGPT;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const readline_1 = __importDefault(require("readline"));
7
- const child_process_1 = require("child_process");
8
- const git_utils_1 = require("../utils/git_utils");
9
- const model_utils_1 = require("../utils/model_utils");
10
- const cloving_gpt_1 = __importDefault(require("../cloving_gpt"));
11
- const analyze = async () => {
12
- try {
13
- // Define the prompt for analysis
14
- const gitDiff = await (0, git_utils_1.getGitDiff)();
15
- const model = (0, model_utils_1.getModel)();
16
- const prompt = `Explain why the change is being made and document a description of these changes.
17
- Also list any bugs in the new code as well as recommended fixes for those bugs with code examples.
18
-
19
- ${gitDiff}`;
20
- // Instantiate ClovingGPT and get the analysis
21
- const gpt = new cloving_gpt_1.default();
22
- const analysis = await gpt.generateText({ prompt });
23
- // Print the analysis to the console
24
- console.log(analysis);
25
- // Prompt the user to copy the analysis to the clipboard
26
- const rl = readline_1.default.createInterface({
27
- input: process.stdin,
28
- output: process.stdout
29
- });
30
- rl.question('Do you want to copy the analysis to the clipboard? [Y/n] ', (answer) => {
31
- if (answer.toLowerCase() === 'y' || answer === '') {
32
- try {
33
- (0, child_process_1.execFileSync)('pbcopy', { input: analysis });
34
- console.log('Analysis copied to clipboard');
35
- }
36
- catch (error) {
37
- console.error('Error: pbcopy command not found. Unable to copy to clipboard.');
38
- }
39
- }
40
- rl.close();
41
- });
42
- }
43
- catch (error) {
44
- console.error('Error during analysis:', error.message);
45
- }
46
- };
47
- exports.default = analyze;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ChatManager_1 = __importDefault(require("../managers/ChatManager"));
7
- const config_utils_1 = require("../utils/config_utils");
8
- const chat = async (options) => {
9
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
10
- options.stream = true;
11
- const chatManager = new ChatManager_1.default(options);
12
- await chatManager.initialize();
13
- };
14
- exports.default = chat;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (options) => {
4
- if (options.verbose)
5
- console.log('Verbose mode enabled');
6
- console.log('Checking something...');
7
- };
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- const child_process_1 = require("child_process");
9
- const git_utils_1 = require("../utils/git_utils");
10
- const string_utils_1 = require("../utils/string_utils");
11
- const config_utils_1 = require("../utils/config_utils");
12
- const cloving_gpt_1 = __importDefault(require("../cloving_gpt"));
13
- const generateAndCommitMessage = async (options) => {
14
- options.silent = (0, config_utils_1.getConfig)(options).globalSilent || false;
15
- const gpt = new cloving_gpt_1.default(options);
16
- try {
17
- // Generate the prompt for commit message
18
- const prompt = (0, git_utils_1.generateCommitMessagePrompt)();
19
- // Instantiate ClovingGPT and get the commit message
20
- const rawCommitMessage = await gpt.generateText({ prompt });
21
- // Clean the commit message using extractMarkdown
22
- const commitMessage = (0, string_utils_1.extractMarkdown)(rawCommitMessage);
23
- // Write the commit message to a temporary file
24
- const tempCommitFilePath = path_1.default.join('.git', 'SUGGESTED_COMMIT_EDITMSG');
25
- fs_1.default.writeFileSync(tempCommitFilePath, commitMessage);
26
- // Commit the changes using the generated commit message
27
- try {
28
- (0, child_process_1.execFileSync)('git', ['commit', '-a', '--edit', '--file', tempCommitFilePath], { stdio: 'inherit' });
29
- }
30
- catch (commitError) {
31
- // If commit is canceled (non-zero exit), handle it here
32
- console.log('Commit was canceled or failed.');
33
- }
34
- // Remove the temporary file using fs
35
- fs_1.default.unlink(tempCommitFilePath, (err) => {
36
- if (err)
37
- throw err;
38
- });
39
- }
40
- catch (error) {
41
- console.error('Could not generate commit message');
42
- }
43
- };
44
- exports.default = generateAndCommitMessage;
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.config = void 0;
4
- const config_utils_1 = require("../utils/config_utils");
5
- const prompt_utils_1 = require("../utils/prompt_utils");
6
- // Add this type definition at the top of the file
7
- const prompts_1 = require("@inquirer/prompts");
8
- /**
9
- * Configures the AI models by prompting the user for various settings.
10
- *
11
- * @returns {Promise<void>} A promise that resolves when the configuration is complete.
12
- */
13
- const config = async () => {
14
- let currentConfig = (0, config_utils_1.getConfig)({});
15
- // Ensure models are initialized properly
16
- if (!currentConfig.models) {
17
- currentConfig.models = {};
18
- }
19
- const models = await (0, prompt_utils_1.fetchModels)();
20
- if (models.length === 0) {
21
- console.error('No models available.');
22
- throw new Error('No models available');
23
- }
24
- let continueConfig = true;
25
- while (continueConfig) {
26
- const providers = [...new Set(models.map((model) => model.split(':')[0]))];
27
- /**
28
- * Prompts the user to select a provider from the available models.
29
- */
30
- const selectedProvider = await (0, prompts_1.select)({
31
- message: 'Select a provider:',
32
- choices: providers.map((provider) => ({ name: provider, value: provider })),
33
- });
34
- const providerModels = models.filter((model) => model.startsWith(selectedProvider));
35
- const modelCategories = [...new Set(providerModels.map((model) => model.split(':')[1]))];
36
- /**
37
- * Prompts the user to select a category from the selected provider's models.
38
- */
39
- const selectedCategory = await (0, prompts_1.select)({
40
- message: 'Select a category:',
41
- choices: modelCategories.map((category) => ({ name: category, value: category })),
42
- });
43
- const specificModels = providerModels.filter((model) => model.split(':')[1] === selectedCategory);
44
- /**
45
- * Prompts the user to select a specific model from the selected category.
46
- */
47
- const modelIndex = await (0, prompts_1.select)({
48
- message: "Select an AI model you'd like to use:",
49
- choices: specificModels.map((model, index) => ({ name: model, value: index })),
50
- pageSize: specificModels.length,
51
- });
52
- const selectedModel = specificModels[modelIndex];
53
- /**
54
- * Prompts the user to enter the API key for the selected model.
55
- */
56
- const apiKey = await (0, prompts_1.input)({
57
- message: `Enter your API key for ${selectedModel}: `,
58
- });
59
- const [provider, ...modelParts] = selectedModel?.split(':') || [];
60
- const model = modelParts.join(':');
61
- if (!currentConfig.models[provider]) {
62
- currentConfig.models[provider] = {};
63
- }
64
- /**
65
- * Prompts the user to set the selected model as the primary model.
66
- */
67
- const primary = await (0, prompts_1.confirm)({
68
- message: 'Set this model as the primary? Primary models are used by default if your prompt fits within its context window. You can configure backup models for larger prompts.',
69
- default: true,
70
- });
71
- /**
72
- * Prompts the user to enter the priority for the selected model.
73
- *
74
- * @returns {string} The priority value as a string.
75
- */
76
- const priority = await (0, prompts_1.input)({
77
- message: 'Enter the priority for this model (0-100). Higher priority AI APIs are chosen as long as the prompt fits its context window:',
78
- default: primary ? '100' : '0',
79
- validate: (input) => {
80
- const num = parseInt(input, 10);
81
- if (isNaN(num) || num < 0 || num > 100) {
82
- return 'Please enter a valid number between 0 and 100.';
83
- }
84
- return true;
85
- },
86
- });
87
- /**
88
- * Prompts the user to decide if they want to review all prompts before they are sent to the selected model.
89
- */
90
- const review = await (0, prompts_1.confirm)({
91
- message: `Do you want to review all prompts before they are sent to ${selectedModel}?`,
92
- default: false,
93
- });
94
- /**
95
- * Prompts the user to decide if they trust the selected model with sensitive information.
96
- */
97
- const trust = await (0, prompts_1.confirm)({
98
- message: `Do you trust ${selectedModel} with sensitive information?`,
99
- default: true,
100
- });
101
- /**
102
- * Prompts the user to enter the temperature setting for the selected model.
103
- *
104
- * @returns {string} The temperature value as a string.
105
- */
106
- const temperature = await (0, prompts_1.input)({
107
- message: `Enter the temperature for ${selectedModel} (0.0 - 1.0): [0.2]`,
108
- default: '0.2',
109
- validate: (value) => {
110
- const num = parseFloat(value);
111
- if (isNaN(num) || num < 0 || num > 1) {
112
- return 'Please enter a valid number between 0.0 and 1.0.';
113
- }
114
- return true;
115
- },
116
- });
117
- const parsedTemperature = parseFloat(temperature);
118
- /**
119
- * Constructs the model configuration object.
120
- */
121
- let modelConfig = {
122
- apiKey,
123
- primary,
124
- priority: parseInt(priority, 10),
125
- silent: !review,
126
- trust,
127
- temperature: parsedTemperature,
128
- };
129
- if (provider === 'azureopenai') {
130
- /**
131
- * Prompts the user to enter the Azure OpenAI endpoint URL.
132
- */
133
- const endpoint = await (0, prompts_1.input)({
134
- message: 'Enter the Azure OpenAI endpoint URL:',
135
- validate: (value) => {
136
- if (!value.startsWith('https://')) {
137
- return 'Please enter a valid HTTPS URL';
138
- }
139
- return true;
140
- },
141
- });
142
- modelConfig.endpoint = endpoint;
143
- }
144
- currentConfig.models[provider][model] = modelConfig;
145
- if (primary) {
146
- // Ensure only one primary model
147
- for (const p in currentConfig.models) {
148
- for (const m in currentConfig.models[p]) {
149
- if (p !== provider || m !== model) {
150
- currentConfig.models[p][m].primary = false;
151
- }
152
- }
153
- }
154
- }
155
- /**
156
- * Prompts the user to decide if they want to configure another model.
157
- */
158
- const anotherModel = await (0, prompts_1.confirm)({
159
- message: 'Do you want to configure another model?',
160
- default: true,
161
- });
162
- continueConfig = anotherModel;
163
- }
164
- (0, config_utils_1.saveConfig)(currentConfig);
165
- };
166
- exports.config = config;
167
- exports.default = exports.config;