@dexto/core 1.1.4 → 1.1.6

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 (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,30 @@
1
+ import { LLM_PROVIDERS } from "../llm/types.js";
2
+ import { getPrimaryApiKeyEnvVar, resolveApiKeyForProvider } from "./api-key-resolver.js";
3
+ import { updateEnvFile } from "./env.js";
4
+ import { getDextoEnvPath } from "./path.js";
5
+ async function saveProviderApiKey(provider, apiKey, startPath) {
6
+ if (!provider) throw new Error("provider is required");
7
+ if (!apiKey || !apiKey.trim()) throw new Error("apiKey is required");
8
+ const envVar = getPrimaryApiKeyEnvVar(provider);
9
+ const targetEnvPath = getDextoEnvPath(startPath);
10
+ await updateEnvFile(targetEnvPath, { [envVar]: apiKey });
11
+ process.env[envVar] = apiKey;
12
+ return { envVar, targetEnvPath };
13
+ }
14
+ function getProviderKeyStatus(provider) {
15
+ const envVar = getPrimaryApiKeyEnvVar(provider);
16
+ const key = resolveApiKeyForProvider(provider);
17
+ return { hasApiKey: Boolean(key && key.trim()), envVar };
18
+ }
19
+ function listProviderKeyStatus() {
20
+ const result = {};
21
+ for (const p of LLM_PROVIDERS) {
22
+ result[p] = getProviderKeyStatus(p);
23
+ }
24
+ return result;
25
+ }
26
+ export {
27
+ getProviderKeyStatus,
28
+ listProviderKeyStatus,
29
+ saveProviderApiKey
30
+ };
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var env_exports = {};
30
+ __export(env_exports, {
31
+ applyLayeredEnvironmentLoading: () => applyLayeredEnvironmentLoading,
32
+ loadEnvironmentVariables: () => loadEnvironmentVariables,
33
+ updateEnvFile: () => updateEnvFile
34
+ });
35
+ module.exports = __toCommonJS(env_exports);
36
+ var path = __toESM(require("path"), 1);
37
+ var import_os = require("os");
38
+ var import_fs = require("fs");
39
+ var import_dotenv = __toESM(require("dotenv"), 1);
40
+ var import_execution_context = require("./execution-context.js");
41
+ var import_path = require("./path.js");
42
+ async function loadEnvironmentVariables(startPath = process.cwd()) {
43
+ const context = (0, import_execution_context.getExecutionContext)(startPath);
44
+ const env = {};
45
+ const globalEnvPath = path.join((0, import_os.homedir)(), ".dexto", ".env");
46
+ try {
47
+ const globalResult = import_dotenv.default.config({ path: globalEnvPath, processEnv: {} });
48
+ if (globalResult.parsed) {
49
+ Object.assign(env, globalResult.parsed);
50
+ }
51
+ } catch {
52
+ }
53
+ if (context === "dexto-source" || context === "dexto-project") {
54
+ const projectEnvPath = (0, import_path.getDextoEnvPath)(startPath);
55
+ try {
56
+ const projectResult = import_dotenv.default.config({ path: projectEnvPath, processEnv: {} });
57
+ if (projectResult.parsed) {
58
+ Object.assign(env, projectResult.parsed);
59
+ }
60
+ } catch {
61
+ }
62
+ }
63
+ for (const [key, value] of Object.entries(process.env)) {
64
+ if (value !== void 0 && value !== "") {
65
+ env[key] = value;
66
+ }
67
+ }
68
+ return env;
69
+ }
70
+ async function applyLayeredEnvironmentLoading(startPath = process.cwd()) {
71
+ await (0, import_path.ensureDextoGlobalDirectory)();
72
+ const layeredEnv = await loadEnvironmentVariables(startPath);
73
+ Object.assign(process.env, layeredEnv);
74
+ }
75
+ async function updateEnvFile(envFilePath, updates) {
76
+ const dextoEnvKeys = [
77
+ "OPENAI_API_KEY",
78
+ "ANTHROPIC_API_KEY",
79
+ "GOOGLE_GENERATIVE_AI_API_KEY",
80
+ "GROQ_API_KEY",
81
+ "COHERE_API_KEY",
82
+ "XAI_API_KEY",
83
+ "DEXTO_LOG_LEVEL"
84
+ ];
85
+ await import_fs.promises.mkdir(path.dirname(envFilePath), { recursive: true });
86
+ let envLines = [];
87
+ try {
88
+ const existingEnv = await import_fs.promises.readFile(envFilePath, "utf8");
89
+ envLines = existingEnv.split("\n");
90
+ } catch {
91
+ }
92
+ const currentValues = {};
93
+ envLines.forEach((line) => {
94
+ const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
95
+ if (match && match[1] && match[2] !== void 0 && dextoEnvKeys.includes(match[1])) {
96
+ currentValues[match[1]] = match[2];
97
+ }
98
+ });
99
+ const updatedValues = {
100
+ OPENAI_API_KEY: updates.OPENAI_API_KEY ?? currentValues.OPENAI_API_KEY ?? "",
101
+ ANTHROPIC_API_KEY: updates.ANTHROPIC_API_KEY ?? currentValues.ANTHROPIC_API_KEY ?? "",
102
+ GOOGLE_GENERATIVE_AI_API_KEY: updates.GOOGLE_GENERATIVE_AI_API_KEY ?? currentValues.GOOGLE_GENERATIVE_AI_API_KEY ?? "",
103
+ GROQ_API_KEY: updates.GROQ_API_KEY ?? currentValues.GROQ_API_KEY ?? "",
104
+ COHERE_API_KEY: updates.COHERE_API_KEY ?? currentValues.COHERE_API_KEY ?? "",
105
+ XAI_API_KEY: updates.XAI_API_KEY ?? currentValues.XAI_API_KEY ?? "",
106
+ DEXTO_LOG_LEVEL: updates.DEXTO_LOG_LEVEL ?? currentValues.DEXTO_LOG_LEVEL ?? "info"
107
+ };
108
+ const sectionHeader = "## Dexto env variables";
109
+ const headerIndex = envLines.findIndex((line) => line.trim() === sectionHeader);
110
+ let contentLines;
111
+ if (headerIndex !== -1) {
112
+ const beforeSection = envLines.slice(0, headerIndex);
113
+ let sectionEnd = headerIndex + 1;
114
+ while (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() !== "") {
115
+ sectionEnd++;
116
+ }
117
+ if (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() === "") {
118
+ sectionEnd++;
119
+ }
120
+ const afterSection = envLines.slice(sectionEnd);
121
+ contentLines = [...beforeSection, ...afterSection];
122
+ } else {
123
+ contentLines = envLines;
124
+ }
125
+ const existingEnvVars = {};
126
+ contentLines.forEach((line) => {
127
+ const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
128
+ if (match && match[1] && match[2] !== void 0 && dextoEnvKeys.includes(match[1])) {
129
+ existingEnvVars[match[1]] = match[2];
130
+ }
131
+ });
132
+ if (contentLines.length > 0) {
133
+ if (contentLines[contentLines.length - 1]?.trim() !== "") {
134
+ contentLines.push("");
135
+ }
136
+ } else {
137
+ contentLines.push("");
138
+ }
139
+ contentLines.push(sectionHeader);
140
+ for (const key of dextoEnvKeys) {
141
+ if (key in existingEnvVars && !(key in updates)) {
142
+ continue;
143
+ }
144
+ contentLines.push(`${key}=${updatedValues[key]}`);
145
+ }
146
+ contentLines.push("");
147
+ await import_fs.promises.writeFile(envFilePath, contentLines.join("\n"), "utf8");
148
+ }
149
+ // Annotate the CommonJS export names for ESM import in node:
150
+ 0 && (module.exports = {
151
+ applyLayeredEnvironmentLoading,
152
+ loadEnvironmentVariables,
153
+ updateEnvFile
154
+ });
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Multi-layer environment variable loading with context awareness.
3
+ * Loads environment variables in priority order:
4
+ * 1. Shell environment (highest priority)
5
+ * 2. Project .env (if in dexto project)
6
+ * 3. Global ~/.dexto/.env (fallback)
7
+ *
8
+ * @param startPath Starting directory for project detection
9
+ * @returns Combined environment variables object
10
+ */
11
+ declare function loadEnvironmentVariables(startPath?: string): Promise<Record<string, string>>;
12
+ /**
13
+ * Apply layered environment loading to process.env.
14
+ * This replaces the simple dotenv.config() with multi-layer loading.
15
+ * Should be called at CLI startup before any schema validation.
16
+ *
17
+ * @param startPath Starting directory for project detection
18
+ */
19
+ declare function applyLayeredEnvironmentLoading(startPath?: string): Promise<void>;
20
+ /**
21
+ * Core logic to update an .env file with Dexto environment variables.
22
+ * This is the shared implementation used by both project and interactive env file updates.
23
+ *
24
+ * @param envFilePath - Absolute path to the .env file to update
25
+ * @param updates - Object containing environment variable updates
26
+ */
27
+ declare function updateEnvFile(envFilePath: string, updates: Record<string, string>): Promise<void>;
28
+
29
+ export { applyLayeredEnvironmentLoading, loadEnvironmentVariables, updateEnvFile };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Multi-layer environment variable loading with context awareness.
3
+ * Loads environment variables in priority order:
4
+ * 1. Shell environment (highest priority)
5
+ * 2. Project .env (if in dexto project)
6
+ * 3. Global ~/.dexto/.env (fallback)
7
+ *
8
+ * @param startPath Starting directory for project detection
9
+ * @returns Combined environment variables object
10
+ */
11
+ declare function loadEnvironmentVariables(startPath?: string): Promise<Record<string, string>>;
12
+ /**
13
+ * Apply layered environment loading to process.env.
14
+ * This replaces the simple dotenv.config() with multi-layer loading.
15
+ * Should be called at CLI startup before any schema validation.
16
+ *
17
+ * @param startPath Starting directory for project detection
18
+ */
19
+ declare function applyLayeredEnvironmentLoading(startPath?: string): Promise<void>;
20
+ /**
21
+ * Core logic to update an .env file with Dexto environment variables.
22
+ * This is the shared implementation used by both project and interactive env file updates.
23
+ *
24
+ * @param envFilePath - Absolute path to the .env file to update
25
+ * @param updates - Object containing environment variable updates
26
+ */
27
+ declare function updateEnvFile(envFilePath: string, updates: Record<string, string>): Promise<void>;
28
+
29
+ export { applyLayeredEnvironmentLoading, loadEnvironmentVariables, updateEnvFile };
@@ -0,0 +1,118 @@
1
+ import * as path from "path";
2
+ import { homedir } from "os";
3
+ import { promises as fs } from "fs";
4
+ import dotenv from "dotenv";
5
+ import { getExecutionContext } from "./execution-context.js";
6
+ import { ensureDextoGlobalDirectory, getDextoEnvPath } from "./path.js";
7
+ async function loadEnvironmentVariables(startPath = process.cwd()) {
8
+ const context = getExecutionContext(startPath);
9
+ const env = {};
10
+ const globalEnvPath = path.join(homedir(), ".dexto", ".env");
11
+ try {
12
+ const globalResult = dotenv.config({ path: globalEnvPath, processEnv: {} });
13
+ if (globalResult.parsed) {
14
+ Object.assign(env, globalResult.parsed);
15
+ }
16
+ } catch {
17
+ }
18
+ if (context === "dexto-source" || context === "dexto-project") {
19
+ const projectEnvPath = getDextoEnvPath(startPath);
20
+ try {
21
+ const projectResult = dotenv.config({ path: projectEnvPath, processEnv: {} });
22
+ if (projectResult.parsed) {
23
+ Object.assign(env, projectResult.parsed);
24
+ }
25
+ } catch {
26
+ }
27
+ }
28
+ for (const [key, value] of Object.entries(process.env)) {
29
+ if (value !== void 0 && value !== "") {
30
+ env[key] = value;
31
+ }
32
+ }
33
+ return env;
34
+ }
35
+ async function applyLayeredEnvironmentLoading(startPath = process.cwd()) {
36
+ await ensureDextoGlobalDirectory();
37
+ const layeredEnv = await loadEnvironmentVariables(startPath);
38
+ Object.assign(process.env, layeredEnv);
39
+ }
40
+ async function updateEnvFile(envFilePath, updates) {
41
+ const dextoEnvKeys = [
42
+ "OPENAI_API_KEY",
43
+ "ANTHROPIC_API_KEY",
44
+ "GOOGLE_GENERATIVE_AI_API_KEY",
45
+ "GROQ_API_KEY",
46
+ "COHERE_API_KEY",
47
+ "XAI_API_KEY",
48
+ "DEXTO_LOG_LEVEL"
49
+ ];
50
+ await fs.mkdir(path.dirname(envFilePath), { recursive: true });
51
+ let envLines = [];
52
+ try {
53
+ const existingEnv = await fs.readFile(envFilePath, "utf8");
54
+ envLines = existingEnv.split("\n");
55
+ } catch {
56
+ }
57
+ const currentValues = {};
58
+ envLines.forEach((line) => {
59
+ const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
60
+ if (match && match[1] && match[2] !== void 0 && dextoEnvKeys.includes(match[1])) {
61
+ currentValues[match[1]] = match[2];
62
+ }
63
+ });
64
+ const updatedValues = {
65
+ OPENAI_API_KEY: updates.OPENAI_API_KEY ?? currentValues.OPENAI_API_KEY ?? "",
66
+ ANTHROPIC_API_KEY: updates.ANTHROPIC_API_KEY ?? currentValues.ANTHROPIC_API_KEY ?? "",
67
+ GOOGLE_GENERATIVE_AI_API_KEY: updates.GOOGLE_GENERATIVE_AI_API_KEY ?? currentValues.GOOGLE_GENERATIVE_AI_API_KEY ?? "",
68
+ GROQ_API_KEY: updates.GROQ_API_KEY ?? currentValues.GROQ_API_KEY ?? "",
69
+ COHERE_API_KEY: updates.COHERE_API_KEY ?? currentValues.COHERE_API_KEY ?? "",
70
+ XAI_API_KEY: updates.XAI_API_KEY ?? currentValues.XAI_API_KEY ?? "",
71
+ DEXTO_LOG_LEVEL: updates.DEXTO_LOG_LEVEL ?? currentValues.DEXTO_LOG_LEVEL ?? "info"
72
+ };
73
+ const sectionHeader = "## Dexto env variables";
74
+ const headerIndex = envLines.findIndex((line) => line.trim() === sectionHeader);
75
+ let contentLines;
76
+ if (headerIndex !== -1) {
77
+ const beforeSection = envLines.slice(0, headerIndex);
78
+ let sectionEnd = headerIndex + 1;
79
+ while (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() !== "") {
80
+ sectionEnd++;
81
+ }
82
+ if (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() === "") {
83
+ sectionEnd++;
84
+ }
85
+ const afterSection = envLines.slice(sectionEnd);
86
+ contentLines = [...beforeSection, ...afterSection];
87
+ } else {
88
+ contentLines = envLines;
89
+ }
90
+ const existingEnvVars = {};
91
+ contentLines.forEach((line) => {
92
+ const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
93
+ if (match && match[1] && match[2] !== void 0 && dextoEnvKeys.includes(match[1])) {
94
+ existingEnvVars[match[1]] = match[2];
95
+ }
96
+ });
97
+ if (contentLines.length > 0) {
98
+ if (contentLines[contentLines.length - 1]?.trim() !== "") {
99
+ contentLines.push("");
100
+ }
101
+ } else {
102
+ contentLines.push("");
103
+ }
104
+ contentLines.push(sectionHeader);
105
+ for (const key of dextoEnvKeys) {
106
+ if (key in existingEnvVars && !(key in updates)) {
107
+ continue;
108
+ }
109
+ contentLines.push(`${key}=${updatedValues[key]}`);
110
+ }
111
+ contentLines.push("");
112
+ await fs.writeFile(envFilePath, contentLines.join("\n"), "utf8");
113
+ }
114
+ export {
115
+ applyLayeredEnvironmentLoading,
116
+ loadEnvironmentVariables,
117
+ updateEnvFile
118
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var error_conversion_exports = {};
20
+ __export(error_conversion_exports, {
21
+ toError: () => toError
22
+ });
23
+ module.exports = __toCommonJS(error_conversion_exports);
24
+ var import_safe_stringify = require("./safe-stringify.js");
25
+ function toError(error) {
26
+ if (error instanceof Error) {
27
+ return error;
28
+ }
29
+ if (error && typeof error === "object") {
30
+ if ("message" in error && typeof error.message === "string") {
31
+ return new Error(error.message, { cause: error });
32
+ }
33
+ if ("error" in error && typeof error.error === "string") {
34
+ return new Error(error.error, { cause: error });
35
+ }
36
+ if ("details" in error && typeof error.details === "string") {
37
+ return new Error(error.details, { cause: error });
38
+ }
39
+ if ("description" in error && typeof error.description === "string") {
40
+ return new Error(error.description, { cause: error });
41
+ }
42
+ const serialized = (0, import_safe_stringify.safeStringify)(error);
43
+ return new Error(serialized);
44
+ }
45
+ if (typeof error === "string") {
46
+ return new Error(error, { cause: error });
47
+ }
48
+ return new Error(String(error), { cause: error });
49
+ }
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ toError
53
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Utility functions for converting various error types to proper Error instances
3
+ * with meaningful messages instead of "[object Object]"
4
+ */
5
+ /**
6
+ * Converts any error value to an Error instance with a meaningful message
7
+ *
8
+ * @param error - The error value to convert (can be Error, object, string, etc.)
9
+ * @returns Error instance with extracted or serialized message
10
+ */
11
+ declare function toError(error: unknown): Error;
12
+
13
+ export { toError };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Utility functions for converting various error types to proper Error instances
3
+ * with meaningful messages instead of "[object Object]"
4
+ */
5
+ /**
6
+ * Converts any error value to an Error instance with a meaningful message
7
+ *
8
+ * @param error - The error value to convert (can be Error, object, string, etc.)
9
+ * @returns Error instance with extracted or serialized message
10
+ */
11
+ declare function toError(error: unknown): Error;
12
+
13
+ export { toError };
@@ -0,0 +1,29 @@
1
+ import { safeStringify } from "./safe-stringify.js";
2
+ function toError(error) {
3
+ if (error instanceof Error) {
4
+ return error;
5
+ }
6
+ if (error && typeof error === "object") {
7
+ if ("message" in error && typeof error.message === "string") {
8
+ return new Error(error.message, { cause: error });
9
+ }
10
+ if ("error" in error && typeof error.error === "string") {
11
+ return new Error(error.error, { cause: error });
12
+ }
13
+ if ("details" in error && typeof error.details === "string") {
14
+ return new Error(error.details, { cause: error });
15
+ }
16
+ if ("description" in error && typeof error.description === "string") {
17
+ return new Error(error.description, { cause: error });
18
+ }
19
+ const serialized = safeStringify(error);
20
+ return new Error(serialized);
21
+ }
22
+ if (typeof error === "string") {
23
+ return new Error(error, { cause: error });
24
+ }
25
+ return new Error(String(error), { cause: error });
26
+ }
27
+ export {
28
+ toError
29
+ };
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var execution_context_exports = {};
30
+ __export(execution_context_exports, {
31
+ findDextoProjectRoot: () => findDextoProjectRoot,
32
+ findDextoSourceRoot: () => findDextoSourceRoot,
33
+ getExecutionContext: () => getExecutionContext
34
+ });
35
+ module.exports = __toCommonJS(execution_context_exports);
36
+ var import_fs_walk = require("./fs-walk.js");
37
+ var import_fs = require("fs");
38
+ var path = __toESM(require("path"), 1);
39
+ function isDextoSourceDirectory(dirPath) {
40
+ const packageJsonPath = path.join(dirPath, "package.json");
41
+ try {
42
+ const pkg = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf-8"));
43
+ return pkg.name === "dexto-monorepo";
44
+ } catch {
45
+ return false;
46
+ }
47
+ }
48
+ function isDextoProjectDirectory(dirPath) {
49
+ const packageJsonPath = path.join(dirPath, "package.json");
50
+ try {
51
+ const pkg = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf-8"));
52
+ if (pkg.name === "dexto" || pkg.name === "@dexto/core" || pkg.name === "@dexto/webui") {
53
+ return false;
54
+ }
55
+ const allDeps = {
56
+ ...pkg.dependencies ?? {},
57
+ ...pkg.devDependencies ?? {},
58
+ ...pkg.peerDependencies ?? {}
59
+ };
60
+ return "dexto" in allDeps || "@dexto/core" in allDeps;
61
+ } catch {
62
+ return false;
63
+ }
64
+ }
65
+ function findDextoSourceRoot(startPath = process.cwd()) {
66
+ return (0, import_fs_walk.walkUpDirectories)(startPath, isDextoSourceDirectory);
67
+ }
68
+ function findDextoProjectRoot(startPath = process.cwd()) {
69
+ return (0, import_fs_walk.walkUpDirectories)(startPath, isDextoProjectDirectory);
70
+ }
71
+ function getExecutionContext(startPath = process.cwd()) {
72
+ if (findDextoSourceRoot(startPath)) {
73
+ return "dexto-source";
74
+ }
75
+ if (findDextoProjectRoot(startPath)) {
76
+ return "dexto-project";
77
+ }
78
+ return "global-cli";
79
+ }
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ findDextoProjectRoot,
83
+ findDextoSourceRoot,
84
+ getExecutionContext
85
+ });
@@ -0,0 +1,21 @@
1
+ type ExecutionContext = 'dexto-source' | 'dexto-project' | 'global-cli';
2
+ /**
3
+ * Find dexto source root directory
4
+ * @param startPath Starting directory path
5
+ * @returns Dexto source root directory or null if not found
6
+ */
7
+ declare function findDextoSourceRoot(startPath?: string): string | null;
8
+ /**
9
+ * Find dexto project root directory (projects using dexto as dependency)
10
+ * @param startPath Starting directory path
11
+ * @returns Dexto project root directory or null if not found
12
+ */
13
+ declare function findDextoProjectRoot(startPath?: string): string | null;
14
+ /**
15
+ * Detect current execution context - standardized across codebase
16
+ * @param startPath Starting directory path (defaults to process.cwd())
17
+ * @returns Execution context
18
+ */
19
+ declare function getExecutionContext(startPath?: string): ExecutionContext;
20
+
21
+ export { type ExecutionContext, findDextoProjectRoot, findDextoSourceRoot, getExecutionContext };
@@ -0,0 +1,21 @@
1
+ type ExecutionContext = 'dexto-source' | 'dexto-project' | 'global-cli';
2
+ /**
3
+ * Find dexto source root directory
4
+ * @param startPath Starting directory path
5
+ * @returns Dexto source root directory or null if not found
6
+ */
7
+ declare function findDextoSourceRoot(startPath?: string): string | null;
8
+ /**
9
+ * Find dexto project root directory (projects using dexto as dependency)
10
+ * @param startPath Starting directory path
11
+ * @returns Dexto project root directory or null if not found
12
+ */
13
+ declare function findDextoProjectRoot(startPath?: string): string | null;
14
+ /**
15
+ * Detect current execution context - standardized across codebase
16
+ * @param startPath Starting directory path (defaults to process.cwd())
17
+ * @returns Execution context
18
+ */
19
+ declare function getExecutionContext(startPath?: string): ExecutionContext;
20
+
21
+ export { type ExecutionContext, findDextoProjectRoot, findDextoSourceRoot, getExecutionContext };
@@ -0,0 +1,49 @@
1
+ import { walkUpDirectories } from "./fs-walk.js";
2
+ import { readFileSync } from "fs";
3
+ import * as path from "path";
4
+ function isDextoSourceDirectory(dirPath) {
5
+ const packageJsonPath = path.join(dirPath, "package.json");
6
+ try {
7
+ const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
8
+ return pkg.name === "dexto-monorepo";
9
+ } catch {
10
+ return false;
11
+ }
12
+ }
13
+ function isDextoProjectDirectory(dirPath) {
14
+ const packageJsonPath = path.join(dirPath, "package.json");
15
+ try {
16
+ const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
17
+ if (pkg.name === "dexto" || pkg.name === "@dexto/core" || pkg.name === "@dexto/webui") {
18
+ return false;
19
+ }
20
+ const allDeps = {
21
+ ...pkg.dependencies ?? {},
22
+ ...pkg.devDependencies ?? {},
23
+ ...pkg.peerDependencies ?? {}
24
+ };
25
+ return "dexto" in allDeps || "@dexto/core" in allDeps;
26
+ } catch {
27
+ return false;
28
+ }
29
+ }
30
+ function findDextoSourceRoot(startPath = process.cwd()) {
31
+ return walkUpDirectories(startPath, isDextoSourceDirectory);
32
+ }
33
+ function findDextoProjectRoot(startPath = process.cwd()) {
34
+ return walkUpDirectories(startPath, isDextoProjectDirectory);
35
+ }
36
+ function getExecutionContext(startPath = process.cwd()) {
37
+ if (findDextoSourceRoot(startPath)) {
38
+ return "dexto-source";
39
+ }
40
+ if (findDextoProjectRoot(startPath)) {
41
+ return "dexto-project";
42
+ }
43
+ return "global-cli";
44
+ }
45
+ export {
46
+ findDextoProjectRoot,
47
+ findDextoSourceRoot,
48
+ getExecutionContext
49
+ };