@elizaos/shared 2.0.0-alpha.538 → 2.0.11-beta.7

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 (729) hide show
  1. package/api/agent-api-types.d.ts +210 -0
  2. package/api/agent-api-types.d.ts.map +1 -0
  3. package/api/agent-api-types.js +11 -0
  4. package/api/agent-api-types.js.map +1 -0
  5. package/api/http-helpers.d.ts +3 -0
  6. package/api/http-helpers.d.ts.map +1 -0
  7. package/api/http-helpers.js +2 -0
  8. package/api/http-helpers.js.map +1 -0
  9. package/api/route-helpers.d.ts +2 -0
  10. package/api/route-helpers.d.ts.map +1 -0
  11. package/api/route-helpers.js +2 -0
  12. package/api/route-helpers.js.map +1 -0
  13. package/app-hero-art.d.ts.map +1 -1
  14. package/app-hero-art.js +5 -13
  15. package/app-hero-art.js.map +1 -1
  16. package/brand/index.d.ts +130 -0
  17. package/brand/index.d.ts.map +1 -0
  18. package/brand/index.js +126 -0
  19. package/brand/index.js.map +1 -0
  20. package/brand-classic/index.d.ts +158 -0
  21. package/brand-classic/index.d.ts.map +1 -0
  22. package/brand-classic/index.js +91 -0
  23. package/brand-classic/index.js.map +1 -0
  24. package/character-language.d.ts +16 -0
  25. package/character-language.d.ts.map +1 -0
  26. package/character-language.js +58 -0
  27. package/character-language.js.map +1 -0
  28. package/{onboarding-presets.characters.d.ts → character-presets.characters.d.ts} +2 -2
  29. package/character-presets.characters.d.ts.map +1 -0
  30. package/{onboarding-presets.characters.js → character-presets.characters.js} +1 -1
  31. package/character-presets.characters.js.map +1 -0
  32. package/{onboarding-presets.d.ts → character-presets.d.ts} +7 -5
  33. package/character-presets.d.ts.map +1 -0
  34. package/{onboarding-presets.js → character-presets.js} +53 -58
  35. package/character-presets.js.map +1 -0
  36. package/{onboarding-presets.shared.d.ts → character-presets.shared.d.ts} +1 -1
  37. package/character-presets.shared.d.ts.map +1 -0
  38. package/{onboarding-presets.shared.js → character-presets.shared.js} +1 -1
  39. package/character-presets.shared.js.map +1 -0
  40. package/checkout/index.d.ts +48 -0
  41. package/checkout/index.d.ts.map +1 -0
  42. package/checkout/index.js +59 -0
  43. package/checkout/index.js.map +1 -0
  44. package/cli/parse-duration.d.ts +5 -0
  45. package/cli/parse-duration.d.ts.map +1 -0
  46. package/cli/parse-duration.js +26 -0
  47. package/cli/parse-duration.js.map +1 -0
  48. package/config/allowed-hosts.d.ts +8 -0
  49. package/config/allowed-hosts.d.ts.map +1 -0
  50. package/config/allowed-hosts.js +44 -0
  51. package/config/allowed-hosts.js.map +1 -0
  52. package/config/api-key-prefix-hints.d.ts +24 -0
  53. package/config/api-key-prefix-hints.d.ts.map +1 -0
  54. package/config/api-key-prefix-hints.js +26 -0
  55. package/config/api-key-prefix-hints.js.map +1 -0
  56. package/config/app-config.d.ts +274 -0
  57. package/config/app-config.d.ts.map +1 -0
  58. package/config/app-config.js +64 -0
  59. package/config/app-config.js.map +1 -0
  60. package/config/app-manifest.d.ts +75 -0
  61. package/config/app-manifest.d.ts.map +1 -0
  62. package/config/app-manifest.js +115 -0
  63. package/config/app-manifest.js.map +1 -0
  64. package/config/boot-config-store.d.ts +74 -0
  65. package/config/boot-config-store.d.ts.map +1 -0
  66. package/config/boot-config-store.js +121 -0
  67. package/config/boot-config-store.js.map +1 -0
  68. package/config/boot-config.d.ts +6 -0
  69. package/config/boot-config.d.ts.map +1 -0
  70. package/config/boot-config.js +6 -0
  71. package/config/boot-config.js.map +1 -0
  72. package/config/branding.d.ts +53 -0
  73. package/config/branding.d.ts.map +1 -0
  74. package/config/branding.js +23 -0
  75. package/config/branding.js.map +1 -0
  76. package/config/cloud-only.d.ts +8 -0
  77. package/config/cloud-only.d.ts.map +1 -0
  78. package/config/cloud-only.js +26 -0
  79. package/config/cloud-only.js.map +1 -0
  80. package/config/config-catalog.d.ts +371 -0
  81. package/config/config-catalog.d.ts.map +1 -0
  82. package/config/config-catalog.js +719 -0
  83. package/config/config-catalog.js.map +1 -0
  84. package/config/config-paths.d.ts +11 -0
  85. package/config/config-paths.d.ts.map +1 -0
  86. package/config/config-paths.js +74 -0
  87. package/config/config-paths.js.map +1 -0
  88. package/config/config.d.ts +11 -0
  89. package/config/config.d.ts.map +1 -0
  90. package/config/config.js +23 -0
  91. package/config/config.js.map +1 -0
  92. package/config/distribution-profile.d.ts +16 -0
  93. package/config/distribution-profile.d.ts.map +1 -0
  94. package/config/distribution-profile.js +29 -0
  95. package/config/distribution-profile.js.map +1 -0
  96. package/config/env-vars.d.ts +2 -0
  97. package/config/env-vars.d.ts.map +1 -0
  98. package/config/env-vars.js +2 -0
  99. package/config/env-vars.js.map +1 -0
  100. package/config/index.d.ts +12 -0
  101. package/config/index.d.ts.map +1 -0
  102. package/config/index.js +15 -0
  103. package/config/index.js.map +1 -0
  104. package/config/plugin-auto-enable-engine.d.ts +4 -0
  105. package/config/plugin-auto-enable-engine.d.ts.map +1 -0
  106. package/config/plugin-auto-enable-engine.js +45 -0
  107. package/config/plugin-auto-enable-engine.js.map +1 -0
  108. package/config/plugin-auto-enable.d.ts +2 -0
  109. package/config/plugin-auto-enable.d.ts.map +1 -0
  110. package/config/plugin-auto-enable.js +8 -0
  111. package/config/plugin-auto-enable.js.map +1 -0
  112. package/config/plugin-manifest.d.ts +89 -0
  113. package/config/plugin-manifest.d.ts.map +1 -0
  114. package/config/plugin-manifest.js +281 -0
  115. package/config/plugin-manifest.js.map +1 -0
  116. package/config/plugin-ui-spec.d.ts +42 -0
  117. package/config/plugin-ui-spec.d.ts.map +1 -0
  118. package/config/plugin-ui-spec.js +257 -0
  119. package/config/plugin-ui-spec.js.map +1 -0
  120. package/config/runtime-mode.d.ts +54 -0
  121. package/config/runtime-mode.d.ts.map +1 -0
  122. package/config/runtime-mode.js +107 -0
  123. package/config/runtime-mode.js.map +1 -0
  124. package/config/runtime-overrides.d.ts +16 -0
  125. package/config/runtime-overrides.d.ts.map +1 -0
  126. package/config/runtime-overrides.js +49 -0
  127. package/config/runtime-overrides.js.map +1 -0
  128. package/config/schema.d.ts +7 -0
  129. package/config/schema.d.ts.map +1 -0
  130. package/config/schema.js +30 -0
  131. package/config/schema.js.map +1 -0
  132. package/config/types.agent-defaults.d.ts +6 -1
  133. package/config/types.agent-defaults.d.ts.map +1 -1
  134. package/config/types.agents.d.ts +9 -4
  135. package/config/types.agents.d.ts.map +1 -1
  136. package/config/types.eliza.d.ts +27 -49
  137. package/config/types.eliza.d.ts.map +1 -1
  138. package/config/types.messages.d.ts +2 -2
  139. package/config/types.messages.d.ts.map +1 -1
  140. package/config/types.tools.d.ts +2 -2
  141. package/config/types.tools.d.ts.map +1 -1
  142. package/config/ui-spec.d.ts +164 -0
  143. package/config/ui-spec.d.ts.map +1 -0
  144. package/config/ui-spec.js +14 -0
  145. package/config/ui-spec.js.map +1 -0
  146. package/config/wechat-config.d.ts +2 -0
  147. package/config/wechat-config.d.ts.map +1 -0
  148. package/config/wechat-config.js +2 -0
  149. package/config/wechat-config.js.map +1 -0
  150. package/config/zod-schema.agent-runtime.d.ts +1087 -0
  151. package/config/zod-schema.agent-runtime.d.ts.map +1 -0
  152. package/config/zod-schema.agent-runtime.js +764 -0
  153. package/config/zod-schema.agent-runtime.js.map +1 -0
  154. package/config/zod-schema.core.d.ts +1048 -0
  155. package/config/zod-schema.core.d.ts.map +1 -0
  156. package/config/zod-schema.core.js +707 -0
  157. package/config/zod-schema.core.js.map +1 -0
  158. package/connector-cred-types.d.ts +3 -3
  159. package/connector-cred-types.js +4 -4
  160. package/connectors.d.ts +0 -8
  161. package/connectors.d.ts.map +1 -1
  162. package/connectors.js +26 -50
  163. package/connectors.js.map +1 -1
  164. package/contracts/agent-routes.d.ts +63 -0
  165. package/contracts/agent-routes.d.ts.map +1 -0
  166. package/contracts/agent-routes.js +55 -0
  167. package/contracts/agent-routes.js.map +1 -0
  168. package/contracts/app-permissions-routes.d.ts +148 -0
  169. package/contracts/app-permissions-routes.d.ts.map +1 -0
  170. package/contracts/app-permissions-routes.js +96 -0
  171. package/contracts/app-permissions-routes.js.map +1 -0
  172. package/contracts/app-permissions.d.ts +122 -0
  173. package/contracts/app-permissions.d.ts.map +1 -0
  174. package/contracts/app-permissions.js +163 -0
  175. package/contracts/app-permissions.js.map +1 -0
  176. package/contracts/apps-favorites-routes.d.ts +44 -0
  177. package/contracts/apps-favorites-routes.d.ts.map +1 -0
  178. package/contracts/apps-favorites-routes.js +48 -0
  179. package/contracts/apps-favorites-routes.js.map +1 -0
  180. package/contracts/apps-lifecycle-routes.d.ts +185 -0
  181. package/contracts/apps-lifecycle-routes.d.ts.map +1 -0
  182. package/contracts/apps-lifecycle-routes.js +204 -0
  183. package/contracts/apps-lifecycle-routes.js.map +1 -0
  184. package/contracts/apps-loading-routes.d.ts +64 -0
  185. package/contracts/apps-loading-routes.d.ts.map +1 -0
  186. package/contracts/apps-loading-routes.js +65 -0
  187. package/contracts/apps-loading-routes.js.map +1 -0
  188. package/contracts/apps-runs-routes.d.ts +33 -0
  189. package/contracts/apps-runs-routes.d.ts.map +1 -0
  190. package/contracts/apps-runs-routes.js +38 -0
  191. package/contracts/apps-runs-routes.js.map +1 -0
  192. package/contracts/apps.d.ts +883 -3
  193. package/contracts/apps.d.ts.map +1 -1
  194. package/contracts/apps.js +278 -40
  195. package/contracts/apps.js.map +1 -1
  196. package/contracts/auth-routes.d.ts +23 -0
  197. package/contracts/auth-routes.d.ts.map +1 -0
  198. package/contracts/auth-routes.js +25 -0
  199. package/contracts/auth-routes.js.map +1 -0
  200. package/contracts/awareness.d.ts +1 -1
  201. package/contracts/calendar.d.ts +181 -0
  202. package/contracts/calendar.d.ts.map +1 -0
  203. package/contracts/calendar.js +19 -0
  204. package/contracts/calendar.js.map +1 -0
  205. package/contracts/character-routes.d.ts +70 -0
  206. package/contracts/character-routes.d.ts.map +1 -0
  207. package/contracts/character-routes.js +49 -0
  208. package/contracts/character-routes.js.map +1 -0
  209. package/contracts/cloud-coding-containers.d.ts +432 -0
  210. package/contracts/cloud-coding-containers.d.ts.map +1 -0
  211. package/contracts/cloud-coding-containers.js +135 -0
  212. package/contracts/cloud-coding-containers.js.map +1 -0
  213. package/contracts/cloud-topology.js +7 -7
  214. package/contracts/cloud-topology.js.map +1 -1
  215. package/contracts/config.d.ts +52 -4
  216. package/contracts/config.d.ts.map +1 -1
  217. package/contracts/connector-routes.d.ts +39 -0
  218. package/contracts/connector-routes.d.ts.map +1 -0
  219. package/contracts/connector-routes.js +50 -0
  220. package/contracts/connector-routes.js.map +1 -0
  221. package/contracts/content-pack.d.ts +2 -2
  222. package/contracts/content-pack.d.ts.map +1 -1
  223. package/contracts/content-pack.js +1 -1
  224. package/contracts/conversation-routes.d.ts +195 -0
  225. package/contracts/conversation-routes.d.ts.map +1 -0
  226. package/contracts/conversation-routes.js +107 -0
  227. package/contracts/conversation-routes.js.map +1 -0
  228. package/contracts/diagnostics-routes.d.ts +33 -0
  229. package/contracts/diagnostics-routes.d.ts.map +1 -0
  230. package/contracts/diagnostics-routes.js +26 -0
  231. package/contracts/diagnostics-routes.js.map +1 -0
  232. package/contracts/feature-result.d.ts +24 -0
  233. package/contracts/feature-result.d.ts.map +1 -0
  234. package/contracts/feature-result.js +7 -0
  235. package/contracts/feature-result.js.map +1 -0
  236. package/contracts/{onboarding.d.ts → first-run-options.d.ts} +172 -69
  237. package/contracts/first-run-options.d.ts.map +1 -0
  238. package/contracts/{onboarding.js → first-run-options.js} +222 -91
  239. package/contracts/first-run-options.js.map +1 -0
  240. package/contracts/first-run-routes.d.ts +167 -0
  241. package/contracts/first-run-routes.d.ts.map +1 -0
  242. package/contracts/first-run-routes.js +115 -0
  243. package/contracts/first-run-routes.js.map +1 -0
  244. package/contracts/health.d.ts +30 -0
  245. package/contracts/health.d.ts.map +1 -0
  246. package/contracts/health.js +29 -0
  247. package/contracts/health.js.map +1 -0
  248. package/contracts/inbox-routes.d.ts +37 -0
  249. package/contracts/inbox-routes.d.ts.map +1 -0
  250. package/contracts/inbox-routes.js +44 -0
  251. package/contracts/inbox-routes.js.map +1 -0
  252. package/contracts/index.d.ts +30 -3
  253. package/contracts/index.d.ts.map +1 -1
  254. package/contracts/index.js +30 -3
  255. package/contracts/index.js.map +1 -1
  256. package/contracts/memory-routes.d.ts +27 -0
  257. package/contracts/memory-routes.d.ts.map +1 -0
  258. package/contracts/memory-routes.js +23 -0
  259. package/contracts/memory-routes.js.map +1 -0
  260. package/contracts/misc-routes.d.ts +192 -0
  261. package/contracts/misc-routes.d.ts.map +1 -0
  262. package/contracts/misc-routes.js +155 -0
  263. package/contracts/misc-routes.js.map +1 -0
  264. package/contracts/permissions-routes.d.ts +31 -0
  265. package/contracts/permissions-routes.d.ts.map +1 -0
  266. package/contracts/permissions-routes.js +34 -0
  267. package/contracts/permissions-routes.js.map +1 -0
  268. package/contracts/permissions.d.ts +81 -11
  269. package/contracts/permissions.d.ts.map +1 -1
  270. package/contracts/permissions.js +37 -1
  271. package/contracts/permissions.js.map +1 -1
  272. package/contracts/{lifeops.d.ts → personal-assistant.d.ts} +368 -170
  273. package/contracts/personal-assistant.d.ts.map +1 -0
  274. package/contracts/{lifeops.js → personal-assistant.js} +39 -13
  275. package/contracts/personal-assistant.js.map +1 -0
  276. package/contracts/plugin-routes.d.ts +105 -0
  277. package/contracts/plugin-routes.d.ts.map +1 -0
  278. package/contracts/plugin-routes.js +81 -0
  279. package/contracts/plugin-routes.js.map +1 -0
  280. package/contracts/relationships-routes.d.ts +23 -0
  281. package/contracts/relationships-routes.d.ts.map +1 -0
  282. package/contracts/relationships-routes.js +22 -0
  283. package/contracts/relationships-routes.js.map +1 -0
  284. package/contracts/service-routing.d.ts +7 -121
  285. package/contracts/service-routing.d.ts.map +1 -1
  286. package/contracts/service-routing.js +19 -12
  287. package/contracts/service-routing.js.map +1 -1
  288. package/contracts/skills-routes.d.ts +116 -0
  289. package/contracts/skills-routes.d.ts.map +1 -0
  290. package/contracts/skills-routes.js +115 -0
  291. package/contracts/skills-routes.js.map +1 -0
  292. package/contracts/subscription-routes.d.ts +47 -0
  293. package/contracts/subscription-routes.d.ts.map +1 -0
  294. package/contracts/subscription-routes.js +50 -0
  295. package/contracts/subscription-routes.js.map +1 -0
  296. package/contracts/tail-routes.d.ts +78 -0
  297. package/contracts/tail-routes.d.ts.map +1 -0
  298. package/contracts/tail-routes.js +63 -0
  299. package/contracts/tail-routes.js.map +1 -0
  300. package/contracts/theme.d.ts +0 -2
  301. package/contracts/theme.d.ts.map +1 -1
  302. package/contracts/theme.js +0 -2
  303. package/contracts/theme.js.map +1 -1
  304. package/contracts/update-status.d.ts +100 -0
  305. package/contracts/update-status.d.ts.map +1 -0
  306. package/contracts/update-status.js +45 -0
  307. package/contracts/update-status.js.map +1 -0
  308. package/contracts/wallet-routes.d.ts +82 -0
  309. package/contracts/wallet-routes.d.ts.map +1 -0
  310. package/contracts/wallet-routes.js +49 -0
  311. package/contracts/wallet-routes.js.map +1 -0
  312. package/contracts/wallet.d.ts +12 -570
  313. package/contracts/wallet.d.ts.map +1 -1
  314. package/contracts/wallet.js +139 -0
  315. package/contracts/wallet.js.map +1 -1
  316. package/contracts/workbench-routes.d.ts +231 -0
  317. package/contracts/workbench-routes.d.ts.map +1 -0
  318. package/contracts/workbench-routes.js +183 -0
  319. package/contracts/workbench-routes.js.map +1 -0
  320. package/db/drizzle-database.d.ts +13 -0
  321. package/db/drizzle-database.d.ts.map +1 -0
  322. package/db/drizzle-database.js +2 -0
  323. package/db/drizzle-database.js.map +1 -0
  324. package/dev-settings-banner-style.d.ts +1 -1
  325. package/dev-settings-banner-style.js +2 -2
  326. package/dev-settings-banner-style.js.map +1 -1
  327. package/dev-settings-figlet-heading.d.ts.map +1 -1
  328. package/dev-settings-figlet-heading.js +1 -8
  329. package/dev-settings-figlet-heading.js.map +1 -1
  330. package/elizacloud/base-url.d.ts +6 -0
  331. package/elizacloud/base-url.d.ts.map +1 -0
  332. package/elizacloud/base-url.js +65 -0
  333. package/elizacloud/base-url.js.map +1 -0
  334. package/elizacloud/cloud-provisioning.d.ts +9 -0
  335. package/elizacloud/cloud-provisioning.d.ts.map +1 -0
  336. package/elizacloud/cloud-provisioning.js +25 -0
  337. package/elizacloud/cloud-provisioning.js.map +1 -0
  338. package/elizacloud/cloud-secrets.d.ts +23 -0
  339. package/elizacloud/cloud-secrets.d.ts.map +1 -0
  340. package/elizacloud/cloud-secrets.js +51 -0
  341. package/elizacloud/cloud-secrets.js.map +1 -0
  342. package/elizacloud/index.d.ts +6 -0
  343. package/elizacloud/index.d.ts.map +1 -0
  344. package/elizacloud/index.js +6 -0
  345. package/elizacloud/index.js.map +1 -0
  346. package/elizacloud/is-cloud-reachable.d.ts +19 -0
  347. package/elizacloud/is-cloud-reachable.d.ts.map +1 -0
  348. package/elizacloud/is-cloud-reachable.js +44 -0
  349. package/elizacloud/is-cloud-reachable.js.map +1 -0
  350. package/elizacloud/server-cloud-tts.d.ts +21 -0
  351. package/elizacloud/server-cloud-tts.d.ts.map +1 -0
  352. package/elizacloud/server-cloud-tts.js +293 -0
  353. package/elizacloud/server-cloud-tts.js.map +1 -0
  354. package/email-classification/email-classifier.d.ts +57 -0
  355. package/email-classification/email-classifier.d.ts.map +1 -0
  356. package/email-classification/email-classifier.js +348 -0
  357. package/email-classification/email-classifier.js.map +1 -0
  358. package/email-classification/index.d.ts +12 -0
  359. package/email-classification/index.d.ts.map +1 -0
  360. package/email-classification/index.js +12 -0
  361. package/email-classification/index.js.map +1 -0
  362. package/email-classification/wrap-untrusted-email-content.d.ts +15 -0
  363. package/email-classification/wrap-untrusted-email-content.d.ts.map +1 -0
  364. package/email-classification/wrap-untrusted-email-content.js +24 -0
  365. package/email-classification/wrap-untrusted-email-content.js.map +1 -0
  366. package/env-utils.d.ts +1 -4
  367. package/env-utils.d.ts.map +1 -1
  368. package/env-utils.js +9 -1
  369. package/env-utils.js.map +1 -1
  370. package/events/index.d.ts +68 -0
  371. package/events/index.d.ts.map +1 -0
  372. package/events/index.js +53 -0
  373. package/events/index.js.map +1 -0
  374. package/hardware-catalog/index.d.ts +204 -0
  375. package/hardware-catalog/index.d.ts.map +1 -0
  376. package/hardware-catalog/index.js +174 -0
  377. package/hardware-catalog/index.js.map +1 -0
  378. package/i18n/generated/validation-keyword-data.d.ts +2711 -748
  379. package/i18n/generated/validation-keyword-data.d.ts.map +1 -1
  380. package/i18n/generated/validation-keyword-data.js +2711 -748
  381. package/i18n/generated/validation-keyword-data.js.map +1 -1
  382. package/i18n/keyword-matching.d.ts.map +1 -1
  383. package/i18n/keyword-matching.js +4 -1
  384. package/i18n/keyword-matching.js.map +1 -1
  385. package/index.d.ts +82 -7
  386. package/index.d.ts.map +1 -1
  387. package/index.js +109 -13
  388. package/index.js.map +1 -1
  389. package/knowledge-graph/entity-types.d.ts +135 -0
  390. package/knowledge-graph/entity-types.d.ts.map +1 -0
  391. package/knowledge-graph/entity-types.js +75 -0
  392. package/knowledge-graph/entity-types.js.map +1 -0
  393. package/knowledge-graph/index.d.ts +13 -0
  394. package/knowledge-graph/index.d.ts.map +1 -0
  395. package/knowledge-graph/index.js +13 -0
  396. package/knowledge-graph/index.js.map +1 -0
  397. package/knowledge-graph/merge.d.ts +76 -0
  398. package/knowledge-graph/merge.d.ts.map +1 -0
  399. package/knowledge-graph/merge.js +175 -0
  400. package/knowledge-graph/merge.js.map +1 -0
  401. package/knowledge-graph/relationship-types.d.ts +105 -0
  402. package/knowledge-graph/relationship-types.d.ts.map +1 -0
  403. package/knowledge-graph/relationship-types.js +114 -0
  404. package/knowledge-graph/relationship-types.js.map +1 -0
  405. package/lifeops-constants/index.d.ts +9 -0
  406. package/lifeops-constants/index.d.ts.map +1 -0
  407. package/lifeops-constants/index.js +9 -0
  408. package/lifeops-constants/index.js.map +1 -0
  409. package/lifeops-constants/service-constants.d.ts +79 -0
  410. package/lifeops-constants/service-constants.d.ts.map +1 -0
  411. package/lifeops-constants/service-constants.js +123 -0
  412. package/lifeops-constants/service-constants.js.map +1 -0
  413. package/lifeops-normalize/index.d.ts +12 -0
  414. package/lifeops-normalize/index.d.ts.map +1 -0
  415. package/lifeops-normalize/index.js +12 -0
  416. package/lifeops-normalize/index.js.map +1 -0
  417. package/lifeops-normalize/service-error.d.ts +14 -0
  418. package/lifeops-normalize/service-error.d.ts.map +1 -0
  419. package/lifeops-normalize/service-error.js +19 -0
  420. package/lifeops-normalize/service-error.js.map +1 -0
  421. package/lifeops-normalize/service-normalize.d.ts +38 -0
  422. package/lifeops-normalize/service-normalize.d.ts.map +1 -0
  423. package/lifeops-normalize/service-normalize.js +205 -0
  424. package/lifeops-normalize/service-normalize.js.map +1 -0
  425. package/lifeops-normalize/time-zone.d.ts +12 -0
  426. package/lifeops-normalize/time-zone.d.ts.map +1 -0
  427. package/lifeops-normalize/time-zone.js +29 -0
  428. package/lifeops-normalize/time-zone.js.map +1 -0
  429. package/local-inference/catalog.d.ts +97 -0
  430. package/local-inference/catalog.d.ts.map +1 -0
  431. package/local-inference/catalog.js +547 -0
  432. package/local-inference/catalog.js.map +1 -0
  433. package/local-inference/gpu-profiles.d.ts +110 -0
  434. package/local-inference/gpu-profiles.d.ts.map +1 -0
  435. package/local-inference/gpu-profiles.js +214 -0
  436. package/local-inference/gpu-profiles.js.map +1 -0
  437. package/local-inference/index.d.ts +21 -0
  438. package/local-inference/index.d.ts.map +1 -0
  439. package/local-inference/index.js +18 -0
  440. package/local-inference/index.js.map +1 -0
  441. package/local-inference/manifest-signature.d.ts +61 -0
  442. package/local-inference/manifest-signature.d.ts.map +1 -0
  443. package/local-inference/manifest-signature.js +129 -0
  444. package/local-inference/manifest-signature.js.map +1 -0
  445. package/local-inference/network-policy.d.ts +115 -0
  446. package/local-inference/network-policy.d.ts.map +1 -0
  447. package/local-inference/network-policy.js +154 -0
  448. package/local-inference/network-policy.js.map +1 -0
  449. package/local-inference/paths.d.ts +24 -0
  450. package/local-inference/paths.d.ts.map +1 -0
  451. package/local-inference/paths.js +40 -0
  452. package/local-inference/paths.js.map +1 -0
  453. package/local-inference/providers-types.d.ts +56 -0
  454. package/local-inference/providers-types.d.ts.map +1 -0
  455. package/local-inference/providers-types.js +19 -0
  456. package/local-inference/providers-types.js.map +1 -0
  457. package/local-inference/routing-preferences.d.ts +31 -0
  458. package/local-inference/routing-preferences.d.ts.map +1 -0
  459. package/local-inference/routing-preferences.js +73 -0
  460. package/local-inference/routing-preferences.js.map +1 -0
  461. package/local-inference/throughput.d.ts +74 -0
  462. package/local-inference/throughput.d.ts.map +1 -0
  463. package/local-inference/throughput.js +84 -0
  464. package/local-inference/throughput.js.map +1 -0
  465. package/local-inference/types.d.ts +510 -0
  466. package/local-inference/types.d.ts.map +1 -0
  467. package/local-inference/types.js +22 -0
  468. package/local-inference/types.js.map +1 -0
  469. package/local-inference/verify.d.ts +39 -0
  470. package/local-inference/verify.d.ts.map +1 -0
  471. package/local-inference/verify.js +105 -0
  472. package/local-inference/verify.js.map +1 -0
  473. package/local-inference/voice-models.d.ts +156 -0
  474. package/local-inference/voice-models.d.ts.map +1 -0
  475. package/local-inference/voice-models.js +746 -0
  476. package/local-inference/voice-models.js.map +1 -0
  477. package/local-inference-gpu/gpu-overrides.d.ts +97 -0
  478. package/local-inference-gpu/gpu-overrides.d.ts.map +1 -0
  479. package/local-inference-gpu/gpu-overrides.js +76 -0
  480. package/local-inference-gpu/gpu-overrides.js.map +1 -0
  481. package/local-inference-gpu/gpu-profile-loader.d.ts +83 -0
  482. package/local-inference-gpu/gpu-profile-loader.d.ts.map +1 -0
  483. package/local-inference-gpu/gpu-profile-loader.js +196 -0
  484. package/local-inference-gpu/gpu-profile-loader.js.map +1 -0
  485. package/local-inference-gpu/gpu-profile-schema.d.ts +208 -0
  486. package/local-inference-gpu/gpu-profile-schema.d.ts.map +1 -0
  487. package/local-inference-gpu/gpu-profile-schema.js +123 -0
  488. package/local-inference-gpu/gpu-profile-schema.js.map +1 -0
  489. package/local-inference-gpu/gpu-tier-detect.d.ts +61 -0
  490. package/local-inference-gpu/gpu-tier-detect.d.ts.map +1 -0
  491. package/local-inference-gpu/gpu-tier-detect.js +93 -0
  492. package/local-inference-gpu/gpu-tier-detect.js.map +1 -0
  493. package/local-inference-gpu/gpu-tier-profiles.d.ts +110 -0
  494. package/local-inference-gpu/gpu-tier-profiles.d.ts.map +1 -0
  495. package/local-inference-gpu/gpu-tier-profiles.js +235 -0
  496. package/local-inference-gpu/gpu-tier-profiles.js.map +1 -0
  497. package/package.json +111 -160
  498. package/platform/is-native-server.d.ts +9 -0
  499. package/platform/is-native-server.d.ts.map +1 -0
  500. package/platform/is-native-server.js +12 -0
  501. package/platform/is-native-server.js.map +1 -0
  502. package/restart.d.ts +2 -1
  503. package/restart.d.ts.map +1 -1
  504. package/restart.js +3 -2
  505. package/restart.js.map +1 -1
  506. package/runtime-env.d.ts +2 -2
  507. package/runtime-env.d.ts.map +1 -1
  508. package/runtime-env.js +15 -7
  509. package/runtime-env.js.map +1 -1
  510. package/self-edit.d.ts +4 -4
  511. package/self-edit.d.ts.map +1 -1
  512. package/self-edit.js +5 -5
  513. package/self-edit.js.map +1 -1
  514. package/settings-debug.d.ts.map +1 -1
  515. package/settings-debug.js +45 -38
  516. package/settings-debug.js.map +1 -1
  517. package/spoken-text.d.ts.map +1 -1
  518. package/spoken-text.js +3 -2
  519. package/spoken-text.js.map +1 -1
  520. package/steward-session-client/index.d.ts +172 -0
  521. package/steward-session-client/index.d.ts.map +1 -0
  522. package/steward-session-client/index.js +248 -0
  523. package/steward-session-client/index.js.map +1 -0
  524. package/steward-session-client/steward-oauth-pkce.d.ts +24 -0
  525. package/steward-session-client/steward-oauth-pkce.d.ts.map +1 -0
  526. package/steward-session-client/steward-oauth-pkce.js +105 -0
  527. package/steward-session-client/steward-oauth-pkce.js.map +1 -0
  528. package/terminal/links.d.ts +9 -0
  529. package/terminal/links.d.ts.map +1 -0
  530. package/terminal/links.js +21 -0
  531. package/terminal/links.js.map +1 -0
  532. package/terminal/palette.d.ts +11 -0
  533. package/terminal/palette.d.ts.map +1 -0
  534. package/terminal/palette.js +13 -0
  535. package/terminal/palette.js.map +1 -0
  536. package/terminal/theme.d.ts +17 -0
  537. package/terminal/theme.d.ts.map +1 -0
  538. package/terminal/theme.js +25 -0
  539. package/terminal/theme.js.map +1 -0
  540. package/test-support/process-helpers.d.ts +13 -0
  541. package/test-support/process-helpers.d.ts.map +1 -0
  542. package/test-support/process-helpers.js +24 -0
  543. package/test-support/process-helpers.js.map +1 -0
  544. package/test-support/test-helpers.d.ts +79 -0
  545. package/test-support/test-helpers.d.ts.map +1 -0
  546. package/test-support/test-helpers.js +341 -0
  547. package/test-support/test-helpers.js.map +1 -0
  548. package/transcripts.d.ts +111 -0
  549. package/transcripts.d.ts.map +1 -0
  550. package/transcripts.js +106 -0
  551. package/transcripts.js.map +1 -0
  552. package/type-guards.d.ts +1 -23
  553. package/type-guards.d.ts.map +1 -1
  554. package/type-guards.js +6 -23
  555. package/type-guards.js.map +1 -1
  556. package/types/index.d.ts +654 -0
  557. package/types/index.d.ts.map +1 -0
  558. package/types/index.js +5 -0
  559. package/types/index.js.map +1 -0
  560. package/utils/asset-url.d.ts +24 -0
  561. package/utils/asset-url.d.ts.map +1 -0
  562. package/utils/asset-url.js +151 -0
  563. package/utils/asset-url.js.map +1 -0
  564. package/utils/assistant-text.d.ts +13 -0
  565. package/utils/assistant-text.d.ts.map +1 -0
  566. package/utils/assistant-text.js +292 -0
  567. package/utils/assistant-text.js.map +1 -0
  568. package/utils/browser-tab-kit-types.d.ts +81 -0
  569. package/utils/browser-tab-kit-types.d.ts.map +1 -0
  570. package/utils/browser-tab-kit-types.js +23 -0
  571. package/utils/browser-tab-kit-types.js.map +1 -0
  572. package/utils/browser-tabs-renderer-registry.d.ts +56 -0
  573. package/utils/browser-tabs-renderer-registry.d.ts.map +1 -0
  574. package/utils/browser-tabs-renderer-registry.js +1282 -0
  575. package/utils/browser-tabs-renderer-registry.js.map +1 -0
  576. package/utils/character-message-examples.d.ts +7 -0
  577. package/utils/character-message-examples.d.ts.map +1 -0
  578. package/utils/character-message-examples.js +123 -0
  579. package/utils/character-message-examples.js.map +1 -0
  580. package/utils/cloud-status.d.ts +3 -0
  581. package/utils/cloud-status.d.ts.map +1 -0
  582. package/utils/cloud-status.js +11 -0
  583. package/utils/cloud-status.js.map +1 -0
  584. package/utils/documents-upload-image.d.ts +27 -0
  585. package/utils/documents-upload-image.d.ts.map +1 -0
  586. package/utils/documents-upload-image.js +147 -0
  587. package/utils/documents-upload-image.js.map +1 -0
  588. package/utils/eliza-cloud-model-route.d.ts +3 -0
  589. package/utils/eliza-cloud-model-route.d.ts.map +1 -0
  590. package/utils/eliza-cloud-model-route.js +10 -0
  591. package/utils/eliza-cloud-model-route.js.map +1 -0
  592. package/utils/eliza-globals.d.ts +13 -0
  593. package/utils/eliza-globals.d.ts.map +1 -0
  594. package/utils/eliza-globals.js +49 -0
  595. package/utils/eliza-globals.js.map +1 -0
  596. package/utils/eliza-root.d.ts +9 -0
  597. package/utils/eliza-root.d.ts.map +1 -0
  598. package/utils/eliza-root.js +102 -0
  599. package/utils/eliza-root.js.map +1 -0
  600. package/utils/env.d.ts +34 -0
  601. package/utils/env.d.ts.map +1 -0
  602. package/utils/env.js +142 -0
  603. package/utils/env.js.map +1 -0
  604. package/utils/errors.d.ts +13 -0
  605. package/utils/errors.d.ts.map +1 -0
  606. package/utils/errors.js +26 -0
  607. package/utils/errors.js.map +1 -0
  608. package/utils/exec-safety.d.ts +2 -0
  609. package/utils/exec-safety.d.ts.map +1 -0
  610. package/utils/exec-safety.js +25 -0
  611. package/utils/exec-safety.js.map +1 -0
  612. package/utils/format.d.ts +85 -0
  613. package/utils/format.d.ts.map +1 -0
  614. package/utils/format.js +140 -0
  615. package/utils/format.js.map +1 -0
  616. package/utils/labels.d.ts +6 -0
  617. package/utils/labels.d.ts.map +1 -0
  618. package/utils/labels.js +42 -0
  619. package/utils/labels.js.map +1 -0
  620. package/utils/log-prefix.d.ts +2 -0
  621. package/utils/log-prefix.d.ts.map +1 -0
  622. package/utils/log-prefix.js +44 -0
  623. package/utils/log-prefix.js.map +1 -0
  624. package/utils/name-tokens.d.ts +24 -0
  625. package/utils/name-tokens.d.ts.map +1 -0
  626. package/utils/name-tokens.js +37 -0
  627. package/utils/name-tokens.js.map +1 -0
  628. package/utils/namespace-defaults.d.ts +10 -0
  629. package/utils/namespace-defaults.d.ts.map +1 -0
  630. package/utils/namespace-defaults.js +17 -0
  631. package/utils/namespace-defaults.js.map +1 -0
  632. package/utils/number-parsing.d.ts +26 -0
  633. package/utils/number-parsing.d.ts.map +1 -0
  634. package/utils/number-parsing.js +57 -0
  635. package/utils/number-parsing.js.map +1 -0
  636. package/utils/owner-name.d.ts +3 -0
  637. package/utils/owner-name.d.ts.map +1 -0
  638. package/utils/owner-name.js +8 -0
  639. package/utils/owner-name.js.map +1 -0
  640. package/utils/permission-deep-links.d.ts +35 -0
  641. package/utils/permission-deep-links.d.ts.map +1 -0
  642. package/utils/permission-deep-links.js +95 -0
  643. package/utils/permission-deep-links.js.map +1 -0
  644. package/utils/rate-limiter.d.ts +32 -0
  645. package/utils/rate-limiter.d.ts.map +1 -0
  646. package/utils/rate-limiter.js +53 -0
  647. package/utils/rate-limiter.js.map +1 -0
  648. package/utils/serialise.d.ts +12 -0
  649. package/utils/serialise.d.ts.map +1 -0
  650. package/utils/serialise.js +22 -0
  651. package/utils/serialise.js.map +1 -0
  652. package/utils/sql-compat.d.ts +10 -0
  653. package/utils/sql-compat.d.ts.map +1 -0
  654. package/utils/sql-compat.js +112 -0
  655. package/utils/sql-compat.js.map +1 -0
  656. package/utils/streaming-text.d.ts +9 -0
  657. package/utils/streaming-text.d.ts.map +1 -0
  658. package/utils/streaming-text.js +116 -0
  659. package/utils/streaming-text.js.map +1 -0
  660. package/utils/subscription-auth.d.ts +9 -0
  661. package/utils/subscription-auth.d.ts.map +1 -0
  662. package/utils/subscription-auth.js +49 -0
  663. package/utils/subscription-auth.js.map +1 -0
  664. package/utils/trajectory-format.d.ts +6 -0
  665. package/utils/trajectory-format.d.ts.map +1 -0
  666. package/utils/trajectory-format.js +44 -0
  667. package/utils/trajectory-format.js.map +1 -0
  668. package/utils/tts-debug.d.ts +10 -0
  669. package/utils/tts-debug.d.ts.map +1 -0
  670. package/utils/tts-debug.js +73 -0
  671. package/utils/tts-debug.js.map +1 -0
  672. package/view-hero-art.d.ts +75 -0
  673. package/view-hero-art.d.ts.map +1 -0
  674. package/view-hero-art.js +360 -0
  675. package/view-hero-art.js.map +1 -0
  676. package/voice/first-sentence-snip.d.ts +68 -0
  677. package/voice/first-sentence-snip.d.ts.map +1 -0
  678. package/voice/first-sentence-snip.js +284 -0
  679. package/voice/first-sentence-snip.js.map +1 -0
  680. package/voice/voice-cancellation-token.d.ts +127 -0
  681. package/voice/voice-cancellation-token.d.ts.map +1 -0
  682. package/voice/voice-cancellation-token.js +186 -0
  683. package/voice/voice-cancellation-token.js.map +1 -0
  684. package/voice-wer.d.ts +19 -0
  685. package/voice-wer.d.ts.map +1 -0
  686. package/voice-wer.js +42 -0
  687. package/voice-wer.js.map +1 -0
  688. package/voice.d.ts +55 -0
  689. package/voice.d.ts.map +1 -0
  690. package/voice.js +337 -0
  691. package/voice.js.map +1 -0
  692. package/contracts/lifeops-extensions.d.ts +0 -340
  693. package/contracts/lifeops-extensions.d.ts.map +0 -1
  694. package/contracts/lifeops-extensions.js +0 -37
  695. package/contracts/lifeops-extensions.js.map +0 -1
  696. package/contracts/lifeops.d.ts.map +0 -1
  697. package/contracts/lifeops.js.map +0 -1
  698. package/contracts/onboarding.d.ts.map +0 -1
  699. package/contracts/onboarding.js.map +0 -1
  700. package/contracts/scratchpad.d.ts +0 -136
  701. package/contracts/scratchpad.d.ts.map +0 -1
  702. package/contracts/scratchpad.js +0 -91
  703. package/contracts/scratchpad.js.map +0 -1
  704. package/eliza-core-roles.d.ts +0 -79
  705. package/eliza-core-roles.d.ts.map +0 -1
  706. package/eliza-core-roles.js +0 -600
  707. package/eliza-core-roles.js.map +0 -1
  708. package/env-utils.impl.d.ts +0 -2
  709. package/env-utils.impl.d.ts.map +0 -1
  710. package/env-utils.impl.js +0 -10
  711. package/env-utils.impl.js.map +0 -1
  712. package/onboarding-presets.characters.d.ts.map +0 -1
  713. package/onboarding-presets.characters.js.map +0 -1
  714. package/onboarding-presets.d.ts.map +0 -1
  715. package/onboarding-presets.js.map +0 -1
  716. package/onboarding-presets.shared.d.ts.map +0 -1
  717. package/onboarding-presets.shared.js.map +0 -1
  718. package/themes/index.d.ts +0 -7
  719. package/themes/index.d.ts.map +0 -1
  720. package/themes/index.js +0 -6
  721. package/themes/index.js.map +0 -1
  722. package/themes/presets.d.ts +0 -15
  723. package/themes/presets.d.ts.map +0 -1
  724. package/themes/presets.js +0 -789
  725. package/themes/presets.js.map +0 -1
  726. package/types.d.ts +0 -27
  727. package/types.d.ts.map +0 -1
  728. package/types.js +0 -2
  729. package/types.js.map +0 -1
@@ -0,0 +1,719 @@
1
+ /**
2
+ * Plugin config catalog & registry — reverse-engineered from vercel-labs/json-render.
3
+ *
4
+ * json-render pattern:
5
+ * defineCatalog(schema, { components, actions, functions }) → type-safe catalog
6
+ * defineRegistry(catalog, { components, actions }) → maps catalog → renderers/handlers
7
+ * <Renderer spec={} registry={} /> → traverses spec, renders
8
+ *
9
+ * Our adaptation for plugin config forms:
10
+ * defineCatalog({ fields, actions?, functions? }) → field + action + validation catalog
11
+ * defineRegistry(catalog, renderers, actionHandlers?) → maps types → render/handler functions
12
+ * <ConfigRenderer> → reads JSON Schema + uiHints, renders form
13
+ *
14
+ * New in Phase 2 (json-render feature parity):
15
+ * - Actions: catalog actions with Zod params + registry handlers
16
+ * - Rich visibility: LogicExpression (and/or/not/eq/neq/gt/gte/lt/lte)
17
+ * - Validation checks: declarative checks (required/email/minLength/pattern/...)
18
+ * - Data binding: DynamicValue with path resolution (getByPath/setByPath)
19
+ * - Prompt generation: catalog.prompt() for AI system prompts
20
+ *
21
+ * @module config-catalog
22
+ */
23
+ import z from "zod";
24
+ // ── Dynamic value resolution (≈ json-render DynamicValue + getByPath) ───
25
+ function parsePathSegments(path) {
26
+ if (!path || path === "/")
27
+ return [];
28
+ return (path.startsWith("/") ? path.slice(1) : path)
29
+ .split("/")
30
+ .map((segment) => segment.replace(/~1/g, "/").replace(/~0/g, "~"));
31
+ }
32
+ /**
33
+ * Get a value from a nested object by slash-delimited path (JSON Pointer).
34
+ *
35
+ * @example
36
+ * getByPath({ a: { b: 42 } }, "a/b") // → 42
37
+ * getByPath({ items: [1, 2] }, "items/0") // → 1
38
+ */
39
+ export function getByPath(obj, path) {
40
+ if (!path || path === "/")
41
+ return obj;
42
+ const segments = parsePathSegments(path);
43
+ let current = obj;
44
+ for (const seg of segments) {
45
+ if (current == null)
46
+ return undefined;
47
+ if (Array.isArray(current)) {
48
+ if (!/^\d+$/.test(seg))
49
+ return undefined;
50
+ current = current[Number(seg)];
51
+ }
52
+ else if (typeof current === "object") {
53
+ current = current[seg];
54
+ }
55
+ else {
56
+ return undefined;
57
+ }
58
+ }
59
+ return current;
60
+ }
61
+ /**
62
+ * Set a value in a nested object by slash-delimited path.
63
+ */
64
+ export function setByPath(obj, path, value) {
65
+ const segments = parsePathSegments(path);
66
+ if (segments.length === 0)
67
+ return;
68
+ const isUnsafeKey = (k) => k === "__proto__" || k === "constructor" || k === "prototype";
69
+ for (const seg of segments) {
70
+ if (isUnsafeKey(seg))
71
+ return; // silently reject dangerous paths
72
+ }
73
+ let current = obj;
74
+ for (let i = 0; i < segments.length - 1; i++) {
75
+ const seg = segments[i];
76
+ if (isUnsafeKey(seg))
77
+ return;
78
+ if (!(seg in current) || typeof current[seg] !== "object") {
79
+ current[seg] = /^\d+$/.test(segments[i + 1]) ? [] : {};
80
+ }
81
+ current = current[seg];
82
+ }
83
+ const finalKey = segments[segments.length - 1];
84
+ if (isUnsafeKey(finalKey))
85
+ return;
86
+ current[finalKey] = value;
87
+ }
88
+ /**
89
+ * Resolve a DynamicValue — if it's a {path} reference, look up in state.
90
+ */
91
+ export function resolveDynamic(value, state) {
92
+ if (value != null && typeof value === "object" && "path" in value) {
93
+ return getByPath(state, value.path);
94
+ }
95
+ return value;
96
+ }
97
+ /**
98
+ * Search for a field value by name — ported from json-render's dashboard example.
99
+ *
100
+ * Resolution order:
101
+ * 1. Direct params lookup
102
+ * 2. Params with path format (JSON Pointer)
103
+ * 3. State walk through common form prefixes (form, newItem, create, edit, root)
104
+ */
105
+ export function findFormValue(fieldName, params, state) {
106
+ // 1. Check direct params
107
+ if (params && fieldName in params)
108
+ return params[fieldName];
109
+ // 2. Check params with path format
110
+ if (params) {
111
+ const pathValue = getByPath(params, `/${fieldName}`);
112
+ if (pathValue !== undefined)
113
+ return pathValue;
114
+ }
115
+ // 3. Search state - check common form prefixes
116
+ if (state) {
117
+ const prefixes = ["form", "newItem", "create", "edit", ""];
118
+ for (const prefix of prefixes) {
119
+ const path = prefix ? `/${prefix}/${fieldName}` : `/${fieldName}`;
120
+ const val = getByPath(state, path);
121
+ if (val !== undefined)
122
+ return val;
123
+ }
124
+ }
125
+ return undefined;
126
+ }
127
+ /**
128
+ * Interpolate `{{path}}` references in a template string using context values.
129
+ *
130
+ * Useful for action onSuccess/onError messages that reference state values.
131
+ *
132
+ * @example
133
+ * interpolateString("Created {{/form/name}} successfully", { form: { name: "Foo" } })
134
+ * // → "Created Foo successfully"
135
+ */
136
+ export function interpolateString(template, context) {
137
+ const safeTemplate = template.length > 100_000 ? template.slice(0, 100_000) : template;
138
+ return safeTemplate.replace(/\{\{([^}]{1,1024})\}\}/g, (_, path) => {
139
+ const value = getByPath(context, path.trim().startsWith("/") ? path.trim() : `/${path.trim()}`);
140
+ return value !== undefined ? String(value) : "";
141
+ });
142
+ }
143
+ // ── Rich visibility evaluation (≈ json-render evaluateVisibility) ───────
144
+ /**
145
+ * Evaluate a LogicExpression against a state model.
146
+ */
147
+ export function evaluateLogicExpression(expr, state) {
148
+ if ("and" in expr)
149
+ return expr.and.every((e) => evaluateLogicExpression(e, state));
150
+ if ("or" in expr)
151
+ return expr.or.some((e) => evaluateLogicExpression(e, state));
152
+ if ("not" in expr)
153
+ return !evaluateLogicExpression(expr.not, state);
154
+ if ("path" in expr)
155
+ return Boolean(getByPath(state, expr.path));
156
+ if ("eq" in expr) {
157
+ const [l, r] = expr.eq;
158
+ return resolveDynamic(l, state) === resolveDynamic(r, state);
159
+ }
160
+ if ("neq" in expr) {
161
+ const [l, r] = expr.neq;
162
+ return resolveDynamic(l, state) !== resolveDynamic(r, state);
163
+ }
164
+ if ("gt" in expr) {
165
+ const [l, r] = expr.gt;
166
+ const lv = resolveDynamic(l, state), rv = resolveDynamic(r, state);
167
+ return typeof lv === "number" && typeof rv === "number" && lv > rv;
168
+ }
169
+ if ("gte" in expr) {
170
+ const [l, r] = expr.gte;
171
+ const lv = resolveDynamic(l, state), rv = resolveDynamic(r, state);
172
+ return typeof lv === "number" && typeof rv === "number" && lv >= rv;
173
+ }
174
+ if ("lt" in expr) {
175
+ const [l, r] = expr.lt;
176
+ const lv = resolveDynamic(l, state), rv = resolveDynamic(r, state);
177
+ return typeof lv === "number" && typeof rv === "number" && lv < rv;
178
+ }
179
+ if ("lte" in expr) {
180
+ const [l, r] = expr.lte;
181
+ const lv = resolveDynamic(l, state), rv = resolveDynamic(r, state);
182
+ return typeof lv === "number" && typeof rv === "number" && lv <= rv;
183
+ }
184
+ return false;
185
+ }
186
+ /**
187
+ * Evaluate a full VisibilityCondition.
188
+ */
189
+ export function evaluateVisibility(condition, state) {
190
+ if (condition === undefined)
191
+ return true;
192
+ if (typeof condition === "boolean")
193
+ return condition;
194
+ if ("path" in condition && !("and" in condition) && !("or" in condition)) {
195
+ return Boolean(getByPath(state, condition.path));
196
+ }
197
+ return evaluateLogicExpression(condition, state);
198
+ }
199
+ // ── Visibility helpers (≈ json-render visibility.*) ─────────────────────
200
+ export const visibility = {
201
+ always: true,
202
+ never: false,
203
+ when: (path) => ({ path }),
204
+ and: (...conditions) => ({
205
+ and: conditions,
206
+ }),
207
+ or: (...conditions) => ({
208
+ or: conditions,
209
+ }),
210
+ not: (condition) => ({ not: condition }),
211
+ eq: (left, right) => ({
212
+ eq: [left, right],
213
+ }),
214
+ neq: (left, right) => ({
215
+ neq: [left, right],
216
+ }),
217
+ gt: (left, right) => ({ gt: [left, right] }),
218
+ gte: (left, right) => ({ gte: [left, right] }),
219
+ lt: (left, right) => ({ lt: [left, right] }),
220
+ lte: (left, right) => ({ lte: [left, right] }),
221
+ };
222
+ export const builtInValidators = {
223
+ required: (value) => {
224
+ if (value == null)
225
+ return false;
226
+ if (typeof value === "string")
227
+ return value.trim().length > 0;
228
+ if (Array.isArray(value))
229
+ return value.length > 0;
230
+ return true;
231
+ },
232
+ email: (value) => typeof value === "string" &&
233
+ value.length <= 254 &&
234
+ /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value),
235
+ minLength: (value, args) => typeof value === "string" &&
236
+ typeof args?.min === "number" &&
237
+ value.length >= args.min,
238
+ maxLength: (value, args) => typeof value === "string" &&
239
+ typeof args?.max === "number" &&
240
+ value.length <= args.max,
241
+ pattern: (value, args) => {
242
+ if (typeof value !== "string" || typeof args?.pattern !== "string")
243
+ return false;
244
+ try {
245
+ return new RegExp(args.pattern).test(value);
246
+ }
247
+ catch {
248
+ return false;
249
+ }
250
+ },
251
+ min: (value, args) => typeof value === "number" &&
252
+ typeof args?.min === "number" &&
253
+ value >= args.min,
254
+ max: (value, args) => typeof value === "number" &&
255
+ typeof args?.max === "number" &&
256
+ value <= args.max,
257
+ numeric: (value) => typeof value === "number"
258
+ ? !Number.isNaN(value)
259
+ : typeof value === "string" && !Number.isNaN(parseFloat(value)),
260
+ url: (value) => {
261
+ if (typeof value !== "string")
262
+ return false;
263
+ try {
264
+ new URL(value);
265
+ return true;
266
+ }
267
+ catch {
268
+ return false;
269
+ }
270
+ },
271
+ matches: (value, args) => value === args?.other,
272
+ };
273
+ /**
274
+ * Run validation checks for a field value.
275
+ */
276
+ export function runValidation(config, value, state, customFunctions) {
277
+ const errors = [];
278
+ // Check if validation is enabled
279
+ if (config.enabled && !evaluateLogicExpression(config.enabled, state)) {
280
+ return { valid: true, errors: [] };
281
+ }
282
+ if (config.checks) {
283
+ for (const check of config.checks) {
284
+ // Resolve dynamic args
285
+ const resolvedArgs = {};
286
+ if (check.args) {
287
+ for (const [k, v] of Object.entries(check.args)) {
288
+ resolvedArgs[k] = resolveDynamic(v, state);
289
+ }
290
+ }
291
+ const fn = builtInValidators[check.fn] ?? customFunctions?.[check.fn];
292
+ if (fn && !fn(value, resolvedArgs)) {
293
+ errors.push(check.message);
294
+ }
295
+ }
296
+ }
297
+ return { valid: errors.length === 0, errors };
298
+ }
299
+ // ── Validation check helpers (≈ json-render check.*) ────────────────────
300
+ export const check = {
301
+ required: (message = "This field is required") => ({
302
+ fn: "required",
303
+ message,
304
+ }),
305
+ email: (message = "Invalid email address") => ({
306
+ fn: "email",
307
+ message,
308
+ }),
309
+ minLength: (min, message) => ({
310
+ fn: "minLength",
311
+ args: { min },
312
+ message: message ?? `Must be at least ${min} characters`,
313
+ }),
314
+ maxLength: (max, message) => ({
315
+ fn: "maxLength",
316
+ args: { max },
317
+ message: message ?? `Must be at most ${max} characters`,
318
+ }),
319
+ pattern: (pattern, message = "Invalid format") => ({
320
+ fn: "pattern",
321
+ args: { pattern },
322
+ message,
323
+ }),
324
+ min: (min, message) => ({
325
+ fn: "min",
326
+ args: { min },
327
+ message: message ?? `Must be at least ${min}`,
328
+ }),
329
+ max: (max, message) => ({
330
+ fn: "max",
331
+ args: { max },
332
+ message: message ?? `Must be at most ${max}`,
333
+ }),
334
+ url: (message = "Invalid URL") => ({ fn: "url", message }),
335
+ matches: (otherPath, message = "Fields must match") => ({
336
+ fn: "matches",
337
+ args: { other: { path: otherPath } },
338
+ message,
339
+ }),
340
+ };
341
+ /**
342
+ * Create a type-safe field catalog.
343
+ *
344
+ * Equivalent to json-render's `defineCatalog(schema, config)`.
345
+ * Supports fields, actions, custom validation functions, and prompt generation.
346
+ */
347
+ export function defineCatalog(fieldsOrConfig) {
348
+ // Support both old (fields-only) and new (full config) signatures.
349
+ // Old format: { text: { validator, ... }, ... } — values have "validator".
350
+ // New format: { fields: { text: { ... } }, actions?: { ... } } — top-level "fields" key.
351
+ const firstVal = Object.values(fieldsOrConfig)[0];
352
+ const isPlainFields = firstVal &&
353
+ typeof firstVal === "object" &&
354
+ "validator" in firstVal;
355
+ const config = isPlainFields
356
+ ? { fields: fieldsOrConfig, actions: {} }
357
+ : fieldsOrConfig;
358
+ const fields = config.fields;
359
+ const actions = config.actions ?? {};
360
+ const functions = config.functions ?? {};
361
+ const fieldNames = Object.keys(fields);
362
+ const actionNames = Object.keys(actions);
363
+ return {
364
+ fields,
365
+ fieldNames,
366
+ actions,
367
+ actionNames,
368
+ functions,
369
+ hasField(type) {
370
+ return type in fields;
371
+ },
372
+ hasAction(name) {
373
+ return name in actions;
374
+ },
375
+ validate(type, value) {
376
+ const def = fields[type];
377
+ if (!def)
378
+ return {
379
+ success: false,
380
+ error: new z.ZodError([
381
+ {
382
+ code: "custom",
383
+ message: `Unknown field type: ${type}`,
384
+ path: [],
385
+ },
386
+ ]),
387
+ };
388
+ return def.validator.safeParse(value);
389
+ },
390
+ resolveType(property, hint) {
391
+ return resolveFieldType(property, hint, fieldNames);
392
+ },
393
+ prompt() {
394
+ return generateCatalogPrompt(fields, actions, functions);
395
+ },
396
+ };
397
+ }
398
+ // ── Prompt generation (≈ json-render catalog.prompt()) ──────────────────
399
+ function generateCatalogPrompt(fields, actions, functions) {
400
+ const lines = [];
401
+ lines.push("# Plugin Configuration UI Catalog");
402
+ lines.push("");
403
+ lines.push("You are generating a plugin configuration form. Below are the available field types, actions, and validation functions.");
404
+ lines.push("");
405
+ // Field types
406
+ lines.push("## Field Types");
407
+ lines.push("");
408
+ for (const [name, def] of Object.entries(fields)) {
409
+ lines.push(`- **${name}**: ${def.description}`);
410
+ }
411
+ lines.push("");
412
+ // Actions
413
+ if (Object.keys(actions).length > 0) {
414
+ lines.push("## Actions");
415
+ lines.push("");
416
+ for (const [name, def] of Object.entries(actions)) {
417
+ lines.push(`- **${name}**: ${def.description ?? "No description"}`);
418
+ }
419
+ lines.push("");
420
+ }
421
+ // Validation functions
422
+ const allFunctions = { ...builtInValidators, ...functions };
423
+ lines.push("## Validation Functions");
424
+ lines.push("");
425
+ lines.push(`Built-in: ${Object.keys(allFunctions).join(", ")}`);
426
+ lines.push("");
427
+ // Schema format
428
+ lines.push("## Schema Format");
429
+ lines.push("");
430
+ lines.push("Each field is described by a JSON Schema property + ConfigUiHint:");
431
+ lines.push("```json");
432
+ lines.push(JSON.stringify({
433
+ FIELD_NAME: {
434
+ schema: { type: "string", description: "..." },
435
+ hint: {
436
+ type: "text",
437
+ label: "...",
438
+ help: "...",
439
+ group: "...",
440
+ validation: { checks: [{ fn: "required", message: "..." }] },
441
+ },
442
+ },
443
+ }, null, 2));
444
+ lines.push("```");
445
+ lines.push("");
446
+ // Visibility
447
+ lines.push("## Visibility Conditions");
448
+ lines.push("");
449
+ lines.push("Fields support `visible` conditions using LogicExpression:");
450
+ lines.push('- `{ path: "FIELD_NAME" }` — truthy check');
451
+ lines.push('- `{ eq: [{ path: "FIELD" }, "value"] }` — equality');
452
+ lines.push("- `{ and: [...] }`, `{ or: [...] }`, `{ not: {...} }` — logical operators");
453
+ lines.push("- `{ gt, gte, lt, lte }` — numeric comparisons");
454
+ return lines.join("\n");
455
+ }
456
+ /**
457
+ * Create a field registry that maps catalog field types to render functions.
458
+ *
459
+ * Equivalent to json-render's `defineRegistry(catalog, { components, actions })`.
460
+ */
461
+ export function defineRegistry(catalog, renderers, actionHandlers) {
462
+ const rendererMap = renderers;
463
+ const handlerMap = (actionHandlers ?? {});
464
+ return {
465
+ catalog,
466
+ renderers: rendererMap,
467
+ actionHandlers: handlerMap,
468
+ resolve(type) {
469
+ return rendererMap[type];
470
+ },
471
+ resolveOrFallback(type) {
472
+ return rendererMap[type] ?? rendererMap.text;
473
+ },
474
+ resolveAction(name) {
475
+ return handlerMap[name];
476
+ },
477
+ };
478
+ }
479
+ // ── Field type resolution ──────────────────────────────────────────────
480
+ /**
481
+ * Resolve a JSON Schema property + ConfigUiHint to a field type name.
482
+ *
483
+ * Priority order:
484
+ * 1. Explicit hint.type override (if it's a known type)
485
+ * 2. hint.sensitive → "password"
486
+ * 3. Schema enum/options → "select"
487
+ * 4. Schema type + format heuristics
488
+ * 5. Fallback → "text"
489
+ */
490
+ function resolveFieldType(property, hint, knownTypes) {
491
+ const knownSet = new Set(knownTypes);
492
+ // 1. Explicit type override from hint
493
+ const hintType = hint?.type;
494
+ if (hintType && knownSet.has(hintType))
495
+ return hintType;
496
+ // 2. Sensitive → password
497
+ if (hint?.sensitive)
498
+ return knownSet.has("password") ? "password" : "text";
499
+ // 3. Enum → select
500
+ if (property.enum?.length || property.oneOf?.length) {
501
+ return knownSet.has("select") ? "select" : "text";
502
+ }
503
+ // 4. Schema type + format
504
+ const schemaType = Array.isArray(property.type)
505
+ ? property.type[0]
506
+ : property.type;
507
+ switch (schemaType) {
508
+ case "boolean":
509
+ return knownSet.has("boolean") ? "boolean" : "text";
510
+ case "number":
511
+ case "integer":
512
+ return knownSet.has("number") ? "number" : "text";
513
+ case "array":
514
+ if (property.items?.enum && knownSet.has("multiselect"))
515
+ return "multiselect";
516
+ return knownSet.has("array") ? "array" : "text";
517
+ case "object":
518
+ if (property.additionalProperties && knownSet.has("keyvalue"))
519
+ return "keyvalue";
520
+ return knownSet.has("json") ? "json" : "text";
521
+ default:
522
+ break;
523
+ }
524
+ // String format heuristics
525
+ if (schemaType === "string" || !schemaType) {
526
+ const fmt = property.format;
527
+ if (fmt === "uri" || fmt === "url")
528
+ return knownSet.has("url") ? "url" : "text";
529
+ if (fmt === "email")
530
+ return knownSet.has("email") ? "email" : "text";
531
+ if (fmt === "date-time")
532
+ return knownSet.has("datetime")
533
+ ? "datetime"
534
+ : knownSet.has("date")
535
+ ? "date"
536
+ : "text";
537
+ if (fmt === "date")
538
+ return knownSet.has("date") ? "date" : "text";
539
+ if (fmt === "color")
540
+ return knownSet.has("color") ? "color" : "text";
541
+ // Multiline heuristic: maxLength > 200 or no maxLength with "text" hint
542
+ if (property.maxLength && property.maxLength > 200) {
543
+ return knownSet.has("textarea") ? "textarea" : "text";
544
+ }
545
+ }
546
+ // 5. Fallback
547
+ return "text";
548
+ }
549
+ // ── Default catalog ────────────────────────────────────────────────────
550
+ /**
551
+ * The standard field catalog with 23 basic field types + built-in actions.
552
+ */
553
+ export const defaultCatalog = defineCatalog({
554
+ fields: {
555
+ text: {
556
+ validator: z.string(),
557
+ description: "Single-line text input",
558
+ },
559
+ password: {
560
+ validator: z.string(),
561
+ description: "Masked input with show/hide toggle and API-backed reveal",
562
+ },
563
+ number: {
564
+ validator: z.coerce.number(),
565
+ description: "Numeric input with optional min/max/step",
566
+ },
567
+ boolean: {
568
+ validator: z.coerce.boolean(),
569
+ description: "Toggle switch (on/off)",
570
+ },
571
+ url: {
572
+ validator: z.string(),
573
+ description: "URL input with validation",
574
+ },
575
+ select: {
576
+ validator: z.string(),
577
+ description: "Single-select dropdown from enum values",
578
+ },
579
+ textarea: {
580
+ validator: z.string(),
581
+ description: "Multi-line text input for long values",
582
+ },
583
+ email: {
584
+ validator: z.string().email().or(z.literal("")),
585
+ description: "Email address input with validation",
586
+ },
587
+ color: {
588
+ validator: z
589
+ .string()
590
+ .regex(/^#[0-9a-fA-F]{3,8}$/)
591
+ .or(z.literal("")),
592
+ description: "Color picker with hex value display",
593
+ },
594
+ radio: {
595
+ validator: z.string(),
596
+ description: "Single-select radio button group with descriptions",
597
+ },
598
+ multiselect: {
599
+ validator: z.array(z.string()).or(z.string()),
600
+ description: "Multi-select checkbox group for array values",
601
+ },
602
+ date: {
603
+ validator: z.string(),
604
+ description: "Date or date-time input",
605
+ },
606
+ json: {
607
+ validator: z.string(),
608
+ description: "JSON editor with syntax highlighting and validation",
609
+ },
610
+ code: {
611
+ validator: z.string(),
612
+ description: "Code editor with syntax highlighting",
613
+ },
614
+ array: {
615
+ validator: z.array(z.unknown()),
616
+ description: "Repeatable field group with add/remove items",
617
+ },
618
+ keyvalue: {
619
+ validator: z.record(z.string(), z.string()),
620
+ description: "Key-value pair editor with add/remove rows",
621
+ },
622
+ datetime: {
623
+ validator: z.string(),
624
+ description: "Date and time picker input",
625
+ },
626
+ file: {
627
+ validator: z.string(),
628
+ description: "File path or upload input",
629
+ },
630
+ custom: {
631
+ validator: z.unknown(),
632
+ description: "Plugin-provided custom React component",
633
+ },
634
+ markdown: {
635
+ validator: z.string(),
636
+ description: "Markdown editor with preview toggle",
637
+ },
638
+ "checkbox-group": {
639
+ validator: z.array(z.string()).or(z.string()),
640
+ description: "Checkbox group for multiple selections with descriptions",
641
+ },
642
+ group: {
643
+ validator: z.record(z.string(), z.unknown()).or(z.string()),
644
+ description: "Fieldset container for grouping related configuration",
645
+ },
646
+ table: {
647
+ validator: z.array(z.record(z.string(), z.string())).or(z.string()),
648
+ description: "Tabular data editor with add/remove rows",
649
+ },
650
+ },
651
+ actions: {
652
+ save: {
653
+ params: z.object({}),
654
+ description: "Save the current configuration",
655
+ },
656
+ reset: {
657
+ params: z.object({}),
658
+ description: "Reset all fields to their defaults",
659
+ },
660
+ testConnection: {
661
+ params: z.object({ key: z.string().optional() }),
662
+ description: "Test the connection/API key validity",
663
+ },
664
+ },
665
+ });
666
+ /**
667
+ * Walk a JSON Schema object's properties and resolve each to a field descriptor.
668
+ *
669
+ * This is the equivalent of json-render's spec traversal — it turns a declarative
670
+ * schema into an ordered list of renderable field descriptors.
671
+ */
672
+ export function resolveFields(schema, hints, catalog) {
673
+ const properties = schema.properties ?? {};
674
+ const requiredKeys = new Set(schema.required ?? []);
675
+ const fields = [];
676
+ // Field types that are compact enough for half-width columns
677
+ const HALF_WIDTH_TYPES = new Set([
678
+ "text",
679
+ "password",
680
+ "number",
681
+ "url",
682
+ "email",
683
+ "boolean",
684
+ "select",
685
+ "date",
686
+ "datetime",
687
+ "color",
688
+ "file",
689
+ ]);
690
+ for (const [key, prop] of Object.entries(properties)) {
691
+ const hint = hints[key] ?? {};
692
+ const fieldType = catalog.resolveType(prop, hint);
693
+ fields.push({
694
+ key,
695
+ schema: prop,
696
+ hint,
697
+ fieldType,
698
+ required: requiredKeys.has(key),
699
+ group: hint.group ?? "general",
700
+ order: hint.order ?? 999,
701
+ advanced: hint.advanced ?? false,
702
+ hidden: hint.hidden ?? false,
703
+ width: hint.width ?? (HALF_WIDTH_TYPES.has(fieldType) ? "half" : "full"),
704
+ visible: hint.visible,
705
+ validation: hint.validation,
706
+ readonly: hint.readonly ?? false,
707
+ });
708
+ }
709
+ // Sort: non-advanced before advanced, then by order, then alphabetically
710
+ fields.sort((a, b) => {
711
+ if (a.advanced !== b.advanced)
712
+ return a.advanced ? 1 : -1;
713
+ if (a.order !== b.order)
714
+ return a.order - b.order;
715
+ return a.key.localeCompare(b.key);
716
+ });
717
+ return fields;
718
+ }
719
+ //# sourceMappingURL=config-catalog.js.map