@lssm/lib.contracts 0.0.0-canary-20251217063201 → 0.0.0-canary-20251217073102
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.d.ts +27 -27
- package/dist/app-config/events.js +168 -1
- package/dist/app-config/index.js +8 -1
- package/dist/app-config/lifecycle-contracts.d.ts +80 -80
- 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,135 +1,135 @@
|
|
|
1
1
|
import { ContractSpec } from "./spec.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _lssm_lib_schema108 from "@lssm/lib.schema";
|
|
3
3
|
import { SchemaModel } from "@lssm/lib.schema";
|
|
4
4
|
|
|
5
5
|
//#region src/onboarding-base.d.ts
|
|
6
6
|
/** Save/update onboarding draft (auto-save during flow) */
|
|
7
7
|
declare const SaveOnboardingDraftInput: SchemaModel<{
|
|
8
8
|
data: {
|
|
9
|
-
type:
|
|
9
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
10
10
|
isOptional: false;
|
|
11
11
|
};
|
|
12
12
|
}>;
|
|
13
13
|
declare const SaveOnboardingDraftOutput: SchemaModel<{
|
|
14
14
|
id: {
|
|
15
|
-
type:
|
|
15
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
16
16
|
isOptional: false;
|
|
17
17
|
};
|
|
18
18
|
organizationId: {
|
|
19
|
-
type:
|
|
19
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
20
20
|
isOptional: false;
|
|
21
21
|
};
|
|
22
22
|
}>;
|
|
23
23
|
declare const SaveOnboardingDraftBaseSpec: ContractSpec<SchemaModel<{
|
|
24
24
|
data: {
|
|
25
|
-
type:
|
|
25
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
26
26
|
isOptional: false;
|
|
27
27
|
};
|
|
28
28
|
}>, SchemaModel<{
|
|
29
29
|
id: {
|
|
30
|
-
type:
|
|
30
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
31
31
|
isOptional: false;
|
|
32
32
|
};
|
|
33
33
|
organizationId: {
|
|
34
|
-
type:
|
|
34
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
35
35
|
isOptional: false;
|
|
36
36
|
};
|
|
37
37
|
}>, undefined>;
|
|
38
38
|
/** Get current onboarding draft (on mount/restore) */
|
|
39
39
|
declare const GetOnboardingDraftOutput: SchemaModel<{
|
|
40
40
|
id: {
|
|
41
|
-
type:
|
|
41
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
42
42
|
isOptional: true;
|
|
43
43
|
};
|
|
44
44
|
organizationId: {
|
|
45
|
-
type:
|
|
45
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
46
46
|
isOptional: true;
|
|
47
47
|
};
|
|
48
48
|
data: {
|
|
49
|
-
type:
|
|
49
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
50
50
|
isOptional: true;
|
|
51
51
|
};
|
|
52
52
|
createdAt: {
|
|
53
|
-
type:
|
|
53
|
+
type: _lssm_lib_schema108.FieldType<Date, string>;
|
|
54
54
|
isOptional: true;
|
|
55
55
|
};
|
|
56
56
|
updatedAt: {
|
|
57
|
-
type:
|
|
57
|
+
type: _lssm_lib_schema108.FieldType<Date, string>;
|
|
58
58
|
isOptional: true;
|
|
59
59
|
};
|
|
60
60
|
}>;
|
|
61
|
-
declare const GetOnboardingDraftBaseSpec: ContractSpec<
|
|
61
|
+
declare const GetOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema108.AnySchemaModel, SchemaModel<{
|
|
62
62
|
id: {
|
|
63
|
-
type:
|
|
63
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
64
64
|
isOptional: true;
|
|
65
65
|
};
|
|
66
66
|
organizationId: {
|
|
67
|
-
type:
|
|
67
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
68
68
|
isOptional: true;
|
|
69
69
|
};
|
|
70
70
|
data: {
|
|
71
|
-
type:
|
|
71
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
72
72
|
isOptional: true;
|
|
73
73
|
};
|
|
74
74
|
createdAt: {
|
|
75
|
-
type:
|
|
75
|
+
type: _lssm_lib_schema108.FieldType<Date, string>;
|
|
76
76
|
isOptional: true;
|
|
77
77
|
};
|
|
78
78
|
updatedAt: {
|
|
79
|
-
type:
|
|
79
|
+
type: _lssm_lib_schema108.FieldType<Date, string>;
|
|
80
80
|
isOptional: true;
|
|
81
81
|
};
|
|
82
82
|
}>, undefined>;
|
|
83
83
|
/** Delete onboarding draft (cleanup after completion or cancel) */
|
|
84
84
|
declare const DeleteOnboardingDraftOutput: SchemaModel<{
|
|
85
85
|
ok: {
|
|
86
|
-
type:
|
|
86
|
+
type: _lssm_lib_schema108.FieldType<boolean, boolean>;
|
|
87
87
|
isOptional: false;
|
|
88
88
|
};
|
|
89
89
|
}>;
|
|
90
|
-
declare const DeleteOnboardingDraftBaseSpec: ContractSpec<
|
|
90
|
+
declare const DeleteOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema108.AnySchemaModel, SchemaModel<{
|
|
91
91
|
ok: {
|
|
92
|
-
type:
|
|
92
|
+
type: _lssm_lib_schema108.FieldType<boolean, boolean>;
|
|
93
93
|
isOptional: false;
|
|
94
94
|
};
|
|
95
95
|
}>, undefined>;
|
|
96
96
|
/** Complete onboarding (final submit, creates entities) */
|
|
97
97
|
declare const CompleteOnboardingBaseInput: SchemaModel<{
|
|
98
98
|
data: {
|
|
99
|
-
type:
|
|
99
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
100
100
|
isOptional: false;
|
|
101
101
|
};
|
|
102
102
|
}>;
|
|
103
103
|
declare const CompleteOnboardingBaseOutput: SchemaModel<{
|
|
104
104
|
success: {
|
|
105
|
-
type:
|
|
105
|
+
type: _lssm_lib_schema108.FieldType<boolean, boolean>;
|
|
106
106
|
isOptional: false;
|
|
107
107
|
};
|
|
108
108
|
userId: {
|
|
109
|
-
type:
|
|
109
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
110
110
|
isOptional: true;
|
|
111
111
|
};
|
|
112
112
|
organizationId: {
|
|
113
|
-
type:
|
|
113
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
114
114
|
isOptional: true;
|
|
115
115
|
};
|
|
116
116
|
}>;
|
|
117
117
|
declare const CompleteOnboardingBaseSpec: ContractSpec<SchemaModel<{
|
|
118
118
|
data: {
|
|
119
|
-
type:
|
|
119
|
+
type: _lssm_lib_schema108.FieldType<unknown, unknown>;
|
|
120
120
|
isOptional: false;
|
|
121
121
|
};
|
|
122
122
|
}>, SchemaModel<{
|
|
123
123
|
success: {
|
|
124
|
-
type:
|
|
124
|
+
type: _lssm_lib_schema108.FieldType<boolean, boolean>;
|
|
125
125
|
isOptional: false;
|
|
126
126
|
};
|
|
127
127
|
userId: {
|
|
128
|
-
type:
|
|
128
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
129
129
|
isOptional: true;
|
|
130
130
|
};
|
|
131
131
|
organizationId: {
|
|
132
|
-
type:
|
|
132
|
+
type: _lssm_lib_schema108.FieldType<string, string>;
|
|
133
133
|
isOptional: true;
|
|
134
134
|
};
|
|
135
135
|
}>, undefined>;
|
package/dist/onboarding-base.js
CHANGED
|
@@ -1 +1,196 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { ScalarTypeEnum } from "./schema/dist/ScalarTypeEnum.js";
|
|
2
|
+
import { SchemaModel } from "./schema/dist/SchemaModel.js";
|
|
3
|
+
import "./schema/dist/index.js";
|
|
4
|
+
import { defineCommand, defineQuery } from "./spec.js";
|
|
5
|
+
import { OwnersEnum, StabilityEnum } from "./ownership.js";
|
|
6
|
+
|
|
7
|
+
//#region src/onboarding-base.ts
|
|
8
|
+
/**
|
|
9
|
+
* Shared base contracts for onboarding flows across verticals.
|
|
10
|
+
* These operations are reusable for any app that needs multi-step onboarding with draft persistence.
|
|
11
|
+
*/
|
|
12
|
+
/** Save/update onboarding draft (auto-save during flow) */
|
|
13
|
+
const SaveOnboardingDraftInput = new SchemaModel({
|
|
14
|
+
name: "SaveOnboardingDraftInput",
|
|
15
|
+
description: "Input for saving onboarding draft",
|
|
16
|
+
fields: { data: {
|
|
17
|
+
type: ScalarTypeEnum.JSON(),
|
|
18
|
+
isOptional: false
|
|
19
|
+
} }
|
|
20
|
+
});
|
|
21
|
+
const SaveOnboardingDraftOutput = new SchemaModel({
|
|
22
|
+
name: "SaveOnboardingDraftOutput",
|
|
23
|
+
description: "Output for saving onboarding draft",
|
|
24
|
+
fields: {
|
|
25
|
+
id: {
|
|
26
|
+
type: ScalarTypeEnum.ID(),
|
|
27
|
+
isOptional: false
|
|
28
|
+
},
|
|
29
|
+
organizationId: {
|
|
30
|
+
type: ScalarTypeEnum.ID(),
|
|
31
|
+
isOptional: false
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const SaveOnboardingDraftBaseSpec = defineCommand({
|
|
36
|
+
meta: {
|
|
37
|
+
name: "base.onboarding.saveDraft",
|
|
38
|
+
version: 1,
|
|
39
|
+
stability: StabilityEnum.Beta,
|
|
40
|
+
owners: [OwnersEnum.PlatformSigil],
|
|
41
|
+
tags: ["onboarding", "draft"],
|
|
42
|
+
description: "Save or update onboarding draft for active organization",
|
|
43
|
+
goal: "Persist onboarding progress incrementally for resumption and safety",
|
|
44
|
+
context: "Auto-saves every few seconds during onboarding; enables users to leave and resume"
|
|
45
|
+
},
|
|
46
|
+
io: {
|
|
47
|
+
input: SaveOnboardingDraftInput,
|
|
48
|
+
output: SaveOnboardingDraftOutput
|
|
49
|
+
},
|
|
50
|
+
policy: {
|
|
51
|
+
auth: "user",
|
|
52
|
+
escalate: null
|
|
53
|
+
},
|
|
54
|
+
transport: {
|
|
55
|
+
gql: { field: "saveOnboardingDraft" },
|
|
56
|
+
rest: { method: "POST" }
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
/** Get current onboarding draft (on mount/restore) */
|
|
60
|
+
const GetOnboardingDraftOutput = new SchemaModel({
|
|
61
|
+
name: "GetOnboardingDraftOutput",
|
|
62
|
+
description: "Onboarding draft payload",
|
|
63
|
+
fields: {
|
|
64
|
+
id: {
|
|
65
|
+
type: ScalarTypeEnum.ID(),
|
|
66
|
+
isOptional: true
|
|
67
|
+
},
|
|
68
|
+
organizationId: {
|
|
69
|
+
type: ScalarTypeEnum.ID(),
|
|
70
|
+
isOptional: true
|
|
71
|
+
},
|
|
72
|
+
data: {
|
|
73
|
+
type: ScalarTypeEnum.JSON(),
|
|
74
|
+
isOptional: true
|
|
75
|
+
},
|
|
76
|
+
createdAt: {
|
|
77
|
+
type: ScalarTypeEnum.DateTime(),
|
|
78
|
+
isOptional: true
|
|
79
|
+
},
|
|
80
|
+
updatedAt: {
|
|
81
|
+
type: ScalarTypeEnum.DateTime(),
|
|
82
|
+
isOptional: true
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const GetOnboardingDraftBaseSpec = defineQuery({
|
|
87
|
+
meta: {
|
|
88
|
+
name: "base.onboarding.getDraft",
|
|
89
|
+
version: 1,
|
|
90
|
+
stability: StabilityEnum.Beta,
|
|
91
|
+
owners: [OwnersEnum.PlatformSigil],
|
|
92
|
+
tags: ["onboarding", "draft"],
|
|
93
|
+
description: "Get onboarding draft for active organization",
|
|
94
|
+
goal: "Retrieve saved onboarding progress",
|
|
95
|
+
context: "Called on mount to restore in-progress onboarding"
|
|
96
|
+
},
|
|
97
|
+
io: {
|
|
98
|
+
input: null,
|
|
99
|
+
output: GetOnboardingDraftOutput
|
|
100
|
+
},
|
|
101
|
+
policy: {
|
|
102
|
+
auth: "user",
|
|
103
|
+
escalate: null
|
|
104
|
+
},
|
|
105
|
+
transport: {
|
|
106
|
+
gql: { field: "getOnboardingDraft" },
|
|
107
|
+
rest: { method: "GET" }
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
/** Delete onboarding draft (cleanup after completion or cancel) */
|
|
111
|
+
const DeleteOnboardingDraftOutput = new SchemaModel({
|
|
112
|
+
name: "DeleteOnboardingDraftOutput",
|
|
113
|
+
description: "Result of delete operation",
|
|
114
|
+
fields: { ok: {
|
|
115
|
+
type: ScalarTypeEnum.Boolean(),
|
|
116
|
+
isOptional: false
|
|
117
|
+
} }
|
|
118
|
+
});
|
|
119
|
+
const DeleteOnboardingDraftBaseSpec = defineCommand({
|
|
120
|
+
meta: {
|
|
121
|
+
name: "base.onboarding.deleteDraft",
|
|
122
|
+
version: 1,
|
|
123
|
+
stability: StabilityEnum.Beta,
|
|
124
|
+
owners: [OwnersEnum.PlatformSigil],
|
|
125
|
+
tags: ["onboarding", "draft"],
|
|
126
|
+
description: "Delete onboarding draft for active organization",
|
|
127
|
+
goal: "Clear draft after completion or if user wants to restart",
|
|
128
|
+
context: "Called after successful onboarding or explicit user reset"
|
|
129
|
+
},
|
|
130
|
+
io: {
|
|
131
|
+
input: null,
|
|
132
|
+
output: DeleteOnboardingDraftOutput
|
|
133
|
+
},
|
|
134
|
+
policy: {
|
|
135
|
+
auth: "user",
|
|
136
|
+
escalate: null
|
|
137
|
+
},
|
|
138
|
+
transport: {
|
|
139
|
+
gql: { field: "deleteOnboardingDraft" },
|
|
140
|
+
rest: { method: "POST" }
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
/** Complete onboarding (final submit, creates entities) */
|
|
144
|
+
const CompleteOnboardingBaseInput = new SchemaModel({
|
|
145
|
+
name: "CompleteOnboardingBaseInput",
|
|
146
|
+
description: "Input for completing onboarding",
|
|
147
|
+
fields: { data: {
|
|
148
|
+
type: ScalarTypeEnum.JSON(),
|
|
149
|
+
isOptional: false
|
|
150
|
+
} }
|
|
151
|
+
});
|
|
152
|
+
const CompleteOnboardingBaseOutput = new SchemaModel({
|
|
153
|
+
name: "CompleteOnboardingBaseOutput",
|
|
154
|
+
description: "Result of onboarding completion",
|
|
155
|
+
fields: {
|
|
156
|
+
success: {
|
|
157
|
+
type: ScalarTypeEnum.Boolean(),
|
|
158
|
+
isOptional: false
|
|
159
|
+
},
|
|
160
|
+
userId: {
|
|
161
|
+
type: ScalarTypeEnum.ID(),
|
|
162
|
+
isOptional: true
|
|
163
|
+
},
|
|
164
|
+
organizationId: {
|
|
165
|
+
type: ScalarTypeEnum.ID(),
|
|
166
|
+
isOptional: true
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
const CompleteOnboardingBaseSpec = defineCommand({
|
|
171
|
+
meta: {
|
|
172
|
+
name: "base.onboarding.complete",
|
|
173
|
+
version: 1,
|
|
174
|
+
stability: StabilityEnum.Beta,
|
|
175
|
+
owners: [OwnersEnum.PlatformSigil],
|
|
176
|
+
tags: ["onboarding"],
|
|
177
|
+
description: "Complete onboarding and finalize user/organization setup",
|
|
178
|
+
goal: "Transition from draft to active profile",
|
|
179
|
+
context: "Validates all required fields, creates/updates entities, marks onboarding complete"
|
|
180
|
+
},
|
|
181
|
+
io: {
|
|
182
|
+
input: CompleteOnboardingBaseInput,
|
|
183
|
+
output: CompleteOnboardingBaseOutput
|
|
184
|
+
},
|
|
185
|
+
policy: {
|
|
186
|
+
auth: "user",
|
|
187
|
+
escalate: null
|
|
188
|
+
},
|
|
189
|
+
transport: {
|
|
190
|
+
gql: { field: "completeOnboarding" },
|
|
191
|
+
rest: { method: "POST" }
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
//#endregion
|
|
196
|
+
export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
|
package/dist/openapi.js
CHANGED
|
@@ -1 +1,75 @@
|
|
|
1
|
-
import{defaultRestPath
|
|
1
|
+
import { defaultRestPath, jsonSchemaForSpec } from "./jsonschema.js";
|
|
2
|
+
|
|
3
|
+
//#region src/openapi.ts
|
|
4
|
+
function toOperationId(name, version) {
|
|
5
|
+
return `${name.replace(/\./g, "_")}_v${version}`;
|
|
6
|
+
}
|
|
7
|
+
function toSchemaName(prefix, name, version) {
|
|
8
|
+
return `${prefix}_${toOperationId(name, version)}`;
|
|
9
|
+
}
|
|
10
|
+
function toHttpMethod(kind, override) {
|
|
11
|
+
return (override ?? (kind === "query" ? "GET" : "POST")).toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
function toRestPath(spec) {
|
|
14
|
+
const path = spec.transport?.rest?.path ?? defaultRestPath(spec.meta.name, spec.meta.version);
|
|
15
|
+
return path.startsWith("/") ? path : `/${path}`;
|
|
16
|
+
}
|
|
17
|
+
function openApiForRegistry(registry, options = {}) {
|
|
18
|
+
const specs = registry.listSpecs().filter((s) => s.meta.kind === "command" || s.meta.kind === "query").slice().sort((a, b) => {
|
|
19
|
+
const byName = a.meta.name.localeCompare(b.meta.name);
|
|
20
|
+
return byName !== 0 ? byName : a.meta.version - b.meta.version;
|
|
21
|
+
});
|
|
22
|
+
const doc = {
|
|
23
|
+
openapi: "3.1.0",
|
|
24
|
+
info: {
|
|
25
|
+
title: options.title ?? "ContractSpec API",
|
|
26
|
+
version: options.version ?? "0.0.0",
|
|
27
|
+
...options.description ? { description: options.description } : {}
|
|
28
|
+
},
|
|
29
|
+
...options.servers ? { servers: options.servers } : {},
|
|
30
|
+
paths: {},
|
|
31
|
+
components: { schemas: {} }
|
|
32
|
+
};
|
|
33
|
+
for (const spec of specs) {
|
|
34
|
+
const schema = jsonSchemaForSpec(spec);
|
|
35
|
+
const method = toHttpMethod(spec.meta.kind, spec.transport?.rest?.method);
|
|
36
|
+
const path = toRestPath(spec);
|
|
37
|
+
const operationId = toOperationId(spec.meta.name, spec.meta.version);
|
|
38
|
+
const pathItem = doc.paths[path] ??= {};
|
|
39
|
+
const op = {
|
|
40
|
+
operationId,
|
|
41
|
+
summary: spec.meta.description ?? spec.meta.name,
|
|
42
|
+
description: spec.meta.description,
|
|
43
|
+
tags: spec.meta.tags ?? [],
|
|
44
|
+
"x-contractspec": {
|
|
45
|
+
name: spec.meta.name,
|
|
46
|
+
version: spec.meta.version,
|
|
47
|
+
kind: spec.meta.kind
|
|
48
|
+
},
|
|
49
|
+
responses: {}
|
|
50
|
+
};
|
|
51
|
+
if (schema.input) {
|
|
52
|
+
const inputName = toSchemaName("Input", spec.meta.name, spec.meta.version);
|
|
53
|
+
doc.components.schemas[inputName] = schema.input;
|
|
54
|
+
op["requestBody"] = {
|
|
55
|
+
required: true,
|
|
56
|
+
content: { "application/json": { schema: { $ref: `#/components/schemas/${inputName}` } } }
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const responses = {};
|
|
60
|
+
if (schema.output) {
|
|
61
|
+
const outputName = toSchemaName("Output", spec.meta.name, spec.meta.version);
|
|
62
|
+
doc.components.schemas[outputName] = schema.output;
|
|
63
|
+
responses["200"] = {
|
|
64
|
+
description: "OK",
|
|
65
|
+
content: { "application/json": { schema: { $ref: `#/components/schemas/${outputName}` } } }
|
|
66
|
+
};
|
|
67
|
+
} else responses["200"] = { description: "OK" };
|
|
68
|
+
op["responses"] = responses;
|
|
69
|
+
pathItem[method] = op;
|
|
70
|
+
}
|
|
71
|
+
return doc;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
export { openApiForRegistry };
|
|
@@ -1,109 +1,22 @@
|
|
|
1
|
-
import{registerDocBlocks
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| --- | --- |
|
|
24
|
-
| \`clientId\` | Powens OAuth client identifier |
|
|
25
|
-
| \`clientSecret\` | Powens OAuth client secret |
|
|
26
|
-
| \`apiKey?\` | Optional supplemental Powens API key |
|
|
27
|
-
| \`webhookSecret?\` | Optional webhook signing secret |
|
|
28
|
-
|
|
29
|
-
## Canonical Data Models
|
|
30
|
-
|
|
31
|
-
Canonical schemas live in \`@lssm/lib.contracts/integrations/openbanking/models\`:
|
|
32
|
-
|
|
33
|
-
- \`BankAccountRecord\` – account metadata (institution, IBAN/BIC, masked numbers, balances, sync timestamps)
|
|
34
|
-
- \`BankTransactionRecord\` – transaction ledger (amounts, categories, counterparty, status)
|
|
35
|
-
- \`AccountBalanceRecord\` – balance snapshots per account and balance type
|
|
36
|
-
|
|
37
|
-
These schemas power the vertical contracts and workflows, ensuring downstream features never use raw Powens payloads directly.
|
|
38
|
-
|
|
39
|
-
## Provider Implementation
|
|
40
|
-
|
|
41
|
-
\`PowensOpenBankingProvider\` wraps \`PowensClient\` which handles OAuth token management, request retries, and error mapping. The provider maps Powens payloads to the canonical interfaces exported from \`integrations/providers/openbanking\`.
|
|
42
|
-
|
|
43
|
-
Factory support lives in \`IntegrationProviderFactory.createOpenBankingProvider\`, which validates configuration, loads BYOK secrets, and instantiates the provider.
|
|
44
|
-
|
|
45
|
-
## Contracts
|
|
46
|
-
|
|
47
|
-
Command/query contracts exist under \`integrations/openbanking/contracts\`:
|
|
48
|
-
|
|
49
|
-
- \`openbanking.accounts.sync\` & \`openbanking.accounts.list\`
|
|
50
|
-
- \`openbanking.transactions.sync\` & \`openbanking.transactions.list\`
|
|
51
|
-
- \`openbanking.balances.refresh\` & \`openbanking.balances.get\`
|
|
52
|
-
|
|
53
|
-
The Pocket Family Office bundle also exposes \`pfo.openbanking.generate-overview\`, which aggregates balances and transactions into a derived knowledge document.
|
|
54
|
-
|
|
55
|
-
## Workflows
|
|
56
|
-
|
|
57
|
-
New workflow specs (all requiring the \`primaryOpenBanking\` slot) orchestrate the sync flows:
|
|
58
|
-
|
|
59
|
-
- \`pfo.workflow.sync-openbanking-accounts\`
|
|
60
|
-
- \`pfo.workflow.sync-openbanking-transactions\`
|
|
61
|
-
- \`pfo.workflow.refresh-openbanking-balances\`
|
|
62
|
-
- \`pfo.workflow.generate-openbanking-overview\`
|
|
63
|
-
|
|
64
|
-
Each workflow runs against the Powens provider, persists canonical records, and emits telemetry.
|
|
65
|
-
|
|
66
|
-
## Knowledge & LLM Exposure
|
|
67
|
-
|
|
68
|
-
Raw Powens payloads are never stored in knowledge spaces. Instead, \`knowledge.financial-overview\` captures derived summaries (cashflow, category breakdowns, balance trends) produced by \`pfo.openbanking.generate-overview\`. The space is \`operational\` category with 180-day retention and automation write access.
|
|
69
|
-
|
|
70
|
-
When exposing data to LLMs or analytics:
|
|
71
|
-
|
|
72
|
-
- Use derived summaries only.
|
|
73
|
-
- Redact PII fields using \`redactOpenBankingTelemetryPayload\`.
|
|
74
|
-
- Never emit IBANs, unmasked account numbers, or counterparty detail in telemetry/logs.
|
|
75
|
-
|
|
76
|
-
## Telemetry
|
|
77
|
-
|
|
78
|
-
Telemetry constants live in \`integrations/openbanking/telemetry\`. Key events:
|
|
79
|
-
|
|
80
|
-
- \`openbanking.accounts.synced\`
|
|
81
|
-
- \`openbanking.transactions.synced\`
|
|
82
|
-
- \`openbanking.balances.refreshed\`
|
|
83
|
-
- \`openbanking.overview.generated\`
|
|
84
|
-
|
|
85
|
-
All events require tenant/app/blueprint/config metadata, and sensitive properties are flagged to avoid accidental leakage.
|
|
86
|
-
|
|
87
|
-
## Guardrails
|
|
88
|
-
|
|
89
|
-
\`ensurePrimaryOpenBankingIntegration\` verifies \`primaryOpenBanking\` is bound and healthy before workflows proceed. Runtime pre-flight checks already block workflows when the connection is disconnected or in error status.
|
|
90
|
-
|
|
91
|
-
## Blueprint & Tenant Defaults
|
|
92
|
-
|
|
93
|
-
\`pocketFamilyOfficeBlueprint\` now includes:
|
|
94
|
-
|
|
95
|
-
- \`primaryOpenBanking\` slot (required, BYOK)
|
|
96
|
-
- \`openbanking.*.read\` capabilities enabled by default
|
|
97
|
-
- Workflow bindings for the new sync flows
|
|
98
|
-
|
|
99
|
-
Sample tenant bindings (\`tenant.sample.ts\`) reference \`conn-powens-primary\` and bind the new knowledge space.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
Follow this doc when extending open banking support (e.g., adding payment initiation, additional providers, or expanded analytics) to keep the integration consistent and audited.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
`}];e(t);export{t as tech_contracts_openbanking_DocBlocks};
|
|
1
|
+
import { registerDocBlocks } from "../../docs/registry.js";
|
|
2
|
+
import "../../registry.js";
|
|
3
|
+
|
|
4
|
+
//#region src/openbanking/docs/openbanking.docblock.ts
|
|
5
|
+
const tech_contracts_openbanking_DocBlocks = [{
|
|
6
|
+
id: "docs.tech.contracts.openbanking",
|
|
7
|
+
title: "Open Banking (Powens) Overview",
|
|
8
|
+
summary: "The Pocket Family Office vertical now supports read-only open banking capabilities powered by Powens. This doc summarises the contract surfaces, canonical data models, workflows, telemetry, and guardrails introduced to make Powens a first-class integration.",
|
|
9
|
+
kind: "reference",
|
|
10
|
+
visibility: "public",
|
|
11
|
+
route: "/docs/tech/contracts/openbanking",
|
|
12
|
+
tags: [
|
|
13
|
+
"tech",
|
|
14
|
+
"contracts",
|
|
15
|
+
"openbanking"
|
|
16
|
+
],
|
|
17
|
+
body: "# Open Banking (Powens) Overview\n\nThe Pocket Family Office vertical now supports read-only open banking capabilities powered by Powens. This doc summarises the contract surfaces, canonical data models, workflows, telemetry, and guardrails introduced to make Powens a first-class integration.\n\n## Integration Spec\n\nPowens is registered under `openbanking.powens` with category `open-banking` and currently supports the BYOK ownership mode. The spec exposes three read-only capabilities:\n\n- `openbanking.accounts.read`\n- `openbanking.transactions.read`\n- `openbanking.balances.read`\n\nConfiguration and secrets are separated:\n\n| Config Field | Description |\n| --- | --- |\n| `environment` | Powens environment (`sandbox` \\| `production`) |\n| `baseUrl?` | Optional API base URL override |\n| `region?` | Optional Powens region identifier |\n| `pollingIntervalMs?` | Optional custom sync cadence |\n\n| Secret Field | Description |\n| --- | --- |\n| `clientId` | Powens OAuth client identifier |\n| `clientSecret` | Powens OAuth client secret |\n| `apiKey?` | Optional supplemental Powens API key |\n| `webhookSecret?` | Optional webhook signing secret |\n\n## Canonical Data Models\n\nCanonical schemas live in `@lssm/lib.contracts/integrations/openbanking/models`:\n\n- `BankAccountRecord` – account metadata (institution, IBAN/BIC, masked numbers, balances, sync timestamps)\n- `BankTransactionRecord` – transaction ledger (amounts, categories, counterparty, status)\n- `AccountBalanceRecord` – balance snapshots per account and balance type\n\nThese schemas power the vertical contracts and workflows, ensuring downstream features never use raw Powens payloads directly.\n\n## Provider Implementation\n\n`PowensOpenBankingProvider` wraps `PowensClient` which handles OAuth token management, request retries, and error mapping. The provider maps Powens payloads to the canonical interfaces exported from `integrations/providers/openbanking`.\n\nFactory support lives in `IntegrationProviderFactory.createOpenBankingProvider`, which validates configuration, loads BYOK secrets, and instantiates the provider.\n\n## Contracts\n\nCommand/query contracts exist under `integrations/openbanking/contracts`:\n\n- `openbanking.accounts.sync` & `openbanking.accounts.list`\n- `openbanking.transactions.sync` & `openbanking.transactions.list`\n- `openbanking.balances.refresh` & `openbanking.balances.get`\n\nThe Pocket Family Office bundle also exposes `pfo.openbanking.generate-overview`, which aggregates balances and transactions into a derived knowledge document.\n\n## Workflows\n\nNew workflow specs (all requiring the `primaryOpenBanking` slot) orchestrate the sync flows:\n\n- `pfo.workflow.sync-openbanking-accounts`\n- `pfo.workflow.sync-openbanking-transactions`\n- `pfo.workflow.refresh-openbanking-balances`\n- `pfo.workflow.generate-openbanking-overview`\n\nEach workflow runs against the Powens provider, persists canonical records, and emits telemetry.\n\n## Knowledge & LLM Exposure\n\nRaw Powens payloads are never stored in knowledge spaces. Instead, `knowledge.financial-overview` captures derived summaries (cashflow, category breakdowns, balance trends) produced by `pfo.openbanking.generate-overview`. The space is `operational` category with 180-day retention and automation write access.\n\nWhen exposing data to LLMs or analytics:\n\n- Use derived summaries only.\n- Redact PII fields using `redactOpenBankingTelemetryPayload`.\n- Never emit IBANs, unmasked account numbers, or counterparty detail in telemetry/logs.\n\n## Telemetry\n\nTelemetry constants live in `integrations/openbanking/telemetry`. Key events:\n\n- `openbanking.accounts.synced`\n- `openbanking.transactions.synced`\n- `openbanking.balances.refreshed`\n- `openbanking.overview.generated`\n\nAll events require tenant/app/blueprint/config metadata, and sensitive properties are flagged to avoid accidental leakage.\n\n## Guardrails\n\n`ensurePrimaryOpenBankingIntegration` verifies `primaryOpenBanking` is bound and healthy before workflows proceed. Runtime pre-flight checks already block workflows when the connection is disconnected or in error status.\n\n## Blueprint & Tenant Defaults\n\n`pocketFamilyOfficeBlueprint` now includes:\n\n- `primaryOpenBanking` slot (required, BYOK)\n- `openbanking.*.read` capabilities enabled by default\n- Workflow bindings for the new sync flows\n\nSample tenant bindings (`tenant.sample.ts`) reference `conn-powens-primary` and bind the new knowledge space.\n\n---\n\nFollow this doc when extending open banking support (e.g., adding payment initiation, additional providers, or expanded analytics) to keep the integration consistent and audited.\n\n\n\n\n\n"
|
|
18
|
+
}];
|
|
19
|
+
registerDocBlocks(tech_contracts_openbanking_DocBlocks);
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
export { tech_contracts_openbanking_DocBlocks };
|
package/dist/ownership.js
CHANGED
|
@@ -1 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/ownership.ts
|
|
2
|
+
const StabilityEnum = {
|
|
3
|
+
Idea: "idea",
|
|
4
|
+
InCreation: "in_creation",
|
|
5
|
+
Experimental: "experimental",
|
|
6
|
+
Beta: "beta",
|
|
7
|
+
Stable: "stable",
|
|
8
|
+
Deprecated: "deprecated"
|
|
9
|
+
};
|
|
10
|
+
const OwnersEnum = {
|
|
11
|
+
ProductColiving: "product.coliving",
|
|
12
|
+
ProductStrit: "product.strit",
|
|
13
|
+
ProductArtisanos: "product.artisanos",
|
|
14
|
+
PlatformSigil: "platform.sigil",
|
|
15
|
+
PlatformMarketplace: "platform.marketplace",
|
|
16
|
+
PlatformContent: "platform.content",
|
|
17
|
+
PlatformFeatureFlags: "platform.featureflags"
|
|
18
|
+
};
|
|
19
|
+
const Owners = OwnersEnum;
|
|
20
|
+
const TagsEnum = {
|
|
21
|
+
Spots: "spots",
|
|
22
|
+
Collectivity: "collectivity",
|
|
23
|
+
Marketplace: "marketplace",
|
|
24
|
+
Sellers: "sellers",
|
|
25
|
+
Auth: "auth",
|
|
26
|
+
Login: "login",
|
|
27
|
+
Signup: "signup",
|
|
28
|
+
Guide: "guide",
|
|
29
|
+
Docs: "docs",
|
|
30
|
+
I18n: "i18n",
|
|
31
|
+
AtomicPages: "atomic:pages",
|
|
32
|
+
Incident: "incident",
|
|
33
|
+
Hygiene: "hygiene",
|
|
34
|
+
WeeklyPulse: "weekly_pulse",
|
|
35
|
+
WebAuth: "webauth"
|
|
36
|
+
};
|
|
37
|
+
const Tags = TagsEnum;
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
export { Owners, OwnersEnum, StabilityEnum, Tags, TagsEnum };
|