@plumbus/core 0.3.3 → 0.4.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 (593) hide show
  1. package/README.md +2 -2
  2. package/bin/plumbus.js +16 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/ai/ai-service.d.ts.map +1 -1
  5. package/dist/ai/ai-service.js +8 -3
  6. package/dist/ai/ai-service.js.map +1 -1
  7. package/dist/ai/provider.d.ts.map +1 -1
  8. package/dist/ai/provider.js +1 -2
  9. package/dist/ai/provider.js.map +1 -1
  10. package/dist/ai/rag/pipeline.d.ts +4 -0
  11. package/dist/ai/rag/pipeline.d.ts.map +1 -1
  12. package/dist/ai/rag/pipeline.js +17 -2
  13. package/dist/ai/rag/pipeline.js.map +1 -1
  14. package/dist/ai/security.d.ts.map +1 -1
  15. package/dist/ai/security.js +14 -1
  16. package/dist/ai/security.js.map +1 -1
  17. package/dist/api/route-generator.d.ts.map +1 -1
  18. package/dist/api/route-generator.js +57 -11
  19. package/dist/api/route-generator.js.map +1 -1
  20. package/dist/auth/adapter.d.ts +0 -4
  21. package/dist/auth/adapter.d.ts.map +1 -1
  22. package/dist/auth/adapter.js +4 -0
  23. package/dist/auth/adapter.js.map +1 -1
  24. package/dist/auth/saml-adapter.d.ts.map +1 -1
  25. package/dist/auth/saml-adapter.js +73 -120
  26. package/dist/auth/saml-adapter.js.map +1 -1
  27. package/dist/auth/scim.d.ts.map +1 -1
  28. package/dist/auth/scim.js +6 -1
  29. package/dist/auth/scim.js.map +1 -1
  30. package/dist/cli/cli.d.ts.map +1 -1
  31. package/dist/cli/cli.js +3 -1
  32. package/dist/cli/cli.js.map +1 -1
  33. package/dist/cli/commands/browser-extension.d.ts +10 -0
  34. package/dist/cli/commands/browser-extension.d.ts.map +1 -0
  35. package/dist/cli/commands/browser-extension.js +235 -0
  36. package/dist/cli/commands/browser-extension.js.map +1 -0
  37. package/dist/cli/commands/dev.d.ts +4 -1
  38. package/dist/cli/commands/dev.d.ts.map +1 -1
  39. package/dist/cli/commands/dev.js +21 -30
  40. package/dist/cli/commands/dev.js.map +1 -1
  41. package/dist/cli/commands/doctor.d.ts +6 -0
  42. package/dist/cli/commands/doctor.d.ts.map +1 -1
  43. package/dist/cli/commands/doctor.js +146 -2
  44. package/dist/cli/commands/doctor.js.map +1 -1
  45. package/dist/cli/commands/generate.d.ts.map +1 -1
  46. package/dist/cli/commands/generate.js +18 -0
  47. package/dist/cli/commands/generate.js.map +1 -1
  48. package/dist/cli/commands/index.d.ts +2 -0
  49. package/dist/cli/commands/index.d.ts.map +1 -1
  50. package/dist/cli/commands/index.js +2 -0
  51. package/dist/cli/commands/index.js.map +1 -1
  52. package/dist/cli/commands/init.d.ts +1 -1
  53. package/dist/cli/commands/init.d.ts.map +1 -1
  54. package/dist/cli/commands/init.js +122 -3
  55. package/dist/cli/commands/init.js.map +1 -1
  56. package/dist/cli/commands/mcp.d.ts +9 -0
  57. package/dist/cli/commands/mcp.d.ts.map +1 -0
  58. package/dist/cli/commands/mcp.js +125 -0
  59. package/dist/cli/commands/mcp.js.map +1 -0
  60. package/dist/cli/commands/migrate.d.ts.map +1 -1
  61. package/dist/cli/commands/migrate.js +2 -1
  62. package/dist/cli/commands/migrate.js.map +1 -1
  63. package/dist/cli/commands/start.d.ts +4 -1
  64. package/dist/cli/commands/start.d.ts.map +1 -1
  65. package/dist/cli/commands/start.js +20 -29
  66. package/dist/cli/commands/start.js.map +1 -1
  67. package/dist/cli/commands/translation.d.ts.map +1 -1
  68. package/dist/cli/commands/translation.js +22 -10
  69. package/dist/cli/commands/translation.js.map +1 -1
  70. package/dist/cli/mcp-serve-context.d.ts +13 -0
  71. package/dist/cli/mcp-serve-context.d.ts.map +1 -0
  72. package/dist/cli/mcp-serve-context.js +119 -0
  73. package/dist/cli/mcp-serve-context.js.map +1 -0
  74. package/dist/cli/migrate-snapshot-schema.d.ts +15 -0
  75. package/dist/cli/migrate-snapshot-schema.d.ts.map +1 -0
  76. package/dist/cli/migrate-snapshot-schema.js +23 -0
  77. package/dist/cli/migrate-snapshot-schema.js.map +1 -0
  78. package/dist/cli/project-root.d.ts +9 -0
  79. package/dist/cli/project-root.d.ts.map +1 -0
  80. package/dist/cli/project-root.js +41 -0
  81. package/dist/cli/project-root.js.map +1 -0
  82. package/dist/cli/scaffold-write.d.ts +17 -0
  83. package/dist/cli/scaffold-write.d.ts.map +1 -0
  84. package/dist/cli/scaffold-write.js +40 -0
  85. package/dist/cli/scaffold-write.js.map +1 -0
  86. package/dist/cli/templates/resources.d.ts.map +1 -1
  87. package/dist/cli/templates/resources.js +7 -1
  88. package/dist/cli/templates/resources.js.map +1 -1
  89. package/dist/cli/utils.d.ts +2 -0
  90. package/dist/cli/utils.d.ts.map +1 -1
  91. package/dist/cli/utils.js +14 -0
  92. package/dist/cli/utils.js.map +1 -1
  93. package/dist/config/loader.d.ts +1 -1
  94. package/dist/config/loader.d.ts.map +1 -1
  95. package/dist/config/loader.js +46 -27
  96. package/dist/config/loader.js.map +1 -1
  97. package/dist/data/connection.d.ts +16 -0
  98. package/dist/data/connection.d.ts.map +1 -0
  99. package/dist/data/connection.js +27 -0
  100. package/dist/data/connection.js.map +1 -0
  101. package/dist/data/index.d.ts +1 -0
  102. package/dist/data/index.d.ts.map +1 -1
  103. package/dist/data/index.js +1 -0
  104. package/dist/data/index.js.map +1 -1
  105. package/dist/data/migration.d.ts.map +1 -1
  106. package/dist/data/migration.js +24 -0
  107. package/dist/data/migration.js.map +1 -1
  108. package/dist/data/repository.d.ts.map +1 -1
  109. package/dist/data/repository.js +32 -9
  110. package/dist/data/repository.js.map +1 -1
  111. package/dist/define/defineCapability.d.ts +4 -2
  112. package/dist/define/defineCapability.d.ts.map +1 -1
  113. package/dist/define/defineCapability.js +68 -8
  114. package/dist/define/defineCapability.js.map +1 -1
  115. package/dist/define/defineEntity.d.ts.map +1 -1
  116. package/dist/define/defineEntity.js +8 -4
  117. package/dist/define/defineEntity.js.map +1 -1
  118. package/dist/define/defineEvent.d.ts.map +1 -1
  119. package/dist/define/defineEvent.js +7 -3
  120. package/dist/define/defineEvent.js.map +1 -1
  121. package/dist/define/defineFlow.d.ts.map +1 -1
  122. package/dist/define/defineFlow.js +11 -5
  123. package/dist/define/defineFlow.js.map +1 -1
  124. package/dist/define/definePrompt.d.ts.map +1 -1
  125. package/dist/define/definePrompt.js +11 -5
  126. package/dist/define/definePrompt.js.map +1 -1
  127. package/dist/define/defineTranslation.d.ts.map +1 -1
  128. package/dist/define/defineTranslation.js +12 -10
  129. package/dist/define/defineTranslation.js.map +1 -1
  130. package/dist/define/validation-error.d.ts +2 -0
  131. package/dist/define/validation-error.d.ts.map +1 -0
  132. package/dist/define/validation-error.js +9 -0
  133. package/dist/define/validation-error.js.map +1 -0
  134. package/dist/errors/hints.d.ts +13 -0
  135. package/dist/errors/hints.d.ts.map +1 -0
  136. package/dist/errors/hints.js +15 -0
  137. package/dist/errors/hints.js.map +1 -0
  138. package/dist/errors/hook-log.d.ts +3 -0
  139. package/dist/errors/hook-log.d.ts.map +1 -0
  140. package/dist/errors/hook-log.js +6 -0
  141. package/dist/errors/hook-log.js.map +1 -0
  142. package/dist/errors/http.d.ts +19 -0
  143. package/dist/errors/http.d.ts.map +1 -1
  144. package/dist/errors/http.js +32 -2
  145. package/dist/errors/http.js.map +1 -1
  146. package/dist/errors/safe-metadata.d.ts +5 -0
  147. package/dist/errors/safe-metadata.d.ts.map +1 -0
  148. package/dist/errors/safe-metadata.js +24 -0
  149. package/dist/errors/safe-metadata.js.map +1 -0
  150. package/dist/execution/auth-roles.d.ts +6 -0
  151. package/dist/execution/auth-roles.d.ts.map +1 -0
  152. package/dist/execution/auth-roles.js +12 -0
  153. package/dist/execution/auth-roles.js.map +1 -0
  154. package/dist/execution/authorization.d.ts.map +1 -1
  155. package/dist/execution/authorization.js +3 -5
  156. package/dist/execution/authorization.js.map +1 -1
  157. package/dist/execution/context-factory.d.ts +2 -17
  158. package/dist/execution/context-factory.d.ts.map +1 -1
  159. package/dist/execution/context-factory.js +1 -0
  160. package/dist/execution/context-factory.js.map +1 -1
  161. package/dist/flows/engine.js +1 -1
  162. package/dist/flows/engine.js.map +1 -1
  163. package/dist/flows/evaluate-condition.d.ts +19 -0
  164. package/dist/flows/evaluate-condition.d.ts.map +1 -0
  165. package/dist/flows/evaluate-condition.js +276 -0
  166. package/dist/flows/evaluate-condition.js.map +1 -0
  167. package/dist/flows/index.d.ts +1 -0
  168. package/dist/flows/index.d.ts.map +1 -1
  169. package/dist/flows/index.js +2 -0
  170. package/dist/flows/index.js.map +1 -1
  171. package/dist/flows/step-executor.d.ts.map +1 -1
  172. package/dist/flows/step-executor.js +15 -7
  173. package/dist/flows/step-executor.js.map +1 -1
  174. package/dist/governance/rules/architecture.d.ts.map +1 -1
  175. package/dist/governance/rules/architecture.js +2 -0
  176. package/dist/governance/rules/architecture.js.map +1 -1
  177. package/dist/governance/rules/index.d.ts +1 -0
  178. package/dist/governance/rules/index.d.ts.map +1 -1
  179. package/dist/governance/rules/index.js +1 -0
  180. package/dist/governance/rules/index.js.map +1 -1
  181. package/dist/governance/rules/mcp.d.ts +5 -0
  182. package/dist/governance/rules/mcp.d.ts.map +1 -0
  183. package/dist/governance/rules/mcp.js +34 -0
  184. package/dist/governance/rules/mcp.js.map +1 -0
  185. package/dist/index.d.ts +1 -0
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +1 -0
  188. package/dist/index.js.map +1 -1
  189. package/dist/mcp/exposure.d.ts +4 -0
  190. package/dist/mcp/exposure.d.ts.map +1 -0
  191. package/dist/mcp/exposure.js +5 -0
  192. package/dist/mcp/exposure.js.map +1 -0
  193. package/dist/mcp/index.d.ts +4 -0
  194. package/dist/mcp/index.d.ts.map +1 -0
  195. package/dist/mcp/index.js +6 -0
  196. package/dist/mcp/index.js.map +1 -0
  197. package/dist/mcp/manifest-generator.d.ts +19 -0
  198. package/dist/mcp/manifest-generator.d.ts.map +1 -0
  199. package/dist/mcp/manifest-generator.js +29 -0
  200. package/dist/mcp/manifest-generator.js.map +1 -0
  201. package/dist/mcp/skill-generator.d.ts +4 -0
  202. package/dist/mcp/skill-generator.d.ts.map +1 -0
  203. package/dist/mcp/skill-generator.js +59 -0
  204. package/dist/mcp/skill-generator.js.map +1 -0
  205. package/dist/schema/zod-input-to-json-schema.d.ts +4 -0
  206. package/dist/schema/zod-input-to-json-schema.d.ts.map +1 -0
  207. package/dist/schema/zod-input-to-json-schema.js +6 -0
  208. package/dist/schema/zod-input-to-json-schema.js.map +1 -0
  209. package/dist/server/bootstrap.d.ts.map +1 -1
  210. package/dist/server/bootstrap.js +8 -3
  211. package/dist/server/bootstrap.js.map +1 -1
  212. package/dist/testing/context.d.ts +2 -0
  213. package/dist/testing/context.d.ts.map +1 -1
  214. package/dist/testing/context.js +1 -0
  215. package/dist/testing/context.js.map +1 -1
  216. package/dist/testing/e2e.js +1 -1
  217. package/dist/testing/e2e.js.map +1 -1
  218. package/dist/types/capability.d.ts +13 -0
  219. package/dist/types/capability.d.ts.map +1 -1
  220. package/dist/types/config.d.ts +9 -0
  221. package/dist/types/config.d.ts.map +1 -1
  222. package/dist/types/context.d.ts +31 -0
  223. package/dist/types/context.d.ts.map +1 -1
  224. package/dist/types/deep-freeze.d.ts +6 -0
  225. package/dist/types/deep-freeze.d.ts.map +1 -0
  226. package/dist/types/deep-freeze.js +38 -0
  227. package/dist/types/deep-freeze.js.map +1 -0
  228. package/dist/types/enums.d.ts +5 -0
  229. package/dist/types/enums.d.ts.map +1 -1
  230. package/dist/types/enums.js +5 -0
  231. package/dist/types/enums.js.map +1 -1
  232. package/dist/types/index.d.ts +2 -2
  233. package/dist/types/index.d.ts.map +1 -1
  234. package/dist/types/index.js.map +1 -1
  235. package/dist/types/security.d.ts +3 -1
  236. package/dist/types/security.d.ts.map +1 -1
  237. package/instructions/capabilities.md +36 -0
  238. package/instructions/cli.md +44 -0
  239. package/instructions/framework.md +20 -4
  240. package/instructions/mcp.md +20 -0
  241. package/package.json +21 -2
  242. package/dist/ai/__tests__/ai-service.test.d.ts +0 -2
  243. package/dist/ai/__tests__/ai-service.test.d.ts.map +0 -1
  244. package/dist/ai/__tests__/ai-service.test.js +0 -1078
  245. package/dist/ai/__tests__/ai-service.test.js.map +0 -1
  246. package/dist/ai/__tests__/chunking.test.d.ts +0 -2
  247. package/dist/ai/__tests__/chunking.test.d.ts.map +0 -1
  248. package/dist/ai/__tests__/chunking.test.js +0 -78
  249. package/dist/ai/__tests__/chunking.test.js.map +0 -1
  250. package/dist/ai/__tests__/cost-tracker.test.d.ts +0 -2
  251. package/dist/ai/__tests__/cost-tracker.test.d.ts.map +0 -1
  252. package/dist/ai/__tests__/cost-tracker.test.js +0 -201
  253. package/dist/ai/__tests__/cost-tracker.test.js.map +0 -1
  254. package/dist/ai/__tests__/explainability.test.d.ts +0 -2
  255. package/dist/ai/__tests__/explainability.test.d.ts.map +0 -1
  256. package/dist/ai/__tests__/explainability.test.js +0 -100
  257. package/dist/ai/__tests__/explainability.test.js.map +0 -1
  258. package/dist/ai/__tests__/model-pricing.test.d.ts +0 -2
  259. package/dist/ai/__tests__/model-pricing.test.d.ts.map +0 -1
  260. package/dist/ai/__tests__/model-pricing.test.js +0 -156
  261. package/dist/ai/__tests__/model-pricing.test.js.map +0 -1
  262. package/dist/ai/__tests__/prompt-registry.test.d.ts +0 -2
  263. package/dist/ai/__tests__/prompt-registry.test.d.ts.map +0 -1
  264. package/dist/ai/__tests__/prompt-registry.test.js +0 -56
  265. package/dist/ai/__tests__/prompt-registry.test.js.map +0 -1
  266. package/dist/ai/__tests__/provider.test.d.ts +0 -3
  267. package/dist/ai/__tests__/provider.test.d.ts.map +0 -1
  268. package/dist/ai/__tests__/provider.test.js +0 -979
  269. package/dist/ai/__tests__/provider.test.js.map +0 -1
  270. package/dist/ai/__tests__/rag-pipeline.test.d.ts +0 -2
  271. package/dist/ai/__tests__/rag-pipeline.test.d.ts.map +0 -1
  272. package/dist/ai/__tests__/rag-pipeline.test.js +0 -174
  273. package/dist/ai/__tests__/rag-pipeline.test.js.map +0 -1
  274. package/dist/ai/__tests__/security.test.d.ts +0 -2
  275. package/dist/ai/__tests__/security.test.d.ts.map +0 -1
  276. package/dist/ai/__tests__/security.test.js +0 -89
  277. package/dist/ai/__tests__/security.test.js.map +0 -1
  278. package/dist/ai/__tests__/usage-client.test.d.ts +0 -2
  279. package/dist/ai/__tests__/usage-client.test.d.ts.map +0 -1
  280. package/dist/ai/__tests__/usage-client.test.js +0 -120
  281. package/dist/ai/__tests__/usage-client.test.js.map +0 -1
  282. package/dist/ai/__tests__/validation.test.d.ts +0 -2
  283. package/dist/ai/__tests__/validation.test.d.ts.map +0 -1
  284. package/dist/ai/__tests__/validation.test.js +0 -384
  285. package/dist/ai/__tests__/validation.test.js.map +0 -1
  286. package/dist/ai/__tests__/zod-to-provider-schema.test.d.ts +0 -2
  287. package/dist/ai/__tests__/zod-to-provider-schema.test.d.ts.map +0 -1
  288. package/dist/ai/__tests__/zod-to-provider-schema.test.js +0 -60
  289. package/dist/ai/__tests__/zod-to-provider-schema.test.js.map +0 -1
  290. package/dist/api/__tests__/route-generator.test.d.ts +0 -2
  291. package/dist/api/__tests__/route-generator.test.d.ts.map +0 -1
  292. package/dist/api/__tests__/route-generator.test.js +0 -216
  293. package/dist/api/__tests__/route-generator.test.js.map +0 -1
  294. package/dist/audit/__tests__/service.test.d.ts +0 -2
  295. package/dist/audit/__tests__/service.test.d.ts.map +0 -1
  296. package/dist/audit/__tests__/service.test.js +0 -97
  297. package/dist/audit/__tests__/service.test.js.map +0 -1
  298. package/dist/auth/__tests__/adapter.test.d.ts +0 -2
  299. package/dist/auth/__tests__/adapter.test.d.ts.map +0 -1
  300. package/dist/auth/__tests__/adapter.test.js +0 -218
  301. package/dist/auth/__tests__/adapter.test.js.map +0 -1
  302. package/dist/auth/__tests__/oidc-adapter.test.d.ts +0 -2
  303. package/dist/auth/__tests__/oidc-adapter.test.d.ts.map +0 -1
  304. package/dist/auth/__tests__/oidc-adapter.test.js +0 -232
  305. package/dist/auth/__tests__/oidc-adapter.test.js.map +0 -1
  306. package/dist/auth/__tests__/password.test.d.ts +0 -2
  307. package/dist/auth/__tests__/password.test.d.ts.map +0 -1
  308. package/dist/auth/__tests__/password.test.js +0 -30
  309. package/dist/auth/__tests__/password.test.js.map +0 -1
  310. package/dist/auth/__tests__/saml-adapter.test.d.ts +0 -2
  311. package/dist/auth/__tests__/saml-adapter.test.d.ts.map +0 -1
  312. package/dist/auth/__tests__/saml-adapter.test.js +0 -188
  313. package/dist/auth/__tests__/saml-adapter.test.js.map +0 -1
  314. package/dist/auth/__tests__/scim.test.d.ts +0 -2
  315. package/dist/auth/__tests__/scim.test.d.ts.map +0 -1
  316. package/dist/auth/__tests__/scim.test.js +0 -306
  317. package/dist/auth/__tests__/scim.test.js.map +0 -1
  318. package/dist/cli/__tests__/agent.test.d.ts +0 -2
  319. package/dist/cli/__tests__/agent.test.d.ts.map +0 -1
  320. package/dist/cli/__tests__/agent.test.js +0 -63
  321. package/dist/cli/__tests__/agent.test.js.map +0 -1
  322. package/dist/cli/__tests__/certify.test.d.ts +0 -2
  323. package/dist/cli/__tests__/certify.test.d.ts.map +0 -1
  324. package/dist/cli/__tests__/certify.test.js +0 -97
  325. package/dist/cli/__tests__/certify.test.js.map +0 -1
  326. package/dist/cli/__tests__/cli.test.d.ts +0 -2
  327. package/dist/cli/__tests__/cli.test.d.ts.map +0 -1
  328. package/dist/cli/__tests__/cli.test.js +0 -123
  329. package/dist/cli/__tests__/cli.test.js.map +0 -1
  330. package/dist/cli/__tests__/create.test.d.ts +0 -2
  331. package/dist/cli/__tests__/create.test.d.ts.map +0 -1
  332. package/dist/cli/__tests__/create.test.js +0 -183
  333. package/dist/cli/__tests__/create.test.js.map +0 -1
  334. package/dist/cli/__tests__/dev.test.d.ts +0 -2
  335. package/dist/cli/__tests__/dev.test.d.ts.map +0 -1
  336. package/dist/cli/__tests__/dev.test.js +0 -132
  337. package/dist/cli/__tests__/dev.test.js.map +0 -1
  338. package/dist/cli/__tests__/discover.test.d.ts +0 -2
  339. package/dist/cli/__tests__/discover.test.d.ts.map +0 -1
  340. package/dist/cli/__tests__/discover.test.js +0 -48
  341. package/dist/cli/__tests__/discover.test.js.map +0 -1
  342. package/dist/cli/__tests__/doctor.test.d.ts +0 -2
  343. package/dist/cli/__tests__/doctor.test.d.ts.map +0 -1
  344. package/dist/cli/__tests__/doctor.test.js +0 -172
  345. package/dist/cli/__tests__/doctor.test.js.map +0 -1
  346. package/dist/cli/__tests__/generate.test.d.ts +0 -2
  347. package/dist/cli/__tests__/generate.test.d.ts.map +0 -1
  348. package/dist/cli/__tests__/generate.test.js +0 -478
  349. package/dist/cli/__tests__/generate.test.js.map +0 -1
  350. package/dist/cli/__tests__/init.test.d.ts +0 -2
  351. package/dist/cli/__tests__/init.test.d.ts.map +0 -1
  352. package/dist/cli/__tests__/init.test.js +0 -236
  353. package/dist/cli/__tests__/init.test.js.map +0 -1
  354. package/dist/cli/__tests__/migrate.test.d.ts +0 -2
  355. package/dist/cli/__tests__/migrate.test.d.ts.map +0 -1
  356. package/dist/cli/__tests__/migrate.test.js +0 -442
  357. package/dist/cli/__tests__/migrate.test.js.map +0 -1
  358. package/dist/cli/__tests__/start.test.d.ts +0 -2
  359. package/dist/cli/__tests__/start.test.d.ts.map +0 -1
  360. package/dist/cli/__tests__/start.test.js +0 -91
  361. package/dist/cli/__tests__/start.test.js.map +0 -1
  362. package/dist/cli/__tests__/templates.test.d.ts +0 -2
  363. package/dist/cli/__tests__/templates.test.d.ts.map +0 -1
  364. package/dist/cli/__tests__/templates.test.js +0 -49
  365. package/dist/cli/__tests__/templates.test.js.map +0 -1
  366. package/dist/cli/__tests__/test.test.d.ts +0 -2
  367. package/dist/cli/__tests__/test.test.d.ts.map +0 -1
  368. package/dist/cli/__tests__/test.test.js +0 -40
  369. package/dist/cli/__tests__/test.test.js.map +0 -1
  370. package/dist/cli/__tests__/ui.test.d.ts +0 -2
  371. package/dist/cli/__tests__/ui.test.d.ts.map +0 -1
  372. package/dist/cli/__tests__/ui.test.js +0 -76
  373. package/dist/cli/__tests__/ui.test.js.map +0 -1
  374. package/dist/cli/__tests__/upgrade.test.d.ts +0 -2
  375. package/dist/cli/__tests__/upgrade.test.d.ts.map +0 -1
  376. package/dist/cli/__tests__/upgrade.test.js +0 -20
  377. package/dist/cli/__tests__/upgrade.test.js.map +0 -1
  378. package/dist/cli/__tests__/utils.test.d.ts +0 -2
  379. package/dist/cli/__tests__/utils.test.d.ts.map +0 -1
  380. package/dist/cli/__tests__/utils.test.js +0 -255
  381. package/dist/cli/__tests__/utils.test.js.map +0 -1
  382. package/dist/cli/__tests__/verify.test.d.ts +0 -2
  383. package/dist/cli/__tests__/verify.test.d.ts.map +0 -1
  384. package/dist/cli/__tests__/verify.test.js +0 -138
  385. package/dist/cli/__tests__/verify.test.js.map +0 -1
  386. package/dist/cli/commands/__tests__/commands.test.d.ts +0 -2
  387. package/dist/cli/commands/__tests__/commands.test.d.ts.map +0 -1
  388. package/dist/cli/commands/__tests__/commands.test.js +0 -185
  389. package/dist/cli/commands/__tests__/commands.test.js.map +0 -1
  390. package/dist/config/__tests__/loader.test.d.ts +0 -2
  391. package/dist/config/__tests__/loader.test.d.ts.map +0 -1
  392. package/dist/config/__tests__/loader.test.js +0 -462
  393. package/dist/config/__tests__/loader.test.js.map +0 -1
  394. package/dist/data/__tests__/drift-inspector.test.d.ts +0 -2
  395. package/dist/data/__tests__/drift-inspector.test.d.ts.map +0 -1
  396. package/dist/data/__tests__/drift-inspector.test.js +0 -170
  397. package/dist/data/__tests__/drift-inspector.test.js.map +0 -1
  398. package/dist/data/__tests__/framework-migration-rewriter.test.d.ts +0 -2
  399. package/dist/data/__tests__/framework-migration-rewriter.test.d.ts.map +0 -1
  400. package/dist/data/__tests__/framework-migration-rewriter.test.js +0 -329
  401. package/dist/data/__tests__/framework-migration-rewriter.test.js.map +0 -1
  402. package/dist/data/__tests__/migration.test.d.ts +0 -2
  403. package/dist/data/__tests__/migration.test.d.ts.map +0 -1
  404. package/dist/data/__tests__/migration.test.js +0 -145
  405. package/dist/data/__tests__/migration.test.js.map +0 -1
  406. package/dist/data/__tests__/registry.test.d.ts +0 -2
  407. package/dist/data/__tests__/registry.test.d.ts.map +0 -1
  408. package/dist/data/__tests__/registry.test.js +0 -70
  409. package/dist/data/__tests__/registry.test.js.map +0 -1
  410. package/dist/data/__tests__/repository.test.d.ts +0 -2
  411. package/dist/data/__tests__/repository.test.d.ts.map +0 -1
  412. package/dist/data/__tests__/repository.test.js +0 -559
  413. package/dist/data/__tests__/repository.test.js.map +0 -1
  414. package/dist/data/__tests__/schema-generator.test.d.ts +0 -2
  415. package/dist/data/__tests__/schema-generator.test.d.ts.map +0 -1
  416. package/dist/data/__tests__/schema-generator.test.js +0 -112
  417. package/dist/data/__tests__/schema-generator.test.js.map +0 -1
  418. package/dist/define/__tests__/defineCapability.test.d.ts +0 -2
  419. package/dist/define/__tests__/defineCapability.test.d.ts.map +0 -1
  420. package/dist/define/__tests__/defineCapability.test.js +0 -66
  421. package/dist/define/__tests__/defineCapability.test.js.map +0 -1
  422. package/dist/define/__tests__/defineEntity.test.d.ts +0 -2
  423. package/dist/define/__tests__/defineEntity.test.d.ts.map +0 -1
  424. package/dist/define/__tests__/defineEntity.test.js +0 -50
  425. package/dist/define/__tests__/defineEntity.test.js.map +0 -1
  426. package/dist/define/__tests__/defineEvent.test.d.ts +0 -2
  427. package/dist/define/__tests__/defineEvent.test.d.ts.map +0 -1
  428. package/dist/define/__tests__/defineEvent.test.js +0 -35
  429. package/dist/define/__tests__/defineEvent.test.js.map +0 -1
  430. package/dist/define/__tests__/defineFlow.test.d.ts +0 -2
  431. package/dist/define/__tests__/defineFlow.test.d.ts.map +0 -1
  432. package/dist/define/__tests__/defineFlow.test.js +0 -49
  433. package/dist/define/__tests__/defineFlow.test.js.map +0 -1
  434. package/dist/define/__tests__/definePrompt.test.d.ts +0 -2
  435. package/dist/define/__tests__/definePrompt.test.d.ts.map +0 -1
  436. package/dist/define/__tests__/definePrompt.test.js +0 -77
  437. package/dist/define/__tests__/definePrompt.test.js.map +0 -1
  438. package/dist/define/__tests__/defineTranslation.test.d.ts +0 -2
  439. package/dist/define/__tests__/defineTranslation.test.d.ts.map +0 -1
  440. package/dist/define/__tests__/defineTranslation.test.js +0 -90
  441. package/dist/define/__tests__/defineTranslation.test.js.map +0 -1
  442. package/dist/errors/__tests__/errors.test.d.ts +0 -2
  443. package/dist/errors/__tests__/errors.test.d.ts.map +0 -1
  444. package/dist/errors/__tests__/errors.test.js +0 -70
  445. package/dist/errors/__tests__/errors.test.js.map +0 -1
  446. package/dist/errors/__tests__/http.test.d.ts +0 -2
  447. package/dist/errors/__tests__/http.test.d.ts.map +0 -1
  448. package/dist/errors/__tests__/http.test.js +0 -35
  449. package/dist/errors/__tests__/http.test.js.map +0 -1
  450. package/dist/events/__tests__/consumer-registry.test.d.ts +0 -2
  451. package/dist/events/__tests__/consumer-registry.test.d.ts.map +0 -1
  452. package/dist/events/__tests__/consumer-registry.test.js +0 -68
  453. package/dist/events/__tests__/consumer-registry.test.js.map +0 -1
  454. package/dist/events/__tests__/dispatcher.test.d.ts +0 -2
  455. package/dist/events/__tests__/dispatcher.test.d.ts.map +0 -1
  456. package/dist/events/__tests__/dispatcher.test.js +0 -168
  457. package/dist/events/__tests__/dispatcher.test.js.map +0 -1
  458. package/dist/events/__tests__/event-emitter.test.d.ts +0 -2
  459. package/dist/events/__tests__/event-emitter.test.d.ts.map +0 -1
  460. package/dist/events/__tests__/event-emitter.test.js +0 -172
  461. package/dist/events/__tests__/event-emitter.test.js.map +0 -1
  462. package/dist/events/__tests__/event-registry.test.d.ts +0 -2
  463. package/dist/events/__tests__/event-registry.test.d.ts.map +0 -1
  464. package/dist/events/__tests__/event-registry.test.js +0 -55
  465. package/dist/events/__tests__/event-registry.test.js.map +0 -1
  466. package/dist/events/__tests__/event-worker.test.d.ts +0 -2
  467. package/dist/events/__tests__/event-worker.test.d.ts.map +0 -1
  468. package/dist/events/__tests__/event-worker.test.js +0 -174
  469. package/dist/events/__tests__/event-worker.test.js.map +0 -1
  470. package/dist/events/__tests__/queue.test.d.ts +0 -2
  471. package/dist/events/__tests__/queue.test.d.ts.map +0 -1
  472. package/dist/events/__tests__/queue.test.js +0 -73
  473. package/dist/events/__tests__/queue.test.js.map +0 -1
  474. package/dist/execution/__tests__/authorization.test.d.ts +0 -2
  475. package/dist/execution/__tests__/authorization.test.d.ts.map +0 -1
  476. package/dist/execution/__tests__/authorization.test.js +0 -99
  477. package/dist/execution/__tests__/authorization.test.js.map +0 -1
  478. package/dist/execution/__tests__/capability-executor.test.d.ts +0 -2
  479. package/dist/execution/__tests__/capability-executor.test.d.ts.map +0 -1
  480. package/dist/execution/__tests__/capability-executor.test.js +0 -212
  481. package/dist/execution/__tests__/capability-executor.test.js.map +0 -1
  482. package/dist/execution/__tests__/capability-registry.test.d.ts +0 -2
  483. package/dist/execution/__tests__/capability-registry.test.d.ts.map +0 -1
  484. package/dist/execution/__tests__/capability-registry.test.js +0 -50
  485. package/dist/execution/__tests__/capability-registry.test.js.map +0 -1
  486. package/dist/execution/__tests__/context-factory.test.d.ts +0 -2
  487. package/dist/execution/__tests__/context-factory.test.d.ts.map +0 -1
  488. package/dist/execution/__tests__/context-factory.test.js +0 -133
  489. package/dist/execution/__tests__/context-factory.test.js.map +0 -1
  490. package/dist/explanation/__tests__/tracker.test.d.ts +0 -2
  491. package/dist/explanation/__tests__/tracker.test.d.ts.map +0 -1
  492. package/dist/explanation/__tests__/tracker.test.js +0 -169
  493. package/dist/explanation/__tests__/tracker.test.js.map +0 -1
  494. package/dist/fields/__tests__/fields.test.d.ts +0 -2
  495. package/dist/fields/__tests__/fields.test.d.ts.map +0 -1
  496. package/dist/fields/__tests__/fields.test.js +0 -60
  497. package/dist/fields/__tests__/fields.test.js.map +0 -1
  498. package/dist/flows/__tests__/flow-engine.test.d.ts +0 -2
  499. package/dist/flows/__tests__/flow-engine.test.d.ts.map +0 -1
  500. package/dist/flows/__tests__/flow-engine.test.js +0 -797
  501. package/dist/flows/__tests__/flow-engine.test.js.map +0 -1
  502. package/dist/flows/__tests__/flow-registry.test.d.ts +0 -2
  503. package/dist/flows/__tests__/flow-registry.test.d.ts.map +0 -1
  504. package/dist/flows/__tests__/flow-registry.test.js +0 -69
  505. package/dist/flows/__tests__/flow-registry.test.js.map +0 -1
  506. package/dist/flows/__tests__/flow-service.test.d.ts +0 -2
  507. package/dist/flows/__tests__/flow-service.test.d.ts.map +0 -1
  508. package/dist/flows/__tests__/flow-service.test.js +0 -55
  509. package/dist/flows/__tests__/flow-service.test.js.map +0 -1
  510. package/dist/flows/__tests__/scheduler.test.d.ts +0 -2
  511. package/dist/flows/__tests__/scheduler.test.d.ts.map +0 -1
  512. package/dist/flows/__tests__/scheduler.test.js +0 -120
  513. package/dist/flows/__tests__/scheduler.test.js.map +0 -1
  514. package/dist/flows/__tests__/state-machine.test.d.ts +0 -2
  515. package/dist/flows/__tests__/state-machine.test.d.ts.map +0 -1
  516. package/dist/flows/__tests__/state-machine.test.js +0 -62
  517. package/dist/flows/__tests__/state-machine.test.js.map +0 -1
  518. package/dist/flows/__tests__/step-executor.test.d.ts +0 -2
  519. package/dist/flows/__tests__/step-executor.test.d.ts.map +0 -1
  520. package/dist/flows/__tests__/step-executor.test.js +0 -201
  521. package/dist/flows/__tests__/step-executor.test.js.map +0 -1
  522. package/dist/flows/__tests__/triggers.test.d.ts +0 -2
  523. package/dist/flows/__tests__/triggers.test.d.ts.map +0 -1
  524. package/dist/flows/__tests__/triggers.test.js +0 -98
  525. package/dist/flows/__tests__/triggers.test.js.map +0 -1
  526. package/dist/governance/__tests__/overrides.test.d.ts +0 -2
  527. package/dist/governance/__tests__/overrides.test.d.ts.map +0 -1
  528. package/dist/governance/__tests__/overrides.test.js +0 -123
  529. package/dist/governance/__tests__/overrides.test.js.map +0 -1
  530. package/dist/governance/__tests__/policies.test.d.ts +0 -2
  531. package/dist/governance/__tests__/policies.test.d.ts.map +0 -1
  532. package/dist/governance/__tests__/policies.test.js +0 -203
  533. package/dist/governance/__tests__/policies.test.js.map +0 -1
  534. package/dist/governance/__tests__/rules.test.d.ts +0 -2
  535. package/dist/governance/__tests__/rules.test.d.ts.map +0 -1
  536. package/dist/governance/__tests__/rules.test.js +0 -342
  537. package/dist/governance/__tests__/rules.test.js.map +0 -1
  538. package/dist/observability/__tests__/metrics.test.d.ts +0 -2
  539. package/dist/observability/__tests__/metrics.test.d.ts.map +0 -1
  540. package/dist/observability/__tests__/metrics.test.js +0 -301
  541. package/dist/observability/__tests__/metrics.test.js.map +0 -1
  542. package/dist/server/__tests__/bootstrap.test.d.ts +0 -2
  543. package/dist/server/__tests__/bootstrap.test.d.ts.map +0 -1
  544. package/dist/server/__tests__/bootstrap.test.js +0 -381
  545. package/dist/server/__tests__/bootstrap.test.js.map +0 -1
  546. package/dist/testing/__tests__/context.test.d.ts +0 -2
  547. package/dist/testing/__tests__/context.test.d.ts.map +0 -1
  548. package/dist/testing/__tests__/context.test.js +0 -341
  549. package/dist/testing/__tests__/context.test.js.map +0 -1
  550. package/dist/testing/__tests__/e2e.test.d.ts +0 -2
  551. package/dist/testing/__tests__/e2e.test.d.ts.map +0 -1
  552. package/dist/testing/__tests__/e2e.test.js +0 -119
  553. package/dist/testing/__tests__/e2e.test.js.map +0 -1
  554. package/dist/testing/__tests__/field-validation.test.d.ts +0 -2
  555. package/dist/testing/__tests__/field-validation.test.d.ts.map +0 -1
  556. package/dist/testing/__tests__/field-validation.test.js +0 -178
  557. package/dist/testing/__tests__/field-validation.test.js.map +0 -1
  558. package/dist/testing/__tests__/governance.test.d.ts +0 -2
  559. package/dist/testing/__tests__/governance.test.d.ts.map +0 -1
  560. package/dist/testing/__tests__/governance.test.js +0 -222
  561. package/dist/testing/__tests__/governance.test.js.map +0 -1
  562. package/dist/testing/__tests__/run-capability.test.d.ts +0 -2
  563. package/dist/testing/__tests__/run-capability.test.d.ts.map +0 -1
  564. package/dist/testing/__tests__/run-capability.test.js +0 -114
  565. package/dist/testing/__tests__/run-capability.test.js.map +0 -1
  566. package/dist/testing/__tests__/scaffolding.test.d.ts +0 -2
  567. package/dist/testing/__tests__/scaffolding.test.d.ts.map +0 -1
  568. package/dist/testing/__tests__/scaffolding.test.js +0 -70
  569. package/dist/testing/__tests__/scaffolding.test.js.map +0 -1
  570. package/dist/testing/__tests__/security.test.d.ts +0 -2
  571. package/dist/testing/__tests__/security.test.d.ts.map +0 -1
  572. package/dist/testing/__tests__/security.test.js +0 -186
  573. package/dist/testing/__tests__/security.test.js.map +0 -1
  574. package/dist/testing/__tests__/simulate-flow.test.d.ts +0 -2
  575. package/dist/testing/__tests__/simulate-flow.test.d.ts.map +0 -1
  576. package/dist/testing/__tests__/simulate-flow.test.js +0 -230
  577. package/dist/testing/__tests__/simulate-flow.test.js.map +0 -1
  578. package/dist/translations/__tests__/translation-resolver.test.d.ts +0 -2
  579. package/dist/translations/__tests__/translation-resolver.test.d.ts.map +0 -1
  580. package/dist/translations/__tests__/translation-resolver.test.js +0 -140
  581. package/dist/translations/__tests__/translation-resolver.test.js.map +0 -1
  582. package/dist/types/__tests__/registry.test.d.ts +0 -2
  583. package/dist/types/__tests__/registry.test.d.ts.map +0 -1
  584. package/dist/types/__tests__/registry.test.js +0 -34
  585. package/dist/types/__tests__/registry.test.js.map +0 -1
  586. package/dist/worker/__tests__/bootstrap.test.d.ts +0 -2
  587. package/dist/worker/__tests__/bootstrap.test.d.ts.map +0 -1
  588. package/dist/worker/__tests__/bootstrap.test.js +0 -268
  589. package/dist/worker/__tests__/bootstrap.test.js.map +0 -1
  590. package/dist/worker/__tests__/flow-service-wiring.test.d.ts +0 -2
  591. package/dist/worker/__tests__/flow-service-wiring.test.d.ts.map +0 -1
  592. package/dist/worker/__tests__/flow-service-wiring.test.js +0 -64
  593. package/dist/worker/__tests__/flow-service-wiring.test.js.map +0 -1
@@ -1,384 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { z } from 'zod';
3
- import { AIIncompleteOutputError } from '../refusal.js';
4
- import { AIValidationError, generateWithValidation } from '../validation.js';
5
- import { createMockProvider } from './provider.test.js';
6
- describe('generateWithValidation', () => {
7
- const schema = z.object({ name: z.string(), age: z.number() });
8
- it('returns validated data on first try', async () => {
9
- const provider = createMockProvider({
10
- complete: vi.fn(async () => ({
11
- content: '{"name":"Alice","age":30}',
12
- model: 'mock',
13
- usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },
14
- finishReason: 'stop',
15
- })),
16
- });
17
- const result = await generateWithValidation(provider, { prompt: 'test' }, schema);
18
- expect(result.data).toEqual({ name: 'Alice', age: 30 });
19
- expect(result.attempts).toBe(1);
20
- expect(result.usage.totalTokens).toBe(30);
21
- });
22
- it('retries on invalid JSON and succeeds', async () => {
23
- let callCount = 0;
24
- const provider = createMockProvider({
25
- complete: vi.fn(async () => {
26
- callCount++;
27
- if (callCount === 1) {
28
- return {
29
- content: 'not json',
30
- model: 'mock',
31
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
32
- finishReason: 'stop',
33
- };
34
- }
35
- return {
36
- content: '{"name":"Bob","age":25}',
37
- model: 'mock',
38
- usage: { inputTokens: 15, outputTokens: 20, totalTokens: 35 },
39
- finishReason: 'stop',
40
- };
41
- }),
42
- });
43
- const result = await generateWithValidation(provider, { prompt: 'test' }, schema);
44
- expect(result.data).toEqual({ name: 'Bob', age: 25 });
45
- expect(result.attempts).toBe(2);
46
- expect(result.usage.totalTokens).toBe(50); // 15 + 35
47
- });
48
- it('accepts JSON wrapped in markdown fences', async () => {
49
- const provider = createMockProvider({
50
- complete: vi.fn(async () => ({
51
- content: '```json\n{"name":"Dana","age":29}\n```',
52
- model: 'mock',
53
- usage: { inputTokens: 10, outputTokens: 12, totalTokens: 22 },
54
- finishReason: 'stop',
55
- })),
56
- });
57
- const result = await generateWithValidation(provider, { prompt: 'test' }, schema);
58
- expect(result.data).toEqual({ name: 'Dana', age: 29 });
59
- expect(result.attempts).toBe(1);
60
- });
61
- it('accepts JSON with raw newlines inside string fields', async () => {
62
- const multilineSchema = z.object({ content: z.string(), language: z.string() });
63
- const provider = createMockProvider({
64
- complete: vi.fn(async () => ({
65
- content: '{"content":"Line 1\nLine 2","language":"en"}',
66
- model: 'mock',
67
- usage: { inputTokens: 10, outputTokens: 16, totalTokens: 26 },
68
- finishReason: 'stop',
69
- })),
70
- });
71
- const result = await generateWithValidation(provider, { prompt: 'test json' }, multilineSchema);
72
- expect(result.data).toEqual({ content: 'Line 1\nLine 2', language: 'en' });
73
- expect(result.attempts).toBe(1);
74
- });
75
- it('throws after max retries exhausted', async () => {
76
- const provider = createMockProvider({
77
- complete: vi.fn(async () => ({
78
- content: '{"wrong":"schema"}',
79
- model: 'mock',
80
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
81
- finishReason: 'stop',
82
- })),
83
- });
84
- await expect(generateWithValidation(provider, { prompt: 'test' }, schema, { maxRetries: 1 })).rejects.toThrow('AI output validation failed after 2 attempts');
85
- });
86
- it('does not retry incomplete provider outputs', async () => {
87
- const provider = createMockProvider({
88
- complete: vi.fn(async () => ({
89
- content: '{"name":"Alice"',
90
- model: 'mock',
91
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
92
- finishReason: 'length',
93
- })),
94
- });
95
- await expect(generateWithValidation(provider, { prompt: 'test json' }, schema)).rejects.toThrow(AIIncompleteOutputError);
96
- expect(provider.complete).toHaveBeenCalledTimes(1);
97
- });
98
- it('does not silently repair truncated JSON', async () => {
99
- const provider = createMockProvider({
100
- complete: vi.fn(async () => ({
101
- content: '{"name":"Alice","age":30',
102
- model: 'mock',
103
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
104
- finishReason: 'stop',
105
- })),
106
- });
107
- await expect(generateWithValidation(provider, { prompt: 'test json' }, schema, { maxRetries: 0 })).rejects.toThrow('AI output validation failed after 1 attempts');
108
- });
109
- it('does not phone home to a debug ingest endpoint on structured parse failure', async () => {
110
- const mockFetch = vi.fn().mockResolvedValue({ ok: true });
111
- vi.stubGlobal('fetch', mockFetch);
112
- const provider = createMockProvider({
113
- complete: vi.fn(async () => ({
114
- content: '{"name":"Alice","age":30',
115
- model: 'mock-model',
116
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
117
- finishReason: 'stop',
118
- })),
119
- });
120
- await expect(generateWithValidation(provider, {
121
- prompt: 'test json',
122
- responseSchema: { type: 'object' },
123
- maxTokens: 400000,
124
- }, schema, { maxRetries: 0, provider: 'mock-provider', model: 'mock-model' })).rejects.toThrow('AI output validation failed after 1 attempts');
125
- const ingestCall = mockFetch.mock.calls.find(([url]) => String(url).includes('/ingest/'));
126
- expect(ingestCall).toBeUndefined();
127
- vi.unstubAllGlobals();
128
- });
129
- it('preserves the last raw output on validation failure', async () => {
130
- const provider = createMockProvider({
131
- complete: vi.fn(async () => ({
132
- content: '{"name":"Alice","age":30',
133
- model: 'mock',
134
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
135
- finishReason: 'stop',
136
- })),
137
- });
138
- let caught;
139
- try {
140
- await generateWithValidation(provider, { prompt: 'test json' }, schema, { maxRetries: 0 });
141
- }
142
- catch (error) {
143
- caught = error;
144
- }
145
- expect(caught).toBeInstanceOf(AIValidationError);
146
- expect(caught.attempts).toBe(1);
147
- expect(caught.rawOutput).toBe('{"name":"Alice","age":30');
148
- });
149
- it('AIValidationError carries accumulated usage, model, and provider', async () => {
150
- const provider = createMockProvider({
151
- complete: vi.fn(async () => ({
152
- content: '{"bad":"shape"}',
153
- model: 'mock',
154
- usage: { inputTokens: 7, outputTokens: 8, totalTokens: 15 },
155
- finishReason: 'stop',
156
- })),
157
- });
158
- let caught;
159
- try {
160
- await generateWithValidation(provider, { prompt: 'test json' }, schema, {
161
- maxRetries: 1,
162
- feedbackOnError: false,
163
- model: 'grok-4-fast-non-reasoning',
164
- provider: 'xai',
165
- });
166
- }
167
- catch (error) {
168
- caught = error;
169
- }
170
- expect(caught).toBeInstanceOf(AIValidationError);
171
- const err = caught;
172
- // Two attempts × 15 tokens = 30 accumulated
173
- expect(err.usage.totalTokens).toBe(30);
174
- expect(err.usage.inputTokens).toBe(14);
175
- expect(err.usage.outputTokens).toBe(16);
176
- expect(err.model).toBe('grok-4-fast-non-reasoning');
177
- expect(err.provider).toBe('xai');
178
- });
179
- it('AIValidationError defaults to provider.name when no explicit provider is threaded', async () => {
180
- const provider = createMockProvider({
181
- name: 'named-mock',
182
- complete: vi.fn(async () => ({
183
- content: '{"bad":"shape"}',
184
- model: 'mock',
185
- usage: { inputTokens: 1, outputTokens: 1, totalTokens: 2 },
186
- finishReason: 'stop',
187
- })),
188
- });
189
- let caught;
190
- try {
191
- await generateWithValidation(provider, { prompt: 'x json' }, schema, { maxRetries: 0 });
192
- }
193
- catch (error) {
194
- caught = error;
195
- }
196
- expect(caught.provider).toBe('named-mock');
197
- expect(caught.model).toBe('');
198
- });
199
- it('accumulates token usage across retries', async () => {
200
- let callCount = 0;
201
- const provider = createMockProvider({
202
- complete: vi.fn(async () => {
203
- callCount++;
204
- if (callCount <= 2) {
205
- return {
206
- content: '{}',
207
- model: 'mock',
208
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
209
- finishReason: 'stop',
210
- };
211
- }
212
- return {
213
- content: '{"name":"Carl","age":40}',
214
- model: 'mock',
215
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
216
- finishReason: 'stop',
217
- };
218
- }),
219
- });
220
- const result = await generateWithValidation(provider, { prompt: 'test' }, schema, {
221
- maxRetries: 2,
222
- });
223
- expect(result.data).toEqual({ name: 'Carl', age: 40 });
224
- expect(result.attempts).toBe(3);
225
- expect(result.usage.totalTokens).toBe(60);
226
- });
227
- it('appends error feedback when feedbackOnError is true', async () => {
228
- const calls = [];
229
- const provider = createMockProvider({
230
- complete: vi.fn(async (req) => {
231
- calls.push(req.prompt);
232
- if (calls.length === 1) {
233
- return {
234
- content: '{}',
235
- model: 'mock',
236
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
237
- finishReason: 'stop',
238
- };
239
- }
240
- return {
241
- content: '{"name":"D","age":1}',
242
- model: 'mock',
243
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
244
- finishReason: 'stop',
245
- };
246
- }),
247
- });
248
- await generateWithValidation(provider, { prompt: 'original' }, schema, {
249
- maxRetries: 1,
250
- feedbackOnError: true,
251
- });
252
- expect(calls[1]).toContain('previous response was invalid');
253
- });
254
- it('auto-injects JSON instruction when prompt lacks "json"', async () => {
255
- const prompts = [];
256
- const provider = createMockProvider({
257
- complete: vi.fn(async (req) => {
258
- prompts.push(req.prompt);
259
- return {
260
- content: '{"name":"E","age":2}',
261
- model: 'mock',
262
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
263
- finishReason: 'stop',
264
- };
265
- }),
266
- });
267
- await generateWithValidation(provider, { prompt: 'Tell me about Alice' }, schema);
268
- expect(prompts[0]).toContain('Respond with a valid JSON object.');
269
- });
270
- it('does not inject JSON instruction when prompt already mentions json', async () => {
271
- const prompts = [];
272
- const provider = createMockProvider({
273
- complete: vi.fn(async (req) => {
274
- prompts.push(req.prompt);
275
- return {
276
- content: '{"name":"F","age":3}',
277
- model: 'mock',
278
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
279
- finishReason: 'stop',
280
- };
281
- }),
282
- });
283
- await generateWithValidation(provider, { prompt: 'Return the answer as json' }, schema);
284
- expect(prompts[0]).toBe('Return the answer as json');
285
- expect(prompts[0]).not.toContain('Respond with a valid JSON object.');
286
- });
287
- describe('with z.string() output schema', () => {
288
- it('uses responseFormat="text" and passes raw content through unwrapped', async () => {
289
- const stringSchema = z.string();
290
- const observed = [];
291
- const provider = createMockProvider({
292
- complete: vi.fn(async (req) => {
293
- observed.push(req);
294
- return {
295
- content: 'E|Childhood|1930|0.87||A description|||||||self|',
296
- model: 'mock',
297
- usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },
298
- finishReason: 'stop',
299
- };
300
- }),
301
- });
302
- const result = await generateWithValidation(provider, { prompt: 'Return pipe rows' }, stringSchema);
303
- expect(result.data).toBe('E|Childhood|1930|0.87||A description|||||||self|');
304
- expect(result.attempts).toBe(1);
305
- expect(observed[0]?.responseFormat).toBe('text');
306
- });
307
- it('does NOT inject the "Respond with a valid JSON object" hint when the schema is z.string()', async () => {
308
- const stringSchema = z.string();
309
- const prompts = [];
310
- const provider = createMockProvider({
311
- complete: vi.fn(async (req) => {
312
- prompts.push(req.prompt);
313
- return {
314
- content: 'some text',
315
- model: 'mock',
316
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
317
- finishReason: 'stop',
318
- };
319
- }),
320
- });
321
- await generateWithValidation(provider, { prompt: 'Say hi' }, stringSchema);
322
- expect(prompts[0]).toBe('Say hi');
323
- expect(prompts[0]).not.toContain('Respond with a valid JSON object.');
324
- });
325
- it('passes a raw pipe payload through even when it contains JSON-like braces', async () => {
326
- // Regression: the old code path ran JSON.parse on the content first,
327
- // so a pipe row containing `{}` would have thrown before reaching the
328
- // schema. With text mode we pass the raw string straight through.
329
- const stringSchema = z.string();
330
- const provider = createMockProvider({
331
- complete: vi.fn(async () => ({
332
- content: 'E|Event with {braces}|1950|0.5||{partial json} description|||||||self|',
333
- model: 'mock',
334
- usage: { inputTokens: 5, outputTokens: 5, totalTokens: 10 },
335
- finishReason: 'stop',
336
- })),
337
- });
338
- const result = await generateWithValidation(provider, { prompt: 'Return pipe rows' }, stringSchema);
339
- expect(result.data).toContain('{braces}');
340
- expect(result.data).toContain('{partial json}');
341
- });
342
- it('still forces JSON mode for object schemas (backward compat)', async () => {
343
- // Ensures the string-output path is strictly additive: any non-string
344
- // schema (the common case) still gets responseFormat='json' and the
345
- // JSON auto-hint.
346
- const prompts = [];
347
- const observed = [];
348
- const provider = createMockProvider({
349
- complete: vi.fn(async (req) => {
350
- prompts.push(req.prompt);
351
- observed.push(req);
352
- return {
353
- content: '{"name":"Hi","age":1}',
354
- model: 'mock',
355
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
356
- finishReason: 'stop',
357
- };
358
- }),
359
- });
360
- await generateWithValidation(provider, { prompt: 'Tell me' }, schema);
361
- expect(observed[0]?.responseFormat).toBe('json');
362
- expect(prompts[0]).toContain('Respond with a valid JSON object.');
363
- });
364
- it('unwraps z.string().optional() and still uses text mode', async () => {
365
- const optionalString = z.string().optional();
366
- const observed = [];
367
- const provider = createMockProvider({
368
- complete: vi.fn(async (req) => {
369
- observed.push(req);
370
- return {
371
- content: 'raw text payload',
372
- model: 'mock',
373
- usage: { inputTokens: 5, outputTokens: 5, totalTokens: 10 },
374
- finishReason: 'stop',
375
- };
376
- }),
377
- });
378
- const result = await generateWithValidation(provider, { prompt: 'Say hi' }, optionalString);
379
- expect(result.data).toBe('raw text payload');
380
- expect(observed[0]?.responseFormat).toBe('text');
381
- });
382
- });
383
- });
384
- //# sourceMappingURL=validation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/ai/__tests__/validation.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=zod-to-provider-schema.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod-to-provider-schema.test.d.ts","sourceRoot":"","sources":["../../../src/ai/__tests__/zod-to-provider-schema.test.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { z } from 'zod';
3
- import { ProviderJsonSchemaError, zodToProviderJsonSchema } from '../zod-to-provider-schema.js';
4
- describe('zodToProviderJsonSchema', () => {
5
- it('converts Zod objects into provider-safe JSON Schema', () => {
6
- const result = zodToProviderJsonSchema(z.object({
7
- title: z.string(),
8
- url: z.string().url(),
9
- count: z.number().min(1).max(10),
10
- tags: z.array(z.string()).min(2).max(5),
11
- optionalNote: z.string().optional(),
12
- }), { promptName: 'test.prompt' });
13
- expect(result.schema).toMatchObject({
14
- type: 'object',
15
- additionalProperties: false,
16
- required: ['title', 'url', 'count', 'tags'],
17
- });
18
- expect(result.optionalParameterCount).toBe(1);
19
- expect(result.unionParameterCount).toBe(0);
20
- expect(result.schema.properties).toMatchObject({
21
- url: { type: 'string', format: 'uri' },
22
- count: {
23
- type: 'number',
24
- description: 'Must be at least 1. Must be at most 10.',
25
- },
26
- tags: {
27
- type: 'array',
28
- minItems: 1,
29
- description: 'Must contain at least 2 items. Must contain at most 5 items.',
30
- },
31
- });
32
- });
33
- it('rejects unsupported regex patterns before provider calls', () => {
34
- expect(() => zodToProviderJsonSchema(z.object({ value: z.string().regex(/^(a)\1$/) }))).not.toThrow();
35
- const converted = zodToProviderJsonSchema(z.object({ value: z.string().regex(/^(a)\1$/) }));
36
- expect(converted.schema.properties).toMatchObject({
37
- value: {
38
- type: 'string',
39
- description: 'Must match pattern: ^(a)\\1$.',
40
- },
41
- });
42
- });
43
- it('throws locally when Anthropic complexity limits are exceeded', () => {
44
- const shape = {};
45
- for (let index = 0; index < 25; index += 1) {
46
- shape[`field${index}`] = z.string().optional();
47
- }
48
- expect(() => zodToProviderJsonSchema(z.object(shape), { promptName: 'too.optional' })).toThrow(ProviderJsonSchemaError);
49
- expect(() => zodToProviderJsonSchema(z.object(shape), { promptName: 'too.optional' })).toThrow('too.optional');
50
- });
51
- it('counts union parameters and rejects empty enums', () => {
52
- const result = zodToProviderJsonSchema(z.object({
53
- maybe: z.union([z.string(), z.number()]),
54
- nullable: z.string().nullable(),
55
- }));
56
- expect(result.unionParameterCount).toBe(2);
57
- expect(() => zodToProviderJsonSchema(z.object({ none: z.enum([]) }))).toThrow('empty enum');
58
- });
59
- });
60
- //# sourceMappingURL=zod-to-provider-schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod-to-provider-schema.test.js","sourceRoot":"","sources":["../../../src/ai/__tests__/zod-to-provider-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,uBAAuB,CACpC,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC,CAAC,EACF,EAAE,UAAU,EAAE,aAAa,EAAE,CAC9B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAClC,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;YAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;YACtC,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,8DAA8D;aAC5E;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,GAAG,EAAE,CACV,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAC1E,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;YAChD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAC5F,uBAAuB,CACxB,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAC5F,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,uBAAuB,CACpC,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,CAAC,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACpF,YAAY,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=route-generator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-generator.test.d.ts","sourceRoot":"","sources":["../../../src/api/__tests__/route-generator.test.ts"],"names":[],"mappings":""}