@lssm/lib.contracts 0.0.0-canary-20251217062943 → 0.0.0-canary-20251217072406
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/dist/app-config/app-config.feature.js +53 -1
- package/dist/app-config/contracts.d.ts +50 -50
- package/dist/app-config/contracts.js +396 -1
- package/dist/app-config/docs/app-config.docblock.js +22 -220
- package/dist/app-config/events.js +168 -1
- package/dist/app-config/index.js +8 -1
- package/dist/app-config/lifecycle-contracts.js +441 -1
- package/dist/app-config/runtime.js +617 -1
- package/dist/app-config/spec.js +36 -1
- package/dist/app-config/validation.js +538 -1
- package/dist/capabilities/docs/capabilities.docblock.js +22 -1
- package/dist/capabilities/openbanking.js +92 -1
- package/dist/capabilities.js +50 -1
- package/dist/client/index.js +9 -1
- package/dist/client/react/drivers/rn-reusables.js +21 -1
- package/dist/client/react/drivers/shadcn.js +11 -1
- package/dist/client/react/feature-render.js +43 -1
- package/dist/client/react/form-render.js +298 -1
- package/dist/client/react/index.js +8 -1
- package/dist/contract-registry/index.js +3 -1
- package/dist/contract-registry/schemas.js +61 -1
- package/dist/contracts-adapter-hydration.js +41 -1
- package/dist/contracts-adapter-input.js +77 -1
- package/dist/data-views/docs/data-views.docblock.js +22 -1
- package/dist/data-views/query-generator.js +48 -1
- package/dist/data-views/runtime.js +39 -1
- package/dist/data-views.js +35 -1
- package/dist/docs/PUBLISHING.docblock.js +17 -76
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -350
- package/dist/docs/index.js +33 -1
- package/dist/docs/meta.docs.js +15 -2
- package/dist/docs/presentations.js +77 -1
- package/dist/docs/registry.js +51 -1
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +17 -383
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +17 -68
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +17 -140
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +17 -86
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +17 -1
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +25 -2
- package/dist/docs/tech/contracts/README.docblock.js +21 -1
- package/dist/docs/tech/contracts/create-subscription.docblock.js +21 -1
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +21 -180
- package/dist/docs/tech/contracts/migrations.docblock.js +21 -1
- package/dist/docs/tech/contracts/openapi-export.docblock.js +22 -2
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +19 -60
- package/dist/docs/tech/contracts/overlays.docblock.js +21 -68
- package/dist/docs/tech/contracts/tests.docblock.js +21 -132
- package/dist/docs/tech/contracts/themes.docblock.js +21 -1
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +21 -106
- package/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -213
- package/dist/docs/tech/llm/llm-integration.docblock.js +74 -5
- package/dist/docs/tech/mcp-endpoints.docblock.js +38 -1
- package/dist/docs/tech/presentation-runtime.docblock.js +17 -1
- package/dist/docs/tech/schema/README.docblock.js +21 -262
- package/dist/docs/tech/studio/learning-events.docblock.js +49 -1
- package/dist/docs/tech/studio/learning-journeys.docblock.js +25 -2
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js +24 -2
- package/dist/docs/tech/studio/project-access-teams.docblock.js +26 -16
- package/dist/docs/tech/studio/project-routing.docblock.js +68 -1
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +23 -2
- package/dist/docs/tech/studio/team-invitations.docblock.js +41 -36
- package/dist/docs/tech/studio/workspace-ops.docblock.js +48 -1
- package/dist/docs/tech/studio/workspaces.docblock.js +24 -2
- package/dist/docs/tech/telemetry-ingest.docblock.js +37 -3
- package/dist/docs/tech/templates/runtime.docblock.js +21 -1
- package/dist/docs/tech/vscode-extension.docblock.js +37 -3
- package/dist/docs/tech/workflows/overview.docblock.js +21 -1
- package/dist/docs/tech-contracts.docs.js +19 -2
- package/dist/events.js +12 -1
- package/dist/experiments/docs/experiments.docblock.js +22 -128
- package/dist/experiments/evaluator.js +101 -1
- package/dist/experiments/spec.js +33 -1
- package/dist/features.js +68 -1
- package/dist/forms/docs/forms.docblock.js +22 -1
- package/dist/forms.js +119 -1
- package/dist/index.js +107 -1
- package/dist/install.js +40 -1
- package/dist/integrations/contracts.d.ts +102 -102
- package/dist/integrations/contracts.js +388 -1
- package/dist/integrations/docs/integrations.docblock.js +95 -1
- package/dist/integrations/health.js +69 -1
- package/dist/integrations/index.js +23 -1
- package/dist/integrations/openbanking/contracts/accounts.d.ts +66 -66
- package/dist/integrations/openbanking/contracts/accounts.js +237 -1
- package/dist/integrations/openbanking/contracts/balances.d.ts +34 -34
- package/dist/integrations/openbanking/contracts/balances.js +167 -1
- package/dist/integrations/openbanking/contracts/index.js +12 -1
- package/dist/integrations/openbanking/contracts/transactions.d.ts +48 -48
- package/dist/integrations/openbanking/contracts/transactions.js +218 -1
- package/dist/integrations/openbanking/guards.js +32 -1
- package/dist/integrations/openbanking/models.d.ts +55 -55
- package/dist/integrations/openbanking/models.js +242 -1
- package/dist/integrations/openbanking/openbanking.feature.js +68 -1
- package/dist/integrations/openbanking/telemetry.js +39 -1
- package/dist/integrations/providers/elevenlabs.js +56 -1
- package/dist/integrations/providers/gcs-storage.js +79 -1
- package/dist/integrations/providers/gmail.js +91 -1
- package/dist/integrations/providers/google-calendar.js +70 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.js +95 -1
- package/dist/integrations/providers/impls/gcs-storage.js +88 -1
- package/dist/integrations/providers/impls/gmail-inbound.js +200 -1
- package/dist/integrations/providers/impls/gmail-outbound.js +104 -5
- package/dist/integrations/providers/impls/google-calendar.js +154 -1
- package/dist/integrations/providers/impls/index.js +16 -1
- package/dist/integrations/providers/impls/mistral-embedding.js +41 -1
- package/dist/integrations/providers/impls/mistral-llm.js +247 -1
- package/dist/integrations/providers/impls/postmark-email.js +55 -1
- package/dist/integrations/providers/impls/powens-client.js +171 -1
- package/dist/integrations/providers/impls/powens-openbanking.js +218 -1
- package/dist/integrations/providers/impls/provider-factory.js +142 -1
- package/dist/integrations/providers/impls/qdrant-vector.js +69 -1
- package/dist/integrations/providers/impls/stripe-payments.js +202 -1
- package/dist/integrations/providers/impls/twilio-sms.js +58 -1
- package/dist/integrations/providers/index.js +13 -1
- package/dist/integrations/providers/mistral.js +72 -1
- package/dist/integrations/providers/postmark.js +72 -1
- package/dist/integrations/providers/powens.js +120 -1
- package/dist/integrations/providers/qdrant.js +77 -1
- package/dist/integrations/providers/registry.js +34 -1
- package/dist/integrations/providers/stripe.js +87 -1
- package/dist/integrations/providers/twilio-sms.js +65 -1
- package/dist/integrations/runtime.js +186 -1
- package/dist/integrations/secrets/aws-secret-manager.js +231 -1
- package/dist/integrations/secrets/env-secret-provider.js +81 -1
- package/dist/integrations/secrets/gcp-secret-manager.js +229 -1
- package/dist/integrations/secrets/index.js +8 -1
- package/dist/integrations/secrets/manager.js +103 -1
- package/dist/integrations/secrets/provider.js +58 -1
- package/dist/integrations/secrets/scaleway-secret-manager.js +247 -1
- package/dist/integrations/spec.js +39 -1
- package/dist/jobs/define-job.js +16 -1
- package/dist/jobs/gcp-cloud-tasks.js +53 -1
- package/dist/jobs/gcp-pubsub.js +39 -1
- package/dist/jobs/handlers/gmail-sync-handler.js +9 -1
- package/dist/jobs/handlers/index.js +12 -1
- package/dist/jobs/handlers/ping-handler.js +15 -1
- package/dist/jobs/handlers/storage-document-handler.js +14 -1
- package/dist/jobs/index.js +4 -1
- package/dist/jobs/memory-queue.js +71 -1
- package/dist/jobs/queue.js +33 -1
- package/dist/jobs/scaleway-sqs-queue.js +153 -1
- package/dist/jsonschema.d.ts +3 -3
- package/dist/jsonschema.js +32 -1
- package/dist/knowledge/contracts.d.ts +66 -66
- package/dist/knowledge/contracts.js +317 -1
- package/dist/knowledge/docs/knowledge.docblock.js +22 -138
- package/dist/knowledge/index.js +10 -1
- package/dist/knowledge/ingestion/document-processor.js +54 -1
- package/dist/knowledge/ingestion/embedding-service.js +25 -1
- package/dist/knowledge/ingestion/gmail-adapter.js +50 -5
- package/dist/knowledge/ingestion/index.js +7 -1
- package/dist/knowledge/ingestion/storage-adapter.js +26 -1
- package/dist/knowledge/ingestion/vector-indexer.js +32 -1
- package/dist/knowledge/query/index.js +3 -1
- package/dist/knowledge/query/service.js +64 -2
- package/dist/knowledge/runtime.js +49 -1
- package/dist/knowledge/spaces/email-threads.js +38 -1
- package/dist/knowledge/spaces/financial-docs.js +38 -1
- package/dist/knowledge/spaces/financial-overview.js +42 -1
- package/dist/knowledge/spaces/index.js +8 -1
- package/dist/knowledge/spaces/product-canon.js +38 -1
- package/dist/knowledge/spaces/support-faq.js +41 -1
- package/dist/knowledge/spaces/uploaded-docs.js +38 -1
- package/dist/knowledge/spec.js +39 -1
- package/dist/llm/exporters.js +541 -8
- package/dist/llm/index.js +4 -1
- package/dist/llm/prompts.js +246 -56
- package/dist/markdown.js +116 -3
- package/dist/migrations.js +33 -1
- package/dist/onboarding-base.d.ts +29 -29
- package/dist/onboarding-base.js +196 -1
- package/dist/openapi.js +75 -1
- package/dist/openbanking/docs/openbanking.docblock.js +22 -109
- package/dist/ownership.js +40 -1
- package/dist/policy/docs/policy.docblock.js +22 -1
- package/dist/policy/engine.js +223 -1
- package/dist/policy/opa-adapter.js +71 -1
- package/dist/policy/spec.js +33 -1
- package/dist/presentations/docs/presentations-conventions.docblock.js +21 -7
- package/dist/presentations.backcompat.js +47 -1
- package/dist/presentations.d.ts +3 -3
- package/dist/presentations.js +66 -1
- package/dist/presentations.v2.js +278 -6
- package/dist/prompt.js +10 -1
- package/dist/promptRegistry.js +34 -1
- package/dist/regenerator/docs/regenerator.docblock.js +22 -184
- package/dist/regenerator/executor.js +86 -1
- package/dist/regenerator/index.js +6 -1
- package/dist/regenerator/service.js +92 -1
- package/dist/regenerator/sinks.js +32 -1
- package/dist/regenerator/utils.js +51 -1
- package/dist/registry.js +208 -1
- package/dist/resources.js +47 -1
- package/dist/schema/dist/EnumType.js +2 -1
- package/dist/schema/dist/FieldType.js +49 -1
- package/dist/schema/dist/ScalarTypeEnum.js +236 -1
- package/dist/schema/dist/SchemaModel.js +39 -1
- package/dist/schema/dist/entity/defineEntity.js +1 -1
- package/dist/schema/dist/entity/index.js +2 -1
- package/dist/schema/dist/entity/types.js +1 -1
- package/dist/schema/dist/index.js +6 -1
- package/dist/schema-to-markdown.js +214 -10
- package/dist/server/graphql-pothos.js +128 -1
- package/dist/server/index.js +10 -1
- package/dist/server/mcp/createMcpServer.js +28 -1
- package/dist/server/mcp/registerPresentations.js +151 -1
- package/dist/server/mcp/registerPrompts.js +36 -2
- package/dist/server/mcp/registerResources.js +35 -1
- package/dist/server/mcp/registerTools.js +22 -1
- package/dist/server/provider-mcp.js +3 -1
- package/dist/server/rest-elysia.js +20 -1
- package/dist/server/rest-express.js +39 -1
- package/dist/server/rest-generic.js +125 -1
- package/dist/server/rest-next-app.js +38 -1
- package/dist/server/rest-next-mcp.js +45 -1
- package/dist/server/rest-next-pages.js +25 -1
- package/dist/spec.js +35 -1
- package/dist/telemetry/anomaly.js +48 -1
- package/dist/telemetry/docs/telemetry.docblock.js +22 -139
- package/dist/telemetry/index.js +5 -1
- package/dist/telemetry/spec.js +69 -1
- package/dist/telemetry/tracker.js +76 -1
- package/dist/tests/index.js +4 -1
- package/dist/tests/runner.js +150 -1
- package/dist/tests/spec.js +33 -1
- package/dist/themes.js +39 -1
- package/dist/workflow/adapters/db-adapter.js +83 -1
- package/dist/workflow/adapters/file-adapter.js +11 -1
- package/dist/workflow/adapters/index.js +5 -1
- package/dist/workflow/adapters/memory-store.js +58 -1
- package/dist/workflow/expression.js +98 -1
- package/dist/workflow/index.js +9 -1
- package/dist/workflow/runner.js +337 -1
- package/dist/workflow/sla-monitor.js +47 -1
- package/dist/workflow/spec.js +32 -1
- package/dist/workflow/validation.js +175 -1
- package/package.json +11 -4
|
@@ -1 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/knowledge/ingestion/storage-adapter.ts
|
|
2
|
+
var StorageIngestionAdapter = class {
|
|
3
|
+
constructor(processor, embeddings, indexer) {
|
|
4
|
+
this.processor = processor;
|
|
5
|
+
this.embeddings = embeddings;
|
|
6
|
+
this.indexer = indexer;
|
|
7
|
+
}
|
|
8
|
+
async ingestObject(object) {
|
|
9
|
+
if (!("data" in object) || !object.data) throw new Error("Storage ingestion requires object data");
|
|
10
|
+
const raw = {
|
|
11
|
+
id: object.key,
|
|
12
|
+
mimeType: object.contentType ?? "application/octet-stream",
|
|
13
|
+
data: object.data,
|
|
14
|
+
metadata: {
|
|
15
|
+
bucket: object.bucket,
|
|
16
|
+
checksum: object.checksum ?? ""
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const fragments = await this.processor.process(raw);
|
|
20
|
+
const embeddings = await this.embeddings.embedFragments(fragments);
|
|
21
|
+
await this.indexer.upsert(fragments, embeddings);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { StorageIngestionAdapter };
|
|
@@ -1 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/knowledge/ingestion/vector-indexer.ts
|
|
2
|
+
var VectorIndexer = class {
|
|
3
|
+
provider;
|
|
4
|
+
config;
|
|
5
|
+
constructor(provider, config) {
|
|
6
|
+
this.provider = provider;
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
async upsert(fragments, embeddings) {
|
|
10
|
+
const documents = embeddings.map((embedding) => {
|
|
11
|
+
const fragment = fragments.find((f) => f.id === embedding.id);
|
|
12
|
+
return {
|
|
13
|
+
id: embedding.id,
|
|
14
|
+
vector: embedding.vector,
|
|
15
|
+
payload: {
|
|
16
|
+
...this.config.metadata,
|
|
17
|
+
...fragment?.metadata ?? {},
|
|
18
|
+
documentId: fragment?.documentId
|
|
19
|
+
},
|
|
20
|
+
namespace: this.config.namespace
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
const request = {
|
|
24
|
+
collection: this.config.collection,
|
|
25
|
+
documents
|
|
26
|
+
};
|
|
27
|
+
await this.provider.upsert(request);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { VectorIndexer };
|
|
@@ -1,3 +1,65 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/knowledge/query/service.ts
|
|
2
|
+
var KnowledgeQueryService = class {
|
|
3
|
+
embeddings;
|
|
4
|
+
vectorStore;
|
|
5
|
+
llm;
|
|
6
|
+
config;
|
|
7
|
+
constructor(embeddings, vectorStore, llm, config) {
|
|
8
|
+
this.embeddings = embeddings;
|
|
9
|
+
this.vectorStore = vectorStore;
|
|
10
|
+
this.llm = llm;
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
async query(question) {
|
|
14
|
+
const embedding = await this.embeddings.embedQuery(question);
|
|
15
|
+
const results = await this.vectorStore.search({
|
|
16
|
+
collection: this.config.collection,
|
|
17
|
+
vector: embedding.vector,
|
|
18
|
+
topK: this.config.topK ?? 5,
|
|
19
|
+
namespace: this.config.namespace,
|
|
20
|
+
filter: void 0
|
|
21
|
+
});
|
|
22
|
+
const context = buildContext(results);
|
|
23
|
+
const messages = this.buildMessages(question, context);
|
|
24
|
+
const response = await this.llm.chat(messages);
|
|
25
|
+
return {
|
|
26
|
+
answer: response.message.content.map((part) => "text" in part ? part.text : "").join(""),
|
|
27
|
+
references: results.map((result) => ({
|
|
28
|
+
...result,
|
|
29
|
+
text: extractText(result)
|
|
30
|
+
})),
|
|
31
|
+
usage: response.usage
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
buildMessages(question, context) {
|
|
35
|
+
return [{
|
|
36
|
+
role: "system",
|
|
37
|
+
content: [{
|
|
38
|
+
type: "text",
|
|
39
|
+
text: this.config.systemPrompt ?? "You are a knowledge assistant that answers questions using the provided context. Cite relevant sources if possible."
|
|
40
|
+
}]
|
|
41
|
+
}, {
|
|
42
|
+
role: "user",
|
|
43
|
+
content: [{
|
|
44
|
+
type: "text",
|
|
45
|
+
text: `Question:\n${question}\n\nContext:\n${context}`
|
|
46
|
+
}]
|
|
47
|
+
}];
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
function buildContext(results) {
|
|
51
|
+
if (results.length === 0) return "No relevant documents found.";
|
|
52
|
+
return results.map((result, index) => {
|
|
53
|
+
const text = extractText(result);
|
|
54
|
+
return `Source ${index + 1} (score: ${result.score.toFixed(3)}):\n${text}`;
|
|
55
|
+
}).join("\n\n");
|
|
56
|
+
}
|
|
57
|
+
function extractText(result) {
|
|
58
|
+
const payload = result.payload ?? {};
|
|
59
|
+
if (typeof payload.text === "string") return payload.text;
|
|
60
|
+
if (typeof payload.content === "string") return payload.content;
|
|
61
|
+
return JSON.stringify(payload);
|
|
62
|
+
}
|
|
2
63
|
|
|
3
|
-
|
|
64
|
+
//#endregion
|
|
65
|
+
export { KnowledgeQueryService };
|
|
@@ -1 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/knowledge/runtime.ts
|
|
2
|
+
const DEFAULT_DISALLOWED_WRITE = ["external", "ephemeral"];
|
|
3
|
+
var KnowledgeAccessGuard = class {
|
|
4
|
+
disallowedWrite;
|
|
5
|
+
requireWorkflowBinding;
|
|
6
|
+
requireAgentBinding;
|
|
7
|
+
constructor(options = {}) {
|
|
8
|
+
this.disallowedWrite = new Set(options.disallowWriteCategories ?? DEFAULT_DISALLOWED_WRITE);
|
|
9
|
+
this.requireWorkflowBinding = options.requireWorkflowBinding ?? true;
|
|
10
|
+
this.requireAgentBinding = options.requireAgentBinding ?? false;
|
|
11
|
+
}
|
|
12
|
+
checkAccess(spaceBinding, context, appConfig) {
|
|
13
|
+
const { binding, space } = spaceBinding;
|
|
14
|
+
if (binding.required !== false && !this.isSpaceBound(spaceBinding, appConfig)) return {
|
|
15
|
+
allowed: false,
|
|
16
|
+
reason: `Knowledge space "${space.meta.key}" is not bound in the resolved app config.`
|
|
17
|
+
};
|
|
18
|
+
if (context.operation === "write" && this.disallowedWrite.has(space.meta.category)) return {
|
|
19
|
+
allowed: false,
|
|
20
|
+
reason: `Knowledge space "${space.meta.key}" is category "${space.meta.category}" and is read-only.`
|
|
21
|
+
};
|
|
22
|
+
if (this.requireWorkflowBinding && context.workflowName) {
|
|
23
|
+
const allowedWorkflows = binding.scope?.workflows;
|
|
24
|
+
if (allowedWorkflows && !allowedWorkflows.includes(context.workflowName)) return {
|
|
25
|
+
allowed: false,
|
|
26
|
+
reason: `Workflow "${context.workflowName}" is not authorized to access knowledge space "${space.meta.key}".`
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
if (this.requireAgentBinding && context.agentName) {
|
|
30
|
+
const allowedAgents = binding.scope?.agents;
|
|
31
|
+
if (allowedAgents && !allowedAgents.includes(context.agentName)) return {
|
|
32
|
+
allowed: false,
|
|
33
|
+
reason: `Agent "${context.agentName}" is not authorized to access knowledge space "${space.meta.key}".`
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (space.meta.category === "ephemeral") return {
|
|
37
|
+
allowed: true,
|
|
38
|
+
severity: "warning",
|
|
39
|
+
reason: `Knowledge space "${space.meta.key}" is ephemeral; results may be transient.`
|
|
40
|
+
};
|
|
41
|
+
return { allowed: true };
|
|
42
|
+
}
|
|
43
|
+
isSpaceBound(resolved, appConfig) {
|
|
44
|
+
return appConfig.knowledge.some((entry) => entry.space.meta.key === resolved.space.meta.key && (resolved.space.meta.version == null || entry.space.meta.version === resolved.space.meta.version));
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { KnowledgeAccessGuard };
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/email-threads.ts
|
|
4
|
+
const emailThreadsKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.email-threads",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "operational",
|
|
9
|
+
displayName: "Email Threads",
|
|
10
|
+
title: "Operational Email Threads",
|
|
11
|
+
description: "Indexed copies of operational email threads used for support, onboarding, and workflows.",
|
|
12
|
+
domain: "operations",
|
|
13
|
+
owners: ["platform.operations"],
|
|
14
|
+
tags: ["email", "operations"],
|
|
15
|
+
stability: StabilityEnum.Beta
|
|
16
|
+
},
|
|
17
|
+
retention: { ttlDays: 365 },
|
|
18
|
+
access: {
|
|
19
|
+
policy: {
|
|
20
|
+
name: "knowledge.access.email-threads",
|
|
21
|
+
version: 1
|
|
22
|
+
},
|
|
23
|
+
trustLevel: "medium",
|
|
24
|
+
automationWritable: true
|
|
25
|
+
},
|
|
26
|
+
indexing: {
|
|
27
|
+
embeddingModel: "mistral-embed",
|
|
28
|
+
chunkSize: 600,
|
|
29
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
30
|
+
},
|
|
31
|
+
description: "Operational email threads synchronized from Gmail to support automations and contextual assistance."
|
|
32
|
+
};
|
|
33
|
+
function registerEmailThreadsKnowledgeSpace(registry) {
|
|
34
|
+
return registry.register(emailThreadsKnowledgeSpace);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { emailThreadsKnowledgeSpace, registerEmailThreadsKnowledgeSpace };
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/financial-docs.ts
|
|
4
|
+
const financialDocsKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.financial-docs",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "canonical",
|
|
9
|
+
displayName: "Financial Documents",
|
|
10
|
+
title: "Household Financial Documents",
|
|
11
|
+
description: "Invoices, bills, and contracts powering Pocket Family Office financial automation.",
|
|
12
|
+
domain: "finance",
|
|
13
|
+
owners: ["platform.finance"],
|
|
14
|
+
tags: ["finance", "documents"],
|
|
15
|
+
stability: StabilityEnum.Beta
|
|
16
|
+
},
|
|
17
|
+
retention: { ttlDays: null },
|
|
18
|
+
access: {
|
|
19
|
+
policy: {
|
|
20
|
+
name: "knowledge.access.financial-docs",
|
|
21
|
+
version: 1
|
|
22
|
+
},
|
|
23
|
+
trustLevel: "high",
|
|
24
|
+
automationWritable: true
|
|
25
|
+
},
|
|
26
|
+
indexing: {
|
|
27
|
+
embeddingModel: "mistral-embed",
|
|
28
|
+
chunkSize: 700,
|
|
29
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
30
|
+
},
|
|
31
|
+
description: "Normalized financial documents enabling bill pay automation, reminders, and summaries."
|
|
32
|
+
};
|
|
33
|
+
function registerFinancialDocsKnowledgeSpace(registry) {
|
|
34
|
+
return registry.register(financialDocsKnowledgeSpace);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { financialDocsKnowledgeSpace, registerFinancialDocsKnowledgeSpace };
|
|
@@ -1 +1,42 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/financial-overview.ts
|
|
4
|
+
const financialOverviewKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.financial-overview",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "operational",
|
|
9
|
+
displayName: "Financial Overview Summaries",
|
|
10
|
+
title: "Derived Financial Summaries",
|
|
11
|
+
description: "Aggregated cashflow summaries, category breakdowns, and balance trends derived from open banking data.",
|
|
12
|
+
domain: "finance",
|
|
13
|
+
owners: ["platform.finance"],
|
|
14
|
+
tags: [
|
|
15
|
+
"open-banking",
|
|
16
|
+
"summaries",
|
|
17
|
+
"cashflow"
|
|
18
|
+
],
|
|
19
|
+
stability: StabilityEnum.Experimental
|
|
20
|
+
},
|
|
21
|
+
retention: { ttlDays: 180 },
|
|
22
|
+
access: {
|
|
23
|
+
policy: {
|
|
24
|
+
name: "knowledge.access.financial-overview",
|
|
25
|
+
version: 1
|
|
26
|
+
},
|
|
27
|
+
trustLevel: "medium",
|
|
28
|
+
automationWritable: true
|
|
29
|
+
},
|
|
30
|
+
indexing: {
|
|
31
|
+
embeddingModel: "mistral-embed",
|
|
32
|
+
chunkSize: 600,
|
|
33
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
34
|
+
},
|
|
35
|
+
description: "Derived knowledge space containing weekly/monthly cashflow rollups and account health summaries. Raw transactions are excluded to respect privacy guardrails."
|
|
36
|
+
};
|
|
37
|
+
function registerFinancialOverviewKnowledgeSpace(registry) {
|
|
38
|
+
return registry.register(financialOverviewKnowledgeSpace);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
export { financialOverviewKnowledgeSpace, registerFinancialOverviewKnowledgeSpace };
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace } from "./product-canon.js";
|
|
2
|
+
import { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace } from "./support-faq.js";
|
|
3
|
+
import { emailThreadsKnowledgeSpace, registerEmailThreadsKnowledgeSpace } from "./email-threads.js";
|
|
4
|
+
import { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace } from "./uploaded-docs.js";
|
|
5
|
+
import { financialDocsKnowledgeSpace, registerFinancialDocsKnowledgeSpace } from "./financial-docs.js";
|
|
6
|
+
import { financialOverviewKnowledgeSpace, registerFinancialOverviewKnowledgeSpace } from "./financial-overview.js";
|
|
7
|
+
|
|
8
|
+
export { emailThreadsKnowledgeSpace, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, productCanonKnowledgeSpace, registerEmailThreadsKnowledgeSpace, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerProductCanonKnowledgeSpace, registerSupportFaqKnowledgeSpace, registerUploadedDocsKnowledgeSpace, supportFaqKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/product-canon.ts
|
|
4
|
+
const productCanonKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.product-canon",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "canonical",
|
|
9
|
+
displayName: "Product Canon",
|
|
10
|
+
title: "Product Canon Knowledge Space",
|
|
11
|
+
description: "Authoritative product knowledge covering strategy, roadmap, and delivery canon.",
|
|
12
|
+
domain: "product",
|
|
13
|
+
owners: ["platform.product"],
|
|
14
|
+
tags: ["knowledge", "product"],
|
|
15
|
+
stability: StabilityEnum.Stable
|
|
16
|
+
},
|
|
17
|
+
retention: { ttlDays: null },
|
|
18
|
+
access: {
|
|
19
|
+
policy: {
|
|
20
|
+
name: "knowledge.access.product-canon",
|
|
21
|
+
version: 1
|
|
22
|
+
},
|
|
23
|
+
trustLevel: "high",
|
|
24
|
+
automationWritable: false
|
|
25
|
+
},
|
|
26
|
+
indexing: {
|
|
27
|
+
embeddingModel: "text-embedding-3-large",
|
|
28
|
+
chunkSize: 800,
|
|
29
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
30
|
+
},
|
|
31
|
+
description: "Single source of truth for product canon, principles, and strategic narratives."
|
|
32
|
+
};
|
|
33
|
+
function registerProductCanonKnowledgeSpace(registry) {
|
|
34
|
+
return registry.register(productCanonKnowledgeSpace);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
|
|
@@ -1 +1,41 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/support-faq.ts
|
|
4
|
+
const supportFaqKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.support-faq",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "operational",
|
|
9
|
+
displayName: "Support FAQ",
|
|
10
|
+
title: "Support & Success FAQ",
|
|
11
|
+
description: "Operational knowledge base for customer support and success.",
|
|
12
|
+
domain: "support",
|
|
13
|
+
owners: ["platform.support"],
|
|
14
|
+
tags: ["knowledge", "support"],
|
|
15
|
+
stability: StabilityEnum.Beta
|
|
16
|
+
},
|
|
17
|
+
retention: {
|
|
18
|
+
ttlDays: 365,
|
|
19
|
+
archiveAfterDays: 180
|
|
20
|
+
},
|
|
21
|
+
access: {
|
|
22
|
+
policy: {
|
|
23
|
+
name: "knowledge.access.support",
|
|
24
|
+
version: 1
|
|
25
|
+
},
|
|
26
|
+
trustLevel: "medium",
|
|
27
|
+
automationWritable: true
|
|
28
|
+
},
|
|
29
|
+
indexing: {
|
|
30
|
+
embeddingModel: "text-embedding-3-small",
|
|
31
|
+
chunkSize: 700,
|
|
32
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
33
|
+
},
|
|
34
|
+
description: "Operational FAQs, runbooks, and customer success playbooks augmented with automation updates."
|
|
35
|
+
};
|
|
36
|
+
function registerSupportFaqKnowledgeSpace(registry) {
|
|
37
|
+
return registry.register(supportFaqKnowledgeSpace);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
import{StabilityEnum
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region src/knowledge/spaces/uploaded-docs.ts
|
|
4
|
+
const uploadedDocsKnowledgeSpace = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "knowledge.uploaded-docs",
|
|
7
|
+
version: 1,
|
|
8
|
+
category: "external",
|
|
9
|
+
displayName: "Uploaded Documents",
|
|
10
|
+
title: "Uploaded Knowledge Assets",
|
|
11
|
+
description: "Documents uploaded by households, including invoices, contracts, and reference files.",
|
|
12
|
+
domain: "operations",
|
|
13
|
+
owners: ["platform.operations"],
|
|
14
|
+
tags: ["documents", "storage"],
|
|
15
|
+
stability: StabilityEnum.Beta
|
|
16
|
+
},
|
|
17
|
+
retention: { ttlDays: null },
|
|
18
|
+
access: {
|
|
19
|
+
policy: {
|
|
20
|
+
name: "knowledge.access.uploaded-docs",
|
|
21
|
+
version: 1
|
|
22
|
+
},
|
|
23
|
+
trustLevel: "medium",
|
|
24
|
+
automationWritable: true
|
|
25
|
+
},
|
|
26
|
+
indexing: {
|
|
27
|
+
embeddingModel: "mistral-embed",
|
|
28
|
+
chunkSize: 900,
|
|
29
|
+
vectorDbIntegration: "vectordb.qdrant"
|
|
30
|
+
},
|
|
31
|
+
description: "User-provided documents normalized and embedded for retrieval augmented workflows."
|
|
32
|
+
};
|
|
33
|
+
function registerUploadedDocsKnowledgeSpace(registry) {
|
|
34
|
+
return registry.register(uploadedDocsKnowledgeSpace);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
package/dist/knowledge/spec.js
CHANGED
|
@@ -1 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/knowledge/spec.ts
|
|
2
|
+
const knowledgeKey = (meta) => `${meta.key}.v${meta.version}`;
|
|
3
|
+
var KnowledgeSpaceRegistry = class {
|
|
4
|
+
items = /* @__PURE__ */ new Map();
|
|
5
|
+
register(spec) {
|
|
6
|
+
const key = knowledgeKey(spec.meta);
|
|
7
|
+
if (this.items.has(key)) throw new Error(`Duplicate KnowledgeSpaceSpec ${key}`);
|
|
8
|
+
this.items.set(key, spec);
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
list() {
|
|
12
|
+
return [...this.items.values()];
|
|
13
|
+
}
|
|
14
|
+
get(key, version) {
|
|
15
|
+
if (version != null) return this.items.get(knowledgeKey({
|
|
16
|
+
key,
|
|
17
|
+
version
|
|
18
|
+
}));
|
|
19
|
+
let latest;
|
|
20
|
+
let maxVersion = -Infinity;
|
|
21
|
+
for (const spec of this.items.values()) {
|
|
22
|
+
if (spec.meta.key !== key) continue;
|
|
23
|
+
if (spec.meta.version > maxVersion) {
|
|
24
|
+
maxVersion = spec.meta.version;
|
|
25
|
+
latest = spec;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return latest;
|
|
29
|
+
}
|
|
30
|
+
getByCategory(category) {
|
|
31
|
+
return this.list().filter((spec) => spec.meta.category === category);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
function makeKnowledgeSpaceKey(meta) {
|
|
35
|
+
return knowledgeKey(meta);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { KnowledgeSpaceRegistry, makeKnowledgeSpaceKey };
|