@zarel-ai/sdk 0.6.0

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 (375) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +412 -0
  3. package/dist/_internal/auth-headers.d.ts +19 -0
  4. package/dist/_internal/auth-headers.d.ts.map +1 -0
  5. package/dist/_internal/auth-headers.js +30 -0
  6. package/dist/_internal/auth-headers.js.map +1 -0
  7. package/dist/_internal/confirmation.d.ts +24 -0
  8. package/dist/_internal/confirmation.d.ts.map +1 -0
  9. package/dist/_internal/confirmation.js +54 -0
  10. package/dist/_internal/confirmation.js.map +1 -0
  11. package/dist/_internal/event-iterator.d.ts +18 -0
  12. package/dist/_internal/event-iterator.d.ts.map +1 -0
  13. package/dist/_internal/event-iterator.js +151 -0
  14. package/dist/_internal/event-iterator.js.map +1 -0
  15. package/dist/_internal/fetch-client.d.ts +141 -0
  16. package/dist/_internal/fetch-client.d.ts.map +1 -0
  17. package/dist/_internal/fetch-client.js +471 -0
  18. package/dist/_internal/fetch-client.js.map +1 -0
  19. package/dist/_internal/interceptors.d.ts +40 -0
  20. package/dist/_internal/interceptors.d.ts.map +1 -0
  21. package/dist/_internal/interceptors.js +28 -0
  22. package/dist/_internal/interceptors.js.map +1 -0
  23. package/dist/_internal/mcp.d.ts +11 -0
  24. package/dist/_internal/mcp.d.ts.map +1 -0
  25. package/dist/_internal/mcp.js +79 -0
  26. package/dist/_internal/mcp.js.map +1 -0
  27. package/dist/_internal/pagination.d.ts +71 -0
  28. package/dist/_internal/pagination.d.ts.map +1 -0
  29. package/dist/_internal/pagination.js +130 -0
  30. package/dist/_internal/pagination.js.map +1 -0
  31. package/dist/_internal/require-token.d.ts +17 -0
  32. package/dist/_internal/require-token.d.ts.map +1 -0
  33. package/dist/_internal/require-token.js +25 -0
  34. package/dist/_internal/require-token.js.map +1 -0
  35. package/dist/_internal/retry-after.d.ts +2 -0
  36. package/dist/_internal/retry-after.d.ts.map +1 -0
  37. package/dist/_internal/retry-after.js +34 -0
  38. package/dist/_internal/retry-after.js.map +1 -0
  39. package/dist/_internal/sse-client.d.ts +43 -0
  40. package/dist/_internal/sse-client.d.ts.map +1 -0
  41. package/dist/_internal/sse-client.js +250 -0
  42. package/dist/_internal/sse-client.js.map +1 -0
  43. package/dist/_internal/version.d.ts +5 -0
  44. package/dist/_internal/version.d.ts.map +1 -0
  45. package/dist/_internal/version.js +12 -0
  46. package/dist/_internal/version.js.map +1 -0
  47. package/dist/client.d.ts +74 -0
  48. package/dist/client.d.ts.map +1 -0
  49. package/dist/client.js +86 -0
  50. package/dist/client.js.map +1 -0
  51. package/dist/contract/_singleton.d.ts +18 -0
  52. package/dist/contract/_singleton.d.ts.map +1 -0
  53. package/dist/contract/_singleton.js +27 -0
  54. package/dist/contract/_singleton.js.map +1 -0
  55. package/dist/contract/actions.d.ts +18 -0
  56. package/dist/contract/actions.d.ts.map +1 -0
  57. package/dist/contract/actions.js +36 -0
  58. package/dist/contract/actions.js.map +1 -0
  59. package/dist/contract/assistant.d.ts +65 -0
  60. package/dist/contract/assistant.d.ts.map +1 -0
  61. package/dist/contract/assistant.js +44 -0
  62. package/dist/contract/assistant.js.map +1 -0
  63. package/dist/contract/batch.d.ts +27 -0
  64. package/dist/contract/batch.d.ts.map +1 -0
  65. package/dist/contract/batch.js +20 -0
  66. package/dist/contract/batch.js.map +1 -0
  67. package/dist/contract/capabilities.d.ts +21 -0
  68. package/dist/contract/capabilities.d.ts.map +1 -0
  69. package/dist/contract/capabilities.js +31 -0
  70. package/dist/contract/capabilities.js.map +1 -0
  71. package/dist/contract/constraints.d.ts +21 -0
  72. package/dist/contract/constraints.d.ts.map +1 -0
  73. package/dist/contract/constraints.js +31 -0
  74. package/dist/contract/constraints.js.map +1 -0
  75. package/dist/contract/events.d.ts +33 -0
  76. package/dist/contract/events.d.ts.map +1 -0
  77. package/dist/contract/events.js +56 -0
  78. package/dist/contract/events.js.map +1 -0
  79. package/dist/contract/flows.d.ts +44 -0
  80. package/dist/contract/flows.d.ts.map +1 -0
  81. package/dist/contract/flows.js +109 -0
  82. package/dist/contract/flows.js.map +1 -0
  83. package/dist/contract/governance.d.ts +6 -0
  84. package/dist/contract/governance.d.ts.map +1 -0
  85. package/dist/contract/governance.js +17 -0
  86. package/dist/contract/governance.js.map +1 -0
  87. package/dist/contract/index.d.ts +137 -0
  88. package/dist/contract/index.d.ts.map +1 -0
  89. package/dist/contract/index.js +177 -0
  90. package/dist/contract/index.js.map +1 -0
  91. package/dist/contract/metadata.d.ts +26 -0
  92. package/dist/contract/metadata.d.ts.map +1 -0
  93. package/dist/contract/metadata.js +25 -0
  94. package/dist/contract/metadata.js.map +1 -0
  95. package/dist/contract/process-model.d.ts +31 -0
  96. package/dist/contract/process-model.d.ts.map +1 -0
  97. package/dist/contract/process-model.js +51 -0
  98. package/dist/contract/process-model.js.map +1 -0
  99. package/dist/contract/roots/channels.d.ts +27 -0
  100. package/dist/contract/roots/channels.d.ts.map +1 -0
  101. package/dist/contract/roots/channels.js +53 -0
  102. package/dist/contract/roots/channels.js.map +1 -0
  103. package/dist/contract/roots/events.d.ts +7 -0
  104. package/dist/contract/roots/events.d.ts.map +1 -0
  105. package/dist/contract/roots/events.js +19 -0
  106. package/dist/contract/roots/events.js.map +1 -0
  107. package/dist/contract/roots/index.d.ts +15 -0
  108. package/dist/contract/roots/index.d.ts.map +1 -0
  109. package/dist/contract/roots/index.js +38 -0
  110. package/dist/contract/roots/index.js.map +1 -0
  111. package/dist/contract/roots/mcp-servers.d.ts +46 -0
  112. package/dist/contract/roots/mcp-servers.d.ts.map +1 -0
  113. package/dist/contract/roots/mcp-servers.js +68 -0
  114. package/dist/contract/roots/mcp-servers.js.map +1 -0
  115. package/dist/contract/roots/profiles.d.ts +18 -0
  116. package/dist/contract/roots/profiles.d.ts.map +1 -0
  117. package/dist/contract/roots/profiles.js +31 -0
  118. package/dist/contract/roots/profiles.js.map +1 -0
  119. package/dist/contract/roots/timezone.d.ts +10 -0
  120. package/dist/contract/roots/timezone.d.ts.map +1 -0
  121. package/dist/contract/roots/timezone.js +19 -0
  122. package/dist/contract/roots/timezone.js.map +1 -0
  123. package/dist/contract/roots/treatment.d.ts +11 -0
  124. package/dist/contract/roots/treatment.d.ts.map +1 -0
  125. package/dist/contract/roots/treatment.js +37 -0
  126. package/dist/contract/roots/treatment.js.map +1 -0
  127. package/dist/contract/roots/vocabulary.d.ts +18 -0
  128. package/dist/contract/roots/vocabulary.d.ts.map +1 -0
  129. package/dist/contract/roots/vocabulary.js +31 -0
  130. package/dist/contract/roots/vocabulary.js.map +1 -0
  131. package/dist/contract/schemas.d.ts +18 -0
  132. package/dist/contract/schemas.d.ts.map +1 -0
  133. package/dist/contract/schemas.js +31 -0
  134. package/dist/contract/schemas.js.map +1 -0
  135. package/dist/contract/skills.d.ts +20 -0
  136. package/dist/contract/skills.d.ts.map +1 -0
  137. package/dist/contract/skills.js +36 -0
  138. package/dist/contract/skills.js.map +1 -0
  139. package/dist/errors.d.ts +65 -0
  140. package/dist/errors.d.ts.map +1 -0
  141. package/dist/errors.js +80 -0
  142. package/dist/errors.js.map +1 -0
  143. package/dist/generated/contract.d.ts +7688 -0
  144. package/dist/generated/contract.d.ts.map +1 -0
  145. package/dist/generated/contract.js +7 -0
  146. package/dist/generated/contract.js.map +1 -0
  147. package/dist/generated/index.d.ts +41 -0
  148. package/dist/generated/index.d.ts.map +1 -0
  149. package/dist/generated/index.js +3 -0
  150. package/dist/generated/index.js.map +1 -0
  151. package/dist/generated/runtime.d.ts +4020 -0
  152. package/dist/generated/runtime.d.ts.map +1 -0
  153. package/dist/generated/runtime.js +7 -0
  154. package/dist/generated/runtime.js.map +1 -0
  155. package/dist/generated/unwrap-map.d.ts +989 -0
  156. package/dist/generated/unwrap-map.d.ts.map +1 -0
  157. package/dist/generated/unwrap-map.js +344 -0
  158. package/dist/generated/unwrap-map.js.map +1 -0
  159. package/dist/index.d.ts +38 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +27 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/resources/actions.d.ts +33 -0
  164. package/dist/resources/actions.d.ts.map +1 -0
  165. package/dist/resources/actions.js +52 -0
  166. package/dist/resources/actions.js.map +1 -0
  167. package/dist/resources/audit.d.ts +52 -0
  168. package/dist/resources/audit.d.ts.map +1 -0
  169. package/dist/resources/audit.js +86 -0
  170. package/dist/resources/audit.js.map +1 -0
  171. package/dist/resources/authorization-ceiling.d.ts +25 -0
  172. package/dist/resources/authorization-ceiling.d.ts.map +1 -0
  173. package/dist/resources/authorization-ceiling.js +26 -0
  174. package/dist/resources/authorization-ceiling.js.map +1 -0
  175. package/dist/resources/authorization-operation-ids.d.ts +15 -0
  176. package/dist/resources/authorization-operation-ids.d.ts.map +1 -0
  177. package/dist/resources/authorization-operation-ids.js +31 -0
  178. package/dist/resources/authorization-operation-ids.js.map +1 -0
  179. package/dist/resources/authorization.d.ts +60 -0
  180. package/dist/resources/authorization.d.ts.map +1 -0
  181. package/dist/resources/authorization.js +51 -0
  182. package/dist/resources/authorization.js.map +1 -0
  183. package/dist/resources/authorizations.d.ts +38 -0
  184. package/dist/resources/authorizations.d.ts.map +1 -0
  185. package/dist/resources/authorizations.js +19 -0
  186. package/dist/resources/authorizations.js.map +1 -0
  187. package/dist/resources/channels.d.ts +36 -0
  188. package/dist/resources/channels.d.ts.map +1 -0
  189. package/dist/resources/channels.js +61 -0
  190. package/dist/resources/channels.js.map +1 -0
  191. package/dist/resources/contracts.d.ts +46 -0
  192. package/dist/resources/contracts.d.ts.map +1 -0
  193. package/dist/resources/contracts.js +86 -0
  194. package/dist/resources/contracts.js.map +1 -0
  195. package/dist/resources/conversation-sessions.d.ts +62 -0
  196. package/dist/resources/conversation-sessions.d.ts.map +1 -0
  197. package/dist/resources/conversation-sessions.js +48 -0
  198. package/dist/resources/conversation-sessions.js.map +1 -0
  199. package/dist/resources/conversation.d.ts +48 -0
  200. package/dist/resources/conversation.d.ts.map +1 -0
  201. package/dist/resources/conversation.js +104 -0
  202. package/dist/resources/conversation.js.map +1 -0
  203. package/dist/resources/embedding-credentials.d.ts +60 -0
  204. package/dist/resources/embedding-credentials.d.ts.map +1 -0
  205. package/dist/resources/embedding-credentials.js +53 -0
  206. package/dist/resources/embedding-credentials.js.map +1 -0
  207. package/dist/resources/entities.d.ts +66 -0
  208. package/dist/resources/entities.d.ts.map +1 -0
  209. package/dist/resources/entities.js +106 -0
  210. package/dist/resources/entities.js.map +1 -0
  211. package/dist/resources/events.d.ts +45 -0
  212. package/dist/resources/events.d.ts.map +1 -0
  213. package/dist/resources/events.js +71 -0
  214. package/dist/resources/events.js.map +1 -0
  215. package/dist/resources/flows.d.ts +45 -0
  216. package/dist/resources/flows.d.ts.map +1 -0
  217. package/dist/resources/flows.js +82 -0
  218. package/dist/resources/flows.js.map +1 -0
  219. package/dist/resources/imports.d.ts +8 -0
  220. package/dist/resources/imports.d.ts.map +1 -0
  221. package/dist/resources/imports.js +14 -0
  222. package/dist/resources/imports.js.map +1 -0
  223. package/dist/resources/index.d.ts +24 -0
  224. package/dist/resources/index.d.ts.map +1 -0
  225. package/dist/resources/index.js +41 -0
  226. package/dist/resources/index.js.map +1 -0
  227. package/dist/resources/llm-credentials.d.ts +47 -0
  228. package/dist/resources/llm-credentials.d.ts.map +1 -0
  229. package/dist/resources/llm-credentials.js +46 -0
  230. package/dist/resources/llm-credentials.js.map +1 -0
  231. package/dist/resources/llm-services.d.ts +46 -0
  232. package/dist/resources/llm-services.d.ts.map +1 -0
  233. package/dist/resources/llm-services.js +41 -0
  234. package/dist/resources/llm-services.js.map +1 -0
  235. package/dist/resources/mcp.d.ts +8 -0
  236. package/dist/resources/mcp.d.ts.map +1 -0
  237. package/dist/resources/mcp.js +25 -0
  238. package/dist/resources/mcp.js.map +1 -0
  239. package/dist/resources/receipts.d.ts +25 -0
  240. package/dist/resources/receipts.d.ts.map +1 -0
  241. package/dist/resources/receipts.js +54 -0
  242. package/dist/resources/receipts.js.map +1 -0
  243. package/dist/resources/records.d.ts +51 -0
  244. package/dist/resources/records.d.ts.map +1 -0
  245. package/dist/resources/records.js +103 -0
  246. package/dist/resources/records.js.map +1 -0
  247. package/dist/resources/role-assignments.d.ts +27 -0
  248. package/dist/resources/role-assignments.d.ts.map +1 -0
  249. package/dist/resources/role-assignments.js +40 -0
  250. package/dist/resources/role-assignments.js.map +1 -0
  251. package/dist/resources/roles.d.ts +39 -0
  252. package/dist/resources/roles.d.ts.map +1 -0
  253. package/dist/resources/roles.js +42 -0
  254. package/dist/resources/roles.js.map +1 -0
  255. package/dist/resources/runtime-entities.d.ts +23 -0
  256. package/dist/resources/runtime-entities.d.ts.map +1 -0
  257. package/dist/resources/runtime-entities.js +29 -0
  258. package/dist/resources/runtime-entities.js.map +1 -0
  259. package/dist/resources/state-machine.d.ts +45 -0
  260. package/dist/resources/state-machine.d.ts.map +1 -0
  261. package/dist/resources/state-machine.js +86 -0
  262. package/dist/resources/state-machine.js.map +1 -0
  263. package/dist/resources/system.d.ts +12 -0
  264. package/dist/resources/system.d.ts.map +1 -0
  265. package/dist/resources/system.js +26 -0
  266. package/dist/resources/system.js.map +1 -0
  267. package/dist/resources/tools.d.ts +22 -0
  268. package/dist/resources/tools.d.ts.map +1 -0
  269. package/dist/resources/tools.js +33 -0
  270. package/dist/resources/tools.js.map +1 -0
  271. package/dist/resources/traces.d.ts +65 -0
  272. package/dist/resources/traces.d.ts.map +1 -0
  273. package/dist/resources/traces.js +97 -0
  274. package/dist/resources/traces.js.map +1 -0
  275. package/dist/runtime/index.d.ts +128 -0
  276. package/dist/runtime/index.d.ts.map +1 -0
  277. package/dist/runtime/index.js +210 -0
  278. package/dist/runtime/index.js.map +1 -0
  279. package/dist/types/actions.d.ts +32 -0
  280. package/dist/types/actions.d.ts.map +1 -0
  281. package/dist/types/actions.js +9 -0
  282. package/dist/types/actions.js.map +1 -0
  283. package/dist/types/audit.d.ts +65 -0
  284. package/dist/types/audit.d.ts.map +1 -0
  285. package/dist/types/audit.js +14 -0
  286. package/dist/types/audit.js.map +1 -0
  287. package/dist/types/channels.d.ts +37 -0
  288. package/dist/types/channels.d.ts.map +1 -0
  289. package/dist/types/channels.js +6 -0
  290. package/dist/types/channels.js.map +1 -0
  291. package/dist/types/confirmation.d.ts +53 -0
  292. package/dist/types/confirmation.d.ts.map +1 -0
  293. package/dist/types/confirmation.js +17 -0
  294. package/dist/types/confirmation.js.map +1 -0
  295. package/dist/types/contracts.d.ts +194 -0
  296. package/dist/types/contracts.d.ts.map +1 -0
  297. package/dist/types/contracts.js +10 -0
  298. package/dist/types/contracts.js.map +1 -0
  299. package/dist/types/conversation-sessions.d.ts +58 -0
  300. package/dist/types/conversation-sessions.d.ts.map +1 -0
  301. package/dist/types/conversation-sessions.js +6 -0
  302. package/dist/types/conversation-sessions.js.map +1 -0
  303. package/dist/types/conversation.d.ts +96 -0
  304. package/dist/types/conversation.d.ts.map +1 -0
  305. package/dist/types/conversation.js +3 -0
  306. package/dist/types/conversation.js.map +1 -0
  307. package/dist/types/entities.d.ts +22 -0
  308. package/dist/types/entities.d.ts.map +1 -0
  309. package/dist/types/entities.js +4 -0
  310. package/dist/types/entities.js.map +1 -0
  311. package/dist/types/events-stream.d.ts +82 -0
  312. package/dist/types/events-stream.d.ts.map +1 -0
  313. package/dist/types/events-stream.js +65 -0
  314. package/dist/types/events-stream.js.map +1 -0
  315. package/dist/types/flows-contract.d.ts +8 -0
  316. package/dist/types/flows-contract.d.ts.map +1 -0
  317. package/dist/types/flows-contract.js +7 -0
  318. package/dist/types/flows-contract.js.map +1 -0
  319. package/dist/types/flows.d.ts +66 -0
  320. package/dist/types/flows.d.ts.map +1 -0
  321. package/dist/types/flows.js +25 -0
  322. package/dist/types/flows.js.map +1 -0
  323. package/dist/types/imports.d.ts +57 -0
  324. package/dist/types/imports.d.ts.map +1 -0
  325. package/dist/types/imports.js +3 -0
  326. package/dist/types/imports.js.map +1 -0
  327. package/dist/types/index.d.ts +17 -0
  328. package/dist/types/index.d.ts.map +1 -0
  329. package/dist/types/index.js +3 -0
  330. package/dist/types/index.js.map +1 -0
  331. package/dist/types/locale.d.ts +24 -0
  332. package/dist/types/locale.d.ts.map +1 -0
  333. package/dist/types/locale.js +17 -0
  334. package/dist/types/locale.js.map +1 -0
  335. package/dist/types/mcp.d.ts +28 -0
  336. package/dist/types/mcp.d.ts.map +1 -0
  337. package/dist/types/mcp.js +12 -0
  338. package/dist/types/mcp.js.map +1 -0
  339. package/dist/types/platform.d.ts +51 -0
  340. package/dist/types/platform.d.ts.map +1 -0
  341. package/dist/types/platform.js +4 -0
  342. package/dist/types/platform.js.map +1 -0
  343. package/dist/types/receipt.d.ts +79 -0
  344. package/dist/types/receipt.d.ts.map +1 -0
  345. package/dist/types/receipt.js +15 -0
  346. package/dist/types/receipt.js.map +1 -0
  347. package/dist/types/records.d.ts +45 -0
  348. package/dist/types/records.d.ts.map +1 -0
  349. package/dist/types/records.js +4 -0
  350. package/dist/types/records.js.map +1 -0
  351. package/dist/types/spec.d.ts +6 -0
  352. package/dist/types/spec.d.ts.map +1 -0
  353. package/dist/types/spec.js +3 -0
  354. package/dist/types/spec.js.map +1 -0
  355. package/dist/types/state-machine.d.ts +100 -0
  356. package/dist/types/state-machine.d.ts.map +1 -0
  357. package/dist/types/state-machine.js +9 -0
  358. package/dist/types/state-machine.js.map +1 -0
  359. package/dist/types/system.d.ts +28 -0
  360. package/dist/types/system.d.ts.map +1 -0
  361. package/dist/types/system.js +3 -0
  362. package/dist/types/system.js.map +1 -0
  363. package/dist/types/tools.d.ts +188 -0
  364. package/dist/types/tools.d.ts.map +1 -0
  365. package/dist/types/tools.js +22 -0
  366. package/dist/types/tools.js.map +1 -0
  367. package/dist/types/traces.d.ts +77 -0
  368. package/dist/types/traces.d.ts.map +1 -0
  369. package/dist/types/traces.js +11 -0
  370. package/dist/types/traces.js.map +1 -0
  371. package/dist/types/workflows.d.ts +42 -0
  372. package/dist/types/workflows.d.ts.map +1 -0
  373. package/dist/types/workflows.js +11 -0
  374. package/dist/types/workflows.js.map +1 -0
  375. package/package.json +103 -0
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ // G3 — SSE stream client internals: a pure SSE frame parser + a transport-agnostic
3
+ // reconnect loop. The actual `fetch` + auth live in a thin `FetchClient.openEventStream`
4
+ // method (so they reuse the client's own fetchFn/baseUrl/auth — no private-field leak);
5
+ // that method injects a `connect` closure here. Built on native WHATWG streams +
6
+ // `TextDecoder` — ZERO runtime dependencies.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.parseSseFrames = parseSseFrames;
9
+ exports.runEventStream = runEventStream;
10
+ const events_stream_1 = require("../types/events-stream");
11
+ // Default reconnect backoff window (ms). Mirrors the dashboard's prior hand-rolled
12
+ // SSE client so behavior is unchanged after the migration.
13
+ const SSE_BASE_DELAY_MS = 1_000;
14
+ const SSE_MAX_DELAY_MS = 30_000;
15
+ function parseBlock(block) {
16
+ let event;
17
+ let id;
18
+ let retry;
19
+ const dataLines = [];
20
+ let hasField = false;
21
+ for (let line of block.split('\n')) {
22
+ if (line.endsWith('\r'))
23
+ line = line.slice(0, -1);
24
+ // A comment line (leading ':' — e.g. ':heartbeat', ':ok') carries no field.
25
+ if (line === '' || line.startsWith(':'))
26
+ continue;
27
+ const colon = line.indexOf(':');
28
+ const field = colon === -1 ? line : line.slice(0, colon);
29
+ let value = colon === -1 ? '' : line.slice(colon + 1);
30
+ if (value.startsWith(' '))
31
+ value = value.slice(1);
32
+ switch (field) {
33
+ case 'event':
34
+ event = value;
35
+ hasField = true;
36
+ break;
37
+ case 'data':
38
+ dataLines.push(value);
39
+ hasField = true;
40
+ break;
41
+ case 'id':
42
+ // Per the SSE spec, an id containing a NUL is ignored.
43
+ if (!value.includes(String.fromCharCode(0))) {
44
+ id = value;
45
+ hasField = true;
46
+ }
47
+ break;
48
+ case 'retry':
49
+ if (/^\d+$/.test(value)) {
50
+ retry = Number(value);
51
+ hasField = true;
52
+ }
53
+ break;
54
+ default:
55
+ break;
56
+ }
57
+ }
58
+ if (!hasField)
59
+ return null;
60
+ const frame = { data: dataLines.join('\n') };
61
+ if (event !== undefined)
62
+ frame.event = event;
63
+ if (id !== undefined)
64
+ frame.id = id;
65
+ if (retry !== undefined)
66
+ frame.retry = retry;
67
+ return frame;
68
+ }
69
+ /**
70
+ * Incrementally parse SSE text. Pure over `(chunk, carry)`: returns the complete
71
+ * frames found and the leftover `carry` (an unterminated trailing block) to feed
72
+ * into the next call. Frames are delimited by a blank line (`\n\n`).
73
+ */
74
+ function parseSseFrames(chunk, carry) {
75
+ // Normalize CRLF → LF so the `\n\n` boundary scan is line-ending-agnostic. A
76
+ // lone trailing `\r` (a CRLF split across chunks) stays in `carry` until its
77
+ // `\n` arrives next call, so the pair still normalizes correctly.
78
+ const buffer = (carry + chunk).replace(/\r\n/g, '\n');
79
+ const frames = [];
80
+ let start = 0;
81
+ let sep;
82
+ while ((sep = buffer.indexOf('\n\n', start)) !== -1) {
83
+ const frame = parseBlock(buffer.slice(start, sep));
84
+ if (frame)
85
+ frames.push(frame);
86
+ start = sep + 2;
87
+ }
88
+ return { frames, carry: buffer.slice(start) };
89
+ }
90
+ function defaultSleep(ms, signal) {
91
+ return new Promise((resolve) => {
92
+ if (signal.aborted) {
93
+ resolve();
94
+ return;
95
+ }
96
+ const timer = setTimeout(() => {
97
+ signal.removeEventListener('abort', onAbort);
98
+ resolve();
99
+ }, ms);
100
+ const onAbort = () => {
101
+ clearTimeout(timer);
102
+ resolve();
103
+ };
104
+ signal.addEventListener('abort', onAbort, { once: true });
105
+ });
106
+ }
107
+ /**
108
+ * Drive a self-reconnecting SSE consumption loop. Returns an `EventStreamHandle`
109
+ * synchronously; the first connect happens asynchronously. Reconnect attempts are
110
+ * UNBOUNDED (until `close()`/abort/terminal); only the per-attempt delay is capped.
111
+ */
112
+ function runEventStream(deps) {
113
+ const { connect, handlers, options } = deps;
114
+ const baseDelayMs = deps.baseDelayMs ?? SSE_BASE_DELAY_MS;
115
+ const maxDelayMs = deps.maxDelayMs ?? SSE_MAX_DELAY_MS;
116
+ const sleep = deps.sleep ?? defaultSleep;
117
+ const reconnectEnabled = options.reconnect !== false;
118
+ const controller = new AbortController();
119
+ let closed = false;
120
+ let lastEventId = options.lastEventId;
121
+ const close = () => {
122
+ if (closed)
123
+ return;
124
+ closed = true;
125
+ controller.abort();
126
+ };
127
+ // Aborting the caller signal is equivalent to close().
128
+ if (options.signal) {
129
+ if (options.signal.aborted) {
130
+ closed = true;
131
+ }
132
+ else {
133
+ options.signal.addEventListener('abort', close, { once: true });
134
+ }
135
+ }
136
+ const emitFrame = (frame) => {
137
+ if (frame.id !== undefined)
138
+ lastEventId = frame.id;
139
+ // A frame with no event name and no data (e.g. an id-only or retry-only
140
+ // frame) carries no event to surface.
141
+ if (frame.event === undefined && frame.data === '')
142
+ return;
143
+ let parsed;
144
+ try {
145
+ parsed = frame.data === '' ? undefined : JSON.parse(frame.data);
146
+ }
147
+ catch {
148
+ // Malformed JSON — drop the frame (loss-tolerant), never throw.
149
+ return;
150
+ }
151
+ const mapped = (0, events_stream_1.toRuntimeStreamEvent)(frame.event ?? 'message', parsed, frame.id);
152
+ // `undefined` ⇒ a known-event validation failure ⇒ drop.
153
+ if (mapped !== undefined)
154
+ handlers.onEvent?.(mapped);
155
+ };
156
+ const computeDelay = (attempt, serverRetry) => {
157
+ // A server-supplied `retry:` is clamped to [baseDelayMs, maxDelayMs]: the
158
+ // upper cap stops a hostile server pinning a huge delay; the lower floor
159
+ // stops a `retry: 0` (or tiny) value from spinning a tight reconnect loop.
160
+ if (serverRetry !== undefined) {
161
+ return Math.min(Math.max(serverRetry, baseDelayMs), maxDelayMs);
162
+ }
163
+ const backoff = Math.min(baseDelayMs * Math.pow(2, attempt), maxDelayMs);
164
+ const jitter = Math.random() * backoff * 0.1;
165
+ return Math.min(backoff + jitter, maxDelayMs);
166
+ };
167
+ const run = async () => {
168
+ let attempt = 0;
169
+ while (!closed) {
170
+ let outcome;
171
+ try {
172
+ outcome = await connect(lastEventId, controller.signal);
173
+ }
174
+ catch (error) {
175
+ // A thrown connect (e.g. a missing-token ZarelAuthError) is terminal.
176
+ if (!closed)
177
+ handlers.onError?.(error);
178
+ return;
179
+ }
180
+ if (closed)
181
+ return;
182
+ if (outcome.kind === 'terminal') {
183
+ handlers.onError?.(outcome.error);
184
+ return;
185
+ }
186
+ let serverRetry;
187
+ if (outcome.kind === 'open') {
188
+ handlers.onOpen?.();
189
+ serverRetry = await readSseBody(outcome.body, controller.signal, (frame) => {
190
+ // Reset backoff once this connection yields a frame.
191
+ attempt = 0;
192
+ emitFrame(frame);
193
+ });
194
+ if (closed)
195
+ return;
196
+ // Body ended (server EOF / read error) → transient.
197
+ }
198
+ // transient (or open-then-EOF): reconnect unless disabled.
199
+ if (!reconnectEnabled)
200
+ return;
201
+ const delay = computeDelay(attempt, serverRetry);
202
+ attempt += 1;
203
+ await sleep(delay, controller.signal);
204
+ if (closed)
205
+ return;
206
+ }
207
+ };
208
+ void run();
209
+ return { close };
210
+ }
211
+ /**
212
+ * Read an open SSE body to completion, invoking `onFrame` per parsed frame.
213
+ * Returns the last server-suggested `retry` value seen (for backoff seeding).
214
+ * A read error / abort ends the read (the loop treats it as transient).
215
+ */
216
+ async function readSseBody(body, signal, onFrame) {
217
+ const reader = body.getReader();
218
+ const decoder = new TextDecoder();
219
+ let carry = '';
220
+ let serverRetry;
221
+ try {
222
+ for (;;) {
223
+ const { done, value } = await reader.read();
224
+ if (done || signal.aborted)
225
+ break;
226
+ const text = decoder.decode(value, { stream: true });
227
+ const { frames, carry: nextCarry } = parseSseFrames(text, carry);
228
+ carry = nextCarry;
229
+ for (const frame of frames) {
230
+ if (frame.retry !== undefined)
231
+ serverRetry = frame.retry;
232
+ onFrame(frame);
233
+ }
234
+ }
235
+ }
236
+ catch {
237
+ // Read error / abort → end the read; the loop treats it as transient
238
+ // (or, if closed, exits without reconnect). No rethrow.
239
+ }
240
+ finally {
241
+ try {
242
+ await reader.cancel();
243
+ }
244
+ catch {
245
+ // best-effort
246
+ }
247
+ }
248
+ return serverRetry;
249
+ }
250
+ //# sourceMappingURL=sse-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../src/_internal/sse-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const SDK_VERSION = "0.6.0";
2
+ /** Sent as the `User-Agent` header on every request (Node-effective; browsers
3
+ * drop it — `User-Agent` is a forbidden header name in `fetch`). */
4
+ export declare const USER_AGENT = "@zarel-ai/sdk/0.6.0";
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/_internal/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC;qEACqE;AACrE,eAAO,MAAM,UAAU,wBAAiC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USER_AGENT = exports.SDK_VERSION = void 0;
4
+ // The SDK's self-identifying version. Hand-maintained and kept in sync with
5
+ // `package.json` by the QI-006 drift-guard test (tests/version-drift.test.ts) —
6
+ // a runtime `import` of package.json is avoided so nothing third-party / JSON
7
+ // enters the runtime graph (zero-runtime-deps invariant).
8
+ exports.SDK_VERSION = '0.6.0';
9
+ /** Sent as the `User-Agent` header on every request (Node-effective; browsers
10
+ * drop it — `User-Agent` is a forbidden header name in `fetch`). */
11
+ exports.USER_AGENT = `@zarel-ai/sdk/${exports.SDK_VERSION}`;
12
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/_internal/version.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,0DAA0D;AAC7C,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC;qEACqE;AACxD,QAAA,UAAU,GAAG,iBAAiB,mBAAW,EAAE,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { TokenInput } from './_internal/fetch-client';
2
+ import type { Interceptors } from './_internal/interceptors';
3
+ import { RuntimeNamespace } from './runtime';
4
+ import { ContractNamespace } from './contract';
5
+ export interface ZarelOptions {
6
+ /**
7
+ * Tenant slug. When set and `runtimeBaseUrl` / `contractBaseUrl` are
8
+ * not provided, hosts are derived as
9
+ * `https://{tenant}.zarel.ia/v1` (runtime) and
10
+ * `https://{tenant}.admin.zarel.ia/v1` (contract).
11
+ */
12
+ tenant?: string;
13
+ /**
14
+ * Credential for the runtime plane (`token_class: tenant`). Accepts a
15
+ * static string OR a provider `() => string | Promise<string>` resolved
16
+ * before each request. Required for any `client.runtime.*` call unless
17
+ * `transportManaged` is set; when absent and not transport-managed, runtime
18
+ * methods throw `ZarelAuthError({ code: 'runtime_token_missing' })` before
19
+ * any network I/O.
20
+ */
21
+ runtimeToken?: TokenInput;
22
+ /**
23
+ * Credential for the contract plane (`token_class: contract`). String or
24
+ * provider, same semantics as `runtimeToken`. When absent and not
25
+ * transport-managed, contract methods throw
26
+ * `ZarelAuthError({ code: 'contract_token_missing' })` before any network I/O.
27
+ */
28
+ contractToken?: TokenInput;
29
+ /**
30
+ * Transport-managed (no-token) mode for BOTH planes: a credential-injecting
31
+ * transport (e.g. the website BFF proxy) sets `Authorization` server-side,
32
+ * so the SDK omits the header and skips the token-presence guard. Opt-in —
33
+ * direct consumers keep the token-required guard (QI-004).
34
+ */
35
+ transportManaged?: boolean;
36
+ /**
37
+ * Override the derived runtime baseUrl
38
+ * (default: `https://{tenant}.zarel.ia/v1`).
39
+ */
40
+ runtimeBaseUrl?: string;
41
+ /**
42
+ * Override the derived contract baseUrl
43
+ * (default: `https://{tenant}.admin.zarel.ia/v1`).
44
+ */
45
+ contractBaseUrl?: string;
46
+ /** Request timeout in milliseconds (default: 30000). Applied to both planes. */
47
+ timeout?: number;
48
+ /** Maximum number of retries on 5xx / network errors (default: 3). Applied to both planes. */
49
+ maxRetries?: number;
50
+ /** Base retry delay in milliseconds (default: 500). Applied to both planes. */
51
+ retryDelay?: number;
52
+ /** Custom fetch implementation. Applied to both planes. */
53
+ fetch?: typeof globalThis.fetch;
54
+ /**
55
+ * Opt-in API version (G5). When set, every request carries
56
+ * `X-Zarel-Api-Version: <value>`. Applied to both planes. Forward-looking —
57
+ * no backend reads it today; unset ⇒ header omitted.
58
+ */
59
+ apiVersion?: string;
60
+ /**
61
+ * Opt-in per-attempt request/response/error interceptors (G4). Applied to
62
+ * both planes. `onRequest` may mutate outgoing headers (throw aborts);
63
+ * `onResponse`/`onError` are read-only observers (throw swallowed).
64
+ */
65
+ interceptors?: Interceptors;
66
+ }
67
+ export declare class Zarel {
68
+ readonly runtime: RuntimeNamespace;
69
+ readonly contract: ContractNamespace;
70
+ private readonly _runtimeClient;
71
+ private readonly _contractClient;
72
+ constructor(options: ZarelOptions);
73
+ }
74
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+B/C,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAE1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAID,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;gBAElC,OAAO,EAAE,YAAY;CA+CpC"}
package/dist/client.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Zarel = void 0;
4
+ const fetch_client_1 = require("./_internal/fetch-client");
5
+ const unwrap_map_1 = require("./generated/unwrap-map");
6
+ const runtime_1 = require("./runtime");
7
+ const contract_1 = require("./contract");
8
+ // ── Public configuration ────────────────────────────────────────────────
9
+ // The runtime-api / contract-api binary serves bare canonical paths (`/runtime/...`,
10
+ // `/contracts/...`, etc.) per ADR-0077 D14′. The `/v1/` segment is a
11
+ // deployment-layer URL contract: nginx mounts runtime-api / contract-api under
12
+ // `https://{tenant}.zarel.ia/v1/` (or `https://api.zarel.ia/v1/` when
13
+ // targeting an alias host) and strips the prefix before forwarding to
14
+ // the binary. The bare root of `{tenant}.zarel.ia` is reserved for a
15
+ // future tenant-customizable website.
16
+ const DEFAULT_BASE_URL = 'https://api.zarel.ia/v1';
17
+ /**
18
+ * Insert `.admin.` after the first dot in the runtime host to derive the
19
+ * contract host. Returns `undefined` when the URL has no dotted host
20
+ * (e.g., `http://localhost:3001/v1`).
21
+ */
22
+ function deriveContractFromRuntime(runtimeBaseUrl) {
23
+ try {
24
+ const u = new URL(runtimeBaseUrl);
25
+ const host = u.host;
26
+ const firstDot = host.indexOf('.');
27
+ if (firstDot < 0)
28
+ return undefined;
29
+ const adminHost = `${host.slice(0, firstDot)}.admin${host.slice(firstDot)}`;
30
+ return `${u.protocol}//${adminHost}${u.pathname}${u.search}`;
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ }
36
+ // ── Zarel SDK Client ────────────────────────────────────────────────────
37
+ class Zarel {
38
+ runtime;
39
+ contract;
40
+ _runtimeClient;
41
+ _contractClient;
42
+ constructor(options) {
43
+ // ── Resolve runtime base URL ──────────────────────────────────
44
+ const runtimeBaseUrl = options.runtimeBaseUrl
45
+ ?? (options.tenant
46
+ ? `https://${options.tenant}.zarel.ia/v1`
47
+ : DEFAULT_BASE_URL);
48
+ const contractBaseUrl = options.contractBaseUrl
49
+ ?? (options.tenant
50
+ ? `https://${options.tenant}.admin.zarel.ia/v1`
51
+ : undefined)
52
+ ?? deriveContractFromRuntime(runtimeBaseUrl)
53
+ ?? runtimeBaseUrl;
54
+ const sharedOpts = {
55
+ ...(options.timeout !== undefined ? { timeout: options.timeout } : {}),
56
+ ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
57
+ ...(options.retryDelay !== undefined ? { retryDelay: options.retryDelay } : {}),
58
+ ...(options.fetch !== undefined ? { fetch: options.fetch } : {}),
59
+ ...(options.apiVersion !== undefined ? { apiVersion: options.apiVersion } : {}),
60
+ ...(options.interceptors !== undefined ? { interceptors: options.interceptors } : {}),
61
+ };
62
+ const transportManaged = options.transportManaged ?? false;
63
+ const runtimeClientOptions = {
64
+ baseUrl: runtimeBaseUrl,
65
+ token: options.runtimeToken ?? '',
66
+ requireTokenCode: 'runtime_token_missing',
67
+ transportManaged,
68
+ operations: unwrap_map_1.RUNTIME_OPERATIONS,
69
+ ...sharedOpts,
70
+ };
71
+ const contractClientOptions = {
72
+ baseUrl: contractBaseUrl,
73
+ token: options.contractToken ?? '',
74
+ requireTokenCode: 'contract_token_missing',
75
+ transportManaged,
76
+ operations: unwrap_map_1.CONTRACT_OPERATIONS,
77
+ ...sharedOpts,
78
+ };
79
+ this._runtimeClient = new fetch_client_1.FetchClient(runtimeClientOptions);
80
+ this._contractClient = new fetch_client_1.FetchClient(contractClientOptions);
81
+ this.runtime = new runtime_1.RuntimeNamespace(this._runtimeClient);
82
+ this.contract = new contract_1.ContractNamespace(this._contractClient);
83
+ }
84
+ }
85
+ exports.Zarel = Zarel;
86
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { FetchClient } from '../_internal/fetch-client';
2
+ type JsonObject = Record<string, unknown>;
3
+ export interface SingletonOperationIds {
4
+ readonly get: string;
5
+ readonly put: string;
6
+ readonly patch: string;
7
+ }
8
+ export declare class SingletonAccessor {
9
+ private readonly client;
10
+ private readonly path;
11
+ private readonly operationIds;
12
+ constructor(client: FetchClient, path: string, operationIds: SingletonOperationIds);
13
+ get(): Promise<JsonObject>;
14
+ put(input: JsonObject): Promise<JsonObject>;
15
+ patch(patch: JsonObject): Promise<JsonObject>;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=_singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_singleton.d.ts","sourceRoot":"","sources":["../../src/contract/_singleton.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,qBAAqB;IAGlD,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1B,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3C,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAGtD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Shared JSONB-singleton accessor for contract-plane document resources
3
+ // (the process-model doc, the ADR-0138 roots that carry one, events/delivery).
4
+ // Each is a single JSONB document with get/put/patch.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SingletonAccessor = void 0;
7
+ class SingletonAccessor {
8
+ client;
9
+ path;
10
+ operationIds;
11
+ constructor(client, path, operationIds) {
12
+ this.client = client;
13
+ this.path = path;
14
+ this.operationIds = operationIds;
15
+ }
16
+ async get() {
17
+ return this.client.get(this.path, undefined, { operationId: this.operationIds.get });
18
+ }
19
+ async put(input) {
20
+ return this.client.put(this.path, input, { operationId: this.operationIds.put });
21
+ }
22
+ async patch(patch) {
23
+ return this.client.patch(this.path, patch, { operationId: this.operationIds.patch });
24
+ }
25
+ }
26
+ exports.SingletonAccessor = SingletonAccessor;
27
+ //# sourceMappingURL=_singleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_singleton.js","sourceRoot":"","sources":["../../src/contract/_singleton.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,+EAA+E;AAC/E,sDAAsD;;;AAYtD,MAAa,iBAAiB;IAEL;IACA;IACA;IAHrB,YACqB,MAAmB,EACnB,IAAY,EACZ,YAAmC;QAFnC,WAAM,GAAN,MAAM,CAAa;QACnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAuB;IACrD,CAAC;IAEJ,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAiB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAiB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;CACJ;AAlBD,8CAkBC"}
@@ -0,0 +1,18 @@
1
+ import type { FetchClient } from '../_internal/fetch-client';
2
+ export interface ContractActionDefinition {
3
+ readonly name: string;
4
+ readonly entity: string;
5
+ readonly type: string;
6
+ readonly [key: string]: unknown;
7
+ }
8
+ export declare class ContractActionsResource {
9
+ private readonly client;
10
+ constructor(client: FetchClient);
11
+ list(): Promise<ContractActionDefinition[]>;
12
+ get(name: string): Promise<ContractActionDefinition>;
13
+ create(input: Record<string, unknown>): Promise<ContractActionDefinition>;
14
+ put(name: string, input: Record<string, unknown>): Promise<ContractActionDefinition>;
15
+ patch(name: string, patch: Record<string, unknown>): Promise<ContractActionDefinition>;
16
+ delete(name: string): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/contract/actions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,qBAAa,uBAAuB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,IAAI,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAI3C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIpD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIzE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIpF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAItF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5C"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // spec-050 T091 — contract.actions CRUD.
3
+ //
4
+ // Maps to contract-api `/actions` admin routes (T-6-19). Per research D8,
5
+ // DELETE may surface server-side 501 (ENDPOINT_PLANNED) until the bespoke
6
+ // repo is aligned (ADR-0080). Per ADR-0085, runtime invocation of an
7
+ // action is `runtime.actions.dispatch()` on the runtime namespace —
8
+ // distinct from this surface, which manages the action definitions.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ContractActionsResource = void 0;
11
+ class ContractActionsResource {
12
+ client;
13
+ constructor(client) {
14
+ this.client = client;
15
+ }
16
+ async list() {
17
+ return this.client.get('/contract/actions', undefined, { operationId: 'listActions' });
18
+ }
19
+ async get(name) {
20
+ return this.client.get(`/contract/actions/${encodeURIComponent(name)}`, undefined, { operationId: 'getAction' });
21
+ }
22
+ async create(input) {
23
+ return this.client.post('/contract/actions', input, { operationId: 'createAction' });
24
+ }
25
+ async put(name, input) {
26
+ return this.client.put(`/contract/actions/${encodeURIComponent(name)}`, input, { operationId: 'replaceAction' });
27
+ }
28
+ async patch(name, patch) {
29
+ return this.client.patch(`/contract/actions/${encodeURIComponent(name)}`, patch, { operationId: 'patchAction' });
30
+ }
31
+ async delete(name) {
32
+ return this.client.del(`/contract/actions/${encodeURIComponent(name)}`, { operationId: 'deleteAction' });
33
+ }
34
+ }
35
+ exports.ContractActionsResource = ContractActionsResource;
36
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/contract/actions.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,qEAAqE;AACrE,oEAAoE;AACpE,oEAAoE;;;AAWpE,MAAa,uBAAuB;IACH;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA8B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAA8B;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,KAA8B;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IACnH,CAAC;CACJ;AA1BD,0DA0BC"}
@@ -0,0 +1,65 @@
1
+ import type { FetchClient } from '../_internal/fetch-client';
2
+ export interface CreateSessionInput {
3
+ readonly llm_service?: string;
4
+ readonly locale?: string;
5
+ }
6
+ export interface ConversationSendInput {
7
+ readonly session_key: string;
8
+ readonly message: string;
9
+ readonly llm_service?: string;
10
+ readonly locale?: string;
11
+ }
12
+ export interface ApplyGating {
13
+ readonly reject_breaking_changes?: boolean;
14
+ readonly max_changes?: number;
15
+ }
16
+ export interface ApplyChangesetInput {
17
+ readonly base_hash: string;
18
+ readonly gating?: ApplyGating;
19
+ readonly force?: boolean;
20
+ }
21
+ export interface CreateSessionResult {
22
+ readonly session_key: string;
23
+ }
24
+ export interface ConversationSendResult {
25
+ readonly reply: string;
26
+ readonly changeset_id?: string;
27
+ }
28
+ export type ChangesetStatus = 'pending' | 'applied' | 'discarded' | 'stale';
29
+ export interface ChangesetPreview {
30
+ readonly id: string;
31
+ readonly status: ChangesetStatus;
32
+ readonly base_hash: string;
33
+ readonly draft_yaml: string;
34
+ /** Live-recomputed structural delta (`{changes[], impact_summary}`) or null when the draft can't be parsed. */
35
+ readonly diff: unknown;
36
+ }
37
+ export interface ApplyResult {
38
+ readonly applied: boolean;
39
+ readonly applied_version: number;
40
+ readonly diff: unknown;
41
+ readonly stripped_grants: string[];
42
+ }
43
+ export interface DiscardResult {
44
+ readonly discarded: boolean;
45
+ }
46
+ export declare class AssistantResource {
47
+ private readonly client;
48
+ constructor(client: FetchClient);
49
+ /** POST /contract/assistant/conversation/sessions — opens a contract-scope conversation. */
50
+ createSession(input?: CreateSessionInput): Promise<CreateSessionResult>;
51
+ /** POST /contract/assistant/conversation/send — one turn. Stages but NEVER applies (QI-A). */
52
+ conversationSend(input: ConversationSendInput): Promise<ConversationSendResult>;
53
+ /** GET /contract/assistant/changesets/:id — live preview of the staged delta. */
54
+ getChangeset(id: string): Promise<ChangesetPreview>;
55
+ /**
56
+ * POST /contract/assistant/changesets/:id/apply — the SOLE contract-mutation
57
+ * entry point. `base_hash` is deliberate consent over a known base (QI-C).
58
+ * On staleness throws a `ZarelAPIError` whose `details` carries
59
+ * `reseeded_changeset_id`/`base_hash` (FR-024).
60
+ */
61
+ applyChangeset(id: string, input: ApplyChangesetInput): Promise<ApplyResult>;
62
+ /** POST /contract/assistant/changesets/:id/discard — shelve a pending/stale changeset. */
63
+ discardChangeset(id: string): Promise<DiscardResult>;
64
+ }
65
+ //# sourceMappingURL=assistant.d.ts.map