@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
@@ -12,7 +12,7 @@ import {
12
12
  import { join, basename, dirname } from 'node:path';
13
13
  import { isMainThread } from 'node:worker_threads';
14
14
  import { parseDocument } from 'yaml';
15
- import * as env from '../utility/environment/environmentManager.js';
15
+ import * as env from '../utility/environment/environmentManager.ts';
16
16
  import { PACKAGE_ROOT } from '../utility/packageUtils.js';
17
17
  import { CONFIG_PARAMS, HDB_ROOT_DIR_NAME, ITC_EVENT_TYPES } from '../utility/hdbTerms.ts';
18
18
  import * as graphqlHandler from '../resources/graphql.ts';
@@ -21,28 +21,27 @@ import * as roles from '../resources/roles.ts';
21
21
  import * as jsHandler from '../resources/jsResource.ts';
22
22
  import * as login from '../resources/login.ts';
23
23
  import * as REST from '../server/REST.ts';
24
- import * as fastifyRoutesHandler from '../server/fastifyRoutes.ts';
25
24
  import * as staticFiles from '../server/static.ts';
26
25
  import * as loadEnv from '../resources/loadEnv.ts';
27
- import harperLogger from '../utility/logging/harper_logger.js';
26
+ import harperLogger from '../utility/logging/harper_logger.ts';
28
27
  import * as dataLoader from '../resources/dataLoader.ts';
29
- import { watchDir, getWorkerIndex } from '../server/threads/manageThreads.js';
28
+ import { restartWorkers, getWorkerIndex } from '../server/threads/manageThreads.js';
29
+ import { resetRestartNeeded, subscribeToRestartRequests } from './requestRestart.ts';
30
30
  import { scopedImport } from '../security/jsLoader.ts';
31
31
  import { server } from '../server/Server.ts';
32
32
  import { Resources } from '../resources/Resources.ts';
33
33
  import { table } from '../resources/databases.ts';
34
- import { startSocketServer } from '../server/threads/socketRouter.ts';
35
- import { getHdbBasePath } from '../utility/environment/environmentManager.js';
36
- import * as operationsServer from '../server/operationsServer.ts';
34
+ import { getHdbBasePath } from '../utility/environment/environmentManager.ts';
37
35
  import * as auth from '../security/auth.ts';
38
36
  import * as mqtt from '../server/mqtt.ts';
39
37
  import { getConfigObj, getConfigPath } from '../config/configUtils.js';
40
- import { createReuseportFd } from '../server/serverHelpers/Request.ts';
38
+ import { bootstrapModels } from '../resources/models/bootstrap.ts';
41
39
  import { ErrorResource } from '../resources/ErrorResource.ts';
42
40
  import { Scope } from './Scope.ts';
43
41
  import { ApplicationScope } from './ApplicationScope.ts';
44
42
  import { ComponentV1, processResourceExtensionComponent } from './ComponentV1.ts';
45
43
  import * as httpComponent from '../server/http.ts';
44
+ import * as mcpComponent from './mcp/index.ts';
46
45
  import { Status } from '../server/status/index.ts';
47
46
  import { lifecycle as componentLifecycle } from './status/index.ts';
48
47
  import { DEFAULT_CONFIG } from './DEFAULT_CONFIG.ts';
@@ -91,17 +90,18 @@ export function loadComponentDirectories(loadedPluginModules?: Map<any, any>, lo
91
90
  });
92
91
  }
93
92
 
94
- export const TRUSTED_RESOURCE_PLUGINS = {
93
+ export const TRUSTED_RESOURCE_PLUGINS: any = {
95
94
  REST, // for backwards compatibility with older configs
96
95
  rest: REST,
97
96
  graphql: graphqlQueryHandler,
98
97
  graphqlSchema: graphqlHandler,
99
98
  roles,
100
99
  jsResource: jsHandler,
101
- fastifyRoutes: fastifyRoutesHandler,
100
+ get fastifyRoutes() {
101
+ return require('../server/fastifyRoutes');
102
+ },
102
103
  login,
103
104
  static: staticFiles,
104
- operationsApi: operationsServer,
105
105
  customFunctions: {},
106
106
  http: httpComponent,
107
107
  authentication: auth,
@@ -109,11 +109,28 @@ export const TRUSTED_RESOURCE_PLUGINS = {
109
109
  loadEnv,
110
110
  logging: harperLogger,
111
111
  dataLoader,
112
+ mcp: mcpComponent,
112
113
  /*
113
114
  static: ...
114
115
  login: ...
115
116
  */
116
117
  };
118
+ if (isMainThread) {
119
+ TRUSTED_RESOURCE_PLUGINS.operationsApi = require('../server/operationsServer');
120
+ // Built-in agent component (#626). Only loads if the root config carries an `agent:` block;
121
+ // the block's `enabled: false` default keeps it inert even when the key is present.
122
+ TRUSTED_RESOURCE_PLUGINS.agent = require('../agent/agent');
123
+ } else {
124
+ // The HTTP operations API itself only binds in the main thread, but worker threads still
125
+ // dispatch operations — most notably, the replication WebSocket handler in workers receives
126
+ // inter-node operations like `add_node_back` and calls `server.operation(...)`. That requires
127
+ // `server.operation` / `server.registerOperation` to be wired up here too, and the operation
128
+ // function map to be initialized, BEFORE component plugins (replication, etc.) load and call
129
+ // `server.registerOperation?.({...})` at their module top level. Requiring serverUtilities
130
+ // directly (rather than the full operationsServer) avoids binding the fastify HTTP layer in
131
+ // workers while still installing the dispatch machinery.
132
+ require('../server/serverHelpers/serverUtilities');
133
+ }
117
134
 
118
135
  for (const { name, packageIdentifier } of getEnvBuiltInComponents()) {
119
136
  TRUSTED_RESOURCE_PLUGINS[name] = packageIdentifier;
@@ -121,7 +138,6 @@ for (const { name, packageIdentifier } of getEnvBuiltInComponents()) {
121
138
 
122
139
  const BUILT_INS = Object.keys(TRUSTED_RESOURCE_PLUGINS);
123
140
 
124
- const portsStarted = [];
125
141
  export const loadedPaths = new Map();
126
142
  let errorReporter;
127
143
  export function setErrorReporter(reporter) {
@@ -304,6 +320,22 @@ export async function loadComponent(
304
320
  }
305
321
  applicationScope.config ??= config;
306
322
 
323
+ // For non-root components with empty/null config (e.g., comment-only YAML),
324
+ // don't synthesize DEFAULT_CONFIG. Empty config means the component has nothing
325
+ // to load; falling back to DEFAULT_CONFIG would cause OptionsWatcher to wait
326
+ // forever for plugins that the file doesn't actually declare.
327
+ if (isRoot) config ??= DEFAULT_CONFIG;
328
+ if (!config) {
329
+ // Empty/comment-only config file on a non-root component: nothing to load.
330
+ return undefined;
331
+ }
332
+
333
+ // #629 (Phase 2 of #510): populate the model-backend registry from the root
334
+ // config's `models:` block before any user `handleApplication(scope)` runs,
335
+ // so `scope.models.embed(...)` works from app-init code as well as Resource
336
+ // methods. Per-entry errors are logged and skipped by `bootstrapModels`.
337
+ if (isRoot) bootstrapModels(config);
338
+
307
339
  if (!isRoot) {
308
340
  try {
309
341
  await symlinkHarperModule(componentDirectory);
@@ -427,7 +459,14 @@ export async function loadComponent(
427
459
 
428
460
  // New Plugin API (`handleApplication`)
429
461
  if (resources.isWorker && extensionModule.handleApplication) {
430
- const scope = new Scope(appName || 'harper', componentName, componentDirectory, configPath, applicationScope);
462
+ const scope = new Scope(
463
+ appName || 'harper',
464
+ componentName,
465
+ componentDirectory,
466
+ configPath,
467
+ applicationScope,
468
+ origin
469
+ );
431
470
 
432
471
  onMessageByType(ITC_EVENT_TYPES.SHUTDOWN, () => scope.close());
433
472
 
@@ -465,22 +504,8 @@ export async function loadComponent(
465
504
  ...componentConfig,
466
505
  })) || extensionModule;
467
506
  if (isRoot && network) {
468
- for (const possiblePort of [port, securePort]) {
469
- try {
470
- if (+possiblePort && !portsStarted.includes(possiblePort)) {
471
- const sessionAffinity = env.get(CONFIG_PARAMS.HTTP_SESSIONAFFINITY);
472
- if (sessionAffinity)
473
- harperLogger.warn('Session affinity is not recommended and may cause memory leaks');
474
- if (sessionAffinity || !createReuseportFd) {
475
- // if there is a TCP port associated with the plugin, we set up the routing on the main thread for it
476
- portsStarted.push(possiblePort);
477
- startSocketServer(possiblePort, sessionAffinity);
478
- }
479
- }
480
- } catch (error) {
481
- console.error('Error listening on socket', possiblePort, error, componentName);
482
- }
483
- }
507
+ if (env.get(CONFIG_PARAMS.HTTP_SESSIONAFFINITY))
508
+ harperLogger.warn('Session affinity is not supported and will be ignored');
484
509
  }
485
510
  }
486
511
  if (resources.isWorker)
@@ -527,10 +552,16 @@ export async function loadComponent(
527
552
  }
528
553
 
529
554
  compName = parentCompName;
530
- // Auto restart threads on changes to any app folder. TODO: Make this configurable
531
555
  if (isMainThread && !watchesSetup && autoReload) {
532
- watchDir(componentDirectory, async () => {
533
- return loadComponentDirectories(); // return the promise
556
+ let debounceTimer: ReturnType<typeof setTimeout> | null = null;
557
+ subscribeToRestartRequests(() => {
558
+ if (debounceTimer) clearTimeout(debounceTimer);
559
+ debounceTimer = setTimeout(async () => {
560
+ debounceTimer = null;
561
+ resetRestartNeeded();
562
+ await loadComponentDirectories();
563
+ restartWorkers();
564
+ }, 500);
534
565
  });
535
566
  }
536
567
  if ((config.extensionModule || config.pluginModule) && (!isMainThread || config.runOnMainThread)) {
@@ -0,0 +1,161 @@
1
+ // Cross-thread deploy lifecycle events.
2
+ //
3
+ // Component deploys (extract + npm install) write into the component directory,
4
+ // which is exactly what every Scope's EntryHandler is watching. Without
5
+ // coordination this drives a restart-request storm — each file change fires
6
+ // scope.requestRestart(), which closes and recreates every component watcher
7
+ // through componentLoader, briefly doubling inotify-handle occupancy and
8
+ // occasionally exhausting the OS limit (harper#488).
9
+ //
10
+ // This module solves that by broadcasting a structured "deploy:start" /
11
+ // "deploy:end" signal to every Harper thread. Each thread's deploy emitter
12
+ // fires locally so Scopes (and any plugin subscribers) can react: Scopes close
13
+ // their EntryHandlers on start, recreate them on end. The result is that
14
+ // during a deploy, no watcher fires events for the deployed component, and
15
+ // after the deploy the recreated watcher emits one fresh add per current file
16
+ // — collapsed by the existing restart debounce into a single restart.
17
+ //
18
+ // State sharing across threads is intentionally narrow: the local Set of
19
+ // in-flight component names is rebuilt from the broadcast stream. Plugins that
20
+ // need to gate their own work on deploy progress import `deployLifecycle` and
21
+ // listen to the events directly.
22
+
23
+ import { EventEmitter } from 'node:events';
24
+ import { isMainThread } from 'node:worker_threads';
25
+ import { broadcast, broadcastWithAcknowledgement, onMessageByType } from '../server/threads/manageThreads.js';
26
+
27
+ const DEPLOY_LIFECYCLE_MSG = 'harper:deploy:lifecycle';
28
+
29
+ export type DeployPhase = 'start' | 'end';
30
+ export type DeployLifecycleEvent = { name: string; phase: DeployPhase };
31
+
32
+ type DeployLifecycleEventsMap = {
33
+ 'deploy:start': [componentName: string];
34
+ 'deploy:end': [componentName: string];
35
+ };
36
+
37
+ class DeployLifecycle extends EventEmitter<DeployLifecycleEventsMap> {
38
+ // Ref-counts in-flight deploys per component. Concurrent deploys of the
39
+ // same name (rare, but possible if an operator queues two before the first
40
+ // resolves) overlap: 0→1 fires deploy:start, 1→0 fires deploy:end. Any
41
+ // intermediate increment/decrement is silent so watchers aren't toggled
42
+ // out from under an active deploy by a peer ending early.
43
+ #inFlight = new Map<string, number>();
44
+
45
+ isDeployInFlight(componentName: string): boolean {
46
+ return (this.#inFlight.get(componentName) ?? 0) > 0;
47
+ }
48
+
49
+ // Process a deploy lifecycle event in-process. Called both from the
50
+ // broadcast receiver (for events originating on another thread) and from
51
+ // the broadcaster (so the originating thread also reacts locally).
52
+ _handle(event: DeployLifecycleEvent): void {
53
+ const current = this.#inFlight.get(event.name) ?? 0;
54
+ if (event.phase === 'start') {
55
+ this.#inFlight.set(event.name, current + 1);
56
+ if (current === 0) this.emit('deploy:start', event.name);
57
+ } else {
58
+ const next = Math.max(0, current - 1);
59
+ if (next === 0) {
60
+ this.#inFlight.delete(event.name);
61
+ if (current > 0) this.emit('deploy:end', event.name);
62
+ } else {
63
+ this.#inFlight.set(event.name, next);
64
+ }
65
+ }
66
+ }
67
+
68
+ // Test-only: clear in-flight state without firing events.
69
+ _clearForTests(): void {
70
+ this.#inFlight.clear();
71
+ }
72
+ }
73
+
74
+ export const deployLifecycle = new DeployLifecycle();
75
+
76
+ let receiverInstalled = false;
77
+ function ensureReceiver() {
78
+ if (receiverInstalled) return;
79
+ receiverInstalled = true;
80
+ onMessageByType(DEPLOY_LIFECYCLE_MSG, (msg: { type: string; event: DeployLifecycleEvent }) => {
81
+ deployLifecycle._handle(msg.event);
82
+ });
83
+ }
84
+
85
+ // Install the cross-thread receiver at module load. Receiving threads (workers)
86
+ // don't call the broadcast helpers themselves but must still react to deploy
87
+ // events originating on the main thread — without this, a deploy on main would
88
+ // suppress only the main thread's watchers and the worker watchers would keep
89
+ // firing restart storms (harper#488).
90
+ ensureReceiver();
91
+
92
+ /**
93
+ * Announce the start of a deploy for `componentName`. Awaits acknowledgement
94
+ * from every worker so the caller can rely on all watchers being suppressed
95
+ * before writing into the component directory.
96
+ *
97
+ * Ref-counted via DeployLifecycle so overlapping deploys of the same
98
+ * component compose correctly (each call must be paired with exactly one
99
+ * broadcastDeployEnd).
100
+ */
101
+ export async function broadcastDeployStart(componentName: string): Promise<void> {
102
+ ensureReceiver();
103
+ const event: DeployLifecycleEvent = { name: componentName, phase: 'start' };
104
+ deployLifecycle._handle(event); // local thread first
105
+ let timer: ReturnType<typeof setTimeout> | undefined;
106
+ try {
107
+ // broadcastWithAcknowledgement only resolves once every peer has processed
108
+ // the message, which is what we want before we start touching files. From
109
+ // a worker, this still reaches main + sibling workers; from main it reaches
110
+ // all workers.
111
+ //
112
+ // Race against a 5s timeout so an unresponsive worker can't hang the
113
+ // deploy indefinitely — the deploy is meant to be best-effort coordinated,
114
+ // not gated on every worker acknowledging.
115
+ const timeout = new Promise<void>((_resolve, reject) => {
116
+ timer = setTimeout(() => reject(new Error('Broadcast acknowledgement timed out')), 5000);
117
+ timer.unref?.();
118
+ });
119
+ await Promise.race([broadcastWithAcknowledgement({ type: DEPLOY_LIFECYCLE_MSG, event }), timeout]);
120
+ } catch (error) {
121
+ // A broadcast failure here is non-fatal: the deploy can still proceed,
122
+ // the worst case is a transient restart storm. Don't block the deploy.
123
+ // (Errors are already surfaced through the existing logger by manageThreads.)
124
+ void error;
125
+ } finally {
126
+ if (timer) clearTimeout(timer);
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Announce the end of a deploy for `componentName`. Fire-and-forget — the
132
+ * caller (the deploy operation) is done by this point and doesn't need to
133
+ * wait for every worker to reopen its watcher.
134
+ *
135
+ * Must be called exactly once per matching broadcastDeployStart, even if the
136
+ * deploy errored — typically from a `finally` block.
137
+ */
138
+ export function broadcastDeployEnd(componentName: string): void {
139
+ ensureReceiver();
140
+ const event: DeployLifecycleEvent = { name: componentName, phase: 'end' };
141
+ deployLifecycle._handle(event);
142
+ try {
143
+ void broadcast({ type: DEPLOY_LIFECYCLE_MSG, event }, false);
144
+ } catch (error) {
145
+ void error;
146
+ }
147
+ }
148
+
149
+ // Tests need to reset module state between cases. We deliberately do NOT reset
150
+ // `receiverInstalled`: manageThreads.onMessageByType has no deregistration API,
151
+ // so flipping the flag would let a subsequent ensureReceiver() pile a second
152
+ // listener and double-increment the refcount on every broadcast.
153
+ export function _resetForTests(): void {
154
+ deployLifecycle.removeAllListeners();
155
+ deployLifecycle._clearForTests();
156
+ }
157
+
158
+ // Marker so callers (e.g. Application.ts) can tell whether they're running in
159
+ // a context where broadcasting will reach peers — during startup before
160
+ // threads are wired up, broadcasts are no-ops but still safe to call.
161
+ export const supportsCrossThreadBroadcast = isMainThread;
@@ -0,0 +1,173 @@
1
+ 'use strict';
2
+
3
+ // Read-side operations against system.hdb_deployment.
4
+ // Write-side lives in deploymentRecorder.ts; this module only reads.
5
+
6
+ import { databases } from '../resources/databases.ts';
7
+ import * as terms from '../utility/hdbTerms.ts';
8
+ import { ClientError } from '../utility/errors/hdbError.ts';
9
+ import { getActiveEmitter } from './deploymentRecorder.ts';
10
+ import type { ProgressEmitter } from '../server/serverHelpers/progressEmitter.ts';
11
+
12
+ const DEPLOYMENT_TABLE = terms.SYSTEM_TABLE_NAMES.DEPLOYMENT_TABLE_NAME;
13
+ const TERMINAL_STATUSES = new Set(['success', 'failed', 'rolled_back']);
14
+
15
+ interface ListRequest {
16
+ project?: string;
17
+ status?: string;
18
+ since?: number;
19
+ until?: number;
20
+ limit?: number;
21
+ offset?: number;
22
+ }
23
+
24
+ interface GetRequest {
25
+ deployment_id: string;
26
+ // Set by serverHandlers.js when the client asks for `Accept: text/event-stream`.
27
+ progress?: ProgressEmitter;
28
+ }
29
+
30
+ function deploymentTable() {
31
+ const table = (databases as any).system?.[DEPLOYMENT_TABLE];
32
+ if (!table) {
33
+ throw new ClientError(
34
+ `Deployment tracking is not initialized on this node (system.${DEPLOYMENT_TABLE} missing). ` +
35
+ `Run upgrade or restart the server to provision the table.`
36
+ );
37
+ }
38
+ return table;
39
+ }
40
+
41
+ // Strip the blob attribute from a row; the bytes never travel over the operations API.
42
+ // A separate get_deployment_payload operation streams the raw bytes when callers need them.
43
+ function stripBlob(row: any): any {
44
+ if (!row || typeof row !== 'object') return row;
45
+ const { payload_blob, ...rest } = row;
46
+ rest.payload_blob_present = payload_blob != null;
47
+ return rest;
48
+ }
49
+
50
+ export async function handleListDeployments(req: ListRequest = {}): Promise<{ deployments: any[]; total: number }> {
51
+ const table = deploymentTable();
52
+ const conditions: any[] = [];
53
+ if (req.project) conditions.push({ attribute: 'project', value: req.project });
54
+ if (req.status) conditions.push({ attribute: 'status', value: req.status });
55
+ if (req.since != null)
56
+ conditions.push({ attribute: 'started_at', value: req.since, comparator: 'greater_than_equal' });
57
+ if (req.until != null) conditions.push({ attribute: 'started_at', value: req.until, comparator: 'less_than_equal' });
58
+
59
+ const collected: any[] = [];
60
+ for await (const row of table.search(conditions)) {
61
+ collected.push(stripBlob(row));
62
+ }
63
+ // Newest first by started_at; ties broken by deployment_id for stability.
64
+ collected.sort(
65
+ (a, b) => (b.started_at ?? 0) - (a.started_at ?? 0) || String(a.deployment_id).localeCompare(b.deployment_id)
66
+ );
67
+
68
+ const total = collected.length;
69
+ const offset = Math.max(0, req.offset ?? 0);
70
+ const limit = req.limit != null ? Math.max(0, req.limit) : collected.length;
71
+ return { deployments: collected.slice(offset, offset + limit), total };
72
+ }
73
+
74
+ export async function handleGetDeployment(req: GetRequest): Promise<any> {
75
+ if (!req || !req.deployment_id) {
76
+ throw new ClientError(`'deployment_id' is required`);
77
+ }
78
+ const table = deploymentTable();
79
+ const row = await table.get(req.deployment_id);
80
+ if (!row) {
81
+ throw new ClientError(`No deployment found with id '${req.deployment_id}'`);
82
+ }
83
+
84
+ // SSE content-negotiated branch — when serverHandlers.js detects
85
+ // `Accept: text/event-stream` it attaches a ProgressEmitter as req.progress and wraps
86
+ // our return as the operation's final SSE event. We replay event_log on connect, then
87
+ // tail the deployment's live emitter (if it's still running on this node) until it
88
+ // reaches a terminal status. The final return value becomes the SSE `done` event.
89
+ if (req.progress && typeof (req.progress as any).emit === 'function') {
90
+ const sse = req.progress;
91
+ const liveEmitter = getActiveEmitter(req.deployment_id);
92
+
93
+ // Subscribe FIRST, before reading the row, so any event the recorder emits between
94
+ // "now" and the moment we finish reading the historical log still lands. Buffer
95
+ // those live events; dedupe by recording the timestamp of the last replayed entry
96
+ // and skipping any live event whose timestamp is <= that. Forward everything else.
97
+ let lastReplayedTs = 0;
98
+ let resolveLive: (() => void) | null = null;
99
+ let liveDone = false;
100
+ const liveBuffer: Array<{ t: number; event: { event: string; data: unknown } }> = [];
101
+ const forwardLive = (e: { event: string; data: unknown }) => {
102
+ sse.emit(e.event, e.data);
103
+ // A terminal signal — either explicit success/error event from the lifecycle, or
104
+ // the recorder's `_recorder_finished` sentinel emitted before it unsubscribes.
105
+ const isTerminalEvent =
106
+ e.event === '_recorder_finished' ||
107
+ e.event === 'error' ||
108
+ (e.event === 'phase' &&
109
+ e.data &&
110
+ typeof e.data === 'object' &&
111
+ (e.data as { phase?: string }).phase === 'success');
112
+ if (isTerminalEvent && !liveDone) {
113
+ liveDone = true;
114
+ resolveLive?.();
115
+ }
116
+ };
117
+ const unsubscribe = liveEmitter
118
+ ? liveEmitter.subscribe((event) => {
119
+ const t = Date.now();
120
+ if (resolveLive) {
121
+ // Replay phase finished; we own the live forward path now.
122
+ if (t > lastReplayedTs) forwardLive(event);
123
+ } else {
124
+ // Still replaying; stash for dedup-and-forward once replay completes.
125
+ liveBuffer.push({ t, event });
126
+ }
127
+ })
128
+ : null;
129
+
130
+ try {
131
+ for (const entry of row.event_log ?? []) {
132
+ sse.emit(entry.event, entry.data);
133
+ if (typeof entry.t === 'number') lastReplayedTs = Math.max(lastReplayedTs, entry.t);
134
+ }
135
+
136
+ if (liveEmitter && !TERMINAL_STATUSES.has(row.status)) {
137
+ await new Promise<void>((resolve) => {
138
+ resolveLive = resolve;
139
+ // Flush anything that arrived during replay, filtering to events the replay missed.
140
+ for (const buffered of liveBuffer) {
141
+ if (buffered.t > lastReplayedTs) forwardLive(buffered.event);
142
+ }
143
+ if (liveDone) resolve();
144
+ // Safety net — if the in-memory emitter is dropped (recorder finished or
145
+ // the process recycled) before signaling, poll the row's status as a
146
+ // fallback so the client never hangs indefinitely.
147
+ const pollTimer = setInterval(async () => {
148
+ if (liveDone) {
149
+ clearInterval(pollTimer);
150
+ return;
151
+ }
152
+ const live = getActiveEmitter(req.deployment_id);
153
+ if (!live || live !== liveEmitter) {
154
+ clearInterval(pollTimer);
155
+ const latest = await table.get(req.deployment_id);
156
+ if (latest && TERMINAL_STATUSES.has(latest.status) && !liveDone) {
157
+ liveDone = true;
158
+ resolve();
159
+ }
160
+ }
161
+ }, 500);
162
+ });
163
+ }
164
+ // Re-read the row so the final SSE payload reflects the post-deploy state.
165
+ const finalRow = await table.get(req.deployment_id);
166
+ return stripBlob(finalRow ?? row);
167
+ } finally {
168
+ unsubscribe?.();
169
+ }
170
+ }
171
+
172
+ return stripBlob(row);
173
+ }