@lucern/pack-host 0.1.0-alpha.2
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 +64 -0
- package/dist/contracts.d.ts +77 -0
- package/dist/contracts.js +21 -0
- package/dist/contracts.js.map +1 -0
- package/dist/convex.config.d.ts +5 -0
- package/dist/convex.config.js +9 -0
- package/dist/convex.config.js.map +1 -0
- package/dist/dependencyResolution.d.ts +18 -0
- package/dist/dependencyResolution.js +131 -0
- package/dist/dependencyResolution.js.map +1 -0
- package/dist/domain-pack/authoring.d.ts +172 -0
- package/dist/domain-pack/authoring.js +1896 -0
- package/dist/domain-pack/authoring.js.map +1 -0
- package/dist/domain-pack/contracts.d.ts +183 -0
- package/dist/domain-pack/contracts.js +65 -0
- package/dist/domain-pack/contracts.js.map +1 -0
- package/dist/domain-pack/index.d.ts +8 -0
- package/dist/domain-pack/index.js +3813 -0
- package/dist/domain-pack/index.js.map +1 -0
- package/dist/domain-pack/ontology/software-entities-v1.d.ts +102 -0
- package/dist/domain-pack/ontology/software-entities-v1.js +104 -0
- package/dist/domain-pack/ontology/software-entities-v1.js.map +1 -0
- package/dist/domain-pack/packs/developer-reasoning.d.ts +14 -0
- package/dist/domain-pack/packs/developer-reasoning.js +339 -0
- package/dist/domain-pack/packs/developer-reasoning.js.map +1 -0
- package/dist/domain-pack/packs/engineering-accelerator.d.ts +11 -0
- package/dist/domain-pack/packs/engineering-accelerator.js +1348 -0
- package/dist/domain-pack/packs/engineering-accelerator.js.map +1 -0
- package/dist/domain-pack/packs/index.d.ts +18 -0
- package/dist/domain-pack/packs/index.js +2653 -0
- package/dist/domain-pack/packs/index.js.map +1 -0
- package/dist/domain-pack/shaping.d.ts +54 -0
- package/dist/domain-pack/shaping.js +1013 -0
- package/dist/domain-pack/shaping.js.map +1 -0
- package/dist/domain-pack/validation.d.ts +26 -0
- package/dist/domain-pack/validation.js +775 -0
- package/dist/domain-pack/validation.js.map +1 -0
- package/dist/domain-pack.d.ts +8 -0
- package/dist/domain-pack.js +3813 -0
- package/dist/domain-pack.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +5520 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle.d.ts +27 -0
- package/dist/lifecycle.js +98 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/manifestValidation.d.ts +28 -0
- package/dist/manifestValidation.js +253 -0
- package/dist/manifestValidation.js.map +1 -0
- package/dist/manifests/chat-v1.d.ts +10 -0
- package/dist/manifests/chat-v1.js +87 -0
- package/dist/manifests/chat-v1.js.map +1 -0
- package/dist/manifests/deals-v1.d.ts +10 -0
- package/dist/manifests/deals-v1.js +107 -0
- package/dist/manifests/deals-v1.js.map +1 -0
- package/dist/manifests/decisions-v1.d.ts +10 -0
- package/dist/manifests/decisions-v1.js +103 -0
- package/dist/manifests/decisions-v1.js.map +1 -0
- package/dist/manifests/documents-v1.d.ts +10 -0
- package/dist/manifests/documents-v1.js +88 -0
- package/dist/manifests/documents-v1.js.map +1 -0
- package/dist/manifests/epistemic-algorithms-v1.d.ts +10 -0
- package/dist/manifests/epistemic-algorithms-v1.js +107 -0
- package/dist/manifests/epistemic-algorithms-v1.js.map +1 -0
- package/dist/manifests/graph-visualization-v1.d.ts +10 -0
- package/dist/manifests/graph-visualization-v1.js +88 -0
- package/dist/manifests/graph-visualization-v1.js.map +1 -0
- package/dist/manifests/index.d.ts +23 -0
- package/dist/manifests/index.js +955 -0
- package/dist/manifests/index.js.map +1 -0
- package/dist/manifests/news-v1.d.ts +10 -0
- package/dist/manifests/news-v1.js +93 -0
- package/dist/manifests/news-v1.js.map +1 -0
- package/dist/manifests/philosophy-mode-v1.d.ts +10 -0
- package/dist/manifests/philosophy-mode-v1.js +100 -0
- package/dist/manifests/philosophy-mode-v1.js.map +1 -0
- package/dist/manifests/task-management-v1.d.ts +10 -0
- package/dist/manifests/task-management-v1.js +86 -0
- package/dist/manifests/task-management-v1.js.map +1 -0
- package/dist/manifests/team-analysis-v1.d.ts +10 -0
- package/dist/manifests/team-analysis-v1.js +93 -0
- package/dist/manifests/team-analysis-v1.js.map +1 -0
- package/dist/manifests/themes-v1.d.ts +10 -0
- package/dist/manifests/themes-v1.js +118 -0
- package/dist/manifests/themes-v1.js.map +1 -0
- package/dist/manifests/user-profiles-v1.d.ts +10 -0
- package/dist/manifests/user-profiles-v1.js +100 -0
- package/dist/manifests/user-profiles-v1.js.map +1 -0
- package/dist/manifests.d.ts +14 -0
- package/dist/manifests.js +955 -0
- package/dist/manifests.js.map +1 -0
- package/dist/namespacePolicy.d.ts +26 -0
- package/dist/namespacePolicy.js +129 -0
- package/dist/namespacePolicy.js.map +1 -0
- package/dist/registry.d.ts +13 -0
- package/dist/registry.js +1710 -0
- package/dist/registry.js.map +1 -0
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.js +638 -0
- package/dist/runtime.js.map +1 -0
- package/dist/serviceContracts.d.ts +18 -0
- package/dist/serviceContracts.js +64 -0
- package/dist/serviceContracts.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// src/contracts.ts
|
|
2
|
+
function normalizeStringArray(values) {
|
|
3
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
4
|
+
return Array.from(new Set(normalized));
|
|
5
|
+
}
|
|
6
|
+
function defineAppPackManifest(manifest) {
|
|
7
|
+
const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({
|
|
8
|
+
...integration,
|
|
9
|
+
contracts: normalizeStringArray(integration.contracts)
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...manifest,
|
|
13
|
+
dependencies: normalizeStringArray(manifest.dependencies),
|
|
14
|
+
capabilityFlags: normalizeStringArray(manifest.capabilityFlags),
|
|
15
|
+
sharedServices
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/manifests/deals-v1.ts
|
|
20
|
+
var dealsV1Manifest = defineAppPackManifest({
|
|
21
|
+
key: "deals-v1",
|
|
22
|
+
name: "Deals",
|
|
23
|
+
version: "1.0.0",
|
|
24
|
+
lifecycle: "beta",
|
|
25
|
+
category: "domain",
|
|
26
|
+
description: "Deal diligence application using shared reasoning graph primitives with deal-calibrated workflows.",
|
|
27
|
+
dependencies: [
|
|
28
|
+
"chat-v1",
|
|
29
|
+
"documents-v1",
|
|
30
|
+
"news-v1",
|
|
31
|
+
"decisions-v1"
|
|
32
|
+
],
|
|
33
|
+
capabilityFlags: [
|
|
34
|
+
"deal.lifecycle",
|
|
35
|
+
"diligence.workflow",
|
|
36
|
+
"deal.risk-assessment",
|
|
37
|
+
"decision.integration"
|
|
38
|
+
],
|
|
39
|
+
routeNamespace: {
|
|
40
|
+
web: ["/(projects)/projects", "/(projects)/projects/[projectId]"],
|
|
41
|
+
api: ["/api/research/*", "/api/tasks/*", "/api/reports/*"]
|
|
42
|
+
},
|
|
43
|
+
surfaces: {
|
|
44
|
+
components: [
|
|
45
|
+
"app/(projects)/projects/page.tsx",
|
|
46
|
+
"components/project/*",
|
|
47
|
+
"components/workspace/views/*"
|
|
48
|
+
],
|
|
49
|
+
convex: ["convex/projects.ts", "convex/epistemicDecisions.ts"],
|
|
50
|
+
tools: [
|
|
51
|
+
"lib/ai/tools/navigation-tools.ts",
|
|
52
|
+
"lib/ai/tools/decision-tools.ts"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
policyProfile: {
|
|
56
|
+
audiences: ["internal", "lp"],
|
|
57
|
+
rules: [
|
|
58
|
+
{ resource: "project", actions: ["read", "summarize", "mutate"] },
|
|
59
|
+
{ resource: "node", actions: ["read", "summarize", "mutate"] },
|
|
60
|
+
{ resource: "artifact", actions: ["read", "summarize", "export"] },
|
|
61
|
+
{ resource: "tool_action", actions: ["read", "mutate"] }
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
dataContract: {
|
|
65
|
+
requiredNodeTypes: ["deal", "belief", "question", "evidence", "decision"],
|
|
66
|
+
requiredEdgeTypes: [
|
|
67
|
+
"evaluates",
|
|
68
|
+
"informs",
|
|
69
|
+
"depends_on",
|
|
70
|
+
"based_on_belief"
|
|
71
|
+
],
|
|
72
|
+
requiredTables: [
|
|
73
|
+
"projects",
|
|
74
|
+
"epistemicNodes",
|
|
75
|
+
"epistemicEdges",
|
|
76
|
+
"decisionEvents"
|
|
77
|
+
],
|
|
78
|
+
projectionBehavior: "projection_required"
|
|
79
|
+
},
|
|
80
|
+
templates: {
|
|
81
|
+
workflows: ["deals/diligence-default", "deals/ic-prep"],
|
|
82
|
+
prompts: ["deals/main-system-prompt", "deals/risk-ledger-draft"],
|
|
83
|
+
reports: ["deal-memo", "knowledge-map"],
|
|
84
|
+
uiLabels: ["deal", "diligence", "investment_case", "ic_readiness"]
|
|
85
|
+
},
|
|
86
|
+
testSuite: {
|
|
87
|
+
parity: ["deal-workflow-parity"],
|
|
88
|
+
policy: ["deal-data-audience-filtering"],
|
|
89
|
+
contract: ["deals-pack-contract-v1"]
|
|
90
|
+
},
|
|
91
|
+
sharedServices: [
|
|
92
|
+
{
|
|
93
|
+
service: "decision-kernel",
|
|
94
|
+
mode: "required",
|
|
95
|
+
contracts: ["decision-kernel-v1"]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
service: "knowledge-compiler",
|
|
99
|
+
mode: "required",
|
|
100
|
+
contracts: ["knowledge-compiler-v1"]
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
export { dealsV1Manifest };
|
|
106
|
+
//# sourceMappingURL=deals-v1.js.map
|
|
107
|
+
//# sourceMappingURL=deals-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/contracts.ts","../../src/manifests/deals-v1.ts"],"names":[],"mappings":"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","file":"deals-v1.js","sourcesContent":["/**\n * App Pack Contracts\n *\n * Canonical type contracts for Lucern app-pack manifests and runtime metadata.\n */\n\nexport type PackLifecycle = \"active\" | \"beta\" | \"experimental\";\n\nexport type PackCategory =\n | \"conversation\"\n | \"research\"\n | \"graph\"\n | \"analytics\"\n | \"workflow\"\n | \"decision\"\n | \"news\"\n | \"documents\"\n | \"identity\"\n | \"operations\"\n | \"domain\";\n\nexport type PackAudience = string;\n\nexport type PolicyAction = \"read\" | \"summarize\" | \"export\" | \"mutate\" | \"admin\";\n\nexport type PolicyResource =\n | \"project\"\n | \"node\"\n | \"edge\"\n | \"artifact\"\n | \"report_section\"\n | \"tool_action\"\n | \"task\"\n | \"user_profile\"\n | \"team_analytics\";\n\nexport type ProjectionBehavior =\n | \"none\"\n | \"inherits_policy\"\n | \"projection_required\";\n\nexport type PackRuntimeStage =\n | \"registered\"\n | \"validated\"\n | \"installed\"\n | \"enabled\"\n | \"degraded\"\n | \"disabled\"\n | \"removed\";\n\nexport type SharedService =\n | \"decision-kernel\"\n | \"knowledge-compiler\"\n | \"learning-loop\";\n\nexport type SharedServiceMode = \"required\" | \"optional\";\n\nexport type RouteNamespace = {\n web: string[];\n api: string[];\n};\n\nexport type SurfaceOwnership = {\n components: string[];\n convex: string[];\n tools: string[];\n};\n\nexport type PolicyRule = {\n resource: PolicyResource;\n actions: PolicyAction[];\n notes?: string;\n};\n\nexport type PolicyProfile = {\n audiences: PackAudience[];\n rules: PolicyRule[];\n};\n\nexport type DataContract = {\n requiredNodeTypes: string[];\n requiredEdgeTypes: string[];\n requiredTables: string[];\n projectionBehavior: ProjectionBehavior;\n};\n\nexport type TemplateAssets = {\n workflows: string[];\n prompts: string[];\n reports: string[];\n uiLabels: string[];\n};\n\nexport type PackTestSuite = {\n parity: string[];\n policy: string[];\n contract: string[];\n};\n\nexport type SharedServiceIntegration = {\n service: SharedService;\n mode: SharedServiceMode;\n contracts: string[];\n};\n\nexport type AppPackManifest = {\n key: string;\n name: string;\n version: string;\n lifecycle: PackLifecycle;\n category: PackCategory;\n description: string;\n dependencies: string[];\n capabilityFlags: string[];\n routeNamespace: RouteNamespace;\n surfaces: SurfaceOwnership;\n policyProfile: PolicyProfile;\n dataContract: DataContract;\n templates: TemplateAssets;\n testSuite: PackTestSuite;\n sharedServices: SharedServiceIntegration[];\n};\n\ntype AppPackManifestInput = Omit<AppPackManifest, \"sharedServices\"> & {\n sharedServices?: SharedServiceIntegration[];\n};\n\nfunction normalizeStringArray(values: string[]): string[] {\n const normalized = values\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n return Array.from(new Set(normalized));\n}\n\nexport function defineAppPackManifest(\n manifest: AppPackManifestInput\n): AppPackManifest {\n const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({\n ...integration,\n contracts: normalizeStringArray(integration.contracts),\n }));\n\n return {\n ...manifest,\n dependencies: normalizeStringArray(manifest.dependencies),\n capabilityFlags: normalizeStringArray(manifest.capabilityFlags),\n sharedServices,\n };\n}\n","/**\n * App Pack Manifest: deals-v1\n *\n * Declarative runtime contract for the deals-v1 application pack.\n */\n\nimport { defineAppPackManifest } from \"../contracts\";\n\nexport const dealsV1Manifest = defineAppPackManifest({\n key: \"deals-v1\",\n name: \"Deals\",\n version: \"1.0.0\",\n lifecycle: \"beta\",\n category: \"domain\",\n description:\n \"Deal diligence application using shared reasoning graph primitives with deal-calibrated workflows.\",\n dependencies: [\n \"chat-v1\",\n \"documents-v1\",\n \"news-v1\",\n \"decisions-v1\",\n ],\n capabilityFlags: [\n \"deal.lifecycle\",\n \"diligence.workflow\",\n \"deal.risk-assessment\",\n \"decision.integration\",\n ],\n routeNamespace: {\n web: [\"/(projects)/projects\", \"/(projects)/projects/[projectId]\"],\n api: [\"/api/research/*\", \"/api/tasks/*\", \"/api/reports/*\"],\n },\n surfaces: {\n components: [\n \"app/(projects)/projects/page.tsx\",\n \"components/project/*\",\n \"components/workspace/views/*\",\n ],\n convex: [\"convex/projects.ts\", \"convex/epistemicDecisions.ts\"],\n tools: [\n \"lib/ai/tools/navigation-tools.ts\",\n \"lib/ai/tools/decision-tools.ts\",\n ],\n },\n policyProfile: {\n audiences: [\"internal\", \"lp\"],\n rules: [\n { resource: \"project\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"node\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"artifact\", actions: [\"read\", \"summarize\", \"export\"] },\n { resource: \"tool_action\", actions: [\"read\", \"mutate\"] },\n ],\n },\n dataContract: {\n requiredNodeTypes: [\"deal\", \"belief\", \"question\", \"evidence\", \"decision\"],\n requiredEdgeTypes: [\n \"evaluates\",\n \"informs\",\n \"depends_on\",\n \"based_on_belief\",\n ],\n requiredTables: [\n \"projects\",\n \"epistemicNodes\",\n \"epistemicEdges\",\n \"decisionEvents\",\n ],\n projectionBehavior: \"projection_required\",\n },\n templates: {\n workflows: [\"deals/diligence-default\", \"deals/ic-prep\"],\n prompts: [\"deals/main-system-prompt\", \"deals/risk-ledger-draft\"],\n reports: [\"deal-memo\", \"knowledge-map\"],\n uiLabels: [\"deal\", \"diligence\", \"investment_case\", \"ic_readiness\"],\n },\n testSuite: {\n parity: [\"deal-workflow-parity\"],\n policy: [\"deal-data-audience-filtering\"],\n contract: [\"deals-pack-contract-v1\"],\n },\n sharedServices: [\n {\n service: \"decision-kernel\",\n mode: \"required\",\n contracts: [\"decision-kernel-v1\"],\n },\n {\n service: \"knowledge-compiler\",\n mode: \"required\",\n contracts: [\"knowledge-compiler-v1\"],\n },\n ],\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppPackManifest } from '../contracts.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Pack Manifest: decisions-v1
|
|
5
|
+
*
|
|
6
|
+
* Declarative runtime contract for the decisions-v1 application pack.
|
|
7
|
+
*/
|
|
8
|
+
declare const decisionsV1Manifest: AppPackManifest;
|
|
9
|
+
|
|
10
|
+
export { decisionsV1Manifest };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/contracts.ts
|
|
2
|
+
function normalizeStringArray(values) {
|
|
3
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
4
|
+
return Array.from(new Set(normalized));
|
|
5
|
+
}
|
|
6
|
+
function defineAppPackManifest(manifest) {
|
|
7
|
+
const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({
|
|
8
|
+
...integration,
|
|
9
|
+
contracts: normalizeStringArray(integration.contracts)
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...manifest,
|
|
13
|
+
dependencies: normalizeStringArray(manifest.dependencies),
|
|
14
|
+
capabilityFlags: normalizeStringArray(manifest.capabilityFlags),
|
|
15
|
+
sharedServices
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/manifests/decisions-v1.ts
|
|
20
|
+
var decisionsV1Manifest = defineAppPackManifest({
|
|
21
|
+
key: "decisions-v1",
|
|
22
|
+
name: "Decisions",
|
|
23
|
+
version: "1.0.0",
|
|
24
|
+
lifecycle: "beta",
|
|
25
|
+
category: "decision",
|
|
26
|
+
description: "Graph-native decision workflow with belief-level voting, risk ledgers, and snapshot locking.",
|
|
27
|
+
dependencies: ["epistemic-algorithms-v1"],
|
|
28
|
+
capabilityFlags: [
|
|
29
|
+
"decision.workflow",
|
|
30
|
+
"belief.level-voting",
|
|
31
|
+
"risk.ledger",
|
|
32
|
+
"decision.snapshot"
|
|
33
|
+
],
|
|
34
|
+
routeNamespace: {
|
|
35
|
+
web: ["/(projects)/projects/[projectId]/decisions"],
|
|
36
|
+
api: ["/api/thesis-audit/*", "/api/reports/*"]
|
|
37
|
+
},
|
|
38
|
+
surfaces: {
|
|
39
|
+
components: ["app/(projects)/projects/[projectId]/decisions/page.tsx"],
|
|
40
|
+
convex: ["convex/epistemicDecisions.ts", "convex/convictionEngine.ts"],
|
|
41
|
+
tools: [
|
|
42
|
+
"lib/ai/tools/decision-tools.ts",
|
|
43
|
+
"lib/ai/tools/conviction-tools.ts"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
policyProfile: {
|
|
47
|
+
audiences: ["internal", "lp"],
|
|
48
|
+
rules: [
|
|
49
|
+
{ resource: "project", actions: ["read", "summarize", "mutate"] },
|
|
50
|
+
{ resource: "node", actions: ["read", "summarize", "mutate"] },
|
|
51
|
+
{ resource: "edge", actions: ["read", "mutate"] },
|
|
52
|
+
{ resource: "artifact", actions: ["read", "export"] }
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
dataContract: {
|
|
56
|
+
requiredNodeTypes: ["decision", "belief", "question", "evidence", "theme"],
|
|
57
|
+
requiredEdgeTypes: [
|
|
58
|
+
"based_on_belief",
|
|
59
|
+
"based_on_question",
|
|
60
|
+
"informed_by_theme",
|
|
61
|
+
"blocked_by_contradiction"
|
|
62
|
+
],
|
|
63
|
+
requiredTables: [
|
|
64
|
+
"epistemicNodes",
|
|
65
|
+
"epistemicEdges",
|
|
66
|
+
"decisionEvents",
|
|
67
|
+
"beliefVotes",
|
|
68
|
+
"decisionRiskLedger",
|
|
69
|
+
"decisionSnapshots"
|
|
70
|
+
],
|
|
71
|
+
projectionBehavior: "projection_required"
|
|
72
|
+
},
|
|
73
|
+
templates: {
|
|
74
|
+
workflows: ["decisions/pre-ic", "decisions/in-ic", "decisions/post-ic"],
|
|
75
|
+
prompts: [
|
|
76
|
+
"decisions/main-system-prompt",
|
|
77
|
+
"decisions/risk-ledger-assistant"
|
|
78
|
+
],
|
|
79
|
+
reports: ["decision-brief", "ic-memo"],
|
|
80
|
+
uiLabels: ["decision", "risk_ledger", "vote_map", "snapshot"]
|
|
81
|
+
},
|
|
82
|
+
testSuite: {
|
|
83
|
+
parity: ["decision-flow-parity"],
|
|
84
|
+
policy: ["decision-lineage-visibility"],
|
|
85
|
+
contract: ["decisions-pack-contract-v1"]
|
|
86
|
+
},
|
|
87
|
+
sharedServices: [
|
|
88
|
+
{
|
|
89
|
+
service: "decision-kernel",
|
|
90
|
+
mode: "required",
|
|
91
|
+
contracts: ["decision-kernel-v1"]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
service: "knowledge-compiler",
|
|
95
|
+
mode: "required",
|
|
96
|
+
contracts: ["knowledge-compiler-v1"]
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
export { decisionsV1Manifest };
|
|
102
|
+
//# sourceMappingURL=decisions-v1.js.map
|
|
103
|
+
//# sourceMappingURL=decisions-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/contracts.ts","../../src/manifests/decisions-v1.ts"],"names":[],"mappings":"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","file":"decisions-v1.js","sourcesContent":["/**\n * App Pack Contracts\n *\n * Canonical type contracts for Lucern app-pack manifests and runtime metadata.\n */\n\nexport type PackLifecycle = \"active\" | \"beta\" | \"experimental\";\n\nexport type PackCategory =\n | \"conversation\"\n | \"research\"\n | \"graph\"\n | \"analytics\"\n | \"workflow\"\n | \"decision\"\n | \"news\"\n | \"documents\"\n | \"identity\"\n | \"operations\"\n | \"domain\";\n\nexport type PackAudience = string;\n\nexport type PolicyAction = \"read\" | \"summarize\" | \"export\" | \"mutate\" | \"admin\";\n\nexport type PolicyResource =\n | \"project\"\n | \"node\"\n | \"edge\"\n | \"artifact\"\n | \"report_section\"\n | \"tool_action\"\n | \"task\"\n | \"user_profile\"\n | \"team_analytics\";\n\nexport type ProjectionBehavior =\n | \"none\"\n | \"inherits_policy\"\n | \"projection_required\";\n\nexport type PackRuntimeStage =\n | \"registered\"\n | \"validated\"\n | \"installed\"\n | \"enabled\"\n | \"degraded\"\n | \"disabled\"\n | \"removed\";\n\nexport type SharedService =\n | \"decision-kernel\"\n | \"knowledge-compiler\"\n | \"learning-loop\";\n\nexport type SharedServiceMode = \"required\" | \"optional\";\n\nexport type RouteNamespace = {\n web: string[];\n api: string[];\n};\n\nexport type SurfaceOwnership = {\n components: string[];\n convex: string[];\n tools: string[];\n};\n\nexport type PolicyRule = {\n resource: PolicyResource;\n actions: PolicyAction[];\n notes?: string;\n};\n\nexport type PolicyProfile = {\n audiences: PackAudience[];\n rules: PolicyRule[];\n};\n\nexport type DataContract = {\n requiredNodeTypes: string[];\n requiredEdgeTypes: string[];\n requiredTables: string[];\n projectionBehavior: ProjectionBehavior;\n};\n\nexport type TemplateAssets = {\n workflows: string[];\n prompts: string[];\n reports: string[];\n uiLabels: string[];\n};\n\nexport type PackTestSuite = {\n parity: string[];\n policy: string[];\n contract: string[];\n};\n\nexport type SharedServiceIntegration = {\n service: SharedService;\n mode: SharedServiceMode;\n contracts: string[];\n};\n\nexport type AppPackManifest = {\n key: string;\n name: string;\n version: string;\n lifecycle: PackLifecycle;\n category: PackCategory;\n description: string;\n dependencies: string[];\n capabilityFlags: string[];\n routeNamespace: RouteNamespace;\n surfaces: SurfaceOwnership;\n policyProfile: PolicyProfile;\n dataContract: DataContract;\n templates: TemplateAssets;\n testSuite: PackTestSuite;\n sharedServices: SharedServiceIntegration[];\n};\n\ntype AppPackManifestInput = Omit<AppPackManifest, \"sharedServices\"> & {\n sharedServices?: SharedServiceIntegration[];\n};\n\nfunction normalizeStringArray(values: string[]): string[] {\n const normalized = values\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n return Array.from(new Set(normalized));\n}\n\nexport function defineAppPackManifest(\n manifest: AppPackManifestInput\n): AppPackManifest {\n const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({\n ...integration,\n contracts: normalizeStringArray(integration.contracts),\n }));\n\n return {\n ...manifest,\n dependencies: normalizeStringArray(manifest.dependencies),\n capabilityFlags: normalizeStringArray(manifest.capabilityFlags),\n sharedServices,\n };\n}\n","/**\n * App Pack Manifest: decisions-v1\n *\n * Declarative runtime contract for the decisions-v1 application pack.\n */\n\nimport { defineAppPackManifest } from \"../contracts\";\n\nexport const decisionsV1Manifest = defineAppPackManifest({\n key: \"decisions-v1\",\n name: \"Decisions\",\n version: \"1.0.0\",\n lifecycle: \"beta\",\n category: \"decision\",\n description:\n \"Graph-native decision workflow with belief-level voting, risk ledgers, and snapshot locking.\",\n dependencies: [\"epistemic-algorithms-v1\"],\n capabilityFlags: [\n \"decision.workflow\",\n \"belief.level-voting\",\n \"risk.ledger\",\n \"decision.snapshot\",\n ],\n routeNamespace: {\n web: [\"/(projects)/projects/[projectId]/decisions\"],\n api: [\"/api/thesis-audit/*\", \"/api/reports/*\"],\n },\n surfaces: {\n components: [\"app/(projects)/projects/[projectId]/decisions/page.tsx\"],\n convex: [\"convex/epistemicDecisions.ts\", \"convex/convictionEngine.ts\"],\n tools: [\n \"lib/ai/tools/decision-tools.ts\",\n \"lib/ai/tools/conviction-tools.ts\",\n ],\n },\n policyProfile: {\n audiences: [\"internal\", \"lp\"],\n rules: [\n { resource: \"project\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"node\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"edge\", actions: [\"read\", \"mutate\"] },\n { resource: \"artifact\", actions: [\"read\", \"export\"] },\n ],\n },\n dataContract: {\n requiredNodeTypes: [\"decision\", \"belief\", \"question\", \"evidence\", \"theme\"],\n requiredEdgeTypes: [\n \"based_on_belief\",\n \"based_on_question\",\n \"informed_by_theme\",\n \"blocked_by_contradiction\",\n ],\n requiredTables: [\n \"epistemicNodes\",\n \"epistemicEdges\",\n \"decisionEvents\",\n \"beliefVotes\",\n \"decisionRiskLedger\",\n \"decisionSnapshots\",\n ],\n projectionBehavior: \"projection_required\",\n },\n templates: {\n workflows: [\"decisions/pre-ic\", \"decisions/in-ic\", \"decisions/post-ic\"],\n prompts: [\n \"decisions/main-system-prompt\",\n \"decisions/risk-ledger-assistant\",\n ],\n reports: [\"decision-brief\", \"ic-memo\"],\n uiLabels: [\"decision\", \"risk_ledger\", \"vote_map\", \"snapshot\"],\n },\n testSuite: {\n parity: [\"decision-flow-parity\"],\n policy: [\"decision-lineage-visibility\"],\n contract: [\"decisions-pack-contract-v1\"],\n },\n sharedServices: [\n {\n service: \"decision-kernel\",\n mode: \"required\",\n contracts: [\"decision-kernel-v1\"],\n },\n {\n service: \"knowledge-compiler\",\n mode: \"required\",\n contracts: [\"knowledge-compiler-v1\"],\n },\n ],\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppPackManifest } from '../contracts.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Pack Manifest: documents-v1
|
|
5
|
+
*
|
|
6
|
+
* Declarative runtime contract for the documents-v1 application pack.
|
|
7
|
+
*/
|
|
8
|
+
declare const documentsV1Manifest: AppPackManifest;
|
|
9
|
+
|
|
10
|
+
export { documentsV1Manifest };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// src/contracts.ts
|
|
2
|
+
function normalizeStringArray(values) {
|
|
3
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
4
|
+
return Array.from(new Set(normalized));
|
|
5
|
+
}
|
|
6
|
+
function defineAppPackManifest(manifest) {
|
|
7
|
+
const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({
|
|
8
|
+
...integration,
|
|
9
|
+
contracts: normalizeStringArray(integration.contracts)
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...manifest,
|
|
13
|
+
dependencies: normalizeStringArray(manifest.dependencies),
|
|
14
|
+
capabilityFlags: normalizeStringArray(manifest.capabilityFlags),
|
|
15
|
+
sharedServices
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/manifests/documents-v1.ts
|
|
20
|
+
var documentsV1Manifest = defineAppPackManifest({
|
|
21
|
+
key: "documents-v1",
|
|
22
|
+
name: "Documents",
|
|
23
|
+
version: "1.0.0",
|
|
24
|
+
lifecycle: "active",
|
|
25
|
+
category: "documents",
|
|
26
|
+
description: "Document upload, extraction, annotation, and conversion into graph-grounded evidence.",
|
|
27
|
+
dependencies: ["chat-v1"],
|
|
28
|
+
capabilityFlags: [
|
|
29
|
+
"document.ingestion",
|
|
30
|
+
"document.extraction",
|
|
31
|
+
"document.annotation",
|
|
32
|
+
"document.rag"
|
|
33
|
+
],
|
|
34
|
+
routeNamespace: {
|
|
35
|
+
web: [
|
|
36
|
+
"/(projects)/projects/[projectId]/documents",
|
|
37
|
+
"/(projects)/projects/[projectId]/documents/[documentId]"
|
|
38
|
+
],
|
|
39
|
+
api: ["/api/documents/*", "/api/rag/document", "/api/rag/extract-pdf"]
|
|
40
|
+
},
|
|
41
|
+
surfaces: {
|
|
42
|
+
components: ["components/documents/*", "components/document/*"],
|
|
43
|
+
convex: [
|
|
44
|
+
"convex/projectDocuments.ts",
|
|
45
|
+
"convex/documents.ts",
|
|
46
|
+
"convex/documentAnnotations.ts",
|
|
47
|
+
"convex/projectDocumentsActions.ts"
|
|
48
|
+
],
|
|
49
|
+
tools: ["lib/ai/tools/create-document.ts"]
|
|
50
|
+
},
|
|
51
|
+
policyProfile: {
|
|
52
|
+
audiences: ["internal", "lp"],
|
|
53
|
+
rules: [
|
|
54
|
+
{ resource: "artifact", actions: ["read", "summarize", "mutate"] },
|
|
55
|
+
{ resource: "project", actions: ["read", "summarize", "mutate"] },
|
|
56
|
+
{ resource: "tool_action", actions: ["read", "mutate"] }
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
dataContract: {
|
|
60
|
+
requiredNodeTypes: ["source", "excerpt", "evidence", "synthesis"],
|
|
61
|
+
requiredEdgeTypes: ["extracted_from", "based_on", "informs"],
|
|
62
|
+
requiredTables: [
|
|
63
|
+
"projectDocuments",
|
|
64
|
+
"projectDocumentsSyncLog",
|
|
65
|
+
"documentAnnotations",
|
|
66
|
+
"epistemicNodes"
|
|
67
|
+
],
|
|
68
|
+
projectionBehavior: "inherits_policy"
|
|
69
|
+
},
|
|
70
|
+
templates: {
|
|
71
|
+
workflows: [
|
|
72
|
+
"documents/upload-extract-link",
|
|
73
|
+
"documents/annotate-to-evidence"
|
|
74
|
+
],
|
|
75
|
+
prompts: ["documents/extraction", "documents/summarization"],
|
|
76
|
+
reports: [],
|
|
77
|
+
uiLabels: ["documents", "annotations", "excerpts", "sources"]
|
|
78
|
+
},
|
|
79
|
+
testSuite: {
|
|
80
|
+
parity: ["documents-page-parity"],
|
|
81
|
+
policy: ["document-access-enforcement"],
|
|
82
|
+
contract: ["documents-pack-contract-v1"]
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
export { documentsV1Manifest };
|
|
87
|
+
//# sourceMappingURL=documents-v1.js.map
|
|
88
|
+
//# sourceMappingURL=documents-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/contracts.ts","../../src/manifests/documents-v1.ts"],"names":[],"mappings":"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","file":"documents-v1.js","sourcesContent":["/**\n * App Pack Contracts\n *\n * Canonical type contracts for Lucern app-pack manifests and runtime metadata.\n */\n\nexport type PackLifecycle = \"active\" | \"beta\" | \"experimental\";\n\nexport type PackCategory =\n | \"conversation\"\n | \"research\"\n | \"graph\"\n | \"analytics\"\n | \"workflow\"\n | \"decision\"\n | \"news\"\n | \"documents\"\n | \"identity\"\n | \"operations\"\n | \"domain\";\n\nexport type PackAudience = string;\n\nexport type PolicyAction = \"read\" | \"summarize\" | \"export\" | \"mutate\" | \"admin\";\n\nexport type PolicyResource =\n | \"project\"\n | \"node\"\n | \"edge\"\n | \"artifact\"\n | \"report_section\"\n | \"tool_action\"\n | \"task\"\n | \"user_profile\"\n | \"team_analytics\";\n\nexport type ProjectionBehavior =\n | \"none\"\n | \"inherits_policy\"\n | \"projection_required\";\n\nexport type PackRuntimeStage =\n | \"registered\"\n | \"validated\"\n | \"installed\"\n | \"enabled\"\n | \"degraded\"\n | \"disabled\"\n | \"removed\";\n\nexport type SharedService =\n | \"decision-kernel\"\n | \"knowledge-compiler\"\n | \"learning-loop\";\n\nexport type SharedServiceMode = \"required\" | \"optional\";\n\nexport type RouteNamespace = {\n web: string[];\n api: string[];\n};\n\nexport type SurfaceOwnership = {\n components: string[];\n convex: string[];\n tools: string[];\n};\n\nexport type PolicyRule = {\n resource: PolicyResource;\n actions: PolicyAction[];\n notes?: string;\n};\n\nexport type PolicyProfile = {\n audiences: PackAudience[];\n rules: PolicyRule[];\n};\n\nexport type DataContract = {\n requiredNodeTypes: string[];\n requiredEdgeTypes: string[];\n requiredTables: string[];\n projectionBehavior: ProjectionBehavior;\n};\n\nexport type TemplateAssets = {\n workflows: string[];\n prompts: string[];\n reports: string[];\n uiLabels: string[];\n};\n\nexport type PackTestSuite = {\n parity: string[];\n policy: string[];\n contract: string[];\n};\n\nexport type SharedServiceIntegration = {\n service: SharedService;\n mode: SharedServiceMode;\n contracts: string[];\n};\n\nexport type AppPackManifest = {\n key: string;\n name: string;\n version: string;\n lifecycle: PackLifecycle;\n category: PackCategory;\n description: string;\n dependencies: string[];\n capabilityFlags: string[];\n routeNamespace: RouteNamespace;\n surfaces: SurfaceOwnership;\n policyProfile: PolicyProfile;\n dataContract: DataContract;\n templates: TemplateAssets;\n testSuite: PackTestSuite;\n sharedServices: SharedServiceIntegration[];\n};\n\ntype AppPackManifestInput = Omit<AppPackManifest, \"sharedServices\"> & {\n sharedServices?: SharedServiceIntegration[];\n};\n\nfunction normalizeStringArray(values: string[]): string[] {\n const normalized = values\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n return Array.from(new Set(normalized));\n}\n\nexport function defineAppPackManifest(\n manifest: AppPackManifestInput\n): AppPackManifest {\n const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({\n ...integration,\n contracts: normalizeStringArray(integration.contracts),\n }));\n\n return {\n ...manifest,\n dependencies: normalizeStringArray(manifest.dependencies),\n capabilityFlags: normalizeStringArray(manifest.capabilityFlags),\n sharedServices,\n };\n}\n","/**\n * App Pack Manifest: documents-v1\n *\n * Declarative runtime contract for the documents-v1 application pack.\n */\n\nimport { defineAppPackManifest } from \"../contracts\";\n\nexport const documentsV1Manifest = defineAppPackManifest({\n key: \"documents-v1\",\n name: \"Documents\",\n version: \"1.0.0\",\n lifecycle: \"active\",\n category: \"documents\",\n description:\n \"Document upload, extraction, annotation, and conversion into graph-grounded evidence.\",\n dependencies: [\"chat-v1\"],\n capabilityFlags: [\n \"document.ingestion\",\n \"document.extraction\",\n \"document.annotation\",\n \"document.rag\",\n ],\n routeNamespace: {\n web: [\n \"/(projects)/projects/[projectId]/documents\",\n \"/(projects)/projects/[projectId]/documents/[documentId]\",\n ],\n api: [\"/api/documents/*\", \"/api/rag/document\", \"/api/rag/extract-pdf\"],\n },\n surfaces: {\n components: [\"components/documents/*\", \"components/document/*\"],\n convex: [\n \"convex/projectDocuments.ts\",\n \"convex/documents.ts\",\n \"convex/documentAnnotations.ts\",\n \"convex/projectDocumentsActions.ts\",\n ],\n tools: [\"lib/ai/tools/create-document.ts\"],\n },\n policyProfile: {\n audiences: [\"internal\", \"lp\"],\n rules: [\n { resource: \"artifact\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"project\", actions: [\"read\", \"summarize\", \"mutate\"] },\n { resource: \"tool_action\", actions: [\"read\", \"mutate\"] },\n ],\n },\n dataContract: {\n requiredNodeTypes: [\"source\", \"excerpt\", \"evidence\", \"synthesis\"],\n requiredEdgeTypes: [\"extracted_from\", \"based_on\", \"informs\"],\n requiredTables: [\n \"projectDocuments\",\n \"projectDocumentsSyncLog\",\n \"documentAnnotations\",\n \"epistemicNodes\",\n ],\n projectionBehavior: \"inherits_policy\",\n },\n templates: {\n workflows: [\n \"documents/upload-extract-link\",\n \"documents/annotate-to-evidence\",\n ],\n prompts: [\"documents/extraction\", \"documents/summarization\"],\n reports: [],\n uiLabels: [\"documents\", \"annotations\", \"excerpts\", \"sources\"],\n },\n testSuite: {\n parity: [\"documents-page-parity\"],\n policy: [\"document-access-enforcement\"],\n contract: [\"documents-pack-contract-v1\"],\n },\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppPackManifest } from '../contracts.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Pack Manifest: epistemic-algorithms-v1
|
|
5
|
+
*
|
|
6
|
+
* Declarative runtime contract for the epistemic-algorithms-v1 application pack.
|
|
7
|
+
*/
|
|
8
|
+
declare const epistemicAlgorithmsV1Manifest: AppPackManifest;
|
|
9
|
+
|
|
10
|
+
export { epistemicAlgorithmsV1Manifest };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// src/contracts.ts
|
|
2
|
+
function normalizeStringArray(values) {
|
|
3
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
4
|
+
return Array.from(new Set(normalized));
|
|
5
|
+
}
|
|
6
|
+
function defineAppPackManifest(manifest) {
|
|
7
|
+
const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({
|
|
8
|
+
...integration,
|
|
9
|
+
contracts: normalizeStringArray(integration.contracts)
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...manifest,
|
|
13
|
+
dependencies: normalizeStringArray(manifest.dependencies),
|
|
14
|
+
capabilityFlags: normalizeStringArray(manifest.capabilityFlags),
|
|
15
|
+
sharedServices
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/manifests/epistemic-algorithms-v1.ts
|
|
20
|
+
var epistemicAlgorithmsV1Manifest = defineAppPackManifest({
|
|
21
|
+
key: "epistemic-algorithms-v1",
|
|
22
|
+
name: "Epistemic Algorithms",
|
|
23
|
+
version: "1.0.0",
|
|
24
|
+
lifecycle: "active",
|
|
25
|
+
category: "analytics",
|
|
26
|
+
description: "Reasoning quality engines: contradiction detection, conviction dynamics, and graph intelligence analytics.",
|
|
27
|
+
dependencies: ["graph-visualization-v1", "chat-v1"],
|
|
28
|
+
capabilityFlags: [
|
|
29
|
+
"contradiction.detection",
|
|
30
|
+
"conviction.analytics",
|
|
31
|
+
"reasoning.depth",
|
|
32
|
+
"bias.detection"
|
|
33
|
+
],
|
|
34
|
+
routeNamespace: {
|
|
35
|
+
web: [
|
|
36
|
+
"/(projects)/projects/[projectId]/contradictions",
|
|
37
|
+
"/(projects)/projects/[projectId]/thesis-audit"
|
|
38
|
+
],
|
|
39
|
+
api: ["/api/thesis-audit", "/api/graph-explain", "/api/lucern/*"]
|
|
40
|
+
},
|
|
41
|
+
surfaces: {
|
|
42
|
+
components: ["components/epistemic/*", "components/contradiction/*"],
|
|
43
|
+
convex: [
|
|
44
|
+
"convex/contradictions.ts",
|
|
45
|
+
"convex/convictionEngine.ts",
|
|
46
|
+
"convex/graphIntelligence.ts",
|
|
47
|
+
"convex/thesisAuditAgents.ts"
|
|
48
|
+
],
|
|
49
|
+
tools: ["lib/ai/tools/graph-intelligence-tools.ts"]
|
|
50
|
+
},
|
|
51
|
+
policyProfile: {
|
|
52
|
+
audiences: ["internal", "lp"],
|
|
53
|
+
rules: [
|
|
54
|
+
{ resource: "node", actions: ["read", "summarize"] },
|
|
55
|
+
{ resource: "edge", actions: ["read", "summarize"] },
|
|
56
|
+
{ resource: "artifact", actions: ["read", "summarize", "export"] }
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
dataContract: {
|
|
60
|
+
requiredNodeTypes: ["belief", "question", "evidence", "theme", "decision"],
|
|
61
|
+
requiredEdgeTypes: [
|
|
62
|
+
"informs",
|
|
63
|
+
"contradicts",
|
|
64
|
+
"depends_on",
|
|
65
|
+
"strengthened_by",
|
|
66
|
+
"weakened_by",
|
|
67
|
+
"collapses_if"
|
|
68
|
+
],
|
|
69
|
+
requiredTables: [
|
|
70
|
+
"contradictions",
|
|
71
|
+
"beliefConfidence",
|
|
72
|
+
"epistemicAudit",
|
|
73
|
+
"graphAnalysisResults"
|
|
74
|
+
],
|
|
75
|
+
projectionBehavior: "inherits_policy"
|
|
76
|
+
},
|
|
77
|
+
templates: {
|
|
78
|
+
workflows: ["epistemic/contradiction-resolution", "epistemic/thesis-audit"],
|
|
79
|
+
prompts: [
|
|
80
|
+
"graph-intelligence/full-guide",
|
|
81
|
+
"graph-intelligence/bias-detection"
|
|
82
|
+
],
|
|
83
|
+
reports: ["knowledge_map"],
|
|
84
|
+
uiLabels: [
|
|
85
|
+
"contradiction",
|
|
86
|
+
"conviction",
|
|
87
|
+
"thesis_audit",
|
|
88
|
+
"epistemic_health"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
testSuite: {
|
|
92
|
+
parity: ["epistemic-algorithm-output-parity"],
|
|
93
|
+
policy: ["epistemic-output-scope-filtering"],
|
|
94
|
+
contract: ["epistemic-algorithms-pack-contract-v1"]
|
|
95
|
+
},
|
|
96
|
+
sharedServices: [
|
|
97
|
+
{
|
|
98
|
+
service: "knowledge-compiler",
|
|
99
|
+
mode: "required",
|
|
100
|
+
contracts: ["knowledge-compiler-v1"]
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
export { epistemicAlgorithmsV1Manifest };
|
|
106
|
+
//# sourceMappingURL=epistemic-algorithms-v1.js.map
|
|
107
|
+
//# sourceMappingURL=epistemic-algorithms-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/contracts.ts","../../src/manifests/epistemic-algorithms-v1.ts"],"names":[],"mappings":"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","file":"epistemic-algorithms-v1.js","sourcesContent":["/**\n * App Pack Contracts\n *\n * Canonical type contracts for Lucern app-pack manifests and runtime metadata.\n */\n\nexport type PackLifecycle = \"active\" | \"beta\" | \"experimental\";\n\nexport type PackCategory =\n | \"conversation\"\n | \"research\"\n | \"graph\"\n | \"analytics\"\n | \"workflow\"\n | \"decision\"\n | \"news\"\n | \"documents\"\n | \"identity\"\n | \"operations\"\n | \"domain\";\n\nexport type PackAudience = string;\n\nexport type PolicyAction = \"read\" | \"summarize\" | \"export\" | \"mutate\" | \"admin\";\n\nexport type PolicyResource =\n | \"project\"\n | \"node\"\n | \"edge\"\n | \"artifact\"\n | \"report_section\"\n | \"tool_action\"\n | \"task\"\n | \"user_profile\"\n | \"team_analytics\";\n\nexport type ProjectionBehavior =\n | \"none\"\n | \"inherits_policy\"\n | \"projection_required\";\n\nexport type PackRuntimeStage =\n | \"registered\"\n | \"validated\"\n | \"installed\"\n | \"enabled\"\n | \"degraded\"\n | \"disabled\"\n | \"removed\";\n\nexport type SharedService =\n | \"decision-kernel\"\n | \"knowledge-compiler\"\n | \"learning-loop\";\n\nexport type SharedServiceMode = \"required\" | \"optional\";\n\nexport type RouteNamespace = {\n web: string[];\n api: string[];\n};\n\nexport type SurfaceOwnership = {\n components: string[];\n convex: string[];\n tools: string[];\n};\n\nexport type PolicyRule = {\n resource: PolicyResource;\n actions: PolicyAction[];\n notes?: string;\n};\n\nexport type PolicyProfile = {\n audiences: PackAudience[];\n rules: PolicyRule[];\n};\n\nexport type DataContract = {\n requiredNodeTypes: string[];\n requiredEdgeTypes: string[];\n requiredTables: string[];\n projectionBehavior: ProjectionBehavior;\n};\n\nexport type TemplateAssets = {\n workflows: string[];\n prompts: string[];\n reports: string[];\n uiLabels: string[];\n};\n\nexport type PackTestSuite = {\n parity: string[];\n policy: string[];\n contract: string[];\n};\n\nexport type SharedServiceIntegration = {\n service: SharedService;\n mode: SharedServiceMode;\n contracts: string[];\n};\n\nexport type AppPackManifest = {\n key: string;\n name: string;\n version: string;\n lifecycle: PackLifecycle;\n category: PackCategory;\n description: string;\n dependencies: string[];\n capabilityFlags: string[];\n routeNamespace: RouteNamespace;\n surfaces: SurfaceOwnership;\n policyProfile: PolicyProfile;\n dataContract: DataContract;\n templates: TemplateAssets;\n testSuite: PackTestSuite;\n sharedServices: SharedServiceIntegration[];\n};\n\ntype AppPackManifestInput = Omit<AppPackManifest, \"sharedServices\"> & {\n sharedServices?: SharedServiceIntegration[];\n};\n\nfunction normalizeStringArray(values: string[]): string[] {\n const normalized = values\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n return Array.from(new Set(normalized));\n}\n\nexport function defineAppPackManifest(\n manifest: AppPackManifestInput\n): AppPackManifest {\n const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({\n ...integration,\n contracts: normalizeStringArray(integration.contracts),\n }));\n\n return {\n ...manifest,\n dependencies: normalizeStringArray(manifest.dependencies),\n capabilityFlags: normalizeStringArray(manifest.capabilityFlags),\n sharedServices,\n };\n}\n","/**\n * App Pack Manifest: epistemic-algorithms-v1\n *\n * Declarative runtime contract for the epistemic-algorithms-v1 application pack.\n */\n\nimport { defineAppPackManifest } from \"../contracts\";\n\nexport const epistemicAlgorithmsV1Manifest = defineAppPackManifest({\n key: \"epistemic-algorithms-v1\",\n name: \"Epistemic Algorithms\",\n version: \"1.0.0\",\n lifecycle: \"active\",\n category: \"analytics\",\n description:\n \"Reasoning quality engines: contradiction detection, conviction dynamics, and graph intelligence analytics.\",\n dependencies: [\"graph-visualization-v1\", \"chat-v1\"],\n capabilityFlags: [\n \"contradiction.detection\",\n \"conviction.analytics\",\n \"reasoning.depth\",\n \"bias.detection\",\n ],\n routeNamespace: {\n web: [\n \"/(projects)/projects/[projectId]/contradictions\",\n \"/(projects)/projects/[projectId]/thesis-audit\",\n ],\n api: [\"/api/thesis-audit\", \"/api/graph-explain\", \"/api/lucern/*\"],\n },\n surfaces: {\n components: [\"components/epistemic/*\", \"components/contradiction/*\"],\n convex: [\n \"convex/contradictions.ts\",\n \"convex/convictionEngine.ts\",\n \"convex/graphIntelligence.ts\",\n \"convex/thesisAuditAgents.ts\",\n ],\n tools: [\"lib/ai/tools/graph-intelligence-tools.ts\"],\n },\n policyProfile: {\n audiences: [\"internal\", \"lp\"],\n rules: [\n { resource: \"node\", actions: [\"read\", \"summarize\"] },\n { resource: \"edge\", actions: [\"read\", \"summarize\"] },\n { resource: \"artifact\", actions: [\"read\", \"summarize\", \"export\"] },\n ],\n },\n dataContract: {\n requiredNodeTypes: [\"belief\", \"question\", \"evidence\", \"theme\", \"decision\"],\n requiredEdgeTypes: [\n \"informs\",\n \"contradicts\",\n \"depends_on\",\n \"strengthened_by\",\n \"weakened_by\",\n \"collapses_if\",\n ],\n requiredTables: [\n \"contradictions\",\n \"beliefConfidence\",\n \"epistemicAudit\",\n \"graphAnalysisResults\",\n ],\n projectionBehavior: \"inherits_policy\",\n },\n templates: {\n workflows: [\"epistemic/contradiction-resolution\", \"epistemic/thesis-audit\"],\n prompts: [\n \"graph-intelligence/full-guide\",\n \"graph-intelligence/bias-detection\",\n ],\n reports: [\"knowledge_map\"],\n uiLabels: [\n \"contradiction\",\n \"conviction\",\n \"thesis_audit\",\n \"epistemic_health\",\n ],\n },\n testSuite: {\n parity: [\"epistemic-algorithm-output-parity\"],\n policy: [\"epistemic-output-scope-filtering\"],\n contract: [\"epistemic-algorithms-pack-contract-v1\"],\n },\n sharedServices: [\n {\n service: \"knowledge-compiler\",\n mode: \"required\",\n contracts: [\"knowledge-compiler-v1\"],\n },\n ],\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppPackManifest } from '../contracts.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Pack Manifest: graph-visualization-v1
|
|
5
|
+
*
|
|
6
|
+
* Declarative runtime contract for the graph-visualization-v1 application pack.
|
|
7
|
+
*/
|
|
8
|
+
declare const graphVisualizationV1Manifest: AppPackManifest;
|
|
9
|
+
|
|
10
|
+
export { graphVisualizationV1Manifest };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// src/contracts.ts
|
|
2
|
+
function normalizeStringArray(values) {
|
|
3
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
4
|
+
return Array.from(new Set(normalized));
|
|
5
|
+
}
|
|
6
|
+
function defineAppPackManifest(manifest) {
|
|
7
|
+
const sharedServices = (manifest.sharedServices ?? []).map((integration) => ({
|
|
8
|
+
...integration,
|
|
9
|
+
contracts: normalizeStringArray(integration.contracts)
|
|
10
|
+
}));
|
|
11
|
+
return {
|
|
12
|
+
...manifest,
|
|
13
|
+
dependencies: normalizeStringArray(manifest.dependencies),
|
|
14
|
+
capabilityFlags: normalizeStringArray(manifest.capabilityFlags),
|
|
15
|
+
sharedServices
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/manifests/graph-visualization-v1.ts
|
|
20
|
+
var graphVisualizationV1Manifest = defineAppPackManifest({
|
|
21
|
+
key: "graph-visualization-v1",
|
|
22
|
+
name: "Graph Visualization",
|
|
23
|
+
version: "1.0.0",
|
|
24
|
+
lifecycle: "active",
|
|
25
|
+
category: "graph",
|
|
26
|
+
description: "Interactive graph explorer for node/edge traversal, neighborhood inspection, and query rendering.",
|
|
27
|
+
dependencies: ["chat-v1"],
|
|
28
|
+
capabilityFlags: [
|
|
29
|
+
"graph.rendering",
|
|
30
|
+
"graph.query",
|
|
31
|
+
"graph.highlighting",
|
|
32
|
+
"graph.neighborhood"
|
|
33
|
+
],
|
|
34
|
+
routeNamespace: {
|
|
35
|
+
web: ["/(projects)/projects/[projectId]/graph"],
|
|
36
|
+
api: ["/api/graph", "/api/graph-query", "/api/graph-suggestions"]
|
|
37
|
+
},
|
|
38
|
+
surfaces: {
|
|
39
|
+
components: [
|
|
40
|
+
"app/(projects)/projects/[projectId]/graph/components/*",
|
|
41
|
+
"components/workspace/views/ProjectHomeView.tsx"
|
|
42
|
+
],
|
|
43
|
+
convex: ["convex/epistemicQueries.ts", "convex/neo4jQueries.ts"],
|
|
44
|
+
tools: [
|
|
45
|
+
"lib/ai/tools/knowledge-graph-tools.ts",
|
|
46
|
+
"lib/ai/tools/cypher-tools.ts"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
policyProfile: {
|
|
50
|
+
audiences: ["internal", "lp"],
|
|
51
|
+
rules: [
|
|
52
|
+
{ resource: "node", actions: ["read", "summarize"] },
|
|
53
|
+
{ resource: "edge", actions: ["read", "summarize"] },
|
|
54
|
+
{ resource: "tool_action", actions: ["read"] }
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
dataContract: {
|
|
58
|
+
requiredNodeTypes: [
|
|
59
|
+
"belief",
|
|
60
|
+
"question",
|
|
61
|
+
"evidence",
|
|
62
|
+
"theme",
|
|
63
|
+
"deal",
|
|
64
|
+
"decision"
|
|
65
|
+
],
|
|
66
|
+
requiredEdgeTypes: ["informs", "answers", "belongs_to", "depends_on"],
|
|
67
|
+
requiredTables: ["epistemicNodes", "epistemicEdges"],
|
|
68
|
+
projectionBehavior: "inherits_policy"
|
|
69
|
+
},
|
|
70
|
+
templates: {
|
|
71
|
+
workflows: ["graph/query-and-traverse"],
|
|
72
|
+
prompts: [
|
|
73
|
+
"graph-intelligence/query",
|
|
74
|
+
"graph-intelligence/suggestions-extraction"
|
|
75
|
+
],
|
|
76
|
+
reports: [],
|
|
77
|
+
uiLabels: ["graph", "nodes", "edges", "lineage"]
|
|
78
|
+
},
|
|
79
|
+
testSuite: {
|
|
80
|
+
parity: ["graph-query-parity", "graph-render-parity"],
|
|
81
|
+
policy: ["graph-node-visibility-filtering"],
|
|
82
|
+
contract: ["graph-visualization-pack-contract-v1"]
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
export { graphVisualizationV1Manifest };
|
|
87
|
+
//# sourceMappingURL=graph-visualization-v1.js.map
|
|
88
|
+
//# sourceMappingURL=graph-visualization-v1.js.map
|