@elevasis/core 0.23.0 → 0.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/index.d.ts +4343 -2690
  2. package/dist/index.js +1101 -156
  3. package/dist/knowledge/index.d.ts +574 -210
  4. package/dist/knowledge/index.js +104 -1
  5. package/dist/organization-model/index.d.ts +4343 -2690
  6. package/dist/organization-model/index.js +1101 -156
  7. package/dist/test-utils/index.d.ts +483 -109
  8. package/dist/test-utils/index.js +904 -144
  9. package/package.json +3 -3
  10. package/src/README.md +14 -14
  11. package/src/__tests__/publish.test.ts +24 -24
  12. package/src/__tests__/template-core-compatibility.test.ts +9 -12
  13. package/src/_gen/__tests__/__snapshots__/contracts.md.snap +2137 -2093
  14. package/src/_gen/__tests__/scaffold-contracts.test.ts +30 -30
  15. package/src/auth/multi-tenancy/credentials/__tests__/encryption.test.ts +217 -217
  16. package/src/auth/multi-tenancy/credentials/server/encryption.ts +69 -69
  17. package/src/auth/multi-tenancy/credentials/server/kek-loader.ts +37 -37
  18. package/src/auth/multi-tenancy/index.ts +26 -26
  19. package/src/auth/multi-tenancy/invitations/api-schemas.ts +104 -104
  20. package/src/auth/multi-tenancy/memberships/api-schemas.ts +143 -143
  21. package/src/auth/multi-tenancy/memberships/index.ts +26 -26
  22. package/src/auth/multi-tenancy/memberships/membership.ts +130 -130
  23. package/src/auth/multi-tenancy/organizations/__tests__/api-schemas.test.ts +194 -194
  24. package/src/auth/multi-tenancy/organizations/api-schemas.ts +136 -136
  25. package/src/auth/multi-tenancy/permissions.test.ts +42 -42
  26. package/src/auth/multi-tenancy/permissions.ts +123 -123
  27. package/src/auth/multi-tenancy/role-management/api-schemas.ts +78 -78
  28. package/src/auth/multi-tenancy/role-management/index.ts +16 -16
  29. package/src/auth/multi-tenancy/theme-presets.ts +45 -45
  30. package/src/auth/multi-tenancy/types.ts +57 -57
  31. package/src/auth/multi-tenancy/users/api-schemas.ts +165 -165
  32. package/src/business/README.md +2 -2
  33. package/src/business/acquisition/activity-events.test.ts +250 -250
  34. package/src/business/acquisition/activity-events.ts +93 -93
  35. package/src/business/acquisition/api-schemas.test.ts +1883 -1843
  36. package/src/business/acquisition/api-schemas.ts +1492 -1497
  37. package/src/business/acquisition/build-templates.test.ts +240 -240
  38. package/src/business/acquisition/build-templates.ts +98 -98
  39. package/src/business/acquisition/crm-next-action.test.ts +262 -262
  40. package/src/business/acquisition/crm-next-action.ts +220 -220
  41. package/src/business/acquisition/crm-priority.test.ts +216 -216
  42. package/src/business/acquisition/crm-priority.ts +349 -349
  43. package/src/business/acquisition/crm-state-actions.test.ts +153 -153
  44. package/src/business/acquisition/deal-ownership.test.ts +351 -351
  45. package/src/business/acquisition/deal-ownership.ts +120 -120
  46. package/src/business/acquisition/derive-actions.test.ts +129 -104
  47. package/src/business/acquisition/derive-actions.ts +74 -84
  48. package/src/business/acquisition/index.ts +171 -170
  49. package/src/business/acquisition/ontology-validation.ts +309 -0
  50. package/src/business/acquisition/stateful.ts +30 -30
  51. package/src/business/acquisition/types.ts +396 -396
  52. package/src/business/clients/api-schemas.test.ts +115 -115
  53. package/src/business/clients/api-schemas.ts +158 -158
  54. package/src/business/clients/index.ts +1 -1
  55. package/src/business/crm/api-schemas.ts +40 -40
  56. package/src/business/crm/index.ts +1 -1
  57. package/src/business/deals/api-schemas.ts +87 -87
  58. package/src/business/deals/index.ts +1 -1
  59. package/src/business/index.ts +5 -5
  60. package/src/business/projects/types.ts +144 -144
  61. package/src/commands/queue/types/task.ts +15 -15
  62. package/src/execution/core/runner-types.ts +61 -61
  63. package/src/execution/core/sse-executions.ts +7 -7
  64. package/src/execution/engine/__tests__/fixtures/test-agents.ts +10 -10
  65. package/src/execution/engine/agent/core/__tests__/agent.test.ts +16 -16
  66. package/src/execution/engine/agent/core/__tests__/error-passthrough.test.ts +4 -4
  67. package/src/execution/engine/agent/core/types.ts +25 -25
  68. package/src/execution/engine/agent/index.ts +6 -6
  69. package/src/execution/engine/agent/reasoning/__tests__/request-builder.test.ts +24 -24
  70. package/src/execution/engine/index.ts +443 -443
  71. package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +298 -298
  72. package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.test.ts +55 -55
  73. package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +107 -107
  74. package/src/execution/engine/tools/integration/server/adapters/apollo/apollo-adapter.test.ts +48 -48
  75. package/src/execution/engine/tools/integration/server/adapters/apollo/apollo-adapter.ts +99 -99
  76. package/src/execution/engine/tools/integration/server/adapters/apollo/index.ts +1 -1
  77. package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +363 -363
  78. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.test.ts +162 -162
  79. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.test.ts +316 -316
  80. package/src/execution/engine/tools/integration/server/adapters/clickup/clickup-adapter.test.ts +18 -18
  81. package/src/execution/engine/tools/integration/server/adapters/clickup/clickup-adapter.ts +194 -194
  82. package/src/execution/engine/tools/integration/server/adapters/clickup/index.ts +7 -7
  83. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +204 -204
  84. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +105 -105
  85. package/src/execution/engine/tools/integration/server/adapters/google-calendar/google-calendar-adapter.ts +428 -428
  86. package/src/execution/engine/tools/integration/server/adapters/google-calendar/index.ts +2 -2
  87. package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -261
  88. package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1474 -1474
  89. package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +103 -103
  90. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.test.ts +88 -88
  91. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +141 -141
  92. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +76 -76
  93. package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-tools.ts +182 -182
  94. package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +310 -310
  95. package/src/execution/engine/tools/integration/service.test.ts +239 -239
  96. package/src/execution/engine/tools/integration/service.ts +172 -172
  97. package/src/execution/engine/tools/integration/tool.ts +255 -255
  98. package/src/execution/engine/tools/lead-service-types.ts +1005 -1005
  99. package/src/execution/engine/tools/messages.ts +43 -43
  100. package/src/execution/engine/tools/platform/acquisition/company-tools.ts +7 -7
  101. package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +6 -6
  102. package/src/execution/engine/tools/platform/acquisition/list-tools.ts +6 -6
  103. package/src/execution/engine/tools/platform/acquisition/types.ts +280 -280
  104. package/src/execution/engine/tools/platform/email/types.ts +97 -97
  105. package/src/execution/engine/tools/registry.ts +704 -704
  106. package/src/execution/engine/tools/tool-maps.ts +831 -831
  107. package/src/execution/engine/tools/types.ts +234 -234
  108. package/src/execution/engine/workflow/types.ts +195 -197
  109. package/src/execution/external/__tests__/api-schemas.test.ts +127 -127
  110. package/src/execution/external/api-schemas.ts +40 -40
  111. package/src/execution/external/index.ts +1 -1
  112. package/src/index.ts +18 -18
  113. package/src/integrations/credentials/__tests__/api-schemas.test.ts +420 -420
  114. package/src/integrations/credentials/api-schemas.ts +146 -146
  115. package/src/integrations/credentials/schemas.ts +200 -200
  116. package/src/integrations/oauth/__tests__/provider-registry.test.ts +7 -7
  117. package/src/integrations/oauth/provider-registry.ts +74 -74
  118. package/src/integrations/oauth/server/credentials.ts +43 -43
  119. package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +327 -327
  120. package/src/integrations/webhook-endpoints/api-schemas.ts +103 -103
  121. package/src/integrations/webhook-endpoints/types.ts +58 -58
  122. package/src/knowledge/README.md +32 -32
  123. package/src/knowledge/__tests__/queries.test.ts +626 -535
  124. package/src/knowledge/format.ts +99 -99
  125. package/src/knowledge/index.ts +5 -5
  126. package/src/knowledge/published.ts +5 -5
  127. package/src/knowledge/queries.ts +269 -218
  128. package/src/operations/activities/api-schemas.ts +80 -80
  129. package/src/operations/activities/types.ts +64 -64
  130. package/src/organization-model/README.md +149 -149
  131. package/src/organization-model/__tests__/content-kinds-registry.test.ts +210 -210
  132. package/src/organization-model/__tests__/defaults.test.ts +168 -168
  133. package/src/organization-model/__tests__/domains/actions.test.ts +78 -56
  134. package/src/organization-model/__tests__/domains/customers.test.ts +299 -299
  135. package/src/organization-model/__tests__/domains/entities.test.ts +56 -56
  136. package/src/organization-model/__tests__/domains/goals.test.ts +493 -493
  137. package/src/organization-model/__tests__/domains/identity.test.ts +280 -280
  138. package/src/organization-model/__tests__/domains/navigation.test.ts +268 -268
  139. package/src/organization-model/__tests__/domains/offerings.test.ts +414 -414
  140. package/src/organization-model/__tests__/domains/policies.test.ts +323 -323
  141. package/src/organization-model/__tests__/domains/resource-mappings.test.ts +293 -293
  142. package/src/organization-model/__tests__/domains/resources.test.ts +387 -277
  143. package/src/organization-model/__tests__/domains/roles.test.ts +463 -463
  144. package/src/organization-model/__tests__/domains/statuses.test.ts +246 -246
  145. package/src/organization-model/__tests__/domains/systems.test.ts +209 -209
  146. package/src/organization-model/__tests__/domains/topology.test.ts +188 -0
  147. package/src/organization-model/__tests__/flatten-additive-merge.test.ts +362 -361
  148. package/src/organization-model/__tests__/foundation.test.ts +77 -77
  149. package/src/organization-model/__tests__/get-resources-for-system.test.ts +144 -144
  150. package/src/organization-model/__tests__/graph.test.ts +1312 -862
  151. package/src/organization-model/__tests__/icons.test.ts +10 -1
  152. package/src/organization-model/__tests__/knowledge.test.ts +251 -15
  153. package/src/organization-model/__tests__/lookup-helpers.test.ts +438 -438
  154. package/src/organization-model/__tests__/migration-helpers.test.ts +591 -591
  155. package/src/organization-model/__tests__/prospecting-ssot.test.ts +103 -103
  156. package/src/organization-model/__tests__/recursive-system-schema.test.ts +535 -506
  157. package/src/organization-model/__tests__/resolve.test.ts +274 -164
  158. package/src/organization-model/__tests__/schema.test.ts +844 -301
  159. package/src/organization-model/__tests__/surface-projection.test.ts +284 -284
  160. package/src/organization-model/catalogs/lead-gen.ts +144 -144
  161. package/src/organization-model/content-kinds/config.ts +36 -36
  162. package/src/organization-model/content-kinds/index.ts +76 -72
  163. package/src/organization-model/content-kinds/pipeline.ts +68 -68
  164. package/src/organization-model/content-kinds/registry.ts +44 -44
  165. package/src/organization-model/content-kinds/status.ts +71 -71
  166. package/src/organization-model/content-kinds/template.ts +83 -83
  167. package/src/organization-model/content-kinds/types.ts +117 -117
  168. package/src/organization-model/contracts.ts +27 -27
  169. package/src/organization-model/defaults.ts +42 -50
  170. package/src/organization-model/domains/actions.ts +333 -239
  171. package/src/organization-model/domains/customers.ts +78 -78
  172. package/src/organization-model/domains/entities.ts +144 -144
  173. package/src/organization-model/domains/goals.ts +83 -83
  174. package/src/organization-model/domains/knowledge.ts +117 -101
  175. package/src/organization-model/domains/navigation.ts +139 -139
  176. package/src/organization-model/domains/offerings.ts +71 -71
  177. package/src/organization-model/domains/policies.ts +102 -102
  178. package/src/organization-model/domains/projects.ts +14 -14
  179. package/src/organization-model/domains/prospecting.ts +395 -395
  180. package/src/organization-model/domains/resources.ts +202 -124
  181. package/src/organization-model/domains/roles.ts +96 -96
  182. package/src/organization-model/domains/sales.test.ts +218 -218
  183. package/src/organization-model/domains/sales.ts +380 -380
  184. package/src/organization-model/domains/shared.ts +63 -63
  185. package/src/organization-model/domains/statuses.ts +339 -339
  186. package/src/organization-model/domains/systems.ts +217 -172
  187. package/src/organization-model/domains/topology.ts +261 -0
  188. package/src/organization-model/foundation.ts +75 -75
  189. package/src/organization-model/graph/build.ts +1043 -867
  190. package/src/organization-model/graph/index.ts +4 -4
  191. package/src/organization-model/graph/link.ts +10 -10
  192. package/src/organization-model/graph/schema.ts +75 -68
  193. package/src/organization-model/graph/types.ts +71 -64
  194. package/src/organization-model/helpers.ts +289 -241
  195. package/src/organization-model/icons.ts +78 -66
  196. package/src/organization-model/index.ts +128 -125
  197. package/src/organization-model/migration-helpers.ts +247 -244
  198. package/src/organization-model/ontology.ts +658 -0
  199. package/src/organization-model/organization-graph.mdx +110 -90
  200. package/src/organization-model/organization-model.mdx +225 -213
  201. package/src/organization-model/published.ts +299 -222
  202. package/src/organization-model/resolve.ts +146 -91
  203. package/src/organization-model/schema.ts +818 -659
  204. package/src/organization-model/surface-projection.ts +212 -212
  205. package/src/organization-model/types.ts +179 -155
  206. package/src/platform/api/types.ts +38 -38
  207. package/src/platform/constants/versions.ts +3 -3
  208. package/src/platform/index.ts +23 -23
  209. package/src/platform/registry/__tests__/command-view.test.ts +10 -10
  210. package/src/platform/registry/__tests__/resource-link.test.ts +35 -35
  211. package/src/platform/registry/__tests__/resource-registry.integration.test.ts +20 -20
  212. package/src/platform/registry/__tests__/resource-registry.nested-systems.test.ts +245 -245
  213. package/src/platform/registry/__tests__/resource-registry.test.ts +2053 -2053
  214. package/src/platform/registry/__tests__/validation.test.ts +1444 -1259
  215. package/src/platform/registry/command-view.ts +10 -10
  216. package/src/platform/registry/index.ts +103 -103
  217. package/src/platform/registry/resource-link.ts +32 -32
  218. package/src/platform/registry/resource-registry.ts +886 -886
  219. package/src/platform/registry/serialization.ts +295 -295
  220. package/src/platform/registry/serialized-types.ts +166 -166
  221. package/src/platform/registry/stats-types.ts +68 -68
  222. package/src/platform/registry/types.ts +425 -425
  223. package/src/platform/registry/validation.ts +876 -684
  224. package/src/platform/utils/__tests__/validation.test.ts +1084 -1084
  225. package/src/platform/utils/validation.ts +425 -425
  226. package/src/projects/api-schemas.test.ts +39 -39
  227. package/src/projects/api-schemas.ts +291 -291
  228. package/src/reference/_generated/contracts.md +2136 -2093
  229. package/src/reference/glossary.md +76 -76
  230. package/src/scaffold-registry/__tests__/index.test.ts +206 -206
  231. package/src/scaffold-registry/__tests__/schema.test.ts +166 -166
  232. package/src/scaffold-registry/index.ts +392 -392
  233. package/src/scaffold-registry/schema.ts +243 -243
  234. package/src/server.ts +289 -289
  235. package/src/supabase/database.types.ts +3 -0
  236. package/src/test-utils/README.md +37 -37
  237. package/src/test-utils/entities.ts +108 -108
  238. package/src/test-utils/fixtures/memberships.ts +82 -82
  239. package/src/test-utils/index.ts +12 -12
  240. package/src/test-utils/organization-model.ts +65 -65
  241. package/src/test-utils/published.ts +6 -6
  242. package/src/test-utils/rls/RLSTestContext.ts +588 -588
  243. package/src/test-utils/test-utils.test.ts +44 -44
@@ -1,103 +1,103 @@
1
- import { z } from 'zod'
2
- import { UuidSchema, NonEmptyStringSchema, PaginationSchema } from '../../platform/utils/validation'
3
-
4
- /**
5
- * Webhook Endpoint API Validation Schemas
6
- *
7
- * HTTP request/response validation for the webhook endpoints CRUD API.
8
- * These schemas are browser-safe and shared between API and frontend.
9
- *
10
- * Design notes:
11
- * - Request schemas use `.strict()` to reject unknown fields (mass assignment prevention)
12
- * - Response schemas do NOT use `.strict()` (allows forward-compatible additions)
13
- * - Update schema requires at least one field via `.refine()`
14
- */
15
-
16
- /**
17
- * Status enum for webhook endpoints
18
- */
19
- export const WebhookEndpointStatusSchema = z.enum(['active', 'paused'])
20
-
21
- /**
22
- * POST /api/webhook-endpoints - Create a new webhook endpoint
23
- *
24
- * The `key` and `id` are generated server-side and not accepted in the request.
25
- */
26
- export const CreateWebhookEndpointRequestSchema = z
27
- .object({
28
- /** User-facing label for the endpoint */
29
- name: NonEmptyStringSchema,
30
- /** Target workflow resourceId to invoke on inbound requests (can be set later) */
31
- resourceId: NonEmptyStringSchema.optional(),
32
- /** Optional description */
33
- description: z.string().optional()
34
- })
35
- .strict()
36
-
37
- export type CreateWebhookEndpointRequest = z.infer<typeof CreateWebhookEndpointRequestSchema>
38
-
39
- /**
40
- * PATCH /api/webhook-endpoints/:id - Update an existing webhook endpoint
41
- *
42
- * At least one field must be provided.
43
- */
44
- export const UpdateWebhookEndpointRequestSchema = z
45
- .object({
46
- name: NonEmptyStringSchema.optional(),
47
- description: z.string().optional(),
48
- resourceId: NonEmptyStringSchema.optional(),
49
- status: WebhookEndpointStatusSchema.optional()
50
- })
51
- .strict()
52
- .refine(
53
- (data) =>
54
- data.name !== undefined ||
55
- data.description !== undefined ||
56
- data.resourceId !== undefined ||
57
- data.status !== undefined,
58
- { message: 'At least one field (name, description, resourceId, or status) must be provided' }
59
- )
60
-
61
- export type UpdateWebhookEndpointRequest = z.infer<typeof UpdateWebhookEndpointRequestSchema>
62
-
63
- /**
64
- * Response shape for a single webhook endpoint.
65
- * NOT strict — response schemas allow extra fields for forward compatibility.
66
- */
67
- export const WebhookEndpointResponseSchema = z.object({
68
- id: UuidSchema,
69
- organizationId: UuidSchema,
70
- key: z.string().optional(),
71
- keyPrefix: z.string().nullable(),
72
- name: z.string(),
73
- description: z.string().nullable(),
74
- resourceId: z.string().nullable(),
75
- status: WebhookEndpointStatusSchema,
76
- lastTriggeredAt: z.string().datetime().nullable(),
77
- requestCount: z.number().int().min(0),
78
- createdAt: z.string().datetime(),
79
- updatedAt: z.string().datetime()
80
- })
81
-
82
- export type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
83
-
84
- /**
85
- * GET /api/webhook-endpoints - List webhook endpoints query params
86
- *
87
- * Extends standard pagination with optional status filter.
88
- */
89
- export const ListWebhookEndpointsQuerySchema = PaginationSchema.extend({
90
- status: WebhookEndpointStatusSchema.optional()
91
- })
92
-
93
- export type ListWebhookEndpointsQuery = z.infer<typeof ListWebhookEndpointsQuerySchema>
94
-
95
- /**
96
- * Named collection of all webhook endpoint schemas for route registration
97
- */
98
- export const WebhookEndpointSchemas = {
99
- CreateRequest: CreateWebhookEndpointRequestSchema,
100
- UpdateRequest: UpdateWebhookEndpointRequestSchema,
101
- Response: WebhookEndpointResponseSchema,
102
- ListQuery: ListWebhookEndpointsQuerySchema
103
- }
1
+ import { z } from 'zod'
2
+ import { UuidSchema, NonEmptyStringSchema, PaginationSchema } from '../../platform/utils/validation'
3
+
4
+ /**
5
+ * Webhook Endpoint API Validation Schemas
6
+ *
7
+ * HTTP request/response validation for the webhook endpoints CRUD API.
8
+ * These schemas are browser-safe and shared between API and frontend.
9
+ *
10
+ * Design notes:
11
+ * - Request schemas use `.strict()` to reject unknown fields (mass assignment prevention)
12
+ * - Response schemas do NOT use `.strict()` (allows forward-compatible additions)
13
+ * - Update schema requires at least one field via `.refine()`
14
+ */
15
+
16
+ /**
17
+ * Status enum for webhook endpoints
18
+ */
19
+ export const WebhookEndpointStatusSchema = z.enum(['active', 'paused'])
20
+
21
+ /**
22
+ * POST /api/webhook-endpoints - Create a new webhook endpoint
23
+ *
24
+ * The `key` and `id` are generated server-side and not accepted in the request.
25
+ */
26
+ export const CreateWebhookEndpointRequestSchema = z
27
+ .object({
28
+ /** User-facing label for the endpoint */
29
+ name: NonEmptyStringSchema,
30
+ /** Target workflow resourceId to invoke on inbound requests (can be set later) */
31
+ resourceId: NonEmptyStringSchema.optional(),
32
+ /** Optional description */
33
+ description: z.string().optional()
34
+ })
35
+ .strict()
36
+
37
+ export type CreateWebhookEndpointRequest = z.infer<typeof CreateWebhookEndpointRequestSchema>
38
+
39
+ /**
40
+ * PATCH /api/webhook-endpoints/:id - Update an existing webhook endpoint
41
+ *
42
+ * At least one field must be provided.
43
+ */
44
+ export const UpdateWebhookEndpointRequestSchema = z
45
+ .object({
46
+ name: NonEmptyStringSchema.optional(),
47
+ description: z.string().optional(),
48
+ resourceId: NonEmptyStringSchema.optional(),
49
+ status: WebhookEndpointStatusSchema.optional()
50
+ })
51
+ .strict()
52
+ .refine(
53
+ (data) =>
54
+ data.name !== undefined ||
55
+ data.description !== undefined ||
56
+ data.resourceId !== undefined ||
57
+ data.status !== undefined,
58
+ { message: 'At least one field (name, description, resourceId, or status) must be provided' }
59
+ )
60
+
61
+ export type UpdateWebhookEndpointRequest = z.infer<typeof UpdateWebhookEndpointRequestSchema>
62
+
63
+ /**
64
+ * Response shape for a single webhook endpoint.
65
+ * NOT strict — response schemas allow extra fields for forward compatibility.
66
+ */
67
+ export const WebhookEndpointResponseSchema = z.object({
68
+ id: UuidSchema,
69
+ organizationId: UuidSchema,
70
+ key: z.string().optional(),
71
+ keyPrefix: z.string().nullable(),
72
+ name: z.string(),
73
+ description: z.string().nullable(),
74
+ resourceId: z.string().nullable(),
75
+ status: WebhookEndpointStatusSchema,
76
+ lastTriggeredAt: z.string().datetime().nullable(),
77
+ requestCount: z.number().int().min(0),
78
+ createdAt: z.string().datetime(),
79
+ updatedAt: z.string().datetime()
80
+ })
81
+
82
+ export type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
83
+
84
+ /**
85
+ * GET /api/webhook-endpoints - List webhook endpoints query params
86
+ *
87
+ * Extends standard pagination with optional status filter.
88
+ */
89
+ export const ListWebhookEndpointsQuerySchema = PaginationSchema.extend({
90
+ status: WebhookEndpointStatusSchema.optional()
91
+ })
92
+
93
+ export type ListWebhookEndpointsQuery = z.infer<typeof ListWebhookEndpointsQuerySchema>
94
+
95
+ /**
96
+ * Named collection of all webhook endpoint schemas for route registration
97
+ */
98
+ export const WebhookEndpointSchemas = {
99
+ CreateRequest: CreateWebhookEndpointRequestSchema,
100
+ UpdateRequest: UpdateWebhookEndpointRequestSchema,
101
+ Response: WebhookEndpointResponseSchema,
102
+ ListQuery: ListWebhookEndpointsQuerySchema
103
+ }
@@ -1,58 +1,58 @@
1
- /**
2
- * Webhook Endpoint Domain Types
3
- *
4
- * Browser-safe domain types for generic inbound webhook endpoints.
5
- * These are camelCase representations of the `webhook_endpoints` DB table.
6
- *
7
- * Transform from snake_case DB rows happens in the API service layer,
8
- * not here (per core-package.md conventions).
9
- */
10
-
11
- /**
12
- * Lifecycle status of a webhook endpoint.
13
- * - `active`: Endpoint accepts inbound requests and triggers the target workflow
14
- * - `paused`: Endpoint exists but rejects inbound requests with 404
15
- */
16
- export type WebhookEndpointStatus = 'active' | 'paused'
17
-
18
- /**
19
- * Generic inbound webhook endpoint domain type.
20
- *
21
- * Each endpoint gets a unique opaque URL (`/api/webhooks/inbound/:key`)
22
- * that maps to a target workflow resource within an organization.
23
- */
24
- export interface WebhookEndpoint {
25
- /** UUID primary key */
26
- id: string
27
- /** Organization this endpoint belongs to */
28
- organizationId: string
29
- /**
30
- * Unique opaque key used in the inbound URL.
31
- * Format: `wh_` + 32 crypto-random hex chars (128 bits of entropy).
32
- * This key IS the credential — it must be kept secret.
33
- * Set ONLY on the return value of `create()` — undefined on list/get/getEndpointByKey responses.
34
- */
35
- key?: string
36
- /**
37
- * First 8 characters of the plaintext key for display and grep hints.
38
- * Safe to show in list views — not sufficient to reconstruct the full key.
39
- * Null on legacy rows that predate the key_hash migration.
40
- */
41
- keyPrefix: string | null
42
- /** User-facing label (e.g., "Zapier → Lead Intake") */
43
- name: string
44
- /** Optional description for the endpoint */
45
- description: string | null
46
- /** Target workflow resourceId to invoke on inbound request, or null if not yet assigned */
47
- resourceId: string | null
48
- /** Whether the endpoint is accepting requests */
49
- status: WebhookEndpointStatus
50
- /** Timestamp of the most recent successful inbound request, or null */
51
- lastTriggeredAt: string | null
52
- /** Running total of inbound requests received */
53
- requestCount: number
54
- /** ISO 8601 creation timestamp */
55
- createdAt: string
56
- /** ISO 8601 last-updated timestamp */
57
- updatedAt: string
58
- }
1
+ /**
2
+ * Webhook Endpoint Domain Types
3
+ *
4
+ * Browser-safe domain types for generic inbound webhook endpoints.
5
+ * These are camelCase representations of the `webhook_endpoints` DB table.
6
+ *
7
+ * Transform from snake_case DB rows happens in the API service layer,
8
+ * not here (per core-package.md conventions).
9
+ */
10
+
11
+ /**
12
+ * Lifecycle status of a webhook endpoint.
13
+ * - `active`: Endpoint accepts inbound requests and triggers the target workflow
14
+ * - `paused`: Endpoint exists but rejects inbound requests with 404
15
+ */
16
+ export type WebhookEndpointStatus = 'active' | 'paused'
17
+
18
+ /**
19
+ * Generic inbound webhook endpoint domain type.
20
+ *
21
+ * Each endpoint gets a unique opaque URL (`/api/webhooks/inbound/:key`)
22
+ * that maps to a target workflow resource within an organization.
23
+ */
24
+ export interface WebhookEndpoint {
25
+ /** UUID primary key */
26
+ id: string
27
+ /** Organization this endpoint belongs to */
28
+ organizationId: string
29
+ /**
30
+ * Unique opaque key used in the inbound URL.
31
+ * Format: `wh_` + 32 crypto-random hex chars (128 bits of entropy).
32
+ * This key IS the credential — it must be kept secret.
33
+ * Set ONLY on the return value of `create()` — undefined on list/get/getEndpointByKey responses.
34
+ */
35
+ key?: string
36
+ /**
37
+ * First 8 characters of the plaintext key for display and grep hints.
38
+ * Safe to show in list views — not sufficient to reconstruct the full key.
39
+ * Null on legacy rows that predate the key_hash migration.
40
+ */
41
+ keyPrefix: string | null
42
+ /** User-facing label (e.g., "Zapier → Lead Intake") */
43
+ name: string
44
+ /** Optional description for the endpoint */
45
+ description: string | null
46
+ /** Target workflow resourceId to invoke on inbound request, or null if not yet assigned */
47
+ resourceId: string | null
48
+ /** Whether the endpoint is accepting requests */
49
+ status: WebhookEndpointStatus
50
+ /** Timestamp of the most recent successful inbound request, or null */
51
+ lastTriggeredAt: string | null
52
+ /** Running total of inbound requests received */
53
+ requestCount: number
54
+ /** ISO 8601 creation timestamp */
55
+ createdAt: string
56
+ /** ISO 8601 last-updated timestamp */
57
+ updatedAt: string
58
+ }
@@ -1,33 +1,33 @@
1
- # @elevasis/core/knowledge
2
-
3
- Pure query layer over the organization graph. Browser-safe (no Node APIs); shared by the SDK CLI, platform CLI, and the `@elevasis/ui/knowledge` browser.
4
-
5
- ## Surface
6
-
7
- | Export | Purpose |
8
- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
9
- | `bySystem(graph, systemId, knowledgeNodes)` | Knowledge nodes that govern the given system. |
10
- | `byKind(graph, kind, knowledgeNodes)` | Filter knowledge nodes by `OrgKnowledgeKind`. |
11
- | `byOwner(graph, ownerId, knowledgeNodes)` | Knowledge nodes whose `ownerIds` includes the given owner. |
12
- | `governs(graph, nodeId)` | Outgoing `governs` targets (governed-system ids) from a knowledge node. |
13
- | `governedBy(graph, nodeId)` | Incoming `governs` sources (governing knowledge-node ids) into a system. |
14
- | `parsePath(pathString)` | Parse `/by-system/$id`, `/by-kind/$kind`, `/by-owner/$id`, `/graph/$id/{governs,governed-by}`, or `/$id`. Throws on invalid input. |
15
- | `formatText`, `formatJson`, `formatIdsOnly` | Output formatters used by the `knowledge:*` CLI subcommands. |
16
-
17
- ## Path syntax
18
-
19
- ```
20
- /by-system/<systemId>
21
- /by-kind/<playbook|strategy|reference>
22
- /by-owner/<ownerId>
23
- /graph/<nodeId>/governs
24
- /graph/<nodeId>/governed-by
25
- /<nodeId>
26
- ```
27
-
28
- ## JSON envelope
29
-
30
- `formatJson` returns `{ path, mount, args, results }` — the same wrapped envelope used by `pnpm exec elevasis knowledge:ls --json` and `pnpm exec elevasis-sdk knowledge:ls --json`.
31
-
32
- `governs` and `governedBy` accept either bare or graph-namespaced ids (`knowledge.foo` or `knowledge:knowledge.foo`).
1
+ # @elevasis/core/knowledge
2
+
3
+ Pure query layer over the organization graph. Browser-safe (no Node APIs); shared by the SDK CLI, platform CLI, and the `@elevasis/ui/knowledge` browser.
4
+
5
+ ## Surface
6
+
7
+ | Export | Purpose |
8
+ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
9
+ | `bySystem(graph, systemId, knowledgeNodes)` | Knowledge nodes that govern the given system. |
10
+ | `byKind(graph, kind, knowledgeNodes)` | Filter knowledge nodes by `OrgKnowledgeKind`. |
11
+ | `byOwner(graph, ownerId, knowledgeNodes)` | Knowledge nodes whose `ownerIds` includes the given owner. |
12
+ | `governs(graph, nodeId)` | Outgoing `governs` targets (governed-system ids) from a knowledge node. |
13
+ | `governedBy(graph, nodeId)` | Incoming `governs` sources (governing knowledge-node ids) into a system. |
14
+ | `parsePath(pathString)` | Parse `/by-system/$id`, `/by-kind/$kind`, `/by-owner/$id`, `/graph/$id/{governs,governed-by}`, or `/$id`. Throws on invalid input. |
15
+ | `formatText`, `formatJson`, `formatIdsOnly` | Output formatters used by the `knowledge:*` CLI subcommands. |
16
+
17
+ ## Path syntax
18
+
19
+ ```
20
+ /by-system/<systemId>
21
+ /by-kind/<playbook|strategy|reference>
22
+ /by-owner/<ownerId>
23
+ /graph/<nodeId>/governs
24
+ /graph/<nodeId>/governed-by
25
+ /<nodeId>
26
+ ```
27
+
28
+ ## JSON envelope
29
+
30
+ `formatJson` returns `{ path, mount, args, results }` — the same wrapped envelope used by `pnpm exec elevasis knowledge:ls --json` and `pnpm exec elevasis-sdk knowledge:ls --json`.
31
+
32
+ `governs` and `governedBy` accept either bare or graph-namespaced ids (`knowledge.foo` or `knowledge:knowledge.foo`).
33
33