@lucern/sdk 1.0.11 → 1.0.13

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 (331) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +24 -27
  3. package/dist/.generated +2 -0
  4. package/dist/accessControl.d.ts +19 -26
  5. package/dist/accessControl.js +195 -1423
  6. package/dist/adminClient.d.ts +52 -59
  7. package/dist/adminClient.js +364 -1142
  8. package/dist/answersClient.d.ts +5 -14
  9. package/dist/answersClient.js +19 -737
  10. package/dist/audience/index.d.ts +18 -18
  11. package/dist/audience/index.js +87 -90
  12. package/dist/audiencesClient.d.ts +19 -27
  13. package/dist/audiencesClient.js +107 -868
  14. package/dist/auditClient.d.ts +8 -15
  15. package/dist/auditClient.js +18 -791
  16. package/dist/authContext.d.ts +11 -16
  17. package/dist/authContext.js +122 -154
  18. package/dist/authDeviceClient.d.ts +8 -17
  19. package/dist/authDeviceClient.js +113 -102
  20. package/dist/beliefs/index.d.ts +16 -67
  21. package/dist/beliefs/index.js +20 -10181
  22. package/dist/beliefs/lifecycle.d.ts +10 -11
  23. package/dist/beliefs/lifecycle.js +78 -80
  24. package/dist/beliefsClient.d.ts +30 -35
  25. package/dist/beliefsClient.js +238 -994
  26. package/dist/boundaryClientSurface.d.ts +11 -16
  27. package/dist/boundaryClientSurface.js +49 -68
  28. package/dist/client.d.ts +82 -113
  29. package/dist/client.js +232 -10155
  30. package/dist/clientAssemblyTypes.d.ts +3 -3
  31. package/dist/clientAssemblyTypes.js +1 -2
  32. package/dist/clientConfig.d.ts +45 -59
  33. package/dist/clientConfig.js +1 -2
  34. package/dist/clientEvidenceCompat.d.ts +24 -14
  35. package/dist/clientEvidenceCompat.js +56 -64
  36. package/dist/clientGraphNamespaces.d.ts +3 -5
  37. package/dist/clientGraphNamespaces.js +170 -245
  38. package/dist/clientHelpers.d.ts +20 -25
  39. package/dist/clientHelpers.js +104 -127
  40. package/dist/clientKnowledgeNamespaces.d.ts +24 -54
  41. package/dist/clientKnowledgeNamespaces.js +506 -506
  42. package/dist/clientLocalHelpers.d.ts +11 -56
  43. package/dist/clientLocalHelpers.js +503 -732
  44. package/dist/clientPlatformNamespaces.d.ts +5 -53
  45. package/dist/clientPlatformNamespaces.js +229 -323
  46. package/dist/clientRuntime.d.ts +5 -53
  47. package/dist/clientRuntime.js +26 -30
  48. package/dist/clientWorkflowNamespaces.d.ts +6 -15
  49. package/dist/clientWorkflowNamespaces.js +529 -596
  50. package/dist/contextClient.d.ts +9 -17
  51. package/dist/contextClient.js +92 -805
  52. package/dist/contextFacade.d.ts +11 -2
  53. package/dist/contextFacade.js +10 -81
  54. package/dist/contextPackCompiler.d.ts +10 -11
  55. package/dist/contextPackCompiler.js +494 -1040
  56. package/dist/contextPackPolicy.d.ts +14 -15
  57. package/dist/contextPackPolicy.js +227 -305
  58. package/dist/contextPackSchema.d.ts +3 -3
  59. package/dist/contextPackSchema.js +169 -176
  60. package/dist/contextTypes.d.ts +14 -15
  61. package/dist/contextTypes.js +1 -2
  62. package/dist/contracts/api-enums.contract.d.ts +29 -30
  63. package/dist/contracts/api-enums.contract.js +162 -88
  64. package/dist/contracts/auth-session.contract.d.ts +13 -14
  65. package/dist/contracts/auth-session.contract.js +55 -52
  66. package/dist/contracts/context-pack.contract.d.ts +54 -55
  67. package/dist/contracts/context-pack.contract.js +160 -88
  68. package/dist/contracts/contextPack.d.ts +2 -1
  69. package/dist/contracts/contextPack.js +1 -97
  70. package/dist/contracts/index.d.ts +11 -12
  71. package/dist/contracts/index.js +10 -854
  72. package/dist/contracts/lens-filter.contract.d.ts +9 -10
  73. package/dist/contracts/lens-filter.contract.js +82 -58
  74. package/dist/contracts/lens-workflow.contract.d.ts +21 -23
  75. package/dist/contracts/lens-workflow.contract.js +48 -117
  76. package/dist/contracts/lensFilter.d.ts +2 -1
  77. package/dist/contracts/lensFilter.js +1 -71
  78. package/dist/contracts/lensWorkflow.d.ts +2 -2
  79. package/dist/contracts/lensWorkflow.js +1 -123
  80. package/dist/contracts/mcpTools.d.ts +16 -18
  81. package/dist/contracts/mcpTools.js +89 -123
  82. package/dist/contracts/prompt.contract.d.ts +4 -5
  83. package/dist/contracts/prompt.contract.js +23 -10
  84. package/dist/contracts/prompt.d.ts +2 -1
  85. package/dist/contracts/prompt.js +1 -11
  86. package/dist/contracts/sdk-tools.contract.d.ts +2 -1
  87. package/dist/contracts/sdk-tools.contract.js +1 -2
  88. package/dist/contracts/sdkTools.d.ts +2 -1
  89. package/dist/contracts/sdkTools.js +1 -26
  90. package/dist/contracts/tool-contracts.d.ts +2 -1
  91. package/dist/contracts/tool-contracts.js +1 -2
  92. package/dist/contracts/workflow-runtime.contract.d.ts +45 -46
  93. package/dist/contracts/workflow-runtime.contract.js +241 -228
  94. package/dist/contracts/workflowRuntime.d.ts +2 -1
  95. package/dist/contracts/workflowRuntime.js +1 -244
  96. package/dist/contradictions/index.d.ts +8 -60
  97. package/dist/contradictions/index.js +11 -10175
  98. package/dist/control-plane.d.ts +17 -24
  99. package/dist/control-plane.js +124 -840
  100. package/dist/controlObjectOwnership.d.ts +19 -20
  101. package/dist/controlObjectOwnership.js +207 -201
  102. package/dist/coreClient.d.ts +23 -28
  103. package/dist/coreClient.js +567 -692
  104. package/dist/customTools.d.ts +17 -21
  105. package/dist/customTools.js +221 -221
  106. package/dist/decisions/index.d.ts +7 -58
  107. package/dist/decisions/index.js +14 -10177
  108. package/dist/decisionsClient.d.ts +25 -32
  109. package/dist/decisionsClient.js +113 -913
  110. package/dist/domainContext.d.ts +2 -1
  111. package/dist/domainContext.js +1 -2
  112. package/dist/edges/index.d.ts +21 -73
  113. package/dist/edges/index.js +12 -10176
  114. package/dist/embeddingsClient.d.ts +22 -30
  115. package/dist/embeddingsClient.js +73 -922
  116. package/dist/eventingClient.d.ts +23 -31
  117. package/dist/eventingClient.js +89 -918
  118. package/dist/events.d.ts +48 -49
  119. package/dist/events.js +257 -241
  120. package/dist/eventsCore.d.ts +20 -29
  121. package/dist/eventsCore.js +86 -830
  122. package/dist/evidence/index.d.ts +42 -61
  123. package/dist/evidence/index.js +13 -10176
  124. package/dist/evidenceClient.d.ts +13 -22
  125. package/dist/evidenceClient.js +34 -751
  126. package/dist/facade/context.d.ts +7 -8
  127. package/dist/facade/context.js +73 -72
  128. package/dist/functionSurface.d.ts +2 -156
  129. package/dist/functionSurface.js +1 -1460
  130. package/dist/functionSurfaceClient.d.ts +2 -9
  131. package/dist/functionSurfaceClient.js +1 -1460
  132. package/dist/gatewayFacades.d.ts +93 -296
  133. package/dist/gatewayFacades.factories.d.ts +209 -14
  134. package/dist/gatewayFacades.factories.js +545 -2228
  135. package/dist/gatewayFacades.js +284 -2627
  136. package/dist/generated/functionSurface.d.ts +149 -0
  137. package/dist/generated/functionSurface.js +749 -0
  138. package/dist/graphAnalysisClient.d.ts +41 -49
  139. package/dist/graphAnalysisClient.js +185 -974
  140. package/dist/graphClient.d.ts +53 -60
  141. package/dist/graphClient.js +219 -1090
  142. package/dist/graphIntel.d.ts +2 -4
  143. package/dist/graphIntel.js +1 -2
  144. package/dist/graphIntelligence.d.ts +4 -2
  145. package/dist/graphIntelligence.js +2 -46
  146. package/dist/graphRecommendationsClient.d.ts +15 -23
  147. package/dist/graphRecommendationsClient.js +70 -849
  148. package/dist/graphStateClassifierClient.d.ts +17 -25
  149. package/dist/graphStateClassifierClient.js +67 -908
  150. package/dist/harnessClient.d.ts +40 -47
  151. package/dist/harnessClient.js +198 -993
  152. package/dist/identityClient.d.ts +25 -33
  153. package/dist/identityClient.js +245 -1186
  154. package/dist/index.d.ts +73 -69
  155. package/dist/index.js +72 -13313
  156. package/dist/infisicalRuntime.d.ts +12 -14
  157. package/dist/infisicalRuntime.js +290 -297
  158. package/dist/jobsClient.d.ts +24 -32
  159. package/dist/jobsClient.js +101 -916
  160. package/dist/learningClient.d.ts +8 -16
  161. package/dist/learningClient.js +45 -809
  162. package/dist/lenses/index.d.ts +13 -65
  163. package/dist/lenses/index.js +11 -10175
  164. package/dist/mcpClient.d.ts +14 -23
  165. package/dist/mcpClient.js +115 -856
  166. package/dist/modelRuntimeClient.d.ts +18 -26
  167. package/dist/modelRuntimeClient.js +74 -894
  168. package/dist/nodes/index.d.ts +7 -58
  169. package/dist/nodes/index.js +14 -10177
  170. package/dist/ontologies/index.d.ts +21 -73
  171. package/dist/ontologies/index.js +14 -10178
  172. package/dist/ontologyClient.d.ts +23 -31
  173. package/dist/ontologyClient.js +138 -924
  174. package/dist/ontologyLinksClient.d.ts +16 -24
  175. package/dist/ontologyLinksClient.js +76 -886
  176. package/dist/opinion.d.ts +5 -6
  177. package/dist/opinion.js +21 -25
  178. package/dist/orgGraphSearchClient.d.ts +19 -27
  179. package/dist/orgGraphSearchClient.js +89 -857
  180. package/dist/packRuntime.d.ts +2 -2
  181. package/dist/packRuntime.js +1 -2
  182. package/dist/packsClient.d.ts +30 -37
  183. package/dist/packsClient.js +131 -906
  184. package/dist/policyClient.d.ts +21 -29
  185. package/dist/policyClient.js +267 -1026
  186. package/dist/proof-attestation.json +1 -1
  187. package/dist/questions/index.d.ts +9 -60
  188. package/dist/questions/index.js +15 -10178
  189. package/dist/realtime/index.d.ts +20 -16
  190. package/dist/realtime/index.js +30 -19
  191. package/dist/realtime/refs.d.ts +4 -6
  192. package/dist/realtime/refs.js +12 -7
  193. package/dist/realtime-refs.d.ts +1 -0
  194. package/dist/realtime-refs.js +1 -0
  195. package/dist/realtime.d.ts +1 -0
  196. package/dist/realtime.js +1 -0
  197. package/dist/reportsClient.d.ts +10 -19
  198. package/dist/reportsClient.js +48 -836
  199. package/dist/schemaClient.d.ts +16 -23
  200. package/dist/schemaClient.js +62 -832
  201. package/dist/sdkSurface.d.ts +18 -25
  202. package/dist/sdkSurface.js +135 -106
  203. package/dist/secrets.d.ts +2 -1
  204. package/dist/secrets.js +1 -2
  205. package/dist/sourcesClient.d.ts +11 -18
  206. package/dist/sourcesClient.js +18 -741
  207. package/dist/telemetryClient.d.ts +22 -30
  208. package/dist/telemetryClient.js +107 -931
  209. package/dist/toolRegistryClient.d.ts +27 -35
  210. package/dist/toolRegistryClient.js +116 -954
  211. package/dist/topics/index.d.ts +13 -64
  212. package/dist/topics/index.js +15 -10178
  213. package/dist/topicsClient.d.ts +19 -27
  214. package/dist/topicsClient.js +106 -894
  215. package/dist/types.d.ts +84 -87
  216. package/dist/types.js +1 -2
  217. package/dist/version.d.ts +2 -3
  218. package/dist/version.js +2 -5
  219. package/dist/workflowClient.d.ts +60 -65
  220. package/dist/workflowClient.js +343 -1219
  221. package/dist/worktrees/index.d.ts +16 -68
  222. package/dist/worktrees/index.js +14 -10178
  223. package/package.json +6 -6
  224. package/dist/accessControl.js.map +0 -1
  225. package/dist/adminClient.js.map +0 -1
  226. package/dist/answersClient.js.map +0 -1
  227. package/dist/audience/index.js.map +0 -1
  228. package/dist/audiencesClient.js.map +0 -1
  229. package/dist/auditClient.js.map +0 -1
  230. package/dist/authContext.js.map +0 -1
  231. package/dist/authDeviceClient.js.map +0 -1
  232. package/dist/beliefs/index.js.map +0 -1
  233. package/dist/beliefs/lifecycle.js.map +0 -1
  234. package/dist/beliefsClient.js.map +0 -1
  235. package/dist/boundaryClientSurface.js.map +0 -1
  236. package/dist/client.js.map +0 -1
  237. package/dist/clientAssemblyTypes.js.map +0 -1
  238. package/dist/clientConfig.js.map +0 -1
  239. package/dist/clientEvidenceCompat.js.map +0 -1
  240. package/dist/clientGraphNamespaces.js.map +0 -1
  241. package/dist/clientHelpers.js.map +0 -1
  242. package/dist/clientKnowledgeNamespaces.js.map +0 -1
  243. package/dist/clientLocalHelpers.js.map +0 -1
  244. package/dist/clientPlatformNamespaces.js.map +0 -1
  245. package/dist/clientRuntime.js.map +0 -1
  246. package/dist/clientWorkflowNamespaces.js.map +0 -1
  247. package/dist/contextClient.js.map +0 -1
  248. package/dist/contextFacade.js.map +0 -1
  249. package/dist/contextPackCompiler.js.map +0 -1
  250. package/dist/contextPackPolicy.js.map +0 -1
  251. package/dist/contextPackSchema.js.map +0 -1
  252. package/dist/contextTypes.js.map +0 -1
  253. package/dist/contracts/api-enums.contract.js.map +0 -1
  254. package/dist/contracts/auth-session.contract.js.map +0 -1
  255. package/dist/contracts/context-pack.contract.js.map +0 -1
  256. package/dist/contracts/contextPack.js.map +0 -1
  257. package/dist/contracts/index.js.map +0 -1
  258. package/dist/contracts/lens-filter.contract.js.map +0 -1
  259. package/dist/contracts/lens-workflow.contract.js.map +0 -1
  260. package/dist/contracts/lensFilter.js.map +0 -1
  261. package/dist/contracts/lensWorkflow.js.map +0 -1
  262. package/dist/contracts/mcpTools.js.map +0 -1
  263. package/dist/contracts/prompt.contract.js.map +0 -1
  264. package/dist/contracts/prompt.js.map +0 -1
  265. package/dist/contracts/sdk-tools.contract.js.map +0 -1
  266. package/dist/contracts/sdkTools.js.map +0 -1
  267. package/dist/contracts/tool-contracts.js.map +0 -1
  268. package/dist/contracts/workflow-runtime.contract.js.map +0 -1
  269. package/dist/contracts/workflowRuntime.js.map +0 -1
  270. package/dist/contradictions/index.js.map +0 -1
  271. package/dist/control-plane.js.map +0 -1
  272. package/dist/controlObjectOwnership.js.map +0 -1
  273. package/dist/coreClient.js.map +0 -1
  274. package/dist/customTools.js.map +0 -1
  275. package/dist/decisions/index.js.map +0 -1
  276. package/dist/decisionsClient.js.map +0 -1
  277. package/dist/domainContext.js.map +0 -1
  278. package/dist/edges/index.js.map +0 -1
  279. package/dist/embeddingsClient.js.map +0 -1
  280. package/dist/eventingClient.js.map +0 -1
  281. package/dist/events.js.map +0 -1
  282. package/dist/eventsCore.js.map +0 -1
  283. package/dist/evidence/index.js.map +0 -1
  284. package/dist/evidenceClient.js.map +0 -1
  285. package/dist/facade/context.js.map +0 -1
  286. package/dist/functionSurface.js.map +0 -1
  287. package/dist/functionSurfaceClient.js.map +0 -1
  288. package/dist/gatewayFacades.factories.js.map +0 -1
  289. package/dist/gatewayFacades.js.map +0 -1
  290. package/dist/graphAnalysisClient.js.map +0 -1
  291. package/dist/graphClient.js.map +0 -1
  292. package/dist/graphIntel.js.map +0 -1
  293. package/dist/graphIntelligence.js.map +0 -1
  294. package/dist/graphRecommendationsClient.js.map +0 -1
  295. package/dist/graphStateClassifierClient.js.map +0 -1
  296. package/dist/harnessClient.js.map +0 -1
  297. package/dist/identityClient.js.map +0 -1
  298. package/dist/index.js.map +0 -1
  299. package/dist/infisicalRuntime.js.map +0 -1
  300. package/dist/jobsClient.js.map +0 -1
  301. package/dist/learningClient.js.map +0 -1
  302. package/dist/lenses/index.js.map +0 -1
  303. package/dist/mcpClient.js.map +0 -1
  304. package/dist/modelRuntimeClient.js.map +0 -1
  305. package/dist/nodes/index.js.map +0 -1
  306. package/dist/ontologies/index.js.map +0 -1
  307. package/dist/ontologyClient.js.map +0 -1
  308. package/dist/ontologyLinksClient.js.map +0 -1
  309. package/dist/opinion.js.map +0 -1
  310. package/dist/orgGraphSearchClient.js.map +0 -1
  311. package/dist/packRuntime.js.map +0 -1
  312. package/dist/packsClient.js.map +0 -1
  313. package/dist/policyClient.js.map +0 -1
  314. package/dist/questions/index.js.map +0 -1
  315. package/dist/realtime/index.js.map +0 -1
  316. package/dist/realtime/refs.js.map +0 -1
  317. package/dist/reportsClient.js.map +0 -1
  318. package/dist/schemaClient.js.map +0 -1
  319. package/dist/sdk-tools.contract-B4c1Zr1o.d.ts +0 -22
  320. package/dist/sdkSurface.js.map +0 -1
  321. package/dist/secrets.js.map +0 -1
  322. package/dist/sourcesClient.js.map +0 -1
  323. package/dist/telemetryClient.js.map +0 -1
  324. package/dist/tool-contracts-BUiL9P6z.d.ts +0 -22
  325. package/dist/toolRegistryClient.js.map +0 -1
  326. package/dist/topics/index.js.map +0 -1
  327. package/dist/topicsClient.js.map +0 -1
  328. package/dist/types.js.map +0 -1
  329. package/dist/version.js.map +0 -1
  330. package/dist/workflowClient.js.map +0 -1
  331. 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