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

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 (166) hide show
  1. package/.turbo/turbo-build.log +7 -0
  2. package/.turbo/turbo-typecheck.log +4 -0
  3. package/CHANGELOG.md +13 -0
  4. package/examples/README.md +69 -0
  5. package/examples/contradiction.ts +94 -0
  6. package/examples/investigation-context.ts +118 -0
  7. package/examples/questions-and-tasks.ts +55 -0
  8. package/examples/quickstart.ts +97 -0
  9. package/examples/shared.ts +318 -0
  10. package/examples/strict-public-types.ts +143 -0
  11. package/examples/worktree-lifecycle.ts +79 -0
  12. package/package.json +16 -59
  13. package/src/README.md +6 -0
  14. package/src/adminClient.ts +789 -0
  15. package/{dist/lib/platform/sdk/answersClient.d.ts → src/answersClient.ts} +17 -4
  16. package/src/audiencesClient.ts +209 -0
  17. package/src/auditClient.ts +50 -0
  18. package/src/beliefsClient.ts +319 -0
  19. package/src/client.ts +2647 -0
  20. package/src/contextClient.ts +130 -0
  21. package/src/contextFacade.ts +15 -0
  22. package/src/contextPackCompiler.ts +828 -0
  23. package/src/contextPackSchema.ts +251 -0
  24. package/src/contextTypes.ts +153 -0
  25. package/src/contracts/api-enums.contract.ts +202 -0
  26. package/src/contracts/auth-session.contract.ts +109 -0
  27. package/src/contracts/context-pack.contract.ts +700 -0
  28. package/src/contracts/contextPack.ts +1 -0
  29. package/src/contracts/index.ts +10 -0
  30. package/src/contracts/lens-filter.contract.ts +183 -0
  31. package/src/contracts/lens-workflow.contract.ts +162 -0
  32. package/src/contracts/lensFilter.ts +1 -0
  33. package/src/contracts/lensWorkflow.ts +1 -0
  34. package/src/contracts/mcp-tools.contract.ts +3636 -0
  35. package/src/contracts/mcpTools.ts +1 -0
  36. package/src/contracts/prompt.contract.ts +50 -0
  37. package/src/contracts/prompt.ts +1 -0
  38. package/src/contracts/sdk-tools.contract.ts +1457 -0
  39. package/src/contracts/sdkTools.ts +1 -0
  40. package/src/contracts/workflow-runtime.contract.ts +440 -0
  41. package/src/contracts/workflowRuntime.ts +1 -0
  42. package/src/controlObjectOwnership.ts +286 -0
  43. package/src/coreClient.ts +570 -0
  44. package/src/customTools.ts +398 -0
  45. package/src/decisionsClient.ts +286 -0
  46. package/src/domainContext.ts +15 -0
  47. package/src/events.ts +531 -0
  48. package/src/eventsCore.ts +168 -0
  49. package/src/facade/beliefs.ts +83 -0
  50. package/src/facade/context.ts +110 -0
  51. package/src/facade/contradictions.ts +29 -0
  52. package/src/facade/edges.ts +30 -0
  53. package/src/facade/events.ts +23 -0
  54. package/src/facade/evidence.ts +41 -0
  55. package/src/facade/graph.ts +38 -0
  56. package/src/facade/identity.ts +16 -0
  57. package/src/facade/ontologies.ts +34 -0
  58. package/src/facade/questions.ts +59 -0
  59. package/src/facade/search.ts +16 -0
  60. package/src/facade/tasks.ts +37 -0
  61. package/src/facade/topics.ts +42 -0
  62. package/src/facade/webhooks.ts +58 -0
  63. package/src/facade/worktrees.ts +51 -0
  64. package/src/gatewayFacades.ts +1666 -0
  65. package/src/graphClient.ts +529 -0
  66. package/src/harnessClient.ts +585 -0
  67. package/src/identityClient.ts +278 -0
  68. package/{dist/lib/platform/sdk/index.d.ts → src/index.ts} +3 -0
  69. package/src/learningClient.ts +95 -0
  70. package/src/mcpParityClient.ts +240 -0
  71. package/src/mcpParitySurface.ts +70 -0
  72. package/src/ontologyClient.ts +275 -0
  73. package/src/packRuntime.ts +3 -0
  74. package/src/packsClient.ts +260 -0
  75. package/src/policyClient.ts +572 -0
  76. package/src/promptCatalog.ts +1 -0
  77. package/src/realtime/index.ts +51 -0
  78. package/src/realtime/refs.ts +17 -0
  79. package/src/reportsClient.ts +99 -0
  80. package/src/schemaClient.ts +129 -0
  81. package/src/sdkSurface.ts +190 -0
  82. package/src/topicsClient.ts +243 -0
  83. package/src/types.ts +807 -0
  84. package/src/workflowClient.ts +826 -0
  85. package/tsconfig.json +9 -0
  86. package/dist/.generated +0 -2
  87. package/dist/index.d.ts +0 -3
  88. package/dist/index.js +0 -3
  89. package/dist/lib/platform/auth/credentials.d.ts +0 -5
  90. package/dist/lib/platform/auth/credentials.js +0 -40
  91. package/dist/lib/platform/sdk/adminClient.d.ts +0 -404
  92. package/dist/lib/platform/sdk/adminClient.js +0 -384
  93. package/dist/lib/platform/sdk/answersClient.js +0 -21
  94. package/dist/lib/platform/sdk/audiencesClient.d.ts +0 -93
  95. package/dist/lib/platform/sdk/audiencesClient.js +0 -111
  96. package/dist/lib/platform/sdk/auditClient.d.ts +0 -24
  97. package/dist/lib/platform/sdk/auditClient.js +0 -21
  98. package/dist/lib/platform/sdk/beliefsClient.d.ts +0 -157
  99. package/dist/lib/platform/sdk/beliefsClient.js +0 -124
  100. package/dist/lib/platform/sdk/client.d.ts +0 -2369
  101. package/dist/lib/platform/sdk/client.js +0 -1831
  102. package/dist/lib/platform/sdk/contextClient.d.ts +0 -21
  103. package/dist/lib/platform/sdk/contextClient.js +0 -86
  104. package/dist/lib/platform/sdk/contextPackCompiler.d.ts +0 -100
  105. package/dist/lib/platform/sdk/contextPackCompiler.js +0 -534
  106. package/dist/lib/platform/sdk/contextTypes.d.ts +0 -133
  107. package/dist/lib/platform/sdk/contextTypes.js +0 -1
  108. package/dist/lib/platform/sdk/controlObjectOwnership.d.ts +0 -308
  109. package/dist/lib/platform/sdk/controlObjectOwnership.js +0 -220
  110. package/dist/lib/platform/sdk/coreClient.d.ts +0 -139
  111. package/dist/lib/platform/sdk/coreClient.js +0 -366
  112. package/dist/lib/platform/sdk/customTools.d.ts +0 -83
  113. package/dist/lib/platform/sdk/customTools.js +0 -247
  114. package/dist/lib/platform/sdk/decisionsClient.d.ts +0 -106
  115. package/dist/lib/platform/sdk/decisionsClient.js +0 -129
  116. package/dist/lib/platform/sdk/domainContext.d.ts +0 -1
  117. package/dist/lib/platform/sdk/domainContext.js +0 -1
  118. package/dist/lib/platform/sdk/events.d.ts +0 -176
  119. package/dist/lib/platform/sdk/events.js +0 -261
  120. package/dist/lib/platform/sdk/gatewayFacades.d.ts +0 -586
  121. package/dist/lib/platform/sdk/gatewayFacades.js +0 -845
  122. package/dist/lib/platform/sdk/graphClient.d.ts +0 -266
  123. package/dist/lib/platform/sdk/graphClient.js +0 -235
  124. package/dist/lib/platform/sdk/harnessClient.d.ts +0 -309
  125. package/dist/lib/platform/sdk/harnessClient.js +0 -219
  126. package/dist/lib/platform/sdk/identityClient.d.ts +0 -134
  127. package/dist/lib/platform/sdk/identityClient.js +0 -131
  128. package/dist/lib/platform/sdk/index.js +0 -46
  129. package/dist/lib/platform/sdk/learningClient.d.ts +0 -40
  130. package/dist/lib/platform/sdk/learningClient.js +0 -53
  131. package/dist/lib/platform/sdk/mcpParityClient.d.ts +0 -69
  132. package/dist/lib/platform/sdk/mcpParityClient.js +0 -196
  133. package/dist/lib/platform/sdk/mcpParitySurface.d.ts +0 -10
  134. package/dist/lib/platform/sdk/mcpParitySurface.js +0 -57
  135. package/dist/lib/platform/sdk/ontologyClient.d.ts +0 -131
  136. package/dist/lib/platform/sdk/ontologyClient.js +0 -161
  137. package/dist/lib/platform/sdk/packRuntime.d.ts +0 -1
  138. package/dist/lib/platform/sdk/packRuntime.js +0 -1
  139. package/dist/lib/platform/sdk/packsClient.d.ts +0 -126
  140. package/dist/lib/platform/sdk/packsClient.js +0 -157
  141. package/dist/lib/platform/sdk/policyClient.d.ts +0 -293
  142. package/dist/lib/platform/sdk/policyClient.js +0 -277
  143. package/dist/lib/platform/sdk/promptCatalog.d.ts +0 -1
  144. package/dist/lib/platform/sdk/promptCatalog.js +0 -1
  145. package/dist/lib/platform/sdk/reportsClient.d.ts +0 -34
  146. package/dist/lib/platform/sdk/reportsClient.js +0 -64
  147. package/dist/lib/platform/sdk/schemaClient.d.ts +0 -59
  148. package/dist/lib/platform/sdk/schemaClient.js +0 -71
  149. package/dist/lib/platform/sdk/sdkSurface.d.ts +0 -56
  150. package/dist/lib/platform/sdk/sdkSurface.js +0 -140
  151. package/dist/lib/platform/sdk/topicsClient.d.ts +0 -78
  152. package/dist/lib/platform/sdk/topicsClient.js +0 -118
  153. package/dist/lib/platform/sdk/types.d.ts +0 -692
  154. package/dist/lib/platform/sdk/types.js +0 -1
  155. package/dist/lib/platform/sdk/version.d.ts +0 -2
  156. package/dist/lib/platform/sdk/workflowClient.d.ts +0 -313
  157. package/dist/lib/platform/sdk/workflowClient.js +0 -366
  158. package/dist/lucern/contracts/src/api-enums.contract.d.ts +0 -58
  159. package/dist/lucern/contracts/src/api-enums.contract.js +0 -147
  160. package/dist/lucern/contracts/src/lens-filter.contract.d.ts +0 -70
  161. package/dist/lucern/contracts/src/lens-filter.contract.js +0 -95
  162. package/dist/lucern/contracts/src/lens-workflow.contract.d.ts +0 -84
  163. package/dist/lucern/contracts/src/lens-workflow.contract.js +0 -54
  164. package/dist/lucern/contracts/src/mcp-tools.contract.d.ts +0 -151
  165. package/dist/lucern/contracts/src/mcp-tools.contract.js +0 -3281
  166. /package/{dist/lib/platform/sdk/version.js → src/version.ts} +0 -0
@@ -0,0 +1,286 @@
1
+ /** All recognized control object kinds in the ownership model. */
2
+ export const CONTROL_OBJECT_KINDS = [
3
+ "tenant",
4
+ "workspace",
5
+ "principal",
6
+ "tool",
7
+ "pack",
8
+ "ontology",
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 = [
17
+ "platform",
18
+ "tenant",
19
+ "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 = [
28
+ "platform_admin",
29
+ "tenant_admin",
30
+ "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 = [
39
+ "none",
40
+ "platform_seed_to_tenant",
41
+ "tenant_default_to_workspace",
42
+ "workspace_narrowing_only",
43
+ "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 = [
52
+ "platform",
53
+ "tenant",
54
+ "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 {
92
+ return cases;
93
+ }
94
+
95
+ /** Static ownership matrix mapping each control object kind to its ownership cases. */
96
+ export const CONTROL_OBJECT_OWNERSHIP_MATRIX = {
97
+ tenant: defineCases([
98
+ {
99
+ caseKey: "platform-record",
100
+ caseLabel: "Platform Record",
101
+ kind: "tenant",
102
+ canonicalOwnerScope: "platform",
103
+ editSurface: "platform_admin",
104
+ inheritanceRule: "none",
105
+ blastRadius: "tenant",
106
+ },
107
+ ]),
108
+ workspace: defineCases([
109
+ {
110
+ caseKey: "tenant-workspace",
111
+ caseLabel: "Tenant Workspace",
112
+ kind: "workspace",
113
+ canonicalOwnerScope: "tenant",
114
+ editSurface: "tenant_admin",
115
+ inheritanceRule: "tenant_default_to_workspace",
116
+ blastRadius: "workspace",
117
+ },
118
+ ]),
119
+ principal: defineCases([
120
+ {
121
+ caseKey: "tenant-principal",
122
+ caseLabel: "Tenant Principal",
123
+ kind: "principal",
124
+ canonicalOwnerScope: "tenant",
125
+ editSurface: "tenant_admin",
126
+ inheritanceRule: "workspace_narrowing_only",
127
+ blastRadius: "resource",
128
+ },
129
+ ]),
130
+ tool: defineCases([
131
+ {
132
+ caseKey: "platform-core",
133
+ caseLabel: "Platform Core",
134
+ kind: "tool",
135
+ canonicalOwnerScope: "platform",
136
+ editSurface: "platform_admin",
137
+ inheritanceRule: "platform_seed_to_tenant",
138
+ blastRadius: "platform",
139
+ },
140
+ {
141
+ caseKey: "tenant-custom",
142
+ caseLabel: "Tenant Custom",
143
+ kind: "tool",
144
+ canonicalOwnerScope: "tenant",
145
+ editSurface: "tenant_admin",
146
+ inheritanceRule: "tenant_default_to_workspace",
147
+ blastRadius: "tenant",
148
+ },
149
+ ]),
150
+ pack: defineCases([
151
+ {
152
+ caseKey: "platform-definition",
153
+ caseLabel: "Platform Definition",
154
+ kind: "pack",
155
+ canonicalOwnerScope: "platform",
156
+ editSurface: "platform_admin",
157
+ inheritanceRule: "platform_seed_to_tenant",
158
+ blastRadius: "platform",
159
+ },
160
+ {
161
+ caseKey: "tenant-installation",
162
+ caseLabel: "Tenant Installation",
163
+ kind: "pack",
164
+ canonicalOwnerScope: "tenant",
165
+ editSurface: "tenant_admin",
166
+ inheritanceRule: "platform_seed_to_tenant",
167
+ blastRadius: "tenant",
168
+ },
169
+ ]),
170
+ ontology: defineCases([
171
+ {
172
+ caseKey: "platform-base",
173
+ caseLabel: "Platform Base",
174
+ kind: "ontology",
175
+ canonicalOwnerScope: "platform",
176
+ editSurface: "platform_admin",
177
+ inheritanceRule: "platform_seed_to_tenant",
178
+ blastRadius: "platform",
179
+ },
180
+ {
181
+ caseKey: "pack-overlay",
182
+ caseLabel: "Pack Overlay",
183
+ kind: "ontology",
184
+ canonicalOwnerScope: "platform",
185
+ editSurface: "platform_admin",
186
+ inheritanceRule: "pack_overlay_to_tenant",
187
+ blastRadius: "platform",
188
+ },
189
+ {
190
+ caseKey: "tenant-extension",
191
+ caseLabel: "Tenant Extension",
192
+ kind: "ontology",
193
+ canonicalOwnerScope: "tenant",
194
+ editSurface: "tenant_admin",
195
+ inheritanceRule: "topic_lineage_to_resource",
196
+ blastRadius: "tenant",
197
+ },
198
+ ]),
199
+ belief: defineCases([
200
+ {
201
+ caseKey: "topic-resource",
202
+ caseLabel: "Topic Resource",
203
+ kind: "belief",
204
+ canonicalOwnerScope: "resource",
205
+ editSurface: "graph_worktree",
206
+ inheritanceRule: "topic_lineage_to_resource",
207
+ blastRadius: "resource",
208
+ },
209
+ ]),
210
+ policy_rule: defineCases([
211
+ {
212
+ caseKey: "platform-baseline",
213
+ caseLabel: "Platform Baseline",
214
+ kind: "policy_rule",
215
+ canonicalOwnerScope: "platform",
216
+ editSurface: "platform_admin",
217
+ inheritanceRule: "platform_seed_to_tenant",
218
+ blastRadius: "platform",
219
+ },
220
+ {
221
+ caseKey: "tenant-bundle",
222
+ caseLabel: "Tenant Bundle",
223
+ kind: "policy_rule",
224
+ canonicalOwnerScope: "tenant",
225
+ editSurface: "tenant_admin",
226
+ inheritanceRule: "tenant_default_to_workspace",
227
+ blastRadius: "tenant",
228
+ },
229
+ {
230
+ caseKey: "workspace-override",
231
+ caseLabel: "Workspace Override",
232
+ kind: "policy_rule",
233
+ canonicalOwnerScope: "workspace",
234
+ editSurface: "workspace_admin",
235
+ inheritanceRule: "none",
236
+ blastRadius: "workspace",
237
+ },
238
+ ]),
239
+ } as const satisfies ControlObjectOwnershipMatrix;
240
+
241
+ function flattenOwnershipMatrix(
242
+ matrix: ControlObjectOwnershipMatrix
243
+ ): ControlObjectOwnershipCase[] {
244
+ return CONTROL_OBJECT_KINDS.flatMap((kind) => [...matrix[kind]]);
245
+ }
246
+
247
+ /** Flattened array of all ownership cases across all control object kinds. */
248
+ export const CONTROL_OBJECT_OWNERSHIP_ROWS = Object.freeze(
249
+ flattenOwnershipMatrix(CONTROL_OBJECT_OWNERSHIP_MATRIX)
250
+ );
251
+
252
+ /** The canonical ownership contract exposed by the SDK. */
253
+ export const CONTROL_OBJECT_OWNERSHIP_CONTRACT = {
254
+ version: "1.0.0",
255
+ kinds: CONTROL_OBJECT_KINDS,
256
+ ownerScopes: CONTROL_OBJECT_OWNER_SCOPES,
257
+ editSurfaces: CONTROL_OBJECT_EDIT_SURFACES,
258
+ inheritanceRules: CONTROL_OBJECT_INHERITANCE_RULES,
259
+ blastRadii: CONTROL_OBJECT_BLAST_RADII,
260
+ 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[] {
270
+ if (!kind) {
271
+ return CONTROL_OBJECT_OWNERSHIP_ROWS;
272
+ }
273
+ return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind];
274
+ }
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 {
283
+ return CONTROL_OBJECT_OWNERSHIP_MATRIX[kind].find(
284
+ (ownershipCase) => ownershipCase.caseKey === caseKey
285
+ );
286
+ }