@lssm/example.service-business-os 0.0.0-canary-20251217083314 → 1.41.1

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.
Files changed (174) hide show
  1. package/dist/client/client.contracts.js +1 -33
  2. package/dist/client/client.schema.js +1 -78
  3. package/dist/client/index.js +1 -4
  4. package/dist/contracts/index.js +1 -17
  5. package/dist/docs/index.js +1 -1
  6. package/dist/docs/service-business-os.docblock.js +5 -62
  7. package/dist/entities/index.js +1 -289
  8. package/dist/events.js +1 -178
  9. package/dist/example.js +1 -45
  10. package/dist/handlers/index.js +1 -5
  11. package/dist/index.js +1 -17
  12. package/dist/invoice/index.js +1 -4
  13. package/dist/invoice/invoice.contracts.js +1 -33
  14. package/dist/invoice/invoice.schema.js +1 -78
  15. package/dist/job/index.js +1 -4
  16. package/dist/job/job.contracts.js +1 -119
  17. package/dist/job/job.schema.js +1 -99
  18. package/dist/payment/index.js +1 -4
  19. package/dist/payment/payment.contracts.js +1 -33
  20. package/dist/payment/payment.schema.js +1 -74
  21. package/dist/presentations/index.js +1 -17
  22. package/dist/presentations.js +1 -148
  23. package/dist/quote/index.js +1 -4
  24. package/dist/quote/quote.contracts.js +1 -57
  25. package/dist/quote/quote.schema.js +1 -115
  26. package/dist/service.feature.js +1 -162
  27. package/package.json +36 -36
  28. package/dist/client/client.contracts.d.ts +0 -64
  29. package/dist/client/client.schema.d.ts +0 -67
  30. package/dist/client/index.d.ts +0 -3
  31. package/dist/contracts/index.d.ts +0 -11
  32. package/dist/docs/index.d.ts +0 -1
  33. package/dist/docs/service-business-os.docblock.d.ts +0 -1
  34. package/dist/entities/index.d.ts +0 -167
  35. package/dist/events.d.ts +0 -336
  36. package/dist/example.d.ts +0 -36
  37. package/dist/handlers/index.d.ts +0 -12
  38. package/dist/index.d.ts +0 -11
  39. package/dist/invoice/index.d.ts +0 -3
  40. package/dist/invoice/invoice.contracts.d.ts +0 -64
  41. package/dist/invoice/invoice.schema.d.ts +0 -67
  42. package/dist/job/index.d.ts +0 -3
  43. package/dist/job/job.contracts.d.ts +0 -237
  44. package/dist/job/job.schema.d.ts +0 -84
  45. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  46. package/dist/libs/contracts/dist/client/index.js +0 -5
  47. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  48. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  49. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  50. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  51. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  52. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  53. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  54. package/dist/libs/contracts/dist/docs/index.js +0 -29
  55. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  56. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  57. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  58. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  59. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  60. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  61. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  62. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  63. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  64. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  65. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  66. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  67. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  68. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  69. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  70. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  71. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  72. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  73. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  74. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  75. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  76. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  77. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  78. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  79. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  80. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  81. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  82. package/dist/libs/contracts/dist/events.js +0 -10
  83. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  84. package/dist/libs/contracts/dist/index.js +0 -71
  85. package/dist/libs/contracts/dist/install.js +0 -2
  86. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  87. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  88. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  89. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  90. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  91. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  92. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  93. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  94. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  95. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  96. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  97. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  98. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  99. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  100. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  101. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  102. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  103. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  104. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  105. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  106. package/dist/libs/contracts/dist/jsonschema.js +0 -1
  107. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  108. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  109. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  110. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  111. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  112. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  113. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  114. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  115. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  116. package/dist/libs/contracts/dist/llm/exporters.js +0 -19
  117. package/dist/libs/contracts/dist/llm/index.js +0 -2
  118. package/dist/libs/contracts/dist/llm/prompts.js +0 -1
  119. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  120. package/dist/libs/contracts/dist/openapi.js +0 -1
  121. package/dist/libs/contracts/dist/ownership.js +0 -21
  122. package/dist/libs/contracts/dist/presentations.js +0 -1
  123. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  124. package/dist/libs/contracts/dist/prompt.js +0 -1
  125. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  126. package/dist/libs/contracts/dist/regenerator/index.js +0 -1
  127. package/dist/libs/contracts/dist/regenerator/service.js +0 -6
  128. package/dist/libs/contracts/dist/registry.js +0 -2
  129. package/dist/libs/contracts/dist/resources.js +0 -1
  130. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  131. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  132. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  133. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  134. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  135. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  136. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  137. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  138. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  139. package/dist/libs/contracts/dist/server/index.js +0 -8
  140. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  141. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  142. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  143. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  144. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  145. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  146. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  147. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  148. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  149. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  150. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  151. package/dist/libs/contracts/dist/spec.js +0 -34
  152. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  153. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  154. package/dist/libs/contracts/dist/tests/index.js +0 -1
  155. package/dist/libs/contracts/dist/tests/runner.js +0 -2
  156. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  157. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  158. package/dist/libs/schema/dist/EnumType.js +0 -2
  159. package/dist/libs/schema/dist/FieldType.js +0 -49
  160. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  161. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  162. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  163. package/dist/libs/schema/dist/entity/index.js +0 -2
  164. package/dist/libs/schema/dist/entity/types.js +0 -1
  165. package/dist/libs/schema/dist/index.js +0 -6
  166. package/dist/payment/index.d.ts +0 -3
  167. package/dist/payment/payment.contracts.d.ts +0 -60
  168. package/dist/payment/payment.schema.d.ts +0 -63
  169. package/dist/presentations/index.d.ts +0 -8
  170. package/dist/presentations.d.ts +0 -12
  171. package/dist/quote/index.d.ts +0 -3
  172. package/dist/quote/quote.contracts.d.ts +0 -134
  173. package/dist/quote/quote.schema.d.ts +0 -100
  174. package/dist/service.feature.d.ts +0 -6
@@ -1,159 +0,0 @@
1
- import { SchemaModel } from "../../../schema/dist/SchemaModel.js";
2
- import { ScalarTypeEnum } from "../../../schema/dist/ScalarTypeEnum.js";
3
- import "../../../schema/dist/index.js";
4
- import { defineCommand, defineQuery } from "../../../spec.js";
5
- import { AccountBalanceRecord } from "../models.js";
6
- import { OPENBANKING_TELEMETRY_EVENTS } from "../telemetry.js";
7
-
8
- //#region ../../libs/contracts/dist/integrations/openbanking/contracts/balances.js
9
- const OpenBankingGetBalancesInput = new SchemaModel({
10
- name: "OpenBankingGetBalancesInput",
11
- description: "Parameters for retrieving bank account balances from the canonical ledger.",
12
- fields: {
13
- tenantId: {
14
- type: ScalarTypeEnum.ID(),
15
- isOptional: false
16
- },
17
- accountId: {
18
- type: ScalarTypeEnum.ID(),
19
- isOptional: false
20
- },
21
- balanceTypes: {
22
- type: ScalarTypeEnum.String_unsecure(),
23
- isArray: true,
24
- isOptional: true
25
- }
26
- }
27
- });
28
- const OpenBankingGetBalancesOutput = new SchemaModel({
29
- name: "OpenBankingGetBalancesOutput",
30
- description: "Canonical balances for a bank account.",
31
- fields: {
32
- balances: {
33
- type: AccountBalanceRecord,
34
- isOptional: false,
35
- isArray: true
36
- },
37
- asOf: {
38
- type: ScalarTypeEnum.DateTime(),
39
- isOptional: true
40
- }
41
- }
42
- });
43
- const OpenBankingRefreshBalancesInput = new SchemaModel({
44
- name: "OpenBankingRefreshBalancesInput",
45
- description: "Command payload to refresh balances for a bank account via the open banking provider.",
46
- fields: {
47
- tenantId: {
48
- type: ScalarTypeEnum.ID(),
49
- isOptional: false
50
- },
51
- accountId: {
52
- type: ScalarTypeEnum.ID(),
53
- isOptional: false
54
- },
55
- connectionId: {
56
- type: ScalarTypeEnum.ID(),
57
- isOptional: true
58
- },
59
- balanceTypes: {
60
- type: ScalarTypeEnum.String_unsecure(),
61
- isArray: true,
62
- isOptional: true
63
- },
64
- forceRefresh: {
65
- type: ScalarTypeEnum.Boolean(),
66
- isOptional: true
67
- }
68
- }
69
- });
70
- const OpenBankingRefreshBalancesOutput = new SchemaModel({
71
- name: "OpenBankingRefreshBalancesOutput",
72
- description: "Result of a balance refresh against the open banking provider.",
73
- fields: {
74
- balances: {
75
- type: AccountBalanceRecord,
76
- isOptional: false,
77
- isArray: true
78
- },
79
- refreshedAt: {
80
- type: ScalarTypeEnum.DateTime(),
81
- isOptional: false
82
- },
83
- errors: {
84
- type: ScalarTypeEnum.String_unsecure(),
85
- isArray: true,
86
- isOptional: true
87
- }
88
- }
89
- });
90
- const OpenBankingGetBalances = defineQuery({
91
- meta: {
92
- name: "openbanking.balances.get",
93
- version: 1,
94
- description: "Retrieve the latest cached balances for a bank account.",
95
- goal: "Expose current and available balances required by dashboards and analytics.",
96
- context: "Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.",
97
- owners: ["platform.finance"],
98
- tags: [
99
- "open-banking",
100
- "powens",
101
- "balances"
102
- ],
103
- stability: "experimental"
104
- },
105
- io: {
106
- input: OpenBankingGetBalancesInput,
107
- output: OpenBankingGetBalancesOutput
108
- },
109
- policy: { auth: "user" }
110
- });
111
- const OpenBankingRefreshBalances = defineCommand({
112
- meta: {
113
- name: "openbanking.balances.refresh",
114
- version: 1,
115
- description: "Refresh balances for a bank account via the configured open banking provider.",
116
- goal: "Ensure canonical balance records reflect the latest values from Powens.",
117
- context: "Triggered by scheduled workflows before generating summaries or forecasting cashflow.",
118
- owners: ["platform.finance"],
119
- tags: [
120
- "open-banking",
121
- "powens",
122
- "balances"
123
- ],
124
- stability: "experimental"
125
- },
126
- io: {
127
- input: OpenBankingRefreshBalancesInput,
128
- output: OpenBankingRefreshBalancesOutput
129
- },
130
- policy: { auth: "admin" },
131
- telemetry: {
132
- success: {
133
- event: { name: OPENBANKING_TELEMETRY_EVENTS.balancesRefreshed },
134
- properties: ({ input, output }) => {
135
- const payload = input;
136
- const result = output;
137
- return {
138
- tenantId: payload?.tenantId,
139
- accountId: payload?.accountId,
140
- refreshedAt: result?.refreshedAt,
141
- balanceCount: Array.isArray(result?.balances) ? result?.balances.length : void 0
142
- };
143
- }
144
- },
145
- failure: {
146
- event: { name: OPENBANKING_TELEMETRY_EVENTS.balancesRefreshFailed },
147
- properties: ({ input, error }) => {
148
- const payload = input;
149
- return {
150
- tenantId: payload?.tenantId,
151
- accountId: payload?.accountId,
152
- error: error instanceof Error ? error.message : String(error ?? "unknown")
153
- };
154
- }
155
- }
156
- }
157
- });
158
-
159
- //#endregion
@@ -1,3 +0,0 @@
1
- import "./accounts.js";
2
- import "./transactions.js";
3
- import "./balances.js";
@@ -1,210 +0,0 @@
1
- import { SchemaModel } from "../../../schema/dist/SchemaModel.js";
2
- import { ScalarTypeEnum } from "../../../schema/dist/ScalarTypeEnum.js";
3
- import "../../../schema/dist/index.js";
4
- import { defineCommand, defineQuery } from "../../../spec.js";
5
- import { BankTransactionRecord } from "../models.js";
6
- import { OPENBANKING_TELEMETRY_EVENTS } from "../telemetry.js";
7
-
8
- //#region ../../libs/contracts/dist/integrations/openbanking/contracts/transactions.js
9
- const OpenBankingListTransactionsInput = new SchemaModel({
10
- name: "OpenBankingListTransactionsInput",
11
- description: "Parameters for listing bank transactions from the canonical ledger.",
12
- fields: {
13
- tenantId: {
14
- type: ScalarTypeEnum.ID(),
15
- isOptional: false
16
- },
17
- accountId: {
18
- type: ScalarTypeEnum.ID(),
19
- isOptional: false
20
- },
21
- from: {
22
- type: ScalarTypeEnum.DateTime(),
23
- isOptional: true
24
- },
25
- to: {
26
- type: ScalarTypeEnum.DateTime(),
27
- isOptional: true
28
- },
29
- cursor: {
30
- type: ScalarTypeEnum.String_unsecure(),
31
- isOptional: true
32
- },
33
- pageSize: {
34
- type: ScalarTypeEnum.Int_unsecure(),
35
- isOptional: true
36
- },
37
- direction: {
38
- type: ScalarTypeEnum.String_unsecure(),
39
- isOptional: true
40
- },
41
- minimumAmount: {
42
- type: ScalarTypeEnum.Float_unsecure(),
43
- isOptional: true
44
- },
45
- maximumAmount: {
46
- type: ScalarTypeEnum.Float_unsecure(),
47
- isOptional: true
48
- },
49
- category: {
50
- type: ScalarTypeEnum.String_unsecure(),
51
- isOptional: true
52
- }
53
- }
54
- });
55
- const OpenBankingListTransactionsOutput = new SchemaModel({
56
- name: "OpenBankingListTransactionsOutput",
57
- description: "Paginated list of transactions for a bank account.",
58
- fields: {
59
- transactions: {
60
- type: BankTransactionRecord,
61
- isOptional: false,
62
- isArray: true
63
- },
64
- nextCursor: {
65
- type: ScalarTypeEnum.String_unsecure(),
66
- isOptional: true
67
- },
68
- hasMore: {
69
- type: ScalarTypeEnum.Boolean(),
70
- isOptional: true
71
- }
72
- }
73
- });
74
- const OpenBankingSyncTransactionsInput = new SchemaModel({
75
- name: "OpenBankingSyncTransactionsInput",
76
- description: "Command payload to synchronise transactions from the open banking provider into the canonical ledger.",
77
- fields: {
78
- tenantId: {
79
- type: ScalarTypeEnum.ID(),
80
- isOptional: false
81
- },
82
- accountId: {
83
- type: ScalarTypeEnum.ID(),
84
- isOptional: false
85
- },
86
- from: {
87
- type: ScalarTypeEnum.DateTime(),
88
- isOptional: true
89
- },
90
- to: {
91
- type: ScalarTypeEnum.DateTime(),
92
- isOptional: true
93
- },
94
- connectionId: {
95
- type: ScalarTypeEnum.ID(),
96
- isOptional: true
97
- },
98
- includePending: {
99
- type: ScalarTypeEnum.Boolean(),
100
- isOptional: true
101
- },
102
- backfillDays: {
103
- type: ScalarTypeEnum.Int_unsecure(),
104
- isOptional: true
105
- }
106
- }
107
- });
108
- const OpenBankingSyncTransactionsOutput = new SchemaModel({
109
- name: "OpenBankingSyncTransactionsOutput",
110
- description: "Result of a transaction synchronisation run.",
111
- fields: {
112
- synced: {
113
- type: ScalarTypeEnum.Int_unsecure(),
114
- isOptional: false
115
- },
116
- failed: {
117
- type: ScalarTypeEnum.Int_unsecure(),
118
- isOptional: false
119
- },
120
- earliestSyncedAt: {
121
- type: ScalarTypeEnum.DateTime(),
122
- isOptional: true
123
- },
124
- latestSyncedAt: {
125
- type: ScalarTypeEnum.DateTime(),
126
- isOptional: true
127
- },
128
- nextSinceToken: {
129
- type: ScalarTypeEnum.String_unsecure(),
130
- isOptional: true
131
- },
132
- errors: {
133
- type: ScalarTypeEnum.String_unsecure(),
134
- isArray: true,
135
- isOptional: true
136
- }
137
- }
138
- });
139
- const OpenBankingListTransactions = defineQuery({
140
- meta: {
141
- name: "openbanking.transactions.list",
142
- version: 1,
143
- description: "List bank transactions that have been normalised into the canonical ledger.",
144
- goal: "Allow downstream analytics and UI surfaces to page through canonical bank transactions.",
145
- context: "Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.",
146
- owners: ["platform.finance"],
147
- tags: [
148
- "open-banking",
149
- "powens",
150
- "transactions"
151
- ],
152
- stability: "experimental"
153
- },
154
- io: {
155
- input: OpenBankingListTransactionsInput,
156
- output: OpenBankingListTransactionsOutput
157
- },
158
- policy: { auth: "user" }
159
- });
160
- const OpenBankingSyncTransactions = defineCommand({
161
- meta: {
162
- name: "openbanking.transactions.sync",
163
- version: 1,
164
- description: "Synchronise transactions for a bank account by calling the configured open banking provider.",
165
- goal: "Ensure the canonical transaction ledger stays aligned with the external provider.",
166
- context: "Triggered by scheduled workflows or on-demand actions when activity is expected on an account.",
167
- owners: ["platform.finance"],
168
- tags: [
169
- "open-banking",
170
- "powens",
171
- "transactions"
172
- ],
173
- stability: "experimental"
174
- },
175
- io: {
176
- input: OpenBankingSyncTransactionsInput,
177
- output: OpenBankingSyncTransactionsOutput
178
- },
179
- policy: { auth: "admin" },
180
- telemetry: {
181
- success: {
182
- event: { name: OPENBANKING_TELEMETRY_EVENTS.transactionsSynced },
183
- properties: ({ input, output }) => {
184
- const payload = input;
185
- const result = output;
186
- return {
187
- tenantId: payload?.tenantId,
188
- accountId: payload?.accountId,
189
- synced: result?.synced,
190
- failed: result?.failed,
191
- earliestSyncedAt: result?.earliestSyncedAt,
192
- latestSyncedAt: result?.latestSyncedAt
193
- };
194
- }
195
- },
196
- failure: {
197
- event: { name: OPENBANKING_TELEMETRY_EVENTS.transactionsSyncFailed },
198
- properties: ({ input, error }) => {
199
- const payload = input;
200
- return {
201
- tenantId: payload?.tenantId,
202
- accountId: payload?.accountId,
203
- error: error instanceof Error ? error.message : String(error ?? "unknown")
204
- };
205
- }
206
- }
207
- }
208
- });
209
-
210
- //#endregion
@@ -1,242 +0,0 @@
1
- import { SchemaModel } from "../../schema/dist/SchemaModel.js";
2
- import { ScalarTypeEnum } from "../../schema/dist/ScalarTypeEnum.js";
3
- import "../../schema/dist/index.js";
4
-
5
- //#region ../../libs/contracts/dist/integrations/openbanking/models.js
6
- const BankAccountRecord = new SchemaModel({
7
- name: "BankAccountRecord",
8
- description: "Canonical representation of a bank account synced from an open banking provider.",
9
- fields: {
10
- id: {
11
- type: ScalarTypeEnum.ID(),
12
- isOptional: false
13
- },
14
- tenantId: {
15
- type: ScalarTypeEnum.ID(),
16
- isOptional: false
17
- },
18
- userId: {
19
- type: ScalarTypeEnum.ID(),
20
- isOptional: false
21
- },
22
- connectionId: {
23
- type: ScalarTypeEnum.ID(),
24
- isOptional: false
25
- },
26
- externalId: {
27
- type: ScalarTypeEnum.NonEmptyString(),
28
- isOptional: false
29
- },
30
- institutionId: {
31
- type: ScalarTypeEnum.NonEmptyString(),
32
- isOptional: false
33
- },
34
- institutionName: {
35
- type: ScalarTypeEnum.NonEmptyString(),
36
- isOptional: false
37
- },
38
- institutionLogoUrl: {
39
- type: ScalarTypeEnum.URL(),
40
- isOptional: true
41
- },
42
- iban: {
43
- type: ScalarTypeEnum.String_unsecure(),
44
- isOptional: true
45
- },
46
- bic: {
47
- type: ScalarTypeEnum.String_unsecure(),
48
- isOptional: true
49
- },
50
- accountType: {
51
- type: ScalarTypeEnum.NonEmptyString(),
52
- isOptional: false
53
- },
54
- currency: {
55
- type: ScalarTypeEnum.Currency(),
56
- isOptional: false
57
- },
58
- displayName: {
59
- type: ScalarTypeEnum.NonEmptyString(),
60
- isOptional: false
61
- },
62
- accountNumberMasked: {
63
- type: ScalarTypeEnum.String_unsecure(),
64
- isOptional: true
65
- },
66
- productCode: {
67
- type: ScalarTypeEnum.String_unsecure(),
68
- isOptional: true
69
- },
70
- balance: {
71
- type: ScalarTypeEnum.Float_unsecure(),
72
- isOptional: true
73
- },
74
- availableBalance: {
75
- type: ScalarTypeEnum.Float_unsecure(),
76
- isOptional: true
77
- },
78
- lastSyncedAt: {
79
- type: ScalarTypeEnum.DateTime(),
80
- isOptional: false
81
- },
82
- createdAt: {
83
- type: ScalarTypeEnum.DateTime(),
84
- isOptional: false
85
- },
86
- updatedAt: {
87
- type: ScalarTypeEnum.DateTime(),
88
- isOptional: false
89
- },
90
- metadata: {
91
- type: ScalarTypeEnum.JSONObject(),
92
- isOptional: true
93
- }
94
- }
95
- });
96
- const BankTransactionRecord = new SchemaModel({
97
- name: "BankTransactionRecord",
98
- description: "Canonical transaction entry mapped from Powens into the open banking ledger.",
99
- fields: {
100
- id: {
101
- type: ScalarTypeEnum.ID(),
102
- isOptional: false
103
- },
104
- accountId: {
105
- type: ScalarTypeEnum.ID(),
106
- isOptional: false
107
- },
108
- tenantId: {
109
- type: ScalarTypeEnum.ID(),
110
- isOptional: false
111
- },
112
- connectionId: {
113
- type: ScalarTypeEnum.ID(),
114
- isOptional: false
115
- },
116
- externalId: {
117
- type: ScalarTypeEnum.NonEmptyString(),
118
- isOptional: false
119
- },
120
- amount: {
121
- type: ScalarTypeEnum.Float_unsecure(),
122
- isOptional: false
123
- },
124
- currency: {
125
- type: ScalarTypeEnum.Currency(),
126
- isOptional: false
127
- },
128
- date: {
129
- type: ScalarTypeEnum.DateTime(),
130
- isOptional: false
131
- },
132
- bookingDate: {
133
- type: ScalarTypeEnum.DateTime(),
134
- isOptional: true
135
- },
136
- valueDate: {
137
- type: ScalarTypeEnum.DateTime(),
138
- isOptional: true
139
- },
140
- description: {
141
- type: ScalarTypeEnum.String_unsecure(),
142
- isOptional: true
143
- },
144
- counterpartyName: {
145
- type: ScalarTypeEnum.String_unsecure(),
146
- isOptional: true
147
- },
148
- counterpartyAccount: {
149
- type: ScalarTypeEnum.String_unsecure(),
150
- isOptional: true
151
- },
152
- merchantCategoryCode: {
153
- type: ScalarTypeEnum.String_unsecure(),
154
- isOptional: true
155
- },
156
- rawCategory: {
157
- type: ScalarTypeEnum.String_unsecure(),
158
- isOptional: true
159
- },
160
- standardizedCategory: {
161
- type: ScalarTypeEnum.String_unsecure(),
162
- isOptional: true
163
- },
164
- transactionType: {
165
- type: ScalarTypeEnum.NonEmptyString(),
166
- isOptional: false
167
- },
168
- status: {
169
- type: ScalarTypeEnum.NonEmptyString(),
170
- isOptional: false
171
- },
172
- runningBalance: {
173
- type: ScalarTypeEnum.Float_unsecure(),
174
- isOptional: true
175
- },
176
- metadata: {
177
- type: ScalarTypeEnum.JSONObject(),
178
- isOptional: true
179
- },
180
- createdAt: {
181
- type: ScalarTypeEnum.DateTime(),
182
- isOptional: false
183
- },
184
- updatedAt: {
185
- type: ScalarTypeEnum.DateTime(),
186
- isOptional: false
187
- }
188
- }
189
- });
190
- const AccountBalanceRecord = new SchemaModel({
191
- name: "AccountBalanceRecord",
192
- description: "Canonical balance snapshot computed from Powens balance payloads.",
193
- fields: {
194
- id: {
195
- type: ScalarTypeEnum.ID(),
196
- isOptional: false
197
- },
198
- accountId: {
199
- type: ScalarTypeEnum.ID(),
200
- isOptional: false
201
- },
202
- tenantId: {
203
- type: ScalarTypeEnum.ID(),
204
- isOptional: false
205
- },
206
- connectionId: {
207
- type: ScalarTypeEnum.ID(),
208
- isOptional: false
209
- },
210
- balanceType: {
211
- type: ScalarTypeEnum.NonEmptyString(),
212
- isOptional: false
213
- },
214
- currentBalance: {
215
- type: ScalarTypeEnum.Float_unsecure(),
216
- isOptional: false
217
- },
218
- availableBalance: {
219
- type: ScalarTypeEnum.Float_unsecure(),
220
- isOptional: true
221
- },
222
- currency: {
223
- type: ScalarTypeEnum.Currency(),
224
- isOptional: false
225
- },
226
- lastUpdatedAt: {
227
- type: ScalarTypeEnum.DateTime(),
228
- isOptional: false
229
- },
230
- createdAt: {
231
- type: ScalarTypeEnum.DateTime(),
232
- isOptional: false
233
- },
234
- metadata: {
235
- type: ScalarTypeEnum.JSONObject(),
236
- isOptional: true
237
- }
238
- }
239
- });
240
-
241
- //#endregion
242
- export { AccountBalanceRecord, BankAccountRecord, BankTransactionRecord };
@@ -1,13 +0,0 @@
1
- //#region ../../libs/contracts/dist/integrations/openbanking/telemetry.js
2
- const OPENBANKING_TELEMETRY_EVENTS = {
3
- accountsSynced: "openbanking.accounts.synced",
4
- accountsSyncFailed: "openbanking.accounts.sync_failed",
5
- transactionsSynced: "openbanking.transactions.synced",
6
- transactionsSyncFailed: "openbanking.transactions.sync_failed",
7
- balancesRefreshed: "openbanking.balances.refreshed",
8
- balancesRefreshFailed: "openbanking.balances.refresh_failed",
9
- overviewGenerated: "openbanking.overview.generated"
10
- };
11
-
12
- //#endregion
13
- export { OPENBANKING_TELEMETRY_EVENTS };
@@ -1,52 +0,0 @@
1
- import { StabilityEnum } from "../../ownership.js";
2
-
3
- //#region ../../libs/contracts/dist/integrations/providers/elevenlabs.js
4
- const elevenLabsIntegrationSpec = {
5
- meta: {
6
- key: "ai-voice.elevenlabs",
7
- version: 1,
8
- category: "ai-voice",
9
- displayName: "ElevenLabs Voice",
10
- title: "ElevenLabs Text-to-Speech",
11
- description: "ElevenLabs integration for neural voice synthesis and voice catalog access.",
12
- domain: "ai",
13
- owners: ["platform.ai"],
14
- tags: ["voice", "tts"],
15
- stability: StabilityEnum.Beta
16
- },
17
- supportedModes: ["managed", "byok"],
18
- capabilities: { provides: [{
19
- key: "ai.voice.synthesis",
20
- version: 1
21
- }] },
22
- configSchema: {
23
- schema: {
24
- type: "object",
25
- properties: { defaultVoiceId: {
26
- type: "string",
27
- description: "Optional default voice identifier for synthesis requests."
28
- } }
29
- },
30
- example: { defaultVoiceId: "pNInz6obpgDQGcFmaJgB" }
31
- },
32
- secretSchema: {
33
- schema: {
34
- type: "object",
35
- required: ["apiKey"],
36
- properties: { apiKey: {
37
- type: "string",
38
- description: "ElevenLabs API key with text-to-speech permissions."
39
- } }
40
- },
41
- example: { apiKey: "eleven-***" }
42
- },
43
- healthCheck: {
44
- method: "custom",
45
- timeoutMs: 4e3
46
- },
47
- docsUrl: "https://elevenlabs.io/docs/api-reference/text-to-speech",
48
- constraints: { rateLimit: { rpm: 120 } },
49
- byokSetup: { setupInstructions: "Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope." }
50
- };
51
-
52
- //#endregion