@lssm/example.pocket-family-office 0.0.0-canary-20251217080011 → 1.41.0
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/package.json +22 -23
- package/dist/blueprint.d.ts +0 -7
- package/dist/blueprint.js +0 -200
- package/dist/connections/samples.d.ts +0 -7
- package/dist/connections/samples.js +0 -226
- package/dist/contracts/index.d.ts +0 -118
- package/dist/contracts/index.js +0 -270
- package/dist/index.d.ts +0 -16
- package/dist/index.js +0 -18
- package/dist/knowledge/sources.sample.d.ts +0 -6
- package/dist/knowledge/sources.sample.js +0 -49
- package/dist/libs/contracts/dist/integrations/index.js +0 -18
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -25
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
- package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
- package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
- package/dist/libs/contracts/dist/ownership.js +0 -38
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
- package/dist/libs/contracts/dist/spec.js +0 -34
- package/dist/pocket-family-office.feature.d.ts +0 -11
- package/dist/pocket-family-office.feature.js +0 -46
- package/dist/telemetry.d.ts +0 -7
- package/dist/telemetry.js +0 -170
- package/dist/tenant.sample.d.ts +0 -6
- package/dist/tenant.sample.js +0 -89
- package/dist/workflows/generate-financial-summary.d.ts +0 -6
- package/dist/workflows/generate-financial-summary.js +0 -60
- package/dist/workflows/generate-openbanking-overview.d.ts +0 -6
- package/dist/workflows/generate-openbanking-overview.js +0 -57
- package/dist/workflows/index.d.ts +0 -9
- package/dist/workflows/index.js +0 -10
- package/dist/workflows/ingest-email-threads.d.ts +0 -6
- package/dist/workflows/ingest-email-threads.js +0 -52
- package/dist/workflows/process-uploaded-document.d.ts +0 -6
- package/dist/workflows/process-uploaded-document.js +0 -50
- package/dist/workflows/refresh-openbanking-balances.d.ts +0 -6
- package/dist/workflows/refresh-openbanking-balances.js +0 -66
- package/dist/workflows/sync-openbanking-accounts.d.ts +0 -6
- package/dist/workflows/sync-openbanking-accounts.js +0 -66
- package/dist/workflows/sync-openbanking-transactions.d.ts +0 -6
- package/dist/workflows/sync-openbanking-transactions.js +0 -66
- package/dist/workflows/upcoming-payments-reminder.d.ts +0 -6
- package/dist/workflows/upcoming-payments-reminder.js +0 -55
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/example.pocket-family-office",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"description": "Pocket Family Office example - personal finance automation with open banking",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
|
|
10
|
-
"publish:pkg:canary": "bun publish:pkg --tag canary",
|
|
11
10
|
"build:off": "bun build:bundle && bun build:types",
|
|
12
11
|
"build:bundle": "tsdown",
|
|
13
12
|
"build:types": "tsc --noEmit",
|
|
@@ -18,33 +17,33 @@
|
|
|
18
17
|
"lint:check": "eslint ."
|
|
19
18
|
},
|
|
20
19
|
"dependencies": {
|
|
21
|
-
"@lssm/lib.schema": "
|
|
22
|
-
"@lssm/lib.contracts": "
|
|
20
|
+
"@lssm/lib.schema": "workspace:*",
|
|
21
|
+
"@lssm/lib.contracts": "workspace:*",
|
|
23
22
|
"zod": "^4.1.13"
|
|
24
23
|
},
|
|
25
24
|
"devDependencies": {
|
|
26
|
-
"@lssm/tool.typescript": "
|
|
27
|
-
"@lssm/tool.tsdown": "
|
|
25
|
+
"@lssm/tool.typescript": "workspace:*",
|
|
26
|
+
"@lssm/tool.tsdown": "workspace:*",
|
|
28
27
|
"typescript": "^5.9.3"
|
|
29
28
|
},
|
|
30
29
|
"exports": {
|
|
31
|
-
".": "./
|
|
32
|
-
"./blueprint": "./
|
|
33
|
-
"./connections/samples": "./
|
|
34
|
-
"./contracts": "./
|
|
35
|
-
"./knowledge/sources.sample": "./
|
|
36
|
-
"./pocket-family-office.feature": "./
|
|
37
|
-
"./telemetry": "./
|
|
38
|
-
"./tenant.sample": "./
|
|
39
|
-
"./workflows": "./
|
|
40
|
-
"./workflows/generate-financial-summary": "./
|
|
41
|
-
"./workflows/generate-openbanking-overview": "./
|
|
42
|
-
"./workflows/ingest-email-threads": "./
|
|
43
|
-
"./workflows/process-uploaded-document": "./
|
|
44
|
-
"./workflows/refresh-openbanking-balances": "./
|
|
45
|
-
"./workflows/sync-openbanking-accounts": "./
|
|
46
|
-
"./workflows/sync-openbanking-transactions": "./
|
|
47
|
-
"./workflows/upcoming-payments-reminder": "./
|
|
30
|
+
".": "./src/index.ts",
|
|
31
|
+
"./blueprint": "./src/blueprint.ts",
|
|
32
|
+
"./connections/samples": "./src/connections/samples.ts",
|
|
33
|
+
"./contracts": "./src/contracts/index.ts",
|
|
34
|
+
"./knowledge/sources.sample": "./src/knowledge/sources.sample.ts",
|
|
35
|
+
"./pocket-family-office.feature": "./src/pocket-family-office.feature.ts",
|
|
36
|
+
"./telemetry": "./src/telemetry.ts",
|
|
37
|
+
"./tenant.sample": "./src/tenant.sample.ts",
|
|
38
|
+
"./workflows": "./src/workflows/index.ts",
|
|
39
|
+
"./workflows/generate-financial-summary": "./src/workflows/generate-financial-summary.ts",
|
|
40
|
+
"./workflows/generate-openbanking-overview": "./src/workflows/generate-openbanking-overview.ts",
|
|
41
|
+
"./workflows/ingest-email-threads": "./src/workflows/ingest-email-threads.ts",
|
|
42
|
+
"./workflows/process-uploaded-document": "./src/workflows/process-uploaded-document.ts",
|
|
43
|
+
"./workflows/refresh-openbanking-balances": "./src/workflows/refresh-openbanking-balances.ts",
|
|
44
|
+
"./workflows/sync-openbanking-accounts": "./src/workflows/sync-openbanking-accounts.ts",
|
|
45
|
+
"./workflows/sync-openbanking-transactions": "./src/workflows/sync-openbanking-transactions.ts",
|
|
46
|
+
"./workflows/upcoming-payments-reminder": "./src/workflows/upcoming-payments-reminder.ts",
|
|
48
47
|
"./*": "./*"
|
|
49
48
|
},
|
|
50
49
|
"module": "./dist/index.js",
|
package/dist/blueprint.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { AppBlueprintRegistry, AppBlueprintSpec } from "@lssm/lib.contracts/app-config/spec";
|
|
2
|
-
|
|
3
|
-
//#region src/blueprint.d.ts
|
|
4
|
-
declare const pocketFamilyOfficeBlueprint: AppBlueprintSpec;
|
|
5
|
-
declare function registerPocketFamilyOfficeBlueprint(registry: AppBlueprintRegistry): AppBlueprintRegistry;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { pocketFamilyOfficeBlueprint, registerPocketFamilyOfficeBlueprint };
|
package/dist/blueprint.js
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { OwnersEnum, StabilityEnum, TagsEnum } from "./libs/contracts/dist/ownership.js";
|
|
2
|
-
|
|
3
|
-
//#region src/blueprint.ts
|
|
4
|
-
const cap = (key, version) => ({
|
|
5
|
-
key,
|
|
6
|
-
version
|
|
7
|
-
});
|
|
8
|
-
const pocketFamilyOfficeBlueprint = {
|
|
9
|
-
meta: {
|
|
10
|
-
name: "pocket-family-office.app",
|
|
11
|
-
version: 1,
|
|
12
|
-
appId: "pocket-family-office",
|
|
13
|
-
title: "Pocket Family Office",
|
|
14
|
-
description: "Household finance automation: ingest documents, track bills, remind payments, and summarise cashflow.",
|
|
15
|
-
domain: "finance",
|
|
16
|
-
owners: [OwnersEnum.PlatformFinance],
|
|
17
|
-
tags: [
|
|
18
|
-
TagsEnum.Guide,
|
|
19
|
-
"finance",
|
|
20
|
-
"automation"
|
|
21
|
-
],
|
|
22
|
-
stability: StabilityEnum.Experimental
|
|
23
|
-
},
|
|
24
|
-
capabilities: { enabled: [
|
|
25
|
-
cap("ai.chat", 1),
|
|
26
|
-
cap("ai.embeddings", 1),
|
|
27
|
-
cap("vector-db.search", 1),
|
|
28
|
-
cap("vector-db.storage", 1),
|
|
29
|
-
cap("storage.objects", 1),
|
|
30
|
-
cap("email.inbound", 1),
|
|
31
|
-
cap("email.transactional", 1),
|
|
32
|
-
cap("calendar.events", 1),
|
|
33
|
-
cap("sms.outbound", 1),
|
|
34
|
-
cap("ai.voice.synthesis", 1),
|
|
35
|
-
cap("payments.psp", 1),
|
|
36
|
-
cap("openbanking.accounts.read", 1),
|
|
37
|
-
cap("openbanking.transactions.read", 1),
|
|
38
|
-
cap("openbanking.balances.read", 1)
|
|
39
|
-
] },
|
|
40
|
-
integrationSlots: [
|
|
41
|
-
{
|
|
42
|
-
slotId: "primaryLLM",
|
|
43
|
-
requiredCategory: "ai-llm",
|
|
44
|
-
allowedModes: ["managed", "byok"],
|
|
45
|
-
requiredCapabilities: [cap("ai.chat", 1)],
|
|
46
|
-
required: true,
|
|
47
|
-
description: "Chat completion provider powering summarisation, explanations, and insights."
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
slotId: "primaryVectorDb",
|
|
51
|
-
requiredCategory: "vector-db",
|
|
52
|
-
allowedModes: ["managed", "byok"],
|
|
53
|
-
requiredCapabilities: [cap("vector-db.search", 1)],
|
|
54
|
-
required: true,
|
|
55
|
-
description: "Vector database storing embeddings for financial documents and email threads."
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
slotId: "primaryStorage",
|
|
59
|
-
requiredCategory: "storage",
|
|
60
|
-
allowedModes: ["managed", "byok"],
|
|
61
|
-
requiredCapabilities: [cap("storage.objects", 1)],
|
|
62
|
-
required: true,
|
|
63
|
-
description: "Object storage used for raw uploads and normalised documents."
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
slotId: "primaryOpenBanking",
|
|
67
|
-
requiredCategory: "open-banking",
|
|
68
|
-
allowedModes: ["byok"],
|
|
69
|
-
requiredCapabilities: [
|
|
70
|
-
cap("openbanking.accounts.read", 1),
|
|
71
|
-
cap("openbanking.transactions.read", 1),
|
|
72
|
-
cap("openbanking.balances.read", 1)
|
|
73
|
-
],
|
|
74
|
-
required: true,
|
|
75
|
-
description: "Powens BYOK connection powering bank account, transaction, and balance synchronisation."
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
slotId: "emailInbound",
|
|
79
|
-
requiredCategory: "email",
|
|
80
|
-
allowedModes: ["managed", "byok"],
|
|
81
|
-
requiredCapabilities: [cap("email.inbound", 1)],
|
|
82
|
-
required: true,
|
|
83
|
-
description: "Inbound email/thread sync (Gmail) feeding the knowledge corpus."
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
slotId: "emailOutbound",
|
|
87
|
-
requiredCategory: "email",
|
|
88
|
-
allowedModes: ["managed", "byok"],
|
|
89
|
-
requiredCapabilities: [cap("email.transactional", 1)],
|
|
90
|
-
required: true,
|
|
91
|
-
description: "Transactional email delivery for reminders and summaries."
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
slotId: "calendarScheduling",
|
|
95
|
-
requiredCategory: "calendar",
|
|
96
|
-
allowedModes: ["managed", "byok"],
|
|
97
|
-
requiredCapabilities: [cap("calendar.events", 1)],
|
|
98
|
-
required: true,
|
|
99
|
-
description: "Creates calendar holds for bill reviews and handoff meetings."
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
slotId: "voicePlayback",
|
|
103
|
-
requiredCategory: "ai-voice",
|
|
104
|
-
allowedModes: ["managed", "byok"],
|
|
105
|
-
requiredCapabilities: [cap("ai.voice.synthesis", 1)],
|
|
106
|
-
required: false,
|
|
107
|
-
description: "Optional voice synthesis for spoken summaries (ElevenLabs)."
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
slotId: "smsNotifications",
|
|
111
|
-
requiredCategory: "sms",
|
|
112
|
-
allowedModes: ["managed", "byok"],
|
|
113
|
-
requiredCapabilities: [cap("sms.outbound", 1)],
|
|
114
|
-
required: false,
|
|
115
|
-
description: "SMS provider used for urgent reminders."
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
slotId: "paymentsProcessing",
|
|
119
|
-
requiredCategory: "payments",
|
|
120
|
-
allowedModes: ["managed", "byok"],
|
|
121
|
-
requiredCapabilities: [cap("payments.psp", 1)],
|
|
122
|
-
required: false,
|
|
123
|
-
description: "Optional payments processor enabling bill pay automations."
|
|
124
|
-
}
|
|
125
|
-
],
|
|
126
|
-
workflows: {
|
|
127
|
-
processUploadedDocument: {
|
|
128
|
-
name: "pfo.workflow.process-uploaded-document",
|
|
129
|
-
version: 1
|
|
130
|
-
},
|
|
131
|
-
upcomingPaymentsReminder: {
|
|
132
|
-
name: "pfo.workflow.upcoming-payments-reminder",
|
|
133
|
-
version: 1
|
|
134
|
-
},
|
|
135
|
-
generateFinancialSummary: {
|
|
136
|
-
name: "pfo.workflow.generate-financial-summary",
|
|
137
|
-
version: 1
|
|
138
|
-
},
|
|
139
|
-
ingestEmailThreads: {
|
|
140
|
-
name: "pfo.workflow.ingest-email-threads",
|
|
141
|
-
version: 1
|
|
142
|
-
},
|
|
143
|
-
syncOpenBankingAccounts: {
|
|
144
|
-
name: "pfo.workflow.sync-openbanking-accounts",
|
|
145
|
-
version: 1
|
|
146
|
-
},
|
|
147
|
-
syncOpenBankingTransactions: {
|
|
148
|
-
name: "pfo.workflow.sync-openbanking-transactions",
|
|
149
|
-
version: 1
|
|
150
|
-
},
|
|
151
|
-
refreshOpenBankingBalances: {
|
|
152
|
-
name: "pfo.workflow.refresh-openbanking-balances",
|
|
153
|
-
version: 1
|
|
154
|
-
},
|
|
155
|
-
generateOpenBankingOverview: {
|
|
156
|
-
name: "pfo.workflow.generate-openbanking-overview",
|
|
157
|
-
version: 1
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
policies: [{
|
|
161
|
-
name: "pfo.policy.tenancy",
|
|
162
|
-
version: 1
|
|
163
|
-
}, {
|
|
164
|
-
name: "knowledge.access.financial-docs",
|
|
165
|
-
version: 1
|
|
166
|
-
}],
|
|
167
|
-
telemetry: { spec: {
|
|
168
|
-
name: "pfo.telemetry",
|
|
169
|
-
version: 1
|
|
170
|
-
} },
|
|
171
|
-
featureFlags: [{
|
|
172
|
-
key: "voice-summaries",
|
|
173
|
-
enabled: false,
|
|
174
|
-
description: "Enable ElevenLabs spoken summaries in addition to email distribution."
|
|
175
|
-
}],
|
|
176
|
-
routes: [
|
|
177
|
-
{
|
|
178
|
-
path: "/dashboard",
|
|
179
|
-
label: "Overview",
|
|
180
|
-
workflow: "pfo.workflow.generate-financial-summary"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
path: "/documents/upload",
|
|
184
|
-
label: "Upload Document",
|
|
185
|
-
workflow: "pfo.workflow.process-uploaded-document"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
path: "/communications",
|
|
189
|
-
label: "Inbox",
|
|
190
|
-
workflow: "pfo.workflow.ingest-email-threads"
|
|
191
|
-
}
|
|
192
|
-
],
|
|
193
|
-
notes: "Pocket Family Office blueprint pulling together finance automations for the hackathon reference implementation."
|
|
194
|
-
};
|
|
195
|
-
function registerPocketFamilyOfficeBlueprint(registry) {
|
|
196
|
-
return registry.register(pocketFamilyOfficeBlueprint);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
//#endregion
|
|
200
|
-
export { pocketFamilyOfficeBlueprint, registerPocketFamilyOfficeBlueprint };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IntegrationConnection } from "@lssm/lib.contracts/integrations/connection";
|
|
2
|
-
|
|
3
|
-
//#region src/connections/samples.d.ts
|
|
4
|
-
declare const pocketFamilyOfficeConnections: IntegrationConnection[];
|
|
5
|
-
declare function getPocketFamilyOfficeConnection(connectionId: string): IntegrationConnection | undefined;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { getPocketFamilyOfficeConnection, pocketFamilyOfficeConnections };
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
//#region src/connections/samples.ts
|
|
2
|
-
const now = /* @__PURE__ */ new Date();
|
|
3
|
-
const baseMeta = {
|
|
4
|
-
tenantId: "tenant.family-office",
|
|
5
|
-
createdAt: now,
|
|
6
|
-
updatedAt: now
|
|
7
|
-
};
|
|
8
|
-
const pocketFamilyOfficeConnections = [
|
|
9
|
-
{
|
|
10
|
-
meta: {
|
|
11
|
-
...baseMeta,
|
|
12
|
-
id: "conn-mistral-primary",
|
|
13
|
-
integrationKey: "ai-llm.mistral",
|
|
14
|
-
integrationVersion: 1,
|
|
15
|
-
label: "Mistral Primary"
|
|
16
|
-
},
|
|
17
|
-
ownershipMode: "managed",
|
|
18
|
-
config: {
|
|
19
|
-
model: "mistral-large-latest",
|
|
20
|
-
embeddingModel: "mistral-embed"
|
|
21
|
-
},
|
|
22
|
-
secretProvider: "gcp-secret-manager",
|
|
23
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/mistral-api-key/versions/latest",
|
|
24
|
-
status: "connected",
|
|
25
|
-
health: {
|
|
26
|
-
status: "connected",
|
|
27
|
-
checkedAt: now,
|
|
28
|
-
latencyMs: 180
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
meta: {
|
|
33
|
-
...baseMeta,
|
|
34
|
-
id: "conn-qdrant-finance",
|
|
35
|
-
integrationKey: "vectordb.qdrant",
|
|
36
|
-
integrationVersion: 1,
|
|
37
|
-
label: "Qdrant Finance Cluster"
|
|
38
|
-
},
|
|
39
|
-
ownershipMode: "managed",
|
|
40
|
-
config: {
|
|
41
|
-
apiUrl: "https://qdrant.pfo.internal",
|
|
42
|
-
collectionPrefix: "tenant-family-office"
|
|
43
|
-
},
|
|
44
|
-
secretProvider: "gcp-secret-manager",
|
|
45
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/qdrant-api-key/versions/latest",
|
|
46
|
-
status: "connected",
|
|
47
|
-
health: {
|
|
48
|
-
status: "connected",
|
|
49
|
-
checkedAt: now,
|
|
50
|
-
latencyMs: 95
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
meta: {
|
|
55
|
-
...baseMeta,
|
|
56
|
-
id: "conn-gcs-documents",
|
|
57
|
-
integrationKey: "storage.gcs",
|
|
58
|
-
integrationVersion: 1,
|
|
59
|
-
label: "GCS Documents Bucket"
|
|
60
|
-
},
|
|
61
|
-
ownershipMode: "managed",
|
|
62
|
-
config: {
|
|
63
|
-
bucket: "pfo-uploads",
|
|
64
|
-
prefix: "financial-docs/"
|
|
65
|
-
},
|
|
66
|
-
secretProvider: "gcp-secret-manager",
|
|
67
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/gcs-service-account/versions/latest",
|
|
68
|
-
status: "connected",
|
|
69
|
-
health: {
|
|
70
|
-
status: "connected",
|
|
71
|
-
checkedAt: now,
|
|
72
|
-
latencyMs: 60
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
meta: {
|
|
77
|
-
...baseMeta,
|
|
78
|
-
id: "conn-gmail-threads",
|
|
79
|
-
integrationKey: "email.gmail",
|
|
80
|
-
integrationVersion: 1,
|
|
81
|
-
label: "Gmail Household Threads"
|
|
82
|
-
},
|
|
83
|
-
ownershipMode: "byok",
|
|
84
|
-
config: {
|
|
85
|
-
labelIds: ["FINANCE", "INBOX"],
|
|
86
|
-
includeSpamTrash: false
|
|
87
|
-
},
|
|
88
|
-
secretProvider: "gcp-secret-manager",
|
|
89
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/gmail-refresh-token/versions/latest",
|
|
90
|
-
status: "connected",
|
|
91
|
-
health: {
|
|
92
|
-
status: "connected",
|
|
93
|
-
checkedAt: now,
|
|
94
|
-
latencyMs: 320
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
meta: {
|
|
99
|
-
...baseMeta,
|
|
100
|
-
id: "conn-postmark-outbound",
|
|
101
|
-
integrationKey: "email.postmark",
|
|
102
|
-
integrationVersion: 1,
|
|
103
|
-
label: "Postmark Transactional"
|
|
104
|
-
},
|
|
105
|
-
ownershipMode: "managed",
|
|
106
|
-
config: {
|
|
107
|
-
messageStream: "outbound",
|
|
108
|
-
fromEmail: "family.office@pfo.dev"
|
|
109
|
-
},
|
|
110
|
-
secretProvider: "gcp-secret-manager",
|
|
111
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/postmark-server-token/versions/latest",
|
|
112
|
-
status: "connected",
|
|
113
|
-
health: {
|
|
114
|
-
status: "connected",
|
|
115
|
-
checkedAt: now,
|
|
116
|
-
latencyMs: 210
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
meta: {
|
|
121
|
-
...baseMeta,
|
|
122
|
-
id: "conn-google-calendar",
|
|
123
|
-
integrationKey: "calendar.google",
|
|
124
|
-
integrationVersion: 1,
|
|
125
|
-
label: "Household Calendar"
|
|
126
|
-
},
|
|
127
|
-
ownershipMode: "managed",
|
|
128
|
-
config: { calendarId: "primary" },
|
|
129
|
-
secretProvider: "gcp-secret-manager",
|
|
130
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/google-calendar-service-account/versions/latest",
|
|
131
|
-
status: "connected",
|
|
132
|
-
health: {
|
|
133
|
-
status: "connected",
|
|
134
|
-
checkedAt: now,
|
|
135
|
-
latencyMs: 140
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
meta: {
|
|
140
|
-
...baseMeta,
|
|
141
|
-
id: "conn-elevenlabs-voice",
|
|
142
|
-
integrationKey: "ai-voice.elevenlabs",
|
|
143
|
-
integrationVersion: 1,
|
|
144
|
-
label: "ElevenLabs Voice"
|
|
145
|
-
},
|
|
146
|
-
ownershipMode: "byok",
|
|
147
|
-
config: { defaultVoiceId: "pNInz6obpgDQGcFmaJgB" },
|
|
148
|
-
secretProvider: "gcp-secret-manager",
|
|
149
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/elevenlabs-api-key/versions/latest",
|
|
150
|
-
status: "connected",
|
|
151
|
-
health: {
|
|
152
|
-
status: "connected",
|
|
153
|
-
checkedAt: now,
|
|
154
|
-
latencyMs: 250
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
meta: {
|
|
159
|
-
...baseMeta,
|
|
160
|
-
id: "conn-twilio-sms",
|
|
161
|
-
integrationKey: "sms.twilio",
|
|
162
|
-
integrationVersion: 1,
|
|
163
|
-
label: "Twilio SMS"
|
|
164
|
-
},
|
|
165
|
-
ownershipMode: "managed",
|
|
166
|
-
config: { fromNumber: "+15552340000" },
|
|
167
|
-
secretProvider: "gcp-secret-manager",
|
|
168
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/twilio-auth-token/versions/latest",
|
|
169
|
-
status: "connected",
|
|
170
|
-
health: {
|
|
171
|
-
status: "connected",
|
|
172
|
-
checkedAt: now,
|
|
173
|
-
latencyMs: 180
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
meta: {
|
|
178
|
-
...baseMeta,
|
|
179
|
-
id: "conn-stripe-recurring",
|
|
180
|
-
integrationKey: "payments.stripe",
|
|
181
|
-
integrationVersion: 1,
|
|
182
|
-
label: "Stripe Recurring Billing"
|
|
183
|
-
},
|
|
184
|
-
ownershipMode: "managed",
|
|
185
|
-
config: {
|
|
186
|
-
accountId: "acct_1PFOHACKATHON",
|
|
187
|
-
region: "eu-west-1"
|
|
188
|
-
},
|
|
189
|
-
secretProvider: "gcp-secret-manager",
|
|
190
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/stripe-secret-key/versions/latest",
|
|
191
|
-
status: "connected",
|
|
192
|
-
health: {
|
|
193
|
-
status: "connected",
|
|
194
|
-
checkedAt: now,
|
|
195
|
-
latencyMs: 220
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
meta: {
|
|
200
|
-
...baseMeta,
|
|
201
|
-
id: "conn-powens-primary",
|
|
202
|
-
integrationKey: "openbanking.powens",
|
|
203
|
-
integrationVersion: 1,
|
|
204
|
-
label: "Powens Open Banking"
|
|
205
|
-
},
|
|
206
|
-
ownershipMode: "byok",
|
|
207
|
-
config: {
|
|
208
|
-
environment: "sandbox",
|
|
209
|
-
baseUrl: "https://api-sandbox.powens.com/v2"
|
|
210
|
-
},
|
|
211
|
-
secretProvider: "gcp-secret-manager",
|
|
212
|
-
secretRef: "gcp://projects/pfo-hackathon/secrets/powens-credentials/versions/latest",
|
|
213
|
-
status: "connected",
|
|
214
|
-
health: {
|
|
215
|
-
status: "connected",
|
|
216
|
-
checkedAt: now,
|
|
217
|
-
latencyMs: 410
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
];
|
|
221
|
-
function getPocketFamilyOfficeConnection(connectionId) {
|
|
222
|
-
return pocketFamilyOfficeConnections.find((connection) => connection.meta.id === connectionId);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
//#endregion
|
|
226
|
-
export { getPocketFamilyOfficeConnection, pocketFamilyOfficeConnections };
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import * as z from "zod";
|
|
2
|
-
import { ContractSpec } from "@lssm/lib.contracts/spec";
|
|
3
|
-
|
|
4
|
-
//#region src/contracts/index.d.ts
|
|
5
|
-
declare const UploadDocumentInput: z.ZodObject<{
|
|
6
|
-
bucket: z.ZodString;
|
|
7
|
-
objectKey: z.ZodString;
|
|
8
|
-
mimeType: z.ZodString;
|
|
9
|
-
bytes: z.ZodNumber;
|
|
10
|
-
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
11
|
-
uploadedAt: z.ZodCoercedDate<unknown>;
|
|
12
|
-
source: z.ZodDefault<z.ZodEnum<{
|
|
13
|
-
upload: "upload";
|
|
14
|
-
email: "email";
|
|
15
|
-
sync: "sync";
|
|
16
|
-
}>>;
|
|
17
|
-
}, z.core.$strip>;
|
|
18
|
-
declare const UploadDocumentOutput: z.ZodObject<{
|
|
19
|
-
documentId: z.ZodString;
|
|
20
|
-
ingestionJobId: z.ZodString;
|
|
21
|
-
}, z.core.$strip>;
|
|
22
|
-
type UploadDocumentInput = z.infer<typeof UploadDocumentInput>;
|
|
23
|
-
type UploadDocumentOutput = z.infer<typeof UploadDocumentOutput>;
|
|
24
|
-
declare const uploadDocumentContract: ContractSpec<UploadDocumentInput, UploadDocumentOutput>;
|
|
25
|
-
declare const PaymentReminderInput: z.ZodObject<{
|
|
26
|
-
billId: z.ZodString;
|
|
27
|
-
recipientEmail: z.ZodString;
|
|
28
|
-
recipientPhone: z.ZodOptional<z.ZodString>;
|
|
29
|
-
dueDate: z.ZodCoercedDate<unknown>;
|
|
30
|
-
amountCents: z.ZodNumber;
|
|
31
|
-
currency: z.ZodString;
|
|
32
|
-
channel: z.ZodDefault<z.ZodEnum<{
|
|
33
|
-
email: "email";
|
|
34
|
-
sms: "sms";
|
|
35
|
-
both: "both";
|
|
36
|
-
}>>;
|
|
37
|
-
memo: z.ZodOptional<z.ZodString>;
|
|
38
|
-
}, z.core.$strip>;
|
|
39
|
-
declare const PaymentReminderOutput: z.ZodObject<{
|
|
40
|
-
reminderId: z.ZodString;
|
|
41
|
-
scheduledAt: z.ZodCoercedDate<unknown>;
|
|
42
|
-
}, z.core.$strip>;
|
|
43
|
-
type PaymentReminderInput = z.infer<typeof PaymentReminderInput>;
|
|
44
|
-
type PaymentReminderOutput = z.infer<typeof PaymentReminderOutput>;
|
|
45
|
-
declare const schedulePaymentReminderContract: ContractSpec<PaymentReminderInput, PaymentReminderOutput>;
|
|
46
|
-
declare const FinancialSummaryInput: z.ZodObject<{
|
|
47
|
-
period: z.ZodDefault<z.ZodEnum<{
|
|
48
|
-
"7d": "7d";
|
|
49
|
-
"30d": "30d";
|
|
50
|
-
"90d": "90d";
|
|
51
|
-
}>>;
|
|
52
|
-
includeVoiceSummary: z.ZodDefault<z.ZodBoolean>;
|
|
53
|
-
}, z.core.$strip>;
|
|
54
|
-
declare const FinancialSummaryOutput: z.ZodObject<{
|
|
55
|
-
summaryId: z.ZodString;
|
|
56
|
-
generatedAt: z.ZodCoercedDate<unknown>;
|
|
57
|
-
markdown: z.ZodString;
|
|
58
|
-
highlights: z.ZodArray<z.ZodObject<{
|
|
59
|
-
label: z.ZodString;
|
|
60
|
-
value: z.ZodString;
|
|
61
|
-
}, z.core.$strip>>;
|
|
62
|
-
cashflowDelta: z.ZodNumber;
|
|
63
|
-
}, z.core.$strip>;
|
|
64
|
-
type FinancialSummaryInput = z.infer<typeof FinancialSummaryInput>;
|
|
65
|
-
type FinancialSummaryOutput = z.infer<typeof FinancialSummaryOutput>;
|
|
66
|
-
declare const generateFinancialSummaryContract: ContractSpec<FinancialSummaryInput, FinancialSummaryOutput>;
|
|
67
|
-
declare const SyncEmailThreadsInput: z.ZodObject<{
|
|
68
|
-
labelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
69
|
-
maxThreads: z.ZodDefault<z.ZodNumber>;
|
|
70
|
-
syncSinceMinutes: z.ZodDefault<z.ZodNumber>;
|
|
71
|
-
}, z.core.$strip>;
|
|
72
|
-
declare const SyncEmailThreadsOutput: z.ZodObject<{
|
|
73
|
-
syncedThreads: z.ZodNumber;
|
|
74
|
-
lastMessageAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
75
|
-
}, z.core.$strip>;
|
|
76
|
-
type SyncEmailThreadsInput = z.infer<typeof SyncEmailThreadsInput>;
|
|
77
|
-
type SyncEmailThreadsOutput = z.infer<typeof SyncEmailThreadsOutput>;
|
|
78
|
-
declare const syncEmailThreadsContract: ContractSpec<SyncEmailThreadsInput, SyncEmailThreadsOutput>;
|
|
79
|
-
declare const SummaryDispatchInput: z.ZodObject<{
|
|
80
|
-
summaryId: z.ZodString;
|
|
81
|
-
recipientEmail: z.ZodString;
|
|
82
|
-
recipientName: z.ZodOptional<z.ZodString>;
|
|
83
|
-
includeVoice: z.ZodDefault<z.ZodBoolean>;
|
|
84
|
-
voiceRecipient: z.ZodOptional<z.ZodString>;
|
|
85
|
-
}, z.core.$strip>;
|
|
86
|
-
declare const SummaryDispatchOutput: z.ZodObject<{
|
|
87
|
-
dispatchId: z.ZodString;
|
|
88
|
-
emailSent: z.ZodBoolean;
|
|
89
|
-
voiceUrl: z.ZodOptional<z.ZodString>;
|
|
90
|
-
}, z.core.$strip>;
|
|
91
|
-
type SummaryDispatchInput = z.infer<typeof SummaryDispatchInput>;
|
|
92
|
-
type SummaryDispatchOutput = z.infer<typeof SummaryDispatchOutput>;
|
|
93
|
-
declare const dispatchFinancialSummaryContract: ContractSpec<SummaryDispatchInput, SummaryDispatchOutput>;
|
|
94
|
-
declare const OpenBankingOverviewInput: z.ZodObject<{
|
|
95
|
-
tenantId: z.ZodString;
|
|
96
|
-
accountIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
97
|
-
period: z.ZodDefault<z.ZodEnum<{
|
|
98
|
-
week: "week";
|
|
99
|
-
month: "month";
|
|
100
|
-
quarter: "quarter";
|
|
101
|
-
}>>;
|
|
102
|
-
asOf: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
103
|
-
includeCategories: z.ZodDefault<z.ZodBoolean>;
|
|
104
|
-
includeCashflowTrend: z.ZodDefault<z.ZodBoolean>;
|
|
105
|
-
}, z.core.$strip>;
|
|
106
|
-
declare const OpenBankingOverviewOutput: z.ZodObject<{
|
|
107
|
-
knowledgeEntryId: z.ZodString;
|
|
108
|
-
periodStart: z.ZodCoercedDate<unknown>;
|
|
109
|
-
periodEnd: z.ZodCoercedDate<unknown>;
|
|
110
|
-
generatedAt: z.ZodCoercedDate<unknown>;
|
|
111
|
-
summaryPath: z.ZodOptional<z.ZodString>;
|
|
112
|
-
}, z.core.$strip>;
|
|
113
|
-
type OpenBankingOverviewInput = z.infer<typeof OpenBankingOverviewInput>;
|
|
114
|
-
type OpenBankingOverviewOutput = z.infer<typeof OpenBankingOverviewOutput>;
|
|
115
|
-
declare const generateOpenBankingOverviewContract: ContractSpec<OpenBankingOverviewInput, OpenBankingOverviewOutput>;
|
|
116
|
-
declare const pocketFamilyOfficeContracts: Record<string, ContractSpec<any, any>>;
|
|
117
|
-
//#endregion
|
|
118
|
-
export { FinancialSummaryInput, FinancialSummaryOutput, OpenBankingOverviewInput, OpenBankingOverviewOutput, PaymentReminderInput, PaymentReminderOutput, SummaryDispatchInput, SummaryDispatchOutput, SyncEmailThreadsInput, SyncEmailThreadsOutput, UploadDocumentInput, UploadDocumentOutput, dispatchFinancialSummaryContract, generateFinancialSummaryContract, generateOpenBankingOverviewContract, pocketFamilyOfficeContracts, schedulePaymentReminderContract, syncEmailThreadsContract, uploadDocumentContract };
|