@contractspec/example.pocket-family-office 3.7.17 → 3.7.18

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 (64) hide show
  1. package/dist/blueprint.js +1 -197
  2. package/dist/browser/blueprint.js +1 -197
  3. package/dist/browser/connections/samples.js +1 -197
  4. package/dist/browser/docs/index.js +3 -48
  5. package/dist/browser/docs/pocket-family-office.docblock.js +3 -48
  6. package/dist/browser/example.js +1 -42
  7. package/dist/browser/index.js +4 -1660
  8. package/dist/browser/knowledge/sources.sample.js +1 -70
  9. package/dist/browser/operations/index.js +1 -314
  10. package/dist/browser/pocket-family-office.capability.js +1 -19
  11. package/dist/browser/pocket-family-office.feature.js +2 -86
  12. package/dist/browser/telemetry.js +1 -176
  13. package/dist/browser/tenant.sample.js +1 -71
  14. package/dist/browser/workflows/generate-financial-summary.js +1 -58
  15. package/dist/browser/workflows/generate-openbanking-overview.js +1 -52
  16. package/dist/browser/workflows/index.js +1 -467
  17. package/dist/browser/workflows/ingest-email-threads.js +1 -56
  18. package/dist/browser/workflows/process-uploaded-document.js +1 -54
  19. package/dist/browser/workflows/refresh-openbanking-balances.js +1 -64
  20. package/dist/browser/workflows/sync-openbanking-accounts.js +1 -64
  21. package/dist/browser/workflows/sync-openbanking-transactions.js +1 -64
  22. package/dist/browser/workflows/upcoming-payments-reminder.js +1 -62
  23. package/dist/connections/samples.js +1 -197
  24. package/dist/docs/index.js +3 -48
  25. package/dist/docs/pocket-family-office.docblock.js +3 -48
  26. package/dist/example.js +1 -42
  27. package/dist/index.js +4 -1660
  28. package/dist/knowledge/sources.sample.js +1 -70
  29. package/dist/node/blueprint.js +1 -197
  30. package/dist/node/connections/samples.js +1 -197
  31. package/dist/node/docs/index.js +3 -48
  32. package/dist/node/docs/pocket-family-office.docblock.js +3 -48
  33. package/dist/node/example.js +1 -42
  34. package/dist/node/index.js +4 -1660
  35. package/dist/node/knowledge/sources.sample.js +1 -70
  36. package/dist/node/operations/index.js +1 -314
  37. package/dist/node/pocket-family-office.capability.js +1 -19
  38. package/dist/node/pocket-family-office.feature.js +2 -86
  39. package/dist/node/telemetry.js +1 -176
  40. package/dist/node/tenant.sample.js +1 -71
  41. package/dist/node/workflows/generate-financial-summary.js +1 -58
  42. package/dist/node/workflows/generate-openbanking-overview.js +1 -52
  43. package/dist/node/workflows/index.js +1 -467
  44. package/dist/node/workflows/ingest-email-threads.js +1 -56
  45. package/dist/node/workflows/process-uploaded-document.js +1 -54
  46. package/dist/node/workflows/refresh-openbanking-balances.js +1 -64
  47. package/dist/node/workflows/sync-openbanking-accounts.js +1 -64
  48. package/dist/node/workflows/sync-openbanking-transactions.js +1 -64
  49. package/dist/node/workflows/upcoming-payments-reminder.js +1 -62
  50. package/dist/operations/index.js +1 -314
  51. package/dist/pocket-family-office.capability.js +1 -19
  52. package/dist/pocket-family-office.feature.js +2 -86
  53. package/dist/telemetry.js +1 -176
  54. package/dist/tenant.sample.js +1 -71
  55. package/dist/workflows/generate-financial-summary.js +1 -58
  56. package/dist/workflows/generate-openbanking-overview.js +1 -52
  57. package/dist/workflows/index.js +1 -467
  58. package/dist/workflows/ingest-email-threads.js +1 -56
  59. package/dist/workflows/process-uploaded-document.js +1 -54
  60. package/dist/workflows/refresh-openbanking-balances.js +1 -64
  61. package/dist/workflows/sync-openbanking-accounts.js +1 -64
  62. package/dist/workflows/sync-openbanking-transactions.js +1 -64
  63. package/dist/workflows/upcoming-payments-reminder.js +1 -62
  64. package/package.json +7 -7
package/dist/blueprint.js CHANGED
@@ -1,198 +1,2 @@
1
1
  // @bun
2
- // src/blueprint.ts
3
- import {
4
- OwnersEnum,
5
- StabilityEnum,
6
- TagsEnum
7
- } from "@contractspec/lib.contracts-spec/ownership";
8
- var cap = (key, version) => ({ key, version });
9
- var pocketFamilyOfficeBlueprint = {
10
- meta: {
11
- key: "pocket-family-office.app",
12
- version: "1.0.0",
13
- appId: "pocket-family-office",
14
- title: "Pocket Family Office",
15
- description: "Household finance automation: ingest documents, track bills, remind payments, and summarise cashflow.",
16
- domain: "finance",
17
- owners: [OwnersEnum.PlatformFinance],
18
- tags: [TagsEnum.Guide, "finance", "automation"],
19
- stability: StabilityEnum.Experimental
20
- },
21
- capabilities: {
22
- enabled: [
23
- cap("ai.chat", "1.0.0"),
24
- cap("ai.embeddings", "1.0.0"),
25
- cap("vector-db.search", "1.0.0"),
26
- cap("vector-db.storage", "1.0.0"),
27
- cap("storage.objects", "1.0.0"),
28
- cap("email.inbound", "1.0.0"),
29
- cap("email.transactional", "1.0.0"),
30
- cap("calendar.events", "1.0.0"),
31
- cap("sms.outbound", "1.0.0"),
32
- cap("ai.voice.tts", "1.0.0"),
33
- cap("payments.psp", "1.0.0"),
34
- cap("openbanking.accounts.read", "1.0.0"),
35
- cap("openbanking.transactions.read", "1.0.0"),
36
- cap("openbanking.balances.read", "1.0.0")
37
- ]
38
- },
39
- integrationSlots: [
40
- {
41
- slotId: "primaryLLM",
42
- requiredCategory: "ai-llm",
43
- allowedModes: ["managed", "byok"],
44
- requiredCapabilities: [cap("ai.chat", "1.0.0")],
45
- required: true,
46
- description: "Chat completion provider powering summarisation, explanations, and insights."
47
- },
48
- {
49
- slotId: "primaryVectorDb",
50
- requiredCategory: "vector-db",
51
- allowedModes: ["managed", "byok"],
52
- requiredCapabilities: [cap("vector-db.search", "1.0.0")],
53
- required: true,
54
- description: "Vector database storing embeddings for financial documents and email threads."
55
- },
56
- {
57
- slotId: "primaryStorage",
58
- requiredCategory: "storage",
59
- allowedModes: ["managed", "byok"],
60
- requiredCapabilities: [cap("storage.objects", "1.0.0")],
61
- required: true,
62
- description: "Object storage used for raw uploads and normalised documents."
63
- },
64
- {
65
- slotId: "primaryOpenBanking",
66
- requiredCategory: "open-banking",
67
- allowedModes: ["byok"],
68
- requiredCapabilities: [
69
- cap("openbanking.accounts.read", "1.0.0"),
70
- cap("openbanking.transactions.read", "1.0.0"),
71
- cap("openbanking.balances.read", "1.0.0")
72
- ],
73
- required: true,
74
- description: "Powens BYOK connection powering bank account, transaction, and balance synchronisation."
75
- },
76
- {
77
- slotId: "emailInbound",
78
- requiredCategory: "email",
79
- allowedModes: ["managed", "byok"],
80
- requiredCapabilities: [cap("email.inbound", "1.0.0")],
81
- required: true,
82
- description: "Inbound email/thread sync (Gmail) feeding the knowledge corpus."
83
- },
84
- {
85
- slotId: "emailOutbound",
86
- requiredCategory: "email",
87
- allowedModes: ["managed", "byok"],
88
- requiredCapabilities: [cap("email.transactional", "1.0.0")],
89
- required: true,
90
- description: "Transactional email delivery for reminders and summaries."
91
- },
92
- {
93
- slotId: "calendarScheduling",
94
- requiredCategory: "calendar",
95
- allowedModes: ["managed", "byok"],
96
- requiredCapabilities: [cap("calendar.events", "1.0.0")],
97
- required: true,
98
- description: "Creates calendar holds for bill reviews and handoff meetings."
99
- },
100
- {
101
- slotId: "voicePlayback",
102
- requiredCategory: "ai-voice-tts",
103
- allowedModes: ["managed", "byok"],
104
- requiredCapabilities: [cap("ai.voice.tts", "1.0.0")],
105
- required: false,
106
- description: "Optional voice synthesis for spoken summaries (ElevenLabs)."
107
- },
108
- {
109
- slotId: "smsNotifications",
110
- requiredCategory: "sms",
111
- allowedModes: ["managed", "byok"],
112
- requiredCapabilities: [cap("sms.outbound", "1.0.0")],
113
- required: false,
114
- description: "SMS provider used for urgent reminders."
115
- },
116
- {
117
- slotId: "paymentsProcessing",
118
- requiredCategory: "payments",
119
- allowedModes: ["managed", "byok"],
120
- requiredCapabilities: [cap("payments.psp", "1.0.0")],
121
- required: false,
122
- description: "Optional payments processor enabling bill pay automations."
123
- }
124
- ],
125
- workflows: {
126
- processUploadedDocument: {
127
- key: "pfo.workflow.process-uploaded-document",
128
- version: "1.0.0"
129
- },
130
- upcomingPaymentsReminder: {
131
- key: "pfo.workflow.upcoming-payments-reminder",
132
- version: "1.0.0"
133
- },
134
- generateFinancialSummary: {
135
- key: "pfo.workflow.generate-financial-summary",
136
- version: "1.0.0"
137
- },
138
- ingestEmailThreads: {
139
- key: "pfo.workflow.ingest-email-threads",
140
- version: "1.0.0"
141
- },
142
- syncOpenBankingAccounts: {
143
- key: "pfo.workflow.sync-openbanking-accounts",
144
- version: "1.0.0"
145
- },
146
- syncOpenBankingTransactions: {
147
- key: "pfo.workflow.sync-openbanking-transactions",
148
- version: "1.0.0"
149
- },
150
- refreshOpenBankingBalances: {
151
- key: "pfo.workflow.refresh-openbanking-balances",
152
- version: "1.0.0"
153
- },
154
- generateOpenBankingOverview: {
155
- key: "pfo.workflow.generate-openbanking-overview",
156
- version: "1.0.0"
157
- }
158
- },
159
- policies: [
160
- { key: "pfo.policy.tenancy", version: "1.0.0" },
161
- { key: "knowledge.access.financial-docs", version: "1.0.0" }
162
- ],
163
- telemetry: {
164
- spec: { key: "pfo.telemetry", version: "1.0.0" }
165
- },
166
- featureFlags: [
167
- {
168
- key: "voice-summaries",
169
- enabled: false,
170
- description: "Enable ElevenLabs spoken summaries in addition to email distribution."
171
- }
172
- ],
173
- routes: [
174
- {
175
- path: "/dashboard",
176
- label: "Overview",
177
- workflow: "pfo.workflow.generate-financial-summary"
178
- },
179
- {
180
- path: "/documents/upload",
181
- label: "Upload Document",
182
- workflow: "pfo.workflow.process-uploaded-document"
183
- },
184
- {
185
- path: "/communications",
186
- label: "Inbox",
187
- workflow: "pfo.workflow.ingest-email-threads"
188
- }
189
- ],
190
- notes: "Pocket Family Office blueprint pulling together finance automations for the hackathon reference implementation."
191
- };
192
- function registerPocketFamilyOfficeBlueprint(registry) {
193
- return registry.register(pocketFamilyOfficeBlueprint);
194
- }
195
- export {
196
- registerPocketFamilyOfficeBlueprint,
197
- pocketFamilyOfficeBlueprint
198
- };
2
+ import{OwnersEnum as x,StabilityEnum as z,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";var d=(j,q)=>({key:j,version:q}),C={meta:{key:"pocket-family-office.app",version:"1.0.0",appId:"pocket-family-office",title:"Pocket Family Office",description:"Household finance automation: ingest documents, track bills, remind payments, and summarise cashflow.",domain:"finance",owners:[x.PlatformFinance],tags:[A.Guide,"finance","automation"],stability:z.Experimental},capabilities:{enabled:[d("ai.chat","1.0.0"),d("ai.embeddings","1.0.0"),d("vector-db.search","1.0.0"),d("vector-db.storage","1.0.0"),d("storage.objects","1.0.0"),d("email.inbound","1.0.0"),d("email.transactional","1.0.0"),d("calendar.events","1.0.0"),d("sms.outbound","1.0.0"),d("ai.voice.tts","1.0.0"),d("payments.psp","1.0.0"),d("openbanking.accounts.read","1.0.0"),d("openbanking.transactions.read","1.0.0"),d("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[d("ai.chat","1.0.0")],required:!0,description:"Chat completion provider powering summarisation, explanations, and insights."},{slotId:"primaryVectorDb",requiredCategory:"vector-db",allowedModes:["managed","byok"],requiredCapabilities:[d("vector-db.search","1.0.0")],required:!0,description:"Vector database storing embeddings for financial documents and email threads."},{slotId:"primaryStorage",requiredCategory:"storage",allowedModes:["managed","byok"],requiredCapabilities:[d("storage.objects","1.0.0")],required:!0,description:"Object storage used for raw uploads and normalised documents."},{slotId:"primaryOpenBanking",requiredCategory:"open-banking",allowedModes:["byok"],requiredCapabilities:[d("openbanking.accounts.read","1.0.0"),d("openbanking.transactions.read","1.0.0"),d("openbanking.balances.read","1.0.0")],required:!0,description:"Powens BYOK connection powering bank account, transaction, and balance synchronisation."},{slotId:"emailInbound",requiredCategory:"email",allowedModes:["managed","byok"],requiredCapabilities:[d("email.inbound","1.0.0")],required:!0,description:"Inbound email/thread sync (Gmail) feeding the knowledge corpus."},{slotId:"emailOutbound",requiredCategory:"email",allowedModes:["managed","byok"],requiredCapabilities:[d("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[d("calendar.events","1.0.0")],required:!0,description:"Creates calendar holds for bill reviews and handoff meetings."},{slotId:"voicePlayback",requiredCategory:"ai-voice-tts",allowedModes:["managed","byok"],requiredCapabilities:[d("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[d("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[d("payments.psp","1.0.0")],required:!1,description:"Optional payments processor enabling bill pay automations."}],workflows:{processUploadedDocument:{key:"pfo.workflow.process-uploaded-document",version:"1.0.0"},upcomingPaymentsReminder:{key:"pfo.workflow.upcoming-payments-reminder",version:"1.0.0"},generateFinancialSummary:{key:"pfo.workflow.generate-financial-summary",version:"1.0.0"},ingestEmailThreads:{key:"pfo.workflow.ingest-email-threads",version:"1.0.0"},syncOpenBankingAccounts:{key:"pfo.workflow.sync-openbanking-accounts",version:"1.0.0"},syncOpenBankingTransactions:{key:"pfo.workflow.sync-openbanking-transactions",version:"1.0.0"},refreshOpenBankingBalances:{key:"pfo.workflow.refresh-openbanking-balances",version:"1.0.0"},generateOpenBankingOverview:{key:"pfo.workflow.generate-openbanking-overview",version:"1.0.0"}},policies:[{key:"pfo.policy.tenancy",version:"1.0.0"},{key:"knowledge.access.financial-docs",version:"1.0.0"}],telemetry:{spec:{key:"pfo.telemetry",version:"1.0.0"}},featureFlags:[{key:"voice-summaries",enabled:!1,description:"Enable ElevenLabs spoken summaries in addition to email distribution."}],routes:[{path:"/dashboard",label:"Overview",workflow:"pfo.workflow.generate-financial-summary"},{path:"/documents/upload",label:"Upload Document",workflow:"pfo.workflow.process-uploaded-document"},{path:"/communications",label:"Inbox",workflow:"pfo.workflow.ingest-email-threads"}],notes:"Pocket Family Office blueprint pulling together finance automations for the hackathon reference implementation."};function G(j){return j.register(C)}export{G as registerPocketFamilyOfficeBlueprint,C as pocketFamilyOfficeBlueprint};
@@ -1,197 +1 @@
1
- // src/blueprint.ts
2
- import {
3
- OwnersEnum,
4
- StabilityEnum,
5
- TagsEnum
6
- } from "@contractspec/lib.contracts-spec/ownership";
7
- var cap = (key, version) => ({ key, version });
8
- var pocketFamilyOfficeBlueprint = {
9
- meta: {
10
- key: "pocket-family-office.app",
11
- version: "1.0.0",
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: [TagsEnum.Guide, "finance", "automation"],
18
- stability: StabilityEnum.Experimental
19
- },
20
- capabilities: {
21
- enabled: [
22
- cap("ai.chat", "1.0.0"),
23
- cap("ai.embeddings", "1.0.0"),
24
- cap("vector-db.search", "1.0.0"),
25
- cap("vector-db.storage", "1.0.0"),
26
- cap("storage.objects", "1.0.0"),
27
- cap("email.inbound", "1.0.0"),
28
- cap("email.transactional", "1.0.0"),
29
- cap("calendar.events", "1.0.0"),
30
- cap("sms.outbound", "1.0.0"),
31
- cap("ai.voice.tts", "1.0.0"),
32
- cap("payments.psp", "1.0.0"),
33
- cap("openbanking.accounts.read", "1.0.0"),
34
- cap("openbanking.transactions.read", "1.0.0"),
35
- cap("openbanking.balances.read", "1.0.0")
36
- ]
37
- },
38
- integrationSlots: [
39
- {
40
- slotId: "primaryLLM",
41
- requiredCategory: "ai-llm",
42
- allowedModes: ["managed", "byok"],
43
- requiredCapabilities: [cap("ai.chat", "1.0.0")],
44
- required: true,
45
- description: "Chat completion provider powering summarisation, explanations, and insights."
46
- },
47
- {
48
- slotId: "primaryVectorDb",
49
- requiredCategory: "vector-db",
50
- allowedModes: ["managed", "byok"],
51
- requiredCapabilities: [cap("vector-db.search", "1.0.0")],
52
- required: true,
53
- description: "Vector database storing embeddings for financial documents and email threads."
54
- },
55
- {
56
- slotId: "primaryStorage",
57
- requiredCategory: "storage",
58
- allowedModes: ["managed", "byok"],
59
- requiredCapabilities: [cap("storage.objects", "1.0.0")],
60
- required: true,
61
- description: "Object storage used for raw uploads and normalised documents."
62
- },
63
- {
64
- slotId: "primaryOpenBanking",
65
- requiredCategory: "open-banking",
66
- allowedModes: ["byok"],
67
- requiredCapabilities: [
68
- cap("openbanking.accounts.read", "1.0.0"),
69
- cap("openbanking.transactions.read", "1.0.0"),
70
- cap("openbanking.balances.read", "1.0.0")
71
- ],
72
- required: true,
73
- description: "Powens BYOK connection powering bank account, transaction, and balance synchronisation."
74
- },
75
- {
76
- slotId: "emailInbound",
77
- requiredCategory: "email",
78
- allowedModes: ["managed", "byok"],
79
- requiredCapabilities: [cap("email.inbound", "1.0.0")],
80
- required: true,
81
- description: "Inbound email/thread sync (Gmail) feeding the knowledge corpus."
82
- },
83
- {
84
- slotId: "emailOutbound",
85
- requiredCategory: "email",
86
- allowedModes: ["managed", "byok"],
87
- requiredCapabilities: [cap("email.transactional", "1.0.0")],
88
- required: true,
89
- description: "Transactional email delivery for reminders and summaries."
90
- },
91
- {
92
- slotId: "calendarScheduling",
93
- requiredCategory: "calendar",
94
- allowedModes: ["managed", "byok"],
95
- requiredCapabilities: [cap("calendar.events", "1.0.0")],
96
- required: true,
97
- description: "Creates calendar holds for bill reviews and handoff meetings."
98
- },
99
- {
100
- slotId: "voicePlayback",
101
- requiredCategory: "ai-voice-tts",
102
- allowedModes: ["managed", "byok"],
103
- requiredCapabilities: [cap("ai.voice.tts", "1.0.0")],
104
- required: false,
105
- description: "Optional voice synthesis for spoken summaries (ElevenLabs)."
106
- },
107
- {
108
- slotId: "smsNotifications",
109
- requiredCategory: "sms",
110
- allowedModes: ["managed", "byok"],
111
- requiredCapabilities: [cap("sms.outbound", "1.0.0")],
112
- required: false,
113
- description: "SMS provider used for urgent reminders."
114
- },
115
- {
116
- slotId: "paymentsProcessing",
117
- requiredCategory: "payments",
118
- allowedModes: ["managed", "byok"],
119
- requiredCapabilities: [cap("payments.psp", "1.0.0")],
120
- required: false,
121
- description: "Optional payments processor enabling bill pay automations."
122
- }
123
- ],
124
- workflows: {
125
- processUploadedDocument: {
126
- key: "pfo.workflow.process-uploaded-document",
127
- version: "1.0.0"
128
- },
129
- upcomingPaymentsReminder: {
130
- key: "pfo.workflow.upcoming-payments-reminder",
131
- version: "1.0.0"
132
- },
133
- generateFinancialSummary: {
134
- key: "pfo.workflow.generate-financial-summary",
135
- version: "1.0.0"
136
- },
137
- ingestEmailThreads: {
138
- key: "pfo.workflow.ingest-email-threads",
139
- version: "1.0.0"
140
- },
141
- syncOpenBankingAccounts: {
142
- key: "pfo.workflow.sync-openbanking-accounts",
143
- version: "1.0.0"
144
- },
145
- syncOpenBankingTransactions: {
146
- key: "pfo.workflow.sync-openbanking-transactions",
147
- version: "1.0.0"
148
- },
149
- refreshOpenBankingBalances: {
150
- key: "pfo.workflow.refresh-openbanking-balances",
151
- version: "1.0.0"
152
- },
153
- generateOpenBankingOverview: {
154
- key: "pfo.workflow.generate-openbanking-overview",
155
- version: "1.0.0"
156
- }
157
- },
158
- policies: [
159
- { key: "pfo.policy.tenancy", version: "1.0.0" },
160
- { key: "knowledge.access.financial-docs", version: "1.0.0" }
161
- ],
162
- telemetry: {
163
- spec: { key: "pfo.telemetry", version: "1.0.0" }
164
- },
165
- featureFlags: [
166
- {
167
- key: "voice-summaries",
168
- enabled: false,
169
- description: "Enable ElevenLabs spoken summaries in addition to email distribution."
170
- }
171
- ],
172
- routes: [
173
- {
174
- path: "/dashboard",
175
- label: "Overview",
176
- workflow: "pfo.workflow.generate-financial-summary"
177
- },
178
- {
179
- path: "/documents/upload",
180
- label: "Upload Document",
181
- workflow: "pfo.workflow.process-uploaded-document"
182
- },
183
- {
184
- path: "/communications",
185
- label: "Inbox",
186
- workflow: "pfo.workflow.ingest-email-threads"
187
- }
188
- ],
189
- notes: "Pocket Family Office blueprint pulling together finance automations for the hackathon reference implementation."
190
- };
191
- function registerPocketFamilyOfficeBlueprint(registry) {
192
- return registry.register(pocketFamilyOfficeBlueprint);
193
- }
194
- export {
195
- registerPocketFamilyOfficeBlueprint,
196
- pocketFamilyOfficeBlueprint
197
- };
1
+ import{OwnersEnum as x,StabilityEnum as z,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";var d=(j,q)=>({key:j,version:q}),C={meta:{key:"pocket-family-office.app",version:"1.0.0",appId:"pocket-family-office",title:"Pocket Family Office",description:"Household finance automation: ingest documents, track bills, remind payments, and summarise cashflow.",domain:"finance",owners:[x.PlatformFinance],tags:[A.Guide,"finance","automation"],stability:z.Experimental},capabilities:{enabled:[d("ai.chat","1.0.0"),d("ai.embeddings","1.0.0"),d("vector-db.search","1.0.0"),d("vector-db.storage","1.0.0"),d("storage.objects","1.0.0"),d("email.inbound","1.0.0"),d("email.transactional","1.0.0"),d("calendar.events","1.0.0"),d("sms.outbound","1.0.0"),d("ai.voice.tts","1.0.0"),d("payments.psp","1.0.0"),d("openbanking.accounts.read","1.0.0"),d("openbanking.transactions.read","1.0.0"),d("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[d("ai.chat","1.0.0")],required:!0,description:"Chat completion provider powering summarisation, explanations, and insights."},{slotId:"primaryVectorDb",requiredCategory:"vector-db",allowedModes:["managed","byok"],requiredCapabilities:[d("vector-db.search","1.0.0")],required:!0,description:"Vector database storing embeddings for financial documents and email threads."},{slotId:"primaryStorage",requiredCategory:"storage",allowedModes:["managed","byok"],requiredCapabilities:[d("storage.objects","1.0.0")],required:!0,description:"Object storage used for raw uploads and normalised documents."},{slotId:"primaryOpenBanking",requiredCategory:"open-banking",allowedModes:["byok"],requiredCapabilities:[d("openbanking.accounts.read","1.0.0"),d("openbanking.transactions.read","1.0.0"),d("openbanking.balances.read","1.0.0")],required:!0,description:"Powens BYOK connection powering bank account, transaction, and balance synchronisation."},{slotId:"emailInbound",requiredCategory:"email",allowedModes:["managed","byok"],requiredCapabilities:[d("email.inbound","1.0.0")],required:!0,description:"Inbound email/thread sync (Gmail) feeding the knowledge corpus."},{slotId:"emailOutbound",requiredCategory:"email",allowedModes:["managed","byok"],requiredCapabilities:[d("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[d("calendar.events","1.0.0")],required:!0,description:"Creates calendar holds for bill reviews and handoff meetings."},{slotId:"voicePlayback",requiredCategory:"ai-voice-tts",allowedModes:["managed","byok"],requiredCapabilities:[d("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[d("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[d("payments.psp","1.0.0")],required:!1,description:"Optional payments processor enabling bill pay automations."}],workflows:{processUploadedDocument:{key:"pfo.workflow.process-uploaded-document",version:"1.0.0"},upcomingPaymentsReminder:{key:"pfo.workflow.upcoming-payments-reminder",version:"1.0.0"},generateFinancialSummary:{key:"pfo.workflow.generate-financial-summary",version:"1.0.0"},ingestEmailThreads:{key:"pfo.workflow.ingest-email-threads",version:"1.0.0"},syncOpenBankingAccounts:{key:"pfo.workflow.sync-openbanking-accounts",version:"1.0.0"},syncOpenBankingTransactions:{key:"pfo.workflow.sync-openbanking-transactions",version:"1.0.0"},refreshOpenBankingBalances:{key:"pfo.workflow.refresh-openbanking-balances",version:"1.0.0"},generateOpenBankingOverview:{key:"pfo.workflow.generate-openbanking-overview",version:"1.0.0"}},policies:[{key:"pfo.policy.tenancy",version:"1.0.0"},{key:"knowledge.access.financial-docs",version:"1.0.0"}],telemetry:{spec:{key:"pfo.telemetry",version:"1.0.0"}},featureFlags:[{key:"voice-summaries",enabled:!1,description:"Enable ElevenLabs spoken summaries in addition to email distribution."}],routes:[{path:"/dashboard",label:"Overview",workflow:"pfo.workflow.generate-financial-summary"},{path:"/documents/upload",label:"Upload Document",workflow:"pfo.workflow.process-uploaded-document"},{path:"/communications",label:"Inbox",workflow:"pfo.workflow.ingest-email-threads"}],notes:"Pocket Family Office blueprint pulling together finance automations for the hackathon reference implementation."};function G(j){return j.register(C)}export{G as registerPocketFamilyOfficeBlueprint,C as pocketFamilyOfficeBlueprint};
@@ -1,197 +1 @@
1
- // src/connections/samples.ts
2
- var now = new Date;
3
- var baseMeta = {
4
- tenantId: "tenant.family-office",
5
- createdAt: now,
6
- updatedAt: now
7
- };
8
- var pocketFamilyOfficeConnections = [
9
- {
10
- meta: {
11
- ...baseMeta,
12
- id: "conn-mistral-primary",
13
- integrationKey: "ai-llm.mistral",
14
- integrationVersion: "1.0.0",
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.0.0",
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: { status: "connected", checkedAt: now, latencyMs: 95 }
48
- },
49
- {
50
- meta: {
51
- ...baseMeta,
52
- id: "conn-gcs-documents",
53
- integrationKey: "storage.gcs",
54
- integrationVersion: "1.0.0",
55
- label: "GCS Documents Bucket"
56
- },
57
- ownershipMode: "managed",
58
- config: {
59
- bucket: "pfo-uploads",
60
- prefix: "financial-docs/"
61
- },
62
- secretProvider: "gcp-secret-manager",
63
- secretRef: "gcp://projects/pfo-hackathon/secrets/gcs-service-account/versions/latest",
64
- status: "connected",
65
- health: { status: "connected", checkedAt: now, latencyMs: 60 }
66
- },
67
- {
68
- meta: {
69
- ...baseMeta,
70
- id: "conn-gmail-threads",
71
- integrationKey: "email.gmail",
72
- integrationVersion: "1.0.0",
73
- label: "Gmail Household Threads"
74
- },
75
- ownershipMode: "byok",
76
- config: {
77
- labelIds: ["FINANCE", "INBOX"],
78
- includeSpamTrash: false
79
- },
80
- secretProvider: "gcp-secret-manager",
81
- secretRef: "gcp://projects/pfo-hackathon/secrets/gmail-refresh-token/versions/latest",
82
- status: "connected",
83
- health: { status: "connected", checkedAt: now, latencyMs: 320 }
84
- },
85
- {
86
- meta: {
87
- ...baseMeta,
88
- id: "conn-postmark-outbound",
89
- integrationKey: "email.postmark",
90
- integrationVersion: "1.0.0",
91
- label: "Postmark Transactional"
92
- },
93
- ownershipMode: "managed",
94
- config: {
95
- messageStream: "outbound",
96
- fromEmail: "family.office@pfo.dev"
97
- },
98
- secretProvider: "gcp-secret-manager",
99
- secretRef: "gcp://projects/pfo-hackathon/secrets/postmark-server-token/versions/latest",
100
- status: "connected",
101
- health: { status: "connected", checkedAt: now, latencyMs: 210 }
102
- },
103
- {
104
- meta: {
105
- ...baseMeta,
106
- id: "conn-google-calendar",
107
- integrationKey: "calendar.google",
108
- integrationVersion: "1.0.0",
109
- label: "Household Calendar"
110
- },
111
- ownershipMode: "managed",
112
- config: {
113
- calendarId: "primary"
114
- },
115
- secretProvider: "gcp-secret-manager",
116
- secretRef: "gcp://projects/pfo-hackathon/secrets/google-calendar-service-account/versions/latest",
117
- status: "connected",
118
- health: { status: "connected", checkedAt: now, latencyMs: 140 }
119
- },
120
- {
121
- meta: {
122
- ...baseMeta,
123
- id: "conn-elevenlabs-voice",
124
- integrationKey: "ai-voice.elevenlabs",
125
- integrationVersion: "1.0.0",
126
- label: "ElevenLabs Voice"
127
- },
128
- ownershipMode: "byok",
129
- config: {
130
- defaultVoiceId: "pNInz6obpgDQGcFmaJgB"
131
- },
132
- secretProvider: "gcp-secret-manager",
133
- secretRef: "gcp://projects/pfo-hackathon/secrets/elevenlabs-api-key/versions/latest",
134
- status: "connected",
135
- health: { status: "connected", checkedAt: now, latencyMs: 250 }
136
- },
137
- {
138
- meta: {
139
- ...baseMeta,
140
- id: "conn-twilio-sms",
141
- integrationKey: "sms.twilio",
142
- integrationVersion: "1.0.0",
143
- label: "Twilio SMS"
144
- },
145
- ownershipMode: "managed",
146
- config: {
147
- fromNumber: "+15552340000"
148
- },
149
- secretProvider: "gcp-secret-manager",
150
- secretRef: "gcp://projects/pfo-hackathon/secrets/twilio-auth-token/versions/latest",
151
- status: "connected",
152
- health: { status: "connected", checkedAt: now, latencyMs: 180 }
153
- },
154
- {
155
- meta: {
156
- ...baseMeta,
157
- id: "conn-stripe-recurring",
158
- integrationKey: "payments.stripe",
159
- integrationVersion: "1.0.0",
160
- label: "Stripe Recurring Billing"
161
- },
162
- ownershipMode: "managed",
163
- config: {
164
- accountId: "acct_1PFOHACKATHON",
165
- region: "eu-west-1"
166
- },
167
- secretProvider: "gcp-secret-manager",
168
- secretRef: "gcp://projects/pfo-hackathon/secrets/stripe-secret-key/versions/latest",
169
- status: "connected",
170
- health: { status: "connected", checkedAt: now, latencyMs: 220 }
171
- },
172
- {
173
- meta: {
174
- ...baseMeta,
175
- id: "conn-powens-primary",
176
- integrationKey: "openbanking.powens",
177
- integrationVersion: "1.0.0",
178
- label: "Powens Open Banking"
179
- },
180
- ownershipMode: "byok",
181
- config: {
182
- environment: "sandbox",
183
- baseUrl: "https://api-sandbox.powens.com/v2"
184
- },
185
- secretProvider: "gcp-secret-manager",
186
- secretRef: "gcp://projects/pfo-hackathon/secrets/powens-credentials/versions/latest",
187
- status: "connected",
188
- health: { status: "connected", checkedAt: now, latencyMs: 410 }
189
- }
190
- ];
191
- function getPocketFamilyOfficeConnection(connectionId) {
192
- return pocketFamilyOfficeConnections.find((connection) => connection.meta.id === connectionId);
193
- }
194
- export {
195
- pocketFamilyOfficeConnections,
196
- getPocketFamilyOfficeConnection
197
- };
1
+ var e=new Date,t={tenantId:"tenant.family-office",createdAt:e,updatedAt:e},o=[{meta:{...t,id:"conn-mistral-primary",integrationKey:"ai-llm.mistral",integrationVersion:"1.0.0",label:"Mistral Primary"},ownershipMode:"managed",config:{model:"mistral-large-latest",embeddingModel:"mistral-embed"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/mistral-api-key/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:180}},{meta:{...t,id:"conn-qdrant-finance",integrationKey:"vectordb.qdrant",integrationVersion:"1.0.0",label:"Qdrant Finance Cluster"},ownershipMode:"managed",config:{apiUrl:"https://qdrant.pfo.internal",collectionPrefix:"tenant-family-office"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/qdrant-api-key/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:95}},{meta:{...t,id:"conn-gcs-documents",integrationKey:"storage.gcs",integrationVersion:"1.0.0",label:"GCS Documents Bucket"},ownershipMode:"managed",config:{bucket:"pfo-uploads",prefix:"financial-docs/"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/gcs-service-account/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:60}},{meta:{...t,id:"conn-gmail-threads",integrationKey:"email.gmail",integrationVersion:"1.0.0",label:"Gmail Household Threads"},ownershipMode:"byok",config:{labelIds:["FINANCE","INBOX"],includeSpamTrash:!1},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/gmail-refresh-token/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:320}},{meta:{...t,id:"conn-postmark-outbound",integrationKey:"email.postmark",integrationVersion:"1.0.0",label:"Postmark Transactional"},ownershipMode:"managed",config:{messageStream:"outbound",fromEmail:"family.office@pfo.dev"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/postmark-server-token/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:210}},{meta:{...t,id:"conn-google-calendar",integrationKey:"calendar.google",integrationVersion:"1.0.0",label:"Household Calendar"},ownershipMode:"managed",config:{calendarId:"primary"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/google-calendar-service-account/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:140}},{meta:{...t,id:"conn-elevenlabs-voice",integrationKey:"ai-voice.elevenlabs",integrationVersion:"1.0.0",label:"ElevenLabs Voice"},ownershipMode:"byok",config:{defaultVoiceId:"pNInz6obpgDQGcFmaJgB"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/elevenlabs-api-key/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:250}},{meta:{...t,id:"conn-twilio-sms",integrationKey:"sms.twilio",integrationVersion:"1.0.0",label:"Twilio SMS"},ownershipMode:"managed",config:{fromNumber:"+15552340000"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/twilio-auth-token/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:180}},{meta:{...t,id:"conn-stripe-recurring",integrationKey:"payments.stripe",integrationVersion:"1.0.0",label:"Stripe Recurring Billing"},ownershipMode:"managed",config:{accountId:"acct_1PFOHACKATHON",region:"eu-west-1"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/stripe-secret-key/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:220}},{meta:{...t,id:"conn-powens-primary",integrationKey:"openbanking.powens",integrationVersion:"1.0.0",label:"Powens Open Banking"},ownershipMode:"byok",config:{environment:"sandbox",baseUrl:"https://api-sandbox.powens.com/v2"},secretProvider:"gcp-secret-manager",secretRef:"gcp://projects/pfo-hackathon/secrets/powens-credentials/versions/latest",status:"connected",health:{status:"connected",checkedAt:e,latencyMs:410}}];function c(n){return o.find((a)=>a.meta.id===n)}export{o as pocketFamilyOfficeConnections,c as getPocketFamilyOfficeConnection};