@lucern/sdk 0.2.0-alpha.4 → 0.2.0-alpha.6
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/README.md +31 -0
- package/dist/.generated +2 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -8894
- package/dist/lib/platform/auth/credentials.d.ts +5 -0
- package/dist/lib/platform/auth/credentials.js +40 -0
- package/dist/lib/platform/sdk/adminClient.d.ts +404 -0
- package/dist/lib/platform/sdk/adminClient.js +384 -0
- package/dist/lib/platform/sdk/answersClient.d.ts +16 -0
- package/dist/lib/platform/sdk/answersClient.js +21 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/audiencesClient.d.ts +6 -0
- package/dist/lib/platform/sdk/audiencesClient.js +111 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/auditClient.d.ts +3 -0
- package/dist/lib/platform/sdk/auditClient.js +21 -0
- package/dist/lib/platform/sdk/beliefsClient.d.ts +157 -0
- package/dist/lib/platform/sdk/beliefsClient.js +124 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/client.d.ts +957 -146
- package/dist/lib/platform/sdk/client.js +1831 -0
- package/dist/lib/platform/sdk/contextClient.d.ts +21 -0
- package/dist/lib/platform/sdk/contextClient.js +86 -0
- package/dist/lib/platform/sdk/contextFacade.d.ts +10 -0
- package/dist/lib/platform/sdk/contextFacade.js +10 -0
- package/dist/{lucern/packages/domain-context/src/context-pack-compiler.d.ts → lib/platform/sdk/contextPackCompiler.d.ts} +2 -3
- package/dist/lib/platform/sdk/contextPackCompiler.js +534 -0
- package/dist/lib/platform/sdk/contextTypes.d.ts +133 -0
- package/dist/lib/platform/sdk/contextTypes.js +1 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/controlObjectOwnership.d.ts +15 -0
- package/dist/lib/platform/sdk/controlObjectOwnership.js +220 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/coreClient.d.ts +19 -0
- package/dist/lib/platform/sdk/coreClient.js +366 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/customTools.d.ts +21 -3
- package/dist/lib/platform/sdk/customTools.js +247 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/decisionsClient.d.ts +9 -0
- package/dist/lib/platform/sdk/decisionsClient.js +129 -0
- package/dist/lib/platform/sdk/domainContext.d.ts +1 -0
- package/dist/lib/platform/sdk/domainContext.js +1 -0
- package/dist/lib/platform/sdk/events.d.ts +176 -0
- package/dist/lib/platform/sdk/events.js +261 -0
- package/dist/lib/platform/sdk/eventsCore.d.ts +13 -0
- package/dist/lib/platform/sdk/eventsCore.js +13 -0
- package/dist/lib/platform/sdk/gatewayFacades.d.ts +586 -0
- package/dist/lib/platform/sdk/gatewayFacades.js +845 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/graphClient.d.ts +75 -0
- package/dist/lib/platform/sdk/graphClient.js +235 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/harnessClient.d.ts +90 -1
- package/dist/lib/platform/sdk/harnessClient.js +219 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/identityClient.d.ts +45 -15
- package/dist/lib/platform/sdk/identityClient.js +131 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/index.d.ts +24 -3
- package/dist/lib/platform/sdk/index.js +49 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/learningClient.d.ts +3 -0
- package/dist/lib/platform/sdk/learningClient.js +53 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/mcpParityClient.d.ts +1 -0
- package/dist/lib/platform/sdk/mcpParityClient.js +196 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/mcpParitySurface.d.ts +2 -0
- package/dist/lib/platform/sdk/mcpParitySurface.js +57 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/ontologyClient.d.ts +16 -0
- package/dist/lib/platform/sdk/ontologyClient.js +161 -0
- package/dist/lib/platform/sdk/packRuntime.d.ts +1 -0
- package/dist/lib/platform/sdk/packRuntime.js +1 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/packsClient.d.ts +25 -0
- package/dist/lib/platform/sdk/packsClient.js +157 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/policyClient.d.ts +90 -1
- package/dist/lib/platform/sdk/policyClient.js +277 -0
- package/dist/lib/platform/sdk/promptCatalog.d.ts +1 -0
- package/dist/lib/platform/sdk/promptCatalog.js +1 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/reportsClient.d.ts +3 -0
- package/dist/lib/platform/sdk/reportsClient.js +64 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/schemaClient.d.ts +5 -0
- package/dist/lib/platform/sdk/schemaClient.js +71 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/sdkSurface.d.ts +1 -0
- package/dist/lib/platform/sdk/sdkSurface.js +140 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/topicsClient.d.ts +33 -0
- package/dist/lib/platform/sdk/topicsClient.js +118 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/types.d.ts +224 -2
- package/dist/lib/platform/sdk/types.js +1 -0
- package/dist/lib/platform/sdk/version.js +2 -0
- package/dist/{packages/sdk/src → lib/platform/sdk}/workflowClient.d.ts +63 -2
- package/dist/lib/platform/sdk/workflowClient.js +366 -0
- package/dist/lucern/contracts/src/api-enums.contract.d.ts +58 -0
- package/dist/lucern/contracts/src/api-enums.contract.js +147 -0
- package/dist/lucern/contracts/src/auth-context.contract.d.ts +8 -0
- package/dist/lucern/contracts/src/auth-context.contract.js +8 -0
- package/dist/lucern/contracts/src/auth-session.contract.d.ts +5 -50
- package/dist/lucern/contracts/src/auth-session.contract.js +8 -0
- package/dist/lucern/contracts/src/auth.contract.d.ts +88 -0
- package/dist/lucern/contracts/src/auth.contract.js +57 -0
- package/dist/lucern/contracts/src/context-pack.contract.js +169 -0
- package/dist/lucern/contracts/src/convex-admin.contract.d.ts +5 -0
- package/dist/lucern/contracts/src/convex-admin.contract.js +1 -0
- package/dist/lucern/contracts/src/events-types.contract.d.ts +8 -0
- package/dist/lucern/contracts/src/events-types.contract.js +8 -0
- package/dist/lucern/{packages/events/src/types.d.ts → contracts/src/events.contract.d.ts} +25 -0
- package/dist/lucern/contracts/src/events.contract.js +159 -0
- package/dist/lucern/contracts/src/gateway.contract.d.ts +74 -0
- package/dist/lucern/contracts/src/gateway.contract.js +19 -0
- package/dist/lucern/contracts/src/ids.contract.js +24 -0
- package/dist/lucern/contracts/src/index.d.ts +29 -0
- package/dist/lucern/contracts/src/index.js +29 -0
- package/dist/lucern/contracts/src/lens-filter.contract.js +95 -0
- package/dist/lucern/contracts/src/lens-workflow.contract.js +54 -0
- package/dist/lucern/contracts/src/mcp-tools.contract.js +3281 -0
- package/dist/lucern/contracts/src/ontology-matching.contract.d.ts +8 -0
- package/dist/lucern/contracts/src/ontology-matching.contract.js +8 -0
- package/dist/lucern/contracts/src/prompt.contract.d.ts +24 -0
- package/dist/lucern/contracts/src/prompt.contract.js +24 -0
- package/dist/lucern/contracts/src/sdk-methods.contract.d.ts +358 -0
- package/dist/lucern/contracts/src/sdk-methods.contract.js +19 -0
- package/dist/lucern/contracts/src/sdk-tools.contract.d.ts +92 -0
- package/dist/lucern/contracts/src/sdk-tools.contract.js +1398 -0
- package/dist/lucern/contracts/src/text-matching.contract.js +277 -0
- package/dist/lucern/contracts/src/topic-scope.contract.d.ts +8 -0
- package/dist/lucern/contracts/src/topic-scope.contract.js +8 -0
- package/dist/lucern/contracts/src/workflow-runtime.contract.js +257 -0
- package/dist/realtime-refs.d.ts +1 -0
- package/dist/realtime-refs.js +1 -0
- package/dist/realtime.d.ts +1 -0
- package/dist/realtime.js +1 -0
- package/package.json +18 -5
- package/dist/index.js.map +0 -1
- 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/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/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/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/beliefsClient.d.ts +0 -52
- package/dist/packages/sdk/src/contextClient.d.ts +0 -9
- package/dist/packages/sdk/src/contracts/api-enums.contract.d.ts +0 -79
- /package/dist/{packages/sdk/src → lib/platform/sdk}/version.d.ts +0 -0
- /package/dist/lucern/{packages/client-core/src/ids.d.ts → contracts/src/ids.contract.d.ts} +0 -0
- /package/dist/lucern/{modules/graph-primitives/src/text-matching.d.ts → contracts/src/text-matching.contract.d.ts} +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lucern Platform Contracts
|
|
3
|
+
*
|
|
4
|
+
* Machine-readable source of truth for all external API surfaces.
|
|
5
|
+
* Enforcement hierarchy: MCP/API (co-equal) → SDK (derived) → Schema (internal).
|
|
6
|
+
*
|
|
7
|
+
* These contracts are consumed by:
|
|
8
|
+
* - MCP tool registration (learning-loop module)
|
|
9
|
+
* - API route validation (platform gateway)
|
|
10
|
+
* - SDK type generation (@lucern/sdk-* packages)
|
|
11
|
+
* - Contract lint gates (CI)
|
|
12
|
+
*/
|
|
13
|
+
export * from "./api-enums.contract";
|
|
14
|
+
export * from "./auth-session.contract";
|
|
15
|
+
export * from "./auth-context.contract";
|
|
16
|
+
export * from "./convex-admin.contract";
|
|
17
|
+
export * from "./gateway.contract";
|
|
18
|
+
export * from "./context-pack.contract";
|
|
19
|
+
export * from "./events.contract";
|
|
20
|
+
export * from "./events-types.contract";
|
|
21
|
+
export * from "./ids.contract";
|
|
22
|
+
export * as mcpToolsContract from "./mcp-tools.contract";
|
|
23
|
+
export * from "./ontology-matching.contract";
|
|
24
|
+
export * from "./prompt.contract";
|
|
25
|
+
export * from "./sdk-methods.contract";
|
|
26
|
+
export * as sdkToolsContract from "./sdk-tools.contract";
|
|
27
|
+
export * from "./text-matching.contract";
|
|
28
|
+
export * from "./topic-scope.contract";
|
|
29
|
+
export * from "./workflow-runtime.contract";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lucern Platform Contracts
|
|
3
|
+
*
|
|
4
|
+
* Machine-readable source of truth for all external API surfaces.
|
|
5
|
+
* Enforcement hierarchy: MCP/API (co-equal) → SDK (derived) → Schema (internal).
|
|
6
|
+
*
|
|
7
|
+
* These contracts are consumed by:
|
|
8
|
+
* - MCP tool registration (learning-loop module)
|
|
9
|
+
* - API route validation (platform gateway)
|
|
10
|
+
* - SDK type generation (@lucern/sdk-* packages)
|
|
11
|
+
* - Contract lint gates (CI)
|
|
12
|
+
*/
|
|
13
|
+
export * from "./api-enums.contract.js";
|
|
14
|
+
export * from "./auth-session.contract.js";
|
|
15
|
+
export * from "./auth-context.contract.js";
|
|
16
|
+
export * from "./convex-admin.contract.js";
|
|
17
|
+
export * from "./gateway.contract.js";
|
|
18
|
+
export * from "./context-pack.contract.js";
|
|
19
|
+
export * from "./events.contract.js";
|
|
20
|
+
export * from "./events-types.contract.js";
|
|
21
|
+
export * from "./ids.contract.js";
|
|
22
|
+
export * as mcpToolsContract from "./mcp-tools.contract.js";
|
|
23
|
+
export * from "./ontology-matching.contract.js";
|
|
24
|
+
export * from "./prompt.contract.js";
|
|
25
|
+
export * from "./sdk-methods.contract.js";
|
|
26
|
+
export * as sdkToolsContract from "./sdk-tools.contract.js";
|
|
27
|
+
export * from "./text-matching.contract.js";
|
|
28
|
+
export * from "./topic-scope.contract.js";
|
|
29
|
+
export * from "./workflow-runtime.contract.js";
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lens Filter Criteria Contract
|
|
3
|
+
*
|
|
4
|
+
* Version-discriminated filter DSL for lenses. Each filter criteria document
|
|
5
|
+
* carries a `version` and `kind` discriminator so future shapes can coexist
|
|
6
|
+
* without schema migrations. The Convex `filterCriteria` field remains v.any()
|
|
7
|
+
* — all type enforcement happens here at the TypeScript contract layer.
|
|
8
|
+
*
|
|
9
|
+
* Forward-compatibility guarantees:
|
|
10
|
+
* - `version` field: new versions add fields, never remove or rename existing ones
|
|
11
|
+
* - `kind` field: new filter kinds (temporal, confidence-range) can be added
|
|
12
|
+
* without touching taxonomy code paths
|
|
13
|
+
* - `entityTypeFilters` array items are open to extension in future versions
|
|
14
|
+
* - Resolution logic switches on `version` + `kind` to select the right resolver
|
|
15
|
+
*
|
|
16
|
+
* @module lucern/contracts/src/lens-filter
|
|
17
|
+
*/
|
|
18
|
+
// Future: | TemporalFilterCriteriaV1 | ConfidenceRangeFilterCriteriaV1 | ...
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Type guards
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
export function isLensFilterCriteria(value) {
|
|
23
|
+
if (!value || typeof value !== "object")
|
|
24
|
+
return false;
|
|
25
|
+
const obj = value;
|
|
26
|
+
return typeof obj.version === "number" && typeof obj.kind === "string";
|
|
27
|
+
}
|
|
28
|
+
export function isTaxonomyFilterCriteriaV1(value) {
|
|
29
|
+
if (!isLensFilterCriteria(value))
|
|
30
|
+
return false;
|
|
31
|
+
return value.version === 1 && value.kind === "taxonomy";
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validate a filter criteria document at the contract layer.
|
|
35
|
+
* This runs before persisting to Convex.
|
|
36
|
+
*/
|
|
37
|
+
export function validateFilterCriteria(value) {
|
|
38
|
+
if (value === undefined || value === null) {
|
|
39
|
+
return { valid: true }; // filterCriteria is optional
|
|
40
|
+
}
|
|
41
|
+
if (!isLensFilterCriteria(value)) {
|
|
42
|
+
return {
|
|
43
|
+
valid: false,
|
|
44
|
+
errors: [
|
|
45
|
+
'filterCriteria must have numeric "version" and string "kind" fields',
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (isTaxonomyFilterCriteriaV1(value)) {
|
|
50
|
+
return validateTaxonomyFilterV1(value);
|
|
51
|
+
}
|
|
52
|
+
// Cast to access properties — TypeScript narrows to `never` when all union
|
|
53
|
+
// members are exhausted, but at runtime unknown version/kind combos are possible.
|
|
54
|
+
const raw = value;
|
|
55
|
+
return {
|
|
56
|
+
valid: false,
|
|
57
|
+
errors: [
|
|
58
|
+
`Unsupported filter criteria: version=${raw.version}, kind=${raw.kind}`,
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function validateTaxonomyFilterV1(criteria) {
|
|
63
|
+
const errors = [];
|
|
64
|
+
if (!Array.isArray(criteria.entityTypeFilters)) {
|
|
65
|
+
errors.push("entityTypeFilters must be an array");
|
|
66
|
+
return { valid: false, errors };
|
|
67
|
+
}
|
|
68
|
+
if (criteria.entityTypeFilters.length === 0) {
|
|
69
|
+
errors.push("entityTypeFilters must contain at least one entry");
|
|
70
|
+
return { valid: false, errors };
|
|
71
|
+
}
|
|
72
|
+
for (let i = 0; i < criteria.entityTypeFilters.length; i++) {
|
|
73
|
+
const filter = criteria.entityTypeFilters[i];
|
|
74
|
+
if (!filter || typeof filter.entityTypeValue !== "string") {
|
|
75
|
+
errors.push(`entityTypeFilters[${i}].entityTypeValue must be a non-empty string`);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (filter.entityTypeValue.trim().length === 0) {
|
|
79
|
+
errors.push(`entityTypeFilters[${i}].entityTypeValue must be a non-empty string`);
|
|
80
|
+
}
|
|
81
|
+
if (filter.subtypeValues !== undefined &&
|
|
82
|
+
!Array.isArray(filter.subtypeValues)) {
|
|
83
|
+
errors.push(`entityTypeFilters[${i}].subtypeValues must be an array`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (criteria.ontologyScope !== undefined) {
|
|
87
|
+
if (typeof criteria.ontologyScope !== "object" ||
|
|
88
|
+
criteria.ontologyScope === null) {
|
|
89
|
+
errors.push("ontologyScope must be an object");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return errors.length === 0
|
|
93
|
+
? { valid: true }
|
|
94
|
+
: { valid: false, errors };
|
|
95
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical lens workflow contract shared across schema, SDK, and MCP surfaces.
|
|
3
|
+
*/
|
|
4
|
+
export { validateFilterCriteria, isLensFilterCriteria, isTaxonomyFilterCriteriaV1, } from "./lens-filter.contract.js";
|
|
5
|
+
export const LENS_PERSPECTIVE_TYPES = [
|
|
6
|
+
"investigation",
|
|
7
|
+
"monitoring",
|
|
8
|
+
"analysis",
|
|
9
|
+
"comparison",
|
|
10
|
+
"taxonomy",
|
|
11
|
+
];
|
|
12
|
+
export const LENS_STATUSES = ["draft", "active", "archived"];
|
|
13
|
+
export const LENS_TASK_TEMPLATE_PRIORITIES = [
|
|
14
|
+
"critical",
|
|
15
|
+
"high",
|
|
16
|
+
"medium",
|
|
17
|
+
"low",
|
|
18
|
+
];
|
|
19
|
+
export const BRANCH_DEPRECATION_MESSAGE = "Branches are deprecated for operational framing. Create a workspace-scoped lens instead.";
|
|
20
|
+
export function inferLensPerspectiveTypeFromBranchSchema(schema) {
|
|
21
|
+
const normalized = schema?.trim().toLowerCase();
|
|
22
|
+
if (normalized === "phase") {
|
|
23
|
+
return "monitoring";
|
|
24
|
+
}
|
|
25
|
+
if (normalized === "axis" || normalized === "dimension") {
|
|
26
|
+
return "comparison";
|
|
27
|
+
}
|
|
28
|
+
if (normalized === "track") {
|
|
29
|
+
return "investigation";
|
|
30
|
+
}
|
|
31
|
+
return "analysis";
|
|
32
|
+
}
|
|
33
|
+
export function migrateBranchToLens(args) {
|
|
34
|
+
const perspectiveType = inferLensPerspectiveTypeFromBranchSchema(args.schema);
|
|
35
|
+
return {
|
|
36
|
+
recommendedTool: "create_lens",
|
|
37
|
+
perspectiveType,
|
|
38
|
+
message: "Branches are deprecated for operational framing. Create a workspace-scoped lens with the suggested payload instead.",
|
|
39
|
+
suggestedPayload: {
|
|
40
|
+
name: args.name,
|
|
41
|
+
description: args.description,
|
|
42
|
+
topicId: args.topicId,
|
|
43
|
+
workspaceId: args.workspaceId,
|
|
44
|
+
perspectiveType,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function buildDeprecatedBranchMetadata(args) {
|
|
49
|
+
return {
|
|
50
|
+
deprecated: true,
|
|
51
|
+
deprecationMessage: BRANCH_DEPRECATION_MESSAGE,
|
|
52
|
+
lensSuggestion: migrateBranchToLens(args),
|
|
53
|
+
};
|
|
54
|
+
}
|