@lucern/sdk 0.2.0-alpha.1 → 0.2.0-alpha.11

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 (317) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +691 -61
  3. package/dist/adminClient.d.ts +409 -0
  4. package/dist/adminClient.js +755 -0
  5. package/dist/adminClient.js.map +1 -0
  6. package/dist/answersClient.d.ts +23 -0
  7. package/dist/answersClient.js +333 -0
  8. package/dist/answersClient.js.map +1 -0
  9. package/dist/audience/index.d.ts +38 -0
  10. package/dist/audience/index.js +110 -0
  11. package/dist/audience/index.js.map +1 -0
  12. package/dist/{packages/sdk/src/audiencesClient.d.ts → audiencesClient.d.ts} +30 -18
  13. package/dist/audiencesClient.js +472 -0
  14. package/dist/audiencesClient.js.map +1 -0
  15. package/dist/auditClient.d.ts +29 -0
  16. package/dist/auditClient.js +386 -0
  17. package/dist/auditClient.js.map +1 -0
  18. package/dist/beliefs/index.d.ts +465 -0
  19. package/dist/beliefs/index.js +6433 -0
  20. package/dist/beliefs/index.js.map +1 -0
  21. package/dist/beliefs/lifecycle.d.ts +24 -0
  22. package/dist/beliefs/lifecycle.js +98 -0
  23. package/dist/beliefs/lifecycle.js.map +1 -0
  24. package/dist/beliefsClient.d.ts +241 -0
  25. package/dist/beliefsClient.js +646 -0
  26. package/dist/beliefsClient.js.map +1 -0
  27. package/dist/client.d.ts +2398 -0
  28. package/dist/client.js +6411 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/contextClient.d.ts +27 -0
  31. package/dist/contextClient.js +396 -0
  32. package/dist/contextClient.js.map +1 -0
  33. package/dist/contextFacade.d.ts +2 -0
  34. package/dist/contextFacade.js +73 -0
  35. package/dist/contextFacade.js.map +1 -0
  36. package/dist/{lucern/packages/domain-context/src/context-pack-compiler.d.ts → contextPackCompiler.d.ts} +11 -10
  37. package/dist/contextPackCompiler.js +1091 -0
  38. package/dist/contextPackCompiler.js.map +1 -0
  39. package/dist/contextPackPolicy.d.ts +84 -0
  40. package/dist/contextPackPolicy.js +347 -0
  41. package/dist/contextPackPolicy.js.map +1 -0
  42. package/dist/contextPackSchema.d.ts +7 -0
  43. package/dist/contextPackSchema.js +203 -0
  44. package/dist/contextPackSchema.js.map +1 -0
  45. package/dist/contextTypes.d.ts +135 -0
  46. package/dist/contextTypes.js +3 -0
  47. package/dist/contextTypes.js.map +1 -0
  48. package/dist/contracts/api-enums.contract.d.ts +81 -0
  49. package/dist/contracts/api-enums.contract.js +98 -0
  50. package/dist/contracts/api-enums.contract.js.map +1 -0
  51. package/dist/{lucern/contracts/src → contracts}/auth-session.contract.d.ts +14 -12
  52. package/dist/contracts/auth-session.contract.js +48 -0
  53. package/dist/contracts/auth-session.contract.js.map +1 -0
  54. package/dist/{lucern/contracts/src → contracts}/context-pack.contract.d.ts +56 -58
  55. package/dist/contracts/context-pack.contract.js +98 -0
  56. package/dist/contracts/context-pack.contract.js.map +1 -0
  57. package/dist/contracts/contextPack.d.ts +1 -0
  58. package/dist/contracts/contextPack.js +98 -0
  59. package/dist/contracts/contextPack.js.map +1 -0
  60. package/dist/contracts/index.d.ts +9 -0
  61. package/dist/contracts/index.js +4928 -0
  62. package/dist/contracts/index.js.map +1 -0
  63. package/dist/{lucern/contracts/src → contracts}/lens-filter.contract.d.ts +10 -8
  64. package/dist/contracts/lens-filter.contract.js +71 -0
  65. package/dist/contracts/lens-filter.contract.js.map +1 -0
  66. package/dist/contracts/lens-workflow.contract.d.ts +87 -0
  67. package/dist/contracts/lens-workflow.contract.js +123 -0
  68. package/dist/contracts/lens-workflow.contract.js.map +1 -0
  69. package/dist/contracts/lensFilter.d.ts +1 -0
  70. package/dist/contracts/lensFilter.js +71 -0
  71. package/dist/contracts/lensFilter.js.map +1 -0
  72. package/dist/contracts/lensWorkflow.d.ts +2 -0
  73. package/dist/contracts/lensWorkflow.js +123 -0
  74. package/dist/contracts/lensWorkflow.js.map +1 -0
  75. package/dist/contracts/mcp-tools.contract.d.ts +1 -0
  76. package/dist/contracts/mcp-tools.contract.js +3016 -0
  77. package/dist/contracts/mcp-tools.contract.js.map +1 -0
  78. package/dist/contracts/mcpTools.d.ts +1 -0
  79. package/dist/contracts/mcpTools.js +3016 -0
  80. package/dist/contracts/mcpTools.js.map +1 -0
  81. package/dist/contracts/prompt.contract.d.ts +26 -0
  82. package/dist/contracts/prompt.contract.js +12 -0
  83. package/dist/contracts/prompt.contract.js.map +1 -0
  84. package/dist/contracts/prompt.d.ts +1 -0
  85. package/dist/contracts/prompt.js +12 -0
  86. package/dist/contracts/prompt.js.map +1 -0
  87. package/dist/contracts/sdk-tools.contract.d.ts +2 -0
  88. package/dist/contracts/sdk-tools.contract.js +4164 -0
  89. package/dist/contracts/sdk-tools.contract.js.map +1 -0
  90. package/dist/contracts/sdkTools.d.ts +2 -0
  91. package/dist/contracts/sdkTools.js +4164 -0
  92. package/dist/contracts/sdkTools.js.map +1 -0
  93. package/dist/contracts/workflow-runtime.contract.d.ts +163 -0
  94. package/dist/contracts/workflow-runtime.contract.js +245 -0
  95. package/dist/contracts/workflow-runtime.contract.js.map +1 -0
  96. package/dist/contracts/workflowRuntime.d.ts +1 -0
  97. package/dist/contracts/workflowRuntime.js +245 -0
  98. package/dist/contracts/workflowRuntime.js.map +1 -0
  99. package/dist/contradictions/index.d.ts +158 -0
  100. package/dist/contradictions/index.js +6427 -0
  101. package/dist/contradictions/index.js.map +1 -0
  102. package/dist/{packages/sdk/src/controlObjectOwnership.d.ts → controlObjectOwnership.d.ts} +35 -18
  103. package/dist/controlObjectOwnership.js +215 -0
  104. package/dist/controlObjectOwnership.js.map +1 -0
  105. package/dist/{packages/sdk/src/coreClient.d.ts → coreClient.d.ts} +38 -14
  106. package/dist/coreClient.js +339 -0
  107. package/dist/coreClient.js.map +1 -0
  108. package/dist/customTools.d.ts +88 -0
  109. package/dist/customTools.js +248 -0
  110. package/dist/customTools.js.map +1 -0
  111. package/dist/decisions/index.d.ts +68 -0
  112. package/dist/decisions/index.js +6429 -0
  113. package/dist/decisions/index.js.map +1 -0
  114. package/dist/decisionsClient.d.ts +111 -0
  115. package/dist/decisionsClient.js +522 -0
  116. package/dist/decisionsClient.js.map +1 -0
  117. package/dist/domainContext.d.ts +1 -0
  118. package/dist/domainContext.js +3 -0
  119. package/dist/domainContext.js.map +1 -0
  120. package/dist/edges/index.d.ts +204 -0
  121. package/dist/edges/index.js +6428 -0
  122. package/dist/edges/index.js.map +1 -0
  123. package/dist/events.d.ts +178 -0
  124. package/dist/events.js +251 -0
  125. package/dist/events.js.map +1 -0
  126. package/dist/eventsCore.d.ts +49 -0
  127. package/dist/eventsCore.js +429 -0
  128. package/dist/eventsCore.js.map +1 -0
  129. package/dist/evidence/index.d.ts +295 -0
  130. package/dist/evidence/index.js +6428 -0
  131. package/dist/evidence/index.js.map +1 -0
  132. package/dist/evidenceClient.d.ts +119 -0
  133. package/dist/evidenceClient.js +350 -0
  134. package/dist/evidenceClient.js.map +1 -0
  135. package/dist/facade/context.d.ts +18 -0
  136. package/dist/facade/context.js +73 -0
  137. package/dist/facade/context.js.map +1 -0
  138. package/dist/gatewayFacades.d.ts +589 -0
  139. package/dist/gatewayFacades.js +2006 -0
  140. package/dist/gatewayFacades.js.map +1 -0
  141. package/dist/graphClient.d.ts +271 -0
  142. package/dist/graphClient.js +698 -0
  143. package/dist/graphClient.js.map +1 -0
  144. package/dist/{packages/sdk/src/harnessClient.d.ts → harnessClient.d.ts} +127 -35
  145. package/dist/harnessClient.js +607 -0
  146. package/dist/harnessClient.js.map +1 -0
  147. package/dist/identityClient.d.ts +140 -0
  148. package/dist/identityClient.js +497 -0
  149. package/dist/identityClient.js.map +1 -0
  150. package/dist/index.d.ts +45 -0
  151. package/dist/index.js +5284 -2568
  152. package/dist/index.js.map +1 -1
  153. package/dist/learningClient.d.ts +46 -0
  154. package/dist/learningClient.js +409 -0
  155. package/dist/learningClient.js.map +1 -0
  156. package/dist/lenses/index.d.ts +194 -0
  157. package/dist/lenses/index.js +6427 -0
  158. package/dist/lenses/index.js.map +1 -0
  159. package/dist/{packages/sdk/src/mcpParityClient.d.ts → mcpParityClient.d.ts} +11 -5
  160. package/dist/mcpParityClient.js +516 -0
  161. package/dist/mcpParityClient.js.map +1 -0
  162. package/dist/mcpParitySurface.d.ts +12 -0
  163. package/dist/mcpParitySurface.js +65 -0
  164. package/dist/mcpParitySurface.js.map +1 -0
  165. package/dist/mcpTools-DPZxowDX.d.ts +254 -0
  166. package/dist/nodes/index.d.ts +62 -0
  167. package/dist/nodes/index.js +6429 -0
  168. package/dist/nodes/index.js.map +1 -0
  169. package/dist/ontologies/index.d.ts +178 -0
  170. package/dist/ontologies/index.js +6430 -0
  171. package/dist/ontologies/index.js.map +1 -0
  172. package/dist/{packages/sdk/src/ontologyClient.d.ts → ontologyClient.d.ts} +44 -22
  173. package/dist/ontologyClient.js +513 -0
  174. package/dist/ontologyClient.js.map +1 -0
  175. package/dist/opinion.d.ts +11 -0
  176. package/dist/opinion.js +35 -0
  177. package/dist/opinion.js.map +1 -0
  178. package/dist/packRuntime.d.ts +2 -0
  179. package/dist/packRuntime.js +3 -0
  180. package/dist/packRuntime.js.map +1 -0
  181. package/dist/packsClient.d.ts +131 -0
  182. package/dist/packsClient.js +525 -0
  183. package/dist/packsClient.js.map +1 -0
  184. package/dist/{packages/sdk/src/policyClient.d.ts → policyClient.d.ts} +113 -18
  185. package/dist/policyClient.js +625 -0
  186. package/dist/policyClient.js.map +1 -0
  187. package/dist/questions/index.d.ts +297 -0
  188. package/dist/questions/index.js +6430 -0
  189. package/dist/questions/index.js.map +1 -0
  190. package/dist/realtime/index.d.ts +29 -0
  191. package/dist/realtime/index.js +23 -0
  192. package/dist/realtime/index.js.map +1 -0
  193. package/dist/realtime/refs.d.ts +17 -0
  194. package/dist/realtime/refs.js +9 -0
  195. package/dist/realtime/refs.js.map +1 -0
  196. package/dist/reportsClient.d.ts +41 -0
  197. package/dist/reportsClient.js +418 -0
  198. package/dist/reportsClient.js.map +1 -0
  199. package/dist/schemaClient.d.ts +64 -0
  200. package/dist/schemaClient.js +434 -0
  201. package/dist/schemaClient.js.map +1 -0
  202. package/dist/sdkSurface.d.ts +61 -0
  203. package/dist/sdkSurface.js +112 -0
  204. package/dist/sdkSurface.js.map +1 -0
  205. package/dist/sdkTools-CwXJDACb.d.ts +150 -0
  206. package/dist/sourcesClient.d.ts +24 -0
  207. package/dist/sourcesClient.js +339 -0
  208. package/dist/sourcesClient.js.map +1 -0
  209. package/dist/topics/index.d.ts +68 -0
  210. package/dist/topics/index.js +6428 -0
  211. package/dist/topics/index.js.map +1 -0
  212. package/dist/topicsClient.d.ts +84 -0
  213. package/dist/topicsClient.js +492 -0
  214. package/dist/topicsClient.js.map +1 -0
  215. package/dist/types.d.ts +715 -0
  216. package/dist/types.js +3 -0
  217. package/dist/types.js.map +1 -0
  218. package/dist/version.d.ts +4 -0
  219. package/dist/version.js +6 -0
  220. package/dist/version.js.map +1 -0
  221. package/dist/workflowClient.d.ts +316 -0
  222. package/dist/workflowClient.js +830 -0
  223. package/dist/workflowClient.js.map +1 -0
  224. package/dist/worktrees/index.d.ts +210 -0
  225. package/dist/worktrees/index.js +6430 -0
  226. package/dist/worktrees/index.js.map +1 -0
  227. package/package.json +92 -37
  228. package/dist/lucern/contracts/src/lens-workflow.contract.d.ts +0 -84
  229. package/dist/lucern/contracts/src/mcp-tools.contract.d.ts +0 -151
  230. package/dist/lucern/contracts/src/workflow-runtime.contract.d.ts +0 -161
  231. package/dist/lucern/mcp-server/src/context-pack-policy.d.ts +0 -119
  232. package/dist/lucern/mcp-server/src/context-pack-schema.d.ts +0 -18
  233. package/dist/lucern/modules/graph-primitives/src/ontology-matching.d.ts +0 -78
  234. package/dist/lucern/modules/graph-primitives/src/text-matching.d.ts +0 -53
  235. package/dist/lucern/packages/client-core/src/beliefs.d.ts +0 -30
  236. package/dist/lucern/packages/client-core/src/context.d.ts +0 -29
  237. package/dist/lucern/packages/client-core/src/contradictions.d.ts +0 -11
  238. package/dist/lucern/packages/client-core/src/edges.d.ts +0 -11
  239. package/dist/lucern/packages/client-core/src/events.d.ts +0 -9
  240. package/dist/lucern/packages/client-core/src/evidence.d.ts +0 -21
  241. package/dist/lucern/packages/client-core/src/graph.d.ts +0 -17
  242. package/dist/lucern/packages/client-core/src/identity.d.ts +0 -7
  243. package/dist/lucern/packages/client-core/src/ids.d.ts +0 -7
  244. package/dist/lucern/packages/client-core/src/ontologies.d.ts +0 -13
  245. package/dist/lucern/packages/client-core/src/questions.d.ts +0 -39
  246. package/dist/lucern/packages/client-core/src/search.d.ts +0 -7
  247. package/dist/lucern/packages/client-core/src/tasks.d.ts +0 -13
  248. package/dist/lucern/packages/client-core/src/topics.d.ts +0 -17
  249. package/dist/lucern/packages/client-core/src/webhooks.d.ts +0 -35
  250. package/dist/lucern/packages/client-core/src/worktrees.d.ts +0 -17
  251. package/dist/lucern/packages/domain-beliefs/src/beliefs.d.ts +0 -283
  252. package/dist/lucern/packages/domain-beliefs/src/index.d.ts +0 -1
  253. package/dist/lucern/packages/domain-context/src/compile.d.ts +0 -11
  254. package/dist/lucern/packages/domain-context/src/index.d.ts +0 -4
  255. package/dist/lucern/packages/domain-context/src/ports.d.ts +0 -58
  256. package/dist/lucern/packages/domain-context/src/public-types.d.ts +0 -1
  257. package/dist/lucern/packages/domain-edges/src/contradictions.d.ts +0 -59
  258. package/dist/lucern/packages/domain-edges/src/edges.d.ts +0 -91
  259. package/dist/lucern/packages/domain-edges/src/index.d.ts +0 -2
  260. package/dist/lucern/packages/domain-evidence/src/evidence.d.ts +0 -115
  261. package/dist/lucern/packages/domain-evidence/src/index.d.ts +0 -1
  262. package/dist/lucern/packages/domain-graph/src/graph.d.ts +0 -150
  263. package/dist/lucern/packages/domain-identity/src/index.d.ts +0 -1
  264. package/dist/lucern/packages/domain-identity/src/whoami.d.ts +0 -13
  265. package/dist/lucern/packages/domain-ontologies/src/ontologies.d.ts +0 -123
  266. package/dist/lucern/packages/domain-questions/src/index.d.ts +0 -1
  267. package/dist/lucern/packages/domain-questions/src/questions.d.ts +0 -147
  268. package/dist/lucern/packages/domain-search/src/search.d.ts +0 -97
  269. package/dist/lucern/packages/domain-tasks/src/index.d.ts +0 -1
  270. package/dist/lucern/packages/domain-tasks/src/tasks.d.ts +0 -102
  271. package/dist/lucern/packages/domain-topics/src/index.d.ts +0 -1
  272. package/dist/lucern/packages/domain-topics/src/topics.d.ts +0 -147
  273. package/dist/lucern/packages/domain-worktrees/src/index.d.ts +0 -1
  274. package/dist/lucern/packages/domain-worktrees/src/worktrees.d.ts +0 -185
  275. package/dist/lucern/packages/events/src/index.d.ts +0 -4
  276. package/dist/lucern/packages/events/src/matching.d.ts +0 -3
  277. package/dist/lucern/packages/events/src/outbox.d.ts +0 -15
  278. package/dist/lucern/packages/events/src/types.d.ts +0 -151
  279. package/dist/lucern/packages/events/src/webhooks.d.ts +0 -9
  280. package/dist/lucern/packages/sdk-typescript/src/facade/beliefs.d.ts +0 -15
  281. package/dist/lucern/packages/sdk-typescript/src/facade/context.d.ts +0 -12
  282. package/dist/lucern/packages/sdk-typescript/src/facade/contradictions.d.ts +0 -7
  283. package/dist/lucern/packages/sdk-typescript/src/facade/edges.d.ts +0 -7
  284. package/dist/lucern/packages/sdk-typescript/src/facade/events.d.ts +0 -6
  285. package/dist/lucern/packages/sdk-typescript/src/facade/evidence.d.ts +0 -21
  286. package/dist/lucern/packages/sdk-typescript/src/facade/graph.d.ts +0 -10
  287. package/dist/lucern/packages/sdk-typescript/src/facade/identity.d.ts +0 -5
  288. package/dist/lucern/packages/sdk-typescript/src/facade/ontologies.d.ts +0 -8
  289. package/dist/lucern/packages/sdk-typescript/src/facade/questions.d.ts +0 -39
  290. package/dist/lucern/packages/sdk-typescript/src/facade/search.d.ts +0 -5
  291. package/dist/lucern/packages/sdk-typescript/src/facade/tasks.d.ts +0 -8
  292. package/dist/lucern/packages/sdk-typescript/src/facade/topics.d.ts +0 -10
  293. package/dist/lucern/packages/sdk-typescript/src/facade/webhooks.d.ts +0 -16
  294. package/dist/lucern/packages/sdk-typescript/src/facade/worktrees.d.ts +0 -10
  295. package/dist/lucern/packages/sdk-typescript/src/index.d.ts +0 -28
  296. package/dist/packages/sdk/src/adminClient.d.ts +0 -89
  297. package/dist/packages/sdk/src/answersClient.d.ts +0 -5
  298. package/dist/packages/sdk/src/auditClient.d.ts +0 -23
  299. package/dist/packages/sdk/src/beliefsClient.d.ts +0 -54
  300. package/dist/packages/sdk/src/client.d.ts +0 -1610
  301. package/dist/packages/sdk/src/contextClient.d.ts +0 -9
  302. package/dist/packages/sdk/src/contracts/api-enums.contract.d.ts +0 -58
  303. package/dist/packages/sdk/src/customTools.d.ts +0 -65
  304. package/dist/packages/sdk/src/decisionsClient.d.ts +0 -110
  305. package/dist/packages/sdk/src/graphClient.d.ts +0 -209
  306. package/dist/packages/sdk/src/identityClient.d.ts +0 -104
  307. package/dist/packages/sdk/src/index.d.ts +0 -28
  308. package/dist/packages/sdk/src/learningClient.d.ts +0 -43
  309. package/dist/packages/sdk/src/mcpParitySurface.d.ts +0 -8
  310. package/dist/packages/sdk/src/packsClient.d.ts +0 -101
  311. package/dist/packages/sdk/src/reportsClient.d.ts +0 -31
  312. package/dist/packages/sdk/src/schemaClient.d.ts +0 -54
  313. package/dist/packages/sdk/src/sdkSurface.d.ts +0 -56
  314. package/dist/packages/sdk/src/topicsClient.d.ts +0 -45
  315. package/dist/packages/sdk/src/types.d.ts +0 -489
  316. package/dist/packages/sdk/src/version.d.ts +0 -2
  317. package/dist/packages/sdk/src/workflowClient.d.ts +0 -274
@@ -1,14 +1,25 @@
1
- export declare const CONTROL_OBJECT_KINDS: readonly ["tenant", "workspace", "principal", "tool", "pack", "ontology", "belief", "policy_rule"];
2
- export type ControlObjectKind = (typeof CONTROL_OBJECT_KINDS)[number];
3
- export declare const CONTROL_OBJECT_OWNER_SCOPES: readonly ["platform", "tenant", "workspace", "resource"];
4
- export type ControlObjectOwnerScope = (typeof CONTROL_OBJECT_OWNER_SCOPES)[number];
5
- export declare const CONTROL_OBJECT_EDIT_SURFACES: readonly ["platform_admin", "tenant_admin", "workspace_admin", "graph_worktree"];
6
- export type ControlObjectEditSurface = (typeof CONTROL_OBJECT_EDIT_SURFACES)[number];
7
- export declare const CONTROL_OBJECT_INHERITANCE_RULES: readonly ["none", "platform_seed_to_tenant", "tenant_default_to_workspace", "workspace_narrowing_only", "pack_overlay_to_tenant", "topic_lineage_to_resource"];
8
- export type ControlObjectInheritanceRule = (typeof CONTROL_OBJECT_INHERITANCE_RULES)[number];
9
- export declare const CONTROL_OBJECT_BLAST_RADII: readonly ["platform", "tenant", "workspace", "resource"];
10
- export type ControlObjectBlastRadius = (typeof CONTROL_OBJECT_BLAST_RADII)[number];
11
- export type ControlObjectOwnershipCase = {
1
+ /** All recognized control object kinds in the ownership model. */
2
+ declare const CONTROL_OBJECT_KINDS: readonly ["tenant", "workspace", "principal", "tool", "pack", "ontology", "belief", "policy_rule"];
3
+ /** A kind of control object (tenant, workspace, principal, tool, etc.). */
4
+ type ControlObjectKind = (typeof CONTROL_OBJECT_KINDS)[number];
5
+ /** Canonical ownership scopes: platform, tenant, workspace, or resource. */
6
+ declare const CONTROL_OBJECT_OWNER_SCOPES: readonly ["platform", "tenant", "workspace", "resource"];
7
+ /** The scope level that canonically owns a control object. */
8
+ type ControlObjectOwnerScope = (typeof CONTROL_OBJECT_OWNER_SCOPES)[number];
9
+ /** UI surfaces authorized to edit control objects. */
10
+ declare const CONTROL_OBJECT_EDIT_SURFACES: readonly ["platform_admin", "tenant_admin", "workspace_admin", "graph_worktree"];
11
+ /** A UI surface authorized to mutate a control object (platform admin, tenant admin, etc.). */
12
+ type ControlObjectEditSurface = (typeof CONTROL_OBJECT_EDIT_SURFACES)[number];
13
+ /** Rules governing how control object configuration flows through the scope hierarchy. */
14
+ declare const CONTROL_OBJECT_INHERITANCE_RULES: readonly ["none", "platform_seed_to_tenant", "tenant_default_to_workspace", "workspace_narrowing_only", "pack_overlay_to_tenant", "topic_lineage_to_resource"];
15
+ /** How a control object's configuration propagates through scope hierarchy. */
16
+ type ControlObjectInheritanceRule = (typeof CONTROL_OBJECT_INHERITANCE_RULES)[number];
17
+ /** Scope of impact when a control object is modified. */
18
+ declare const CONTROL_OBJECT_BLAST_RADII: readonly ["platform", "tenant", "workspace", "resource"];
19
+ /** The furthest scope impacted by a mutation to a control object. */
20
+ type ControlObjectBlastRadius = (typeof CONTROL_OBJECT_BLAST_RADII)[number];
21
+ /** A single row in the ownership matrix describing who owns, edits, and inherits a control object. */
22
+ type ControlObjectOwnershipCase = {
12
23
  caseKey: string;
13
24
  caseLabel: string;
14
25
  kind: ControlObjectKind;
@@ -17,8 +28,10 @@ export type ControlObjectOwnershipCase = {
17
28
  inheritanceRule: ControlObjectInheritanceRule;
18
29
  blastRadius: ControlObjectBlastRadius;
19
30
  };
20
- export type ControlObjectOwnershipMatrix = Record<ControlObjectKind, readonly ControlObjectOwnershipCase[]>;
21
- export type ControlObjectOwnershipContract = {
31
+ /** Full ownership matrix keyed by control object kind. */
32
+ type ControlObjectOwnershipMatrix = Record<ControlObjectKind, readonly ControlObjectOwnershipCase[]>;
33
+ /** Versioned ownership contract bundling all enums, the matrix, and flattened rows. */
34
+ type ControlObjectOwnershipContract = {
22
35
  version: "1.0.0";
23
36
  kinds: readonly ControlObjectKind[];
24
37
  ownerScopes: readonly ControlObjectOwnerScope[];
@@ -28,7 +41,8 @@ export type ControlObjectOwnershipContract = {
28
41
  matrix: ControlObjectOwnershipMatrix;
29
42
  rows: readonly ControlObjectOwnershipCase[];
30
43
  };
31
- export declare const CONTROL_OBJECT_OWNERSHIP_MATRIX: {
44
+ /** Static ownership matrix mapping each control object kind to its ownership cases. */
45
+ declare const CONTROL_OBJECT_OWNERSHIP_MATRIX: {
32
46
  readonly tenant: readonly [{
33
47
  readonly caseKey: "platform-record";
34
48
  readonly caseLabel: "Platform Record";
@@ -150,9 +164,10 @@ export declare const CONTROL_OBJECT_OWNERSHIP_MATRIX: {
150
164
  readonly blastRadius: "workspace";
151
165
  }];
152
166
  };
153
- export declare const CONTROL_OBJECT_OWNERSHIP_ROWS: readonly ControlObjectOwnershipCase[];
167
+ /** Flattened array of all ownership cases across all control object kinds. */
168
+ declare const CONTROL_OBJECT_OWNERSHIP_ROWS: readonly ControlObjectOwnershipCase[];
154
169
  /** The canonical ownership contract exposed by the SDK. */
155
- export declare const CONTROL_OBJECT_OWNERSHIP_CONTRACT: {
170
+ declare const CONTROL_OBJECT_OWNERSHIP_CONTRACT: {
156
171
  readonly version: "1.0.0";
157
172
  readonly kinds: readonly ["tenant", "workspace", "principal", "tool", "pack", "ontology", "belief", "policy_rule"];
158
173
  readonly ownerScopes: readonly ["platform", "tenant", "workspace", "resource"];
@@ -286,8 +301,10 @@ export declare const CONTROL_OBJECT_OWNERSHIP_CONTRACT: {
286
301
  /**
287
302
  * List ownership cases for one control-object kind or the full matrix.
288
303
  */
289
- export declare function listControlObjectOwnershipCases(kind?: ControlObjectKind): readonly ControlObjectOwnershipCase[];
304
+ declare function listControlObjectOwnershipCases(kind?: ControlObjectKind): readonly ControlObjectOwnershipCase[];
290
305
  /**
291
306
  * Get a specific ownership case by kind and case key.
292
307
  */
293
- export declare function getControlObjectOwnershipCase(kind: ControlObjectKind, caseKey: string): ControlObjectOwnershipCase | undefined;
308
+ declare function getControlObjectOwnershipCase(kind: ControlObjectKind, caseKey: string): ControlObjectOwnershipCase | undefined;
309
+
310
+ export { CONTROL_OBJECT_BLAST_RADII, CONTROL_OBJECT_EDIT_SURFACES, CONTROL_OBJECT_INHERITANCE_RULES, CONTROL_OBJECT_KINDS, CONTROL_OBJECT_OWNERSHIP_CONTRACT, CONTROL_OBJECT_OWNERSHIP_MATRIX, CONTROL_OBJECT_OWNERSHIP_ROWS, CONTROL_OBJECT_OWNER_SCOPES, type ControlObjectBlastRadius, type ControlObjectEditSurface, type ControlObjectInheritanceRule, type ControlObjectKind, type ControlObjectOwnerScope, type ControlObjectOwnershipCase, type ControlObjectOwnershipContract, type ControlObjectOwnershipMatrix, getControlObjectOwnershipCase, listControlObjectOwnershipCases };
@@ -0,0 +1,215 @@
1
+ // src/controlObjectOwnership.ts
2
+ var CONTROL_OBJECT_KINDS = [
3
+ "tenant",
4
+ "workspace",
5
+ "principal",
6
+ "tool",
7
+ "pack",
8
+ "ontology",
9
+ "belief",
10
+ "policy_rule"
11
+ ];
12
+ var CONTROL_OBJECT_OWNER_SCOPES = [
13
+ "platform",
14
+ "tenant",
15
+ "workspace",
16
+ "resource"
17
+ ];
18
+ var CONTROL_OBJECT_EDIT_SURFACES = [
19
+ "platform_admin",
20
+ "tenant_admin",
21
+ "workspace_admin",
22
+ "graph_worktree"
23
+ ];
24
+ var CONTROL_OBJECT_INHERITANCE_RULES = [
25
+ "none",
26
+ "platform_seed_to_tenant",
27
+ "tenant_default_to_workspace",
28
+ "workspace_narrowing_only",
29
+ "pack_overlay_to_tenant",
30
+ "topic_lineage_to_resource"
31
+ ];
32
+ var CONTROL_OBJECT_BLAST_RADII = [
33
+ "platform",
34
+ "tenant",
35
+ "workspace",
36
+ "resource"
37
+ ];
38
+ function defineCases(cases) {
39
+ return cases;
40
+ }
41
+ var CONTROL_OBJECT_OWNERSHIP_MATRIX = {
42
+ tenant: defineCases([
43
+ {
44
+ caseKey: "platform-record",
45
+ caseLabel: "Platform Record",
46
+ kind: "tenant",
47
+ canonicalOwnerScope: "platform",
48
+ editSurface: "platform_admin",
49
+ inheritanceRule: "none",
50
+ blastRadius: "tenant"
51
+ }
52
+ ]),
53
+ workspace: defineCases([
54
+ {
55
+ caseKey: "tenant-workspace",
56
+ caseLabel: "Tenant Workspace",
57
+ kind: "workspace",
58
+ canonicalOwnerScope: "tenant",
59
+ editSurface: "tenant_admin",
60
+ inheritanceRule: "tenant_default_to_workspace",
61
+ blastRadius: "workspace"
62
+ }
63
+ ]),
64
+ principal: defineCases([
65
+ {
66
+ caseKey: "tenant-principal",
67
+ caseLabel: "Tenant Principal",
68
+ kind: "principal",
69
+ canonicalOwnerScope: "tenant",
70
+ editSurface: "tenant_admin",
71
+ inheritanceRule: "workspace_narrowing_only",
72
+ blastRadius: "resource"
73
+ }
74
+ ]),
75
+ tool: defineCases([
76
+ {
77
+ caseKey: "platform-core",
78
+ caseLabel: "Platform Core",
79
+ kind: "tool",
80
+ canonicalOwnerScope: "platform",
81
+ editSurface: "platform_admin",
82
+ inheritanceRule: "platform_seed_to_tenant",
83
+ blastRadius: "platform"
84
+ },
85
+ {
86
+ caseKey: "tenant-custom",
87
+ caseLabel: "Tenant Custom",
88
+ kind: "tool",
89
+ canonicalOwnerScope: "tenant",
90
+ editSurface: "tenant_admin",
91
+ inheritanceRule: "tenant_default_to_workspace",
92
+ blastRadius: "tenant"
93
+ }
94
+ ]),
95
+ pack: defineCases([
96
+ {
97
+ caseKey: "platform-definition",
98
+ caseLabel: "Platform Definition",
99
+ kind: "pack",
100
+ canonicalOwnerScope: "platform",
101
+ editSurface: "platform_admin",
102
+ inheritanceRule: "platform_seed_to_tenant",
103
+ blastRadius: "platform"
104
+ },
105
+ {
106
+ caseKey: "tenant-installation",
107
+ caseLabel: "Tenant Installation",
108
+ kind: "pack",
109
+ canonicalOwnerScope: "tenant",
110
+ editSurface: "tenant_admin",
111
+ inheritanceRule: "platform_seed_to_tenant",
112
+ blastRadius: "tenant"
113
+ }
114
+ ]),
115
+ ontology: defineCases([
116
+ {
117
+ caseKey: "platform-base",
118
+ caseLabel: "Platform Base",
119
+ kind: "ontology",
120
+ canonicalOwnerScope: "platform",
121
+ editSurface: "platform_admin",
122
+ inheritanceRule: "platform_seed_to_tenant",
123
+ blastRadius: "platform"
124
+ },
125
+ {
126
+ caseKey: "pack-overlay",
127
+ caseLabel: "Pack Overlay",
128
+ kind: "ontology",
129
+ canonicalOwnerScope: "platform",
130
+ editSurface: "platform_admin",
131
+ inheritanceRule: "pack_overlay_to_tenant",
132
+ blastRadius: "platform"
133
+ },
134
+ {
135
+ caseKey: "tenant-extension",
136
+ caseLabel: "Tenant Extension",
137
+ kind: "ontology",
138
+ canonicalOwnerScope: "tenant",
139
+ editSurface: "tenant_admin",
140
+ inheritanceRule: "topic_lineage_to_resource",
141
+ blastRadius: "tenant"
142
+ }
143
+ ]),
144
+ belief: defineCases([
145
+ {
146
+ caseKey: "topic-resource",
147
+ caseLabel: "Topic Resource",
148
+ kind: "belief",
149
+ canonicalOwnerScope: "resource",
150
+ editSurface: "graph_worktree",
151
+ inheritanceRule: "topic_lineage_to_resource",
152
+ blastRadius: "resource"
153
+ }
154
+ ]),
155
+ policy_rule: defineCases([
156
+ {
157
+ caseKey: "platform-baseline",
158
+ caseLabel: "Platform Baseline",
159
+ kind: "policy_rule",
160
+ canonicalOwnerScope: "platform",
161
+ editSurface: "platform_admin",
162
+ inheritanceRule: "platform_seed_to_tenant",
163
+ blastRadius: "platform"
164
+ },
165
+ {
166
+ caseKey: "tenant-bundle",
167
+ caseLabel: "Tenant Bundle",
168
+ kind: "policy_rule",
169
+ canonicalOwnerScope: "tenant",
170
+ editSurface: "tenant_admin",
171
+ inheritanceRule: "tenant_default_to_workspace",
172
+ blastRadius: "tenant"
173
+ },
174
+ {
175
+ caseKey: "workspace-override",
176
+ caseLabel: "Workspace Override",
177
+ kind: "policy_rule",
178
+ canonicalOwnerScope: "workspace",
179
+ editSurface: "workspace_admin",
180
+ inheritanceRule: "none",
181
+ blastRadius: "workspace"
182
+ }
183
+ ])
184
+ };
185
+ function flattenOwnershipMatrix(matrix) {
186
+ return CONTROL_OBJECT_KINDS.flatMap((kind) => [...matrix[kind]]);
187
+ }
188
+ var CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(
189
+ flattenOwnershipMatrix(CONTROL_OBJECT_OWNERSHIP_MATRIX)
190
+ );
191
+ var CONTROL_OBJECT_OWNERSHIP_CONTRACT = {
192
+ version: "1.0.0",
193
+ kinds: CONTROL_OBJECT_KINDS,
194
+ ownerScopes: CONTROL_OBJECT_OWNER_SCOPES,
195
+ editSurfaces: CONTROL_OBJECT_EDIT_SURFACES,
196
+ inheritanceRules: CONTROL_OBJECT_INHERITANCE_RULES,
197
+ blastRadii: CONTROL_OBJECT_BLAST_RADII,
198
+ matrix: CONTROL_OBJECT_OWNERSHIP_MATRIX,
199
+ rows: CONTROL_OBJECT_OWNERSHIP_ROWS
200
+ };
201
+ function listControlObjectOwnershipCases(kind) {
202
+ if (!kind) {
203
+ return CONTROL_OBJECT_OWNERSHIP_ROWS;
204
+ }
205
+ return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind];
206
+ }
207
+ function getControlObjectOwnershipCase(kind, caseKey) {
208
+ return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind].find(
209
+ (ownershipCase) => ownershipCase.caseKey === caseKey
210
+ );
211
+ }
212
+
213
+ export { CONTROL_OBJECT_BLAST_RADII, CONTROL_OBJECT_EDIT_SURFACES, CONTROL_OBJECT_INHERITANCE_RULES, CONTROL_OBJECT_KINDS, CONTROL_OBJECT_OWNERSHIP_CONTRACT, CONTROL_OBJECT_OWNERSHIP_MATRIX, CONTROL_OBJECT_OWNERSHIP_ROWS, CONTROL_OBJECT_OWNER_SCOPES, getControlObjectOwnershipCase, listControlObjectOwnershipCases };
214
+ //# sourceMappingURL=controlObjectOwnership.js.map
215
+ //# sourceMappingURL=controlObjectOwnership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controlObjectOwnership.ts"],"names":[],"mappings":"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","file":"controlObjectOwnership.js","sourcesContent":["/** All recognized control object kinds in the ownership model. */\nexport const CONTROL_OBJECT_KINDS = [\n \"tenant\",\n \"workspace\",\n \"principal\",\n \"tool\",\n \"pack\",\n \"ontology\",\n \"belief\",\n \"policy_rule\",\n] as const;\n/** A kind of control object (tenant, workspace, principal, tool, etc.). */\nexport type ControlObjectKind = (typeof CONTROL_OBJECT_KINDS)[number];\n\n/** Canonical ownership scopes: platform, tenant, workspace, or resource. */\nexport const CONTROL_OBJECT_OWNER_SCOPES = [\n \"platform\",\n \"tenant\",\n \"workspace\",\n \"resource\",\n] as const;\n/** The scope level that canonically owns a control object. */\nexport type ControlObjectOwnerScope =\n (typeof CONTROL_OBJECT_OWNER_SCOPES)[number];\n\n/** UI surfaces authorized to edit control objects. */\nexport const CONTROL_OBJECT_EDIT_SURFACES = [\n \"platform_admin\",\n \"tenant_admin\",\n \"workspace_admin\",\n \"graph_worktree\",\n] as const;\n/** A UI surface authorized to mutate a control object (platform admin, tenant admin, etc.). */\nexport type ControlObjectEditSurface =\n (typeof CONTROL_OBJECT_EDIT_SURFACES)[number];\n\n/** Rules governing how control object configuration flows through the scope hierarchy. */\nexport const CONTROL_OBJECT_INHERITANCE_RULES = [\n \"none\",\n \"platform_seed_to_tenant\",\n \"tenant_default_to_workspace\",\n \"workspace_narrowing_only\",\n \"pack_overlay_to_tenant\",\n \"topic_lineage_to_resource\",\n] as const;\n/** How a control object's configuration propagates through scope hierarchy. */\nexport type ControlObjectInheritanceRule =\n (typeof CONTROL_OBJECT_INHERITANCE_RULES)[number];\n\n/** Scope of impact when a control object is modified. */\nexport const CONTROL_OBJECT_BLAST_RADII = [\n \"platform\",\n \"tenant\",\n \"workspace\",\n \"resource\",\n] as const;\n/** The furthest scope impacted by a mutation to a control object. */\nexport type ControlObjectBlastRadius = (typeof CONTROL_OBJECT_BLAST_RADII)[number];\n\n/** A single row in the ownership matrix describing who owns, edits, and inherits a control object. */\nexport type ControlObjectOwnershipCase = {\n caseKey: string;\n caseLabel: string;\n kind: ControlObjectKind;\n canonicalOwnerScope: ControlObjectOwnerScope;\n editSurface: ControlObjectEditSurface;\n inheritanceRule: ControlObjectInheritanceRule;\n blastRadius: ControlObjectBlastRadius;\n};\n\n/** Full ownership matrix keyed by control object kind. */\nexport type ControlObjectOwnershipMatrix = Record<\n ControlObjectKind,\n readonly ControlObjectOwnershipCase[]\n>;\n\n/** Versioned ownership contract bundling all enums, the matrix, and flattened rows. */\nexport type ControlObjectOwnershipContract = {\n version: \"1.0.0\";\n kinds: readonly ControlObjectKind[];\n ownerScopes: readonly ControlObjectOwnerScope[];\n editSurfaces: readonly ControlObjectEditSurface[];\n inheritanceRules: readonly ControlObjectInheritanceRule[];\n blastRadii: readonly ControlObjectBlastRadius[];\n matrix: ControlObjectOwnershipMatrix;\n rows: readonly ControlObjectOwnershipCase[];\n};\n\nfunction defineCases<const T extends readonly ControlObjectOwnershipCase[]>(\n cases: T\n): T {\n return cases;\n}\n\n/** Static ownership matrix mapping each control object kind to its ownership cases. */\nexport const CONTROL_OBJECT_OWNERSHIP_MATRIX = {\n tenant: defineCases([\n {\n caseKey: \"platform-record\",\n caseLabel: \"Platform Record\",\n kind: \"tenant\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"none\",\n blastRadius: \"tenant\",\n },\n ]),\n workspace: defineCases([\n {\n caseKey: \"tenant-workspace\",\n caseLabel: \"Tenant Workspace\",\n kind: \"workspace\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"workspace\",\n },\n ]),\n principal: defineCases([\n {\n caseKey: \"tenant-principal\",\n caseLabel: \"Tenant Principal\",\n kind: \"principal\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"workspace_narrowing_only\",\n blastRadius: \"resource\",\n },\n ]),\n tool: defineCases([\n {\n caseKey: \"platform-core\",\n caseLabel: \"Platform Core\",\n kind: \"tool\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-custom\",\n caseLabel: \"Tenant Custom\",\n kind: \"tool\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"tenant\",\n },\n ]),\n pack: defineCases([\n {\n caseKey: \"platform-definition\",\n caseLabel: \"Platform Definition\",\n kind: \"pack\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-installation\",\n caseLabel: \"Tenant Installation\",\n kind: \"pack\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"tenant\",\n },\n ]),\n ontology: defineCases([\n {\n caseKey: \"platform-base\",\n caseLabel: \"Platform Base\",\n kind: \"ontology\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"pack-overlay\",\n caseLabel: \"Pack Overlay\",\n kind: \"ontology\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"pack_overlay_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-extension\",\n caseLabel: \"Tenant Extension\",\n kind: \"ontology\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"topic_lineage_to_resource\",\n blastRadius: \"tenant\",\n },\n ]),\n belief: defineCases([\n {\n caseKey: \"topic-resource\",\n caseLabel: \"Topic Resource\",\n kind: \"belief\",\n canonicalOwnerScope: \"resource\",\n editSurface: \"graph_worktree\",\n inheritanceRule: \"topic_lineage_to_resource\",\n blastRadius: \"resource\",\n },\n ]),\n policy_rule: defineCases([\n {\n caseKey: \"platform-baseline\",\n caseLabel: \"Platform Baseline\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"platform\",\n editSurface: \"platform_admin\",\n inheritanceRule: \"platform_seed_to_tenant\",\n blastRadius: \"platform\",\n },\n {\n caseKey: \"tenant-bundle\",\n caseLabel: \"Tenant Bundle\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"tenant\",\n editSurface: \"tenant_admin\",\n inheritanceRule: \"tenant_default_to_workspace\",\n blastRadius: \"tenant\",\n },\n {\n caseKey: \"workspace-override\",\n caseLabel: \"Workspace Override\",\n kind: \"policy_rule\",\n canonicalOwnerScope: \"workspace\",\n editSurface: \"workspace_admin\",\n inheritanceRule: \"none\",\n blastRadius: \"workspace\",\n },\n ]),\n} as const satisfies ControlObjectOwnershipMatrix;\n\nfunction flattenOwnershipMatrix(\n matrix: ControlObjectOwnershipMatrix\n): ControlObjectOwnershipCase[] {\n return CONTROL_OBJECT_KINDS.flatMap((kind) => [...matrix[kind]]);\n}\n\n/** Flattened array of all ownership cases across all control object kinds. */\nexport const CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(\n flattenOwnershipMatrix(CONTROL_OBJECT_OWNERSHIP_MATRIX)\n);\n\n/** The canonical ownership contract exposed by the SDK. */\nexport const CONTROL_OBJECT_OWNERSHIP_CONTRACT = {\n version: \"1.0.0\",\n kinds: CONTROL_OBJECT_KINDS,\n ownerScopes: CONTROL_OBJECT_OWNER_SCOPES,\n editSurfaces: CONTROL_OBJECT_EDIT_SURFACES,\n inheritanceRules: CONTROL_OBJECT_INHERITANCE_RULES,\n blastRadii: CONTROL_OBJECT_BLAST_RADII,\n matrix: CONTROL_OBJECT_OWNERSHIP_MATRIX,\n rows: CONTROL_OBJECT_OWNERSHIP_ROWS,\n} as const satisfies ControlObjectOwnershipContract;\n\n/**\n * List ownership cases for one control-object kind or the full matrix.\n */\nexport function listControlObjectOwnershipCases(\n kind?: ControlObjectKind\n): readonly ControlObjectOwnershipCase[] {\n if (!kind) {\n return CONTROL_OBJECT_OWNERSHIP_ROWS;\n }\n return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind];\n}\n\n/**\n * Get a specific ownership case by kind and case key.\n */\nexport function getControlObjectOwnershipCase(\n kind: ControlObjectKind,\n caseKey: string\n): ControlObjectOwnershipCase | undefined {\n return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind].find(\n (ownershipCase) => ownershipCase.caseKey === caseKey\n );\n}\n"]}
@@ -1,16 +1,23 @@
1
- import type { JsonObject, JsonValue } from "./types";
2
- export type GatewayScope = {
1
+ import { JsonValue, JsonObject } from './types.js';
2
+ import './contracts/workflow-runtime.contract.js';
3
+ import './contracts/lens-workflow.contract.js';
4
+ import './contracts/lens-filter.contract.js';
5
+
6
+ /** Tenant and workspace identifiers used to scope gateway requests. */
7
+ type GatewayScope = {
3
8
  tenantId?: string;
4
9
  workspaceId?: string;
5
10
  };
6
- export type PlatformGatewaySuccess<T> = {
11
+ /** Successful response envelope from the platform gateway with correlation metadata. */
12
+ type PlatformGatewaySuccess<T> = {
7
13
  success: true;
8
14
  data: T;
9
15
  correlationId: string;
10
16
  policyTraceId: string | null;
11
17
  idempotentReplay: boolean;
12
18
  };
13
- export type PlatformGatewayFailure = {
19
+ /** Failed response envelope with structured error codes and optional invariant references. */
20
+ type PlatformGatewayFailure = {
14
21
  success: false;
15
22
  /**
16
23
  * Error string is the canonical envelope field.
@@ -33,8 +40,15 @@ export type PlatformGatewayFailure = {
33
40
  correlationId: string;
34
41
  policyTraceId: string | null;
35
42
  };
36
- export type PlatformGatewayEnvelope<T> = PlatformGatewaySuccess<T> | PlatformGatewayFailure;
37
- export declare class LucernApiError extends Error {
43
+ /** Discriminated union of success and failure gateway responses. */
44
+ type PlatformGatewayEnvelope<T> = PlatformGatewaySuccess<T> | PlatformGatewayFailure;
45
+ /**
46
+ * Structured error thrown when a platform API request fails.
47
+ *
48
+ * Includes HTTP status, machine-readable error code, optional invariant
49
+ * reference, and actionable suggestions for common failure modes.
50
+ */
51
+ declare class LucernApiError extends Error {
38
52
  readonly code: string;
39
53
  readonly status: number;
40
54
  readonly invariant?: string | null;
@@ -55,9 +69,11 @@ export declare class LucernApiError extends Error {
55
69
  policyTraceId?: string | null;
56
70
  });
57
71
  }
58
- export type GatewayHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
72
+ /** Supported HTTP methods for gateway requests. */
73
+ type GatewayHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
59
74
  type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
60
- export type GatewayRequestHookContext = {
75
+ /** Context passed to the `onRequest` hook before each gateway request attempt. */
76
+ type GatewayRequestHookContext = {
61
77
  requestId: string;
62
78
  attempt: number;
63
79
  maxRetries: number;
@@ -68,7 +84,8 @@ export type GatewayRequestHookContext = {
68
84
  body?: string;
69
85
  timeoutMs: number;
70
86
  };
71
- export type GatewayResponseHookContext = GatewayRequestHookContext & {
87
+ /** Context passed to the `onResponse` hook after each gateway request attempt (including retries and failures). */
88
+ type GatewayResponseHookContext = GatewayRequestHookContext & {
72
89
  durationMs: number;
73
90
  status?: number;
74
91
  response?: Response;
@@ -79,7 +96,13 @@ export type GatewayResponseHookContext = GatewayRequestHookContext & {
79
96
  retryAfterMs?: number | null;
80
97
  willRetry: boolean;
81
98
  };
82
- export type GatewayClientConfig = {
99
+ /**
100
+ * Low-level transport configuration for the platform gateway client.
101
+ *
102
+ * Most developers should use {@link createLucernClient} instead, which wraps
103
+ * this config with higher-level conveniences like `apiKey` and `environment`.
104
+ */
105
+ type GatewayClientConfig = {
83
106
  baseUrl?: string;
84
107
  fetchImpl?: FetchLike;
85
108
  getAuthHeaders?: (() => Promise<Record<string, string>>) | (() => Record<string, string>);
@@ -99,15 +122,15 @@ export type GatewayClientConfig = {
99
122
  /**
100
123
  * Serialize a gateway query object into a URL query string.
101
124
  */
102
- export declare function toQueryString(scope: GatewayScope & Record<string, string | number | boolean | undefined>): string;
125
+ declare function toQueryString(scope: GatewayScope & Record<string, string | number | boolean | undefined>): string;
103
126
  /**
104
127
  * Generate a random idempotency key for retry-safe writes.
105
128
  */
106
- export declare function randomIdempotencyKey(): string;
129
+ declare function randomIdempotencyKey(): string;
107
130
  /**
108
131
  * Create the transport client used by all SDK modules.
109
132
  */
110
- export declare function createGatewayRequestClient(config?: GatewayClientConfig): {
133
+ declare function createGatewayRequestClient(config?: GatewayClientConfig): {
111
134
  request: <T>(args: {
112
135
  path: string;
113
136
  method?: GatewayHttpMethod;
@@ -117,4 +140,5 @@ export declare function createGatewayRequestClient(config?: GatewayClientConfig)
117
140
  timeoutMs?: number;
118
141
  }) => Promise<PlatformGatewaySuccess<T>>;
119
142
  };
120
- export {};
143
+
144
+ export { type GatewayClientConfig, type GatewayHttpMethod, type GatewayRequestHookContext, type GatewayResponseHookContext, type GatewayScope, LucernApiError, type PlatformGatewayEnvelope, type PlatformGatewayFailure, type PlatformGatewaySuccess, createGatewayRequestClient, randomIdempotencyKey, toQueryString };