@lucern/sdk 1.0.11 → 1.0.12

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 (330) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/.generated +2 -0
  3. package/dist/accessControl.d.ts +19 -26
  4. package/dist/accessControl.js +195 -1423
  5. package/dist/adminClient.d.ts +52 -59
  6. package/dist/adminClient.js +364 -1142
  7. package/dist/answersClient.d.ts +5 -14
  8. package/dist/answersClient.js +19 -737
  9. package/dist/audience/index.d.ts +18 -18
  10. package/dist/audience/index.js +87 -90
  11. package/dist/audiencesClient.d.ts +19 -27
  12. package/dist/audiencesClient.js +107 -868
  13. package/dist/auditClient.d.ts +8 -15
  14. package/dist/auditClient.js +18 -791
  15. package/dist/authContext.d.ts +11 -16
  16. package/dist/authContext.js +122 -154
  17. package/dist/authDeviceClient.d.ts +8 -17
  18. package/dist/authDeviceClient.js +113 -102
  19. package/dist/beliefs/index.d.ts +15 -67
  20. package/dist/beliefs/index.js +17 -10181
  21. package/dist/beliefs/lifecycle.d.ts +10 -11
  22. package/dist/beliefs/lifecycle.js +78 -80
  23. package/dist/beliefsClient.d.ts +26 -32
  24. package/dist/beliefsClient.js +250 -990
  25. package/dist/boundaryClientSurface.d.ts +11 -16
  26. package/dist/boundaryClientSurface.js +49 -68
  27. package/dist/client.d.ts +64 -112
  28. package/dist/client.js +232 -10155
  29. package/dist/clientAssemblyTypes.d.ts +3 -3
  30. package/dist/clientAssemblyTypes.js +1 -2
  31. package/dist/clientConfig.d.ts +45 -59
  32. package/dist/clientConfig.js +1 -2
  33. package/dist/clientEvidenceCompat.d.ts +7 -14
  34. package/dist/clientEvidenceCompat.js +50 -64
  35. package/dist/clientGraphNamespaces.d.ts +3 -5
  36. package/dist/clientGraphNamespaces.js +170 -245
  37. package/dist/clientHelpers.d.ts +20 -25
  38. package/dist/clientHelpers.js +104 -127
  39. package/dist/clientKnowledgeNamespaces.d.ts +6 -53
  40. package/dist/clientKnowledgeNamespaces.js +502 -506
  41. package/dist/clientLocalHelpers.d.ts +11 -56
  42. package/dist/clientLocalHelpers.js +503 -732
  43. package/dist/clientPlatformNamespaces.d.ts +5 -53
  44. package/dist/clientPlatformNamespaces.js +229 -323
  45. package/dist/clientRuntime.d.ts +5 -53
  46. package/dist/clientRuntime.js +26 -30
  47. package/dist/clientWorkflowNamespaces.d.ts +6 -15
  48. package/dist/clientWorkflowNamespaces.js +529 -596
  49. package/dist/contextClient.d.ts +9 -17
  50. package/dist/contextClient.js +92 -805
  51. package/dist/contextFacade.d.ts +11 -2
  52. package/dist/contextFacade.js +10 -81
  53. package/dist/contextPackCompiler.d.ts +10 -11
  54. package/dist/contextPackCompiler.js +494 -1040
  55. package/dist/contextPackPolicy.d.ts +14 -15
  56. package/dist/contextPackPolicy.js +227 -305
  57. package/dist/contextPackSchema.d.ts +3 -3
  58. package/dist/contextPackSchema.js +169 -176
  59. package/dist/contextTypes.d.ts +14 -15
  60. package/dist/contextTypes.js +1 -2
  61. package/dist/contracts/api-enums.contract.d.ts +29 -30
  62. package/dist/contracts/api-enums.contract.js +162 -88
  63. package/dist/contracts/auth-session.contract.d.ts +13 -14
  64. package/dist/contracts/auth-session.contract.js +55 -52
  65. package/dist/contracts/context-pack.contract.d.ts +54 -55
  66. package/dist/contracts/context-pack.contract.js +160 -88
  67. package/dist/contracts/contextPack.d.ts +2 -1
  68. package/dist/contracts/contextPack.js +1 -97
  69. package/dist/contracts/index.d.ts +11 -12
  70. package/dist/contracts/index.js +10 -854
  71. package/dist/contracts/lens-filter.contract.d.ts +9 -10
  72. package/dist/contracts/lens-filter.contract.js +82 -58
  73. package/dist/contracts/lens-workflow.contract.d.ts +21 -23
  74. package/dist/contracts/lens-workflow.contract.js +48 -117
  75. package/dist/contracts/lensFilter.d.ts +2 -1
  76. package/dist/contracts/lensFilter.js +1 -71
  77. package/dist/contracts/lensWorkflow.d.ts +2 -2
  78. package/dist/contracts/lensWorkflow.js +1 -123
  79. package/dist/contracts/mcpTools.d.ts +16 -18
  80. package/dist/contracts/mcpTools.js +89 -123
  81. package/dist/contracts/prompt.contract.d.ts +4 -5
  82. package/dist/contracts/prompt.contract.js +23 -10
  83. package/dist/contracts/prompt.d.ts +2 -1
  84. package/dist/contracts/prompt.js +1 -11
  85. package/dist/contracts/sdk-tools.contract.d.ts +2 -1
  86. package/dist/contracts/sdk-tools.contract.js +1 -2
  87. package/dist/contracts/sdkTools.d.ts +2 -1
  88. package/dist/contracts/sdkTools.js +1 -26
  89. package/dist/contracts/tool-contracts.d.ts +2 -1
  90. package/dist/contracts/tool-contracts.js +1 -2
  91. package/dist/contracts/workflow-runtime.contract.d.ts +45 -46
  92. package/dist/contracts/workflow-runtime.contract.js +241 -228
  93. package/dist/contracts/workflowRuntime.d.ts +2 -1
  94. package/dist/contracts/workflowRuntime.js +1 -244
  95. package/dist/contradictions/index.d.ts +8 -60
  96. package/dist/contradictions/index.js +11 -10175
  97. package/dist/control-plane.d.ts +17 -24
  98. package/dist/control-plane.js +124 -840
  99. package/dist/controlObjectOwnership.d.ts +19 -20
  100. package/dist/controlObjectOwnership.js +207 -201
  101. package/dist/coreClient.d.ts +23 -28
  102. package/dist/coreClient.js +567 -692
  103. package/dist/customTools.d.ts +17 -21
  104. package/dist/customTools.js +221 -221
  105. package/dist/decisions/index.d.ts +7 -58
  106. package/dist/decisions/index.js +14 -10177
  107. package/dist/decisionsClient.d.ts +25 -32
  108. package/dist/decisionsClient.js +113 -913
  109. package/dist/domainContext.d.ts +2 -1
  110. package/dist/domainContext.js +1 -2
  111. package/dist/edges/index.d.ts +21 -73
  112. package/dist/edges/index.js +12 -10176
  113. package/dist/embeddingsClient.d.ts +22 -30
  114. package/dist/embeddingsClient.js +73 -922
  115. package/dist/eventingClient.d.ts +23 -31
  116. package/dist/eventingClient.js +89 -918
  117. package/dist/events.d.ts +48 -49
  118. package/dist/events.js +257 -241
  119. package/dist/eventsCore.d.ts +20 -29
  120. package/dist/eventsCore.js +86 -830
  121. package/dist/evidence/index.d.ts +9 -60
  122. package/dist/evidence/index.js +13 -10176
  123. package/dist/evidenceClient.d.ts +13 -22
  124. package/dist/evidenceClient.js +34 -751
  125. package/dist/facade/context.d.ts +7 -8
  126. package/dist/facade/context.js +73 -72
  127. package/dist/functionSurface.d.ts +2 -156
  128. package/dist/functionSurface.js +1 -1460
  129. package/dist/functionSurfaceClient.d.ts +2 -9
  130. package/dist/functionSurfaceClient.js +1 -1460
  131. package/dist/gatewayFacades.d.ts +79 -296
  132. package/dist/gatewayFacades.factories.d.ts +209 -14
  133. package/dist/gatewayFacades.factories.js +561 -2227
  134. package/dist/gatewayFacades.js +284 -2627
  135. package/dist/generated/functionSurface.d.ts +149 -0
  136. package/dist/generated/functionSurface.js +749 -0
  137. package/dist/graphAnalysisClient.d.ts +41 -49
  138. package/dist/graphAnalysisClient.js +185 -974
  139. package/dist/graphClient.d.ts +53 -60
  140. package/dist/graphClient.js +219 -1090
  141. package/dist/graphIntel.d.ts +2 -4
  142. package/dist/graphIntel.js +1 -2
  143. package/dist/graphIntelligence.d.ts +4 -2
  144. package/dist/graphIntelligence.js +2 -46
  145. package/dist/graphRecommendationsClient.d.ts +15 -23
  146. package/dist/graphRecommendationsClient.js +70 -849
  147. package/dist/graphStateClassifierClient.d.ts +17 -25
  148. package/dist/graphStateClassifierClient.js +67 -908
  149. package/dist/harnessClient.d.ts +40 -47
  150. package/dist/harnessClient.js +198 -993
  151. package/dist/identityClient.d.ts +25 -33
  152. package/dist/identityClient.js +245 -1186
  153. package/dist/index.d.ts +73 -69
  154. package/dist/index.js +72 -13313
  155. package/dist/infisicalRuntime.d.ts +12 -14
  156. package/dist/infisicalRuntime.js +290 -297
  157. package/dist/jobsClient.d.ts +24 -32
  158. package/dist/jobsClient.js +101 -916
  159. package/dist/learningClient.d.ts +8 -16
  160. package/dist/learningClient.js +45 -809
  161. package/dist/lenses/index.d.ts +13 -65
  162. package/dist/lenses/index.js +11 -10175
  163. package/dist/mcpClient.d.ts +14 -23
  164. package/dist/mcpClient.js +115 -856
  165. package/dist/modelRuntimeClient.d.ts +18 -26
  166. package/dist/modelRuntimeClient.js +74 -894
  167. package/dist/nodes/index.d.ts +7 -58
  168. package/dist/nodes/index.js +14 -10177
  169. package/dist/ontologies/index.d.ts +21 -73
  170. package/dist/ontologies/index.js +14 -10178
  171. package/dist/ontologyClient.d.ts +23 -31
  172. package/dist/ontologyClient.js +138 -924
  173. package/dist/ontologyLinksClient.d.ts +16 -24
  174. package/dist/ontologyLinksClient.js +76 -886
  175. package/dist/opinion.d.ts +5 -6
  176. package/dist/opinion.js +21 -25
  177. package/dist/orgGraphSearchClient.d.ts +19 -27
  178. package/dist/orgGraphSearchClient.js +89 -857
  179. package/dist/packRuntime.d.ts +2 -2
  180. package/dist/packRuntime.js +1 -2
  181. package/dist/packsClient.d.ts +30 -37
  182. package/dist/packsClient.js +131 -906
  183. package/dist/policyClient.d.ts +21 -29
  184. package/dist/policyClient.js +267 -1026
  185. package/dist/proof-attestation.json +1 -1
  186. package/dist/questions/index.d.ts +9 -60
  187. package/dist/questions/index.js +15 -10178
  188. package/dist/realtime/index.d.ts +20 -16
  189. package/dist/realtime/index.js +30 -19
  190. package/dist/realtime/refs.d.ts +4 -6
  191. package/dist/realtime/refs.js +12 -7
  192. package/dist/realtime-refs.d.ts +1 -0
  193. package/dist/realtime-refs.js +1 -0
  194. package/dist/realtime.d.ts +1 -0
  195. package/dist/realtime.js +1 -0
  196. package/dist/reportsClient.d.ts +10 -19
  197. package/dist/reportsClient.js +48 -836
  198. package/dist/schemaClient.d.ts +16 -23
  199. package/dist/schemaClient.js +62 -832
  200. package/dist/sdkSurface.d.ts +18 -25
  201. package/dist/sdkSurface.js +135 -106
  202. package/dist/secrets.d.ts +2 -1
  203. package/dist/secrets.js +1 -2
  204. package/dist/sourcesClient.d.ts +11 -18
  205. package/dist/sourcesClient.js +18 -741
  206. package/dist/telemetryClient.d.ts +22 -30
  207. package/dist/telemetryClient.js +107 -931
  208. package/dist/toolRegistryClient.d.ts +27 -35
  209. package/dist/toolRegistryClient.js +116 -954
  210. package/dist/topics/index.d.ts +13 -64
  211. package/dist/topics/index.js +15 -10178
  212. package/dist/topicsClient.d.ts +19 -27
  213. package/dist/topicsClient.js +106 -894
  214. package/dist/types.d.ts +84 -87
  215. package/dist/types.js +1 -2
  216. package/dist/version.d.ts +2 -3
  217. package/dist/version.js +2 -5
  218. package/dist/workflowClient.d.ts +60 -65
  219. package/dist/workflowClient.js +343 -1219
  220. package/dist/worktrees/index.d.ts +16 -68
  221. package/dist/worktrees/index.js +14 -10178
  222. package/package.json +6 -6
  223. package/dist/accessControl.js.map +0 -1
  224. package/dist/adminClient.js.map +0 -1
  225. package/dist/answersClient.js.map +0 -1
  226. package/dist/audience/index.js.map +0 -1
  227. package/dist/audiencesClient.js.map +0 -1
  228. package/dist/auditClient.js.map +0 -1
  229. package/dist/authContext.js.map +0 -1
  230. package/dist/authDeviceClient.js.map +0 -1
  231. package/dist/beliefs/index.js.map +0 -1
  232. package/dist/beliefs/lifecycle.js.map +0 -1
  233. package/dist/beliefsClient.js.map +0 -1
  234. package/dist/boundaryClientSurface.js.map +0 -1
  235. package/dist/client.js.map +0 -1
  236. package/dist/clientAssemblyTypes.js.map +0 -1
  237. package/dist/clientConfig.js.map +0 -1
  238. package/dist/clientEvidenceCompat.js.map +0 -1
  239. package/dist/clientGraphNamespaces.js.map +0 -1
  240. package/dist/clientHelpers.js.map +0 -1
  241. package/dist/clientKnowledgeNamespaces.js.map +0 -1
  242. package/dist/clientLocalHelpers.js.map +0 -1
  243. package/dist/clientPlatformNamespaces.js.map +0 -1
  244. package/dist/clientRuntime.js.map +0 -1
  245. package/dist/clientWorkflowNamespaces.js.map +0 -1
  246. package/dist/contextClient.js.map +0 -1
  247. package/dist/contextFacade.js.map +0 -1
  248. package/dist/contextPackCompiler.js.map +0 -1
  249. package/dist/contextPackPolicy.js.map +0 -1
  250. package/dist/contextPackSchema.js.map +0 -1
  251. package/dist/contextTypes.js.map +0 -1
  252. package/dist/contracts/api-enums.contract.js.map +0 -1
  253. package/dist/contracts/auth-session.contract.js.map +0 -1
  254. package/dist/contracts/context-pack.contract.js.map +0 -1
  255. package/dist/contracts/contextPack.js.map +0 -1
  256. package/dist/contracts/index.js.map +0 -1
  257. package/dist/contracts/lens-filter.contract.js.map +0 -1
  258. package/dist/contracts/lens-workflow.contract.js.map +0 -1
  259. package/dist/contracts/lensFilter.js.map +0 -1
  260. package/dist/contracts/lensWorkflow.js.map +0 -1
  261. package/dist/contracts/mcpTools.js.map +0 -1
  262. package/dist/contracts/prompt.contract.js.map +0 -1
  263. package/dist/contracts/prompt.js.map +0 -1
  264. package/dist/contracts/sdk-tools.contract.js.map +0 -1
  265. package/dist/contracts/sdkTools.js.map +0 -1
  266. package/dist/contracts/tool-contracts.js.map +0 -1
  267. package/dist/contracts/workflow-runtime.contract.js.map +0 -1
  268. package/dist/contracts/workflowRuntime.js.map +0 -1
  269. package/dist/contradictions/index.js.map +0 -1
  270. package/dist/control-plane.js.map +0 -1
  271. package/dist/controlObjectOwnership.js.map +0 -1
  272. package/dist/coreClient.js.map +0 -1
  273. package/dist/customTools.js.map +0 -1
  274. package/dist/decisions/index.js.map +0 -1
  275. package/dist/decisionsClient.js.map +0 -1
  276. package/dist/domainContext.js.map +0 -1
  277. package/dist/edges/index.js.map +0 -1
  278. package/dist/embeddingsClient.js.map +0 -1
  279. package/dist/eventingClient.js.map +0 -1
  280. package/dist/events.js.map +0 -1
  281. package/dist/eventsCore.js.map +0 -1
  282. package/dist/evidence/index.js.map +0 -1
  283. package/dist/evidenceClient.js.map +0 -1
  284. package/dist/facade/context.js.map +0 -1
  285. package/dist/functionSurface.js.map +0 -1
  286. package/dist/functionSurfaceClient.js.map +0 -1
  287. package/dist/gatewayFacades.factories.js.map +0 -1
  288. package/dist/gatewayFacades.js.map +0 -1
  289. package/dist/graphAnalysisClient.js.map +0 -1
  290. package/dist/graphClient.js.map +0 -1
  291. package/dist/graphIntel.js.map +0 -1
  292. package/dist/graphIntelligence.js.map +0 -1
  293. package/dist/graphRecommendationsClient.js.map +0 -1
  294. package/dist/graphStateClassifierClient.js.map +0 -1
  295. package/dist/harnessClient.js.map +0 -1
  296. package/dist/identityClient.js.map +0 -1
  297. package/dist/index.js.map +0 -1
  298. package/dist/infisicalRuntime.js.map +0 -1
  299. package/dist/jobsClient.js.map +0 -1
  300. package/dist/learningClient.js.map +0 -1
  301. package/dist/lenses/index.js.map +0 -1
  302. package/dist/mcpClient.js.map +0 -1
  303. package/dist/modelRuntimeClient.js.map +0 -1
  304. package/dist/nodes/index.js.map +0 -1
  305. package/dist/ontologies/index.js.map +0 -1
  306. package/dist/ontologyClient.js.map +0 -1
  307. package/dist/ontologyLinksClient.js.map +0 -1
  308. package/dist/opinion.js.map +0 -1
  309. package/dist/orgGraphSearchClient.js.map +0 -1
  310. package/dist/packRuntime.js.map +0 -1
  311. package/dist/packsClient.js.map +0 -1
  312. package/dist/policyClient.js.map +0 -1
  313. package/dist/questions/index.js.map +0 -1
  314. package/dist/realtime/index.js.map +0 -1
  315. package/dist/realtime/refs.js.map +0 -1
  316. package/dist/reportsClient.js.map +0 -1
  317. package/dist/schemaClient.js.map +0 -1
  318. package/dist/sdk-tools.contract-B4c1Zr1o.d.ts +0 -22
  319. package/dist/sdkSurface.js.map +0 -1
  320. package/dist/secrets.js.map +0 -1
  321. package/dist/sourcesClient.js.map +0 -1
  322. package/dist/telemetryClient.js.map +0 -1
  323. package/dist/tool-contracts-BUiL9P6z.d.ts +0 -22
  324. package/dist/toolRegistryClient.js.map +0 -1
  325. package/dist/topics/index.js.map +0 -1
  326. package/dist/topicsClient.js.map +0 -1
  327. package/dist/types.js.map +0 -1
  328. package/dist/version.js.map +0 -1
  329. package/dist/workflowClient.js.map +0 -1
  330. package/dist/worktrees/index.js.map +0 -1
package/dist/events.js CHANGED
@@ -1,254 +1,270 @@
1
- // src/events.ts
2
- var DOMAIN_EVENT_VERSION = "1.0";
3
- var EVENT_RETENTION_DEFAULT_DAYS = 30;
4
- var WEBHOOK_MAX_ATTEMPTS = 5;
5
- var WEBHOOK_RETRY_DELAYS_MS = [1e3, 5e3, 3e4, 3e5];
6
- var DOMAIN_EVENT_TYPES = [
7
- "belief.created",
8
- "belief.forked",
9
- "belief.confidence_updated",
10
- "belief.archived",
11
- "belief.refined",
12
- "belief.contract_created",
13
- "belief.contract_evaluated",
14
- "belief.lineage_queried",
15
- "evidence.created",
16
- "evidence.linked",
17
- "evidence.search_executed",
18
- "question.created",
19
- "question.answered",
20
- "question.refined",
21
- "question.status_updated",
22
- "question.archived",
23
- "edge.created",
24
- "contradiction.flagged",
25
- "worktree.created",
26
- "worktree.activated",
27
- "worktree.merged",
28
- "worktree.targets_updated",
29
- "worktree.metadata_updated",
30
- "topic.created",
31
- "topic.updated",
32
- "topic.archived",
33
- "task.created",
34
- "task.completed",
35
- "task.updated",
36
- "ontology.bound",
37
- "context.compiled",
38
- "identity.key_created",
39
- "identity.key_rotated",
40
- "identity.key_revoked",
41
- "webhook.test"
1
+ export const DOMAIN_EVENT_VERSION = "1.0";
2
+ export const EVENT_RETENTION_DEFAULT_DAYS = 30;
3
+ export const WEBHOOK_MAX_ATTEMPTS = 5;
4
+ export const WEBHOOK_RETRY_DELAYS_MS = [1_000, 5_000, 30_000, 300_000];
5
+ export const DOMAIN_EVENT_TYPES = [
6
+ "belief.created",
7
+ "belief.forked",
8
+ "belief.confidence_updated",
9
+ "belief.archived",
10
+ "belief.refined",
11
+ "belief.contract_created",
12
+ "belief.contract_evaluated",
13
+ "belief.lineage_queried",
14
+ "evidence.created",
15
+ "evidence.linked",
16
+ "evidence.search_executed",
17
+ "question.created",
18
+ "question.answered",
19
+ "question.refined",
20
+ "question.status_updated",
21
+ "question.archived",
22
+ "edge.created",
23
+ "contradiction.flagged",
24
+ "worktree.created",
25
+ "worktree.activated",
26
+ "worktree.merged",
27
+ "worktree.targets_updated",
28
+ "worktree.metadata_updated",
29
+ "topic.created",
30
+ "topic.updated",
31
+ "topic.archived",
32
+ "task.created",
33
+ "task.completed",
34
+ "task.updated",
35
+ "ontology.bound",
36
+ "context.compiled",
37
+ "identity.key_created",
38
+ "identity.key_rotated",
39
+ "identity.key_revoked",
40
+ "webhook.test",
42
41
  ];
43
- var RUNTIME_BUFFER = globalThis.Buffer;
44
- var RUNTIME_ENV = globalThis.process?.env;
42
+ const RUNTIME_BUFFER = globalThis.Buffer;
43
+ const RUNTIME_ENV = globalThis.process?.env;
45
44
  function escapeRegex(value) {
46
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
47
- }
48
- function eventPatternToRegExp(pattern) {
49
- const normalized = pattern.trim();
50
- if (!normalized) {
51
- return /^$/;
52
- }
53
- if (normalized === "*") {
54
- return /^.*$/;
55
- }
56
- const source = escapeRegex(normalized).replace(/\\\*/g, ".*");
57
- return new RegExp(`^${source}$`);
58
- }
59
- function matchesEventPattern(eventType, pattern) {
60
- return eventPatternToRegExp(pattern).test(eventType.trim());
61
- }
62
- function matchesAnyEventPattern(eventType, patterns) {
63
- if (patterns.length === 0) {
64
- return true;
65
- }
66
- return patterns.some((pattern) => matchesEventPattern(eventType, pattern));
45
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
46
+ }
47
+ export function eventPatternToRegExp(pattern) {
48
+ const normalized = pattern.trim();
49
+ if (!normalized) {
50
+ return /^$/;
51
+ }
52
+ if (normalized === "*") {
53
+ return /^.*$/;
54
+ }
55
+ const source = escapeRegex(normalized).replace(/\\\*/g, ".*");
56
+ return new RegExp(`^${source}$`);
57
+ }
58
+ export function matchesEventPattern(eventType, pattern) {
59
+ return eventPatternToRegExp(pattern).test(eventType.trim());
60
+ }
61
+ export function matchesAnyEventPattern(eventType, patterns) {
62
+ if (patterns.length === 0) {
63
+ return true;
64
+ }
65
+ return patterns.some((pattern) => matchesEventPattern(eventType, pattern));
67
66
  }
68
67
  function toBase64(value) {
69
- if (RUNTIME_BUFFER) {
70
- return RUNTIME_BUFFER.from(value, "utf8").toString("base64url");
71
- }
72
- return btoa(unescape(encodeURIComponent(value))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
68
+ if (RUNTIME_BUFFER) {
69
+ return RUNTIME_BUFFER.from(value, "utf8").toString("base64url");
70
+ }
71
+ return btoa(unescape(encodeURIComponent(value)))
72
+ .replace(/\+/g, "-")
73
+ .replace(/\//g, "_")
74
+ .replace(/=+$/g, "");
73
75
  }
74
76
  function fromBase64(value) {
75
- if (RUNTIME_BUFFER) {
76
- return RUNTIME_BUFFER.from(value, "base64url").toString("utf8");
77
- }
78
- const normalized = value.replace(/-/g, "+").replace(/_/g, "/");
79
- return decodeURIComponent(escape(atob(normalized)));
77
+ if (RUNTIME_BUFFER) {
78
+ return RUNTIME_BUFFER.from(value, "base64url").toString("utf8");
79
+ }
80
+ const normalized = value.replace(/-/g, "+").replace(/_/g, "/");
81
+ return decodeURIComponent(escape(atob(normalized)));
80
82
  }
81
83
  function isRecord(value) {
82
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
83
- }
84
- function createEventId() {
85
- const random = typeof globalThis.crypto?.randomUUID === "function" ? globalThis.crypto.randomUUID().replace(/-/g, "") : Array.from(
86
- typeof globalThis.crypto?.getRandomValues === "function" ? globalThis.crypto.getRandomValues(new Uint8Array(16)) : Array.from({ length: 16 }, () => Math.floor(Math.random() * 256)),
87
- (value) => value.toString(16).padStart(2, "0")
88
- ).join("");
89
- return `evt_${random}`;
90
- }
91
- function normalizeRetentionDays(value) {
92
- if (!Number.isFinite(value) || typeof value !== "number" || value <= 0) {
93
- return EVENT_RETENTION_DEFAULT_DAYS;
94
- }
95
- return Math.max(1, Math.trunc(value));
96
- }
97
- function buildDomainEvent(input) {
98
- const timestamp = input.timestamp ?? Date.now();
99
- const retentionDays = normalizeRetentionDays(input.retentionDays);
100
- return {
101
- eventId: input.eventId?.trim() || createEventId(),
102
- type: input.type.trim(),
103
- version: DOMAIN_EVENT_VERSION,
104
- timestamp,
105
- tenantId: input.tenantId?.trim() || void 0,
106
- workspaceId: input.workspaceId?.trim() || void 0,
107
- topicId: input.topicId.trim(),
108
- resourceId: input.resourceId.trim(),
109
- resourceType: input.resourceType.trim(),
110
- actorId: input.actorId.trim(),
111
- actorType: input.actorType,
112
- data: input.data ?? {},
113
- correlationId: input.correlationId?.trim() || void 0,
114
- expiresAt: timestamp + retentionDays * 24 * 60 * 60 * 1e3
115
- };
116
- }
117
- function compareEventCursor(left, right) {
118
- if (left.timestamp !== right.timestamp) {
119
- return left.timestamp - right.timestamp;
120
- }
121
- return left.eventId.localeCompare(right.eventId);
122
- }
123
- function encodeEventCursor(cursor) {
124
- return toBase64(JSON.stringify(cursor));
125
- }
126
- function decodeEventCursor(cursor) {
127
- if (!cursor || cursor.trim().length === 0) {
128
- return null;
129
- }
130
- try {
131
- const parsed = JSON.parse(fromBase64(cursor.trim()));
132
- if (!isRecord(parsed) || typeof parsed.timestamp !== "number" || !Number.isFinite(parsed.timestamp) || typeof parsed.eventId !== "string" || parsed.eventId.trim().length === 0) {
133
- return null;
84
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
85
+ }
86
+ export function createEventId() {
87
+ const random = typeof globalThis.crypto?.randomUUID === "function"
88
+ ? globalThis.crypto.randomUUID().replace(/-/g, "")
89
+ : Array.from(typeof globalThis.crypto?.getRandomValues === "function"
90
+ ? globalThis.crypto.getRandomValues(new Uint8Array(16))
91
+ : Array.from({ length: 16 }, () => Math.floor(Math.random() * 256)), (value) => value.toString(16).padStart(2, "0")).join("");
92
+ return `evt_${random}`;
93
+ }
94
+ export function normalizeRetentionDays(value) {
95
+ if (!Number.isFinite(value) || typeof value !== "number" || value <= 0) {
96
+ return EVENT_RETENTION_DEFAULT_DAYS;
134
97
  }
98
+ return Math.max(1, Math.trunc(value));
99
+ }
100
+ export function buildDomainEvent(input) {
101
+ const timestamp = input.timestamp ?? Date.now();
102
+ const retentionDays = normalizeRetentionDays(input.retentionDays);
135
103
  return {
136
- timestamp: parsed.timestamp,
137
- eventId: parsed.eventId.trim()
104
+ eventId: input.eventId?.trim() || createEventId(),
105
+ type: input.type.trim(),
106
+ version: DOMAIN_EVENT_VERSION,
107
+ timestamp,
108
+ tenantId: input.tenantId?.trim() || undefined,
109
+ workspaceId: input.workspaceId?.trim() || undefined,
110
+ topicId: input.topicId.trim(),
111
+ resourceId: input.resourceId.trim(),
112
+ resourceType: input.resourceType.trim(),
113
+ actorId: input.actorId.trim(),
114
+ actorType: input.actorType,
115
+ data: input.data ?? {},
116
+ correlationId: input.correlationId?.trim() || undefined,
117
+ expiresAt: timestamp + retentionDays * 24 * 60 * 60 * 1000,
138
118
  };
139
- } catch (error) {
140
- return null;
141
- }
142
- }
143
- function isAfterCursor(event, cursor) {
144
- if (!cursor) {
145
- return true;
146
- }
147
- return compareEventCursor(event, cursor) > 0;
148
- }
149
- function sortEventsByCursor(events) {
150
- return [...events].sort((left, right) => compareEventCursor(left, right));
151
- }
152
- function inferActorType(args) {
153
- if (args.sessionType === "agent") {
154
- return "agent";
155
- }
156
- if (args.authMode === "service_principal" || args.authMode === "tenant_api_key" || args.principalType === "service") {
157
- return "service";
158
- }
159
- return "human";
160
- }
161
- async function emitDomainEvent(invokeMutation, input) {
162
- return await invokeMutation("events:recordEvent", input);
163
- }
164
- var LOCALHOST_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
119
+ }
120
+ export function compareEventCursor(left, right) {
121
+ if (left.timestamp !== right.timestamp) {
122
+ return left.timestamp - right.timestamp;
123
+ }
124
+ return left.eventId.localeCompare(right.eventId);
125
+ }
126
+ export function encodeEventCursor(cursor) {
127
+ return toBase64(JSON.stringify(cursor));
128
+ }
129
+ export function decodeEventCursor(cursor) {
130
+ if (!cursor || cursor.trim().length === 0) {
131
+ return null;
132
+ }
133
+ try {
134
+ const parsed = JSON.parse(fromBase64(cursor.trim()));
135
+ if (!isRecord(parsed) ||
136
+ typeof parsed.timestamp !== "number" ||
137
+ !Number.isFinite(parsed.timestamp) ||
138
+ typeof parsed.eventId !== "string" ||
139
+ parsed.eventId.trim().length === 0) {
140
+ return null;
141
+ }
142
+ return {
143
+ timestamp: parsed.timestamp,
144
+ eventId: parsed.eventId.trim(),
145
+ };
146
+ }
147
+ catch (error) {
148
+ void error;
149
+ return null;
150
+ }
151
+ }
152
+ export function isAfterCursor(event, cursor) {
153
+ if (!cursor) {
154
+ return true;
155
+ }
156
+ return compareEventCursor(event, cursor) > 0;
157
+ }
158
+ export function sortEventsByCursor(events) {
159
+ return [...events].sort((left, right) => compareEventCursor(left, right));
160
+ }
161
+ export function inferActorType(args) {
162
+ if (args.sessionType === "agent") {
163
+ return "agent";
164
+ }
165
+ if (args.authMode === "service_principal" ||
166
+ args.authMode === "tenant_api_key" ||
167
+ args.principalType === "service") {
168
+ return "service";
169
+ }
170
+ return "human";
171
+ }
172
+ export async function emitDomainEvent(invokeMutation, input) {
173
+ return await invokeMutation("events:recordEvent", input);
174
+ }
175
+ const LOCALHOST_HOSTS = new Set(["localhost", "127.0.0.1", "::1"]);
165
176
  function normalizeUrl(url) {
166
- try {
167
- return new URL(url.trim());
168
- } catch (error) {
169
- throw new Error("Webhook URL must be a valid absolute URL.");
170
- }
171
- }
172
- function assertValidWebhookUrl(url) {
173
- const parsed = normalizeUrl(url);
174
- const hostname = parsed.hostname.trim().toLowerCase();
175
- const nodeEnv = RUNTIME_ENV?.NODE_ENV;
176
- const allowLocalHttp = nodeEnv === "test" || LOCALHOST_HOSTS.has(hostname);
177
- if (parsed.protocol !== "https:" && !(allowLocalHttp && parsed.protocol === "http:")) {
178
- throw new Error("Webhook URL must use HTTPS.");
179
- }
180
- return parsed.toString();
181
- }
182
- function normalizeWebhookPatterns(patterns) {
183
- const normalized = Array.from(
184
- new Set(
185
- patterns.map((pattern) => pattern.trim()).filter((pattern) => pattern.length > 0)
186
- )
187
- );
188
- if (normalized.length === 0) {
189
- throw new Error("At least one webhook event pattern is required.");
190
- }
191
- return normalized;
192
- }
193
- function assertValidWebhookSecret(secret) {
194
- const normalized = secret.trim();
195
- if (normalized.length < 8) {
196
- throw new Error("Webhook secret must be at least 8 characters.");
197
- }
198
- return normalized;
199
- }
200
- async function computeWebhookSignature(payload, secret) {
201
- const encoder = new TextEncoder();
202
- const key = await crypto.subtle.importKey(
203
- "raw",
204
- encoder.encode(secret),
205
- { name: "HMAC", hash: "SHA-256" },
206
- false,
207
- ["sign"]
208
- );
209
- const signature = await crypto.subtle.sign("HMAC", key, encoder.encode(payload));
210
- return Array.from(new Uint8Array(signature)).map((byte) => byte.toString(16).padStart(2, "0")).join("");
211
- }
212
- function nextDeliveryAttemptAt(currentAttemptCount, now = Date.now()) {
213
- if (currentAttemptCount >= WEBHOOK_MAX_ATTEMPTS) {
214
- return void 0;
215
- }
216
- const retryIndex = currentAttemptCount - 1;
217
- const delay = WEBHOOK_RETRY_DELAYS_MS[retryIndex];
218
- return typeof delay === "number" ? now + delay : void 0;
219
- }
220
- function resolveDeliveryFailureStatus(attemptCount) {
221
- return attemptCount >= WEBHOOK_MAX_ATTEMPTS ? "dead_letter" : "failed";
222
- }
223
- function sanitizeWebhookRecord(value) {
224
- return {
225
- id: String(value.id ?? value.webhookId ?? value._id ?? ""),
226
- webhookId: String(value.webhookId ?? value.id ?? value._id ?? ""),
227
- tenantId: typeof value.tenantId === "string" && value.tenantId.trim().length > 0 ? value.tenantId : void 0,
228
- workspaceId: typeof value.workspaceId === "string" && value.workspaceId.trim().length > 0 ? value.workspaceId : void 0,
229
- topicId: typeof value.topicId === "string" && value.topicId.trim().length > 0 ? value.topicId : void 0,
230
- url: String(value.url ?? ""),
231
- events: Array.isArray(value.events) ? value.events.map((entry) => typeof entry === "string" ? entry.trim() : "").filter(Boolean) : [],
232
- active: value.active !== false,
233
- secretConfigured: true,
234
- createdAt: Number(value.createdAt ?? Date.now()),
235
- updatedAt: Number(value.updatedAt ?? value.createdAt ?? Date.now()),
236
- createdBy: String(value.createdBy ?? ""),
237
- updatedBy: String(value.updatedBy ?? value.createdBy ?? ""),
238
- lastDeliveryAt: typeof value.lastDeliveryAt === "number" ? value.lastDeliveryAt : void 0,
239
- lastSuccessfulDeliveryAt: typeof value.lastSuccessfulDeliveryAt === "number" ? value.lastSuccessfulDeliveryAt : void 0
240
- };
241
- }
242
- function truncateWebhookResponseBody(responseBody, maxLength = 2e3) {
243
- if (!responseBody) {
244
- return void 0;
245
- }
246
- if (responseBody.length <= maxLength) {
247
- return responseBody;
248
- }
249
- return `${responseBody.slice(0, maxLength - 3)}...`;
250
- }
251
-
252
- export { DOMAIN_EVENT_TYPES, DOMAIN_EVENT_VERSION, EVENT_RETENTION_DEFAULT_DAYS, WEBHOOK_MAX_ATTEMPTS, WEBHOOK_RETRY_DELAYS_MS, assertValidWebhookSecret, assertValidWebhookUrl, buildDomainEvent, compareEventCursor, computeWebhookSignature, createEventId, decodeEventCursor, emitDomainEvent, encodeEventCursor, eventPatternToRegExp, inferActorType, isAfterCursor, matchesAnyEventPattern, matchesEventPattern, nextDeliveryAttemptAt, normalizeRetentionDays, normalizeWebhookPatterns, resolveDeliveryFailureStatus, sanitizeWebhookRecord, sortEventsByCursor, truncateWebhookResponseBody };
253
- //# sourceMappingURL=events.js.map
177
+ try {
178
+ return new URL(url.trim());
179
+ }
180
+ catch (error) {
181
+ void error;
182
+ throw new Error("Webhook URL must be a valid absolute URL.");
183
+ }
184
+ }
185
+ export function assertValidWebhookUrl(url) {
186
+ const parsed = normalizeUrl(url);
187
+ const hostname = parsed.hostname.trim().toLowerCase();
188
+ const nodeEnv = RUNTIME_ENV?.NODE_ENV;
189
+ const allowLocalHttp = nodeEnv === "test" || LOCALHOST_HOSTS.has(hostname);
190
+ if (parsed.protocol !== "https:" && !(allowLocalHttp && parsed.protocol === "http:")) {
191
+ throw new Error("Webhook URL must use HTTPS.");
192
+ }
193
+ return parsed.toString();
194
+ }
195
+ export function normalizeWebhookPatterns(patterns) {
196
+ const normalized = Array.from(new Set(patterns
197
+ .map((pattern) => pattern.trim())
198
+ .filter((pattern) => pattern.length > 0)));
199
+ if (normalized.length === 0) {
200
+ throw new Error("At least one webhook event pattern is required.");
201
+ }
202
+ return normalized;
203
+ }
204
+ export function assertValidWebhookSecret(secret) {
205
+ const normalized = secret.trim();
206
+ if (normalized.length < 8) {
207
+ throw new Error("Webhook secret must be at least 8 characters.");
208
+ }
209
+ return normalized;
210
+ }
211
+ export async function computeWebhookSignature(payload, secret) {
212
+ const encoder = new TextEncoder();
213
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
214
+ const signature = await crypto.subtle.sign("HMAC", key, encoder.encode(payload));
215
+ return Array.from(new Uint8Array(signature))
216
+ .map((byte) => byte.toString(16).padStart(2, "0"))
217
+ .join("");
218
+ }
219
+ export function nextDeliveryAttemptAt(currentAttemptCount, now = Date.now()) {
220
+ if (currentAttemptCount >= WEBHOOK_MAX_ATTEMPTS) {
221
+ return undefined;
222
+ }
223
+ const retryIndex = currentAttemptCount - 1;
224
+ const delay = WEBHOOK_RETRY_DELAYS_MS[retryIndex];
225
+ return typeof delay === "number" ? now + delay : undefined;
226
+ }
227
+ export function resolveDeliveryFailureStatus(attemptCount) {
228
+ return attemptCount >= WEBHOOK_MAX_ATTEMPTS ? "dead_letter" : "failed";
229
+ }
230
+ export function sanitizeWebhookRecord(value) {
231
+ return {
232
+ id: String(value.id ?? value.webhookId ?? value._id ?? ""),
233
+ webhookId: String(value.webhookId ?? value.id ?? value._id ?? ""),
234
+ tenantId: typeof value.tenantId === "string" && value.tenantId.trim().length > 0
235
+ ? value.tenantId
236
+ : undefined,
237
+ workspaceId: typeof value.workspaceId === "string" && value.workspaceId.trim().length > 0
238
+ ? value.workspaceId
239
+ : undefined,
240
+ topicId: typeof value.topicId === "string" && value.topicId.trim().length > 0
241
+ ? value.topicId
242
+ : undefined,
243
+ url: String(value.url ?? ""),
244
+ events: Array.isArray(value.events)
245
+ ? value.events
246
+ .map((entry) => (typeof entry === "string" ? entry.trim() : ""))
247
+ .filter(Boolean)
248
+ : [],
249
+ active: value.active !== false,
250
+ secretConfigured: true,
251
+ createdAt: Number(value.createdAt ?? Date.now()),
252
+ updatedAt: Number(value.updatedAt ?? value.createdAt ?? Date.now()),
253
+ createdBy: String(value.createdBy ?? ""),
254
+ updatedBy: String(value.updatedBy ?? value.createdBy ?? ""),
255
+ lastDeliveryAt: typeof value.lastDeliveryAt === "number" ? value.lastDeliveryAt : undefined,
256
+ lastSuccessfulDeliveryAt: typeof value.lastSuccessfulDeliveryAt === "number"
257
+ ? value.lastSuccessfulDeliveryAt
258
+ : undefined,
259
+ };
260
+ }
261
+ export function truncateWebhookResponseBody(responseBody, maxLength = 2_000) {
262
+ if (!responseBody) {
263
+ return undefined;
264
+ }
265
+ if (responseBody.length <= maxLength) {
266
+ return responseBody;
267
+ }
268
+ return `${responseBody.slice(0, maxLength - 3)}...`;
269
+ }
254
270
  //# sourceMappingURL=events.js.map
@@ -1,42 +1,34 @@
1
- import { GatewayClientConfig, PlatformGatewaySuccess } from './coreClient.js';
2
- import { EventListResult, ReplayEventsResult, WebhookRecord, WebhookDeliveriesResult, WebhookHealthResult, WebhookTestResult, EventListQuery, ReplayEventsInput, WebhookCreateInput, WebhookUpdateInput } from './events.js';
3
- import '@lucern/transport-core';
4
- import './authContext.js';
5
- import './contracts/auth-session.contract.js';
6
- import './types.js';
7
- import './contracts/workflow-runtime.contract.js';
8
- import './contracts/lens-workflow.contract.js';
9
- import './contracts/lens-filter.contract.js';
10
-
11
- type EventsClientCoreConfig = GatewayClientConfig;
12
- type EventsListResponse = PlatformGatewaySuccess<EventListResult>;
13
- type EventsReplayResponse = PlatformGatewaySuccess<ReplayEventsResult>;
14
- type WebhooksClientCoreConfig = GatewayClientConfig;
15
- type WebhookListQuery = {
1
+ import { type GatewayClientConfig, type PlatformGatewaySuccess } from "./coreClient";
2
+ import type { EventListQuery, EventListResult, ReplayEventsInput, ReplayEventsResult, WebhookCreateInput, WebhookDeliveriesResult, WebhookHealthResult, WebhookRecord, WebhookTestResult, WebhookUpdateInput } from "./events";
3
+ export type EventsClientCoreConfig = GatewayClientConfig;
4
+ export type EventsListResponse = PlatformGatewaySuccess<EventListResult>;
5
+ export type EventsReplayResponse = PlatformGatewaySuccess<ReplayEventsResult>;
6
+ export type WebhooksClientCoreConfig = GatewayClientConfig;
7
+ export type WebhookListQuery = {
16
8
  topicId?: string;
17
9
  };
18
- type WebhookDeliveriesQuery = {
10
+ export type WebhookDeliveriesQuery = {
19
11
  limit?: number;
20
12
  };
21
- type WebhookDeleteResult = {
13
+ export type WebhookDeleteResult = {
22
14
  webhookId: string;
23
15
  deleted: boolean;
24
16
  };
25
- type WebhooksCreateResponse = PlatformGatewaySuccess<WebhookRecord>;
26
- type WebhooksListResponse = PlatformGatewaySuccess<{
17
+ export type WebhooksCreateResponse = PlatformGatewaySuccess<WebhookRecord>;
18
+ export type WebhooksListResponse = PlatformGatewaySuccess<{
27
19
  webhooks: WebhookRecord[];
28
20
  }>;
29
- type WebhooksGetResponse = PlatformGatewaySuccess<WebhookRecord>;
30
- type WebhooksUpdateResponse = PlatformGatewaySuccess<WebhookRecord>;
31
- type WebhooksDeleteResponse = PlatformGatewaySuccess<WebhookDeleteResult>;
32
- type WebhooksTestResponse = PlatformGatewaySuccess<WebhookTestResult>;
33
- type WebhooksDeliveriesResponse = PlatformGatewaySuccess<WebhookDeliveriesResult>;
34
- type WebhooksHealthResponse = PlatformGatewaySuccess<WebhookHealthResult>;
35
- declare function createEventsClientCore(config?: EventsClientCoreConfig): {
21
+ export type WebhooksGetResponse = PlatformGatewaySuccess<WebhookRecord>;
22
+ export type WebhooksUpdateResponse = PlatformGatewaySuccess<WebhookRecord>;
23
+ export type WebhooksDeleteResponse = PlatformGatewaySuccess<WebhookDeleteResult>;
24
+ export type WebhooksTestResponse = PlatformGatewaySuccess<WebhookTestResult>;
25
+ export type WebhooksDeliveriesResponse = PlatformGatewaySuccess<WebhookDeliveriesResult>;
26
+ export type WebhooksHealthResponse = PlatformGatewaySuccess<WebhookHealthResult>;
27
+ export declare function createEventsClientCore(config?: EventsClientCoreConfig): {
36
28
  list(query?: EventListQuery): Promise<EventsListResponse>;
37
29
  replay(input: ReplayEventsInput, idempotencyKey?: string): Promise<EventsReplayResponse>;
38
30
  };
39
- declare function createWebhooksClientCore(config?: WebhooksClientCoreConfig): {
31
+ export declare function createWebhooksClientCore(config?: WebhooksClientCoreConfig): {
40
32
  create(input: WebhookCreateInput, idempotencyKey?: string): Promise<WebhooksCreateResponse>;
41
33
  list(query?: WebhookListQuery): Promise<WebhooksListResponse>;
42
34
  get(id: string): Promise<WebhooksGetResponse>;
@@ -48,5 +40,4 @@ declare function createWebhooksClientCore(config?: WebhooksClientCoreConfig): {
48
40
  deliveries(id: string, query?: WebhookDeliveriesQuery): Promise<WebhooksDeliveriesResponse>;
49
41
  health(id: string): Promise<WebhooksHealthResponse>;
50
42
  };
51
-
52
- export { type EventsClientCoreConfig, type EventsListResponse, type EventsReplayResponse, type WebhookDeleteResult, type WebhookDeliveriesQuery, type WebhookListQuery, type WebhooksClientCoreConfig, type WebhooksCreateResponse, type WebhooksDeleteResponse, type WebhooksDeliveriesResponse, type WebhooksGetResponse, type WebhooksHealthResponse, type WebhooksListResponse, type WebhooksTestResponse, type WebhooksUpdateResponse, createEventsClientCore, createWebhooksClientCore };
43
+ //# sourceMappingURL=eventsCore.d.ts.map