@harperfast/harper 5.0.25 → 5.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1121) hide show
  1. package/README.md +11 -10
  2. package/agent/agent.ts +203 -0
  3. package/agent/loop.ts +205 -0
  4. package/agent/operations.ts +148 -0
  5. package/agent/session.ts +187 -0
  6. package/agent/tools/fsTools.ts +276 -0
  7. package/agent/tools/httpFetchTool.ts +112 -0
  8. package/agent/tools/scheduleTool.ts +68 -0
  9. package/agent/toolset.ts +43 -0
  10. package/agent/types.ts +85 -0
  11. package/bin/{BinObjects.js → BinObjects.ts} +4 -5
  12. package/bin/cliCredentials.ts +133 -0
  13. package/bin/cliOperations.ts +339 -0
  14. package/bin/copyDb.ts +10 -10
  15. package/bin/deployRenderer.ts +196 -0
  16. package/bin/{harper.js → harper.ts} +43 -19
  17. package/bin/{install.js → install.ts} +3 -3
  18. package/bin/lite.ts +2 -0
  19. package/bin/login.ts +168 -0
  20. package/bin/logout.ts +11 -0
  21. package/bin/mcp/client.ts +407 -0
  22. package/bin/mcp/doctor.ts +189 -0
  23. package/bin/mcp/index.ts +80 -0
  24. package/bin/mcp/options.ts +122 -0
  25. package/bin/mcp/printConfig.ts +89 -0
  26. package/bin/multipartBuilder.ts +74 -0
  27. package/bin/{restart.js → restart.ts} +27 -28
  28. package/bin/{run.js → run.ts} +41 -30
  29. package/bin/sseConsumer.ts +126 -0
  30. package/bin/{status.js → status.ts} +10 -10
  31. package/bin/{stop.js → stop.ts} +5 -5
  32. package/bin/upgrade.js +6 -6
  33. package/components/Application.ts +144 -18
  34. package/components/ApplicationScope.ts +2 -2
  35. package/components/ComponentV1.ts +2 -2
  36. package/components/EntryHandler.ts +159 -9
  37. package/components/OptionsWatcher.ts +75 -11
  38. package/components/Scope.ts +125 -15
  39. package/components/anthropic/index.ts +547 -0
  40. package/components/bedrock/index.ts +823 -0
  41. package/components/componentLoader.ts +63 -32
  42. package/components/deployLifecycle.ts +161 -0
  43. package/components/deploymentOperations.ts +173 -0
  44. package/components/deploymentRecorder.ts +402 -0
  45. package/components/deriveURLPath.ts +4 -4
  46. package/components/mcp/adapters/fastify.ts +87 -0
  47. package/components/mcp/adapters/harperHttp.ts +103 -0
  48. package/components/mcp/audit.ts +75 -0
  49. package/components/mcp/index.ts +134 -0
  50. package/components/mcp/jsonrpc.ts +134 -0
  51. package/components/mcp/lifecycle.ts +105 -0
  52. package/components/mcp/listChanged.ts +270 -0
  53. package/components/mcp/rateLimit.ts +217 -0
  54. package/components/mcp/resources.ts +593 -0
  55. package/components/mcp/session.ts +151 -0
  56. package/components/mcp/sessionRegistry.ts +140 -0
  57. package/components/mcp/toolRegistry.ts +292 -0
  58. package/components/mcp/tools/application.ts +603 -0
  59. package/components/mcp/tools/operations.ts +283 -0
  60. package/components/mcp/tools/schemas/derive.ts +256 -0
  61. package/components/mcp/tools/schemas/operations.ts +245 -0
  62. package/components/mcp/transport.ts +517 -0
  63. package/components/ollama/index.ts +316 -0
  64. package/components/openai/index.ts +563 -0
  65. package/components/operations.js +211 -60
  66. package/components/operationsValidation.js +3 -3
  67. package/components/packageComponent.ts +97 -29
  68. package/components/requestRestart.ts +17 -2
  69. package/components/status/crossThread.ts +14 -5
  70. package/components/status/errors.ts +1 -1
  71. package/config/RootConfigWatcher.ts +56 -2
  72. package/config/configUtils.js +29 -8
  73. package/config/harperConfigEnvVars.ts +1 -1
  74. package/config-root.schema.json +74 -0
  75. package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
  76. package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
  77. package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
  78. package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
  79. package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
  80. package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
  81. package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
  82. package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
  83. package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
  84. package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
  85. package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
  86. package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
  87. package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
  88. package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
  89. package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
  90. package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
  91. package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
  92. package/dataLayer/{delete.js → delete.ts} +21 -26
  93. package/dataLayer/{export.js → export.ts} +22 -26
  94. package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
  95. package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
  96. package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
  97. package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
  98. package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  99. package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
  100. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
  101. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  102. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  103. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
  104. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
  105. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  106. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
  107. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
  108. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  109. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  110. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  111. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  112. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
  113. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  114. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
  115. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  116. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
  117. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  118. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
  119. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
  120. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
  121. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  122. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
  123. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
  124. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
  125. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  126. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  127. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  128. package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
  129. package/dataLayer/{insert.js → insert.ts} +24 -24
  130. package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
  131. package/dataLayer/{schema.js → schema.ts} +32 -44
  132. package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
  133. package/dataLayer/{search.js → search.ts} +9 -15
  134. package/dataLayer/{transaction.js → transaction.ts} +2 -5
  135. package/dataLayer/{update.js → update.ts} +19 -22
  136. package/dist/agent/agent.d.ts +35 -0
  137. package/dist/agent/agent.js +175 -0
  138. package/dist/agent/agent.js.map +1 -0
  139. package/dist/agent/loop.d.ts +34 -0
  140. package/dist/agent/loop.js +176 -0
  141. package/dist/agent/loop.js.map +1 -0
  142. package/dist/agent/operations.d.ts +17 -0
  143. package/dist/agent/operations.js +137 -0
  144. package/dist/agent/operations.js.map +1 -0
  145. package/dist/agent/session.d.ts +36 -0
  146. package/dist/agent/session.js +182 -0
  147. package/dist/agent/session.js.map +1 -0
  148. package/dist/agent/tools/fsTools.d.ts +19 -0
  149. package/dist/agent/tools/fsTools.js +286 -0
  150. package/dist/agent/tools/fsTools.js.map +1 -0
  151. package/dist/agent/tools/httpFetchTool.d.ts +9 -0
  152. package/dist/agent/tools/httpFetchTool.js +116 -0
  153. package/dist/agent/tools/httpFetchTool.js.map +1 -0
  154. package/dist/agent/tools/scheduleTool.d.ts +22 -0
  155. package/dist/agent/tools/scheduleTool.js +54 -0
  156. package/dist/agent/tools/scheduleTool.js.map +1 -0
  157. package/dist/agent/toolset.d.ts +24 -0
  158. package/dist/agent/toolset.js +33 -0
  159. package/dist/agent/toolset.js.map +1 -0
  160. package/dist/agent/types.d.ts +75 -0
  161. package/dist/agent/types.js +10 -0
  162. package/dist/agent/types.js.map +1 -0
  163. package/dist/bin/BinObjects.d.ts +2 -2
  164. package/dist/bin/BinObjects.js +6 -3
  165. package/dist/bin/BinObjects.js.map +1 -1
  166. package/dist/bin/cliCredentials.d.ts +27 -0
  167. package/dist/bin/cliCredentials.js +130 -0
  168. package/dist/bin/cliCredentials.js.map +1 -0
  169. package/dist/bin/cliOperations.d.ts +7 -7
  170. package/dist/bin/cliOperations.js +251 -37
  171. package/dist/bin/cliOperations.js.map +1 -1
  172. package/dist/bin/copyDb.js +16 -16
  173. package/dist/bin/copyDb.js.map +1 -1
  174. package/dist/bin/deployRenderer.d.ts +47 -0
  175. package/dist/bin/deployRenderer.js +185 -0
  176. package/dist/bin/deployRenderer.js.map +1 -0
  177. package/dist/bin/harper.d.ts +2 -1
  178. package/dist/bin/harper.js +87 -26
  179. package/dist/bin/harper.js.map +1 -1
  180. package/dist/bin/install.d.ts +1 -1
  181. package/dist/bin/install.js +41 -4
  182. package/dist/bin/install.js.map +1 -1
  183. package/dist/bin/lite.js +3 -4
  184. package/dist/bin/lite.js.map +1 -1
  185. package/dist/bin/login.d.ts +4 -0
  186. package/dist/bin/login.js +158 -0
  187. package/dist/bin/login.js.map +1 -0
  188. package/dist/bin/logout.d.ts +4 -0
  189. package/dist/bin/logout.js +16 -0
  190. package/dist/bin/logout.js.map +1 -0
  191. package/dist/bin/mcp/client.d.ts +34 -0
  192. package/dist/bin/mcp/client.js +395 -0
  193. package/dist/bin/mcp/client.js.map +1 -0
  194. package/dist/bin/mcp/doctor.d.ts +11 -0
  195. package/dist/bin/mcp/doctor.js +193 -0
  196. package/dist/bin/mcp/doctor.js.map +1 -0
  197. package/dist/bin/mcp/index.d.ts +10 -0
  198. package/dist/bin/mcp/index.js +81 -0
  199. package/dist/bin/mcp/index.js.map +1 -0
  200. package/dist/bin/mcp/options.d.ts +33 -0
  201. package/dist/bin/mcp/options.js +113 -0
  202. package/dist/bin/mcp/options.js.map +1 -0
  203. package/dist/bin/mcp/printConfig.d.ts +14 -0
  204. package/dist/bin/mcp/printConfig.js +85 -0
  205. package/dist/bin/mcp/printConfig.js.map +1 -0
  206. package/dist/bin/multipartBuilder.d.ts +26 -0
  207. package/dist/bin/multipartBuilder.js +55 -0
  208. package/dist/bin/multipartBuilder.js.map +1 -0
  209. package/dist/bin/restart.d.ts +3 -2
  210. package/dist/bin/restart.js +82 -45
  211. package/dist/bin/restart.js.map +1 -1
  212. package/dist/bin/run.d.ts +13 -9
  213. package/dist/bin/run.js +111 -65
  214. package/dist/bin/run.js.map +1 -1
  215. package/dist/bin/sseConsumer.d.ts +24 -0
  216. package/dist/bin/sseConsumer.js +127 -0
  217. package/dist/bin/sseConsumer.js.map +1 -0
  218. package/dist/bin/status.d.ts +1 -1
  219. package/dist/bin/status.js +48 -11
  220. package/dist/bin/status.js.map +1 -1
  221. package/dist/bin/stop.d.ts +1 -1
  222. package/dist/bin/stop.js +43 -6
  223. package/dist/bin/stop.js.map +1 -1
  224. package/dist/bin/upgrade.js +6 -6
  225. package/dist/components/Application.d.ts +29 -17
  226. package/dist/components/Application.js +134 -28
  227. package/dist/components/Application.js.map +1 -1
  228. package/dist/components/ApplicationScope.js +2 -2
  229. package/dist/components/ComponentV1.d.ts +1 -1
  230. package/dist/components/ComponentV1.js +5 -5
  231. package/dist/components/ComponentV1.js.map +1 -1
  232. package/dist/components/EntryHandler.d.ts +26 -3
  233. package/dist/components/EntryHandler.js +153 -13
  234. package/dist/components/EntryHandler.js.map +1 -1
  235. package/dist/components/OptionsWatcher.d.ts +7 -2
  236. package/dist/components/OptionsWatcher.js +72 -10
  237. package/dist/components/OptionsWatcher.js.map +1 -1
  238. package/dist/components/Scope.d.ts +11 -6
  239. package/dist/components/Scope.js +105 -9
  240. package/dist/components/Scope.js.map +1 -1
  241. package/dist/components/anthropic/index.d.ts +40 -0
  242. package/dist/components/anthropic/index.js +428 -0
  243. package/dist/components/anthropic/index.js.map +1 -0
  244. package/dist/components/bedrock/index.d.ts +79 -0
  245. package/dist/components/bedrock/index.js +734 -0
  246. package/dist/components/bedrock/index.js.map +1 -0
  247. package/dist/components/componentLoader.d.ts +29 -0
  248. package/dist/components/componentLoader.js +63 -38
  249. package/dist/components/componentLoader.js.map +1 -1
  250. package/dist/components/deployLifecycle.d.ts +39 -0
  251. package/dist/components/deployLifecycle.js +156 -0
  252. package/dist/components/deployLifecycle.js.map +1 -0
  253. package/dist/components/deploymentOperations.d.ts +19 -0
  254. package/dist/components/deploymentOperations.js +185 -0
  255. package/dist/components/deploymentOperations.js.map +1 -0
  256. package/dist/components/deploymentRecorder.d.ts +81 -0
  257. package/dist/components/deploymentRecorder.js +401 -0
  258. package/dist/components/deploymentRecorder.js.map +1 -0
  259. package/dist/components/deriveURLPath.d.ts +2 -2
  260. package/dist/components/deriveURLPath.js +2 -2
  261. package/dist/components/deriveURLPath.js.map +1 -1
  262. package/dist/components/mcp/adapters/fastify.d.ts +35 -0
  263. package/dist/components/mcp/adapters/fastify.js +66 -0
  264. package/dist/components/mcp/adapters/fastify.js.map +1 -0
  265. package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
  266. package/dist/components/mcp/adapters/harperHttp.js +78 -0
  267. package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
  268. package/dist/components/mcp/audit.d.ts +27 -0
  269. package/dist/components/mcp/audit.js +73 -0
  270. package/dist/components/mcp/audit.js.map +1 -0
  271. package/dist/components/mcp/index.d.ts +47 -0
  272. package/dist/components/mcp/index.js +109 -0
  273. package/dist/components/mcp/index.js.map +1 -0
  274. package/dist/components/mcp/jsonrpc.d.ts +71 -0
  275. package/dist/components/mcp/jsonrpc.js +93 -0
  276. package/dist/components/mcp/jsonrpc.js.map +1 -0
  277. package/dist/components/mcp/lifecycle.d.ts +69 -0
  278. package/dist/components/mcp/lifecycle.js +79 -0
  279. package/dist/components/mcp/lifecycle.js.map +1 -0
  280. package/dist/components/mcp/listChanged.d.ts +24 -0
  281. package/dist/components/mcp/listChanged.js +257 -0
  282. package/dist/components/mcp/listChanged.js.map +1 -0
  283. package/dist/components/mcp/rateLimit.d.ts +25 -0
  284. package/dist/components/mcp/rateLimit.js +226 -0
  285. package/dist/components/mcp/rateLimit.js.map +1 -0
  286. package/dist/components/mcp/resources.d.ts +90 -0
  287. package/dist/components/mcp/resources.js +515 -0
  288. package/dist/components/mcp/resources.js.map +1 -0
  289. package/dist/components/mcp/session.d.ts +36 -0
  290. package/dist/components/mcp/session.js +170 -0
  291. package/dist/components/mcp/session.js.map +1 -0
  292. package/dist/components/mcp/sessionRegistry.d.ts +63 -0
  293. package/dist/components/mcp/sessionRegistry.js +124 -0
  294. package/dist/components/mcp/sessionRegistry.js.map +1 -0
  295. package/dist/components/mcp/toolRegistry.d.ts +150 -0
  296. package/dist/components/mcp/toolRegistry.js +176 -0
  297. package/dist/components/mcp/toolRegistry.js.map +1 -0
  298. package/dist/components/mcp/tools/application.d.ts +58 -0
  299. package/dist/components/mcp/tools/application.js +549 -0
  300. package/dist/components/mcp/tools/application.js.map +1 -0
  301. package/dist/components/mcp/tools/operations.d.ts +23 -0
  302. package/dist/components/mcp/tools/operations.js +303 -0
  303. package/dist/components/mcp/tools/operations.js.map +1 -0
  304. package/dist/components/mcp/tools/schemas/derive.d.ts +36 -0
  305. package/dist/components/mcp/tools/schemas/derive.js +216 -0
  306. package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
  307. package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
  308. package/dist/components/mcp/tools/schemas/operations.js +243 -0
  309. package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
  310. package/dist/components/mcp/transport.d.ts +38 -0
  311. package/dist/components/mcp/transport.js +467 -0
  312. package/dist/components/mcp/transport.js.map +1 -0
  313. package/dist/components/ollama/index.d.ts +46 -0
  314. package/dist/components/ollama/index.js +239 -0
  315. package/dist/components/ollama/index.js.map +1 -0
  316. package/dist/components/openai/index.d.ts +51 -0
  317. package/dist/components/openai/index.js +475 -0
  318. package/dist/components/openai/index.js.map +1 -0
  319. package/dist/components/operations.d.ts +6 -6
  320. package/dist/components/operations.js +198 -52
  321. package/dist/components/operations.js.map +1 -1
  322. package/dist/components/operationsValidation.d.ts +2 -2
  323. package/dist/components/operationsValidation.js +3 -3
  324. package/dist/components/packageComponent.d.ts +28 -6
  325. package/dist/components/packageComponent.js +87 -26
  326. package/dist/components/packageComponent.js.map +1 -1
  327. package/dist/components/requestRestart.d.ts +1 -0
  328. package/dist/components/requestRestart.js +12 -1
  329. package/dist/components/requestRestart.js.map +1 -1
  330. package/dist/components/status/crossThread.d.ts +5 -1
  331. package/dist/components/status/crossThread.js +12 -5
  332. package/dist/components/status/crossThread.js.map +1 -1
  333. package/dist/components/status/errors.js +7 -7
  334. package/dist/config/RootConfigWatcher.d.ts +3 -0
  335. package/dist/config/RootConfigWatcher.js +52 -1
  336. package/dist/config/RootConfigWatcher.js.map +1 -1
  337. package/dist/config/configUtils.js +31 -8
  338. package/dist/config/configUtils.js.map +1 -1
  339. package/dist/config/harperConfigEnvVars.js +1 -1
  340. package/dist/config/harperConfigEnvVars.js.map +1 -1
  341. package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
  342. package/dist/dataLayer/CreateAttributeObject.js +4 -3
  343. package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
  344. package/dist/dataLayer/CreateTableObject.d.ts +2 -4
  345. package/dist/dataLayer/CreateTableObject.js +2 -1
  346. package/dist/dataLayer/CreateTableObject.js.map +1 -1
  347. package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
  348. package/dist/dataLayer/DataLayerObjects.js +19 -5
  349. package/dist/dataLayer/DataLayerObjects.js.map +1 -1
  350. package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
  351. package/dist/dataLayer/DeleteBeforeObject.js +2 -1
  352. package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
  353. package/dist/dataLayer/DeleteObject.d.ts +3 -7
  354. package/dist/dataLayer/DeleteObject.js +4 -3
  355. package/dist/dataLayer/DeleteObject.js.map +1 -1
  356. package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
  357. package/dist/dataLayer/DropAttributeObject.js +2 -1
  358. package/dist/dataLayer/DropAttributeObject.js.map +1 -1
  359. package/dist/dataLayer/GetBackupObject.d.ts +3 -5
  360. package/dist/dataLayer/GetBackupObject.js +4 -3
  361. package/dist/dataLayer/GetBackupObject.js.map +1 -1
  362. package/dist/dataLayer/InsertObject.d.ts +3 -8
  363. package/dist/dataLayer/InsertObject.js +4 -3
  364. package/dist/dataLayer/InsertObject.js.map +1 -1
  365. package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
  366. package/dist/dataLayer/ReadAuditLogObject.js +4 -3
  367. package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
  368. package/dist/dataLayer/SQLSearch.d.ts +68 -38
  369. package/dist/dataLayer/SQLSearch.js +140 -78
  370. package/dist/dataLayer/SQLSearch.js.map +1 -1
  371. package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
  372. package/dist/dataLayer/SearchByConditionsObject.js +5 -7
  373. package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
  374. package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
  375. package/dist/dataLayer/SearchByHashObject.js +2 -1
  376. package/dist/dataLayer/SearchByHashObject.js.map +1 -1
  377. package/dist/dataLayer/SearchObject.d.ts +3 -12
  378. package/dist/dataLayer/SearchObject.js +2 -1
  379. package/dist/dataLayer/SearchObject.js.map +1 -1
  380. package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
  381. package/dist/dataLayer/SqlSearchObject.js +2 -1
  382. package/dist/dataLayer/SqlSearchObject.js.map +1 -1
  383. package/dist/dataLayer/UpdateObject.d.ts +3 -7
  384. package/dist/dataLayer/UpdateObject.js +4 -3
  385. package/dist/dataLayer/UpdateObject.js.map +1 -1
  386. package/dist/dataLayer/UpsertObject.d.ts +3 -7
  387. package/dist/dataLayer/UpsertObject.js +4 -3
  388. package/dist/dataLayer/UpsertObject.js.map +1 -1
  389. package/dist/dataLayer/bulkLoad.d.ts +4 -4
  390. package/dist/dataLayer/bulkLoad.js +122 -88
  391. package/dist/dataLayer/bulkLoad.js.map +1 -1
  392. package/dist/dataLayer/delete.d.ts +10 -11
  393. package/dist/dataLayer/delete.js +74 -39
  394. package/dist/dataLayer/delete.js.map +1 -1
  395. package/dist/dataLayer/export.d.ts +8 -8
  396. package/dist/dataLayer/export.js +90 -55
  397. package/dist/dataLayer/export.js.map +1 -1
  398. package/dist/dataLayer/getBackup.d.ts +4 -3
  399. package/dist/dataLayer/getBackup.js +43 -11
  400. package/dist/dataLayer/getBackup.js.map +1 -1
  401. package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
  402. package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
  403. package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
  404. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
  405. package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
  406. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  407. package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
  408. package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
  409. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
  410. package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
  411. package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
  412. package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
  413. package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
  414. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
  415. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
  416. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
  417. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
  418. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
  419. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
  420. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
  421. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
  422. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
  423. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
  424. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
  425. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
  426. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
  427. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
  428. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
  429. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
  430. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
  431. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
  432. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
  433. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
  434. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
  435. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
  436. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
  437. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
  438. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
  439. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
  440. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
  441. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
  442. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
  443. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
  444. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
  445. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
  446. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
  447. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
  448. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
  449. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
  450. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
  451. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
  452. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
  453. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
  454. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
  455. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
  456. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
  457. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
  458. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
  459. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
  460. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
  461. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
  462. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
  463. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
  464. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
  465. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
  466. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
  467. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
  468. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
  469. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
  470. package/dist/dataLayer/hdbInfoController.d.ts +4 -8
  471. package/dist/dataLayer/hdbInfoController.js +66 -31
  472. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  473. package/dist/dataLayer/insert.d.ts +14 -26
  474. package/dist/dataLayer/insert.js +63 -28
  475. package/dist/dataLayer/insert.js.map +1 -1
  476. package/dist/dataLayer/readAuditLog.d.ts +1 -3
  477. package/dist/dataLayer/readAuditLog.js +45 -13
  478. package/dist/dataLayer/readAuditLog.js.map +1 -1
  479. package/dist/dataLayer/schema.d.ts +10 -10
  480. package/dist/dataLayer/schema.js +124 -89
  481. package/dist/dataLayer/schema.js.map +1 -1
  482. package/dist/dataLayer/schemaDescribe.d.ts +4 -4
  483. package/dist/dataLayer/schemaDescribe.js +78 -41
  484. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  485. package/dist/dataLayer/search.d.ts +4 -4
  486. package/dist/dataLayer/search.js +12 -13
  487. package/dist/dataLayer/search.js.map +1 -1
  488. package/dist/dataLayer/transaction.d.ts +1 -1
  489. package/dist/dataLayer/transaction.js +3 -4
  490. package/dist/dataLayer/transaction.js.map +1 -1
  491. package/dist/dataLayer/update.d.ts +2 -8
  492. package/dist/dataLayer/update.js +53 -18
  493. package/dist/dataLayer/update.js.map +1 -1
  494. package/dist/globals.d.ts +1 -1
  495. package/dist/globals.js +1 -0
  496. package/dist/globals.js.map +1 -1
  497. package/dist/index.d.ts +4 -0
  498. package/dist/index.js +4 -1
  499. package/dist/index.js.map +1 -1
  500. package/dist/json/systemSchema.json +65 -0
  501. package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
  502. package/dist/launchServiceScripts/launchHarperDB.js +3 -0
  503. package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
  504. package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
  505. package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
  506. package/dist/resources/DatabaseTransaction.d.ts +14 -6
  507. package/dist/resources/DatabaseTransaction.js +39 -15
  508. package/dist/resources/DatabaseTransaction.js.map +1 -1
  509. package/dist/resources/ErrorResource.d.ts +1 -1
  510. package/dist/resources/ErrorResource.js +3 -1
  511. package/dist/resources/ErrorResource.js.map +1 -1
  512. package/dist/resources/LMDBTransaction.d.ts +10 -13
  513. package/dist/resources/LMDBTransaction.js +18 -7
  514. package/dist/resources/LMDBTransaction.js.map +1 -1
  515. package/dist/resources/RecordEncoder.d.ts +7 -1
  516. package/dist/resources/RecordEncoder.js +5 -2
  517. package/dist/resources/RecordEncoder.js.map +1 -1
  518. package/dist/resources/RequestTarget.d.ts +1 -0
  519. package/dist/resources/RequestTarget.js.map +1 -1
  520. package/dist/resources/Resource.d.ts +9 -5
  521. package/dist/resources/Resource.js +37 -10
  522. package/dist/resources/Resource.js.map +1 -1
  523. package/dist/resources/ResourceInterface.d.ts +24 -5
  524. package/dist/resources/ResourceInterface.js +20 -0
  525. package/dist/resources/ResourceInterface.js.map +1 -1
  526. package/dist/resources/Resources.d.ts +3 -4
  527. package/dist/resources/Resources.js +7 -6
  528. package/dist/resources/Resources.js.map +1 -1
  529. package/dist/resources/RocksIndexStore.js +3 -0
  530. package/dist/resources/RocksIndexStore.js.map +1 -1
  531. package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
  532. package/dist/resources/RocksTransactionLogStore.js +46 -27
  533. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  534. package/dist/resources/Table.d.ts +59 -329
  535. package/dist/resources/Table.js +267 -107
  536. package/dist/resources/Table.js.map +1 -1
  537. package/dist/resources/analytics/metadata.d.ts +1 -0
  538. package/dist/resources/analytics/metadata.js +1 -0
  539. package/dist/resources/analytics/metadata.js.map +1 -1
  540. package/dist/resources/analytics/read.d.ts +5 -0
  541. package/dist/resources/analytics/read.js +16 -5
  542. package/dist/resources/analytics/read.js.map +1 -1
  543. package/dist/resources/analytics/write.d.ts +28 -0
  544. package/dist/resources/analytics/write.js +232 -20
  545. package/dist/resources/analytics/write.js.map +1 -1
  546. package/dist/resources/auditStore.d.ts +18 -13
  547. package/dist/resources/auditStore.js +13 -8
  548. package/dist/resources/auditStore.js.map +1 -1
  549. package/dist/resources/blob.d.ts +16 -27
  550. package/dist/resources/blob.js +8 -8
  551. package/dist/resources/blob.js.map +1 -1
  552. package/dist/resources/dataLoader.d.ts +1 -1
  553. package/dist/resources/dataLoader.js +13 -13
  554. package/dist/resources/databases.d.ts +13 -0
  555. package/dist/resources/databases.js +160 -52
  556. package/dist/resources/databases.js.map +1 -1
  557. package/dist/resources/graphql.d.ts +1 -7
  558. package/dist/resources/graphql.js +224 -174
  559. package/dist/resources/graphql.js.map +1 -1
  560. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +16 -1
  561. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +308 -59
  562. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  563. package/dist/resources/indexes/vector.d.ts +1 -0
  564. package/dist/resources/indexes/vector.js +14 -0
  565. package/dist/resources/indexes/vector.js.map +1 -1
  566. package/dist/resources/loadEnv.d.ts +2 -5
  567. package/dist/resources/loadEnv.js +21 -18
  568. package/dist/resources/loadEnv.js.map +1 -1
  569. package/dist/resources/login.d.ts +2 -3
  570. package/dist/resources/login.js +5 -4
  571. package/dist/resources/login.js.map +1 -1
  572. package/dist/resources/models/Models.d.ts +45 -0
  573. package/dist/resources/models/Models.js +265 -0
  574. package/dist/resources/models/Models.js.map +1 -0
  575. package/dist/resources/models/TestBackend.d.ts +15 -0
  576. package/dist/resources/models/TestBackend.js +71 -0
  577. package/dist/resources/models/TestBackend.js.map +1 -0
  578. package/dist/resources/models/agentLoop.d.ts +125 -0
  579. package/dist/resources/models/agentLoop.js +746 -0
  580. package/dist/resources/models/agentLoop.js.map +1 -0
  581. package/dist/resources/models/analyticsTable.d.ts +65 -0
  582. package/dist/resources/models/analyticsTable.js +166 -0
  583. package/dist/resources/models/analyticsTable.js.map +1 -0
  584. package/dist/resources/models/backendHelpers.d.ts +57 -0
  585. package/dist/resources/models/backendHelpers.js +109 -0
  586. package/dist/resources/models/backendHelpers.js.map +1 -0
  587. package/dist/resources/models/backendRegistry.d.ts +36 -0
  588. package/dist/resources/models/backendRegistry.js +54 -0
  589. package/dist/resources/models/backendRegistry.js.map +1 -0
  590. package/dist/resources/models/bootstrap.d.ts +24 -0
  591. package/dist/resources/models/bootstrap.js +112 -0
  592. package/dist/resources/models/bootstrap.js.map +1 -0
  593. package/dist/resources/models/embedHook.d.ts +33 -0
  594. package/dist/resources/models/embedHook.js +127 -0
  595. package/dist/resources/models/embedHook.js.map +1 -0
  596. package/dist/resources/models/types.d.ts +301 -0
  597. package/dist/resources/models/types.js +11 -0
  598. package/dist/resources/models/types.js.map +1 -0
  599. package/dist/resources/replayLogs.js +7 -1
  600. package/dist/resources/replayLogs.js.map +1 -1
  601. package/dist/resources/roles.d.ts +1 -7
  602. package/dist/resources/roles.js +67 -71
  603. package/dist/resources/roles.js.map +1 -1
  604. package/dist/resources/search.d.ts +18 -1
  605. package/dist/resources/search.js +349 -140
  606. package/dist/resources/search.js.map +1 -1
  607. package/dist/resources/tracked.d.ts +1 -1
  608. package/dist/resources/tracked.js +14 -14
  609. package/dist/resources/tracked.js.map +1 -1
  610. package/dist/resources/transaction.d.ts +1 -1
  611. package/dist/resources/transaction.js +1 -1
  612. package/dist/resources/transaction.js.map +1 -1
  613. package/dist/resources/transactionBroadcast.d.ts +1 -1
  614. package/dist/resources/transactionBroadcast.js.map +1 -1
  615. package/dist/security/auth.d.ts +1 -5
  616. package/dist/security/auth.js +34 -25
  617. package/dist/security/auth.js.map +1 -1
  618. package/dist/security/certificateVerification/crlVerification.js +7 -1
  619. package/dist/security/certificateVerification/crlVerification.js.map +1 -1
  620. package/dist/security/cryptoHash.d.ts +2 -2
  621. package/dist/security/cryptoHash.js +37 -5
  622. package/dist/security/cryptoHash.js.map +1 -1
  623. package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
  624. package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
  625. package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
  626. package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
  627. package/dist/security/data_objects/PermissionResponseObject.js +15 -8
  628. package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
  629. package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
  630. package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
  631. package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
  632. package/dist/security/fastifyAuth.d.ts +2 -2
  633. package/dist/security/fastifyAuth.js +131 -22
  634. package/dist/security/fastifyAuth.js.map +1 -1
  635. package/dist/security/impersonation.js +15 -15
  636. package/dist/security/jsLoader.js +18 -5
  637. package/dist/security/jsLoader.js.map +1 -1
  638. package/dist/security/keys.d.ts +45 -48
  639. package/dist/security/keys.js +160 -114
  640. package/dist/security/keys.js.map +1 -1
  641. package/dist/security/permissionsTranslator.js +2 -2
  642. package/dist/security/role.d.ts +5 -5
  643. package/dist/security/role.js +70 -35
  644. package/dist/security/role.js.map +1 -1
  645. package/dist/security/tokenAuthentication.d.ts +13 -0
  646. package/dist/security/tokenAuthentication.js +57 -27
  647. package/dist/security/tokenAuthentication.js.map +1 -1
  648. package/dist/security/user.js +74 -38
  649. package/dist/security/user.js.map +1 -1
  650. package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
  651. package/dist/server/DurableSubscriptionsSession.js +71 -55
  652. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  653. package/dist/server/REST.d.ts +1 -8
  654. package/dist/server/REST.js +17 -16
  655. package/dist/server/REST.js.map +1 -1
  656. package/dist/server/Server.d.ts +23 -4
  657. package/dist/server/Server.js +1 -1
  658. package/dist/server/Server.js.map +1 -1
  659. package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  660. package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  661. package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  662. package/dist/server/fastifyRoutes.d.ts +1 -4
  663. package/dist/server/fastifyRoutes.js +34 -30
  664. package/dist/server/fastifyRoutes.js.map +1 -1
  665. package/dist/server/graphqlQuerying.d.ts +1 -1
  666. package/dist/server/graphqlQuerying.js +8 -7
  667. package/dist/server/graphqlQuerying.js.map +1 -1
  668. package/dist/server/http.d.ts +9 -4
  669. package/dist/server/http.js +523 -47
  670. package/dist/server/http.js.map +1 -1
  671. package/dist/server/itc/serverHandlers.js +66 -15
  672. package/dist/server/itc/serverHandlers.js.map +1 -1
  673. package/dist/server/jobs/JobObject.d.ts +3 -3
  674. package/dist/server/jobs/JobObject.js +53 -7
  675. package/dist/server/jobs/JobObject.js.map +1 -1
  676. package/dist/server/jobs/jobProcess.js +64 -24
  677. package/dist/server/jobs/jobProcess.js.map +1 -1
  678. package/dist/server/jobs/jobRunner.d.ts +7 -6
  679. package/dist/server/jobs/jobRunner.js +68 -30
  680. package/dist/server/jobs/jobRunner.js.map +1 -1
  681. package/dist/server/jobs/jobs.d.ts +18 -7
  682. package/dist/server/jobs/jobs.js +93 -61
  683. package/dist/server/jobs/jobs.js.map +1 -1
  684. package/dist/server/loadRootComponents.js +1 -1
  685. package/dist/server/middlewareChain.d.ts +80 -0
  686. package/dist/server/middlewareChain.js +252 -0
  687. package/dist/server/middlewareChain.js.map +1 -0
  688. package/dist/server/mqtt.d.ts +1 -8
  689. package/dist/server/mqtt.js +22 -17
  690. package/dist/server/mqtt.js.map +1 -1
  691. package/dist/server/nodeName.js +44 -13
  692. package/dist/server/nodeName.js.map +1 -1
  693. package/dist/server/operationsServer.d.ts +2 -2
  694. package/dist/server/operationsServer.js +106 -33
  695. package/dist/server/operationsServer.js.map +1 -1
  696. package/dist/server/serverHelpers/Headers.d.ts +4 -4
  697. package/dist/server/serverHelpers/Headers.js +2 -0
  698. package/dist/server/serverHelpers/Headers.js.map +1 -1
  699. package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
  700. package/dist/server/serverHelpers/JSONStream.js +12 -3
  701. package/dist/server/serverHelpers/JSONStream.js.map +1 -1
  702. package/dist/server/serverHelpers/Request.d.ts +106 -8
  703. package/dist/server/serverHelpers/Request.js +370 -9
  704. package/dist/server/serverHelpers/Request.js.map +1 -1
  705. package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
  706. package/dist/server/serverHelpers/contentTypes.js +36 -7
  707. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  708. package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
  709. package/dist/server/serverHelpers/multipartParser.js +142 -0
  710. package/dist/server/serverHelpers/multipartParser.js.map +1 -0
  711. package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
  712. package/dist/server/serverHelpers/progressEmitter.js +103 -0
  713. package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
  714. package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
  715. package/dist/server/serverHelpers/serverHandlers.js +38 -7
  716. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  717. package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
  718. package/dist/server/serverHelpers/serverUtilities.js +97 -93
  719. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  720. package/dist/server/static.js +8 -5
  721. package/dist/server/static.js.map +1 -1
  722. package/dist/server/status/index.js +3 -3
  723. package/dist/server/storageReclamation.d.ts +10 -0
  724. package/dist/server/storageReclamation.js +68 -9
  725. package/dist/server/storageReclamation.js.map +1 -1
  726. package/dist/server/threads/itc.js +7 -4
  727. package/dist/server/threads/itc.js.map +1 -1
  728. package/dist/server/threads/manageThreads.d.ts +1 -1
  729. package/dist/server/threads/manageThreads.js +110 -26
  730. package/dist/server/threads/manageThreads.js.map +1 -1
  731. package/dist/server/threads/socketRouter.d.ts +0 -1
  732. package/dist/server/threads/socketRouter.js +8 -271
  733. package/dist/server/threads/socketRouter.js.map +1 -1
  734. package/dist/server/threads/threadServer.d.ts +1 -0
  735. package/dist/server/threads/threadServer.js +360 -118
  736. package/dist/server/threads/threadServer.js.map +1 -1
  737. package/dist/server/threads/workerProcessGuard.d.ts +42 -0
  738. package/dist/server/threads/workerProcessGuard.js +114 -0
  739. package/dist/server/threads/workerProcessGuard.js.map +1 -0
  740. package/dist/server/throttle.js +17 -0
  741. package/dist/server/throttle.js.map +1 -1
  742. package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
  743. package/dist/sqlTranslator/SelectValidator.js +86 -47
  744. package/dist/sqlTranslator/SelectValidator.js.map +1 -1
  745. package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
  746. package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
  747. package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
  748. package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
  749. package/dist/sqlTranslator/deleteTranslator.js +48 -14
  750. package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
  751. package/dist/sqlTranslator/index.d.ts +10 -9
  752. package/dist/sqlTranslator/index.js +69 -30
  753. package/dist/sqlTranslator/index.js.map +1 -1
  754. package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
  755. package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
  756. package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
  757. package/dist/upgrade/UpgradeObjects.d.ts +2 -3
  758. package/dist/upgrade/UpgradeObjects.js +37 -4
  759. package/dist/upgrade/UpgradeObjects.js.map +1 -1
  760. package/dist/upgrade/directives/5-2-0.d.ts +6 -0
  761. package/dist/upgrade/directives/5-2-0.js +77 -0
  762. package/dist/upgrade/directives/5-2-0.js.map +1 -0
  763. package/dist/upgrade/directives/directivesController.d.ts +10 -10
  764. package/dist/upgrade/directives/directivesController.js +52 -11
  765. package/dist/upgrade/directives/directivesController.js.map +1 -1
  766. package/dist/upgrade/directivesManager.d.ts +1 -1
  767. package/dist/upgrade/directivesManager.js +53 -18
  768. package/dist/upgrade/directivesManager.js.map +1 -1
  769. package/dist/upgrade/upgradePrompt.d.ts +3 -3
  770. package/dist/upgrade/upgradePrompt.js +65 -30
  771. package/dist/upgrade/upgradePrompt.js.map +1 -1
  772. package/dist/upgrade/upgradeUtilities.d.ts +1 -1
  773. package/dist/upgrade/upgradeUtilities.js +37 -5
  774. package/dist/upgrade/upgradeUtilities.js.map +1 -1
  775. package/dist/utility/OperationFunctionCaller.d.ts +1 -1
  776. package/dist/utility/OperationFunctionCaller.js +45 -10
  777. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  778. package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
  779. package/dist/utility/assignCmdEnvVariables.js +8 -4
  780. package/dist/utility/assignCmdEnvVariables.js.map +1 -1
  781. package/dist/utility/common_utils.d.ts +80 -77
  782. package/dist/utility/common_utils.js +140 -79
  783. package/dist/utility/common_utils.js.map +1 -1
  784. package/dist/utility/environment/environmentManager.d.ts +12 -11
  785. package/dist/utility/environment/environmentManager.js +75 -29
  786. package/dist/utility/environment/environmentManager.js.map +1 -1
  787. package/dist/utility/environment/systemInformation.d.ts +4 -0
  788. package/dist/utility/environment/systemInformation.js +27 -16
  789. package/dist/utility/environment/systemInformation.js.map +1 -1
  790. package/dist/utility/errors/commonErrors.d.ts +192 -168
  791. package/dist/utility/errors/commonErrors.js +49 -18
  792. package/dist/utility/errors/commonErrors.js.map +1 -1
  793. package/dist/utility/errors/hdbError.d.ts +37 -51
  794. package/dist/utility/errors/hdbError.js +65 -26
  795. package/dist/utility/errors/hdbError.js.map +1 -1
  796. package/dist/utility/expandEnvVar.d.ts +61 -0
  797. package/dist/utility/expandEnvVar.js +113 -0
  798. package/dist/utility/expandEnvVar.js.map +1 -0
  799. package/dist/utility/functions/geo.js +2 -2
  800. package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
  801. package/dist/utility/globalSchema.d.ts +13 -4
  802. package/dist/utility/globalSchema.js +14 -11
  803. package/dist/utility/globalSchema.js.map +1 -1
  804. package/dist/utility/hdbTerms.d.ts +56 -0
  805. package/dist/utility/hdbTerms.js +56 -0
  806. package/dist/utility/hdbTerms.js.map +1 -1
  807. package/dist/utility/install/checkJWTTokensExist.js +1 -1
  808. package/dist/utility/install/installer.d.ts +9 -12
  809. package/dist/utility/install/installer.js +87 -51
  810. package/dist/utility/install/installer.js.map +1 -1
  811. package/dist/utility/installation.js +3 -3
  812. package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
  813. package/dist/utility/lmdb/DBIDefinition.js +5 -1
  814. package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
  815. package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
  816. package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
  817. package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
  818. package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
  819. package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
  820. package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
  821. package/dist/utility/lmdb/OpenDBIObject.d.ts +11 -15
  822. package/dist/utility/lmdb/OpenDBIObject.js +54 -6
  823. package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
  824. package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
  825. package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
  826. package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
  827. package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
  828. package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
  829. package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
  830. package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
  831. package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
  832. package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
  833. package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
  834. package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
  835. package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
  836. package/dist/utility/lmdb/commonUtility.d.ts +8 -9
  837. package/dist/utility/lmdb/commonUtility.js +46 -17
  838. package/dist/utility/lmdb/commonUtility.js.map +1 -1
  839. package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
  840. package/dist/utility/lmdb/deleteUtility.js +51 -16
  841. package/dist/utility/lmdb/deleteUtility.js.map +1 -1
  842. package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
  843. package/dist/utility/lmdb/environmentUtility.js +91 -51
  844. package/dist/utility/lmdb/environmentUtility.js.map +1 -1
  845. package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
  846. package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
  847. package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
  848. package/dist/utility/lmdb/searchUtility.d.ts +142 -73
  849. package/dist/utility/lmdb/searchUtility.js +91 -55
  850. package/dist/utility/lmdb/searchUtility.js.map +1 -1
  851. package/dist/utility/lmdb/terms.d.ts +34 -34
  852. package/dist/utility/lmdb/terms.js +12 -22
  853. package/dist/utility/lmdb/terms.js.map +1 -1
  854. package/dist/utility/lmdb/writeUtility.d.ts +3 -6
  855. package/dist/utility/lmdb/writeUtility.js +61 -28
  856. package/dist/utility/lmdb/writeUtility.js.map +1 -1
  857. package/dist/utility/logging/harper_logger.d.ts +87 -103
  858. package/dist/utility/logging/harper_logger.js +176 -81
  859. package/dist/utility/logging/harper_logger.js.map +1 -1
  860. package/dist/utility/logging/logRotator.d.ts +2 -10
  861. package/dist/utility/logging/logRotator.js +65 -28
  862. package/dist/utility/logging/logRotator.js.map +1 -1
  863. package/dist/utility/logging/logger.js +4 -4
  864. package/dist/utility/logging/readLog.d.ts +1 -1
  865. package/dist/utility/logging/readLog.js +54 -17
  866. package/dist/utility/logging/readLog.js.map +1 -1
  867. package/dist/utility/logging/transactionLog.d.ts +2 -2
  868. package/dist/utility/logging/transactionLog.js +51 -16
  869. package/dist/utility/logging/transactionLog.js.map +1 -1
  870. package/dist/utility/mount_hdb.d.ts +1 -2
  871. package/dist/utility/mount_hdb.js +54 -17
  872. package/dist/utility/mount_hdb.js.map +1 -1
  873. package/dist/utility/npmUtilities.d.ts +1 -1
  874. package/dist/utility/npmUtilities.js +54 -19
  875. package/dist/utility/npmUtilities.js.map +1 -1
  876. package/dist/utility/operation_authorization.d.ts +36 -9
  877. package/dist/utility/operation_authorization.js +135 -86
  878. package/dist/utility/operation_authorization.js.map +1 -1
  879. package/dist/utility/packageUtils.d.ts +0 -2
  880. package/dist/utility/packageUtils.js +7 -17
  881. package/dist/utility/packageUtils.js.map +1 -1
  882. package/dist/utility/password.js +2 -2
  883. package/dist/utility/processManagement/processManagement.js +2 -2
  884. package/dist/utility/processManagement/servicesConfig.js +1 -1
  885. package/dist/utility/signalling.d.ts +2 -2
  886. package/dist/utility/signalling.js +51 -16
  887. package/dist/utility/signalling.js.map +1 -1
  888. package/dist/utility/watcherFallback.d.ts +36 -0
  889. package/dist/utility/watcherFallback.js +73 -0
  890. package/dist/utility/watcherFallback.js.map +1 -0
  891. package/dist/validation/analyticsValidator.d.ts +1 -0
  892. package/dist/validation/analyticsValidator.js +79 -0
  893. package/dist/validation/analyticsValidator.js.map +1 -0
  894. package/dist/validation/bulkDeleteValidator.d.ts +1 -2
  895. package/dist/validation/bulkDeleteValidator.js +49 -11
  896. package/dist/validation/bulkDeleteValidator.js.map +1 -1
  897. package/dist/validation/check_permissions.d.ts +1 -2
  898. package/dist/validation/check_permissions.js +38 -3
  899. package/dist/validation/check_permissions.js.map +1 -1
  900. package/dist/validation/common_validators.d.ts +20 -20
  901. package/dist/validation/common_validators.js +62 -31
  902. package/dist/validation/common_validators.js.map +1 -1
  903. package/dist/validation/configValidator.d.ts +4 -4
  904. package/dist/validation/configValidator.js +189 -54
  905. package/dist/validation/configValidator.js.map +1 -1
  906. package/dist/validation/deleteValidator.d.ts +1 -2
  907. package/dist/validation/deleteValidator.js +49 -11
  908. package/dist/validation/deleteValidator.js.map +1 -1
  909. package/dist/validation/fileLoadValidator.d.ts +4 -4
  910. package/dist/validation/fileLoadValidator.js +67 -32
  911. package/dist/validation/fileLoadValidator.js.map +1 -1
  912. package/dist/validation/insertValidator.d.ts +1 -2
  913. package/dist/validation/insertValidator.js +48 -10
  914. package/dist/validation/insertValidator.js.map +1 -1
  915. package/dist/validation/installValidator.d.ts +2 -2
  916. package/dist/validation/installValidator.js +47 -10
  917. package/dist/validation/installValidator.js.map +1 -1
  918. package/dist/validation/readLogValidator.d.ts +1 -2
  919. package/dist/validation/readLogValidator.js +60 -22
  920. package/dist/validation/readLogValidator.js.map +1 -1
  921. package/dist/validation/role_validation.d.ts +3 -3
  922. package/dist/validation/role_validation.js +55 -19
  923. package/dist/validation/role_validation.js.map +1 -1
  924. package/dist/validation/schemaMetadataValidator.d.ts +3 -4
  925. package/dist/validation/schemaMetadataValidator.js +11 -12
  926. package/dist/validation/schemaMetadataValidator.js.map +1 -1
  927. package/dist/validation/searchValidator.d.ts +1 -2
  928. package/dist/validation/searchValidator.js +82 -43
  929. package/dist/validation/searchValidator.js.map +1 -1
  930. package/dist/validation/statusValidator.d.ts +1 -1
  931. package/dist/validation/transactionLogValidator.d.ts +3 -3
  932. package/dist/validation/transactionLogValidator.js +52 -17
  933. package/dist/validation/transactionLogValidator.js.map +1 -1
  934. package/dist/validation/user_validation.d.ts +3 -3
  935. package/dist/validation/user_validation.js +38 -6
  936. package/dist/validation/user_validation.js.map +1 -1
  937. package/dist/validation/validationWrapper.d.ts +3 -3
  938. package/dist/validation/validationWrapper.js +4 -5
  939. package/dist/validation/validationWrapper.js.map +1 -1
  940. package/index.ts +5 -0
  941. package/json/systemSchema.json +65 -0
  942. package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
  943. package/package.json +37 -22
  944. package/resources/DESIGN.md +98 -0
  945. package/resources/DatabaseTransaction.ts +58 -30
  946. package/resources/ErrorResource.ts +2 -1
  947. package/resources/LMDBTransaction.ts +38 -29
  948. package/resources/RecordEncoder.ts +12 -4
  949. package/resources/RequestTarget.ts +2 -0
  950. package/resources/Resource.ts +89 -56
  951. package/resources/ResourceInterface.ts +44 -21
  952. package/resources/Resources.ts +8 -8
  953. package/resources/RocksIndexStore.ts +3 -0
  954. package/resources/RocksTransactionLogStore.ts +47 -28
  955. package/resources/Table.ts +386 -214
  956. package/resources/analytics/metadata.ts +1 -0
  957. package/resources/analytics/read.ts +24 -6
  958. package/resources/analytics/write.ts +240 -17
  959. package/resources/auditStore.ts +28 -19
  960. package/resources/blob.ts +53 -53
  961. package/resources/dataLoader.ts +4 -4
  962. package/resources/databases.ts +190 -71
  963. package/resources/graphql.ts +227 -164
  964. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +294 -65
  965. package/resources/indexes/vector.ts +17 -0
  966. package/resources/loadEnv.ts +21 -17
  967. package/resources/login.ts +5 -3
  968. package/resources/models/Models.ts +304 -0
  969. package/resources/models/TestBackend.ts +83 -0
  970. package/resources/models/agentLoop.ts +895 -0
  971. package/resources/models/analyticsTable.ts +199 -0
  972. package/resources/models/backendHelpers.ts +116 -0
  973. package/resources/models/backendRegistry.ts +66 -0
  974. package/resources/models/bootstrap.ts +135 -0
  975. package/resources/models/embedHook.ts +138 -0
  976. package/resources/models/types.ts +296 -0
  977. package/resources/replayLogs.ts +15 -7
  978. package/resources/roles.ts +62 -67
  979. package/resources/search.ts +355 -135
  980. package/resources/tracked.ts +8 -8
  981. package/resources/transaction.ts +8 -8
  982. package/resources/transactionBroadcast.ts +3 -3
  983. package/security/auth.ts +35 -26
  984. package/security/certificateVerification/crlVerification.ts +11 -4
  985. package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
  986. package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
  987. package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
  988. package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
  989. package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
  990. package/security/impersonation.ts +3 -3
  991. package/security/jsLoader.ts +22 -8
  992. package/security/{keys.js → keys.ts} +113 -121
  993. package/security/permissionsTranslator.js +2 -2
  994. package/security/{role.js → role.ts} +26 -33
  995. package/security/tokenAuthentication.ts +34 -7
  996. package/security/user.ts +26 -22
  997. package/server/DESIGN.md +139 -0
  998. package/server/DurableSubscriptionsSession.ts +67 -50
  999. package/server/REST.ts +120 -107
  1000. package/server/Server.ts +31 -12
  1001. package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
  1002. package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
  1003. package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
  1004. package/server/fastifyRoutes.ts +37 -33
  1005. package/server/graphqlQuerying.ts +6 -5
  1006. package/server/http.ts +517 -26
  1007. package/server/itc/serverHandlers.js +75 -14
  1008. package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
  1009. package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
  1010. package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
  1011. package/server/jobs/{jobs.js → jobs.ts} +41 -44
  1012. package/server/loadRootComponents.js +1 -1
  1013. package/server/middlewareChain.ts +270 -0
  1014. package/server/mqtt.ts +35 -26
  1015. package/server/nodeName.ts +2 -1
  1016. package/server/operationsServer.ts +85 -10
  1017. package/server/serverHelpers/Headers.ts +10 -8
  1018. package/server/serverHelpers/JSONStream.ts +15 -5
  1019. package/server/serverHelpers/Request.ts +370 -13
  1020. package/server/serverHelpers/contentTypes.ts +42 -11
  1021. package/server/serverHelpers/multipartParser.ts +152 -0
  1022. package/server/serverHelpers/progressEmitter.ts +110 -0
  1023. package/server/serverHelpers/serverHandlers.js +43 -7
  1024. package/server/serverHelpers/serverUtilities.ts +40 -30
  1025. package/server/static.ts +9 -6
  1026. package/server/status/index.ts +2 -2
  1027. package/server/storageReclamation.ts +39 -2
  1028. package/server/threads/itc.js +7 -4
  1029. package/server/threads/manageThreads.js +100 -26
  1030. package/server/threads/socketRouter.ts +12 -275
  1031. package/server/threads/threadServer.js +345 -105
  1032. package/server/threads/workerProcessGuard.ts +93 -0
  1033. package/server/throttle.ts +18 -0
  1034. package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
  1035. package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
  1036. package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
  1037. package/sqlTranslator/{index.js → index.ts} +30 -33
  1038. package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
  1039. package/static/README.md +10 -9
  1040. package/studio/web/assets/{index-CmtPP0YO.js → index-COfIkCT-.js} +5 -5
  1041. package/studio/web/assets/index-COfIkCT-.js.map +1 -0
  1042. package/studio/web/assets/{index.lazy-C8jvGtlu.js → index.lazy-CIvl7Fj9.js} +2 -2
  1043. package/studio/web/assets/{index.lazy-C8jvGtlu.js.map → index.lazy-CIvl7Fj9.js.map} +1 -1
  1044. package/studio/web/assets/{profile-O0DYlJUv.js → profile-B2ZVB--r.js} +2 -2
  1045. package/studio/web/assets/{profile-O0DYlJUv.js.map → profile-B2ZVB--r.js.map} +1 -1
  1046. package/studio/web/assets/{status-BIlJkJby.js → status-Db6WBmhf.js} +2 -2
  1047. package/studio/web/assets/{status-BIlJkJby.js.map → status-Db6WBmhf.js.map} +1 -1
  1048. package/studio/web/index.html +1 -1
  1049. package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
  1050. package/upgrade/directives/5-2-0.ts +49 -0
  1051. package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
  1052. package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
  1053. package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +8 -14
  1054. package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
  1055. package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
  1056. package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
  1057. package/utility/{common_utils.js → common_utils.ts} +113 -139
  1058. package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
  1059. package/utility/environment/systemInformation.ts +18 -4
  1060. package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
  1061. package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
  1062. package/utility/expandEnvVar.ts +110 -0
  1063. package/utility/functions/geo.js +2 -2
  1064. package/utility/functions/sql/alaSQLExtension.js +1 -1
  1065. package/utility/globalSchema.ts +30 -0
  1066. package/utility/hdbTerms.ts +56 -0
  1067. package/utility/install/checkJWTTokensExist.js +1 -1
  1068. package/utility/install/{installer.js → installer.ts} +38 -39
  1069. package/utility/installation.ts +2 -2
  1070. package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
  1071. package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
  1072. package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
  1073. package/utility/lmdb/OpenDBIObject.ts +43 -0
  1074. package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
  1075. package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
  1076. package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
  1077. package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
  1078. package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
  1079. package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
  1080. package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
  1081. package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
  1082. package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
  1083. package/utility/lmdb/{terms.js → terms.ts} +10 -23
  1084. package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
  1085. package/utility/logging/{harper_logger.js → harper_logger.ts} +136 -89
  1086. package/utility/logging/{logRotator.js → logRotator.ts} +13 -13
  1087. package/utility/logging/logger.ts +1 -1
  1088. package/utility/logging/{readLog.js → readLog.ts} +19 -19
  1089. package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
  1090. package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
  1091. package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
  1092. package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
  1093. package/utility/packageUtils.js +7 -16
  1094. package/utility/password.ts +1 -1
  1095. package/utility/processManagement/processManagement.js +2 -2
  1096. package/utility/processManagement/servicesConfig.js +1 -1
  1097. package/utility/{signalling.js → signalling.ts} +6 -11
  1098. package/utility/watcherFallback.ts +74 -0
  1099. package/validation/analyticsValidator.ts +43 -0
  1100. package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
  1101. package/validation/{check_permissions.js → check_permissions.ts} +3 -3
  1102. package/validation/{common_validators.js → common_validators.ts} +12 -24
  1103. package/validation/{configValidator.js → configValidator.ts} +114 -18
  1104. package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
  1105. package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
  1106. package/validation/{insertValidator.js → insertValidator.ts} +5 -5
  1107. package/validation/{installValidator.js → installValidator.ts} +8 -8
  1108. package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
  1109. package/validation/{role_validation.js → role_validation.ts} +26 -32
  1110. package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
  1111. package/validation/{searchValidator.js → searchValidator.ts} +12 -11
  1112. package/validation/statusValidator.ts +1 -1
  1113. package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
  1114. package/validation/{user_validation.js → user_validation.ts} +4 -10
  1115. package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
  1116. package/bin/cliOperations.js +0 -159
  1117. package/bin/lite.js +0 -5
  1118. package/dataLayer/harperBridge/BridgeMethods.js +0 -85
  1119. package/studio/web/assets/index-CmtPP0YO.js.map +0 -1
  1120. package/utility/globalSchema.js +0 -35
  1121. package/utility/lmdb/OpenDBIObject.js +0 -31
@@ -0,0 +1,746 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolValidationError = exports.ToolHandlerError = exports.BudgetExceededError = void 0;
4
+ exports.runAgentLoop = runAgentLoop;
5
+ exports.runAgentLoopStream = runAgentLoopStream;
6
+ exports._setComputeCallCostUsdForTests = _setComputeCallCostUsdForTests;
7
+ exports._resetComputeCallCostUsdForTests = _resetComputeCallCostUsdForTests;
8
+ /**
9
+ * In-process tool-call agent loop for `Models.generate({ toolMode: 'auto' })`.
10
+ *
11
+ * Each iteration: (1) call `models.generate` with the running message list,
12
+ * (2) if the model emitted tool calls, dispatch each via `opts.toolHandlers`,
13
+ * (3) append the tool results to the message list, repeat. Terminate when the
14
+ * model returns a non-`tool_calls` finish reason or when the iteration cap trips.
15
+ *
16
+ * Analytics: the loop calls back through `models.generate(..., {toolMode: 'return'})`
17
+ * per iteration so each backend round flows the single-shot path in `Models.ts` and
18
+ * writes its own `hdb_model_calls` row. The outer auto call stays out of the table.
19
+ *
20
+ * **Abort wiring** (commit 3). Each invocation creates a loop-level
21
+ * `AbortController` composed with the caller's signal via `AbortSignal.any`. The
22
+ * composed signal flows to both the inner `models.generate` call and the
23
+ * `ToolHandlerContext.signal` handlers receive. Today the loop-level controller is
24
+ * only fired externally (caller aborts → composed signal aborts); commit 4 wires
25
+ * it to also fire on budget trips so an in-flight LLM call cancels cleanly.
26
+ *
27
+ * Streaming auto path + `opts.conversation.append` hook on both sync and streaming.
28
+ * The streaming loop yields each round's content / tool-call deltas to the caller as
29
+ * they arrive, accumulates the round's tool-call assembly internally, and treats
30
+ * `finishReason` as an INTERNAL signal: it is stripped from every forwarded chunk and
31
+ * re-emitted as exactly one terminal chunk AFTER the terminal assistant turn has been
32
+ * persisted, so a consumer that stops on the finish-reason chunk can never race past
33
+ * the conversation append. Tools run between rounds; the next backend stream resumes.
34
+ * Budget / abort / error-mode semantics match the sync path, with one streaming-specific
35
+ * gap: `maxToolTokens` / `maxCostUsd` are not yet enforced for streamed calls because
36
+ * `GenerateChunk` doesn't expose `usage` in v1 (follow-up to extend the chunk shape +
37
+ * backend final-chunk handling).
38
+ *
39
+ * Resilience posture (this module is foundational infra — fail loud, never silent):
40
+ * - Handler lookup uses `Object.hasOwn` + a callable check; a model-emitted tool name
41
+ * that collides with an Object prototype member (`toString`, `constructor`, …) does
42
+ * NOT resolve a built-in as a handler.
43
+ * - Missing handler splits two ways: a name the caller DECLARED in `tools` but didn't
44
+ * supply a handler for is a caller config bug (hard `ClientError(400)`); an UNdeclared
45
+ * name is a model hallucination, surfaced as a recoverable tool error (`toolErrorMode`
46
+ * decides recover-vs-abort).
47
+ * - A token/cost budget set against a backend that reports no `usage` warns once that it
48
+ * is unenforceable rather than silently no-opping.
49
+ * - An incomplete streamed tool call (id without a name) is recorded in the trace + warned,
50
+ * not silently dropped.
51
+ * - `toolErrorMode: 'abort'` throws BEFORE the conversation sink sees the round's tool
52
+ * turns, so the store never holds a recover-style error turn the model never consumed.
53
+ *
54
+ * Modes still deferred to follow-ups throw 501 at entry:
55
+ * - `toolArgValidation: 'strict' | 'lenient'` → JSON Schema validator (TBD)
56
+ * - `maxToolTokens` / `maxCostUsd` (streaming) → backend `usage` on chunks (TBD)
57
+ *
58
+ * Registry seam: v1 dispatches via caller-supplied `opts.toolHandlers`. #615 replaces
59
+ * that lookup with a `scope.resources` resolution using the same call signature — the
60
+ * declared-vs-undeclared split maps onto resolvable-but-misconfigured vs unknown.
61
+ */
62
+ const hdbError_ts_1 = require("../../utility/errors/hdbError.js");
63
+ const logger_ts_1 = require("../../utility/logging/logger.js");
64
+ const DEFAULT_MAX_ITERATIONS = 10;
65
+ const DEFAULT_MAX_RESULT_BYTES = 65_536;
66
+ async function runAgentLoop(args) {
67
+ const { models, opts, accounting, signal: callerSignal } = args;
68
+ // v1 gates: surface declared on GenerateOpts, runtime fills in incrementally.
69
+ // Throw a clear 501 at entry rather than silently downgrading to default behavior —
70
+ // the alternative (ignore unsupported mode) would mask caller mistakes.
71
+ guardUnsupportedModes(opts);
72
+ const maxIterations = opts.maxToolIterations ?? DEFAULT_MAX_ITERATIONS;
73
+ const maxResultBytes = opts.toolResultMaxBytes ?? DEFAULT_MAX_RESULT_BYTES;
74
+ const handlers = opts.toolHandlers ?? {};
75
+ const parallelism = opts.toolParallelism ?? 'parallel';
76
+ const errorMode = opts.toolErrorMode ?? 'recover';
77
+ const maxToolTokens = opts.maxToolTokens;
78
+ const maxCostUsd = opts.maxCostUsd;
79
+ const conversation = opts.conversation;
80
+ const { messages, tools, system } = normalizeInput(args.input);
81
+ // Names the CALLER declared as tools (object-form input). Used to split the
82
+ // missing-handler case: a declared tool with no handler is a caller config bug
83
+ // (hard fail); an UNdeclared name is a model hallucination (recover). See
84
+ // `runSingleToolCall`.
85
+ const declaredToolNames = collectDeclaredToolNames(tools);
86
+ const trace = [];
87
+ // Cumulative usage tallies across all iterations of this loop invocation. Used to
88
+ // trip `maxToolTokens` / `maxCostUsd` after each backend round.
89
+ let totalTokens = 0;
90
+ let totalCostUsd = 0;
91
+ // Warn-once latch: a token/cost budget is set but the backend isn't reporting
92
+ // usage, so the cap can't be measured. We refuse to silently pretend it's enforced.
93
+ let budgetUnmeasurableWarned = false;
94
+ // `conversation` is a one-way SINK for NEW turns produced by this loop — the loop
95
+ // does NOT re-append the caller's input messages, even when they include user
96
+ // turns. Echoing input back into the caller's store would corrupt it (the caller
97
+ // already added their own prompt) and scramble ordering for multi-turn history.
98
+ // The caller owns turn 0; the loop owns whatever assistant/tool turns it produces.
99
+ // Loop-level abort controller — fired internally on budget trips (commit 4 wires
100
+ // that) and on every loop exit (success, throw, abort) via the `finally` below.
101
+ // Composed with the caller's signal so an external `caller.abort()` ALSO fires
102
+ // the loop's signal (handlers and the in-flight backend call both react). The
103
+ // composed signal is the only signal that flows to inner calls.
104
+ const loopController = new AbortController();
105
+ const composedSignal = composeAbortSignal(callerSignal, loopController.signal);
106
+ // Strip loop-only knobs from what flows back into `models.generate`. The `toolMode:
107
+ // 'return'` override is what prevents the outer entry point from re-entering this loop.
108
+ // `signal` is swapped to the composed signal so `Models.generate` (and through it,
109
+ // the backend) see budget-trip and caller-abort cancellations the same way.
110
+ const innerOpts = { ...opts, toolMode: 'return', signal: composedSignal };
111
+ try {
112
+ for (let iteration = 1; iteration <= maxIterations; iteration++) {
113
+ // Pre-iteration abort check — if the caller (or a future budget trip) fired
114
+ // the composed signal between rounds, bail before paying for another backend
115
+ // call. The inner `models.generate` would itself throw on the in-flight check,
116
+ // but throwing here saves the round-trip and the spurious analytics row.
117
+ composedSignal.throwIfAborted();
118
+ const result = await models.generate(buildInnerInput(messages, tools, system), innerOpts);
119
+ // Re-check abort the instant the backend round returns, BEFORE any budget
120
+ // accounting, assistant append, or tool dispatch. A well-behaved backend
121
+ // throws on an in-flight abort; an ill-behaved one (community backend that
122
+ // ignores its signal) can resolve normally after the caller aborted. Without
123
+ // this check the loop would run side-effecting handlers for a cancelled
124
+ // request and then misreport the outcome as a budget/tool error instead of
125
+ // an abort.
126
+ composedSignal.throwIfAborted();
127
+ logger_ts_1.logger.debug?.(`[models] auto-loop iteration ${iteration}: finishReason=${result.finishReason} toolCalls=${result.toolCalls?.length ?? 0} cumulativeTokens=${totalTokens}`);
128
+ // A token/cost budget is only as good as the backend's usage reporting. If a
129
+ // cap is set but this round reported no usage, the cap is unmeasurable — warn
130
+ // once rather than letting the caller believe spend is bounded when it isn't.
131
+ if ((maxToolTokens !== undefined || maxCostUsd !== undefined) &&
132
+ result.usage === undefined &&
133
+ !budgetUnmeasurableWarned) {
134
+ budgetUnmeasurableWarned = true;
135
+ logger_ts_1.logger.warn?.(`[models] auto-loop token/cost budget set but backend '${opts.model ?? 'default'}' reported no usage; budget is unenforceable for this run (maxToolIterations still applies)`);
136
+ }
137
+ // Tally this round's usage BEFORE deciding terminal vs continue. A round
138
+ // that crosses the cap trips even if it would otherwise have been the last
139
+ // one — the cap is on what we paid for, not on what we'd have paid for next.
140
+ // Cost trip semantics: `>= cap`, so `maxCostUsd: 0` blocks every call rather
141
+ // than dormantly admitting all of them until a real rate card lands and then
142
+ // abruptly blocking everything. Token trip uses `>=` for symmetry.
143
+ //
144
+ // Discarded-content asymmetry: a TERMINAL round that trips returns
145
+ // BudgetExceededError instead of the final assistant content. The content is
146
+ // in `messages` (the loop's running state) but neither `partialTrace` nor the
147
+ // thrown error surfaces it. Callers that need terminal content even on
148
+ // budget-trip should set `maxToolTokens` / `maxCostUsd` conservatively or read
149
+ // the per-iteration analytics rows (one row per round in `hdb_model_calls`).
150
+ totalTokens += sumTokens(result.usage);
151
+ totalCostUsd += computeCallCostUsd(result.usage, opts.model);
152
+ if (maxToolTokens !== undefined && totalTokens >= maxToolTokens) {
153
+ throw new BudgetExceededError('tokens', `agent loop exceeded maxToolTokens=${maxToolTokens} (cumulative=${totalTokens})`, trace);
154
+ }
155
+ if (maxCostUsd !== undefined && totalCostUsd >= maxCostUsd) {
156
+ throw new BudgetExceededError('cost', `agent loop exceeded maxCostUsd=${maxCostUsd} (cumulative=${totalCostUsd})`, trace);
157
+ }
158
+ const calls = result.toolCalls;
159
+ // Backends (notably OpenAI) leave `content` as `null` / undefined on tool-call
160
+ // rounds. `Message.content` and `ConversationTurn.content` are typed as a
161
+ // required string — coerce to '' at the seam.
162
+ const assistantContent = result.content ?? '';
163
+ if (result.finishReason !== 'tool_calls' || !calls || calls.length === 0) {
164
+ // Terminal: model produced a final answer (stop / length / content_filter), or it
165
+ // signaled tool_calls but emitted none. Append final assistant turn to the
166
+ // conversation hook (if set), then pass the result through; attach the trace
167
+ // when the caller asked for it.
168
+ if (conversation && assistantContent) {
169
+ await conversation.append({ role: 'assistant', content: assistantContent });
170
+ }
171
+ // A `tool_calls` finishReason with no dispatchable calls (e.g. the backend
172
+ // dropped malformed tool-call args) is terminal — coerce it to 'stop' so an
173
+ // auto-mode caller never sees a `tool_calls` finishReason (auto resolves calls
174
+ // internally) pointing at calls that aren't there, and never a `null` content.
175
+ // Mirrors the streaming path's terminalReason fold.
176
+ const terminal = result.finishReason === 'tool_calls'
177
+ ? { ...result, finishReason: 'stop', content: assistantContent }
178
+ : result;
179
+ return opts.includeToolTrace ? { ...terminal, trace } : terminal;
180
+ }
181
+ messages.push({ role: 'assistant', content: assistantContent, toolCalls: calls });
182
+ if (conversation) {
183
+ await conversation.append({
184
+ role: 'assistant',
185
+ content: assistantContent,
186
+ toolCalls: calls,
187
+ });
188
+ }
189
+ const ctx = { signal: composedSignal, accounting };
190
+ const dispatched = await dispatchToolCalls(calls, handlers, declaredToolNames, ctx, iteration, maxResultBytes, parallelism);
191
+ // Post-dispatch abort check — covers the LAST-iteration case: if the signal
192
+ // fired during this round's handlers, we'd otherwise skip the top-of-loop check
193
+ // and throw `BudgetExceededError` (misleading: the budget never tripped). Fire
194
+ // the abort here so the caller gets the correct error class. Earlier iterations
195
+ // pick this up on the next round's top-of-loop check.
196
+ composedSignal.throwIfAborted();
197
+ // Trace + the in-memory message list always record every tool result in CALL
198
+ // order (the trace mirrors what the model emitted, not which handler finished
199
+ // first). The EXTERNAL conversation sink is handled separately below so the
200
+ // abort-mode throw can run BEFORE we persist turns the model never consumes.
201
+ for (const dispatchResult of dispatched) {
202
+ trace.push(dispatchResult.entry);
203
+ messages.push({
204
+ role: 'tool',
205
+ content: dispatchResult.toolMessageContent,
206
+ toolCallId: dispatchResult.entry.toolCallId,
207
+ });
208
+ }
209
+ // `toolErrorMode: 'abort'`: any handler failure terminates the loop. Throw
210
+ // BEFORE the conversation sink sees this round's tool turns — abort mode
211
+ // returns the error to the caller instead of recovering, so persisting a
212
+ // recover-style tool-error turn the model never reads would leave the store
213
+ // inconsistent with what actually happened. The trace (built above) still
214
+ // carries the failing entry via `ToolHandlerError.partialTrace`.
215
+ if (errorMode === 'abort') {
216
+ const failed = dispatched.find((d) => d.originalError !== undefined);
217
+ if (failed) {
218
+ throw new ToolHandlerError(failed.entry.toolName, failed.entry.toolCallId, trace, failed.originalError);
219
+ }
220
+ }
221
+ // Continue path: persist this round's tool turns to the conversation sink.
222
+ if (conversation) {
223
+ for (const dispatchResult of dispatched) {
224
+ await conversation.append({
225
+ role: 'tool',
226
+ toolCallId: dispatchResult.entry.toolCallId,
227
+ content: dispatchResult.toolMessageContent,
228
+ });
229
+ }
230
+ }
231
+ }
232
+ // Hit `maxToolIterations` without a terminal finishReason — the model kept calling tools.
233
+ // Always include the trace on the error path (independent of `includeToolTrace`) so
234
+ // callers can debug an exhausted budget without re-running with tracing on.
235
+ throw new BudgetExceededError('iterations', `agent loop exceeded maxToolIterations=${maxIterations}`, trace);
236
+ }
237
+ finally {
238
+ // Always abort the loop controller on exit (success, throw, or external abort).
239
+ // Cleans up `AbortSignal.any`'s listener on `callerSignal` so a session-scoped caller
240
+ // signal doesn't accumulate listeners across many `runAgentLoop` invocations, and
241
+ // signals any sibling handlers still running in the background after a Promise.all
242
+ // rejection (missing-handler or aborted-mid-flight) to bail out promptly.
243
+ loopController.abort();
244
+ }
245
+ }
246
+ async function dispatchToolCalls(calls, handlers, declaredToolNames, ctx, iteration, maxResultBytes, parallelism) {
247
+ // Single-call rounds use the serial path even when 'parallel' is selected — the
248
+ // settled-wrapping path adds nothing on one element and the serial path's stack
249
+ // trace is more readable in errors.
250
+ if (parallelism === 'serial' || calls.length <= 1) {
251
+ const out = [];
252
+ for (const call of calls) {
253
+ out.push(await runSingleToolCall(call, handlers, declaredToolNames, ctx, iteration, maxResultBytes));
254
+ }
255
+ return out;
256
+ }
257
+ // Parallel: handlers race concurrently. `runSingleToolCall` only throws on missing
258
+ // handler or cooperative abort — handler errors are caught inline and surface via
259
+ // `originalError`. `Promise.all` rejects on first throw, which is what we want for
260
+ // those two cases: surface the throw immediately so the loop's `finally` can fire
261
+ // `loopController.abort` and cancel siblings still in flight, instead of waiting
262
+ // for every sibling to complete (which `Promise.allSettled` would force).
263
+ //
264
+ // Concurrent-rejection caveat: when MULTIPLE siblings reject at the same time
265
+ // (e.g. several missing handlers, or several handlers reacting to a cooperative
266
+ // abort), `Promise.all` only awaits the first rejection — the rest become
267
+ // unhandled-rejection warnings (and crash under `--unhandled-rejections=throw`).
268
+ // Attach a no-op catch to each promise so the runtime sees every rejection as
269
+ // handled while still letting `Promise.all` settle on the first one.
270
+ const promises = calls.map((call) => runSingleToolCall(call, handlers, declaredToolNames, ctx, iteration, maxResultBytes));
271
+ for (const p of promises)
272
+ p.catch(() => { });
273
+ return Promise.all(promises);
274
+ }
275
+ async function runSingleToolCall(call, handlers, declaredToolNames, ctx, iteration, maxResultBytes) {
276
+ const entry = {
277
+ iteration,
278
+ toolCallId: call.id,
279
+ toolName: call.name,
280
+ // Shallow-copy so the trace's view of "what the model emitted" doesn't shift if a
281
+ // handler mutates its `args` parameter (legitimate pattern). Deep mutations to
282
+ // nested objects can still leak — common-case flat-object args are covered.
283
+ arguments: { ...call.arguments },
284
+ durationMs: 0,
285
+ };
286
+ // Handler resolution. Use `Object.hasOwn` + a callable check rather than a plain
287
+ // `handlers[call.name]` lookup: a model can emit a tool name that collides with an
288
+ // inherited Object prototype member (`toString`, `constructor`, `__proto__`, ...),
289
+ // and a bare index would resolve that built-in as a "handler" and invoke it. Model
290
+ // output is untrusted input at this boundary — only an own, callable property counts.
291
+ const handler = Object.hasOwn(handlers, call.name) && typeof handlers[call.name] === 'function' ? handlers[call.name] : undefined;
292
+ if (!handler) {
293
+ if (declaredToolNames.has(call.name)) {
294
+ // The caller DECLARED this tool but supplied no (callable) handler for it.
295
+ // That's a caller config bug, not something the model can recover from —
296
+ // hard fail. (#615 swaps this lookup for a `scope.resources` registry
297
+ // resolution; same split — resolvable-but-misconfigured stays a hard fail.)
298
+ throw new hdbError_ts_1.ClientError(`No handler registered for declared tool '${call.name}' (call id ${call.id})`, 400);
299
+ }
300
+ // Undeclared tool name: the model hallucinated a tool that doesn't exist. This is
301
+ // the EXPECTED failure mode for an LLM, not a caller fault — surface it as a
302
+ // recoverable tool error so `toolErrorMode: 'recover'` feeds it back and the model
303
+ // can self-correct, while `'abort'` (via `originalError`) still stops the loop.
304
+ logger_ts_1.logger.warn?.(`[models] auto-loop: model called unknown tool '${call.name}' (call id ${call.id}); no such tool declared`);
305
+ const unknownToolError = new hdbError_ts_1.ClientError(`Unknown tool '${call.name}': no such tool is available`, 400);
306
+ entry.error = errorInfo(unknownToolError);
307
+ return {
308
+ entry,
309
+ toolMessageContent: JSON.stringify({ error: entry.error.message }),
310
+ originalError: unknownToolError,
311
+ };
312
+ }
313
+ const handlerStart = performance.now();
314
+ let toolMessageContent;
315
+ let originalError;
316
+ // Wrap BOTH the handler call AND result serialization in the recover catch.
317
+ // `JSON.stringify` throws on BigInt and circular refs — both trivially produced by
318
+ // handlers that return raw DB rows or Resource instances. Without this, a
319
+ // serialization failure crashes the entire loop instead of becoming a tool error
320
+ // the model can react to (the `toolErrorMode: 'recover'` contract).
321
+ try {
322
+ const handlerOutput = await handler(call.arguments, ctx);
323
+ const serialized = serializeToolResult(handlerOutput, maxResultBytes);
324
+ entry.result = serialized.content;
325
+ if (serialized.truncated) {
326
+ entry.truncated = true;
327
+ entry.totalBytes = serialized.totalBytes;
328
+ }
329
+ toolMessageContent = serialized.content;
330
+ }
331
+ catch (err) {
332
+ // Cooperative cancellation is NOT a tool error — rethrow so the loop's
333
+ // abort path (top-of-loop / post-dispatch `throwIfAborted`) classifies it
334
+ // correctly. Without this, AbortError would land in `entry.error` and the
335
+ // caller would see `BudgetExceededError` on the last iteration, or a
336
+ // bogus `{error: 'aborted'}` tool message threaded into the conversation.
337
+ // The trace entry is abandoned (the loop builds an aborted-path trace later).
338
+ if (ctx.signal?.aborted)
339
+ throw err;
340
+ // Handler error. Populate entry.error so the trace records the failure, build
341
+ // the recover-mode tool-message envelope, and stash the original throw so
342
+ // `toolErrorMode: 'abort'` (checked in the main loop after dispatch) can
343
+ // surface the cause unmodified.
344
+ originalError = err;
345
+ entry.error = errorInfo(err);
346
+ toolMessageContent = JSON.stringify({ error: entry.error.message });
347
+ }
348
+ entry.durationMs = performance.now() - handlerStart;
349
+ return { entry, toolMessageContent, originalError };
350
+ }
351
+ /**
352
+ * Mirror of `backendHelpers.composeSignal` but composing a caller signal with an
353
+ * INTERNAL controller's signal (not a timeout). Returns the internal signal alone
354
+ * when no caller signal exists, the caller signal alone when no internal controller
355
+ * is needed (today never — we always create one), and a composed signal otherwise.
356
+ *
357
+ * `AbortSignal.any` requires Node 20+, which matches Harper's engines floor.
358
+ */
359
+ function composeAbortSignal(caller, internal) {
360
+ if (!caller)
361
+ return internal;
362
+ return AbortSignal.any([caller, internal]);
363
+ }
364
+ async function* runAgentLoopStream(args) {
365
+ const { models, opts, accounting, signal: callerSignal } = args;
366
+ guardUnsupportedModes(opts);
367
+ const maxIterations = opts.maxToolIterations ?? DEFAULT_MAX_ITERATIONS;
368
+ const maxResultBytes = opts.toolResultMaxBytes ?? DEFAULT_MAX_RESULT_BYTES;
369
+ const handlers = opts.toolHandlers ?? {};
370
+ const parallelism = opts.toolParallelism ?? 'parallel';
371
+ const errorMode = opts.toolErrorMode ?? 'recover';
372
+ const conversation = opts.conversation;
373
+ // Streaming + token/cost budgets: backends don't emit `usage` on `GenerateChunk`
374
+ // in v1 (the type has no `usage` field on chunks), so cumulative usage isn't
375
+ // observable from the stream. The iteration budget still applies. Wiring
376
+ // streaming budgets requires extending `GenerateChunk` and updating each
377
+ // backend's stream-final-chunk handling — a follow-up to this PR.
378
+ if (opts.maxToolTokens !== undefined || opts.maxCostUsd !== undefined) {
379
+ throw new hdbError_ts_1.ServerError(`maxToolTokens / maxCostUsd are not yet supported for generateStream (streamed usage not exposed in v1)`, 501);
380
+ }
381
+ const { messages, tools, system } = normalizeInput(args.input);
382
+ const declaredToolNames = collectDeclaredToolNames(tools);
383
+ const trace = [];
384
+ const loopController = new AbortController();
385
+ const composedSignal = composeAbortSignal(callerSignal, loopController.signal);
386
+ const innerOpts = { ...opts, toolMode: 'return', signal: composedSignal };
387
+ // `conversation` is a one-way SINK for NEW turns produced by this loop — see
388
+ // `runAgentLoop` for the rationale. Streaming path applies the same contract.
389
+ try {
390
+ for (let iteration = 1; iteration <= maxIterations; iteration++) {
391
+ composedSignal.throwIfAborted();
392
+ // Stream this round: yield content + tool-call deltas to the caller as they
393
+ // arrive, while internally assembling the round's content and tool-call shape.
394
+ let accumulatedContent = '';
395
+ const toolCallAssembly = new Map();
396
+ let finishReason;
397
+ const stream = models.generateStream(buildInnerInput(messages, tools, system), innerOpts);
398
+ for await (const chunk of stream) {
399
+ // Defense-in-depth: well-behaved backends honor `opts.signal` via the
400
+ // fetch they hand it to. An ill-behaved community backend that doesn't
401
+ // observe its signal would otherwise keep streaming after a caller abort.
402
+ composedSignal.throwIfAborted();
403
+ if (chunk.deltaContent !== undefined) {
404
+ accumulatedContent += chunk.deltaContent;
405
+ }
406
+ if (chunk.deltaToolCalls) {
407
+ for (const delta of chunk.deltaToolCalls) {
408
+ mergeToolCallDelta(toolCallAssembly, delta);
409
+ }
410
+ }
411
+ if (chunk.finishReason) {
412
+ finishReason = chunk.finishReason;
413
+ }
414
+ // `finishReason` is an INTERNAL signal — never forward it inline. We re-emit
415
+ // exactly one terminal chunk after the loop, AFTER the terminal turn has been
416
+ // appended to the conversation sink (see below). Forwarding it here would let a
417
+ // consumer that stops on the first finish-reason chunk close this generator at
418
+ // the `yield` before the append runs, delivering a response that never persists.
419
+ // The deltas (content / tool-call shape) still flow through untouched.
420
+ if (chunk.deltaContent !== undefined || chunk.deltaToolCalls) {
421
+ const cleaned = {};
422
+ if (chunk.deltaContent !== undefined)
423
+ cleaned.deltaContent = chunk.deltaContent;
424
+ if (chunk.deltaToolCalls)
425
+ cleaned.deltaToolCalls = chunk.deltaToolCalls;
426
+ yield cleaned;
427
+ }
428
+ }
429
+ const finalToolCalls = completeToolCallAssembly(toolCallAssembly);
430
+ // Surface any assembled-but-incomplete tool calls (id arrived, name never did)
431
+ // instead of silently dropping them. `completeToolCallAssembly` keeps only
432
+ // dispatchable (id + name) calls; a missing-name partial usually means a
433
+ // truncated stream. Record it in the trace + warn so the drop is observable.
434
+ if (finalToolCalls.length < toolCallAssembly.size) {
435
+ for (const [id, partial] of toolCallAssembly) {
436
+ if (!partial.name) {
437
+ logger_ts_1.logger.warn?.(`[models] auto-loop: dropping incomplete streamed tool call id=${id} (no tool name assembled; stream likely truncated)`);
438
+ trace.push({
439
+ iteration,
440
+ toolCallId: id,
441
+ toolName: '<incomplete>',
442
+ arguments: partial.arguments ?? {},
443
+ durationMs: 0,
444
+ error: { name: 'IncompleteToolCall', message: 'streamed tool call missing name; dropped' },
445
+ });
446
+ }
447
+ }
448
+ }
449
+ logger_ts_1.logger.debug?.(`[models] auto-loop stream iteration ${iteration}: finishReason=${finishReason ?? 'none'} toolCalls=${finalToolCalls.length}`);
450
+ // Continue-vs-terminal:
451
+ // - Hand off to tool dispatch when calls assembled AND the backend signalled
452
+ // tool_calls OR didn't signal anything at all. The "no finishReason" case
453
+ // covers proxy-truncated streams: every in-tree backend (openai, anthropic,
454
+ // bedrock) emits a tail-flush `deltaToolCalls` without a finishReason when
455
+ // the upstream connection drops mid-stream. Treating that as terminal would
456
+ // silently drop the assembled tool calls — the backend's recovery would be
457
+ // undone by this loop.
458
+ // - Otherwise, terminal: yield a synthetic 'stop' chunk if the consumer didn't
459
+ // receive a terminal finishReason inline (degenerate streams, or the
460
+ // suppressed `tool_calls` finishReason with zero assembled calls).
461
+ const hasToolCalls = finalToolCalls.length > 0;
462
+ const continueWithToolCalls = hasToolCalls && (finishReason === 'tool_calls' || finishReason === undefined);
463
+ if (!continueWithToolCalls) {
464
+ // Terminal. Persist the final assistant turn to the conversation sink FIRST,
465
+ // then emit exactly one terminal chunk. Because the loop suppressed every
466
+ // inline finishReason, this `yield` is the only finish-reason the consumer
467
+ // sees — and it lands after the append, so a consumer that stops on it cannot
468
+ // race past the persistence.
469
+ if (conversation && accumulatedContent) {
470
+ await conversation.append({ role: 'assistant', content: accumulatedContent });
471
+ }
472
+ // `tool_calls` with zero dispatchable calls can't honestly be reported as the
473
+ // terminal reason (there are no calls); fold it and the no-signal case to 'stop'.
474
+ const terminalReason = finishReason && finishReason !== 'tool_calls' ? finishReason : 'stop';
475
+ yield { finishReason: terminalReason };
476
+ return;
477
+ }
478
+ // Continue the loop: dispatch tools, append messages, resume on next iteration.
479
+ const assistantMessage = {
480
+ role: 'assistant',
481
+ content: accumulatedContent,
482
+ toolCalls: finalToolCalls,
483
+ };
484
+ messages.push(assistantMessage);
485
+ if (conversation) {
486
+ await conversation.append({
487
+ role: 'assistant',
488
+ content: accumulatedContent,
489
+ toolCalls: finalToolCalls,
490
+ });
491
+ }
492
+ const ctx = { signal: composedSignal, accounting };
493
+ const dispatched = await dispatchToolCalls(finalToolCalls, handlers, declaredToolNames, ctx, iteration, maxResultBytes, parallelism);
494
+ composedSignal.throwIfAborted();
495
+ // Trace + in-memory messages always record every result; the external
496
+ // conversation sink is deferred past the abort-mode throw (same rationale as
497
+ // the sync path — don't persist tool turns the model never consumes on abort).
498
+ for (const d of dispatched) {
499
+ trace.push(d.entry);
500
+ messages.push({
501
+ role: 'tool',
502
+ content: d.toolMessageContent,
503
+ toolCallId: d.entry.toolCallId,
504
+ });
505
+ }
506
+ if (errorMode === 'abort') {
507
+ const failed = dispatched.find((d) => d.originalError !== undefined);
508
+ if (failed) {
509
+ throw new ToolHandlerError(failed.entry.toolName, failed.entry.toolCallId, trace, failed.originalError);
510
+ }
511
+ }
512
+ if (conversation) {
513
+ for (const d of dispatched) {
514
+ await conversation.append({
515
+ role: 'tool',
516
+ toolCallId: d.entry.toolCallId,
517
+ content: d.toolMessageContent,
518
+ });
519
+ }
520
+ }
521
+ }
522
+ throw new BudgetExceededError('iterations', `agent loop exceeded maxToolIterations=${maxIterations}`, trace);
523
+ }
524
+ finally {
525
+ loopController.abort();
526
+ }
527
+ }
528
+ /**
529
+ * Update the in-flight assembly map with one streamed tool-call delta. Streaming
530
+ * backends may send the same `id` multiple times with partial `name` / `arguments`;
531
+ * we merge them in arrival order. Some backends pre-assemble and send the full
532
+ * call as a single delta — same code path, single update.
533
+ *
534
+ * Backends that stream `arguments` as accumulating JSON string fragments must
535
+ * parse before yielding (delta.arguments is typed as `object`); shape assembly
536
+ * lives in this loop, fragment assembly lives in the backend.
537
+ */
538
+ function mergeToolCallDelta(map, delta) {
539
+ if (!delta.id)
540
+ return;
541
+ const existing = map.get(delta.id) ?? { id: delta.id };
542
+ if (delta.name)
543
+ existing.name = delta.name;
544
+ if (delta.arguments) {
545
+ existing.arguments = { ...existing.arguments, ...delta.arguments };
546
+ }
547
+ map.set(delta.id, existing);
548
+ }
549
+ function completeToolCallAssembly(map) {
550
+ const out = [];
551
+ for (const partial of map.values()) {
552
+ if (partial.id && partial.name) {
553
+ out.push({
554
+ id: partial.id,
555
+ name: partial.name,
556
+ arguments: partial.arguments ?? {},
557
+ });
558
+ }
559
+ }
560
+ return out;
561
+ }
562
+ function guardUnsupportedModes(opts) {
563
+ const validationMode = opts.toolArgValidation ?? 'none';
564
+ if (validationMode !== 'none') {
565
+ throw new hdbError_ts_1.ServerError(`toolArgValidation: '${validationMode}' is not yet implemented; v1 supports 'none' only`, 501);
566
+ }
567
+ }
568
+ function buildInnerInput(messages, tools, system) {
569
+ const inner = { messages };
570
+ if (tools)
571
+ inner.tools = tools;
572
+ if (system)
573
+ inner.system = system;
574
+ return inner;
575
+ }
576
+ function normalizeInput(input) {
577
+ if (typeof input === 'string') {
578
+ return { messages: [{ role: 'user', content: input }] };
579
+ }
580
+ if (Array.isArray(input)) {
581
+ return { messages: [...input] };
582
+ }
583
+ return { messages: [...input.messages], tools: input.tools, system: input.system };
584
+ }
585
+ function collectDeclaredToolNames(tools) {
586
+ const names = new Set();
587
+ if (tools)
588
+ for (const t of tools)
589
+ names.add(t.name);
590
+ return names;
591
+ }
592
+ function errorInfo(err) {
593
+ if (err instanceof Error) {
594
+ return { name: err.name, message: err.message };
595
+ }
596
+ // Some thrown values are plain objects with a `message` field but no Error chain —
597
+ // e.g. Harper's `BigInt.prototype.toJSON` throws `{message: 'Cannot serialize BigInt …'}`
598
+ // (server/serverHelpers/JSONStream.ts) to skip the cost of capturing a stack on a hot
599
+ // serialization path. Surface their message instead of String()-ing the whole object.
600
+ if (err && typeof err === 'object' && 'message' in err) {
601
+ const e = err;
602
+ const name = typeof e.name === 'string' ? e.name : 'Error';
603
+ const message = typeof e.message === 'string' ? e.message : String(e.message);
604
+ return { name, message };
605
+ }
606
+ return { name: 'Error', message: String(err) };
607
+ }
608
+ function serializeToolResult(value, maxBytes) {
609
+ // `JSON.stringify(Symbol())` (and `JSON.stringify(function(){})`) return `undefined`.
610
+ // `value ?? null` only catches null/undefined inputs, not unsupported types — fall
611
+ // back to the string 'null' so downstream `Buffer.byteLength` never sees undefined.
612
+ const json = JSON.stringify(value ?? null) ?? 'null';
613
+ const totalBytes = Buffer.byteLength(json, 'utf8');
614
+ // Common case: result fits. Skip buffer allocation entirely — read byte length
615
+ // without materializing a copy.
616
+ if (totalBytes <= maxBytes) {
617
+ return { content: json, totalBytes, truncated: false };
618
+ }
619
+ // Truncated form: head of the JSON + a marker that names the original size. The
620
+ // content is no longer valid JSON — that's intentional, the model reads it as text
621
+ // alongside the marker. Pre-slice the JSON string by CHARACTERS to `headBudget`
622
+ // before converting to a Buffer — any character takes at least one UTF-8 byte, so
623
+ // the pre-sliced string already fits in (4 * headBudget) bytes worst-case. Without
624
+ // this, a multi-MB JSON result would materialize a multi-MB Buffer copy just to
625
+ // throw away >99 % of it via `subarray`. After conversion, `subarray(0, headBudget)`
626
+ // trims to exact byte budget; `toString('utf8')` folds a split codepoint at the
627
+ // boundary into U+FFFD.
628
+ const marker = `…[truncated; full result is ${totalBytes} bytes]`;
629
+ const markerBytes = Buffer.byteLength(marker, 'utf8');
630
+ const headBudget = Math.max(0, maxBytes - markerBytes);
631
+ const buf = Buffer.from(json.slice(0, headBudget), 'utf8');
632
+ const body = buf.subarray(0, headBudget).toString('utf8');
633
+ return { content: body + marker, totalBytes, truncated: true };
634
+ }
635
+ /**
636
+ * Loop tripped one of its budgets (iterations, tokens, cost). The trace built so
637
+ * far rides along on `partialTrace` so callers can inspect what already ran. The
638
+ * loop always populates this regardless of `opts.includeToolTrace` so debugging an
639
+ * exhausted budget never needs a second run with tracing turned on.
640
+ *
641
+ * Extends `ClientError` — the caller set the budget, so exceeding it is a 4xx
642
+ * caller-bounds condition, not a Harper-internal fault. Anything that branches on
643
+ * `err instanceof ClientError` (e.g. "don't page on this") classifies it correctly.
644
+ */
645
+ class BudgetExceededError extends hdbError_ts_1.ClientError {
646
+ kind;
647
+ partialTrace;
648
+ constructor(kind, message, partialTrace) {
649
+ // 429 (Too Many Requests) maps cleanest to "you exceeded the budget you set".
650
+ super(message, 429);
651
+ this.name = 'BudgetExceededError';
652
+ this.kind = kind;
653
+ this.partialTrace = partialTrace;
654
+ }
655
+ }
656
+ exports.BudgetExceededError = BudgetExceededError;
657
+ /**
658
+ * Surfaced under `toolErrorMode: 'abort'` when a tool handler throws (or its
659
+ * result fails to serialize). Carries the original throw on `.cause` and the
660
+ * partial trace — including the failing entry — on `.partialTrace` so callers
661
+ * always have the full picture on the abort path.
662
+ *
663
+ * `statusCode` mirrors the underlying error when it carries one (e.g. a handler
664
+ * throwing `ClientError(400)` surfaces as `ToolHandlerError(400)`), otherwise
665
+ * defaults to 500.
666
+ *
667
+ * **`instanceof` caveat:** extends `ServerError` regardless of `statusCode`, so a
668
+ * handler-thrown `ClientError(403)` becomes a `ToolHandlerError` whose `statusCode`
669
+ * is 403 but where `instanceof ClientError === false`. Callers that route on
670
+ * client-vs-server class should branch on `err.statusCode` or
671
+ * `err.cause instanceof ClientError`, not on `err instanceof ClientError` directly.
672
+ */
673
+ class ToolHandlerError extends hdbError_ts_1.ServerError {
674
+ toolName;
675
+ toolCallId;
676
+ partialTrace;
677
+ constructor(toolName, toolCallId, partialTrace, cause) {
678
+ const causeMessage = errorInfo(cause).message;
679
+ const causeStatus = cause &&
680
+ typeof cause === 'object' &&
681
+ 'statusCode' in cause &&
682
+ typeof cause.statusCode === 'number'
683
+ ? cause.statusCode
684
+ : 500;
685
+ super(`Tool handler '${toolName}' (call ${toolCallId}) failed: ${causeMessage}`, causeStatus);
686
+ this.name = 'ToolHandlerError';
687
+ this.toolName = toolName;
688
+ this.toolCallId = toolCallId;
689
+ this.partialTrace = partialTrace;
690
+ this.cause = cause;
691
+ }
692
+ }
693
+ exports.ToolHandlerError = ToolHandlerError;
694
+ /**
695
+ * Cost computation hook. v1 returns 0 — no per-model rate card is wired today —
696
+ * so `maxCostUsd` never trips in production. The cap, the trip path, and the
697
+ * `BudgetExceededError({kind: 'cost'})` shape ARE wired and exercised by tests
698
+ * that inject a non-zero function via `_setComputeCallCostUsdForTests`. When the
699
+ * rate card lands, replace this implementation; no surface change needed.
700
+ */
701
+ let computeCallCostUsd = () => 0;
702
+ /**
703
+ * Test-only override. Public callers must not depend on this — it exists so unit
704
+ * tests can prove the `maxCostUsd` trip path works end-to-end before a real rate
705
+ * card lands. Leading underscore marks the intent.
706
+ */
707
+ function _setComputeCallCostUsdForTests(fn) {
708
+ computeCallCostUsd = fn;
709
+ }
710
+ /**
711
+ * Reset the cost function to the v1 stub. Pair with `_setComputeCallCostUsdForTests`
712
+ * in test `afterEach` so suites don't leak state into each other.
713
+ */
714
+ function _resetComputeCallCostUsdForTests() {
715
+ computeCallCostUsd = () => 0;
716
+ }
717
+ function sumTokens(usage) {
718
+ if (!usage)
719
+ return 0;
720
+ let total = 0;
721
+ if (typeof usage.promptTokens === 'number' && usage.promptTokens > 0)
722
+ total += usage.promptTokens;
723
+ if (typeof usage.completionTokens === 'number' && usage.completionTokens > 0)
724
+ total += usage.completionTokens;
725
+ return total;
726
+ }
727
+ /**
728
+ * `toolArgValidation: 'strict'` rejected a tool call's arguments against its
729
+ * declared `parameters` JSON Schema. Surfaces as a 400 — the model produced output
730
+ * that doesn't satisfy the contract the caller declared. Reserved for the
731
+ * validator wiring (currently the strict mode is itself gated at loop entry).
732
+ */
733
+ class ToolValidationError extends hdbError_ts_1.ClientError {
734
+ toolName;
735
+ toolCallId;
736
+ validationErrors;
737
+ constructor(toolName, toolCallId, validationErrors, message) {
738
+ super(message, 400);
739
+ this.name = 'ToolValidationError';
740
+ this.toolName = toolName;
741
+ this.toolCallId = toolCallId;
742
+ this.validationErrors = validationErrors;
743
+ }
744
+ }
745
+ exports.ToolValidationError = ToolValidationError;
746
+ //# sourceMappingURL=agentLoop.js.map