@laserdata/laser-sdk 0.0.1-rc.1 → 0.0.1-rc.3

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 (434) hide show
  1. package/README.md +106 -82
  2. package/dist/agent/agdx.d.ts +55 -0
  3. package/dist/agent/agdx.d.ts.map +1 -0
  4. package/dist/agent/agdx.js +447 -0
  5. package/dist/agent/agdx.js.map +1 -0
  6. package/dist/agent/assembler.d.ts +29 -0
  7. package/dist/agent/assembler.d.ts.map +1 -0
  8. package/dist/agent/assembler.js +69 -0
  9. package/dist/agent/assembler.js.map +1 -0
  10. package/dist/agent/builder.d.ts +114 -0
  11. package/dist/agent/builder.d.ts.map +1 -0
  12. package/dist/agent/builder.js +334 -0
  13. package/dist/agent/builder.js.map +1 -0
  14. package/dist/agent/context.d.ts +68 -0
  15. package/dist/agent/context.d.ts.map +1 -0
  16. package/dist/agent/context.js +212 -0
  17. package/dist/agent/context.js.map +1 -0
  18. package/dist/agent/contract.d.ts +70 -0
  19. package/dist/agent/contract.d.ts.map +1 -0
  20. package/dist/agent/contract.js +268 -0
  21. package/dist/agent/contract.js.map +1 -0
  22. package/dist/agent/registry.d.ts +76 -0
  23. package/dist/agent/registry.d.ts.map +1 -0
  24. package/dist/agent/registry.js +286 -0
  25. package/dist/agent/registry.js.map +1 -0
  26. package/dist/agent/reliable-consumer.d.ts +126 -0
  27. package/dist/agent/reliable-consumer.d.ts.map +1 -0
  28. package/dist/agent/reliable-consumer.js +551 -0
  29. package/dist/agent/reliable-consumer.js.map +1 -0
  30. package/dist/agent/replies.d.ts +28 -0
  31. package/dist/agent/replies.d.ts.map +1 -0
  32. package/dist/agent/replies.js +175 -0
  33. package/dist/agent/replies.js.map +1 -0
  34. package/dist/agent/router.d.ts +72 -0
  35. package/dist/agent/router.d.ts.map +1 -0
  36. package/dist/agent/router.js +172 -0
  37. package/dist/agent/router.js.map +1 -0
  38. package/dist/agent/scope.d.ts +16 -0
  39. package/dist/agent/scope.d.ts.map +1 -0
  40. package/dist/agent/scope.js +34 -0
  41. package/dist/agent/scope.js.map +1 -0
  42. package/dist/agent/workflow.d.ts +85 -0
  43. package/dist/agent/workflow.d.ts.map +1 -0
  44. package/dist/agent/workflow.js +416 -0
  45. package/dist/agent/workflow.js.map +1 -0
  46. package/dist/blob.d.ts +12 -0
  47. package/dist/blob.d.ts.map +1 -0
  48. package/dist/blob.js +34 -0
  49. package/dist/blob.js.map +1 -0
  50. package/dist/bridges/a2a.d.ts +89 -0
  51. package/dist/bridges/a2a.d.ts.map +1 -0
  52. package/dist/bridges/a2a.js +244 -0
  53. package/dist/bridges/a2a.js.map +1 -0
  54. package/dist/bridges/agui.d.ts +66 -0
  55. package/dist/bridges/agui.d.ts.map +1 -0
  56. package/dist/bridges/agui.js +335 -0
  57. package/dist/bridges/agui.js.map +1 -0
  58. package/dist/bridges/edge-auth.d.ts +16 -0
  59. package/dist/bridges/edge-auth.d.ts.map +1 -0
  60. package/dist/bridges/edge-auth.js +19 -0
  61. package/dist/bridges/edge-auth.js.map +1 -0
  62. package/dist/bridges/hops.d.ts +9 -0
  63. package/dist/bridges/hops.d.ts.map +1 -0
  64. package/dist/bridges/hops.js +16 -0
  65. package/dist/bridges/hops.js.map +1 -0
  66. package/dist/bridges/mcp.d.ts +79 -0
  67. package/dist/bridges/mcp.d.ts.map +1 -0
  68. package/dist/bridges/mcp.js +248 -0
  69. package/dist/bridges/mcp.js.map +1 -0
  70. package/dist/client/bytes.d.ts +3 -0
  71. package/dist/client/bytes.d.ts.map +1 -0
  72. package/dist/client/bytes.js +9 -0
  73. package/dist/client/bytes.js.map +1 -0
  74. package/dist/client/capabilities.d.ts +36 -0
  75. package/dist/client/capabilities.d.ts.map +1 -0
  76. package/dist/client/capabilities.js +91 -0
  77. package/dist/client/capabilities.js.map +1 -0
  78. package/dist/client/errors.d.ts +178 -0
  79. package/dist/client/errors.d.ts.map +1 -0
  80. package/dist/client/errors.js +192 -0
  81. package/dist/client/errors.js.map +1 -0
  82. package/dist/client/internals.d.ts +5 -0
  83. package/dist/client/internals.d.ts.map +1 -0
  84. package/dist/client/internals.js +5 -0
  85. package/dist/client/internals.js.map +1 -0
  86. package/dist/client/laser.d.ts +238 -0
  87. package/dist/client/laser.d.ts.map +1 -0
  88. package/dist/client/laser.js +831 -0
  89. package/dist/client/laser.js.map +1 -0
  90. package/dist/client/laserdata-ca.d.ts +2 -0
  91. package/dist/client/laserdata-ca.d.ts.map +1 -0
  92. package/dist/client/laserdata-ca.js +35 -0
  93. package/dist/client/laserdata-ca.js.map +1 -0
  94. package/dist/client/managed.d.ts +6 -0
  95. package/dist/client/managed.d.ts.map +1 -0
  96. package/dist/client/managed.js +19 -0
  97. package/dist/client/managed.js.map +1 -0
  98. package/dist/context-scope.d.ts +40 -0
  99. package/dist/context-scope.d.ts.map +1 -0
  100. package/dist/context-scope.js +73 -0
  101. package/dist/context-scope.js.map +1 -0
  102. package/dist/context.d.ts +64 -0
  103. package/dist/context.d.ts.map +1 -0
  104. package/dist/context.js +149 -0
  105. package/dist/context.js.map +1 -0
  106. package/dist/conversation-state.d.ts +24 -0
  107. package/dist/conversation-state.d.ts.map +1 -0
  108. package/dist/conversation-state.js +29 -0
  109. package/dist/conversation-state.js.map +1 -0
  110. package/dist/crash-context.d.ts +11 -0
  111. package/dist/crash-context.d.ts.map +1 -0
  112. package/dist/crash-context.js +62 -0
  113. package/dist/crash-context.js.map +1 -0
  114. package/dist/full.d.ts +3 -0
  115. package/dist/full.d.ts.map +1 -0
  116. package/dist/full.js +3 -0
  117. package/dist/full.js.map +1 -0
  118. package/dist/govern.d.ts +133 -0
  119. package/dist/govern.d.ts.map +1 -0
  120. package/dist/govern.js +347 -0
  121. package/dist/govern.js.map +1 -0
  122. package/dist/iggy/apache-iggy.d.ts +168 -0
  123. package/dist/iggy/apache-iggy.d.ts.map +1 -0
  124. package/dist/iggy/apache-iggy.js +528 -0
  125. package/dist/iggy/apache-iggy.js.map +1 -0
  126. package/dist/index.d.ts +121 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +64 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/intent.d.ts +75 -0
  131. package/dist/intent.d.ts.map +1 -0
  132. package/dist/intent.js +195 -0
  133. package/dist/intent.js.map +1 -0
  134. package/dist/managed/batch.d.ts +5 -0
  135. package/dist/managed/batch.d.ts.map +1 -0
  136. package/dist/managed/batch.js +32 -0
  137. package/dist/managed/batch.js.map +1 -0
  138. package/dist/managed/forks.d.ts +72 -0
  139. package/dist/managed/forks.d.ts.map +1 -0
  140. package/dist/managed/forks.js +188 -0
  141. package/dist/managed/forks.js.map +1 -0
  142. package/dist/managed/graph.d.ts +58 -0
  143. package/dist/managed/graph.d.ts.map +1 -0
  144. package/dist/managed/graph.js +176 -0
  145. package/dist/managed/graph.js.map +1 -0
  146. package/dist/managed/kv.d.ts +144 -0
  147. package/dist/managed/kv.d.ts.map +1 -0
  148. package/dist/managed/kv.js +502 -0
  149. package/dist/managed/kv.js.map +1 -0
  150. package/dist/managed/projections.d.ts +61 -0
  151. package/dist/managed/projections.d.ts.map +1 -0
  152. package/dist/managed/projections.js +191 -0
  153. package/dist/managed/projections.js.map +1 -0
  154. package/dist/managed/query.d.ts +72 -0
  155. package/dist/managed/query.d.ts.map +1 -0
  156. package/dist/managed/query.js +287 -0
  157. package/dist/managed/query.js.map +1 -0
  158. package/dist/managed/rbac.d.ts +16 -0
  159. package/dist/managed/rbac.d.ts.map +1 -0
  160. package/dist/managed/rbac.js +74 -0
  161. package/dist/managed/rbac.js.map +1 -0
  162. package/dist/managed/runs.d.ts +40 -0
  163. package/dist/managed/runs.d.ts.map +1 -0
  164. package/dist/managed/runs.js +112 -0
  165. package/dist/managed/runs.js.map +1 -0
  166. package/dist/managed/watch.d.ts +21 -0
  167. package/dist/managed/watch.d.ts.map +1 -0
  168. package/dist/managed/watch.js +73 -0
  169. package/dist/managed/watch.js.map +1 -0
  170. package/dist/memory/handle.d.ts +77 -0
  171. package/dist/memory/handle.d.ts.map +1 -0
  172. package/dist/memory/handle.js +234 -0
  173. package/dist/memory/handle.js.map +1 -0
  174. package/dist/memory/log-memory.d.ts +38 -0
  175. package/dist/memory/log-memory.d.ts.map +1 -0
  176. package/dist/memory/log-memory.js +309 -0
  177. package/dist/memory/log-memory.js.map +1 -0
  178. package/dist/memory/topic.d.ts +22 -0
  179. package/dist/memory/topic.d.ts.map +1 -0
  180. package/dist/memory/topic.js +56 -0
  181. package/dist/memory/topic.js.map +1 -0
  182. package/dist/memory/types.d.ts +108 -0
  183. package/dist/memory/types.d.ts.map +1 -0
  184. package/dist/memory/types.js +127 -0
  185. package/dist/memory/types.js.map +1 -0
  186. package/dist/memory/vector-memory.d.ts +20 -0
  187. package/dist/memory/vector-memory.d.ts.map +1 -0
  188. package/dist/memory/vector-memory.js +193 -0
  189. package/dist/memory/vector-memory.js.map +1 -0
  190. package/dist/memory.d.ts +7 -0
  191. package/dist/memory.d.ts.map +1 -0
  192. package/dist/memory.js +6 -0
  193. package/dist/memory.js.map +1 -0
  194. package/dist/observe.d.ts +10 -0
  195. package/dist/observe.d.ts.map +1 -0
  196. package/dist/observe.js +5 -0
  197. package/dist/observe.js.map +1 -0
  198. package/dist/opentelemetry.d.ts +22 -0
  199. package/dist/opentelemetry.d.ts.map +1 -0
  200. package/dist/opentelemetry.js +38 -0
  201. package/dist/opentelemetry.js.map +1 -0
  202. package/dist/provenance/agent-topic.d.ts +14 -0
  203. package/dist/provenance/agent-topic.d.ts.map +1 -0
  204. package/dist/provenance/agent-topic.js +13 -0
  205. package/dist/provenance/agent-topic.js.map +1 -0
  206. package/dist/provenance/provenance.d.ts +24 -0
  207. package/dist/provenance/provenance.d.ts.map +1 -0
  208. package/dist/provenance/provenance.js +186 -0
  209. package/dist/provenance/provenance.js.map +1 -0
  210. package/dist/provenance/session-policy.d.ts +4 -0
  211. package/dist/provenance/session-policy.d.ts.map +1 -0
  212. package/dist/provenance/session-policy.js +5 -0
  213. package/dist/provenance/session-policy.js.map +1 -0
  214. package/dist/runtime/async-once.d.ts +6 -0
  215. package/dist/runtime/async-once.d.ts.map +1 -0
  216. package/dist/runtime/async-once.js +19 -0
  217. package/dist/runtime/async-once.js.map +1 -0
  218. package/dist/runtime/clock.d.ts +14 -0
  219. package/dist/runtime/clock.d.ts.map +1 -0
  220. package/dist/runtime/clock.js +21 -0
  221. package/dist/runtime/clock.js.map +1 -0
  222. package/dist/runtime/mutex.d.ts +5 -0
  223. package/dist/runtime/mutex.d.ts.map +1 -0
  224. package/dist/runtime/mutex.js +23 -0
  225. package/dist/runtime/mutex.js.map +1 -0
  226. package/dist/runtime/ulid.d.ts +7 -0
  227. package/dist/runtime/ulid.d.ts.map +1 -0
  228. package/dist/runtime/ulid.js +17 -0
  229. package/dist/runtime/ulid.js.map +1 -0
  230. package/dist/schema-codecs.d.ts +16 -0
  231. package/dist/schema-codecs.d.ts.map +1 -0
  232. package/dist/schema-codecs.js +174 -0
  233. package/dist/schema-codecs.js.map +1 -0
  234. package/dist/signing.d.ts +63 -0
  235. package/dist/signing.d.ts.map +1 -0
  236. package/dist/signing.js +288 -0
  237. package/dist/signing.js.map +1 -0
  238. package/dist/snapshot.d.ts +24 -0
  239. package/dist/snapshot.d.ts.map +1 -0
  240. package/dist/snapshot.js +80 -0
  241. package/dist/snapshot.js.map +1 -0
  242. package/dist/state-store.d.ts +20 -0
  243. package/dist/state-store.d.ts.map +1 -0
  244. package/dist/state-store.js +70 -0
  245. package/dist/state-store.js.map +1 -0
  246. package/dist/stream/codecs.d.ts +9 -0
  247. package/dist/stream/codecs.d.ts.map +1 -0
  248. package/dist/stream/codecs.js +83 -0
  249. package/dist/stream/codecs.js.map +1 -0
  250. package/dist/stream/consumer.d.ts +50 -0
  251. package/dist/stream/consumer.d.ts.map +1 -0
  252. package/dist/stream/consumer.js +145 -0
  253. package/dist/stream/consumer.js.map +1 -0
  254. package/dist/stream/cursor.d.ts +26 -0
  255. package/dist/stream/cursor.d.ts.map +1 -0
  256. package/dist/stream/cursor.js +83 -0
  257. package/dist/stream/cursor.js.map +1 -0
  258. package/dist/stream/header-value.d.ts +18 -0
  259. package/dist/stream/header-value.d.ts.map +1 -0
  260. package/dist/stream/header-value.js +70 -0
  261. package/dist/stream/header-value.js.map +1 -0
  262. package/dist/stream/polling-strategy.d.ts +14 -0
  263. package/dist/stream/polling-strategy.d.ts.map +1 -0
  264. package/dist/stream/polling-strategy.js +2 -0
  265. package/dist/stream/polling-strategy.js.map +1 -0
  266. package/dist/stream/producer.d.ts +44 -0
  267. package/dist/stream/producer.d.ts.map +1 -0
  268. package/dist/stream/producer.js +125 -0
  269. package/dist/stream/producer.js.map +1 -0
  270. package/dist/stream/publish.d.ts +83 -0
  271. package/dist/stream/publish.d.ts.map +1 -0
  272. package/dist/stream/publish.js +287 -0
  273. package/dist/stream/publish.js.map +1 -0
  274. package/dist/stream/record.d.ts +29 -0
  275. package/dist/stream/record.d.ts.map +1 -0
  276. package/dist/stream/record.js +152 -0
  277. package/dist/stream/record.js.map +1 -0
  278. package/dist/stream/routing.d.ts +10 -0
  279. package/dist/stream/routing.d.ts.map +1 -0
  280. package/dist/stream/routing.js +2 -0
  281. package/dist/stream/routing.js.map +1 -0
  282. package/dist/stream/stream.d.ts +14 -0
  283. package/dist/stream/stream.d.ts.map +1 -0
  284. package/dist/stream/stream.js +26 -0
  285. package/dist/stream/stream.js.map +1 -0
  286. package/dist/stream/topic.d.ts +52 -0
  287. package/dist/stream/topic.d.ts.map +1 -0
  288. package/dist/stream/topic.js +181 -0
  289. package/dist/stream/topic.js.map +1 -0
  290. package/dist/stream/typed-topic.d.ts +59 -0
  291. package/dist/stream/typed-topic.d.ts.map +1 -0
  292. package/dist/stream/typed-topic.js +119 -0
  293. package/dist/stream/typed-topic.js.map +1 -0
  294. package/dist/swarm.d.ts +16 -0
  295. package/dist/swarm.d.ts.map +1 -0
  296. package/dist/swarm.js +40 -0
  297. package/dist/swarm.js.map +1 -0
  298. package/dist/testing.d.ts +16 -0
  299. package/dist/testing.d.ts.map +1 -0
  300. package/dist/testing.js +19 -0
  301. package/dist/testing.js.map +1 -0
  302. package/dist/types/ids.d.ts +48 -0
  303. package/dist/types/ids.d.ts.map +1 -0
  304. package/dist/types/ids.js +161 -0
  305. package/dist/types/ids.js.map +1 -0
  306. package/dist/wire/agent-record.d.ts +24 -0
  307. package/dist/wire/agent-record.d.ts.map +1 -0
  308. package/dist/wire/agent-record.js +99 -0
  309. package/dist/wire/agent-record.js.map +1 -0
  310. package/dist/wire/agent-workflow.d.ts +118 -0
  311. package/dist/wire/agent-workflow.d.ts.map +1 -0
  312. package/dist/wire/agent-workflow.js +290 -0
  313. package/dist/wire/agent-workflow.js.map +1 -0
  314. package/dist/wire/agent.d.ts +255 -0
  315. package/dist/wire/agent.d.ts.map +1 -0
  316. package/dist/wire/agent.js +792 -0
  317. package/dist/wire/agent.js.map +1 -0
  318. package/dist/wire/authz.d.ts +183 -0
  319. package/dist/wire/authz.d.ts.map +1 -0
  320. package/dist/wire/authz.js +527 -0
  321. package/dist/wire/authz.js.map +1 -0
  322. package/dist/wire/batch.d.ts +17 -0
  323. package/dist/wire/batch.d.ts.map +1 -0
  324. package/dist/wire/batch.js +41 -0
  325. package/dist/wire/batch.js.map +1 -0
  326. package/dist/wire/browse.d.ts +96 -0
  327. package/dist/wire/browse.d.ts.map +1 -0
  328. package/dist/wire/browse.js +201 -0
  329. package/dist/wire/browse.js.map +1 -0
  330. package/dist/wire/cbor.d.ts +35 -0
  331. package/dist/wire/cbor.d.ts.map +1 -0
  332. package/dist/wire/cbor.js +231 -0
  333. package/dist/wire/cbor.js.map +1 -0
  334. package/dist/wire/change.d.ts +12 -0
  335. package/dist/wire/change.d.ts.map +1 -0
  336. package/dist/wire/change.js +22 -0
  337. package/dist/wire/change.js.map +1 -0
  338. package/dist/wire/clients.d.ts +27 -0
  339. package/dist/wire/clients.d.ts.map +1 -0
  340. package/dist/wire/clients.js +64 -0
  341. package/dist/wire/clients.js.map +1 -0
  342. package/dist/wire/codes.d.ts +67 -0
  343. package/dist/wire/codes.d.ts.map +1 -0
  344. package/dist/wire/codes.js +67 -0
  345. package/dist/wire/codes.js.map +1 -0
  346. package/dist/wire/commands.d.ts +68 -0
  347. package/dist/wire/commands.d.ts.map +1 -0
  348. package/dist/wire/commands.js +140 -0
  349. package/dist/wire/commands.js.map +1 -0
  350. package/dist/wire/content.d.ts +17 -0
  351. package/dist/wire/content.d.ts.map +1 -0
  352. package/dist/wire/content.js +47 -0
  353. package/dist/wire/content.js.map +1 -0
  354. package/dist/wire/control.d.ts +170 -0
  355. package/dist/wire/control.d.ts.map +1 -0
  356. package/dist/wire/control.js +453 -0
  357. package/dist/wire/control.js.map +1 -0
  358. package/dist/wire/fork.d.ts +112 -0
  359. package/dist/wire/fork.d.ts.map +1 -0
  360. package/dist/wire/fork.js +280 -0
  361. package/dist/wire/fork.js.map +1 -0
  362. package/dist/wire/forward.d.ts +23 -0
  363. package/dist/wire/forward.d.ts.map +1 -0
  364. package/dist/wire/forward.js +72 -0
  365. package/dist/wire/forward.js.map +1 -0
  366. package/dist/wire/graph.d.ts +181 -0
  367. package/dist/wire/graph.d.ts.map +1 -0
  368. package/dist/wire/graph.js +554 -0
  369. package/dist/wire/graph.js.map +1 -0
  370. package/dist/wire/hashing.d.ts +2 -0
  371. package/dist/wire/hashing.d.ts.map +1 -0
  372. package/dist/wire/hashing.js +21 -0
  373. package/dist/wire/hashing.js.map +1 -0
  374. package/dist/wire/headers.d.ts +32 -0
  375. package/dist/wire/headers.d.ts.map +1 -0
  376. package/dist/wire/headers.js +32 -0
  377. package/dist/wire/headers.js.map +1 -0
  378. package/dist/wire/hello.d.ts +50 -0
  379. package/dist/wire/hello.d.ts.map +1 -0
  380. package/dist/wire/hello.js +122 -0
  381. package/dist/wire/hello.js.map +1 -0
  382. package/dist/wire/http.d.ts +95 -0
  383. package/dist/wire/http.d.ts.map +1 -0
  384. package/dist/wire/http.js +282 -0
  385. package/dist/wire/http.js.map +1 -0
  386. package/dist/wire/ids.d.ts +50 -0
  387. package/dist/wire/ids.d.ts.map +1 -0
  388. package/dist/wire/ids.js +198 -0
  389. package/dist/wire/ids.js.map +1 -0
  390. package/dist/wire/index.d.ts +32 -0
  391. package/dist/wire/index.d.ts.map +1 -0
  392. package/dist/wire/index.js +32 -0
  393. package/dist/wire/index.js.map +1 -0
  394. package/dist/wire/kv.d.ts +260 -0
  395. package/dist/wire/kv.d.ts.map +1 -0
  396. package/dist/wire/kv.js +650 -0
  397. package/dist/wire/kv.js.map +1 -0
  398. package/dist/wire/limits.d.ts +36 -0
  399. package/dist/wire/limits.d.ts.map +1 -0
  400. package/dist/wire/limits.js +36 -0
  401. package/dist/wire/limits.js.map +1 -0
  402. package/dist/wire/memory.d.ts +17 -0
  403. package/dist/wire/memory.d.ts.map +1 -0
  404. package/dist/wire/memory.js +65 -0
  405. package/dist/wire/memory.js.map +1 -0
  406. package/dist/wire/mutation.d.ts +10 -0
  407. package/dist/wire/mutation.d.ts.map +1 -0
  408. package/dist/wire/mutation.js +18 -0
  409. package/dist/wire/mutation.js.map +1 -0
  410. package/dist/wire/query.d.ts +210 -0
  411. package/dist/wire/query.d.ts.map +1 -0
  412. package/dist/wire/query.js +594 -0
  413. package/dist/wire/query.js.map +1 -0
  414. package/dist/wire/result.d.ts +25 -0
  415. package/dist/wire/result.d.ts.map +1 -0
  416. package/dist/wire/result.js +52 -0
  417. package/dist/wire/result.js.map +1 -0
  418. package/dist/wire/snapshot.d.ts +11 -0
  419. package/dist/wire/snapshot.d.ts.map +1 -0
  420. package/dist/wire/snapshot.js +50 -0
  421. package/dist/wire/snapshot.js.map +1 -0
  422. package/dist/wire/topics.d.ts +5 -0
  423. package/dist/wire/topics.d.ts.map +1 -0
  424. package/dist/wire/topics.js +5 -0
  425. package/dist/wire/topics.js.map +1 -0
  426. package/dist/wire/topology.d.ts +24 -0
  427. package/dist/wire/topology.d.ts.map +1 -0
  428. package/dist/wire/topology.js +56 -0
  429. package/dist/wire/topology.js.map +1 -0
  430. package/dist/wire/value.d.ts +21 -0
  431. package/dist/wire/value.d.ts.map +1 -0
  432. package/dist/wire/value.js +40 -0
  433. package/dist/wire/value.js.map +1 -0
  434. package/package.json +4 -3
package/README.md CHANGED
@@ -1,11 +1,10 @@
1
1
  # Laser SDK for TypeScript
2
2
 
3
- The native TypeScript client for LaserData over Apache Iggy. It provides typed
4
- streaming, declared projections and query, key-value state, copy-on-write
5
- forks, a knowledge graph, and an optional agent runtime over one connection.
3
+ The native TypeScript client for LaserData over Apache Iggy. It provides typed streaming, declared projections and query, key-value state, copy-on-write forks, a knowledge graph, and an optional agent runtime over one connection.
6
4
 
7
- This prerelease targets Node 22.14 or later. Bun, Deno, and browsers are not
8
- supported because the Apache Iggy transport uses Node TCP and TLS APIs.
5
+ This prerelease targets Node 22.14 or later. Bun, Deno, and browsers are not supported because the Apache Iggy transport uses Node TCP and TLS APIs.
6
+
7
+ > **Prerelease (`0.0.1-rc.3`).** Pin an exact version while the public API and wire contract are still in release-candidate development.
9
8
 
10
9
  ## Install
11
10
 
@@ -13,13 +12,48 @@ supported because the Apache Iggy transport uses Node TCP and TLS APIs.
13
12
  npm install @laserdata/laser-sdk
14
13
  ```
15
14
 
16
- The package is ESM-first. A CommonJS application can load it with dynamic
17
- `import()`.
15
+ The package is ESM-first. A CommonJS application can load it with dynamic `import()`.
18
16
 
19
17
  ## Connect and stream
20
18
 
21
19
  ```ts
22
- import { Laser, jsonCodec } from "@laserdata/laser-sdk"
20
+ import { Laser } from "@laserdata/laser-sdk"
21
+
22
+ await using laser = await Laser.connect(
23
+ process.env.LASER_CONNECTION_STRING ?? "iggy:iggy@127.0.0.1:8090"
24
+ )
25
+ const topic = laser.stream("commerce").topic("orders")
26
+ await topic.ensure(4)
27
+ await topic.publish().json({ id: "order-1", total: 42 }).send()
28
+
29
+ const records = await (await topic.replay()).poll()
30
+ console.log(`read ${records.length} order(s)`)
31
+ ```
32
+
33
+ Use the bare `user:password@host:port` connection string. The SDK supplies the Apache Iggy TCP scheme internally. One connection addresses every stream on the server. Select a stream explicitly with `laser.stream(name)`, then a topic with `.topic(name)`. `Laser.connectWithStream()` only pins a default stream so `laser.topic(name)` can be used as a shortcut. It does not limit the connection to that stream. `Laser.connectEnv()` reads `LASER_CONNECTION_STRING` and the optional `LASER_STREAM`. `Laser.local()` targets the default local server. `Laser.builder()` accepts a connection string, an address and credentials, or an injected Apache Iggy client with explicit owned or borrowed lifetime.
34
+
35
+ Owned connections retry the initial handshake and reconnect after a dropped socket, with unlimited retries at one-second intervals by default. Set `reconnection_retries` to a non-negative integer and `reconnection_interval` to `250ms`, `1s`, or `1m` in the connection string to tune the policy. Laser owns this loop because the upstream Node reconnect path can leave its connect promise pending. An injected client remains under its caller's lifecycle and reconnect policy.
36
+
37
+ LaserData Cloud hostnames automatically use TLS with the public LaserData root CA embedded in the package. `LASER_TLS_CERT` selects another CA file and `LASER_NO_TLS` disables automatic TLS. Other hosts keep the connection string's TLS settings unchanged.
38
+
39
+ ## Streaming model
40
+
41
+ `laser.stream(name).topic(name)` addresses any stream. `laser.topic(name)` is the default-stream shortcut. Topics support:
42
+
43
+ - raw, JSON, CBOR, MessagePack, Avro, Protobuf, and JSON Schema records
44
+ - exact headers, metadata, indexes, projection and schema IDs, inline payload, claim-check, routing keys, explicit partitions, and heterogeneous batches
45
+ - direct producers with bounded retry and explicit batching
46
+ - standalone and consumer-group readers with first, last, next, offset, or timestamp starts
47
+ - automatic or explicit offset commits, replay, cancellation, and bounded `nextWithin()` waits
48
+
49
+ Delivery is at least once. Ordering is per selected partition. A handler should make external effects idempotent, or use the fenced managed coordination path when a monotonic holder token is required.
50
+
51
+ ## Runtime-checked records
52
+
53
+ TypeScript types disappear at runtime. A typed topic therefore takes an explicit codec that validates decoded values instead of pretending a generic parameter can validate bytes.
54
+
55
+ ```ts
56
+ import { jsonCodec } from "@laserdata/laser-sdk"
23
57
 
24
58
  interface Order {
25
59
  readonly id: string
@@ -27,118 +61,108 @@ interface Order {
27
61
  }
28
62
 
29
63
  const orderCodec = jsonCodec<Order>((value) => {
30
- if (typeof value !== "object" || value === null) throw new Error("order must be an object")
64
+ if (typeof value !== "object" || value === null) throw new TypeError("order must be an object")
31
65
  const order = value as Record<string, unknown>
32
66
  if (typeof order.id !== "string" || typeof order.total !== "number") {
33
- throw new Error("order has invalid fields")
67
+ throw new TypeError("order fields are invalid")
34
68
  }
35
69
  return { id: order.id, total: order.total }
36
70
  })
37
71
 
38
- const laser = await Laser.connectWithStream(
39
- process.env.LASER_CONNECTION_STRING ?? "iggy://iggy:iggy@127.0.0.1:8090",
40
- "commerce"
41
- )
42
-
43
- try {
44
- const topic = laser.topic("orders")
45
- await topic.ensure(4)
46
- await topic.publish().json({ id: "order-1", total: 42 }, orderCodec).send()
72
+ const orders = laser.stream("commerce").topic("orders").json(orderCodec)
73
+ await orders.publish({ id: "order-1", total: 42 })
47
74
 
48
- const record = await topic.json(orderCodec).records("orders-export").nextWithin(1_000)
49
- console.log(record?.value)
50
- } finally {
51
- await laser.close()
52
- }
75
+ const reader = await orders.records("orders-export")
76
+ const record = await reader.nextWithin(1_000)
77
+ console.log(record?.value)
53
78
  ```
54
79
 
55
- Use `Laser.connect()` when no default stream is needed, `Laser.connectEnv()`
56
- for `LASER_CONNECTION_STRING` and `LASER_STREAM`, or `Laser.local()` for the
57
- default local server. `Laser.builder()` accepts a connection string, an address
58
- and credentials, or an injected Apache Iggy client with explicit owned or
59
- borrowed lifetime.
80
+ Registered Avro, Protobuf, and JSON Schema topics compile the writer schema once, validate before transport I/O, stamp its schema ID, and decode through the same schema on reads.
60
81
 
61
- LaserData Cloud hostnames automatically use TLS with the public LaserData root
62
- CA embedded in the package. `LASER_TLS_CERT` selects another CA file and
63
- `LASER_NO_TLS` disables automatic TLS. Other hosts keep the connection string's
64
- TLS settings unchanged.
82
+ ## Managed data surfaces
65
83
 
66
- ## Streaming model
84
+ LaserData Cloud announces its capabilities during connection setup. Stock Apache Iggy serves streaming and returns `UnsupportedError` for managed calls. The same client code can feature-detect through `laser.capabilities()`.
67
85
 
68
- `laser.stream(name).topic(name)` addresses any stream. `laser.topic(name)` is
69
- the default-stream shortcut. Topics support:
86
+ The root client exposes query, projections, bindings, schemas, key-value and CAS, forks, graph traversal, RBAC, runs, watch feeds, and independent managed command batches. Query uses the managed command path, not a request topic. Every command is encoded through the same Rust-owned AGDX fixtures consumed by the other SDKs.
70
87
 
71
- - raw, JSON, CBOR, MessagePack, Avro, Protobuf, and JSON Schema records
72
- - exact headers, metadata, indexes, projection and schema IDs, inline payload,
73
- claim-check, routing keys, explicit partitions, and heterogeneous batches
74
- - direct producers with bounded retry and explicit batching
75
- - standalone and consumer-group readers with first, last, next, offset, or
76
- timestamp starts
77
- - automatic or explicit offset commits, replay, cancellation, and bounded
78
- `nextWithin()` waits
88
+ ```ts
89
+ import { graphNodeEntity } from "@laserdata/laser-sdk"
79
90
 
80
- Delivery is at least once. Ordering is per selected partition. A handler should
81
- make external effects idempotent, or use the fenced managed coordination path
82
- when a monotonic holder token is required.
91
+ const paid = await laser.query("orders_v1").whereEq("status", "paid").limit(20).fetch()
83
92
 
84
- ## Managed data surfaces
93
+ const key = new TextEncoder().encode("user:42")
94
+ const session = { cart: ["sku-1"] }
95
+ await laser.kv("sessions").set(key).json(session).ttl(300_000_000n).send()
96
+ const stored = await laser.kv("sessions").get(key)
97
+
98
+ const checkout = graphNodeEntity("Service", "checkout")
99
+ const nearby = await laser.graph("ops").neighbors(checkout.id, "out", undefined, 2)
100
+ ```
101
+
102
+ Accessors are cheap to construct. I/O happens at terminal verbs such as `send()`, `fetch()`, `poll()`, and `nextWithin()`.
85
103
 
86
- LaserData Cloud announces its capabilities during connection setup. Stock
87
- Apache Iggy serves streaming and returns `UnsupportedError` for managed calls.
88
- The same client code can feature-detect through `laser.capabilities()`.
104
+ Durable memory can use the default audit topic through `laser.memory(namespace)`, an existing isolated topic through `laser.memoryOnTopic(topic)`, or a configured topic:
89
105
 
90
- The root client exposes query, projections, bindings, schemas, key-value and
91
- CAS, forks, graph traversal, RBAC, runs, watch feeds, and independent managed
92
- command batches. Query uses the managed command path, not a request topic.
93
- Every command is encoded through the same Rust-owned AGDX fixtures consumed by
94
- the other SDKs.
106
+ ```ts
107
+ const incidents = await laser.memoryTopic("incidents").partitions(4).ttl(86_400_000).build()
108
+
109
+ await incidents.remember(new TextEncoder().encode("checkout uses the read replica")).send()
110
+ ```
111
+
112
+ TypeScript duration inputs use milliseconds. `noExpiry()` keeps the raw memory history until ordinary topic retention removes it.
95
113
 
96
114
  ## Agents and coordination
97
115
 
98
- The agent layer adds provenance, typed AGDX commands and responses, chunked
99
- streams, registry and presence, routing, reliable commit-after-handle delivery,
100
- deduplication, retry and dead-letter handling, contracts, scatter, and workflow
101
- execution. Workflow journals support replay and resume, verifier panels,
102
- budgets, compensation, and fenced steps.
116
+ The agent layer adds provenance, typed AGDX commands and responses, chunked streams, registry and presence, routing, reliable commit-after-handle delivery, deduplication, retry and dead-letter handling, contracts, scatter, and workflow execution. Workflow journals support replay and resume, verifier panels, budgets, compensation, and fenced steps.
117
+
118
+ Context, snapshots, log and vector memory, action governance, replayable intent decisions, Ed25519 signing, delegation, A2A, MCP, AG-UI, and edge authorization are available from the root package. The SDK transports model provenance but does not invoke a model.
119
+
120
+ ```ts
121
+ import { Agent, AgentId, AgentTopic } from "@laserdata/laser-sdk"
122
+
123
+ await using handle = Agent.builder()
124
+ .id(AgentId.new("support"))
125
+ .listenOn(AgentTopic.Commands)
126
+ .respondOn(AgentTopic.Responses)
127
+ .handler({
128
+ handle(message, context) {
129
+ return context.respond(message.payload)
130
+ }
131
+ })
132
+ .spawn(laser)
133
+
134
+ await handle.ready()
135
+ // The agent now consumes with commit-after-handle delivery.
136
+ ```
137
+
138
+ Waiting operations accept `AbortSignal` or an explicit timeout where their contract permits one. Owned roots and spawned handles must be closed or shut down. Scoped views do not own the shared connection.
139
+
140
+ ## Errors and ownership
103
141
 
104
- Context, snapshots, log and vector memory, action governance, replayable
105
- intent decisions, Ed25519 signing, delegation, A2A, MCP, AG-UI, and edge
106
- authorization are available from the root package. The SDK transports model
107
- provenance but does not invoke a model.
142
+ All SDK failures extend `LaserError` and carry a stable `kind`. Configuration, timeout, cancellation, unsupported managed capability, codec, transport, policy, and signature failures have dedicated subclasses. Catch the narrow subclass when recovery differs, otherwise report the base error with its cause.
108
143
 
109
- Waiting operations accept `AbortSignal` or an explicit timeout where their
110
- contract permits one. Owned roots and spawned handles must be closed or shut
111
- down. Scoped views do not own the shared connection.
144
+ `Laser.connect*()` owns its Apache Iggy client. `Laser.builder()` can instead borrow or own an injected client explicitly. `Laser`, `Producer`, `Consumer`, and `AgentHandle` support `await using`. Their explicit `close()` and `shutdown()` methods remain idempotent. Closing a scoped view never closes the root connection.
112
145
 
113
146
  ## Package exports
114
147
 
115
148
  - `@laserdata/laser-sdk` is the ordinary application surface
116
149
  - `@laserdata/laser-sdk/full` adds the complete native wire namespace
117
- - `@laserdata/laser-sdk/testing` provides clocks, stores, fake transports,
118
- factories, observers, and bounded eventually checks
150
+ - `@laserdata/laser-sdk/testing` provides clocks, stores, fake transports, factories, observers, and bounded eventually checks
119
151
  - `@laserdata/laser-sdk/opentelemetry` adapts the observer seam to OpenTelemetry
120
152
 
121
- `laser.iggyClient()` is the Apache Iggy escape hatch for native administrative
122
- or transport operations that Laser does not wrap.
153
+ `laser.iggyClient()` is the Apache Iggy escape hatch for native administrative or transport operations that Laser does not wrap.
123
154
 
124
155
  ## Examples and verification
125
156
 
126
- The nine non-benchmark examples live in
127
- [`examples/typescript`](../../examples/typescript/README.md). Shared behavior is
128
- covered by every feature under [`bdd/scenarios`](../../bdd/scenarios).
157
+ The nine non-benchmark examples live in [`examples/typescript`](../../examples/typescript/README.md). Shared behavior is covered by every feature under [`bdd/scenarios`](../../bdd/scenarios).
129
158
 
130
159
  ```sh
131
160
  npm ci
132
161
  npm run verify
133
162
  ```
134
163
 
135
- `verify` runs style, formatting, lint, dependency boundaries, strict types,
136
- builds, API reports, unit and wire tests, robustness, coverage, licenses, and
137
- packed-consumer checks. Live Apache Iggy integration and shared BDD are separate
138
- Docker-backed gates.
164
+ `verify` runs style, formatting, lint, dependency boundaries, strict types, builds, API reports, unit and wire tests, robustness, coverage, licenses, and packed-consumer checks. Live Apache Iggy integration and shared BDD are separate Docker-backed gates.
139
165
 
140
166
  ## Security and license
141
167
 
142
- Report security issues through the repository security policy. The package is
143
- Apache-2.0 licensed. Apache and Apache Iggy are trademarks of the Apache
144
- Software Foundation.
168
+ Report security issues through the repository security policy. The package is Apache-2.0 licensed. Apache and Apache Iggy are trademarks of the Apache Software Foundation.
@@ -0,0 +1,55 @@
1
+ import { type BytesLike } from "../client/bytes.js";
2
+ import type { LaserTransport } from "../iggy/apache-iggy.js";
3
+ import { type UlidSource } from "../runtime/ulid.js";
4
+ import { type SigningKey } from "../signing.js";
5
+ import { type AgentId as SdkAgentId, type ConversationId as SdkConversationId } from "../types/ids.js";
6
+ import { type AgentEnvelope, type AgentErrorBody, type IdempotencyKey, type TaskState, type TokenUsage } from "../wire/agent.js";
7
+ import { ContentType } from "../wire/content.js";
8
+ import { ChannelId, CorrelationId, type LogPosition, RecordId } from "../wire/ids.js";
9
+ import type { Value } from "../wire/value.js";
10
+ export declare const DEFAULT_CHUNK_FLUSH_BYTES = 512;
11
+ export declare const DEFAULT_CHUNK_LINGER_MS = 20;
12
+ export declare const MAX_CHUNK_BODY_BYTES: number;
13
+ export type AgdxLogPosition = LogPosition;
14
+ export interface Agdx {
15
+ readonly topicName: string;
16
+ command(correlation: CorrelationId, body: BytesLike): AgdxSend;
17
+ respond(correlation: CorrelationId, body: BytesLike): AgdxSend;
18
+ emit(body: BytesLike): AgdxSend;
19
+ status(operation: string): AgdxSend;
20
+ fail(correlation: CorrelationId, error: AgentErrorBody): AgdxSend;
21
+ stream(correlation: CorrelationId, purpose: string): AgdxStream;
22
+ requestInput(replyTopic: string, prompt: BytesLike, timeoutMs: number, options?: {
23
+ readonly signal?: AbortSignal;
24
+ }): Promise<Uint8Array>;
25
+ }
26
+ export declare function createAgdx(transport: LaserTransport, streamName: string, topicName: string, source: SdkAgentId, conversation: SdkConversationId, ulidSource?: UlidSource, govern?: (envelope: AgentEnvelope, willSign: boolean) => Promise<Uint8Array>): Agdx;
27
+ export interface AgdxSend {
28
+ withTarget(target: SdkAgentId): this;
29
+ withCause(cause: RecordId, causeAt?: LogPosition): this;
30
+ withCorrelation(correlation: CorrelationId): this;
31
+ withIdempotencyKey(key: IdempotencyKey): this;
32
+ withDeadlineMicros(deadlineMicros: bigint): this;
33
+ withTaskState(state: TaskState): this;
34
+ withOperation(operation: string): this;
35
+ withTool(tool: string): this;
36
+ withUsage(usage: TokenUsage): this;
37
+ withMetadata(key: string, value: Value): this;
38
+ last(): this;
39
+ contentType(contentType: ContentType): this;
40
+ body(body: BytesLike): this;
41
+ signedBy(key: SigningKey): this;
42
+ send(): Promise<RecordId | undefined>;
43
+ }
44
+ export interface AgdxStream {
45
+ readonly channel: ChannelId;
46
+ withDeadlineMicros(deadlineMicros: bigint): this;
47
+ withTarget(target: SdkAgentId): this;
48
+ contentType(contentType: ContentType): this;
49
+ buffered(maxChunks: number, lingerMs: number): this;
50
+ write(body: BytesLike): Promise<void>;
51
+ flush(): Promise<void>;
52
+ finish(finishReason: string, usage?: TokenUsage): Promise<void>;
53
+ fail(error: AgentErrorBody): Promise<void>;
54
+ }
55
+ //# sourceMappingURL=agdx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agdx.d.ts","sourceRoot":"","sources":["../../src/agent/agdx.ts"],"names":[],"mappings":"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"}