@contractspec/example.pocket-family-office 3.7.16 → 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 (72) 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.d.ts +1 -1
  56. package/dist/workflows/generate-financial-summary.js +1 -58
  57. package/dist/workflows/generate-openbanking-overview.d.ts +1 -1
  58. package/dist/workflows/generate-openbanking-overview.js +1 -52
  59. package/dist/workflows/index.js +1 -467
  60. package/dist/workflows/ingest-email-threads.d.ts +1 -1
  61. package/dist/workflows/ingest-email-threads.js +1 -56
  62. package/dist/workflows/process-uploaded-document.d.ts +1 -1
  63. package/dist/workflows/process-uploaded-document.js +1 -54
  64. package/dist/workflows/refresh-openbanking-balances.d.ts +1 -1
  65. package/dist/workflows/refresh-openbanking-balances.js +1 -64
  66. package/dist/workflows/sync-openbanking-accounts.d.ts +1 -1
  67. package/dist/workflows/sync-openbanking-accounts.js +1 -64
  68. package/dist/workflows/sync-openbanking-transactions.d.ts +1 -1
  69. package/dist/workflows/sync-openbanking-transactions.js +1 -64
  70. package/dist/workflows/upcoming-payments-reminder.d.ts +1 -1
  71. package/dist/workflows/upcoming-payments-reminder.js +1 -62
  72. package/package.json +9 -9
package/dist/telemetry.js CHANGED
@@ -1,177 +1,2 @@
1
1
  // @bun
2
- // src/telemetry.ts
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};
@@ -1,72 +1,2 @@
1
1
  // @bun
2
- // src/tenant.sample.ts
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 +1 @@
1
- export declare const generateFinancialSummaryWorkflow: import("@contractspec/lib.contracts-spec/workflow").WorkflowSpec;
1
+ export declare const generateFinancialSummaryWorkflow: import("@contractspec/lib.contracts-spec/workflow/spec").WorkflowSpec;
@@ -1,59 +1,2 @@
1
1
  // @bun
2
- // src/workflows/generate-financial-summary.ts
3
- import {
4
- OwnersEnum,
5
- StabilityEnum,
6
- TagsEnum
7
- } from "@contractspec/lib.contracts-spec";
8
- import { defineWorkflow } from "@contractspec/lib.contracts-spec/workflow";
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 +1 @@
1
- export declare const generateOpenBankingOverviewWorkflow: import("@contractspec/lib.contracts-spec/workflow").WorkflowSpec;
1
+ export declare const generateOpenBankingOverviewWorkflow: import("@contractspec/lib.contracts-spec/workflow/spec").WorkflowSpec;
@@ -1,53 +1,2 @@
1
1
  // @bun
2
- // src/workflows/generate-openbanking-overview.ts
3
- import {
4
- OwnersEnum,
5
- StabilityEnum,
6
- TagsEnum
7
- } from "@contractspec/lib.contracts-spec";
8
- import { defineWorkflow } from "@contractspec/lib.contracts-spec/workflow";
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};