@lucern/sdk 0.2.0-alpha.7 → 0.2.0-alpha.9

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 (257) hide show
  1. package/dist/adminClient.d.ts +409 -0
  2. package/dist/adminClient.js +755 -0
  3. package/dist/adminClient.js.map +1 -0
  4. package/dist/answersClient.d.ts +23 -0
  5. package/dist/answersClient.js +333 -0
  6. package/dist/answersClient.js.map +1 -0
  7. package/dist/audiencesClient.d.ts +99 -0
  8. package/dist/audiencesClient.js +472 -0
  9. package/dist/audiencesClient.js.map +1 -0
  10. package/dist/auditClient.d.ts +29 -0
  11. package/dist/auditClient.js +386 -0
  12. package/dist/auditClient.js.map +1 -0
  13. package/dist/beliefsClient.d.ts +162 -0
  14. package/dist/beliefsClient.js +477 -0
  15. package/dist/beliefsClient.js.map +1 -0
  16. package/dist/client.d.ts +2378 -0
  17. package/dist/client.js +6134 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/contextClient.d.ts +27 -0
  20. package/dist/contextClient.js +396 -0
  21. package/dist/contextClient.js.map +1 -0
  22. package/dist/contextFacade.d.ts +2 -0
  23. package/dist/contextFacade.js +73 -0
  24. package/dist/contextFacade.js.map +1 -0
  25. package/dist/contextPackCompiler.d.ts +102 -0
  26. package/dist/contextPackCompiler.js +1091 -0
  27. package/dist/contextPackCompiler.js.map +1 -0
  28. package/dist/contextPackPolicy.d.ts +84 -0
  29. package/dist/contextPackPolicy.js +347 -0
  30. package/dist/contextPackPolicy.js.map +1 -0
  31. package/dist/contextPackSchema.d.ts +7 -0
  32. package/{src/contextPackSchema.ts → dist/contextPackSchema.js} +22 -70
  33. package/dist/contextPackSchema.js.map +1 -0
  34. package/dist/contextTypes.d.ts +135 -0
  35. package/dist/contextTypes.js +3 -0
  36. package/dist/contextTypes.js.map +1 -0
  37. package/dist/contracts/api-enums.contract.d.ts +81 -0
  38. package/dist/contracts/api-enums.contract.js +92 -0
  39. package/dist/contracts/api-enums.contract.js.map +1 -0
  40. package/dist/contracts/auth-session.contract.d.ts +55 -0
  41. package/dist/contracts/auth-session.contract.js +48 -0
  42. package/dist/contracts/auth-session.contract.js.map +1 -0
  43. package/dist/contracts/context-pack.contract.d.ts +492 -0
  44. package/dist/contracts/context-pack.contract.js +98 -0
  45. package/dist/contracts/context-pack.contract.js.map +1 -0
  46. package/dist/contracts/contextPack.d.ts +1 -0
  47. package/dist/contracts/contextPack.js +98 -0
  48. package/dist/contracts/contextPack.js.map +1 -0
  49. package/dist/contracts/index.d.ts +9 -0
  50. package/dist/contracts/index.js +4892 -0
  51. package/dist/contracts/index.js.map +1 -0
  52. package/dist/contracts/lens-filter.contract.d.ts +72 -0
  53. package/dist/contracts/lens-filter.contract.js +71 -0
  54. package/dist/contracts/lens-filter.contract.js.map +1 -0
  55. package/dist/contracts/lens-workflow.contract.d.ts +87 -0
  56. package/dist/contracts/lens-workflow.contract.js +123 -0
  57. package/dist/contracts/lens-workflow.contract.js.map +1 -0
  58. package/dist/contracts/lensFilter.d.ts +1 -0
  59. package/dist/contracts/lensFilter.js +71 -0
  60. package/dist/contracts/lensFilter.js.map +1 -0
  61. package/dist/contracts/lensWorkflow.d.ts +2 -0
  62. package/dist/contracts/lensWorkflow.js +123 -0
  63. package/dist/contracts/lensWorkflow.js.map +1 -0
  64. package/dist/contracts/mcp-tools.contract.d.ts +1 -0
  65. package/dist/contracts/mcp-tools.contract.js +2986 -0
  66. package/dist/contracts/mcp-tools.contract.js.map +1 -0
  67. package/dist/contracts/mcpTools.d.ts +1 -0
  68. package/dist/contracts/mcpTools.js +2986 -0
  69. package/dist/contracts/mcpTools.js.map +1 -0
  70. package/dist/contracts/prompt.contract.d.ts +26 -0
  71. package/dist/contracts/prompt.contract.js +12 -0
  72. package/dist/contracts/prompt.contract.js.map +1 -0
  73. package/dist/contracts/prompt.d.ts +1 -0
  74. package/dist/contracts/prompt.js +12 -0
  75. package/dist/contracts/prompt.js.map +1 -0
  76. package/dist/contracts/sdk-tools.contract.d.ts +2 -0
  77. package/dist/contracts/sdk-tools.contract.js +4134 -0
  78. package/dist/contracts/sdk-tools.contract.js.map +1 -0
  79. package/dist/contracts/sdkTools.d.ts +2 -0
  80. package/dist/contracts/sdkTools.js +4134 -0
  81. package/dist/contracts/sdkTools.js.map +1 -0
  82. package/dist/contracts/workflow-runtime.contract.d.ts +163 -0
  83. package/dist/contracts/workflow-runtime.contract.js +245 -0
  84. package/dist/contracts/workflow-runtime.contract.js.map +1 -0
  85. package/dist/contracts/workflowRuntime.d.ts +1 -0
  86. package/dist/contracts/workflowRuntime.js +245 -0
  87. package/dist/contracts/workflowRuntime.js.map +1 -0
  88. package/dist/controlObjectOwnership.d.ts +310 -0
  89. package/{src/controlObjectOwnership.ts → dist/controlObjectOwnership.js} +53 -124
  90. package/dist/controlObjectOwnership.js.map +1 -0
  91. package/dist/coreClient.d.ts +144 -0
  92. package/dist/coreClient.js +339 -0
  93. package/dist/coreClient.js.map +1 -0
  94. package/dist/customTools.d.ts +88 -0
  95. package/dist/customTools.js +248 -0
  96. package/dist/customTools.js.map +1 -0
  97. package/dist/decisionsClient.d.ts +111 -0
  98. package/dist/decisionsClient.js +522 -0
  99. package/dist/decisionsClient.js.map +1 -0
  100. package/dist/domainContext.d.ts +1 -0
  101. package/dist/domainContext.js +3 -0
  102. package/dist/domainContext.js.map +1 -0
  103. package/dist/events.d.ts +178 -0
  104. package/dist/events.js +249 -0
  105. package/dist/events.js.map +1 -0
  106. package/dist/eventsCore.d.ts +49 -0
  107. package/dist/eventsCore.js +429 -0
  108. package/dist/eventsCore.js.map +1 -0
  109. package/dist/facade/context.d.ts +18 -0
  110. package/dist/facade/context.js +73 -0
  111. package/dist/facade/context.js.map +1 -0
  112. package/dist/gatewayFacades.d.ts +591 -0
  113. package/dist/gatewayFacades.js +1953 -0
  114. package/dist/gatewayFacades.js.map +1 -0
  115. package/dist/graphClient.d.ts +271 -0
  116. package/dist/graphClient.js +698 -0
  117. package/dist/graphClient.js.map +1 -0
  118. package/dist/harnessClient.d.ts +314 -0
  119. package/dist/harnessClient.js +607 -0
  120. package/dist/harnessClient.js.map +1 -0
  121. package/dist/identityClient.d.ts +140 -0
  122. package/dist/identityClient.js +497 -0
  123. package/dist/identityClient.js.map +1 -0
  124. package/dist/index.d.ts +42 -0
  125. package/dist/index.js +11381 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/learningClient.d.ts +46 -0
  128. package/dist/learningClient.js +409 -0
  129. package/dist/learningClient.js.map +1 -0
  130. package/dist/mcpParityClient.d.ts +74 -0
  131. package/dist/mcpParityClient.js +516 -0
  132. package/dist/mcpParityClient.js.map +1 -0
  133. package/dist/mcpParitySurface.d.ts +12 -0
  134. package/{src/mcpParitySurface.ts → dist/mcpParitySurface.js} +9 -14
  135. package/dist/mcpParitySurface.js.map +1 -0
  136. package/dist/mcpTools-DPZxowDX.d.ts +254 -0
  137. package/dist/ontologyClient.d.ts +137 -0
  138. package/dist/ontologyClient.js +513 -0
  139. package/dist/ontologyClient.js.map +1 -0
  140. package/dist/packRuntime.d.ts +2 -0
  141. package/dist/packRuntime.js +3 -0
  142. package/dist/packRuntime.js.map +1 -0
  143. package/dist/packsClient.d.ts +131 -0
  144. package/dist/packsClient.js +525 -0
  145. package/dist/packsClient.js.map +1 -0
  146. package/dist/policyClient.d.ts +299 -0
  147. package/dist/policyClient.js +625 -0
  148. package/dist/policyClient.js.map +1 -0
  149. package/dist/realtime/index.d.ts +29 -0
  150. package/dist/realtime/index.js +23 -0
  151. package/dist/realtime/index.js.map +1 -0
  152. package/{src/realtime/refs.ts → dist/realtime/refs.d.ts} +5 -5
  153. package/dist/realtime/refs.js +9 -0
  154. package/dist/realtime/refs.js.map +1 -0
  155. package/dist/reportsClient.d.ts +41 -0
  156. package/dist/reportsClient.js +418 -0
  157. package/dist/reportsClient.js.map +1 -0
  158. package/dist/schemaClient.d.ts +64 -0
  159. package/dist/schemaClient.js +434 -0
  160. package/dist/schemaClient.js.map +1 -0
  161. package/dist/sdkSurface.d.ts +61 -0
  162. package/dist/sdkSurface.js +112 -0
  163. package/dist/sdkSurface.js.map +1 -0
  164. package/dist/sdkTools-CwXJDACb.d.ts +150 -0
  165. package/dist/topicsClient.d.ts +84 -0
  166. package/dist/topicsClient.js +492 -0
  167. package/dist/topicsClient.js.map +1 -0
  168. package/dist/types.d.ts +696 -0
  169. package/dist/types.js +3 -0
  170. package/dist/types.js.map +1 -0
  171. package/dist/version.d.ts +4 -0
  172. package/dist/version.js +6 -0
  173. package/dist/version.js.map +1 -0
  174. package/dist/workflowClient.d.ts +316 -0
  175. package/dist/workflowClient.js +830 -0
  176. package/dist/workflowClient.js.map +1 -0
  177. package/package.json +39 -7
  178. package/.turbo/turbo-build.log +0 -7
  179. package/.turbo/turbo-typecheck.log +0 -4
  180. package/examples/README.md +0 -69
  181. package/examples/contradiction.ts +0 -94
  182. package/examples/investigation-context.ts +0 -118
  183. package/examples/questions-and-tasks.ts +0 -55
  184. package/examples/quickstart.ts +0 -97
  185. package/examples/shared.ts +0 -318
  186. package/examples/strict-public-types.ts +0 -143
  187. package/examples/worktree-lifecycle.ts +0 -79
  188. package/src/README.md +0 -6
  189. package/src/adminClient.ts +0 -789
  190. package/src/answersClient.ts +0 -29
  191. package/src/audiencesClient.ts +0 -209
  192. package/src/auditClient.ts +0 -50
  193. package/src/beliefsClient.ts +0 -319
  194. package/src/client.ts +0 -2647
  195. package/src/contextClient.ts +0 -130
  196. package/src/contextFacade.ts +0 -15
  197. package/src/contextPackCompiler.ts +0 -828
  198. package/src/contextTypes.ts +0 -153
  199. package/src/contracts/api-enums.contract.ts +0 -202
  200. package/src/contracts/auth-session.contract.ts +0 -109
  201. package/src/contracts/context-pack.contract.ts +0 -700
  202. package/src/contracts/contextPack.ts +0 -1
  203. package/src/contracts/index.ts +0 -10
  204. package/src/contracts/lens-filter.contract.ts +0 -183
  205. package/src/contracts/lens-workflow.contract.ts +0 -162
  206. package/src/contracts/lensFilter.ts +0 -1
  207. package/src/contracts/lensWorkflow.ts +0 -1
  208. package/src/contracts/mcp-tools.contract.ts +0 -3636
  209. package/src/contracts/mcpTools.ts +0 -1
  210. package/src/contracts/prompt.contract.ts +0 -50
  211. package/src/contracts/prompt.ts +0 -1
  212. package/src/contracts/sdk-tools.contract.ts +0 -1457
  213. package/src/contracts/sdkTools.ts +0 -1
  214. package/src/contracts/workflow-runtime.contract.ts +0 -440
  215. package/src/contracts/workflowRuntime.ts +0 -1
  216. package/src/coreClient.ts +0 -570
  217. package/src/customTools.ts +0 -398
  218. package/src/decisionsClient.ts +0 -286
  219. package/src/domainContext.ts +0 -15
  220. package/src/events.ts +0 -531
  221. package/src/eventsCore.ts +0 -168
  222. package/src/facade/beliefs.ts +0 -83
  223. package/src/facade/context.ts +0 -110
  224. package/src/facade/contradictions.ts +0 -29
  225. package/src/facade/edges.ts +0 -30
  226. package/src/facade/events.ts +0 -23
  227. package/src/facade/evidence.ts +0 -41
  228. package/src/facade/graph.ts +0 -38
  229. package/src/facade/identity.ts +0 -16
  230. package/src/facade/ontologies.ts +0 -34
  231. package/src/facade/questions.ts +0 -59
  232. package/src/facade/search.ts +0 -16
  233. package/src/facade/tasks.ts +0 -37
  234. package/src/facade/topics.ts +0 -42
  235. package/src/facade/webhooks.ts +0 -58
  236. package/src/facade/worktrees.ts +0 -51
  237. package/src/gatewayFacades.ts +0 -1666
  238. package/src/graphClient.ts +0 -529
  239. package/src/harnessClient.ts +0 -585
  240. package/src/identityClient.ts +0 -278
  241. package/src/index.ts +0 -49
  242. package/src/learningClient.ts +0 -95
  243. package/src/mcpParityClient.ts +0 -240
  244. package/src/ontologyClient.ts +0 -275
  245. package/src/packRuntime.ts +0 -3
  246. package/src/packsClient.ts +0 -260
  247. package/src/policyClient.ts +0 -572
  248. package/src/promptCatalog.ts +0 -1
  249. package/src/realtime/index.ts +0 -51
  250. package/src/reportsClient.ts +0 -99
  251. package/src/schemaClient.ts +0 -129
  252. package/src/sdkSurface.ts +0 -190
  253. package/src/topicsClient.ts +0 -243
  254. package/src/types.ts +0 -807
  255. package/src/version.ts +0 -2
  256. package/src/workflowClient.ts +0 -826
  257. package/tsconfig.json +0 -9
@@ -1,5 +1,5 @@
1
- /** All recognized control object kinds in the ownership model. */
2
- export const CONTROL_OBJECT_KINDS = [
1
+ // src/controlObjectOwnership.ts
2
+ var CONTROL_OBJECT_KINDS = [
3
3
  "tenant",
4
4
  "workspace",
5
5
  "principal",
@@ -7,93 +7,38 @@ export const CONTROL_OBJECT_KINDS = [
7
7
  "pack",
8
8
  "ontology",
9
9
  "belief",
10
- "policy_rule",
11
- ] as const;
12
- /** A kind of control object (tenant, workspace, principal, tool, etc.). */
13
- export type ControlObjectKind = (typeof CONTROL_OBJECT_KINDS)[number];
14
-
15
- /** Canonical ownership scopes: platform, tenant, workspace, or resource. */
16
- export const CONTROL_OBJECT_OWNER_SCOPES = [
10
+ "policy_rule"
11
+ ];
12
+ var CONTROL_OBJECT_OWNER_SCOPES = [
17
13
  "platform",
18
14
  "tenant",
19
15
  "workspace",
20
- "resource",
21
- ] as const;
22
- /** The scope level that canonically owns a control object. */
23
- export type ControlObjectOwnerScope =
24
- (typeof CONTROL_OBJECT_OWNER_SCOPES)[number];
25
-
26
- /** UI surfaces authorized to edit control objects. */
27
- export const CONTROL_OBJECT_EDIT_SURFACES = [
16
+ "resource"
17
+ ];
18
+ var CONTROL_OBJECT_EDIT_SURFACES = [
28
19
  "platform_admin",
29
20
  "tenant_admin",
30
21
  "workspace_admin",
31
- "graph_worktree",
32
- ] as const;
33
- /** A UI surface authorized to mutate a control object (platform admin, tenant admin, etc.). */
34
- export type ControlObjectEditSurface =
35
- (typeof CONTROL_OBJECT_EDIT_SURFACES)[number];
36
-
37
- /** Rules governing how control object configuration flows through the scope hierarchy. */
38
- export const CONTROL_OBJECT_INHERITANCE_RULES = [
22
+ "graph_worktree"
23
+ ];
24
+ var CONTROL_OBJECT_INHERITANCE_RULES = [
39
25
  "none",
40
26
  "platform_seed_to_tenant",
41
27
  "tenant_default_to_workspace",
42
28
  "workspace_narrowing_only",
43
29
  "pack_overlay_to_tenant",
44
- "topic_lineage_to_resource",
45
- ] as const;
46
- /** How a control object's configuration propagates through scope hierarchy. */
47
- export type ControlObjectInheritanceRule =
48
- (typeof CONTROL_OBJECT_INHERITANCE_RULES)[number];
49
-
50
- /** Scope of impact when a control object is modified. */
51
- export const CONTROL_OBJECT_BLAST_RADII = [
30
+ "topic_lineage_to_resource"
31
+ ];
32
+ var CONTROL_OBJECT_BLAST_RADII = [
52
33
  "platform",
53
34
  "tenant",
54
35
  "workspace",
55
- "resource",
56
- ] as const;
57
- /** The furthest scope impacted by a mutation to a control object. */
58
- export type ControlObjectBlastRadius = (typeof CONTROL_OBJECT_BLAST_RADII)[number];
59
-
60
- /** A single row in the ownership matrix describing who owns, edits, and inherits a control object. */
61
- export type ControlObjectOwnershipCase = {
62
- caseKey: string;
63
- caseLabel: string;
64
- kind: ControlObjectKind;
65
- canonicalOwnerScope: ControlObjectOwnerScope;
66
- editSurface: ControlObjectEditSurface;
67
- inheritanceRule: ControlObjectInheritanceRule;
68
- blastRadius: ControlObjectBlastRadius;
69
- };
70
-
71
- /** Full ownership matrix keyed by control object kind. */
72
- export type ControlObjectOwnershipMatrix = Record<
73
- ControlObjectKind,
74
- readonly ControlObjectOwnershipCase[]
75
- >;
76
-
77
- /** Versioned ownership contract bundling all enums, the matrix, and flattened rows. */
78
- export type ControlObjectOwnershipContract = {
79
- version: "1.0.0";
80
- kinds: readonly ControlObjectKind[];
81
- ownerScopes: readonly ControlObjectOwnerScope[];
82
- editSurfaces: readonly ControlObjectEditSurface[];
83
- inheritanceRules: readonly ControlObjectInheritanceRule[];
84
- blastRadii: readonly ControlObjectBlastRadius[];
85
- matrix: ControlObjectOwnershipMatrix;
86
- rows: readonly ControlObjectOwnershipCase[];
87
- };
88
-
89
- function defineCases<const T extends readonly ControlObjectOwnershipCase[]>(
90
- cases: T
91
- ): T {
36
+ "resource"
37
+ ];
38
+ function defineCases(cases) {
92
39
  return cases;
93
40
  }
94
-
95
- /** Static ownership matrix mapping each control object kind to its ownership cases. */
96
- export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
41
+ var CONTROL_OBJECT_OWNERSHIP_MATRIX = {
97
42
  tenant: defineCases([
98
43
  {
99
44
  caseKey: "platform-record",
@@ -102,8 +47,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
102
47
  canonicalOwnerScope: "platform",
103
48
  editSurface: "platform_admin",
104
49
  inheritanceRule: "none",
105
- blastRadius: "tenant",
106
- },
50
+ blastRadius: "tenant"
51
+ }
107
52
  ]),
108
53
  workspace: defineCases([
109
54
  {
@@ -113,8 +58,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
113
58
  canonicalOwnerScope: "tenant",
114
59
  editSurface: "tenant_admin",
115
60
  inheritanceRule: "tenant_default_to_workspace",
116
- blastRadius: "workspace",
117
- },
61
+ blastRadius: "workspace"
62
+ }
118
63
  ]),
119
64
  principal: defineCases([
120
65
  {
@@ -124,8 +69,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
124
69
  canonicalOwnerScope: "tenant",
125
70
  editSurface: "tenant_admin",
126
71
  inheritanceRule: "workspace_narrowing_only",
127
- blastRadius: "resource",
128
- },
72
+ blastRadius: "resource"
73
+ }
129
74
  ]),
130
75
  tool: defineCases([
131
76
  {
@@ -135,7 +80,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
135
80
  canonicalOwnerScope: "platform",
136
81
  editSurface: "platform_admin",
137
82
  inheritanceRule: "platform_seed_to_tenant",
138
- blastRadius: "platform",
83
+ blastRadius: "platform"
139
84
  },
140
85
  {
141
86
  caseKey: "tenant-custom",
@@ -144,8 +89,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
144
89
  canonicalOwnerScope: "tenant",
145
90
  editSurface: "tenant_admin",
146
91
  inheritanceRule: "tenant_default_to_workspace",
147
- blastRadius: "tenant",
148
- },
92
+ blastRadius: "tenant"
93
+ }
149
94
  ]),
150
95
  pack: defineCases([
151
96
  {
@@ -155,7 +100,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
155
100
  canonicalOwnerScope: "platform",
156
101
  editSurface: "platform_admin",
157
102
  inheritanceRule: "platform_seed_to_tenant",
158
- blastRadius: "platform",
103
+ blastRadius: "platform"
159
104
  },
160
105
  {
161
106
  caseKey: "tenant-installation",
@@ -164,8 +109,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
164
109
  canonicalOwnerScope: "tenant",
165
110
  editSurface: "tenant_admin",
166
111
  inheritanceRule: "platform_seed_to_tenant",
167
- blastRadius: "tenant",
168
- },
112
+ blastRadius: "tenant"
113
+ }
169
114
  ]),
170
115
  ontology: defineCases([
171
116
  {
@@ -175,7 +120,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
175
120
  canonicalOwnerScope: "platform",
176
121
  editSurface: "platform_admin",
177
122
  inheritanceRule: "platform_seed_to_tenant",
178
- blastRadius: "platform",
123
+ blastRadius: "platform"
179
124
  },
180
125
  {
181
126
  caseKey: "pack-overlay",
@@ -184,7 +129,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
184
129
  canonicalOwnerScope: "platform",
185
130
  editSurface: "platform_admin",
186
131
  inheritanceRule: "pack_overlay_to_tenant",
187
- blastRadius: "platform",
132
+ blastRadius: "platform"
188
133
  },
189
134
  {
190
135
  caseKey: "tenant-extension",
@@ -193,8 +138,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
193
138
  canonicalOwnerScope: "tenant",
194
139
  editSurface: "tenant_admin",
195
140
  inheritanceRule: "topic_lineage_to_resource",
196
- blastRadius: "tenant",
197
- },
141
+ blastRadius: "tenant"
142
+ }
198
143
  ]),
199
144
  belief: defineCases([
200
145
  {
@@ -204,8 +149,8 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
204
149
  canonicalOwnerScope: "resource",
205
150
  editSurface: "graph_worktree",
206
151
  inheritanceRule: "topic_lineage_to_resource",
207
- blastRadius: "resource",
208
- },
152
+ blastRadius: "resource"
153
+ }
209
154
  ]),
210
155
  policy_rule: defineCases([
211
156
  {
@@ -215,7 +160,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
215
160
  canonicalOwnerScope: "platform",
216
161
  editSurface: "platform_admin",
217
162
  inheritanceRule: "platform_seed_to_tenant",
218
- blastRadius: "platform",
163
+ blastRadius: "platform"
219
164
  },
220
165
  {
221
166
  caseKey: "tenant-bundle",
@@ -224,7 +169,7 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
224
169
  canonicalOwnerScope: "tenant",
225
170
  editSurface: "tenant_admin",
226
171
  inheritanceRule: "tenant_default_to_workspace",
227
- blastRadius: "tenant",
172
+ blastRadius: "tenant"
228
173
  },
229
174
  {
230
175
  caseKey: "workspace-override",
@@ -233,24 +178,17 @@ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
233
178
  canonicalOwnerScope: "workspace",
234
179
  editSurface: "workspace_admin",
235
180
  inheritanceRule: "none",
236
- blastRadius: "workspace",
237
- },
238
- ]),
239
- } as const satisfies ControlObjectOwnershipMatrix;
240
-
241
- function flattenOwnershipMatrix(
242
- matrix: ControlObjectOwnershipMatrix
243
- ): ControlObjectOwnershipCase[] {
181
+ blastRadius: "workspace"
182
+ }
183
+ ])
184
+ };
185
+ function flattenOwnershipMatrix(matrix) {
244
186
  return CONTROL_OBJECT_KINDS.flatMap((kind) => [...matrix[kind]]);
245
187
  }
246
-
247
- /** Flattened array of all ownership cases across all control object kinds. */
248
- export const CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(
188
+ var CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(
249
189
  flattenOwnershipMatrix(CONTROL_OBJECT_OWNERSHIP_MATRIX)
250
190
  );
251
-
252
- /** The canonical ownership contract exposed by the SDK. */
253
- export const CONTROL_OBJECT_OWNERSHIP_CONTRACT = {
191
+ var CONTROL_OBJECT_OWNERSHIP_CONTRACT = {
254
192
  version: "1.0.0",
255
193
  kinds: CONTROL_OBJECT_KINDS,
256
194
  ownerScopes: CONTROL_OBJECT_OWNER_SCOPES,
@@ -258,29 +196,20 @@ export const CONTROL_OBJECT_OWNERSHIP_CONTRACT = {
258
196
  inheritanceRules: CONTROL_OBJECT_INHERITANCE_RULES,
259
197
  blastRadii: CONTROL_OBJECT_BLAST_RADII,
260
198
  matrix: CONTROL_OBJECT_OWNERSHIP_MATRIX,
261
- rows: CONTROL_OBJECT_OWNERSHIP_ROWS,
262
- } as const satisfies ControlObjectOwnershipContract;
263
-
264
- /**
265
- * List ownership cases for one control-object kind or the full matrix.
266
- */
267
- export function listControlObjectOwnershipCases(
268
- kind?: ControlObjectKind
269
- ): readonly ControlObjectOwnershipCase[] {
199
+ rows: CONTROL_OBJECT_OWNERSHIP_ROWS
200
+ };
201
+ function listControlObjectOwnershipCases(kind) {
270
202
  if (!kind) {
271
203
  return CONTROL_OBJECT_OWNERSHIP_ROWS;
272
204
  }
273
205
  return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind];
274
206
  }
275
-
276
- /**
277
- * Get a specific ownership case by kind and case key.
278
- */
279
- export function getControlObjectOwnershipCase(
280
- kind: ControlObjectKind,
281
- caseKey: string
282
- ): ControlObjectOwnershipCase | undefined {
207
+ function getControlObjectOwnershipCase(kind, caseKey) {
283
208
  return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind].find(
284
209
  (ownershipCase) => ownershipCase.caseKey === caseKey
285
210
  );
286
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"]}
@@ -0,0 +1,144 @@
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 = {
8
+ tenantId?: string;
9
+ workspaceId?: string;
10
+ };
11
+ /** Successful response envelope from the platform gateway with correlation metadata. */
12
+ type PlatformGatewaySuccess<T> = {
13
+ success: true;
14
+ data: T;
15
+ correlationId: string;
16
+ policyTraceId: string | null;
17
+ idempotentReplay: boolean;
18
+ };
19
+ /** Failed response envelope with structured error codes and optional invariant references. */
20
+ type PlatformGatewayFailure = {
21
+ success: false;
22
+ /**
23
+ * Error string is the canonical envelope field.
24
+ * Object form is legacy-only compatibility for older gateway responses.
25
+ */
26
+ error: string | {
27
+ code: string;
28
+ message: string;
29
+ details?: JsonValue;
30
+ };
31
+ code?: string;
32
+ invariant?: string | null;
33
+ suggestion?: string | null;
34
+ details?: JsonValue;
35
+ legacyError?: {
36
+ code: string;
37
+ message: string;
38
+ details?: JsonValue;
39
+ };
40
+ correlationId: string;
41
+ policyTraceId: string | null;
42
+ };
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 {
52
+ readonly code: string;
53
+ readonly status: number;
54
+ readonly invariant?: string | null;
55
+ readonly suggestion?: string | null;
56
+ readonly details?: JsonValue;
57
+ readonly requestId?: string;
58
+ readonly correlationId?: string;
59
+ readonly policyTraceId?: string | null;
60
+ constructor(args: {
61
+ code: string;
62
+ message: string;
63
+ status: number;
64
+ invariant?: string | null;
65
+ suggestion?: string | null;
66
+ details?: JsonValue;
67
+ requestId?: string;
68
+ correlationId?: string;
69
+ policyTraceId?: string | null;
70
+ });
71
+ }
72
+ /** Supported HTTP methods for gateway requests. */
73
+ type GatewayHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
74
+ type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
75
+ /** Context passed to the `onRequest` hook before each gateway request attempt. */
76
+ type GatewayRequestHookContext = {
77
+ requestId: string;
78
+ attempt: number;
79
+ maxRetries: number;
80
+ method: GatewayHttpMethod;
81
+ path: string;
82
+ url: string;
83
+ headers: Headers;
84
+ body?: string;
85
+ timeoutMs: number;
86
+ };
87
+ /** Context passed to the `onResponse` hook after each gateway request attempt (including retries and failures). */
88
+ type GatewayResponseHookContext = GatewayRequestHookContext & {
89
+ durationMs: number;
90
+ status?: number;
91
+ response?: Response;
92
+ error?: unknown;
93
+ correlationId?: string;
94
+ policyTraceId?: string | null;
95
+ idempotentReplay?: boolean;
96
+ retryAfterMs?: number | null;
97
+ willRetry: boolean;
98
+ };
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 = {
106
+ baseUrl?: string;
107
+ fetchImpl?: FetchLike;
108
+ getAuthHeaders?: (() => Promise<Record<string, string>>) | (() => Record<string, string>);
109
+ /** Max retries for transient errors (5xx, network). Defaults to 2. */
110
+ maxRetries?: number;
111
+ /** Request timeout in ms. Defaults to 15000. */
112
+ timeoutMs?: number;
113
+ /** Optional timeout overrides by HTTP method. */
114
+ timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;
115
+ /** Optional request ID factory used for correlation headers. */
116
+ requestIdFactory?: () => string;
117
+ /** Invoked before each request attempt, including retries. */
118
+ onRequest?: ((context: GatewayRequestHookContext) => void) | ((context: GatewayRequestHookContext) => Promise<void>);
119
+ /** Invoked after each request attempt, including retries and failures. */
120
+ onResponse?: ((context: GatewayResponseHookContext) => void) | ((context: GatewayResponseHookContext) => Promise<void>);
121
+ };
122
+ /**
123
+ * Serialize a gateway query object into a URL query string.
124
+ */
125
+ declare function toQueryString(scope: GatewayScope & Record<string, string | number | boolean | undefined>): string;
126
+ /**
127
+ * Generate a random idempotency key for retry-safe writes.
128
+ */
129
+ declare function randomIdempotencyKey(): string;
130
+ /**
131
+ * Create the transport client used by all SDK modules.
132
+ */
133
+ declare function createGatewayRequestClient(config?: GatewayClientConfig): {
134
+ request: <T>(args: {
135
+ path: string;
136
+ method?: GatewayHttpMethod;
137
+ body?: JsonObject;
138
+ idempotencyKey?: string;
139
+ requestId?: string;
140
+ timeoutMs?: number;
141
+ }) => Promise<PlatformGatewaySuccess<T>>;
142
+ };
143
+
144
+ export { type GatewayClientConfig, type GatewayHttpMethod, type GatewayRequestHookContext, type GatewayResponseHookContext, type GatewayScope, LucernApiError, type PlatformGatewayEnvelope, type PlatformGatewayFailure, type PlatformGatewaySuccess, createGatewayRequestClient, randomIdempotencyKey, toQueryString };