@contractspec/example.pocket-family-office 3.7.25 → 3.8.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.
- package/README.md +8 -1
- package/dist/browser/index.js +3 -3
- package/dist/browser/ui/PocketFamilyOfficePreview.js +1 -0
- package/dist/browser/ui/index.js +1 -0
- package/dist/browser/ui/pocket-family-office-preview.data.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -3
- package/dist/node/index.js +3 -3
- package/dist/node/ui/PocketFamilyOfficePreview.js +1 -0
- package/dist/node/ui/index.js +1 -0
- package/dist/node/ui/pocket-family-office-preview.data.js +1 -0
- package/dist/ui/PocketFamilyOfficePreview.d.ts +1 -0
- package/dist/ui/PocketFamilyOfficePreview.js +2 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/pocket-family-office-preview.data.d.ts +26 -0
- package/dist/ui/pocket-family-office-preview.data.js +2 -0
- package/package.json +54 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{OwnersEnum as p,StabilityEnum as g,TagsEnum as f}from"@contractspec/lib.contracts-spec/ownership";var e=(n,c)=>({key:n,version:c}),s={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:[p.PlatformFinance],tags:[f.Guide,"finance","automation"],stability:g.Experimental},capabilities:{enabled:[e("ai.chat","1.0.0"),e("ai.embeddings","1.0.0"),e("vector-db.search","1.0.0"),e("vector-db.storage","1.0.0"),e("storage.objects","1.0.0"),e("email.inbound","1.0.0"),e("email.transactional","1.0.0"),e("calendar.events","1.0.0"),e("sms.outbound","1.0.0"),e("ai.voice.tts","1.0.0"),e("payments.psp","1.0.0"),e("openbanking.accounts.read","1.0.0"),e("openbanking.transactions.read","1.0.0"),e("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[e("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:[e("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:[e("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:[e("openbanking.accounts.read","1.0.0"),e("openbanking.transactions.read","1.0.0"),e("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:[e("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:[e("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[e("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:[e("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[e("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[e("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 k(n){return n.register(s)}var t=new Date,o={tenantId:"tenant.family-office",createdAt:t,updatedAt:t},i=[{meta:{...o,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:t,latencyMs:180}},{meta:{...o,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:t,latencyMs:95}},{meta:{...o,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:t,latencyMs:60}},{meta:{...o,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:t,latencyMs:320}},{meta:{...o,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:t,latencyMs:210}},{meta:{...o,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:t,latencyMs:140}},{meta:{...o,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:t,latencyMs:250}},{meta:{...o,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:t,latencyMs:180}},{meta:{...o,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:t,latencyMs:220}},{meta:{...o,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:t,latencyMs:410}}];function b(n){return i.find((c)=>c.meta.id===n)}var a=new Date,r=[{meta:{id:"source-financial-uploads",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-docs",spaceVersion:"1.0.0",label:"Uploaded Financial Documents",sourceType:"file_upload",createdAt:a,updatedAt:a},config:{bucket:"pfo-uploads",prefix:"financial-docs/"},syncSchedule:{enabled:!0,intervalMs:900000},lastSync:{timestamp:a,success:!0}},{meta:{id:"source-gmail-threads",tenantId:"tenant.family-office",spaceKey:"knowledge.email-threads",spaceVersion:"1.0.0",label:"Household Gmail Threads",sourceType:"email",createdAt:a,updatedAt:a},config:{labelIds:["INBOX","FINANCE"]},syncSchedule:{enabled:!0,intervalMs:300000},lastSync:{timestamp:a,success:!0}},{meta:{id:"source-financial-overview",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-overview",spaceVersion:"1.0.0",label:"Financial Overview",sourceType:"api",createdAt:a,updatedAt:a},config:{},syncSchedule:{enabled:!1}}];var l={meta:{id:"tenant-pfo-sample",tenantId:"tenant.family-office",appId:"pocket-family-office",blueprintName:"pocket-family-office.app",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),status:"published"},featureFlags:[{key:"voice-summaries",enabled:!0,description:"Enable spoken ElevenLabs summaries for daily briefings."}],integrations:[{slotId:"primaryLLM",connectionId:"conn-mistral-primary"},{slotId:"primaryVectorDb",connectionId:"conn-qdrant-finance"},{slotId:"primaryStorage",connectionId:"conn-gcs-documents"},{slotId:"primaryOpenBanking",connectionId:"conn-powens-primary"},{slotId:"emailInbound",connectionId:"conn-gmail-threads"},{slotId:"emailOutbound",connectionId:"conn-postmark-outbound"},{slotId:"calendarScheduling",connectionId:"conn-google-calendar"},{slotId:"voicePlayback",connectionId:"conn-elevenlabs-voice"},{slotId:"smsNotifications",connectionId:"conn-twilio-sms"},{slotId:"paymentsProcessing",connectionId:"conn-stripe-recurring"}],knowledge:[{spaceKey:"knowledge.financial-docs",scope:{workflows:["pfo.workflow.process-uploaded-document","pfo.workflow.generate-financial-summary"]}},{spaceKey:"knowledge.email-threads",scope:{workflows:["pfo.workflow.ingest-email-threads"]}},{spaceKey:"knowledge.financial-overview",scope:{workflows:["pfo.workflow.sync-openbanking-transactions","pfo.workflow.refresh-openbanking-balances","pfo.workflow.generate-financial-summary","pfo.workflow.generate-openbanking-overview"]},required:!1}],locales:{defaultLocale:"en",enabledLocales:["en"]},notes:"Sample tenant configuration for hackathon demos. Replace connection IDs with tenant-specific bindings when provisioning."};var m=s.capabilities?.enabled??[],u=s.integrationSlots??[],d=Object.values(s.workflows??{}),h=l.knowledge??[],P=[{label:"Capabilities",value:String(m.length)},{label:"Integrations",value:String(u.length)},{label:"Workflows",value:String(d.length)},{label:"Knowledge spaces",value:String(h.length)}],C=i.slice(0,5).map((n)=>({id:n.meta.id,label:n.meta.label,mode:n.ownershipMode,status:n.status})),R=r.map((n)=>({id:n.meta.id,label:n.meta.label,type:n.meta.sourceType,enabled:n.syncSchedule?.enabled??!1})),N=d;export{N as pocketFamilyOfficePreviewWorkflows,P as pocketFamilyOfficePreviewMetrics,R as pocketFamilyOfficePreviewKnowledge,C as pocketFamilyOfficePreviewConnections};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PocketFamilyOfficePreview(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{OwnersEnum as I,StabilityEnum as M,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";var n=(e,l)=>({key:e,version:l}),d={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:[I.PlatformFinance],tags:[A.Guide,"finance","automation"],stability:M.Experimental},capabilities:{enabled:[n("ai.chat","1.0.0"),n("ai.embeddings","1.0.0"),n("vector-db.search","1.0.0"),n("vector-db.storage","1.0.0"),n("storage.objects","1.0.0"),n("email.inbound","1.0.0"),n("email.transactional","1.0.0"),n("calendar.events","1.0.0"),n("sms.outbound","1.0.0"),n("ai.voice.tts","1.0.0"),n("payments.psp","1.0.0"),n("openbanking.accounts.read","1.0.0"),n("openbanking.transactions.read","1.0.0"),n("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[n("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:[n("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:[n("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:[n("openbanking.accounts.read","1.0.0"),n("openbanking.transactions.read","1.0.0"),n("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:[n("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:[n("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[n("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:[n("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[n("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[n("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 N(e){return e.register(d)}var a=new Date,s={tenantId:"tenant.family-office",createdAt:a,updatedAt:a},g=[{meta:{...s,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:a,latencyMs:180}},{meta:{...s,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:a,latencyMs:95}},{meta:{...s,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:a,latencyMs:60}},{meta:{...s,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:a,latencyMs:320}},{meta:{...s,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:a,latencyMs:210}},{meta:{...s,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:a,latencyMs:140}},{meta:{...s,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:a,latencyMs:250}},{meta:{...s,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:a,latencyMs:180}},{meta:{...s,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:a,latencyMs:220}},{meta:{...s,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:a,latencyMs:410}}];function D(e){return g.find((l)=>l.meta.id===e)}var i=new Date,f=[{meta:{id:"source-financial-uploads",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-docs",spaceVersion:"1.0.0",label:"Uploaded Financial Documents",sourceType:"file_upload",createdAt:i,updatedAt:i},config:{bucket:"pfo-uploads",prefix:"financial-docs/"},syncSchedule:{enabled:!0,intervalMs:900000},lastSync:{timestamp:i,success:!0}},{meta:{id:"source-gmail-threads",tenantId:"tenant.family-office",spaceKey:"knowledge.email-threads",spaceVersion:"1.0.0",label:"Household Gmail Threads",sourceType:"email",createdAt:i,updatedAt:i},config:{labelIds:["INBOX","FINANCE"]},syncSchedule:{enabled:!0,intervalMs:300000},lastSync:{timestamp:i,success:!0}},{meta:{id:"source-financial-overview",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-overview",spaceVersion:"1.0.0",label:"Financial Overview",sourceType:"api",createdAt:i,updatedAt:i},config:{},syncSchedule:{enabled:!1}}];var m={meta:{id:"tenant-pfo-sample",tenantId:"tenant.family-office",appId:"pocket-family-office",blueprintName:"pocket-family-office.app",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),status:"published"},featureFlags:[{key:"voice-summaries",enabled:!0,description:"Enable spoken ElevenLabs summaries for daily briefings."}],integrations:[{slotId:"primaryLLM",connectionId:"conn-mistral-primary"},{slotId:"primaryVectorDb",connectionId:"conn-qdrant-finance"},{slotId:"primaryStorage",connectionId:"conn-gcs-documents"},{slotId:"primaryOpenBanking",connectionId:"conn-powens-primary"},{slotId:"emailInbound",connectionId:"conn-gmail-threads"},{slotId:"emailOutbound",connectionId:"conn-postmark-outbound"},{slotId:"calendarScheduling",connectionId:"conn-google-calendar"},{slotId:"voicePlayback",connectionId:"conn-elevenlabs-voice"},{slotId:"smsNotifications",connectionId:"conn-twilio-sms"},{slotId:"paymentsProcessing",connectionId:"conn-stripe-recurring"}],knowledge:[{spaceKey:"knowledge.financial-docs",scope:{workflows:["pfo.workflow.process-uploaded-document","pfo.workflow.generate-financial-summary"]}},{spaceKey:"knowledge.email-threads",scope:{workflows:["pfo.workflow.ingest-email-threads"]}},{spaceKey:"knowledge.financial-overview",scope:{workflows:["pfo.workflow.sync-openbanking-transactions","pfo.workflow.refresh-openbanking-balances","pfo.workflow.generate-financial-summary","pfo.workflow.generate-openbanking-overview"]},required:!1}],locales:{defaultLocale:"en",enabledLocales:["en"]},notes:"Sample tenant configuration for hackathon demos. Replace connection IDs with tenant-specific bindings when provisioning."};var S=d.capabilities?.enabled??[],K=d.integrationSlots??[],h=Object.values(d.workflows??{}),V=m.knowledge??[],u=[{label:"Capabilities",value:String(S.length)},{label:"Integrations",value:String(K.length)},{label:"Workflows",value:String(h.length)},{label:"Knowledge spaces",value:String(V.length)}],y=g.slice(0,5).map((e)=>({id:e.meta.id,label:e.meta.label,mode:e.ownershipMode,status:e.status})),k=f.map((e)=>({id:e.meta.id,label:e.meta.label,type:e.meta.sourceType,enabled:e.syncSchedule?.enabled??!1})),b=h;import{HStack as p,VStack as r}from"@contractspec/lib.design-system/layout";import{H2 as P,H3 as C,Text as o}from"@contractspec/lib.design-system/typography";import{jsx as t,jsxs as c}from"react/jsx-runtime";function _(){return c(r,{as:"section",gap:"xl",className:"p-4 sm:p-6",children:[c(r,{gap:"sm",className:"rounded-lg border border-border bg-card p-5 shadow-sm",children:[t(o,{className:"font-semibold text-muted-foreground text-xs uppercase",children:"Finance automation template"}),t(P,{className:"font-serif text-3xl tracking-normal",children:"Pocket Family Office"}),t(o,{className:"max-w-3xl text-muted-foreground text-sm leading-6",children:"A household finance automation blueprint for open banking, document ingestion, bill reminders, financial summaries, and tenant-scoped integration bindings."})]}),t(p,{align:"stretch",className:"gap-3 lg:flex-nowrap",children:u.map((e)=>c(r,{gap:"xs",className:"min-w-0 flex-1 rounded-lg border border-border bg-background p-4",children:[t(o,{className:"text-muted-foreground text-xs uppercase",children:e.label}),t(o,{className:"font-semibold text-2xl",children:e.value})]},e.label))}),c(p,{align:"start",className:"gap-6 xl:flex-nowrap",children:[t(v,{title:"Connected operating layer",description:"Sample tenant bindings show how the template wires managed and BYOK integrations.",children:y.map((e)=>c(p,{justify:"between",wrap:"nowrap",className:"rounded-md border border-border bg-background p-3",children:[c(r,{gap:"xs",className:"min-w-0",children:[t(o,{className:"font-semibold text-sm",children:e.label}),t(o,{className:"text-muted-foreground text-xs",children:e.mode})]}),t(o,{className:"text-muted-foreground text-xs capitalize",children:e.status})]},e.id))}),c(v,{title:"Workflows and knowledge",description:"The package exposes durable workflow specs plus knowledge sources for documents, email, and bank data.",children:[t(r,{gap:"xs",children:b.slice(0,5).map((e)=>t(o,{className:"rounded-md border border-border bg-background px-3 py-2 text-xs",children:e.key},e.key))}),t(r,{gap:"xs",className:"rounded-md border border-border bg-muted/40 p-3",children:k.map((e)=>c(p,{justify:"between",wrap:"nowrap",children:[t(o,{className:"text-xs",children:e.label}),t(o,{className:"text-muted-foreground text-xs",children:e.enabled?"syncing":e.type})]},e.id))})]})]})]})}function v({title:e,description:l,children:w}){return c(r,{as:"article",gap:"md",className:"min-w-0 flex-1 rounded-lg border border-border bg-card p-4 shadow-sm",children:[c(r,{as:"header",gap:"xs",children:[t(C,{className:"font-semibold text-lg",children:e}),t(o,{className:"text-muted-foreground text-sm leading-6",children:l})]}),w]})}export{_ as PocketFamilyOfficePreview};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PocketFamilyOfficePreview } from './PocketFamilyOfficePreview';
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{OwnersEnum as I,StabilityEnum as M,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";var n=(e,l)=>({key:e,version:l}),d={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:[I.PlatformFinance],tags:[A.Guide,"finance","automation"],stability:M.Experimental},capabilities:{enabled:[n("ai.chat","1.0.0"),n("ai.embeddings","1.0.0"),n("vector-db.search","1.0.0"),n("vector-db.storage","1.0.0"),n("storage.objects","1.0.0"),n("email.inbound","1.0.0"),n("email.transactional","1.0.0"),n("calendar.events","1.0.0"),n("sms.outbound","1.0.0"),n("ai.voice.tts","1.0.0"),n("payments.psp","1.0.0"),n("openbanking.accounts.read","1.0.0"),n("openbanking.transactions.read","1.0.0"),n("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[n("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:[n("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:[n("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:[n("openbanking.accounts.read","1.0.0"),n("openbanking.transactions.read","1.0.0"),n("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:[n("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:[n("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[n("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:[n("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[n("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[n("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 O(e){return e.register(d)}var a=new Date,s={tenantId:"tenant.family-office",createdAt:a,updatedAt:a},g=[{meta:{...s,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:a,latencyMs:180}},{meta:{...s,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:a,latencyMs:95}},{meta:{...s,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:a,latencyMs:60}},{meta:{...s,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:a,latencyMs:320}},{meta:{...s,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:a,latencyMs:210}},{meta:{...s,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:a,latencyMs:140}},{meta:{...s,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:a,latencyMs:250}},{meta:{...s,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:a,latencyMs:180}},{meta:{...s,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:a,latencyMs:220}},{meta:{...s,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:a,latencyMs:410}}];function D(e){return g.find((l)=>l.meta.id===e)}var i=new Date,f=[{meta:{id:"source-financial-uploads",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-docs",spaceVersion:"1.0.0",label:"Uploaded Financial Documents",sourceType:"file_upload",createdAt:i,updatedAt:i},config:{bucket:"pfo-uploads",prefix:"financial-docs/"},syncSchedule:{enabled:!0,intervalMs:900000},lastSync:{timestamp:i,success:!0}},{meta:{id:"source-gmail-threads",tenantId:"tenant.family-office",spaceKey:"knowledge.email-threads",spaceVersion:"1.0.0",label:"Household Gmail Threads",sourceType:"email",createdAt:i,updatedAt:i},config:{labelIds:["INBOX","FINANCE"]},syncSchedule:{enabled:!0,intervalMs:300000},lastSync:{timestamp:i,success:!0}},{meta:{id:"source-financial-overview",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-overview",spaceVersion:"1.0.0",label:"Financial Overview",sourceType:"api",createdAt:i,updatedAt:i},config:{},syncSchedule:{enabled:!1}}];var m={meta:{id:"tenant-pfo-sample",tenantId:"tenant.family-office",appId:"pocket-family-office",blueprintName:"pocket-family-office.app",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),status:"published"},featureFlags:[{key:"voice-summaries",enabled:!0,description:"Enable spoken ElevenLabs summaries for daily briefings."}],integrations:[{slotId:"primaryLLM",connectionId:"conn-mistral-primary"},{slotId:"primaryVectorDb",connectionId:"conn-qdrant-finance"},{slotId:"primaryStorage",connectionId:"conn-gcs-documents"},{slotId:"primaryOpenBanking",connectionId:"conn-powens-primary"},{slotId:"emailInbound",connectionId:"conn-gmail-threads"},{slotId:"emailOutbound",connectionId:"conn-postmark-outbound"},{slotId:"calendarScheduling",connectionId:"conn-google-calendar"},{slotId:"voicePlayback",connectionId:"conn-elevenlabs-voice"},{slotId:"smsNotifications",connectionId:"conn-twilio-sms"},{slotId:"paymentsProcessing",connectionId:"conn-stripe-recurring"}],knowledge:[{spaceKey:"knowledge.financial-docs",scope:{workflows:["pfo.workflow.process-uploaded-document","pfo.workflow.generate-financial-summary"]}},{spaceKey:"knowledge.email-threads",scope:{workflows:["pfo.workflow.ingest-email-threads"]}},{spaceKey:"knowledge.financial-overview",scope:{workflows:["pfo.workflow.sync-openbanking-transactions","pfo.workflow.refresh-openbanking-balances","pfo.workflow.generate-financial-summary","pfo.workflow.generate-openbanking-overview"]},required:!1}],locales:{defaultLocale:"en",enabledLocales:["en"]},notes:"Sample tenant configuration for hackathon demos. Replace connection IDs with tenant-specific bindings when provisioning."};var S=d.capabilities?.enabled??[],K=d.integrationSlots??[],h=Object.values(d.workflows??{}),P=m.knowledge??[],u=[{label:"Capabilities",value:String(S.length)},{label:"Integrations",value:String(K.length)},{label:"Workflows",value:String(h.length)},{label:"Knowledge spaces",value:String(P.length)}],y=g.slice(0,5).map((e)=>({id:e.meta.id,label:e.meta.label,mode:e.ownershipMode,status:e.status})),k=f.map((e)=>({id:e.meta.id,label:e.meta.label,type:e.meta.sourceType,enabled:e.syncSchedule?.enabled??!1})),b=h;import{HStack as p,VStack as r}from"@contractspec/lib.design-system/layout";import{H2 as V,H3 as C,Text as o}from"@contractspec/lib.design-system/typography";import{jsx as t,jsxs as c}from"react/jsx-runtime";function R(){return c(r,{as:"section",gap:"xl",className:"p-4 sm:p-6",children:[c(r,{gap:"sm",className:"rounded-lg border border-border bg-card p-5 shadow-sm",children:[t(o,{className:"font-semibold text-muted-foreground text-xs uppercase",children:"Finance automation template"}),t(V,{className:"font-serif text-3xl tracking-normal",children:"Pocket Family Office"}),t(o,{className:"max-w-3xl text-muted-foreground text-sm leading-6",children:"A household finance automation blueprint for open banking, document ingestion, bill reminders, financial summaries, and tenant-scoped integration bindings."})]}),t(p,{align:"stretch",className:"gap-3 lg:flex-nowrap",children:u.map((e)=>c(r,{gap:"xs",className:"min-w-0 flex-1 rounded-lg border border-border bg-background p-4",children:[t(o,{className:"text-muted-foreground text-xs uppercase",children:e.label}),t(o,{className:"font-semibold text-2xl",children:e.value})]},e.label))}),c(p,{align:"start",className:"gap-6 xl:flex-nowrap",children:[t(v,{title:"Connected operating layer",description:"Sample tenant bindings show how the template wires managed and BYOK integrations.",children:y.map((e)=>c(p,{justify:"between",wrap:"nowrap",className:"rounded-md border border-border bg-background p-3",children:[c(r,{gap:"xs",className:"min-w-0",children:[t(o,{className:"font-semibold text-sm",children:e.label}),t(o,{className:"text-muted-foreground text-xs",children:e.mode})]}),t(o,{className:"text-muted-foreground text-xs capitalize",children:e.status})]},e.id))}),c(v,{title:"Workflows and knowledge",description:"The package exposes durable workflow specs plus knowledge sources for documents, email, and bank data.",children:[t(r,{gap:"xs",children:b.slice(0,5).map((e)=>t(o,{className:"rounded-md border border-border bg-background px-3 py-2 text-xs",children:e.key},e.key))}),t(r,{gap:"xs",className:"rounded-md border border-border bg-muted/40 p-3",children:k.map((e)=>c(p,{justify:"between",wrap:"nowrap",children:[t(o,{className:"text-xs",children:e.label}),t(o,{className:"text-muted-foreground text-xs",children:e.enabled?"syncing":e.type})]},e.id))})]})]})]})}function v({title:e,description:l,children:w}){return c(r,{as:"article",gap:"md",className:"min-w-0 flex-1 rounded-lg border border-border bg-card p-4 shadow-sm",children:[c(r,{as:"header",gap:"xs",children:[t(C,{className:"font-semibold text-lg",children:e}),t(o,{className:"text-muted-foreground text-sm leading-6",children:l})]}),w]})}export{R as PocketFamilyOfficePreview};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const pocketFamilyOfficePreviewMetrics: readonly [{
|
|
2
|
+
readonly label: "Capabilities";
|
|
3
|
+
readonly value: string;
|
|
4
|
+
}, {
|
|
5
|
+
readonly label: "Integrations";
|
|
6
|
+
readonly value: string;
|
|
7
|
+
}, {
|
|
8
|
+
readonly label: "Workflows";
|
|
9
|
+
readonly value: string;
|
|
10
|
+
}, {
|
|
11
|
+
readonly label: "Knowledge spaces";
|
|
12
|
+
readonly value: string;
|
|
13
|
+
}];
|
|
14
|
+
export declare const pocketFamilyOfficePreviewConnections: {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
mode: import("@contractspec/lib.contracts-integrations").IntegrationOwnershipMode;
|
|
18
|
+
status: import("@contractspec/lib.contracts-integrations").ConnectionStatus;
|
|
19
|
+
}[];
|
|
20
|
+
export declare const pocketFamilyOfficePreviewKnowledge: {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
type: import("@contractspec/lib.contracts-spec/knowledge").KnowledgeSourceType;
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
}[];
|
|
26
|
+
export declare const pocketFamilyOfficePreviewWorkflows: import("@contractspec/lib.contracts-spec/app-config").SpecPointer[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{OwnersEnum as p,StabilityEnum as g,TagsEnum as f}from"@contractspec/lib.contracts-spec/ownership";var e=(n,c)=>({key:n,version:c}),s={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:[p.PlatformFinance],tags:[f.Guide,"finance","automation"],stability:g.Experimental},capabilities:{enabled:[e("ai.chat","1.0.0"),e("ai.embeddings","1.0.0"),e("vector-db.search","1.0.0"),e("vector-db.storage","1.0.0"),e("storage.objects","1.0.0"),e("email.inbound","1.0.0"),e("email.transactional","1.0.0"),e("calendar.events","1.0.0"),e("sms.outbound","1.0.0"),e("ai.voice.tts","1.0.0"),e("payments.psp","1.0.0"),e("openbanking.accounts.read","1.0.0"),e("openbanking.transactions.read","1.0.0"),e("openbanking.balances.read","1.0.0")]},integrationSlots:[{slotId:"primaryLLM",requiredCategory:"ai-llm",allowedModes:["managed","byok"],requiredCapabilities:[e("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:[e("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:[e("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:[e("openbanking.accounts.read","1.0.0"),e("openbanking.transactions.read","1.0.0"),e("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:[e("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:[e("email.transactional","1.0.0")],required:!0,description:"Transactional email delivery for reminders and summaries."},{slotId:"calendarScheduling",requiredCategory:"calendar",allowedModes:["managed","byok"],requiredCapabilities:[e("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:[e("ai.voice.tts","1.0.0")],required:!1,description:"Optional voice synthesis for spoken summaries (ElevenLabs)."},{slotId:"smsNotifications",requiredCategory:"sms",allowedModes:["managed","byok"],requiredCapabilities:[e("sms.outbound","1.0.0")],required:!1,description:"SMS provider used for urgent reminders."},{slotId:"paymentsProcessing",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[e("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 k(n){return n.register(s)}var t=new Date,o={tenantId:"tenant.family-office",createdAt:t,updatedAt:t},i=[{meta:{...o,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:t,latencyMs:180}},{meta:{...o,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:t,latencyMs:95}},{meta:{...o,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:t,latencyMs:60}},{meta:{...o,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:t,latencyMs:320}},{meta:{...o,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:t,latencyMs:210}},{meta:{...o,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:t,latencyMs:140}},{meta:{...o,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:t,latencyMs:250}},{meta:{...o,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:t,latencyMs:180}},{meta:{...o,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:t,latencyMs:220}},{meta:{...o,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:t,latencyMs:410}}];function b(n){return i.find((c)=>c.meta.id===n)}var a=new Date,r=[{meta:{id:"source-financial-uploads",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-docs",spaceVersion:"1.0.0",label:"Uploaded Financial Documents",sourceType:"file_upload",createdAt:a,updatedAt:a},config:{bucket:"pfo-uploads",prefix:"financial-docs/"},syncSchedule:{enabled:!0,intervalMs:900000},lastSync:{timestamp:a,success:!0}},{meta:{id:"source-gmail-threads",tenantId:"tenant.family-office",spaceKey:"knowledge.email-threads",spaceVersion:"1.0.0",label:"Household Gmail Threads",sourceType:"email",createdAt:a,updatedAt:a},config:{labelIds:["INBOX","FINANCE"]},syncSchedule:{enabled:!0,intervalMs:300000},lastSync:{timestamp:a,success:!0}},{meta:{id:"source-financial-overview",tenantId:"tenant.family-office",spaceKey:"knowledge.financial-overview",spaceVersion:"1.0.0",label:"Financial Overview",sourceType:"api",createdAt:a,updatedAt:a},config:{},syncSchedule:{enabled:!1}}];var l={meta:{id:"tenant-pfo-sample",tenantId:"tenant.family-office",appId:"pocket-family-office",blueprintName:"pocket-family-office.app",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),status:"published"},featureFlags:[{key:"voice-summaries",enabled:!0,description:"Enable spoken ElevenLabs summaries for daily briefings."}],integrations:[{slotId:"primaryLLM",connectionId:"conn-mistral-primary"},{slotId:"primaryVectorDb",connectionId:"conn-qdrant-finance"},{slotId:"primaryStorage",connectionId:"conn-gcs-documents"},{slotId:"primaryOpenBanking",connectionId:"conn-powens-primary"},{slotId:"emailInbound",connectionId:"conn-gmail-threads"},{slotId:"emailOutbound",connectionId:"conn-postmark-outbound"},{slotId:"calendarScheduling",connectionId:"conn-google-calendar"},{slotId:"voicePlayback",connectionId:"conn-elevenlabs-voice"},{slotId:"smsNotifications",connectionId:"conn-twilio-sms"},{slotId:"paymentsProcessing",connectionId:"conn-stripe-recurring"}],knowledge:[{spaceKey:"knowledge.financial-docs",scope:{workflows:["pfo.workflow.process-uploaded-document","pfo.workflow.generate-financial-summary"]}},{spaceKey:"knowledge.email-threads",scope:{workflows:["pfo.workflow.ingest-email-threads"]}},{spaceKey:"knowledge.financial-overview",scope:{workflows:["pfo.workflow.sync-openbanking-transactions","pfo.workflow.refresh-openbanking-balances","pfo.workflow.generate-financial-summary","pfo.workflow.generate-openbanking-overview"]},required:!1}],locales:{defaultLocale:"en",enabledLocales:["en"]},notes:"Sample tenant configuration for hackathon demos. Replace connection IDs with tenant-specific bindings when provisioning."};var m=s.capabilities?.enabled??[],u=s.integrationSlots??[],d=Object.values(s.workflows??{}),h=l.knowledge??[],P=[{label:"Capabilities",value:String(m.length)},{label:"Integrations",value:String(u.length)},{label:"Workflows",value:String(d.length)},{label:"Knowledge spaces",value:String(h.length)}],C=i.slice(0,5).map((n)=>({id:n.meta.id,label:n.meta.label,mode:n.ownershipMode,status:n.status})),R=r.map((n)=>({id:n.meta.id,label:n.meta.label,type:n.meta.sourceType,enabled:n.syncSchedule?.enabled??!1})),N=d;export{N as pocketFamilyOfficePreviewWorkflows,P as pocketFamilyOfficePreviewMetrics,R as pocketFamilyOfficePreviewKnowledge,C as pocketFamilyOfficePreviewConnections};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/example.pocket-family-office",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.1",
|
|
4
4
|
"description": "Pocket Family Office example - personal finance automation with open banking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contractspec",
|
|
@@ -29,15 +29,20 @@
|
|
|
29
29
|
"typecheck": "tsc --noEmit"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@contractspec/lib.
|
|
33
|
-
"@contractspec/lib.contracts-spec": "6.
|
|
34
|
-
"@contractspec/lib.
|
|
35
|
-
"@contractspec/lib.
|
|
32
|
+
"@contractspec/lib.contracts-integrations": "3.8.19",
|
|
33
|
+
"@contractspec/lib.contracts-spec": "6.2.0",
|
|
34
|
+
"@contractspec/lib.design-system": "4.4.0",
|
|
35
|
+
"@contractspec/lib.knowledge": "3.8.3",
|
|
36
|
+
"@contractspec/lib.schema": "3.7.14",
|
|
37
|
+
"react": "19.2.0",
|
|
38
|
+
"react-dom": "19.2.0"
|
|
36
39
|
},
|
|
37
40
|
"devDependencies": {
|
|
38
41
|
"@contractspec/tool.typescript": "3.7.13",
|
|
39
|
-
"
|
|
40
|
-
"@
|
|
42
|
+
"@contractspec/tool.bun": "3.7.18",
|
|
43
|
+
"@types/react": "^19.2.14",
|
|
44
|
+
"@types/react-dom": "^19.2.2",
|
|
45
|
+
"typescript": "^5.9.3"
|
|
41
46
|
},
|
|
42
47
|
"exports": {
|
|
43
48
|
".": {
|
|
@@ -124,6 +129,27 @@
|
|
|
124
129
|
"node": "./dist/node/tenant.sample.js",
|
|
125
130
|
"default": "./dist/tenant.sample.js"
|
|
126
131
|
},
|
|
132
|
+
"./ui": {
|
|
133
|
+
"types": "./dist/ui/index.d.ts",
|
|
134
|
+
"browser": "./dist/browser/ui/index.js",
|
|
135
|
+
"bun": "./dist/ui/index.js",
|
|
136
|
+
"node": "./dist/node/ui/index.js",
|
|
137
|
+
"default": "./dist/ui/index.js"
|
|
138
|
+
},
|
|
139
|
+
"./ui/pocket-family-office-preview.data": {
|
|
140
|
+
"types": "./dist/ui/pocket-family-office-preview.data.d.ts",
|
|
141
|
+
"browser": "./dist/browser/ui/pocket-family-office-preview.data.js",
|
|
142
|
+
"bun": "./dist/ui/pocket-family-office-preview.data.js",
|
|
143
|
+
"node": "./dist/node/ui/pocket-family-office-preview.data.js",
|
|
144
|
+
"default": "./dist/ui/pocket-family-office-preview.data.js"
|
|
145
|
+
},
|
|
146
|
+
"./ui/PocketFamilyOfficePreview": {
|
|
147
|
+
"types": "./dist/ui/PocketFamilyOfficePreview.d.ts",
|
|
148
|
+
"browser": "./dist/browser/ui/PocketFamilyOfficePreview.js",
|
|
149
|
+
"bun": "./dist/ui/PocketFamilyOfficePreview.js",
|
|
150
|
+
"node": "./dist/node/ui/PocketFamilyOfficePreview.js",
|
|
151
|
+
"default": "./dist/ui/PocketFamilyOfficePreview.js"
|
|
152
|
+
},
|
|
127
153
|
"./workflows": {
|
|
128
154
|
"types": "./dist/workflows/index.d.ts",
|
|
129
155
|
"browser": "./dist/browser/workflows/index.js",
|
|
@@ -280,6 +306,27 @@
|
|
|
280
306
|
"node": "./dist/node/tenant.sample.js",
|
|
281
307
|
"default": "./dist/tenant.sample.js"
|
|
282
308
|
},
|
|
309
|
+
"./ui": {
|
|
310
|
+
"types": "./dist/ui/index.d.ts",
|
|
311
|
+
"browser": "./dist/browser/ui/index.js",
|
|
312
|
+
"bun": "./dist/ui/index.js",
|
|
313
|
+
"node": "./dist/node/ui/index.js",
|
|
314
|
+
"default": "./dist/ui/index.js"
|
|
315
|
+
},
|
|
316
|
+
"./ui/pocket-family-office-preview.data": {
|
|
317
|
+
"types": "./dist/ui/pocket-family-office-preview.data.d.ts",
|
|
318
|
+
"browser": "./dist/browser/ui/pocket-family-office-preview.data.js",
|
|
319
|
+
"bun": "./dist/ui/pocket-family-office-preview.data.js",
|
|
320
|
+
"node": "./dist/node/ui/pocket-family-office-preview.data.js",
|
|
321
|
+
"default": "./dist/ui/pocket-family-office-preview.data.js"
|
|
322
|
+
},
|
|
323
|
+
"./ui/PocketFamilyOfficePreview": {
|
|
324
|
+
"types": "./dist/ui/PocketFamilyOfficePreview.d.ts",
|
|
325
|
+
"browser": "./dist/browser/ui/PocketFamilyOfficePreview.js",
|
|
326
|
+
"bun": "./dist/ui/PocketFamilyOfficePreview.js",
|
|
327
|
+
"node": "./dist/node/ui/PocketFamilyOfficePreview.js",
|
|
328
|
+
"default": "./dist/ui/PocketFamilyOfficePreview.js"
|
|
329
|
+
},
|
|
283
330
|
"./workflows": {
|
|
284
331
|
"types": "./dist/workflows/index.d.ts",
|
|
285
332
|
"browser": "./dist/browser/workflows/index.js",
|