@far-world-labs/verblets 0.2.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +86 -213
  2. package/dist/index.browser.js +74 -0
  3. package/dist/index.js +548 -0
  4. package/dist/shared-C6kPWghF.js +7806 -0
  5. package/package.json +32 -11
  6. package/.cursor/launch.json +0 -30
  7. package/.cursor/settings.json +0 -20
  8. package/.github/workflows/branch-protection.yml +0 -22
  9. package/.github/workflows/ci.yml +0 -165
  10. package/.husky/pre-commit +0 -4
  11. package/.prettierrc +0 -6
  12. package/.release-it.json +0 -12
  13. package/.vitest.config.examples.js +0 -12
  14. package/.vitest.config.js +0 -8
  15. package/.vscode/launch.json +0 -31
  16. package/AGENTS.md +0 -220
  17. package/DEVELOPING.md +0 -105
  18. package/docker-compose.yml +0 -7
  19. package/eslint.config.js +0 -80
  20. package/scripts/clear-redis.js +0 -74
  21. package/scripts/generate-chain/index.js +0 -111
  22. package/scripts/generate-lib/index.js +0 -68
  23. package/scripts/generate-test/index.js +0 -137
  24. package/scripts/generate-verblet/README.md +0 -17
  25. package/scripts/generate-verblet/index.js +0 -110
  26. package/scripts/run.sh +0 -15
  27. package/scripts/runner/index.js +0 -56
  28. package/scripts/simple-editor/README.md +0 -34
  29. package/scripts/simple-editor/index.js +0 -79
  30. package/scripts/summarize-files/index.js +0 -70
  31. package/src/chains/README.md +0 -30
  32. package/src/chains/anonymize/README.md +0 -21
  33. package/src/chains/anonymize/index.examples.js +0 -75
  34. package/src/chains/anonymize/index.js +0 -121
  35. package/src/chains/anonymize/index.spec.js +0 -78
  36. package/src/chains/bulk-central-tendency/index.examples.js +0 -138
  37. package/src/chains/bulk-central-tendency/index.js +0 -91
  38. package/src/chains/bulk-filter/README.md +0 -21
  39. package/src/chains/bulk-filter/index.examples.js +0 -22
  40. package/src/chains/bulk-filter/index.js +0 -58
  41. package/src/chains/bulk-filter/index.spec.js +0 -38
  42. package/src/chains/bulk-find/README.md +0 -16
  43. package/src/chains/bulk-find/index.examples.js +0 -20
  44. package/src/chains/bulk-find/index.js +0 -30
  45. package/src/chains/bulk-find/index.spec.js +0 -26
  46. package/src/chains/bulk-group/README.md +0 -23
  47. package/src/chains/bulk-group/index.examples.js +0 -18
  48. package/src/chains/bulk-group/index.js +0 -34
  49. package/src/chains/bulk-group/index.spec.js +0 -41
  50. package/src/chains/bulk-map/README.md +0 -43
  51. package/src/chains/bulk-map/index.examples.js +0 -17
  52. package/src/chains/bulk-map/index.js +0 -86
  53. package/src/chains/bulk-map/index.spec.js +0 -44
  54. package/src/chains/bulk-reduce/README.md +0 -12
  55. package/src/chains/bulk-reduce/index.examples.js +0 -15
  56. package/src/chains/bulk-reduce/index.js +0 -13
  57. package/src/chains/bulk-reduce/index.spec.js +0 -25
  58. package/src/chains/bulk-score/README.md +0 -16
  59. package/src/chains/bulk-score/bulk-score-result.json +0 -18
  60. package/src/chains/bulk-score/index.examples.js +0 -22
  61. package/src/chains/bulk-score/index.js +0 -133
  62. package/src/chains/bulk-score/index.spec.js +0 -30
  63. package/src/chains/category-samples/README.md +0 -61
  64. package/src/chains/category-samples/index.examples.js +0 -103
  65. package/src/chains/category-samples/index.js +0 -134
  66. package/src/chains/collect-terms/README.md +0 -12
  67. package/src/chains/collect-terms/index.examples.js +0 -16
  68. package/src/chains/collect-terms/index.js +0 -44
  69. package/src/chains/collect-terms/index.spec.js +0 -25
  70. package/src/chains/conversation/README.md +0 -26
  71. package/src/chains/conversation/index.examples.js +0 -398
  72. package/src/chains/conversation/index.js +0 -126
  73. package/src/chains/conversation/index.spec.js +0 -148
  74. package/src/chains/conversation/turn-policies.js +0 -93
  75. package/src/chains/conversation/turn-policies.md +0 -123
  76. package/src/chains/conversation/turn-policies.spec.js +0 -135
  77. package/src/chains/date/README.md +0 -12
  78. package/src/chains/date/index.examples.js +0 -47
  79. package/src/chains/date/index.js +0 -74
  80. package/src/chains/date/index.spec.js +0 -62
  81. package/src/chains/disambiguate/README.md +0 -22
  82. package/src/chains/disambiguate/disambiguate-meanings-result.json +0 -16
  83. package/src/chains/disambiguate/index.examples.js +0 -18
  84. package/src/chains/disambiguate/index.js +0 -92
  85. package/src/chains/disambiguate/index.spec.js +0 -25
  86. package/src/chains/dismantle/README.md +0 -67
  87. package/src/chains/dismantle/dismantle.examples.js +0 -27
  88. package/src/chains/dismantle/index.examples.js +0 -30
  89. package/src/chains/dismantle/index.js +0 -303
  90. package/src/chains/dismantle/index.spec.js +0 -32
  91. package/src/chains/expect/README.md +0 -171
  92. package/src/chains/expect/index.examples.js +0 -146
  93. package/src/chains/expect/index.js +0 -207
  94. package/src/chains/expect/index.spec.js +0 -324
  95. package/src/chains/filter-ambiguous/README.md +0 -11
  96. package/src/chains/filter-ambiguous/index.examples.js +0 -20
  97. package/src/chains/filter-ambiguous/index.js +0 -49
  98. package/src/chains/filter-ambiguous/index.spec.js +0 -31
  99. package/src/chains/glossary/README.md +0 -19
  100. package/src/chains/glossary/index.examples.js +0 -386
  101. package/src/chains/glossary/index.js +0 -75
  102. package/src/chains/glossary/index.spec.js +0 -19
  103. package/src/chains/intersections/README.md +0 -166
  104. package/src/chains/intersections/index.examples.js +0 -280
  105. package/src/chains/intersections/index.js +0 -218
  106. package/src/chains/intersections/intersection-result.json +0 -38
  107. package/src/chains/list/index.examples.js +0 -68
  108. package/src/chains/list/index.js +0 -214
  109. package/src/chains/list/index.spec.js +0 -67
  110. package/src/chains/list/list-result.json +0 -16
  111. package/src/chains/list/schema.json +0 -24
  112. package/src/chains/llm-logger/README.md +0 -366
  113. package/src/chains/llm-logger/index.js +0 -591
  114. package/src/chains/llm-logger/index.spec.js +0 -391
  115. package/src/chains/llm-logger/schema.json +0 -105
  116. package/src/chains/questions/index.examples.js +0 -69
  117. package/src/chains/questions/index.js +0 -135
  118. package/src/chains/questions/index.spec.js +0 -29
  119. package/src/chains/scan-js/index.js +0 -116
  120. package/src/chains/set-interval/README.md +0 -81
  121. package/src/chains/set-interval/index.examples.js +0 -64
  122. package/src/chains/set-interval/index.js +0 -152
  123. package/src/chains/set-interval/index.spec.js +0 -70
  124. package/src/chains/socratic/README.md +0 -17
  125. package/src/chains/socratic/index.js +0 -64
  126. package/src/chains/socratic/index.spec.js +0 -24
  127. package/src/chains/sort/index.examples.js +0 -36
  128. package/src/chains/sort/index.js +0 -163
  129. package/src/chains/sort/index.spec.js +0 -112
  130. package/src/chains/sort/sort-result.json +0 -16
  131. package/src/chains/summary-map/README.md +0 -41
  132. package/src/chains/summary-map/index.examples.js +0 -64
  133. package/src/chains/summary-map/index.js +0 -226
  134. package/src/chains/summary-map/index.spec.js +0 -153
  135. package/src/chains/test/index.js +0 -114
  136. package/src/chains/test-advice/index.js +0 -35
  137. package/src/chains/themes/README.md +0 -20
  138. package/src/chains/themes/index.examples.js +0 -17
  139. package/src/chains/themes/index.js +0 -28
  140. package/src/chains/themes/index.spec.js +0 -19
  141. package/src/chains/veiled-variants/index.examples.js +0 -18
  142. package/src/chains/veiled-variants/index.js +0 -107
  143. package/src/chains/veiled-variants/index.spec.js +0 -40
  144. package/src/constants/common.js +0 -13
  145. package/src/constants/messages.js +0 -3
  146. package/src/constants/models.js +0 -184
  147. package/src/index.js +0 -203
  148. package/src/json-schemas/README.md +0 -13
  149. package/src/json-schemas/cars-test.json +0 -11
  150. package/src/json-schemas/index.js +0 -12
  151. package/src/json-schemas/intent.json +0 -38
  152. package/src/json-schemas/schema-dot-org-photograph.json +0 -133
  153. package/src/json-schemas/schema-dot-org-place.json +0 -129
  154. package/src/lib/README.md +0 -26
  155. package/src/lib/any-signal/index.js +0 -28
  156. package/src/lib/assert/README.md +0 -84
  157. package/src/lib/assert/index.js +0 -50
  158. package/src/lib/bulk-filter/README.md +0 -22
  159. package/src/lib/bulk-filter/index.examples.js +0 -27
  160. package/src/lib/bulk-filter/index.js +0 -63
  161. package/src/lib/bulk-filter/index.spec.js +0 -38
  162. package/src/lib/bulk-find/README.md +0 -18
  163. package/src/lib/bulk-find/index.examples.js +0 -19
  164. package/src/lib/bulk-find/index.js +0 -30
  165. package/src/lib/bulk-find/index.spec.js +0 -41
  166. package/src/lib/chatgpt/index.js +0 -163
  167. package/src/lib/combinations/index.js +0 -30
  168. package/src/lib/combinations/index.spec.js +0 -23
  169. package/src/lib/editor/index.js +0 -31
  170. package/src/lib/functional/index.js +0 -28
  171. package/src/lib/logger-service/index.js +0 -32
  172. package/src/lib/parse-js-parts/index.js +0 -321
  173. package/src/lib/parse-js-parts/index.spec.js +0 -156
  174. package/src/lib/parse-llm-list/README.md +0 -39
  175. package/src/lib/parse-llm-list/index.js +0 -54
  176. package/src/lib/parse-llm-list/index.spec.js +0 -59
  177. package/src/lib/path-aliases/index.js +0 -37
  178. package/src/lib/path-aliases/index.spec.js +0 -64
  179. package/src/lib/pave/index.js +0 -34
  180. package/src/lib/pave/index.spec.js +0 -76
  181. package/src/lib/prompt-cache/index.js +0 -50
  182. package/src/lib/retry/index.js +0 -66
  183. package/src/lib/retry/index.spec.js +0 -86
  184. package/src/lib/ring-buffer/README.md +0 -82
  185. package/src/lib/ring-buffer/index.js +0 -235
  186. package/src/lib/ring-buffer/index.spec.js +0 -388
  187. package/src/lib/search-best-first/city-walk.spec.js +0 -37
  188. package/src/lib/search-best-first/index.js +0 -97
  189. package/src/lib/search-best-first/index.spec.js +0 -35
  190. package/src/lib/search-js-files/code-features-property-definitions.json +0 -123
  191. package/src/lib/search-js-files/index.examples.js +0 -22
  192. package/src/lib/search-js-files/index.js +0 -155
  193. package/src/lib/search-js-files/index.spec.js +0 -34
  194. package/src/lib/search-js-files/scan-file.js +0 -242
  195. package/src/lib/shorten-text/index.js +0 -25
  196. package/src/lib/shorten-text/index.spec.js +0 -68
  197. package/src/lib/strip-numeric/index.js +0 -5
  198. package/src/lib/strip-response/index.js +0 -30
  199. package/src/lib/template-replace/index.js +0 -23
  200. package/src/lib/template-replace/index.spec.js +0 -60
  201. package/src/lib/timed-abort-controller/index.js +0 -41
  202. package/src/lib/to-bool/index.js +0 -8
  203. package/src/lib/to-date/index.js +0 -11
  204. package/src/lib/to-enum/index.js +0 -14
  205. package/src/lib/to-number/index.js +0 -12
  206. package/src/lib/to-number-with-units/index.js +0 -51
  207. package/src/lib/transcribe/index.js +0 -78
  208. package/src/prompts/README.md +0 -17
  209. package/src/prompts/as-enum.js +0 -5
  210. package/src/prompts/as-json-schema.js +0 -9
  211. package/src/prompts/as-object-with-schema.js +0 -26
  212. package/src/prompts/as-schema-org-text.js +0 -25
  213. package/src/prompts/as-schema-org-type.js +0 -1
  214. package/src/prompts/blog-post.js +0 -7
  215. package/src/prompts/code-features.js +0 -24
  216. package/src/prompts/constants.js +0 -101
  217. package/src/prompts/features-json-schema.js +0 -27
  218. package/src/prompts/generate-collection.js +0 -26
  219. package/src/prompts/generate-list.js +0 -48
  220. package/src/prompts/generate-questions.js +0 -19
  221. package/src/prompts/index.js +0 -20
  222. package/src/prompts/intent.js +0 -60
  223. package/src/prompts/output-succinct-names.js +0 -3
  224. package/src/prompts/select-from-threshold.js +0 -17
  225. package/src/prompts/sort.js +0 -31
  226. package/src/prompts/style.js +0 -38
  227. package/src/prompts/summarize.js +0 -13
  228. package/src/prompts/token-budget.js +0 -3
  229. package/src/prompts/wrap-list.js +0 -11
  230. package/src/prompts/wrap-variable.js +0 -36
  231. package/src/services/llm-model/global-overrides.spec.js +0 -432
  232. package/src/services/llm-model/index.js +0 -308
  233. package/src/services/llm-model/model.js +0 -21
  234. package/src/services/llm-model/negotiate.spec.js +0 -447
  235. package/src/services/redis/index.js +0 -147
  236. package/src/test/setup.js +0 -20
  237. package/src/verblets/README.md +0 -26
  238. package/src/verblets/auto/index.examples.js +0 -31
  239. package/src/verblets/auto/index.js +0 -28
  240. package/src/verblets/auto/index.spec.js +0 -32
  241. package/src/verblets/bool/README.md +0 -36
  242. package/src/verblets/bool/index.examples.js +0 -80
  243. package/src/verblets/bool/index.js +0 -25
  244. package/src/verblets/bool/index.schema.json +0 -14
  245. package/src/verblets/bool/index.spec.js +0 -33
  246. package/src/verblets/central-tendency/README.md +0 -166
  247. package/src/verblets/central-tendency/central-tendency-result.json +0 -24
  248. package/src/verblets/central-tendency/index.examples.js +0 -196
  249. package/src/verblets/central-tendency/index.js +0 -171
  250. package/src/verblets/central-tendency/index.spec.js +0 -148
  251. package/src/verblets/conversation-turn/README.md +0 -33
  252. package/src/verblets/conversation-turn/index.examples.js +0 -218
  253. package/src/verblets/conversation-turn/index.js +0 -68
  254. package/src/verblets/conversation-turn/index.spec.js +0 -77
  255. package/src/verblets/conversation-turn-multi/README.md +0 -31
  256. package/src/verblets/conversation-turn-multi/index.examples.js +0 -160
  257. package/src/verblets/conversation-turn-multi/index.js +0 -104
  258. package/src/verblets/conversation-turn-multi/index.spec.js +0 -63
  259. package/src/verblets/enum/index.examples.js +0 -30
  260. package/src/verblets/enum/index.js +0 -18
  261. package/src/verblets/enum/index.spec.js +0 -35
  262. package/src/verblets/expect/README.md +0 -64
  263. package/src/verblets/expect/index.examples.js +0 -109
  264. package/src/verblets/expect/index.js +0 -75
  265. package/src/verblets/expect/index.spec.js +0 -127
  266. package/src/verblets/intent/index.examples.js +0 -139
  267. package/src/verblets/intent/index.js +0 -60
  268. package/src/verblets/intent/index.spec.js +0 -31
  269. package/src/verblets/intersection/README.md +0 -16
  270. package/src/verblets/intersection/index.examples.js +0 -89
  271. package/src/verblets/intersection/index.js +0 -125
  272. package/src/verblets/intersection/index.spec.js +0 -60
  273. package/src/verblets/intersection/intersection-result.json +0 -16
  274. package/src/verblets/list-expand/README.md +0 -10
  275. package/src/verblets/list-expand/index.examples.js +0 -14
  276. package/src/verblets/list-expand/index.js +0 -104
  277. package/src/verblets/list-expand/index.spec.js +0 -18
  278. package/src/verblets/list-expand/list-expand-result.json +0 -16
  279. package/src/verblets/list-filter/README.md +0 -22
  280. package/src/verblets/list-filter/index.examples.js +0 -26
  281. package/src/verblets/list-filter/index.js +0 -18
  282. package/src/verblets/list-filter/index.spec.js +0 -19
  283. package/src/verblets/list-find/README.md +0 -11
  284. package/src/verblets/list-find/index.examples.js +0 -15
  285. package/src/verblets/list-find/index.js +0 -17
  286. package/src/verblets/list-find/index.spec.js +0 -19
  287. package/src/verblets/list-group/README.md +0 -16
  288. package/src/verblets/list-group/index.examples.js +0 -16
  289. package/src/verblets/list-group/index.js +0 -112
  290. package/src/verblets/list-group/index.spec.js +0 -35
  291. package/src/verblets/list-group/list-group-result.json +0 -16
  292. package/src/verblets/list-map/README.md +0 -11
  293. package/src/verblets/list-map/index.examples.js +0 -15
  294. package/src/verblets/list-map/index.js +0 -26
  295. package/src/verblets/list-map/index.spec.js +0 -17
  296. package/src/verblets/list-reduce/README.md +0 -10
  297. package/src/verblets/list-reduce/index.examples.js +0 -14
  298. package/src/verblets/list-reduce/index.js +0 -21
  299. package/src/verblets/list-reduce/index.spec.js +0 -27
  300. package/src/verblets/list-reduce/index.spec.jsx +0 -27
  301. package/src/verblets/name/README.md +0 -15
  302. package/src/verblets/name/index.examples.js +0 -28
  303. package/src/verblets/name/index.js +0 -19
  304. package/src/verblets/name/index.spec.js +0 -33
  305. package/src/verblets/name-similar-to/README.md +0 -26
  306. package/src/verblets/name-similar-to/index.examples.js +0 -18
  307. package/src/verblets/name-similar-to/index.js +0 -20
  308. package/src/verblets/name-similar-to/index.spec.js +0 -13
  309. package/src/verblets/number/index.examples.js +0 -199
  310. package/src/verblets/number/index.js +0 -25
  311. package/src/verblets/number/index.spec.js +0 -33
  312. package/src/verblets/number-with-units/index.examples.js +0 -38
  313. package/src/verblets/number-with-units/index.js +0 -84
  314. package/src/verblets/number-with-units/index.spec.js +0 -46
  315. package/src/verblets/number-with-units/number-with-units-result.json +0 -23
  316. package/src/verblets/people-list/README.md +0 -28
  317. package/src/verblets/people-list/index.examples.js +0 -184
  318. package/src/verblets/people-list/index.js +0 -44
  319. package/src/verblets/people-list/index.spec.js +0 -49
  320. package/src/verblets/schema-org/index.examples.js +0 -51
  321. package/src/verblets/schema-org/index.js +0 -37
  322. package/src/verblets/schema-org/index.spec.js +0 -39
  323. package/src/verblets/sentiment/README.md +0 -10
  324. package/src/verblets/sentiment/index.examples.js +0 -20
  325. package/src/verblets/sentiment/index.js +0 -9
  326. package/src/verblets/sentiment/index.spec.js +0 -20
  327. package/src/verblets/to-object/README.md +0 -38
  328. package/src/verblets/to-object/index.examples.js +0 -29
  329. package/src/verblets/to-object/index.js +0 -131
  330. package/src/verblets/to-object/index.spec.js +0 -71
@@ -1,184 +0,0 @@
1
- // Environment variables loaded in index.js
2
-
3
- const _models = {};
4
-
5
- // Function to get API key at runtime
6
- const getOpenAIKey = () => process.env.OPENAI_API_KEY;
7
-
8
- const systemPrompt = `You are a superintelligent processing unit, answering prompts with precise instructions.
9
- You are a small but critical component in a complex system, so your role in giving quality outputs to your given inputs and instructions is critical.
10
- You must obey those instructions to the letter at all costs--do not deviate or add your own interpretation or flair. Stick to the instructions.
11
- Aim to be direct, accurate, correct, and concise.
12
- You'll often be given complex inputs alongside your instructions. Consider the inputs carefully and think through your answer in relation to the inputs and instructions.
13
- Most prompts will ask for a specific output format, so comply with those details exactly as well.`;
14
-
15
- // // $0.10-0.40/1M tokens
16
- // // cutoff: 5/2024
17
- // // supports image inputs, very high speed, 1M token context, 32K output
18
- // // low intelligence, but > 3.5 turbo
19
- // _models.fastCheapMulti = {
20
- // endpoint: 'v1/chat/completions',
21
- // name: 'gpt-4.1-nano-2025-04-14',
22
- // maxContextWindow: 1_047_576,
23
- // maxOutputTokens: 32_768,
24
- // requestTimeout: 20_000,
25
- // apiKey: process.env.OPENAI_API_KEY,
26
- // apiUrl: 'https://api.openai.com/',
27
- // systemPrompt,
28
- // };
29
-
30
- // // $.40-$1.60/1M tokens
31
- // // cutoff: 05/2024
32
- // // supports image inputs, high speed, 1M token context, 32K output
33
- // _models.fastGoodMulti = {
34
- // endpoint: 'v1/chat/completions',
35
- // name: 'gpt-4.1-mini-2025-04-14',
36
- // maxContextWindow: 1_047_576,
37
- // maxOutputTokens: 32_768,
38
- // requestTimeout: 20_000,
39
- // apiKey: process.env.OPENAI_API_KEY,
40
- // apiUrl: 'https://api.openai.com/',
41
- // systemPrompt,
42
- // };
43
- _models.fastCheapMulti = {
44
- endpoint: 'v1/chat/completions',
45
- name: 'gpt-4o',
46
- maxContextWindow: 128_000,
47
- maxOutputTokens: 16_384,
48
- requestTimeout: 20_000,
49
- get apiKey() {
50
- return getOpenAIKey();
51
- },
52
- apiUrl: 'https://api.openai.com/',
53
- systemPrompt,
54
- };
55
-
56
- // $2.5-$10.00/1M tokens
57
- // cutoff: 09/2023
58
- // supports image inputs, moderate speed
59
- _models.goodMulti = {
60
- endpoint: 'v1/chat/completions',
61
- name: 'gpt-4o-2024-11-20',
62
- maxContextWindow: 128_000,
63
- maxOutputTokens: 16_384,
64
- requestTimeout: 20_000,
65
- get apiKey() {
66
- return getOpenAIKey();
67
- },
68
- apiUrl: 'https://api.openai.com/',
69
- systemPrompt,
70
- };
71
-
72
- // Caution!: $1.1-4.4/1M tokens
73
- // cutoff: 05/2024
74
- // supports image inputs, moderate speed
75
- _models.fastCheapReasoningMulti = {
76
- endpoint: 'v1/chat/completions',
77
- name: 'o4-mini-2025-04-16',
78
- maxContextWindow: 128_000,
79
- maxOutputTokens: 16_384,
80
- requestTimeout: 40_000,
81
- get apiKey() {
82
- return getOpenAIKey();
83
- },
84
- apiUrl: 'https://api.openai.com/',
85
- systemPrompt,
86
- };
87
-
88
- // Caution!: $10-40/1M tokens
89
- // cutoff: 05/2024
90
- // supports image inputs
91
- _models.reasoningNoImage = {
92
- endpoint: 'v1/chat/completions',
93
- name: 'o3-2025-04-16',
94
- maxContextWindow: 200_000,
95
- maxOutputTokens: 100_000,
96
- requestTimeout: 120_000,
97
- get apiKey() {
98
- return getOpenAIKey();
99
- },
100
- apiUrl: 'https://api.openai.com/',
101
- systemPrompt,
102
- };
103
-
104
- // Full matrix with explicit names (no aliases)
105
- _models.fastGoodMulti = _models.fastCheapMulti;
106
- _models.fastGoodCheapMulti = _models.fastGoodMulti; // Default system model
107
- _models.fastGoodCheap = _models.fastGoodMulti;
108
- _models.fastMulti = _models.fastGoodMulti;
109
- _models.fast = _models.fastGoodMulti;
110
- _models.fastGood = _models.fastGoodMulti;
111
- _models.fastReasoningMulti = _models.fastCheapReasoningMulti;
112
- _models.fastReasoning = _models.fastCheapReasoningMulti;
113
-
114
- // eslint-disable-next-line no-self-assign
115
- _models.fastCheapMulti = _models.fastCheapMulti;
116
- _models.fastCheap = _models.fastCheapMulti;
117
- _models.fastCheapReasoning = _models.fastCheapReasoningMulti;
118
-
119
- _models.cheapMulti = _models.fastCheapMulti;
120
- _models.cheap = _models.fastCheapMulti;
121
- _models.cheapGoodMulti = _models.fastGoodMulti;
122
- _models.cheapGood = _models.fastGoodMulti;
123
- _models.cheapReasoningMulti = _models.fastCheapReasoningMulti;
124
- _models.cheapReasoning = _models.fastCheapReasoningMulti;
125
-
126
- // eslint-disable-next-line no-self-assign
127
- _models.goodMulti = _models.goodMulti; // Caution: Moderate cost
128
- _models.good = _models.goodMulti; // Caution: Moderate cost
129
-
130
- _models.reasoningMulti = _models.fastCheapReasoningMulti; // Caution: Moderate cost
131
- _models.reasoning = _models.reasoningNoImage; // Caution: High cost
132
-
133
- // cutoff: 03/2024
134
- // Supports image inputs
135
- _models.privacy = {
136
- name: 'gemma3:latest', // same as gemma3:4b
137
- endpoint: 'api/chat/completions',
138
- maxContextWindow: 128_000,
139
- maxOutputTokens: 8_192,
140
- requestTimeout: 120_000,
141
- apiUrl: (process.env.OPENWEBUI_API_URL ?? '').endsWith('/')
142
- ? process.env.OPENWEBUI_API_URL
143
- : `${process.env.OPENWEBUI_API_URL}/`,
144
- get apiKey() {
145
- return process.env.OPENWEBUI_API_KEY;
146
- },
147
- systemPrompt,
148
- modelOptions: {
149
- stop: ['</s>'],
150
- },
151
- };
152
-
153
- // Allow tests to run without requiring an API key
154
- if (process.env.NODE_ENV !== 'test') {
155
- // expect(process.env.OPENAI_API_KEY).to.exist;
156
- }
157
-
158
- const secondsInDay = 60 * 60 * 24;
159
- const secondsInYear = secondsInDay * 365; // 365 days
160
- export const cacheTTL = process.env.CHATGPT_CACHE_TTL ?? secondsInYear;
161
-
162
- // Caching can be disabled by setting DISABLE_CACHE=true
163
- // By default, caching is enabled when Redis is available and working
164
- export const cachingEnabled = process.env.DISABLE_CACHE !== 'true';
165
-
166
- export const debugPromptGlobally = process.env.CHATGPT_DEBUG_PROMPT ?? false;
167
-
168
- export const debugPromptGloballyIfChanged = process.env.CHATGPT_DEBUG_REQUEST_IF_CHANGED ?? false;
169
-
170
- export const debugResultGlobally = process.env.CHATGPT_DEBUG_RESPONSE ?? false;
171
-
172
- export const debugResultGloballyIfChanged = process.env.CHATGPT_DEBUG_RESPONSE_IF_CHANGED ?? false;
173
-
174
- export const frequencyPenalty = process.env.CHATGPT_FREQUENCY_PENALTY ?? 0;
175
-
176
- export const models = _models;
177
-
178
- export const operationTimeoutMultiplier = 2;
179
-
180
- export const presencePenalty = process.env.CHATGPT_PRESENCE_PENALTY ?? 0;
181
-
182
- export const temperature = process.env.CHATGPT_TEMPERATURE ?? 0;
183
-
184
- export const topP = process.env.CHATGPT_TOPP ?? 0.5;
package/src/index.js DELETED
@@ -1,203 +0,0 @@
1
- // Load environment variables from .env file FIRST
2
- import dotenv from 'dotenv';
3
- dotenv.config();
4
-
5
- import chatGPT from './lib/chatgpt/index.js';
6
-
7
- // chains are consumed as verblets
8
-
9
- import anonymize from './chains/anonymize/index.js';
10
-
11
- import Dismantle from './chains/dismantle/index.js';
12
-
13
- import intersections from './chains/intersections/index.js';
14
-
15
- import list from './chains/list/index.js';
16
- import glossary from './chains/glossary/index.js';
17
-
18
- import questions from './chains/questions/index.js';
19
-
20
- import SocraticMethod from './chains/socratic/index.js';
21
-
22
- import scanJS from './chains/scan-js/index.js';
23
-
24
- import sort from './chains/sort/index.js';
25
- import date from './chains/date/index.js';
26
- import setInterval from './chains/set-interval/index.js';
27
- import bulkScore from './chains/bulk-score/index.js';
28
- import filterAmbiguous from './chains/filter-ambiguous/index.js';
29
-
30
- import SummaryMap from './chains/summary-map/index.js';
31
- import themes from './chains/themes/index.js';
32
-
33
- import test from './chains/test/index.js';
34
-
35
- import testAdvice from './chains/test-advice/index.js';
36
- import Conversation from './chains/conversation/index.js';
37
- import * as turnPolicies from './chains/conversation/turn-policies.js';
38
-
39
- import schemas from './json-schemas/index.js';
40
- import * as common from './constants/common.js';
41
- import * as messages from './constants/messages.js';
42
- import * as models from './constants/models.js';
43
-
44
- // exported lib utilities
45
- // internal-only: anySignal, editor, parseJsParts, pathAliases, pave, TimedAbortController
46
- import * as promptCache from './lib/prompt-cache/index.js';
47
- import retry from './lib/retry/index.js';
48
- import searchBestFirst from './lib/search-best-first/index.js';
49
- import searchJSFiles from './lib/search-js-files/index.js';
50
- import shortenText from './lib/shorten-text/index.js';
51
- import bulkMap, { bulkMapRetry } from './chains/bulk-map/index.js';
52
- import bulkFind, { bulkFindRetry } from './chains/bulk-find/index.js';
53
- import bulkFilter, { bulkFilterRetry } from './chains/bulk-filter/index.js';
54
- import stripNumeric from './lib/strip-numeric/index.js';
55
- import stripResponse from './lib/strip-response/index.js';
56
- import toBool from './lib/to-bool/index.js';
57
- import toEnum from './lib/to-enum/index.js';
58
- import toNumber from './lib/to-number/index.js';
59
- import toNumberWithUnits from './lib/to-number-with-units/index.js';
60
- import toDate from './lib/to-date/index.js';
61
- import transcribe from './lib/transcribe/index.js';
62
- import combinations, { rangeCombinations } from './lib/combinations/index.js';
63
-
64
- // prompts
65
- import * as prompts from './prompts/index.js';
66
-
67
- // services
68
- import * as redis from './services/redis/index.js';
69
- import modelService from './services/llm-model/index.js';
70
-
71
- // verblets
72
-
73
- import auto from './verblets/auto/index.js';
74
-
75
- import bool from './verblets/bool/index.js';
76
-
77
- import enums from './verblets/enum/index.js';
78
-
79
- import intent from './verblets/intent/index.js';
80
-
81
- import number from './verblets/number/index.js';
82
-
83
- import numberWithUnits from './verblets/number-with-units/index.js';
84
-
85
- import schemaOrg from './verblets/schema-org/index.js';
86
- import nameSimilarTo from './verblets/name-similar-to/index.js';
87
-
88
- import name from './verblets/name/index.js';
89
- import peopleList from './verblets/people-list/index.js';
90
-
91
- import toObject from './verblets/to-object/index.js';
92
-
93
- import listMap from './verblets/list-map/index.js';
94
- import listFind from './verblets/list-find/index.js';
95
-
96
- import conversationTurn from './verblets/conversation-turn/index.js';
97
- import conversationTurnMulti from './verblets/conversation-turn-multi/index.js';
98
-
99
- import bulkGroup from './chains/bulk-group/index.js';
100
-
101
- import listGroup from './verblets/list-group/index.js';
102
- import intersection from './verblets/intersection/index.js';
103
-
104
- // # Concept Science
105
- import centralTendency from './verblets/central-tendency/index.js';
106
- import bulkCentralTendency, {
107
- bulkCentralTendencyRetry,
108
- } from './chains/bulk-central-tendency/index.js';
109
-
110
- export { default as retry } from './lib/retry/index.js';
111
- export { default as stripResponse } from './lib/strip-response/index.js';
112
- export { default as searchJSFiles } from './lib/search-js-files/index.js';
113
- export { default as searchBestFirst } from './lib/search-best-first/index.js';
114
- export {
115
- bulkMap,
116
- bulkMapRetry,
117
- bulkFind,
118
- bulkFindRetry,
119
- bulkFilter,
120
- bulkFilterRetry,
121
- bulkCentralTendency,
122
- bulkCentralTendencyRetry,
123
- };
124
- export { rangeCombinations } from './lib/combinations/index.js';
125
-
126
- export const lib = {
127
- chatGPT,
128
- promptCache,
129
- retry,
130
- searchBestFirst,
131
- searchJSFiles,
132
- shortenText,
133
- stripNumeric,
134
- stripResponse,
135
- toBool,
136
- toEnum,
137
- toNumber,
138
- toNumberWithUnits,
139
- toDate,
140
- transcribe,
141
- combinations,
142
- rangeCombinations,
143
- };
144
-
145
- export const verblets = {
146
- auto,
147
- bool,
148
- enums,
149
- intent,
150
- number,
151
- numberWithUnits,
152
- schemaOrg,
153
- nameSimilarTo,
154
- name,
155
- peopleList,
156
- toObject,
157
- listMap,
158
- listFind,
159
- bulkMap,
160
- bulkFind,
161
- anonymize,
162
- Dismantle,
163
- intersections,
164
- list,
165
- glossary,
166
- questions,
167
- SocraticMethod,
168
- scanJS,
169
- sort,
170
- date,
171
- SummaryMap,
172
- themes,
173
- setInterval,
174
- test,
175
- testAdvice,
176
- Conversation,
177
- conversationTurn,
178
- conversationTurnMulti,
179
- bulkScore,
180
- filterAmbiguous,
181
- bulkGroup,
182
- bulkFilter,
183
- listGroup,
184
- intersection,
185
- // # Concept Science
186
- centralTendency,
187
- bulkCentralTendency,
188
- };
189
-
190
- export const services = {
191
- redis,
192
- modelService,
193
- };
194
-
195
- export const constants = {
196
- common,
197
- messages,
198
- models,
199
- };
200
-
201
- export { prompts, schemas, turnPolicies };
202
-
203
- export default chatGPT;
@@ -1,13 +0,0 @@
1
- # JSON Schemas
2
-
3
- This folder contains example schemas used throughout the project. Schemas are referenced by certain verblets and chains for validating or shaping structured output.
4
-
5
- Included files:
6
-
7
- - `cars-test.json`
8
- - `intent.json`
9
- - `schema-dot-org-photograph.json`
10
- - `schema-dot-org-place.json`
11
- - `index.js` – helper that loads a subset of schemas for quick access.
12
-
13
- Additional schemas may live alongside the modules that use them (for example in `../verblets` or `../chains`).
@@ -1,11 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "make": { "type": "string" },
5
- "model": { "type": "string" },
6
- "releaseDate": { "type": "string", "format": "date-time" },
7
- "maxRange": { "type": "number", "description": "Max range in miles" },
8
- "batteryCapacity": { "type": "number", "description": "Battery capacity in kWh" },
9
- "startingCost": { "type": "number", "description": "Starting cost in USD" }
10
- }
11
- }
@@ -1,12 +0,0 @@
1
- import fs from 'node:fs/promises';
2
-
3
- const schemaFileNames = ['../verblets/bool/index.schema.json', '../chains/list/schema.json'];
4
-
5
- const schemas = await Promise.all(
6
- schemaFileNames.map(async (schemaFileName) => {
7
- const schemaText = await fs.readFile(new URL(schemaFileName, import.meta.url));
8
- return JSON.parse(schemaText);
9
- })
10
- );
11
-
12
- export default schemas;
@@ -1,38 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "http://example.com/schemas/intent-schema.json",
4
- "type": "object",
5
- "properties": {
6
- "queryText": {
7
- "type": "string",
8
- "description": "The user's query text."
9
- },
10
- "intent": {
11
- "type": "object",
12
- "properties": {
13
- "operation": {
14
- "type": "string",
15
- "description": "The operation associated with the intent."
16
- },
17
- "displayName": {
18
- "type": "string",
19
- "description": "The display name of the intent."
20
- }
21
- },
22
- "required": ["operation", "displayName"],
23
- "description": "Information about the intent."
24
- },
25
- "parameters": {
26
- "type": "object",
27
- "additionalProperties": true,
28
- "description": "Parameters associated with the intent."
29
- },
30
- "optionalParameters": {
31
- "type": "object",
32
- "additionalProperties": true,
33
- "description": "Optional parameters associated with the intent."
34
- }
35
- },
36
- "required": ["queryText", "intent"],
37
- "description": "Schema for an intent response."
38
- }
@@ -1,133 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://example.com/schemas/photograph.json",
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "@context": {
8
- "type": "string",
9
- "pattern": "^http[s]?://schema.org$"
10
- },
11
- "@type": {
12
- "type": "string",
13
- "pattern": "^Photograph$"
14
- },
15
- "name": {
16
- "type": "string"
17
- },
18
- "caption": {
19
- "type": "string"
20
- },
21
- "description": {
22
- "type": "string"
23
- },
24
- "keywords": {
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
29
- },
30
- "thumbnail": {
31
- "type": "object",
32
- "additionalProperties": false,
33
- "properties": {
34
- "@type": {
35
- "type": "string",
36
- "pattern": "^ImageObject$"
37
- },
38
- "url": {
39
- "type": "string"
40
- },
41
- "width": {
42
- "type": "integer",
43
- "minimum": 1
44
- },
45
- "height": {
46
- "type": "integer",
47
- "minimum": 1
48
- }
49
- },
50
- "required": ["@type", "url"]
51
- },
52
- "image": {
53
- "type": "object",
54
- "additionalProperties": false,
55
- "properties": {
56
- "@type": {
57
- "type": "string",
58
- "pattern": "^ImageObject$"
59
- },
60
- "url": {
61
- "type": "string"
62
- },
63
- "width": {
64
- "type": "integer",
65
- "minimum": 1
66
- },
67
- "height": {
68
- "type": "integer",
69
- "minimum": 1
70
- }
71
- },
72
- "required": ["@type", "url"]
73
- },
74
- "contentLocation": {
75
- "type": "object",
76
- "additionalProperties": false,
77
- "properties": {
78
- "@type": {
79
- "type": "string",
80
- "pattern": "^Place$"
81
- },
82
- "name": {
83
- "type": "string"
84
- },
85
- "address": {
86
- "type": "object",
87
- "additionalProperties": false,
88
- "properties": {
89
- "@type": {
90
- "type": "string",
91
- "pattern": "^PostalAddress$"
92
- },
93
- "streetAddress": {
94
- "type": "string"
95
- },
96
- "addressLocality": {
97
- "type": "string"
98
- },
99
- "addressRegion": {
100
- "type": "string"
101
- },
102
- "postalCode": {
103
- "type": "string"
104
- },
105
- "addressCountry": {
106
- "type": "string"
107
- }
108
- },
109
- "required": ["@type", "addressLocality", "addressCountry"]
110
- },
111
- "geo": {
112
- "type": "object",
113
- "additionalProperties": false,
114
- "properties": {
115
- "@type": {
116
- "type": "string",
117
- "pattern": "^GeoCoordinates$"
118
- },
119
- "latitude": {
120
- "type": "number"
121
- },
122
- "longitude": {
123
- "type": "number"
124
- }
125
- },
126
- "required": ["@type", "latitude", "longitude"]
127
- }
128
- },
129
- "required": ["@type", "name"]
130
- }
131
- },
132
- "required": ["@context", "@type", "name"]
133
- }