@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.
- package/dist/blueprint.js +1 -197
- package/dist/browser/blueprint.js +1 -197
- package/dist/browser/connections/samples.js +1 -197
- package/dist/browser/docs/index.js +3 -48
- package/dist/browser/docs/pocket-family-office.docblock.js +3 -48
- package/dist/browser/example.js +1 -42
- package/dist/browser/index.js +4 -1660
- package/dist/browser/knowledge/sources.sample.js +1 -70
- package/dist/browser/operations/index.js +1 -314
- package/dist/browser/pocket-family-office.capability.js +1 -19
- package/dist/browser/pocket-family-office.feature.js +2 -86
- package/dist/browser/telemetry.js +1 -176
- package/dist/browser/tenant.sample.js +1 -71
- package/dist/browser/workflows/generate-financial-summary.js +1 -58
- package/dist/browser/workflows/generate-openbanking-overview.js +1 -52
- package/dist/browser/workflows/index.js +1 -467
- package/dist/browser/workflows/ingest-email-threads.js +1 -56
- package/dist/browser/workflows/process-uploaded-document.js +1 -54
- package/dist/browser/workflows/refresh-openbanking-balances.js +1 -64
- package/dist/browser/workflows/sync-openbanking-accounts.js +1 -64
- package/dist/browser/workflows/sync-openbanking-transactions.js +1 -64
- package/dist/browser/workflows/upcoming-payments-reminder.js +1 -62
- package/dist/connections/samples.js +1 -197
- package/dist/docs/index.js +3 -48
- package/dist/docs/pocket-family-office.docblock.js +3 -48
- package/dist/example.js +1 -42
- package/dist/index.js +4 -1660
- package/dist/knowledge/sources.sample.js +1 -70
- package/dist/node/blueprint.js +1 -197
- package/dist/node/connections/samples.js +1 -197
- package/dist/node/docs/index.js +3 -48
- package/dist/node/docs/pocket-family-office.docblock.js +3 -48
- package/dist/node/example.js +1 -42
- package/dist/node/index.js +4 -1660
- package/dist/node/knowledge/sources.sample.js +1 -70
- package/dist/node/operations/index.js +1 -314
- package/dist/node/pocket-family-office.capability.js +1 -19
- package/dist/node/pocket-family-office.feature.js +2 -86
- package/dist/node/telemetry.js +1 -176
- package/dist/node/tenant.sample.js +1 -71
- package/dist/node/workflows/generate-financial-summary.js +1 -58
- package/dist/node/workflows/generate-openbanking-overview.js +1 -52
- package/dist/node/workflows/index.js +1 -467
- package/dist/node/workflows/ingest-email-threads.js +1 -56
- package/dist/node/workflows/process-uploaded-document.js +1 -54
- package/dist/node/workflows/refresh-openbanking-balances.js +1 -64
- package/dist/node/workflows/sync-openbanking-accounts.js +1 -64
- package/dist/node/workflows/sync-openbanking-transactions.js +1 -64
- package/dist/node/workflows/upcoming-payments-reminder.js +1 -62
- package/dist/operations/index.js +1 -314
- package/dist/pocket-family-office.capability.js +1 -19
- package/dist/pocket-family-office.feature.js +2 -86
- package/dist/telemetry.js +1 -176
- package/dist/tenant.sample.js +1 -71
- package/dist/workflows/generate-financial-summary.js +1 -58
- package/dist/workflows/generate-openbanking-overview.js +1 -52
- package/dist/workflows/index.js +1 -467
- package/dist/workflows/ingest-email-threads.js +1 -56
- package/dist/workflows/process-uploaded-document.js +1 -54
- package/dist/workflows/refresh-openbanking-balances.js +1 -64
- package/dist/workflows/sync-openbanking-accounts.js +1 -64
- package/dist/workflows/sync-openbanking-transactions.js +1 -64
- package/dist/workflows/upcoming-payments-reminder.js +1 -62
- package/package.json +7 -7
package/dist/telemetry.js
CHANGED
|
@@ -1,177 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
OPENBANKING_PII_FIELDS,
|
|
5
|
-
OPENBANKING_TELEMETRY_EVENTS
|
|
6
|
-
} from "@contractspec/lib.contracts-integrations";
|
|
7
|
-
import {
|
|
8
|
-
OwnersEnum,
|
|
9
|
-
StabilityEnum,
|
|
10
|
-
TagsEnum
|
|
11
|
-
} from "@contractspec/lib.contracts-spec/ownership";
|
|
12
|
-
var commonProperties = {
|
|
13
|
-
tenantId: {
|
|
14
|
-
type: "string",
|
|
15
|
-
required: true,
|
|
16
|
-
description: "Tenant identifier for multi-tenant isolation."
|
|
17
|
-
},
|
|
18
|
-
appId: {
|
|
19
|
-
type: "string",
|
|
20
|
-
required: true,
|
|
21
|
-
description: "Application identifier associated with the event."
|
|
22
|
-
},
|
|
23
|
-
blueprint: {
|
|
24
|
-
type: "string",
|
|
25
|
-
required: true,
|
|
26
|
-
description: "Blueprint name@version emitting the telemetry."
|
|
27
|
-
},
|
|
28
|
-
configVersion: {
|
|
29
|
-
type: "number",
|
|
30
|
-
required: true,
|
|
31
|
-
description: "Resolved app config version when the event was generated."
|
|
32
|
-
},
|
|
33
|
-
slotId: {
|
|
34
|
-
type: "string",
|
|
35
|
-
required: true,
|
|
36
|
-
description: "Integration slot identifier (e.g., primaryOpenBanking)."
|
|
37
|
-
},
|
|
38
|
-
connectionId: {
|
|
39
|
-
type: "string",
|
|
40
|
-
required: true,
|
|
41
|
-
description: "Integration connection ID used for the sync."
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
function piiSafeString(description) {
|
|
45
|
-
return {
|
|
46
|
-
type: "string",
|
|
47
|
-
description,
|
|
48
|
-
pii: false
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
var pocketFamilyOfficeTelemetry = {
|
|
52
|
-
meta: {
|
|
53
|
-
key: "pfo.telemetry",
|
|
54
|
-
version: "1.0.0",
|
|
55
|
-
title: "Pocket Family Office Telemetry",
|
|
56
|
-
description: "Operational telemetry for Pocket Family Office workflows, including Powens open banking syncs.",
|
|
57
|
-
domain: "finance",
|
|
58
|
-
owners: [OwnersEnum.PlatformFinance],
|
|
59
|
-
tags: ["open-banking", TagsEnum.Automation],
|
|
60
|
-
stability: StabilityEnum.Experimental
|
|
61
|
-
},
|
|
62
|
-
config: {
|
|
63
|
-
defaultRetentionDays: 180,
|
|
64
|
-
defaultSamplingRate: 1
|
|
65
|
-
},
|
|
66
|
-
events: [
|
|
67
|
-
{
|
|
68
|
-
key: OPENBANKING_TELEMETRY_EVENTS.accountsSynced,
|
|
69
|
-
version: "1.0.0",
|
|
70
|
-
semantics: {
|
|
71
|
-
what: "Open banking account synchronisation completed.",
|
|
72
|
-
why: "Refresh canonical account metadata for reporting and workflows."
|
|
73
|
-
},
|
|
74
|
-
privacy: "internal",
|
|
75
|
-
properties: {
|
|
76
|
-
...commonProperties,
|
|
77
|
-
syncedCount: {
|
|
78
|
-
type: "number",
|
|
79
|
-
description: "Number of accounts synced successfully."
|
|
80
|
-
},
|
|
81
|
-
failedCount: {
|
|
82
|
-
type: "number",
|
|
83
|
-
description: "Number of accounts that failed to sync."
|
|
84
|
-
},
|
|
85
|
-
durationMs: {
|
|
86
|
-
type: "number",
|
|
87
|
-
description: "Duration of the sync job in milliseconds."
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
key: OPENBANKING_TELEMETRY_EVENTS.transactionsSynced,
|
|
93
|
-
version: "1.0.0",
|
|
94
|
-
semantics: {
|
|
95
|
-
what: "Open banking transaction synchronisation completed.",
|
|
96
|
-
why: "Keep canonical transaction ledger in sync for analytics."
|
|
97
|
-
},
|
|
98
|
-
privacy: "internal",
|
|
99
|
-
properties: {
|
|
100
|
-
...commonProperties,
|
|
101
|
-
accountId: {
|
|
102
|
-
type: "string",
|
|
103
|
-
description: "Bank account identifier used during the sync.",
|
|
104
|
-
pii: false
|
|
105
|
-
},
|
|
106
|
-
syncedCount: {
|
|
107
|
-
type: "number",
|
|
108
|
-
description: "Number of transactions synced successfully."
|
|
109
|
-
},
|
|
110
|
-
failedCount: {
|
|
111
|
-
type: "number",
|
|
112
|
-
description: "Number of transactions that failed to sync."
|
|
113
|
-
},
|
|
114
|
-
from: {
|
|
115
|
-
type: "timestamp",
|
|
116
|
-
description: "Start timestamp for the sync window."
|
|
117
|
-
},
|
|
118
|
-
to: {
|
|
119
|
-
type: "timestamp",
|
|
120
|
-
description: "End timestamp for the sync window."
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
key: OPENBANKING_TELEMETRY_EVENTS.balancesRefreshed,
|
|
126
|
-
version: "1.0.0",
|
|
127
|
-
semantics: {
|
|
128
|
-
what: "Open banking balances refreshed.",
|
|
129
|
-
why: "Provide accurate cash position for dashboards and alerts."
|
|
130
|
-
},
|
|
131
|
-
privacy: "internal",
|
|
132
|
-
properties: {
|
|
133
|
-
...commonProperties,
|
|
134
|
-
accountId: piiSafeString("Bank account identifier."),
|
|
135
|
-
balanceTypes: {
|
|
136
|
-
type: "json",
|
|
137
|
-
description: "Balance types included in the refresh."
|
|
138
|
-
},
|
|
139
|
-
refreshedAt: {
|
|
140
|
-
type: "timestamp",
|
|
141
|
-
description: "Timestamp when balances were refreshed."
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
key: OPENBANKING_TELEMETRY_EVENTS.overviewGenerated,
|
|
147
|
-
version: "1.0.0",
|
|
148
|
-
semantics: {
|
|
149
|
-
what: "Derived financial overview generated.",
|
|
150
|
-
why: "Persist cashflow and category summaries into knowledge space."
|
|
151
|
-
},
|
|
152
|
-
privacy: "internal",
|
|
153
|
-
properties: {
|
|
154
|
-
...commonProperties,
|
|
155
|
-
knowledgeEntryId: piiSafeString("Identifier of the knowledge document containing the overview."),
|
|
156
|
-
period: {
|
|
157
|
-
type: "string",
|
|
158
|
-
description: "Aggregation period used (week, month, quarter)."
|
|
159
|
-
},
|
|
160
|
-
periodStart: {
|
|
161
|
-
type: "timestamp",
|
|
162
|
-
description: "Start timestamp for the aggregation window."
|
|
163
|
-
},
|
|
164
|
-
periodEnd: {
|
|
165
|
-
type: "timestamp",
|
|
166
|
-
description: "End timestamp for the aggregation window."
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
tags: ["knowledge", "analytics"]
|
|
170
|
-
}
|
|
171
|
-
]
|
|
172
|
-
};
|
|
173
|
-
var OPENBANKING_SENSITIVE_FIELDS = OPENBANKING_PII_FIELDS;
|
|
174
|
-
export {
|
|
175
|
-
pocketFamilyOfficeTelemetry,
|
|
176
|
-
OPENBANKING_SENSITIVE_FIELDS
|
|
177
|
-
};
|
|
2
|
+
import{OPENBANKING_PII_FIELDS as x,OPENBANKING_TELEMETRY_EVENTS as j}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as z,StabilityEnum as C,TagsEnum as H}from"@contractspec/lib.contracts-spec/ownership";var k={tenantId:{type:"string",required:!0,description:"Tenant identifier for multi-tenant isolation."},appId:{type:"string",required:!0,description:"Application identifier associated with the event."},blueprint:{type:"string",required:!0,description:"Blueprint name@version emitting the telemetry."},configVersion:{type:"number",required:!0,description:"Resolved app config version when the event was generated."},slotId:{type:"string",required:!0,description:"Integration slot identifier (e.g., primaryOpenBanking)."},connectionId:{type:"string",required:!0,description:"Integration connection ID used for the sync."}};function q(v){return{type:"string",description:v,pii:!1}}var U={meta:{key:"pfo.telemetry",version:"1.0.0",title:"Pocket Family Office Telemetry",description:"Operational telemetry for Pocket Family Office workflows, including Powens open banking syncs.",domain:"finance",owners:[z.PlatformFinance],tags:["open-banking",H.Automation],stability:C.Experimental},config:{defaultRetentionDays:180,defaultSamplingRate:1},events:[{key:j.accountsSynced,version:"1.0.0",semantics:{what:"Open banking account synchronisation completed.",why:"Refresh canonical account metadata for reporting and workflows."},privacy:"internal",properties:{...k,syncedCount:{type:"number",description:"Number of accounts synced successfully."},failedCount:{type:"number",description:"Number of accounts that failed to sync."},durationMs:{type:"number",description:"Duration of the sync job in milliseconds."}}},{key:j.transactionsSynced,version:"1.0.0",semantics:{what:"Open banking transaction synchronisation completed.",why:"Keep canonical transaction ledger in sync for analytics."},privacy:"internal",properties:{...k,accountId:{type:"string",description:"Bank account identifier used during the sync.",pii:!1},syncedCount:{type:"number",description:"Number of transactions synced successfully."},failedCount:{type:"number",description:"Number of transactions that failed to sync."},from:{type:"timestamp",description:"Start timestamp for the sync window."},to:{type:"timestamp",description:"End timestamp for the sync window."}}},{key:j.balancesRefreshed,version:"1.0.0",semantics:{what:"Open banking balances refreshed.",why:"Provide accurate cash position for dashboards and alerts."},privacy:"internal",properties:{...k,accountId:q("Bank account identifier."),balanceTypes:{type:"json",description:"Balance types included in the refresh."},refreshedAt:{type:"timestamp",description:"Timestamp when balances were refreshed."}}},{key:j.overviewGenerated,version:"1.0.0",semantics:{what:"Derived financial overview generated.",why:"Persist cashflow and category summaries into knowledge space."},privacy:"internal",properties:{...k,knowledgeEntryId:q("Identifier of the knowledge document containing the overview."),period:{type:"string",description:"Aggregation period used (week, month, quarter)."},periodStart:{type:"timestamp",description:"Start timestamp for the aggregation window."},periodEnd:{type:"timestamp",description:"End timestamp for the aggregation window."}},tags:["knowledge","analytics"]}]},W=x;export{U as pocketFamilyOfficeTelemetry,W as OPENBANKING_SENSITIVE_FIELDS};
|
package/dist/tenant.sample.js
CHANGED
|
@@ -1,72 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
var pocketFamilyOfficeTenantSample = {
|
|
4
|
-
meta: {
|
|
5
|
-
id: "tenant-pfo-sample",
|
|
6
|
-
tenantId: "tenant.family-office",
|
|
7
|
-
appId: "pocket-family-office",
|
|
8
|
-
blueprintName: "pocket-family-office.app",
|
|
9
|
-
blueprintVersion: "1.0.0",
|
|
10
|
-
environment: "production",
|
|
11
|
-
version: "1.0.0",
|
|
12
|
-
createdAt: new Date().toISOString(),
|
|
13
|
-
updatedAt: new Date().toISOString(),
|
|
14
|
-
status: "published"
|
|
15
|
-
},
|
|
16
|
-
featureFlags: [
|
|
17
|
-
{
|
|
18
|
-
key: "voice-summaries",
|
|
19
|
-
enabled: true,
|
|
20
|
-
description: "Enable spoken ElevenLabs summaries for daily briefings."
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
integrations: [
|
|
24
|
-
{ slotId: "primaryLLM", connectionId: "conn-mistral-primary" },
|
|
25
|
-
{ slotId: "primaryVectorDb", connectionId: "conn-qdrant-finance" },
|
|
26
|
-
{ slotId: "primaryStorage", connectionId: "conn-gcs-documents" },
|
|
27
|
-
{ slotId: "primaryOpenBanking", connectionId: "conn-powens-primary" },
|
|
28
|
-
{ slotId: "emailInbound", connectionId: "conn-gmail-threads" },
|
|
29
|
-
{ slotId: "emailOutbound", connectionId: "conn-postmark-outbound" },
|
|
30
|
-
{ slotId: "calendarScheduling", connectionId: "conn-google-calendar" },
|
|
31
|
-
{ slotId: "voicePlayback", connectionId: "conn-elevenlabs-voice" },
|
|
32
|
-
{ slotId: "smsNotifications", connectionId: "conn-twilio-sms" },
|
|
33
|
-
{ slotId: "paymentsProcessing", connectionId: "conn-stripe-recurring" }
|
|
34
|
-
],
|
|
35
|
-
knowledge: [
|
|
36
|
-
{
|
|
37
|
-
spaceKey: "knowledge.financial-docs",
|
|
38
|
-
scope: {
|
|
39
|
-
workflows: [
|
|
40
|
-
"pfo.workflow.process-uploaded-document",
|
|
41
|
-
"pfo.workflow.generate-financial-summary"
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
spaceKey: "knowledge.email-threads",
|
|
47
|
-
scope: {
|
|
48
|
-
workflows: ["pfo.workflow.ingest-email-threads"]
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
spaceKey: "knowledge.financial-overview",
|
|
53
|
-
scope: {
|
|
54
|
-
workflows: [
|
|
55
|
-
"pfo.workflow.sync-openbanking-transactions",
|
|
56
|
-
"pfo.workflow.refresh-openbanking-balances",
|
|
57
|
-
"pfo.workflow.generate-financial-summary",
|
|
58
|
-
"pfo.workflow.generate-openbanking-overview"
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
required: false
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
locales: {
|
|
65
|
-
defaultLocale: "en",
|
|
66
|
-
enabledLocales: ["en"]
|
|
67
|
-
},
|
|
68
|
-
notes: "Sample tenant configuration for hackathon demos. Replace connection IDs with tenant-specific bindings when provisioning."
|
|
69
|
-
};
|
|
70
|
-
export {
|
|
71
|
-
pocketFamilyOfficeTenantSample
|
|
72
|
-
};
|
|
2
|
+
var n={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."};export{n as pocketFamilyOfficeTenantSample};
|
|
@@ -1,59 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
OwnersEnum,
|
|
5
|
-
StabilityEnum,
|
|
6
|
-
TagsEnum
|
|
7
|
-
} from "@contractspec/lib.contracts-spec";
|
|
8
|
-
import { defineWorkflow } from "@contractspec/lib.contracts-spec/workflow/spec";
|
|
9
|
-
var generateFinancialSummaryWorkflow = defineWorkflow({
|
|
10
|
-
meta: {
|
|
11
|
-
key: "pfo.workflow.generate-financial-summary",
|
|
12
|
-
version: "1.0.0",
|
|
13
|
-
title: "Generate Financial Summary",
|
|
14
|
-
description: "Retrieves the latest financial signals, generates an AI summary, and optionally distributes it by voice or email.",
|
|
15
|
-
domain: "finance",
|
|
16
|
-
owners: [OwnersEnum.PlatformFinance],
|
|
17
|
-
tags: ["summary", "ai", TagsEnum.Automation],
|
|
18
|
-
stability: StabilityEnum.Beta
|
|
19
|
-
},
|
|
20
|
-
definition: {
|
|
21
|
-
entryStepId: "summarise",
|
|
22
|
-
steps: [
|
|
23
|
-
{
|
|
24
|
-
id: "summarise",
|
|
25
|
-
type: "automation",
|
|
26
|
-
label: "Generate Summary",
|
|
27
|
-
description: "Run retrieval augmented generation over the knowledge base to produce a household summary.",
|
|
28
|
-
action: {
|
|
29
|
-
operation: { key: "pfo.summary.generate", version: "1.0.0" }
|
|
30
|
-
},
|
|
31
|
-
requiredIntegrations: ["primaryLLM", "primaryVectorDb"],
|
|
32
|
-
retry: {
|
|
33
|
-
maxAttempts: 3,
|
|
34
|
-
backoff: "exponential",
|
|
35
|
-
delayMs: 750
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: "distribute",
|
|
40
|
-
type: "automation",
|
|
41
|
-
label: "Distribute Summary",
|
|
42
|
-
description: "Send the generated summary via email and optionally synthesise a voice note.",
|
|
43
|
-
action: {
|
|
44
|
-
operation: { key: "pfo.summary.dispatch", version: "1.0.0" }
|
|
45
|
-
},
|
|
46
|
-
requiredIntegrations: ["emailOutbound"],
|
|
47
|
-
retry: {
|
|
48
|
-
maxAttempts: 2,
|
|
49
|
-
backoff: "linear",
|
|
50
|
-
delayMs: 500
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
],
|
|
54
|
-
transitions: [{ from: "summarise", to: "distribute" }]
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
export {
|
|
58
|
-
generateFinancialSummaryWorkflow
|
|
59
|
-
};
|
|
2
|
+
import{OwnersEnum as h,StabilityEnum as j,TagsEnum as q}from"@contractspec/lib.contracts-spec";import{defineWorkflow as v}from"@contractspec/lib.contracts-spec/workflow/spec";var A=v({meta:{key:"pfo.workflow.generate-financial-summary",version:"1.0.0",title:"Generate Financial Summary",description:"Retrieves the latest financial signals, generates an AI summary, and optionally distributes it by voice or email.",domain:"finance",owners:[h.PlatformFinance],tags:["summary","ai",q.Automation],stability:j.Beta},definition:{entryStepId:"summarise",steps:[{id:"summarise",type:"automation",label:"Generate Summary",description:"Run retrieval augmented generation over the knowledge base to produce a household summary.",action:{operation:{key:"pfo.summary.generate",version:"1.0.0"}},requiredIntegrations:["primaryLLM","primaryVectorDb"],retry:{maxAttempts:3,backoff:"exponential",delayMs:750}},{id:"distribute",type:"automation",label:"Distribute Summary",description:"Send the generated summary via email and optionally synthesise a voice note.",action:{operation:{key:"pfo.summary.dispatch",version:"1.0.0"}},requiredIntegrations:["emailOutbound"],retry:{maxAttempts:2,backoff:"linear",delayMs:500}}],transitions:[{from:"summarise",to:"distribute"}]}});export{A as generateFinancialSummaryWorkflow};
|
|
@@ -1,53 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
OwnersEnum,
|
|
5
|
-
StabilityEnum,
|
|
6
|
-
TagsEnum
|
|
7
|
-
} from "@contractspec/lib.contracts-spec";
|
|
8
|
-
import { defineWorkflow } from "@contractspec/lib.contracts-spec/workflow/spec";
|
|
9
|
-
var OPEN_BANKING_CAPABILITIES = [
|
|
10
|
-
{ key: "openbanking.accounts.read", version: "1.0.0" },
|
|
11
|
-
{ key: "openbanking.transactions.read", version: "1.0.0" },
|
|
12
|
-
{ key: "openbanking.balances.read", version: "1.0.0" }
|
|
13
|
-
];
|
|
14
|
-
var generateOpenBankingOverviewWorkflow = defineWorkflow({
|
|
15
|
-
meta: {
|
|
16
|
-
key: "pfo.workflow.generate-openbanking-overview",
|
|
17
|
-
version: "1.0.0",
|
|
18
|
-
title: "Generate Open Banking Overview",
|
|
19
|
-
description: "Produces a derived financial overview and stores it in the operational knowledge space.",
|
|
20
|
-
domain: "finance",
|
|
21
|
-
owners: [OwnersEnum.PlatformFinance],
|
|
22
|
-
tags: ["open-banking", "summary", TagsEnum.Automation],
|
|
23
|
-
stability: StabilityEnum.Experimental
|
|
24
|
-
},
|
|
25
|
-
definition: {
|
|
26
|
-
entryStepId: "generate-overview",
|
|
27
|
-
steps: [
|
|
28
|
-
{
|
|
29
|
-
id: "generate-overview",
|
|
30
|
-
type: "automation",
|
|
31
|
-
label: "Generate Overview",
|
|
32
|
-
description: "Aggregate balances, cashflow, and category breakdowns into a knowledge entry.",
|
|
33
|
-
action: {
|
|
34
|
-
operation: {
|
|
35
|
-
key: "pfo.openbanking.generate-overview",
|
|
36
|
-
version: "1.0.0"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
requiredIntegrations: ["primaryOpenBanking"],
|
|
40
|
-
requiredCapabilities: OPEN_BANKING_CAPABILITIES,
|
|
41
|
-
retry: {
|
|
42
|
-
maxAttempts: 3,
|
|
43
|
-
backoff: "exponential",
|
|
44
|
-
delayMs: 1500
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
transitions: []
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
export {
|
|
52
|
-
generateOpenBankingOverviewWorkflow
|
|
53
|
-
};
|
|
2
|
+
import{OwnersEnum as h,StabilityEnum as j,TagsEnum as q}from"@contractspec/lib.contracts-spec";import{defineWorkflow as v}from"@contractspec/lib.contracts-spec/workflow/spec";var x=[{key:"openbanking.accounts.read",version:"1.0.0"},{key:"openbanking.transactions.read",version:"1.0.0"},{key:"openbanking.balances.read",version:"1.0.0"}],F=v({meta:{key:"pfo.workflow.generate-openbanking-overview",version:"1.0.0",title:"Generate Open Banking Overview",description:"Produces a derived financial overview and stores it in the operational knowledge space.",domain:"finance",owners:[h.PlatformFinance],tags:["open-banking","summary",q.Automation],stability:j.Experimental},definition:{entryStepId:"generate-overview",steps:[{id:"generate-overview",type:"automation",label:"Generate Overview",description:"Aggregate balances, cashflow, and category breakdowns into a knowledge entry.",action:{operation:{key:"pfo.openbanking.generate-overview",version:"1.0.0"}},requiredIntegrations:["primaryOpenBanking"],requiredCapabilities:x,retry:{maxAttempts:3,backoff:"exponential",delayMs:1500}}],transitions:[]}});export{F as generateOpenBankingOverviewWorkflow};
|