@elizaos/shared 2.0.0-alpha.537 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/dist/api/chat-contracts.d.ts +2 -0
  2. package/dist/api/chat-contracts.d.ts.map +1 -0
  3. package/dist/api/chat-contracts.js +2 -0
  4. package/dist/api/chat-contracts.js.map +1 -0
  5. package/dist/api/http-helpers.d.ts +50 -0
  6. package/dist/api/http-helpers.d.ts.map +1 -0
  7. package/dist/api/http-helpers.js +168 -0
  8. package/dist/api/http-helpers.js.map +1 -0
  9. package/dist/api/route-helpers.d.ts +16 -0
  10. package/dist/api/route-helpers.d.ts.map +1 -0
  11. package/dist/api/route-helpers.js +2 -0
  12. package/dist/api/route-helpers.js.map +1 -0
  13. package/dist/cli/parse-duration.d.ts +5 -0
  14. package/dist/cli/parse-duration.d.ts.map +1 -0
  15. package/dist/cli/parse-duration.js +28 -0
  16. package/dist/cli/parse-duration.js.map +1 -0
  17. package/dist/config/allowed-hosts.d.ts +8 -0
  18. package/dist/config/allowed-hosts.d.ts.map +1 -0
  19. package/dist/config/allowed-hosts.js +44 -0
  20. package/dist/config/allowed-hosts.js.map +1 -0
  21. package/dist/config/api-key-prefix-hints.d.ts +25 -0
  22. package/dist/config/api-key-prefix-hints.d.ts.map +1 -0
  23. package/dist/config/api-key-prefix-hints.js +27 -0
  24. package/dist/config/api-key-prefix-hints.js.map +1 -0
  25. package/dist/config/app-config.d.ts +273 -0
  26. package/dist/config/app-config.d.ts.map +1 -0
  27. package/dist/config/app-config.js +32 -0
  28. package/dist/config/app-config.js.map +1 -0
  29. package/dist/config/app-manifest.d.ts +75 -0
  30. package/dist/config/app-manifest.d.ts.map +1 -0
  31. package/dist/config/app-manifest.js +109 -0
  32. package/dist/config/app-manifest.js.map +1 -0
  33. package/dist/config/boot-config-react.d.ts +5 -0
  34. package/dist/config/boot-config-react.d.ts.map +1 -0
  35. package/dist/config/boot-config-react.js +8 -0
  36. package/dist/config/boot-config-react.js.map +1 -0
  37. package/dist/config/boot-config-store.d.ts +74 -0
  38. package/dist/config/boot-config-store.d.ts.map +1 -0
  39. package/dist/config/boot-config-store.js +121 -0
  40. package/dist/config/boot-config-store.js.map +1 -0
  41. package/dist/config/boot-config.d.ts +6 -0
  42. package/dist/config/boot-config.d.ts.map +1 -0
  43. package/dist/config/boot-config.js +6 -0
  44. package/dist/config/boot-config.js.map +1 -0
  45. package/dist/config/branding-react.d.ts +4 -0
  46. package/dist/config/branding-react.d.ts.map +1 -0
  47. package/dist/config/branding-react.js +12 -0
  48. package/dist/config/branding-react.js.map +1 -0
  49. package/dist/config/branding.d.ts +53 -0
  50. package/dist/config/branding.d.ts.map +1 -0
  51. package/dist/config/branding.js +23 -0
  52. package/dist/config/branding.js.map +1 -0
  53. package/dist/config/cloud-only.d.ts +6 -0
  54. package/dist/config/cloud-only.d.ts.map +1 -0
  55. package/dist/config/cloud-only.js +16 -0
  56. package/dist/config/cloud-only.js.map +1 -0
  57. package/dist/config/config-catalog.d.ts +371 -0
  58. package/dist/config/config-catalog.d.ts.map +1 -0
  59. package/dist/config/config-catalog.js +710 -0
  60. package/dist/config/config-catalog.js.map +1 -0
  61. package/dist/config/config-paths.d.ts +11 -0
  62. package/dist/config/config-paths.d.ts.map +1 -0
  63. package/dist/config/config-paths.js +74 -0
  64. package/dist/config/config-paths.js.map +1 -0
  65. package/dist/config/config.d.ts +11 -0
  66. package/dist/config/config.d.ts.map +1 -0
  67. package/dist/config/config.js +23 -0
  68. package/dist/config/config.js.map +1 -0
  69. package/dist/config/distribution-profile.d.ts +16 -0
  70. package/dist/config/distribution-profile.d.ts.map +1 -0
  71. package/dist/config/distribution-profile.js +29 -0
  72. package/dist/config/distribution-profile.js.map +1 -0
  73. package/dist/config/env-vars.d.ts +2 -0
  74. package/dist/config/env-vars.d.ts.map +1 -0
  75. package/dist/config/env-vars.js +2 -0
  76. package/dist/config/env-vars.js.map +1 -0
  77. package/dist/config/index.d.ts +14 -0
  78. package/dist/config/index.d.ts.map +1 -0
  79. package/dist/config/index.js +17 -0
  80. package/dist/config/index.js.map +1 -0
  81. package/dist/config/plugin-auto-enable-engine.d.ts +4 -0
  82. package/dist/config/plugin-auto-enable-engine.d.ts.map +1 -0
  83. package/dist/config/plugin-auto-enable-engine.js +45 -0
  84. package/dist/config/plugin-auto-enable-engine.js.map +1 -0
  85. package/dist/config/plugin-auto-enable.d.ts +2 -0
  86. package/dist/config/plugin-auto-enable.d.ts.map +1 -0
  87. package/dist/config/plugin-auto-enable.js +8 -0
  88. package/dist/config/plugin-auto-enable.js.map +1 -0
  89. package/dist/config/plugin-manifest.d.ts +89 -0
  90. package/dist/config/plugin-manifest.d.ts.map +1 -0
  91. package/dist/config/plugin-manifest.js +272 -0
  92. package/dist/config/plugin-manifest.js.map +1 -0
  93. package/dist/config/plugin-ui-spec.d.ts +42 -0
  94. package/dist/config/plugin-ui-spec.d.ts.map +1 -0
  95. package/dist/config/plugin-ui-spec.js +257 -0
  96. package/dist/config/plugin-ui-spec.js.map +1 -0
  97. package/dist/config/runtime-mode.d.ts +54 -0
  98. package/dist/config/runtime-mode.d.ts.map +1 -0
  99. package/dist/config/runtime-mode.js +103 -0
  100. package/dist/config/runtime-mode.js.map +1 -0
  101. package/dist/config/runtime-overrides.d.ts +16 -0
  102. package/dist/config/runtime-overrides.d.ts.map +1 -0
  103. package/dist/config/runtime-overrides.js +49 -0
  104. package/dist/config/runtime-overrides.js.map +1 -0
  105. package/dist/config/schema.d.ts +7 -0
  106. package/dist/config/schema.d.ts.map +1 -0
  107. package/dist/config/schema.js +30 -0
  108. package/dist/config/schema.js.map +1 -0
  109. package/{config → dist/config}/types.eliza.d.ts +16 -38
  110. package/dist/config/types.eliza.d.ts.map +1 -0
  111. package/{config → dist/config}/types.messages.d.ts +1 -1
  112. package/{config → dist/config}/types.tools.d.ts +1 -1
  113. package/dist/config/ui-spec.d.ts +164 -0
  114. package/dist/config/ui-spec.d.ts.map +1 -0
  115. package/dist/config/ui-spec.js +14 -0
  116. package/dist/config/ui-spec.js.map +1 -0
  117. package/dist/config/wechat-config.d.ts +2 -0
  118. package/dist/config/wechat-config.d.ts.map +1 -0
  119. package/dist/config/wechat-config.js +2 -0
  120. package/dist/config/wechat-config.js.map +1 -0
  121. package/dist/config/zod-schema.agent-runtime.d.ts +1087 -0
  122. package/dist/config/zod-schema.agent-runtime.d.ts.map +1 -0
  123. package/dist/config/zod-schema.agent-runtime.js +764 -0
  124. package/dist/config/zod-schema.agent-runtime.js.map +1 -0
  125. package/dist/config/zod-schema.core.d.ts +1048 -0
  126. package/dist/config/zod-schema.core.d.ts.map +1 -0
  127. package/dist/config/zod-schema.core.js +707 -0
  128. package/dist/config/zod-schema.core.js.map +1 -0
  129. package/{connector-cred-types.d.ts → dist/connector-cred-types.d.ts} +3 -3
  130. package/{connector-cred-types.js → dist/connector-cred-types.js} +4 -4
  131. package/dist/connectors.d.ts +2 -0
  132. package/dist/connectors.d.ts.map +1 -0
  133. package/dist/connectors.js +2 -0
  134. package/dist/connectors.js.map +1 -0
  135. package/{contracts → dist/contracts}/apps.d.ts +21 -1
  136. package/dist/contracts/apps.d.ts.map +1 -0
  137. package/{contracts → dist/contracts}/apps.js +9 -10
  138. package/dist/contracts/apps.js.map +1 -0
  139. package/{contracts → dist/contracts}/awareness.d.ts +1 -1
  140. package/{contracts → dist/contracts}/config.d.ts +52 -4
  141. package/dist/contracts/config.d.ts.map +1 -0
  142. package/{contracts → dist/contracts}/content-pack.d.ts +1 -1
  143. package/{contracts → dist/contracts}/content-pack.d.ts.map +1 -1
  144. package/dist/contracts/feature-result.d.ts +24 -0
  145. package/dist/contracts/feature-result.d.ts.map +1 -0
  146. package/dist/contracts/feature-result.js +7 -0
  147. package/dist/contracts/feature-result.js.map +1 -0
  148. package/dist/contracts/health.d.ts +30 -0
  149. package/dist/contracts/health.d.ts.map +1 -0
  150. package/dist/contracts/health.js +29 -0
  151. package/dist/contracts/health.js.map +1 -0
  152. package/{contracts → dist/contracts}/index.d.ts +2 -1
  153. package/{contracts → dist/contracts}/index.d.ts.map +1 -1
  154. package/{contracts → dist/contracts}/index.js +2 -1
  155. package/dist/contracts/index.js.map +1 -0
  156. package/{contracts → dist/contracts}/lifeops.d.ts +410 -3
  157. package/dist/contracts/lifeops.d.ts.map +1 -0
  158. package/{contracts → dist/contracts}/lifeops.js +35 -5
  159. package/dist/contracts/lifeops.js.map +1 -0
  160. package/{contracts → dist/contracts}/onboarding.d.ts +107 -8
  161. package/dist/contracts/onboarding.d.ts.map +1 -0
  162. package/{contracts → dist/contracts}/onboarding.js +132 -13
  163. package/dist/contracts/onboarding.js.map +1 -0
  164. package/dist/contracts/permissions.d.ts +121 -0
  165. package/dist/contracts/permissions.d.ts.map +1 -0
  166. package/dist/contracts/permissions.js +31 -0
  167. package/dist/contracts/permissions.js.map +1 -0
  168. package/{contracts → dist/contracts}/service-routing.d.ts +4 -11
  169. package/dist/contracts/service-routing.d.ts.map +1 -0
  170. package/{contracts → dist/contracts}/service-routing.js +16 -14
  171. package/dist/contracts/service-routing.js.map +1 -0
  172. package/{contracts → dist/contracts}/wallet.d.ts +7 -0
  173. package/dist/contracts/wallet.d.ts.map +1 -0
  174. package/dist/contracts/wallet.js +194 -0
  175. package/dist/contracts/wallet.js.map +1 -0
  176. package/{env-utils.impl.d.ts → dist/env-utils.d.ts} +1 -1
  177. package/dist/env-utils.d.ts.map +1 -0
  178. package/{env-utils.impl.js → dist/env-utils.js} +4 -1
  179. package/dist/env-utils.js.map +1 -0
  180. package/dist/events/index.d.ts +62 -0
  181. package/dist/events/index.d.ts.map +1 -0
  182. package/dist/events/index.js +52 -0
  183. package/dist/events/index.js.map +1 -0
  184. package/dist/i18n/generated/validation-keyword-data.d.ts +3080 -0
  185. package/dist/i18n/generated/validation-keyword-data.d.ts.map +1 -0
  186. package/dist/i18n/generated/validation-keyword-data.js +3084 -0
  187. package/dist/i18n/generated/validation-keyword-data.js.map +1 -0
  188. package/dist/index.d.ts +93 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +105 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/local-inference/index.d.ts +16 -0
  193. package/dist/local-inference/index.d.ts.map +1 -0
  194. package/dist/local-inference/index.js +16 -0
  195. package/dist/local-inference/index.js.map +1 -0
  196. package/dist/local-inference/paths.d.ts +24 -0
  197. package/dist/local-inference/paths.d.ts.map +1 -0
  198. package/dist/local-inference/paths.js +40 -0
  199. package/dist/local-inference/paths.js.map +1 -0
  200. package/dist/local-inference/routing-preferences.d.ts +31 -0
  201. package/dist/local-inference/routing-preferences.d.ts.map +1 -0
  202. package/dist/local-inference/routing-preferences.js +73 -0
  203. package/dist/local-inference/routing-preferences.js.map +1 -0
  204. package/dist/local-inference/types.d.ts +62 -0
  205. package/dist/local-inference/types.d.ts.map +1 -0
  206. package/dist/local-inference/types.js +25 -0
  207. package/dist/local-inference/types.js.map +1 -0
  208. package/dist/local-inference/verify.d.ts +39 -0
  209. package/dist/local-inference/verify.d.ts.map +1 -0
  210. package/dist/local-inference/verify.js +105 -0
  211. package/dist/local-inference/verify.js.map +1 -0
  212. package/dist/package.json +50 -0
  213. package/dist/platform/is-native-server.d.ts +9 -0
  214. package/dist/platform/is-native-server.d.ts.map +1 -0
  215. package/dist/platform/is-native-server.js +12 -0
  216. package/dist/platform/is-native-server.js.map +1 -0
  217. package/{runtime-env.js → dist/runtime-env.js} +2 -2
  218. package/{runtime-env.js.map → dist/runtime-env.js.map} +1 -1
  219. package/dist/self-edit.d.ts +64 -0
  220. package/dist/self-edit.d.ts.map +1 -0
  221. package/dist/self-edit.js +133 -0
  222. package/dist/self-edit.js.map +1 -0
  223. package/{settings-debug.d.ts.map → dist/settings-debug.d.ts.map} +1 -1
  224. package/{settings-debug.js → dist/settings-debug.js} +45 -38
  225. package/dist/settings-debug.js.map +1 -0
  226. package/{spoken-text.js → dist/spoken-text.js} +1 -1
  227. package/{spoken-text.js.map → dist/spoken-text.js.map} +1 -1
  228. package/dist/terminal/links.d.ts +9 -0
  229. package/dist/terminal/links.d.ts.map +1 -0
  230. package/dist/terminal/links.js +21 -0
  231. package/dist/terminal/links.js.map +1 -0
  232. package/dist/terminal/palette.d.ts +11 -0
  233. package/dist/terminal/palette.d.ts.map +1 -0
  234. package/dist/terminal/palette.js +13 -0
  235. package/dist/terminal/palette.js.map +1 -0
  236. package/dist/terminal/theme.d.ts +17 -0
  237. package/dist/terminal/theme.d.ts.map +1 -0
  238. package/dist/terminal/theme.js +25 -0
  239. package/dist/terminal/theme.js.map +1 -0
  240. package/dist/test-support/process-helpers.d.ts +13 -0
  241. package/dist/test-support/process-helpers.d.ts.map +1 -0
  242. package/dist/test-support/process-helpers.js +24 -0
  243. package/dist/test-support/process-helpers.js.map +1 -0
  244. package/dist/test-support/test-helpers.d.ts +112 -0
  245. package/dist/test-support/test-helpers.d.ts.map +1 -0
  246. package/dist/test-support/test-helpers.js +416 -0
  247. package/dist/test-support/test-helpers.js.map +1 -0
  248. package/{themes → dist/themes}/index.d.ts +3 -3
  249. package/dist/themes/index.d.ts.map +1 -0
  250. package/{themes → dist/themes}/index.js +2 -2
  251. package/{themes → dist/themes}/index.js.map +1 -1
  252. package/{themes → dist/themes}/presets.d.ts +1 -1
  253. package/{themes → dist/themes}/presets.d.ts.map +1 -1
  254. package/{type-guards.d.ts → dist/type-guards.d.ts} +1 -0
  255. package/dist/type-guards.d.ts.map +1 -0
  256. package/{type-guards.js → dist/type-guards.js} +6 -0
  257. package/dist/type-guards.js.map +1 -0
  258. package/dist/types/index.d.ts +655 -0
  259. package/dist/types/index.d.ts.map +1 -0
  260. package/dist/types/index.js +5 -0
  261. package/dist/types/index.js.map +1 -0
  262. package/dist/utils/asset-url.d.ts +24 -0
  263. package/dist/utils/asset-url.d.ts.map +1 -0
  264. package/dist/utils/asset-url.js +151 -0
  265. package/dist/utils/asset-url.js.map +1 -0
  266. package/dist/utils/assistant-text.d.ts +2 -0
  267. package/dist/utils/assistant-text.d.ts.map +1 -0
  268. package/dist/utils/assistant-text.js +168 -0
  269. package/dist/utils/assistant-text.js.map +1 -0
  270. package/dist/utils/browser-tab-kit-types.d.ts +81 -0
  271. package/dist/utils/browser-tab-kit-types.d.ts.map +1 -0
  272. package/dist/utils/browser-tab-kit-types.js +23 -0
  273. package/dist/utils/browser-tab-kit-types.js.map +1 -0
  274. package/dist/utils/browser-tabs-renderer-registry.d.ts +56 -0
  275. package/dist/utils/browser-tabs-renderer-registry.d.ts.map +1 -0
  276. package/dist/utils/browser-tabs-renderer-registry.js +962 -0
  277. package/{i18n/generated/validation-keyword-data.d.ts.map → dist/utils/browser-tabs-renderer-registry.js.map} +1 -1
  278. package/dist/utils/character-message-examples.d.ts +7 -0
  279. package/dist/utils/character-message-examples.d.ts.map +1 -0
  280. package/dist/utils/character-message-examples.js +123 -0
  281. package/dist/utils/character-message-examples.js.map +1 -0
  282. package/dist/utils/cloud-status.d.ts +3 -0
  283. package/dist/utils/cloud-status.d.ts.map +1 -0
  284. package/dist/utils/cloud-status.js +11 -0
  285. package/dist/utils/cloud-status.js.map +1 -0
  286. package/dist/utils/documents-upload-image.d.ts +27 -0
  287. package/dist/utils/documents-upload-image.d.ts.map +1 -0
  288. package/dist/utils/documents-upload-image.js +147 -0
  289. package/dist/utils/documents-upload-image.js.map +1 -0
  290. package/dist/utils/eliza-cloud-model-route.d.ts +3 -0
  291. package/dist/utils/eliza-cloud-model-route.d.ts.map +1 -0
  292. package/dist/utils/eliza-cloud-model-route.js +10 -0
  293. package/dist/utils/eliza-cloud-model-route.js.map +1 -0
  294. package/dist/utils/eliza-globals.d.ts +13 -0
  295. package/dist/utils/eliza-globals.d.ts.map +1 -0
  296. package/dist/utils/eliza-globals.js +49 -0
  297. package/dist/utils/eliza-globals.js.map +1 -0
  298. package/dist/utils/eliza-root.d.ts +9 -0
  299. package/dist/utils/eliza-root.d.ts.map +1 -0
  300. package/dist/utils/eliza-root.js +102 -0
  301. package/dist/utils/eliza-root.js.map +1 -0
  302. package/dist/utils/env.d.ts +34 -0
  303. package/dist/utils/env.d.ts.map +1 -0
  304. package/dist/utils/env.js +131 -0
  305. package/dist/utils/env.js.map +1 -0
  306. package/dist/utils/errors.d.ts +13 -0
  307. package/dist/utils/errors.d.ts.map +1 -0
  308. package/dist/utils/errors.js +26 -0
  309. package/dist/utils/errors.js.map +1 -0
  310. package/dist/utils/exec-safety.d.ts +2 -0
  311. package/dist/utils/exec-safety.d.ts.map +1 -0
  312. package/dist/utils/exec-safety.js +22 -0
  313. package/dist/utils/exec-safety.js.map +1 -0
  314. package/dist/utils/format.d.ts +66 -0
  315. package/dist/utils/format.d.ts.map +1 -0
  316. package/dist/utils/format.js +122 -0
  317. package/dist/utils/format.js.map +1 -0
  318. package/dist/utils/index.d.ts +12 -0
  319. package/dist/utils/index.d.ts.map +1 -0
  320. package/dist/utils/index.js +12 -0
  321. package/dist/utils/index.js.map +1 -0
  322. package/dist/utils/labels.d.ts +6 -0
  323. package/dist/utils/labels.d.ts.map +1 -0
  324. package/dist/utils/labels.js +42 -0
  325. package/dist/utils/labels.js.map +1 -0
  326. package/dist/utils/log-prefix.d.ts +2 -0
  327. package/dist/utils/log-prefix.d.ts.map +1 -0
  328. package/dist/utils/log-prefix.js +54 -0
  329. package/dist/utils/log-prefix.js.map +1 -0
  330. package/dist/utils/name-tokens.d.ts +24 -0
  331. package/dist/utils/name-tokens.d.ts.map +1 -0
  332. package/dist/utils/name-tokens.js +37 -0
  333. package/dist/utils/name-tokens.js.map +1 -0
  334. package/dist/utils/namespace-defaults.d.ts +6 -0
  335. package/dist/utils/namespace-defaults.d.ts.map +1 -0
  336. package/dist/utils/namespace-defaults.js +16 -0
  337. package/dist/utils/namespace-defaults.js.map +1 -0
  338. package/dist/utils/number-parsing.d.ts +26 -0
  339. package/dist/utils/number-parsing.d.ts.map +1 -0
  340. package/dist/utils/number-parsing.js +52 -0
  341. package/dist/utils/number-parsing.js.map +1 -0
  342. package/dist/utils/owner-name.d.ts +3 -0
  343. package/dist/utils/owner-name.d.ts.map +1 -0
  344. package/dist/utils/owner-name.js +8 -0
  345. package/dist/utils/owner-name.js.map +1 -0
  346. package/dist/utils/permission-deep-links.d.ts +34 -0
  347. package/dist/utils/permission-deep-links.d.ts.map +1 -0
  348. package/dist/utils/permission-deep-links.js +84 -0
  349. package/dist/utils/permission-deep-links.js.map +1 -0
  350. package/dist/utils/rate-limiter.d.ts +32 -0
  351. package/dist/utils/rate-limiter.d.ts.map +1 -0
  352. package/dist/utils/rate-limiter.js +53 -0
  353. package/dist/utils/rate-limiter.js.map +1 -0
  354. package/dist/utils/serialise.d.ts +12 -0
  355. package/dist/utils/serialise.d.ts.map +1 -0
  356. package/dist/utils/serialise.js +22 -0
  357. package/dist/utils/serialise.js.map +1 -0
  358. package/dist/utils/sql-compat.d.ts +10 -0
  359. package/dist/utils/sql-compat.d.ts.map +1 -0
  360. package/dist/utils/sql-compat.js +112 -0
  361. package/dist/utils/sql-compat.js.map +1 -0
  362. package/dist/utils/streaming-text.d.ts +9 -0
  363. package/dist/utils/streaming-text.d.ts.map +1 -0
  364. package/dist/utils/streaming-text.js +113 -0
  365. package/dist/utils/streaming-text.js.map +1 -0
  366. package/dist/utils/subscription-auth.d.ts +9 -0
  367. package/dist/utils/subscription-auth.d.ts.map +1 -0
  368. package/dist/utils/subscription-auth.js +49 -0
  369. package/dist/utils/subscription-auth.js.map +1 -0
  370. package/dist/utils/trajectory-format.d.ts +6 -0
  371. package/dist/utils/trajectory-format.d.ts.map +1 -0
  372. package/dist/utils/trajectory-format.js +44 -0
  373. package/dist/utils/trajectory-format.js.map +1 -0
  374. package/dist/utils/tts-debug.d.ts +9 -0
  375. package/dist/utils/tts-debug.d.ts.map +1 -0
  376. package/dist/utils/tts-debug.js +70 -0
  377. package/dist/utils/tts-debug.js.map +1 -0
  378. package/dist/voice.d.ts +40 -0
  379. package/dist/voice.d.ts.map +1 -0
  380. package/dist/voice.js +296 -0
  381. package/dist/voice.js.map +1 -0
  382. package/package.json +33 -174
  383. package/config/types.eliza.d.ts.map +0 -1
  384. package/connectors.d.ts +0 -13
  385. package/connectors.d.ts.map +0 -1
  386. package/connectors.js +0 -97
  387. package/connectors.js.map +0 -1
  388. package/contracts/apps.d.ts.map +0 -1
  389. package/contracts/apps.js.map +0 -1
  390. package/contracts/config.d.ts.map +0 -1
  391. package/contracts/index.js.map +0 -1
  392. package/contracts/lifeops-extensions.d.ts +0 -340
  393. package/contracts/lifeops-extensions.d.ts.map +0 -1
  394. package/contracts/lifeops-extensions.js +0 -37
  395. package/contracts/lifeops-extensions.js.map +0 -1
  396. package/contracts/lifeops.d.ts.map +0 -1
  397. package/contracts/lifeops.js.map +0 -1
  398. package/contracts/onboarding.d.ts.map +0 -1
  399. package/contracts/onboarding.js.map +0 -1
  400. package/contracts/permissions.d.ts +0 -38
  401. package/contracts/permissions.d.ts.map +0 -1
  402. package/contracts/permissions.js +0 -5
  403. package/contracts/permissions.js.map +0 -1
  404. package/contracts/scratchpad.d.ts +0 -136
  405. package/contracts/scratchpad.d.ts.map +0 -1
  406. package/contracts/scratchpad.js +0 -91
  407. package/contracts/scratchpad.js.map +0 -1
  408. package/contracts/service-routing.d.ts.map +0 -1
  409. package/contracts/service-routing.js.map +0 -1
  410. package/contracts/wallet.d.ts.map +0 -1
  411. package/contracts/wallet.js +0 -61
  412. package/contracts/wallet.js.map +0 -1
  413. package/eliza-core-roles.d.ts +0 -79
  414. package/eliza-core-roles.d.ts.map +0 -1
  415. package/eliza-core-roles.js +0 -600
  416. package/eliza-core-roles.js.map +0 -1
  417. package/env-utils.d.ts +0 -5
  418. package/env-utils.d.ts.map +0 -1
  419. package/env-utils.impl.d.ts.map +0 -1
  420. package/env-utils.impl.js.map +0 -1
  421. package/env-utils.js +0 -5
  422. package/env-utils.js.map +0 -1
  423. package/i18n/generated/validation-keyword-data.d.ts +0 -1091
  424. package/i18n/generated/validation-keyword-data.js +0 -1095
  425. package/i18n/generated/validation-keyword-data.js.map +0 -1
  426. package/index.d.ts +0 -27
  427. package/index.d.ts.map +0 -1
  428. package/index.js +0 -39
  429. package/index.js.map +0 -1
  430. package/settings-debug.js.map +0 -1
  431. package/themes/index.d.ts.map +0 -1
  432. package/type-guards.d.ts.map +0 -1
  433. package/type-guards.js.map +0 -1
  434. package/types.d.ts +0 -27
  435. package/types.d.ts.map +0 -1
  436. package/types.js +0 -2
  437. package/types.js.map +0 -1
  438. /package/{app-hero-art.d.ts → dist/app-hero-art.d.ts} +0 -0
  439. /package/{app-hero-art.d.ts.map → dist/app-hero-art.d.ts.map} +0 -0
  440. /package/{app-hero-art.js → dist/app-hero-art.js} +0 -0
  441. /package/{app-hero-art.js.map → dist/app-hero-art.js.map} +0 -0
  442. /package/{awareness → dist/awareness}/index.d.ts +0 -0
  443. /package/{awareness → dist/awareness}/index.d.ts.map +0 -0
  444. /package/{awareness → dist/awareness}/index.js +0 -0
  445. /package/{awareness → dist/awareness}/index.js.map +0 -0
  446. /package/{awareness → dist/awareness}/registry.d.ts +0 -0
  447. /package/{awareness → dist/awareness}/registry.d.ts.map +0 -0
  448. /package/{awareness → dist/awareness}/registry.js +0 -0
  449. /package/{awareness → dist/awareness}/registry.js.map +0 -0
  450. /package/{config → dist/config}/types.agent-defaults.d.ts +0 -0
  451. /package/{config → dist/config}/types.agent-defaults.d.ts.map +0 -0
  452. /package/{config → dist/config}/types.agent-defaults.js +0 -0
  453. /package/{config → dist/config}/types.agent-defaults.js.map +0 -0
  454. /package/{config → dist/config}/types.agents.d.ts +0 -0
  455. /package/{config → dist/config}/types.agents.d.ts.map +0 -0
  456. /package/{config → dist/config}/types.agents.js +0 -0
  457. /package/{config → dist/config}/types.agents.js.map +0 -0
  458. /package/{config → dist/config}/types.d.ts +0 -0
  459. /package/{config → dist/config}/types.d.ts.map +0 -0
  460. /package/{config → dist/config}/types.eliza.js +0 -0
  461. /package/{config → dist/config}/types.eliza.js.map +0 -0
  462. /package/{config → dist/config}/types.gateway.d.ts +0 -0
  463. /package/{config → dist/config}/types.gateway.d.ts.map +0 -0
  464. /package/{config → dist/config}/types.gateway.js +0 -0
  465. /package/{config → dist/config}/types.gateway.js.map +0 -0
  466. /package/{config → dist/config}/types.hooks.d.ts +0 -0
  467. /package/{config → dist/config}/types.hooks.d.ts.map +0 -0
  468. /package/{config → dist/config}/types.hooks.js +0 -0
  469. /package/{config → dist/config}/types.hooks.js.map +0 -0
  470. /package/{config → dist/config}/types.js +0 -0
  471. /package/{config → dist/config}/types.js.map +0 -0
  472. /package/{config → dist/config}/types.messages.d.ts.map +0 -0
  473. /package/{config → dist/config}/types.messages.js +0 -0
  474. /package/{config → dist/config}/types.messages.js.map +0 -0
  475. /package/{config → dist/config}/types.tools.d.ts.map +0 -0
  476. /package/{config → dist/config}/types.tools.js +0 -0
  477. /package/{config → dist/config}/types.tools.js.map +0 -0
  478. /package/{connector-cred-types.d.ts.map → dist/connector-cred-types.d.ts.map} +0 -0
  479. /package/{connector-cred-types.js.map → dist/connector-cred-types.js.map} +0 -0
  480. /package/{contracts → dist/contracts}/awareness.d.ts.map +0 -0
  481. /package/{contracts → dist/contracts}/awareness.js +0 -0
  482. /package/{contracts → dist/contracts}/awareness.js.map +0 -0
  483. /package/{contracts → dist/contracts}/cloud-topology.d.ts +0 -0
  484. /package/{contracts → dist/contracts}/cloud-topology.d.ts.map +0 -0
  485. /package/{contracts → dist/contracts}/cloud-topology.js +0 -0
  486. /package/{contracts → dist/contracts}/cloud-topology.js.map +0 -0
  487. /package/{contracts → dist/contracts}/config.js +0 -0
  488. /package/{contracts → dist/contracts}/config.js.map +0 -0
  489. /package/{contracts → dist/contracts}/content-pack.js +0 -0
  490. /package/{contracts → dist/contracts}/content-pack.js.map +0 -0
  491. /package/{contracts → dist/contracts}/drop.d.ts +0 -0
  492. /package/{contracts → dist/contracts}/drop.d.ts.map +0 -0
  493. /package/{contracts → dist/contracts}/drop.js +0 -0
  494. /package/{contracts → dist/contracts}/drop.js.map +0 -0
  495. /package/{contracts → dist/contracts}/inbox.d.ts +0 -0
  496. /package/{contracts → dist/contracts}/inbox.d.ts.map +0 -0
  497. /package/{contracts → dist/contracts}/inbox.js +0 -0
  498. /package/{contracts → dist/contracts}/inbox.js.map +0 -0
  499. /package/{contracts → dist/contracts}/lifeops-connector-degradation.d.ts +0 -0
  500. /package/{contracts → dist/contracts}/lifeops-connector-degradation.d.ts.map +0 -0
  501. /package/{contracts → dist/contracts}/lifeops-connector-degradation.js +0 -0
  502. /package/{contracts → dist/contracts}/lifeops-connector-degradation.js.map +0 -0
  503. /package/{contracts → dist/contracts}/theme.d.ts +0 -0
  504. /package/{contracts → dist/contracts}/theme.d.ts.map +0 -0
  505. /package/{contracts → dist/contracts}/theme.js +0 -0
  506. /package/{contracts → dist/contracts}/theme.js.map +0 -0
  507. /package/{contracts → dist/contracts}/verification.d.ts +0 -0
  508. /package/{contracts → dist/contracts}/verification.d.ts.map +0 -0
  509. /package/{contracts → dist/contracts}/verification.js +0 -0
  510. /package/{contracts → dist/contracts}/verification.js.map +0 -0
  511. /package/{dev-settings-banner-style.d.ts → dist/dev-settings-banner-style.d.ts} +0 -0
  512. /package/{dev-settings-banner-style.d.ts.map → dist/dev-settings-banner-style.d.ts.map} +0 -0
  513. /package/{dev-settings-banner-style.js → dist/dev-settings-banner-style.js} +0 -0
  514. /package/{dev-settings-banner-style.js.map → dist/dev-settings-banner-style.js.map} +0 -0
  515. /package/{dev-settings-figlet-heading.d.ts → dist/dev-settings-figlet-heading.d.ts} +0 -0
  516. /package/{dev-settings-figlet-heading.d.ts.map → dist/dev-settings-figlet-heading.d.ts.map} +0 -0
  517. /package/{dev-settings-figlet-heading.js → dist/dev-settings-figlet-heading.js} +0 -0
  518. /package/{dev-settings-figlet-heading.js.map → dist/dev-settings-figlet-heading.js.map} +0 -0
  519. /package/{dev-settings-table.d.ts → dist/dev-settings-table.d.ts} +0 -0
  520. /package/{dev-settings-table.d.ts.map → dist/dev-settings-table.d.ts.map} +0 -0
  521. /package/{dev-settings-table.js → dist/dev-settings-table.js} +0 -0
  522. /package/{dev-settings-table.js.map → dist/dev-settings-table.js.map} +0 -0
  523. /package/{format-error.d.ts → dist/format-error.d.ts} +0 -0
  524. /package/{format-error.d.ts.map → dist/format-error.d.ts.map} +0 -0
  525. /package/{format-error.js → dist/format-error.js} +0 -0
  526. /package/{format-error.js.map → dist/format-error.js.map} +0 -0
  527. /package/{i18n → dist/i18n}/keyword-matching.d.ts +0 -0
  528. /package/{i18n → dist/i18n}/keyword-matching.d.ts.map +0 -0
  529. /package/{i18n → dist/i18n}/keyword-matching.js +0 -0
  530. /package/{i18n → dist/i18n}/keyword-matching.js.map +0 -0
  531. /package/{i18n → dist/i18n}/validation-keywords.d.ts +0 -0
  532. /package/{i18n → dist/i18n}/validation-keywords.d.ts.map +0 -0
  533. /package/{i18n → dist/i18n}/validation-keywords.js +0 -0
  534. /package/{i18n → dist/i18n}/validation-keywords.js.map +0 -0
  535. /package/{onboarding-presets.characters.d.ts → dist/onboarding-presets.characters.d.ts} +0 -0
  536. /package/{onboarding-presets.characters.d.ts.map → dist/onboarding-presets.characters.d.ts.map} +0 -0
  537. /package/{onboarding-presets.characters.js → dist/onboarding-presets.characters.js} +0 -0
  538. /package/{onboarding-presets.characters.js.map → dist/onboarding-presets.characters.js.map} +0 -0
  539. /package/{onboarding-presets.d.ts → dist/onboarding-presets.d.ts} +0 -0
  540. /package/{onboarding-presets.d.ts.map → dist/onboarding-presets.d.ts.map} +0 -0
  541. /package/{onboarding-presets.js → dist/onboarding-presets.js} +0 -0
  542. /package/{onboarding-presets.js.map → dist/onboarding-presets.js.map} +0 -0
  543. /package/{onboarding-presets.shared.d.ts → dist/onboarding-presets.shared.d.ts} +0 -0
  544. /package/{onboarding-presets.shared.d.ts.map → dist/onboarding-presets.shared.d.ts.map} +0 -0
  545. /package/{onboarding-presets.shared.js → dist/onboarding-presets.shared.js} +0 -0
  546. /package/{onboarding-presets.shared.js.map → dist/onboarding-presets.shared.js.map} +0 -0
  547. /package/{recent-messages-state.d.ts → dist/recent-messages-state.d.ts} +0 -0
  548. /package/{recent-messages-state.d.ts.map → dist/recent-messages-state.d.ts.map} +0 -0
  549. /package/{recent-messages-state.js → dist/recent-messages-state.js} +0 -0
  550. /package/{recent-messages-state.js.map → dist/recent-messages-state.js.map} +0 -0
  551. /package/{restart.d.ts → dist/restart.d.ts} +0 -0
  552. /package/{restart.d.ts.map → dist/restart.d.ts.map} +0 -0
  553. /package/{restart.js → dist/restart.js} +0 -0
  554. /package/{restart.js.map → dist/restart.js.map} +0 -0
  555. /package/{runtime-env.d.ts → dist/runtime-env.d.ts} +0 -0
  556. /package/{runtime-env.d.ts.map → dist/runtime-env.d.ts.map} +0 -0
  557. /package/{settings-debug.d.ts → dist/settings-debug.d.ts} +0 -0
  558. /package/{spoken-text.d.ts → dist/spoken-text.d.ts} +0 -0
  559. /package/{spoken-text.d.ts.map → dist/spoken-text.d.ts.map} +0 -0
  560. /package/{themes → dist/themes}/presets.js +0 -0
  561. /package/{themes → dist/themes}/presets.js.map +0 -0
  562. /package/{validation-keywords.d.ts → dist/validation-keywords.d.ts} +0 -0
  563. /package/{validation-keywords.d.ts.map → dist/validation-keywords.d.ts.map} +0 -0
  564. /package/{validation-keywords.js → dist/validation-keywords.js} +0 -0
  565. /package/{validation-keywords.js.map → dist/validation-keywords.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ export type ChatFailureKind = "insufficient_credits" | "no_provider" | "provider_issue" | "local_inference";
2
+ //# sourceMappingURL=chat-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-contracts.d.ts","sourceRoot":"","sources":["../../src/api/chat-contracts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-contracts.js","sourceRoot":"","sources":["../../src/api/chat-contracts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import type http from "node:http";
2
+ /**
3
+ * Common request body size guard used across API/benchmark endpoints.
4
+ */
5
+ export declare const DEFAULT_MAX_BODY_BYTES = 1048576;
6
+ export interface RequestBodyOptions {
7
+ /** Maximum accepted body size in bytes. */
8
+ maxBytes?: number;
9
+ /** String conversion encoding for body text helpers. */
10
+ encoding?: BufferEncoding;
11
+ /** Error message returned when the request body exceeds `maxBytes`. */
12
+ tooLargeMessage?: string;
13
+ /** When true, resolves to `null` instead of rejecting on body read failure. */
14
+ returnNullOnError?: boolean;
15
+ /** When true, resolves to `null` instead of rejecting on size limit exceed. */
16
+ returnNullOnTooLarge?: boolean;
17
+ /** Whether to destroy the request stream as soon as the body limit is exceeded. */
18
+ destroyOnTooLarge?: boolean;
19
+ }
20
+ export declare function readRequestBodyBuffer(req: http.IncomingMessage, { maxBytes, returnNullOnError, returnNullOnTooLarge, destroyOnTooLarge, tooLargeMessage, }?: RequestBodyOptions): Promise<Buffer | null>;
21
+ export interface ReadTextBodyOptions extends RequestBodyOptions {
22
+ }
23
+ export declare function readRequestBody(req: http.IncomingMessage, options?: ReadTextBodyOptions): Promise<string | null>;
24
+ export interface ReadJsonBodyOptions extends ReadTextBodyOptions {
25
+ /** Whether to require JSON object shape (not arrays/null). */
26
+ requireObject?: boolean;
27
+ /** Response status used for parse/read failures. */
28
+ readErrorStatus?: number;
29
+ /** Response status used for non-object body when `requireObject` is true. */
30
+ nonObjectStatus?: number;
31
+ /** Response status used for invalid JSON syntax. */
32
+ parseErrorStatus?: number;
33
+ /** Override for read errors (including size / stream errors). */
34
+ readErrorMessage?: string;
35
+ /** Override when JSON is valid but not an object. */
36
+ nonObjectMessage?: string;
37
+ /** Override for malformed JSON parse errors. */
38
+ parseErrorMessage?: string;
39
+ }
40
+ export declare function isJsonObjectBody(value: unknown): value is Record<string, unknown>;
41
+ export declare function writeJsonResponse(res: http.ServerResponse, body: unknown, status?: number): Promise<void>;
42
+ export declare function writeJsonError(res: http.ServerResponse, message: string, status?: number): Promise<void>;
43
+ export declare function writeJsonResponseSafe(res: http.ServerResponse, body: unknown, status?: number): void;
44
+ /** Shorthand responder for successful JSON payloads with safe fire-and-forget write. */
45
+ export declare function sendJson(res: http.ServerResponse, body: unknown, status?: number): void;
46
+ /** Shorthand responder for JSON error payloads with safe fire-and-forget write. */
47
+ export declare function sendJsonError(res: http.ServerResponse, message: string, status?: number): void;
48
+ export declare function writeJsonErrorSafe(res: http.ServerResponse, message: string, status?: number): void;
49
+ export declare function readJsonBody<T = Record<string, unknown>>(req: http.IncomingMessage, res: http.ServerResponse, { readErrorStatus, nonObjectStatus, parseErrorStatus, readErrorMessage, nonObjectMessage, parseErrorMessage, requireObject, ...readOptions }?: ReadJsonBodyOptions): Promise<T | null>;
50
+ //# sourceMappingURL=http-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-helpers.d.ts","sourceRoot":"","sources":["../../src/api/http-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import { logger } from "@elizaos/core";
2
+ const CACHED_REQUEST_BODY = Symbol.for("eliza.http.cachedRequestBody");
3
+ const CACHED_JSON_BODY = Symbol.for("eliza.http.cachedJsonBody");
4
+ /**
5
+ * Common request body size guard used across API/benchmark endpoints.
6
+ */
7
+ export const DEFAULT_MAX_BODY_BYTES = 1_048_576;
8
+ function defaultTooLargeMessage(maxBytes, explicit) {
9
+ return explicit ?? `Request body exceeds maximum size (${maxBytes} bytes)`;
10
+ }
11
+ export async function readRequestBodyBuffer(req, { maxBytes = DEFAULT_MAX_BODY_BYTES, returnNullOnError = false, returnNullOnTooLarge = false, destroyOnTooLarge = false, tooLargeMessage, } = {}) {
12
+ const cached = req[CACHED_REQUEST_BODY];
13
+ if (cached) {
14
+ return cached;
15
+ }
16
+ return new Promise((resolve, reject) => {
17
+ const chunks = [];
18
+ let totalBytes = 0;
19
+ let tooLarge = false;
20
+ let settled = false;
21
+ const message = defaultTooLargeMessage(maxBytes, tooLargeMessage);
22
+ const cleanup = () => {
23
+ req.off("data", onData);
24
+ req.off("end", onEnd);
25
+ req.off("error", onError);
26
+ };
27
+ const settle = (value) => {
28
+ if (settled)
29
+ return;
30
+ settled = true;
31
+ cleanup();
32
+ resolve(value);
33
+ };
34
+ const fail = (err) => {
35
+ if (settled)
36
+ return;
37
+ settled = true;
38
+ cleanup();
39
+ reject(err);
40
+ };
41
+ const onData = (chunk) => {
42
+ if (settled)
43
+ return;
44
+ totalBytes += chunk.length;
45
+ if (totalBytes > maxBytes) {
46
+ tooLarge = true;
47
+ if (returnNullOnTooLarge) {
48
+ if (destroyOnTooLarge) {
49
+ req.destroy();
50
+ }
51
+ settle(null);
52
+ return;
53
+ }
54
+ if (destroyOnTooLarge) {
55
+ req.destroy();
56
+ fail(new Error(message));
57
+ return;
58
+ }
59
+ return;
60
+ }
61
+ chunks.push(chunk);
62
+ };
63
+ const onEnd = () => {
64
+ if (settled)
65
+ return;
66
+ if (tooLarge) {
67
+ if (returnNullOnTooLarge) {
68
+ settle(null);
69
+ return;
70
+ }
71
+ fail(new Error(message));
72
+ return;
73
+ }
74
+ const body = Buffer.concat(chunks);
75
+ req[CACHED_REQUEST_BODY] = body;
76
+ settle(body);
77
+ };
78
+ const onError = (err) => {
79
+ if (returnNullOnError) {
80
+ settle(null);
81
+ return;
82
+ }
83
+ fail(err);
84
+ };
85
+ req.on("data", onData);
86
+ req.on("end", onEnd);
87
+ req.on("error", onError);
88
+ });
89
+ }
90
+ export async function readRequestBody(req, options = {}) {
91
+ const { encoding = "utf-8", ...rawOptions } = options;
92
+ const body = await readRequestBodyBuffer(req, rawOptions);
93
+ if (body === null)
94
+ return null;
95
+ return body.toString(encoding);
96
+ }
97
+ export function isJsonObjectBody(value) {
98
+ return value != null && typeof value === "object" && !Array.isArray(value);
99
+ }
100
+ export async function writeJsonResponse(res, body, status = 200) {
101
+ res.statusCode = status;
102
+ res.setHeader("Content-Type", "application/json");
103
+ res.end(JSON.stringify(body));
104
+ }
105
+ export async function writeJsonError(res, message, status = 400) {
106
+ await writeJsonResponse(res, { error: message }, status);
107
+ }
108
+ export function writeJsonResponseSafe(res, body, status = 200) {
109
+ void writeJsonResponse(res, body, status).catch((err) => {
110
+ /* response already committed, log for diagnostics */
111
+ logger.warn(`[http] JSON response write failed: ${err}`);
112
+ });
113
+ }
114
+ /** Shorthand responder for successful JSON payloads with safe fire-and-forget write. */
115
+ export function sendJson(res, body, status = 200) {
116
+ writeJsonResponseSafe(res, body, status);
117
+ }
118
+ /** Shorthand responder for JSON error payloads with safe fire-and-forget write. */
119
+ export function sendJsonError(res, message, status = 400) {
120
+ writeJsonErrorSafe(res, message, status);
121
+ }
122
+ export function writeJsonErrorSafe(res, message, status = 400) {
123
+ void writeJsonError(res, message, status).catch((err) => {
124
+ /* response already committed, log for diagnostics */
125
+ logger.warn(`[http] JSON error response write failed: ${err}`);
126
+ });
127
+ }
128
+ export async function readJsonBody(req, res, { readErrorStatus = 413, nonObjectStatus = 400, parseErrorStatus = 400, readErrorMessage = "Failed to read request body", nonObjectMessage = "Request body must be a JSON object", parseErrorMessage = "Invalid JSON in request body", requireObject = true, ...readOptions } = {}) {
129
+ const cachedRequest = req;
130
+ if (CACHED_JSON_BODY in cachedRequest) {
131
+ const parsed = cachedRequest[CACHED_JSON_BODY];
132
+ if (requireObject &&
133
+ (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))) {
134
+ await writeJsonError(res, nonObjectMessage, nonObjectStatus);
135
+ return null;
136
+ }
137
+ return parsed;
138
+ }
139
+ let raw;
140
+ try {
141
+ const body = await readRequestBody(req, readOptions);
142
+ if (body == null) {
143
+ await writeJsonError(res, readErrorMessage, readErrorStatus);
144
+ return null;
145
+ }
146
+ raw = body;
147
+ }
148
+ catch {
149
+ await writeJsonError(res, readErrorMessage, readErrorStatus);
150
+ return null;
151
+ }
152
+ try {
153
+ const parsed = JSON.parse(raw);
154
+ if (requireObject &&
155
+ (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))) {
156
+ await writeJsonError(res, nonObjectMessage, nonObjectStatus);
157
+ return null;
158
+ }
159
+ cachedRequest[CACHED_JSON_BODY] = parsed;
160
+ cachedRequest.body = parsed;
161
+ return parsed;
162
+ }
163
+ catch {
164
+ await writeJsonError(res, parseErrorMessage, parseErrorStatus);
165
+ return null;
166
+ }
167
+ }
168
+ //# sourceMappingURL=http-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-helpers.js","sourceRoot":"","sources":["../../src/api/http-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type http from "node:http";
2
+ import type { ReadJsonBodyOptions } from "./http-helpers.js";
3
+ export interface RouteRequestMeta {
4
+ req: http.IncomingMessage;
5
+ res: http.ServerResponse;
6
+ method: string;
7
+ pathname: string;
8
+ }
9
+ export interface RouteHelpers {
10
+ json: (res: http.ServerResponse, data: unknown, status?: number) => void;
11
+ error: (res: http.ServerResponse, message: string, status?: number) => void;
12
+ readJsonBody: <T extends object>(req: http.IncomingMessage, res: http.ServerResponse, options?: ReadJsonBodyOptions) => Promise<T | null>;
13
+ }
14
+ export interface RouteRequestContext extends RouteRequestMeta, RouteHelpers {
15
+ }
16
+ //# sourceMappingURL=route-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/api/route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;IAC1B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,EAC7B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,mBAAmB,KAC1B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,EAAE,YAAY;CAAG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=route-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/api/route-helpers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export type DurationMsParseOptions = {
2
+ defaultUnit?: "ms" | "s" | "m" | "h" | "d";
3
+ };
4
+ export declare function parseDurationMs(raw: string, opts?: DurationMsParseOptions): number;
5
+ //# sourceMappingURL=parse-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-duration.d.ts","sourceRoot":"","sources":["../../src/cli/parse-duration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAC5C,CAAC;AAEF,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,sBAAsB,GAC5B,MAAM,CAmCR"}
@@ -0,0 +1,28 @@
1
+ export function parseDurationMs(raw, opts) {
2
+ const trimmed = String(raw ?? "")
3
+ .trim()
4
+ .toLowerCase();
5
+ if (!trimmed) {
6
+ throw new Error("invalid duration (empty)");
7
+ }
8
+ const m = /^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/.exec(trimmed);
9
+ if (!m) {
10
+ throw new Error(`invalid duration: ${raw}`);
11
+ }
12
+ const value = Number(m[1]);
13
+ if (!Number.isFinite(value) || value < 0) {
14
+ throw new Error(`invalid duration: ${raw}`);
15
+ }
16
+ const unit = (m[2] ?? opts?.defaultUnit ?? "ms");
17
+ const multiplier = unit === "ms"
18
+ ? 1
19
+ : unit === "s"
20
+ ? 1000
21
+ : unit === "m"
22
+ ? 60_000
23
+ : unit === "h"
24
+ ? 3_600_000
25
+ : 86_400_000;
26
+ return Math.round(value * multiplier);
27
+ }
28
+ //# sourceMappingURL=parse-duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-duration.js","sourceRoot":"","sources":["../../src/cli/parse-duration.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,IAA6B;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;SAC9B,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;IACjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,WAAW,IAAI,IAAI,CAKxC,CAAC;IACR,MAAM,UAAU,GACd,IAAI,KAAK,IAAI;QACX,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,KAAK,GAAG;YACZ,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,KAAK,GAAG;gBACZ,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI,KAAK,GAAG;oBACZ,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,UAAU,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type AllowedHostPattern = {
2
+ readonly host: string;
3
+ readonly includeSubdomains: boolean;
4
+ };
5
+ export declare function parseAllowedHostEnv(value: string | undefined): AllowedHostPattern[];
6
+ export declare function toViteAllowedHosts(entries: readonly AllowedHostPattern[]): string[];
7
+ export declare function toCapacitorAllowNavigation(entries: readonly AllowedHostPattern[]): string[];
8
+ //# sourceMappingURL=allowed-hosts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowed-hosts.d.ts","sourceRoot":"","sources":["../../src/config/allowed-hosts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC,CAAC;AAoCF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,kBAAkB,EAAE,CAYtB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,MAAM,EAAE,CAIV;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,MAAM,EAAE,CAIV"}
@@ -0,0 +1,44 @@
1
+ function parseHostPattern(rawValue) {
2
+ let value = rawValue.trim();
3
+ if (!value) {
4
+ throw new Error("MILADY_ALLOWED_HOSTS contains an empty host entry");
5
+ }
6
+ if (/^[a-z][a-z0-9+.-]*:\/\//i.test(value)) {
7
+ const url = new URL(value);
8
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
9
+ throw new Error(`MILADY_ALLOWED_HOSTS entry has unsupported protocol: ${rawValue}`);
10
+ }
11
+ if (url.pathname !== "/" || url.search || url.hash) {
12
+ throw new Error(`MILADY_ALLOWED_HOSTS entry must be a host, not a URL path: ${rawValue}`);
13
+ }
14
+ value = url.hostname;
15
+ }
16
+ const includeSubdomains = value.startsWith("*.") || value.startsWith(".");
17
+ const host = (includeSubdomains ? value.replace(/^(\*\.)|\./, "") : value).toLowerCase();
18
+ if (!host || host.includes("/") || host.includes("*")) {
19
+ throw new Error(`MILADY_ALLOWED_HOSTS entry is not a supported host pattern: ${rawValue}`);
20
+ }
21
+ return { host, includeSubdomains };
22
+ }
23
+ export function parseAllowedHostEnv(value) {
24
+ const seen = new Set();
25
+ const entries = [];
26
+ for (const raw of (value ?? "").split(",")) {
27
+ if (!raw.trim())
28
+ continue;
29
+ const entry = parseHostPattern(raw);
30
+ const key = `${entry.includeSubdomains ? "*." : ""}${entry.host}`;
31
+ if (seen.has(key))
32
+ continue;
33
+ seen.add(key);
34
+ entries.push(entry);
35
+ }
36
+ return entries;
37
+ }
38
+ export function toViteAllowedHosts(entries) {
39
+ return entries.map((entry) => entry.includeSubdomains ? `.${entry.host}` : entry.host);
40
+ }
41
+ export function toCapacitorAllowNavigation(entries) {
42
+ return entries.map((entry) => entry.includeSubdomains ? `*.${entry.host}` : entry.host);
43
+ }
44
+ //# sourceMappingURL=allowed-hosts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowed-hosts.js","sourceRoot":"","sources":["../../src/config/allowed-hosts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Known API-key prefix patterns — used by the Settings save form to
3
+ * surface inline warnings when the user pastes something that looks
4
+ * wrong (e.g., a model slug like `tencent/hy3-preview` into the
5
+ * OPENROUTER_API_KEY field).
6
+ *
7
+ * Mirrors `KEY_PREFIX_HINTS` in
8
+ * `packages/agent/src/api/plugin-validation.ts` — the server-side
9
+ * version runs at save time and surfaces a warning in the validation
10
+ * result; the client-side version here runs as the user types so they
11
+ * catch the mistake before it lands on disk.
12
+ *
13
+ * Keep both in sync. If a third party plugin needs prefix validation,
14
+ * add it here and to plugin-validation.ts. (Future: derive from a
15
+ * shared registry; the duplication is acknowledged-but-bounded for
16
+ * now since the data is small and rarely changes.)
17
+ */
18
+ export interface ApiKeyPrefixHint {
19
+ /** The exact string the value must start with (case-sensitive). */
20
+ readonly prefix: string;
21
+ /** Human-readable provider label for the warning text. */
22
+ readonly label: string;
23
+ }
24
+ export declare const API_KEY_PREFIX_HINTS: Readonly<Record<string, ApiKeyPrefixHint>>;
25
+ //# sourceMappingURL=api-key-prefix-hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key-prefix-hints.d.ts","sourceRoot":"","sources":["../../src/config/api-key-prefix-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CASzE,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Known API-key prefix patterns — used by the Settings save form to
3
+ * surface inline warnings when the user pastes something that looks
4
+ * wrong (e.g., a model slug like `tencent/hy3-preview` into the
5
+ * OPENROUTER_API_KEY field).
6
+ *
7
+ * Mirrors `KEY_PREFIX_HINTS` in
8
+ * `packages/agent/src/api/plugin-validation.ts` — the server-side
9
+ * version runs at save time and surfaces a warning in the validation
10
+ * result; the client-side version here runs as the user types so they
11
+ * catch the mistake before it lands on disk.
12
+ *
13
+ * Keep both in sync. If a third party plugin needs prefix validation,
14
+ * add it here and to plugin-validation.ts. (Future: derive from a
15
+ * shared registry; the duplication is acknowledged-but-bounded for
16
+ * now since the data is small and rarely changes.)
17
+ */
18
+ export const API_KEY_PREFIX_HINTS = {
19
+ ANTHROPIC_API_KEY: { prefix: "sk-ant-", label: "Anthropic" },
20
+ OPENAI_API_KEY: { prefix: "sk-", label: "OpenAI" },
21
+ GROQ_API_KEY: { prefix: "gsk_", label: "Groq" },
22
+ XAI_API_KEY: { prefix: "xai-", label: "xAI" },
23
+ OPENROUTER_API_KEY: { prefix: "sk-or-", label: "OpenRouter" },
24
+ DEEPSEEK_API_KEY: { prefix: "sk-", label: "DeepSeek" },
25
+ MOONSHOT_API_KEY: { prefix: "sk-", label: "Kimi / Moonshot" },
26
+ };
27
+ //# sourceMappingURL=api-key-prefix-hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key-prefix-hints.js","sourceRoot":"","sources":["../../src/config/api-key-prefix-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,MAAM,CAAC,MAAM,oBAAoB,GAC/B;IACE,iBAAiB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE;IAC5D,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClD,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;IAC7C,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;IAC7D,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACtD,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAC9D,CAAC"}