@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.
- package/CHANGELOG.md +13 -0
- package/README.md +691 -61
- package/dist/adminClient.d.ts +409 -0
- package/dist/adminClient.js +755 -0
- package/dist/adminClient.js.map +1 -0
- package/dist/answersClient.d.ts +23 -0
- package/dist/answersClient.js +333 -0
- package/dist/answersClient.js.map +1 -0
- package/dist/audience/index.d.ts +38 -0
- package/dist/audience/index.js +110 -0
- package/dist/audience/index.js.map +1 -0
- package/dist/{packages/sdk/src/audiencesClient.d.ts → audiencesClient.d.ts} +30 -18
- package/dist/audiencesClient.js +472 -0
- package/dist/audiencesClient.js.map +1 -0
- package/dist/auditClient.d.ts +29 -0
- package/dist/auditClient.js +386 -0
- package/dist/auditClient.js.map +1 -0
- package/dist/beliefs/index.d.ts +465 -0
- package/dist/beliefs/index.js +6433 -0
- package/dist/beliefs/index.js.map +1 -0
- package/dist/beliefs/lifecycle.d.ts +24 -0
- package/dist/beliefs/lifecycle.js +98 -0
- package/dist/beliefs/lifecycle.js.map +1 -0
- package/dist/beliefsClient.d.ts +241 -0
- package/dist/beliefsClient.js +646 -0
- package/dist/beliefsClient.js.map +1 -0
- package/dist/client.d.ts +2398 -0
- package/dist/client.js +6411 -0
- package/dist/client.js.map +1 -0
- package/dist/contextClient.d.ts +27 -0
- package/dist/contextClient.js +396 -0
- package/dist/contextClient.js.map +1 -0
- package/dist/contextFacade.d.ts +2 -0
- package/dist/contextFacade.js +73 -0
- package/dist/contextFacade.js.map +1 -0
- package/dist/{lucern/packages/domain-context/src/context-pack-compiler.d.ts → contextPackCompiler.d.ts} +11 -10
- package/dist/contextPackCompiler.js +1091 -0
- package/dist/contextPackCompiler.js.map +1 -0
- package/dist/contextPackPolicy.d.ts +84 -0
- package/dist/contextPackPolicy.js +347 -0
- package/dist/contextPackPolicy.js.map +1 -0
- package/dist/contextPackSchema.d.ts +7 -0
- package/dist/contextPackSchema.js +203 -0
- package/dist/contextPackSchema.js.map +1 -0
- package/dist/contextTypes.d.ts +135 -0
- package/dist/contextTypes.js +3 -0
- package/dist/contextTypes.js.map +1 -0
- package/dist/contracts/api-enums.contract.d.ts +81 -0
- package/dist/contracts/api-enums.contract.js +98 -0
- package/dist/contracts/api-enums.contract.js.map +1 -0
- package/dist/{lucern/contracts/src → contracts}/auth-session.contract.d.ts +14 -12
- package/dist/contracts/auth-session.contract.js +48 -0
- package/dist/contracts/auth-session.contract.js.map +1 -0
- package/dist/{lucern/contracts/src → contracts}/context-pack.contract.d.ts +56 -58
- package/dist/contracts/context-pack.contract.js +98 -0
- package/dist/contracts/context-pack.contract.js.map +1 -0
- package/dist/contracts/contextPack.d.ts +1 -0
- package/dist/contracts/contextPack.js +98 -0
- package/dist/contracts/contextPack.js.map +1 -0
- package/dist/contracts/index.d.ts +9 -0
- package/dist/contracts/index.js +4928 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/{lucern/contracts/src → contracts}/lens-filter.contract.d.ts +10 -8
- package/dist/contracts/lens-filter.contract.js +71 -0
- package/dist/contracts/lens-filter.contract.js.map +1 -0
- package/dist/contracts/lens-workflow.contract.d.ts +87 -0
- package/dist/contracts/lens-workflow.contract.js +123 -0
- package/dist/contracts/lens-workflow.contract.js.map +1 -0
- package/dist/contracts/lensFilter.d.ts +1 -0
- package/dist/contracts/lensFilter.js +71 -0
- package/dist/contracts/lensFilter.js.map +1 -0
- package/dist/contracts/lensWorkflow.d.ts +2 -0
- package/dist/contracts/lensWorkflow.js +123 -0
- package/dist/contracts/lensWorkflow.js.map +1 -0
- package/dist/contracts/mcp-tools.contract.d.ts +1 -0
- package/dist/contracts/mcp-tools.contract.js +3016 -0
- package/dist/contracts/mcp-tools.contract.js.map +1 -0
- package/dist/contracts/mcpTools.d.ts +1 -0
- package/dist/contracts/mcpTools.js +3016 -0
- package/dist/contracts/mcpTools.js.map +1 -0
- package/dist/contracts/prompt.contract.d.ts +26 -0
- package/dist/contracts/prompt.contract.js +12 -0
- package/dist/contracts/prompt.contract.js.map +1 -0
- package/dist/contracts/prompt.d.ts +1 -0
- package/dist/contracts/prompt.js +12 -0
- package/dist/contracts/prompt.js.map +1 -0
- package/dist/contracts/sdk-tools.contract.d.ts +2 -0
- package/dist/contracts/sdk-tools.contract.js +4164 -0
- package/dist/contracts/sdk-tools.contract.js.map +1 -0
- package/dist/contracts/sdkTools.d.ts +2 -0
- package/dist/contracts/sdkTools.js +4164 -0
- package/dist/contracts/sdkTools.js.map +1 -0
- package/dist/contracts/workflow-runtime.contract.d.ts +163 -0
- package/dist/contracts/workflow-runtime.contract.js +245 -0
- package/dist/contracts/workflow-runtime.contract.js.map +1 -0
- package/dist/contracts/workflowRuntime.d.ts +1 -0
- package/dist/contracts/workflowRuntime.js +245 -0
- package/dist/contracts/workflowRuntime.js.map +1 -0
- package/dist/contradictions/index.d.ts +158 -0
- package/dist/contradictions/index.js +6427 -0
- package/dist/contradictions/index.js.map +1 -0
- package/dist/{packages/sdk/src/controlObjectOwnership.d.ts → controlObjectOwnership.d.ts} +35 -18
- package/dist/controlObjectOwnership.js +215 -0
- package/dist/controlObjectOwnership.js.map +1 -0
- package/dist/{packages/sdk/src/coreClient.d.ts → coreClient.d.ts} +38 -14
- package/dist/coreClient.js +339 -0
- package/dist/coreClient.js.map +1 -0
- package/dist/customTools.d.ts +88 -0
- package/dist/customTools.js +248 -0
- package/dist/customTools.js.map +1 -0
- package/dist/decisions/index.d.ts +68 -0
- package/dist/decisions/index.js +6429 -0
- package/dist/decisions/index.js.map +1 -0
- package/dist/decisionsClient.d.ts +111 -0
- package/dist/decisionsClient.js +522 -0
- package/dist/decisionsClient.js.map +1 -0
- package/dist/domainContext.d.ts +1 -0
- package/dist/domainContext.js +3 -0
- package/dist/domainContext.js.map +1 -0
- package/dist/edges/index.d.ts +204 -0
- package/dist/edges/index.js +6428 -0
- package/dist/edges/index.js.map +1 -0
- package/dist/events.d.ts +178 -0
- package/dist/events.js +251 -0
- package/dist/events.js.map +1 -0
- package/dist/eventsCore.d.ts +49 -0
- package/dist/eventsCore.js +429 -0
- package/dist/eventsCore.js.map +1 -0
- package/dist/evidence/index.d.ts +295 -0
- package/dist/evidence/index.js +6428 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidenceClient.d.ts +119 -0
- package/dist/evidenceClient.js +350 -0
- package/dist/evidenceClient.js.map +1 -0
- package/dist/facade/context.d.ts +18 -0
- package/dist/facade/context.js +73 -0
- package/dist/facade/context.js.map +1 -0
- package/dist/gatewayFacades.d.ts +589 -0
- package/dist/gatewayFacades.js +2006 -0
- package/dist/gatewayFacades.js.map +1 -0
- package/dist/graphClient.d.ts +271 -0
- package/dist/graphClient.js +698 -0
- package/dist/graphClient.js.map +1 -0
- package/dist/{packages/sdk/src/harnessClient.d.ts → harnessClient.d.ts} +127 -35
- package/dist/harnessClient.js +607 -0
- package/dist/harnessClient.js.map +1 -0
- package/dist/identityClient.d.ts +140 -0
- package/dist/identityClient.js +497 -0
- package/dist/identityClient.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +5284 -2568
- package/dist/index.js.map +1 -1
- package/dist/learningClient.d.ts +46 -0
- package/dist/learningClient.js +409 -0
- package/dist/learningClient.js.map +1 -0
- package/dist/lenses/index.d.ts +194 -0
- package/dist/lenses/index.js +6427 -0
- package/dist/lenses/index.js.map +1 -0
- package/dist/{packages/sdk/src/mcpParityClient.d.ts → mcpParityClient.d.ts} +11 -5
- package/dist/mcpParityClient.js +516 -0
- package/dist/mcpParityClient.js.map +1 -0
- package/dist/mcpParitySurface.d.ts +12 -0
- package/dist/mcpParitySurface.js +65 -0
- package/dist/mcpParitySurface.js.map +1 -0
- package/dist/mcpTools-DPZxowDX.d.ts +254 -0
- package/dist/nodes/index.d.ts +62 -0
- package/dist/nodes/index.js +6429 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/ontologies/index.d.ts +178 -0
- package/dist/ontologies/index.js +6430 -0
- package/dist/ontologies/index.js.map +1 -0
- package/dist/{packages/sdk/src/ontologyClient.d.ts → ontologyClient.d.ts} +44 -22
- package/dist/ontologyClient.js +513 -0
- package/dist/ontologyClient.js.map +1 -0
- package/dist/opinion.d.ts +11 -0
- package/dist/opinion.js +35 -0
- package/dist/opinion.js.map +1 -0
- package/dist/packRuntime.d.ts +2 -0
- package/dist/packRuntime.js +3 -0
- package/dist/packRuntime.js.map +1 -0
- package/dist/packsClient.d.ts +131 -0
- package/dist/packsClient.js +525 -0
- package/dist/packsClient.js.map +1 -0
- package/dist/{packages/sdk/src/policyClient.d.ts → policyClient.d.ts} +113 -18
- package/dist/policyClient.js +625 -0
- package/dist/policyClient.js.map +1 -0
- package/dist/questions/index.d.ts +297 -0
- package/dist/questions/index.js +6430 -0
- package/dist/questions/index.js.map +1 -0
- package/dist/realtime/index.d.ts +29 -0
- package/dist/realtime/index.js +23 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/refs.d.ts +17 -0
- package/dist/realtime/refs.js +9 -0
- package/dist/realtime/refs.js.map +1 -0
- package/dist/reportsClient.d.ts +41 -0
- package/dist/reportsClient.js +418 -0
- package/dist/reportsClient.js.map +1 -0
- package/dist/schemaClient.d.ts +64 -0
- package/dist/schemaClient.js +434 -0
- package/dist/schemaClient.js.map +1 -0
- package/dist/sdkSurface.d.ts +61 -0
- package/dist/sdkSurface.js +112 -0
- package/dist/sdkSurface.js.map +1 -0
- package/dist/sdkTools-CwXJDACb.d.ts +150 -0
- package/dist/sourcesClient.d.ts +24 -0
- package/dist/sourcesClient.js +339 -0
- package/dist/sourcesClient.js.map +1 -0
- package/dist/topics/index.d.ts +68 -0
- package/dist/topics/index.js +6428 -0
- package/dist/topics/index.js.map +1 -0
- package/dist/topicsClient.d.ts +84 -0
- package/dist/topicsClient.js +492 -0
- package/dist/topicsClient.js.map +1 -0
- package/dist/types.d.ts +715 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/dist/workflowClient.d.ts +316 -0
- package/dist/workflowClient.js +830 -0
- package/dist/workflowClient.js.map +1 -0
- package/dist/worktrees/index.d.ts +210 -0
- package/dist/worktrees/index.js +6430 -0
- package/dist/worktrees/index.js.map +1 -0
- package/package.json +92 -37
- package/dist/lucern/contracts/src/lens-workflow.contract.d.ts +0 -84
- package/dist/lucern/contracts/src/mcp-tools.contract.d.ts +0 -151
- package/dist/lucern/contracts/src/workflow-runtime.contract.d.ts +0 -161
- package/dist/lucern/mcp-server/src/context-pack-policy.d.ts +0 -119
- package/dist/lucern/mcp-server/src/context-pack-schema.d.ts +0 -18
- package/dist/lucern/modules/graph-primitives/src/ontology-matching.d.ts +0 -78
- package/dist/lucern/modules/graph-primitives/src/text-matching.d.ts +0 -53
- package/dist/lucern/packages/client-core/src/beliefs.d.ts +0 -30
- package/dist/lucern/packages/client-core/src/context.d.ts +0 -29
- package/dist/lucern/packages/client-core/src/contradictions.d.ts +0 -11
- package/dist/lucern/packages/client-core/src/edges.d.ts +0 -11
- package/dist/lucern/packages/client-core/src/events.d.ts +0 -9
- package/dist/lucern/packages/client-core/src/evidence.d.ts +0 -21
- package/dist/lucern/packages/client-core/src/graph.d.ts +0 -17
- package/dist/lucern/packages/client-core/src/identity.d.ts +0 -7
- package/dist/lucern/packages/client-core/src/ids.d.ts +0 -7
- package/dist/lucern/packages/client-core/src/ontologies.d.ts +0 -13
- package/dist/lucern/packages/client-core/src/questions.d.ts +0 -39
- package/dist/lucern/packages/client-core/src/search.d.ts +0 -7
- package/dist/lucern/packages/client-core/src/tasks.d.ts +0 -13
- package/dist/lucern/packages/client-core/src/topics.d.ts +0 -17
- package/dist/lucern/packages/client-core/src/webhooks.d.ts +0 -35
- package/dist/lucern/packages/client-core/src/worktrees.d.ts +0 -17
- package/dist/lucern/packages/domain-beliefs/src/beliefs.d.ts +0 -283
- package/dist/lucern/packages/domain-beliefs/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-context/src/compile.d.ts +0 -11
- package/dist/lucern/packages/domain-context/src/index.d.ts +0 -4
- package/dist/lucern/packages/domain-context/src/ports.d.ts +0 -58
- package/dist/lucern/packages/domain-context/src/public-types.d.ts +0 -1
- package/dist/lucern/packages/domain-edges/src/contradictions.d.ts +0 -59
- package/dist/lucern/packages/domain-edges/src/edges.d.ts +0 -91
- package/dist/lucern/packages/domain-edges/src/index.d.ts +0 -2
- package/dist/lucern/packages/domain-evidence/src/evidence.d.ts +0 -115
- package/dist/lucern/packages/domain-evidence/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-graph/src/graph.d.ts +0 -150
- package/dist/lucern/packages/domain-identity/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-identity/src/whoami.d.ts +0 -13
- package/dist/lucern/packages/domain-ontologies/src/ontologies.d.ts +0 -123
- package/dist/lucern/packages/domain-questions/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-questions/src/questions.d.ts +0 -147
- package/dist/lucern/packages/domain-search/src/search.d.ts +0 -97
- package/dist/lucern/packages/domain-tasks/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-tasks/src/tasks.d.ts +0 -102
- package/dist/lucern/packages/domain-topics/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-topics/src/topics.d.ts +0 -147
- package/dist/lucern/packages/domain-worktrees/src/index.d.ts +0 -1
- package/dist/lucern/packages/domain-worktrees/src/worktrees.d.ts +0 -185
- package/dist/lucern/packages/events/src/index.d.ts +0 -4
- package/dist/lucern/packages/events/src/matching.d.ts +0 -3
- package/dist/lucern/packages/events/src/outbox.d.ts +0 -15
- package/dist/lucern/packages/events/src/types.d.ts +0 -151
- package/dist/lucern/packages/events/src/webhooks.d.ts +0 -9
- package/dist/lucern/packages/sdk-typescript/src/facade/beliefs.d.ts +0 -15
- package/dist/lucern/packages/sdk-typescript/src/facade/context.d.ts +0 -12
- package/dist/lucern/packages/sdk-typescript/src/facade/contradictions.d.ts +0 -7
- package/dist/lucern/packages/sdk-typescript/src/facade/edges.d.ts +0 -7
- package/dist/lucern/packages/sdk-typescript/src/facade/events.d.ts +0 -6
- package/dist/lucern/packages/sdk-typescript/src/facade/evidence.d.ts +0 -21
- package/dist/lucern/packages/sdk-typescript/src/facade/graph.d.ts +0 -10
- package/dist/lucern/packages/sdk-typescript/src/facade/identity.d.ts +0 -5
- package/dist/lucern/packages/sdk-typescript/src/facade/ontologies.d.ts +0 -8
- package/dist/lucern/packages/sdk-typescript/src/facade/questions.d.ts +0 -39
- package/dist/lucern/packages/sdk-typescript/src/facade/search.d.ts +0 -5
- package/dist/lucern/packages/sdk-typescript/src/facade/tasks.d.ts +0 -8
- package/dist/lucern/packages/sdk-typescript/src/facade/topics.d.ts +0 -10
- package/dist/lucern/packages/sdk-typescript/src/facade/webhooks.d.ts +0 -16
- package/dist/lucern/packages/sdk-typescript/src/facade/worktrees.d.ts +0 -10
- package/dist/lucern/packages/sdk-typescript/src/index.d.ts +0 -28
- package/dist/packages/sdk/src/adminClient.d.ts +0 -89
- package/dist/packages/sdk/src/answersClient.d.ts +0 -5
- package/dist/packages/sdk/src/auditClient.d.ts +0 -23
- package/dist/packages/sdk/src/beliefsClient.d.ts +0 -54
- package/dist/packages/sdk/src/client.d.ts +0 -1610
- package/dist/packages/sdk/src/contextClient.d.ts +0 -9
- package/dist/packages/sdk/src/contracts/api-enums.contract.d.ts +0 -58
- package/dist/packages/sdk/src/customTools.d.ts +0 -65
- package/dist/packages/sdk/src/decisionsClient.d.ts +0 -110
- package/dist/packages/sdk/src/graphClient.d.ts +0 -209
- package/dist/packages/sdk/src/identityClient.d.ts +0 -104
- package/dist/packages/sdk/src/index.d.ts +0 -28
- package/dist/packages/sdk/src/learningClient.d.ts +0 -43
- package/dist/packages/sdk/src/mcpParitySurface.d.ts +0 -8
- package/dist/packages/sdk/src/packsClient.d.ts +0 -101
- package/dist/packages/sdk/src/reportsClient.d.ts +0 -31
- package/dist/packages/sdk/src/schemaClient.d.ts +0 -54
- package/dist/packages/sdk/src/sdkSurface.d.ts +0 -56
- package/dist/packages/sdk/src/topicsClient.d.ts +0 -45
- package/dist/packages/sdk/src/types.d.ts +0 -489
- package/dist/packages/sdk/src/version.d.ts +0 -2
- package/dist/packages/sdk/src/workflowClient.d.ts +0 -274
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";AACO,IAAM,oBAAA,GAAuB;AAAA,EAClC,QAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF;AAKO,IAAM,2BAAA,GAA8B;AAAA,EACzC,UAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF;AAMO,IAAM,4BAAA,GAA+B;AAAA,EAC1C,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;AAMO,IAAM,gCAAA,GAAmC;AAAA,EAC9C,MAAA;AAAA,EACA,yBAAA;AAAA,EACA,6BAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA;AACF;AAMO,IAAM,0BAAA,GAA6B;AAAA,EACxC,UAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF;AAiCA,SAAS,YACP,KAAA,EACG;AACH,EAAA,OAAO,KAAA;AACT;AAGO,IAAM,+BAAA,GAAkC;AAAA,EAC7C,QAAQ,WAAA,CAAY;AAAA,IAClB;AAAA,MACE,OAAA,EAAS,iBAAA;AAAA,MACT,SAAA,EAAW,iBAAA;AAAA,MACX,IAAA,EAAM,QAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,MAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,WAAW,WAAA,CAAY;AAAA,IACrB;AAAA,MACE,OAAA,EAAS,kBAAA;AAAA,MACT,SAAA,EAAW,kBAAA;AAAA,MACX,IAAA,EAAM,WAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,6BAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,WAAW,WAAA,CAAY;AAAA,IACrB;AAAA,MACE,OAAA,EAAS,kBAAA;AAAA,MACT,SAAA,EAAW,kBAAA;AAAA,MACX,IAAA,EAAM,WAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,0BAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,MAAM,WAAA,CAAY;AAAA,IAChB;AAAA,MACE,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,eAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,yBAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,eAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,6BAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,MAAM,WAAA,CAAY;AAAA,IAChB;AAAA,MACE,OAAA,EAAS,qBAAA;AAAA,MACT,SAAA,EAAW,qBAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,yBAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,qBAAA;AAAA,MACT,SAAA,EAAW,qBAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,yBAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,UAAU,WAAA,CAAY;AAAA,IACpB;AAAA,MACE,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,eAAA;AAAA,MACX,IAAA,EAAM,UAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,yBAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,cAAA;AAAA,MACT,SAAA,EAAW,cAAA;AAAA,MACX,IAAA,EAAM,UAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,wBAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,kBAAA;AAAA,MACT,SAAA,EAAW,kBAAA;AAAA,MACX,IAAA,EAAM,UAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,2BAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,QAAQ,WAAA,CAAY;AAAA,IAClB;AAAA,MACE,OAAA,EAAS,gBAAA;AAAA,MACT,SAAA,EAAW,gBAAA;AAAA,MACX,IAAA,EAAM,QAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,2BAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD,CAAA;AAAA,EACD,aAAa,WAAA,CAAY;AAAA,IACvB;AAAA,MACE,OAAA,EAAS,mBAAA;AAAA,MACT,SAAA,EAAW,mBAAA;AAAA,MACX,IAAA,EAAM,aAAA;AAAA,MACN,mBAAA,EAAqB,UAAA;AAAA,MACrB,WAAA,EAAa,gBAAA;AAAA,MACb,eAAA,EAAiB,yBAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,eAAA;AAAA,MACX,IAAA,EAAM,aAAA;AAAA,MACN,mBAAA,EAAqB,QAAA;AAAA,MACrB,WAAA,EAAa,cAAA;AAAA,MACb,eAAA,EAAiB,6BAAA;AAAA,MACjB,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,OAAA,EAAS,oBAAA;AAAA,MACT,SAAA,EAAW,oBAAA;AAAA,MACX,IAAA,EAAM,aAAA;AAAA,MACN,mBAAA,EAAqB,WAAA;AAAA,MACrB,WAAA,EAAa,iBAAA;AAAA,MACb,eAAA,EAAiB,MAAA;AAAA,MACjB,WAAA,EAAa;AAAA;AACf,GACD;AACH;AAEA,SAAS,uBACP,MAAA,EAC8B;AAC9B,EAAA,OAAO,oBAAA,CAAqB,QAAQ,CAAC,IAAA,KAAS,CAAC,GAAG,MAAA,CAAO,IAAI,CAAC,CAAC,CAAA;AACjE;AAGO,IAAM,gCAAgC,MAAA,CAAO,MAAA;AAAA,EAClD,uBAAuB,+BAA+B;AACxD;AAGO,IAAM,iCAAA,GAAoC;AAAA,EAC/C,OAAA,EAAS,OAAA;AAAA,EACT,KAAA,EAAO,oBAAA;AAAA,EACP,WAAA,EAAa,2BAAA;AAAA,EACb,YAAA,EAAc,4BAAA;AAAA,EACd,gBAAA,EAAkB,gCAAA;AAAA,EAClB,UAAA,EAAY,0BAAA;AAAA,EACZ,MAAA,EAAQ,+BAAA;AAAA,EACR,IAAA,EAAM;AACR;AAKO,SAAS,gCACd,IAAA,EACuC;AACvC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,6BAAA;AAAA,EACT;AACA,EAAA,OAAO,gCAAgC,IAAI,CAAA;AAC7C;AAKO,SAAS,6BAAA,CACd,MACA,OAAA,EACwC;AACxC,EAAA,OAAO,+BAAA,CAAgC,IAAI,CAAA,CAAE,IAAA;AAAA,IAC3C,CAAC,aAAA,KAAkB,aAAA,CAAc,OAAA,KAAY;AAAA,GAC/C;AACF","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
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
129
|
+
declare function randomIdempotencyKey(): string;
|
|
107
130
|
/**
|
|
108
131
|
* Create the transport client used by all SDK modules.
|
|
109
132
|
*/
|
|
110
|
-
|
|
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
|
-
|
|
143
|
+
|
|
144
|
+
export { type GatewayClientConfig, type GatewayHttpMethod, type GatewayRequestHookContext, type GatewayResponseHookContext, type GatewayScope, LucernApiError, type PlatformGatewayEnvelope, type PlatformGatewayFailure, type PlatformGatewaySuccess, createGatewayRequestClient, randomIdempotencyKey, toQueryString };
|