@suveren/gateway 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@
14
14
  <meta name="apple-mobile-web-app-title" content="Suveren" />
15
15
  <meta name="theme-color" content="#111111" />
16
16
  <title>Suveren</title>
17
- <script type="module" crossorigin src="/assets/index-Bev2H2zu.js"></script>
17
+ <script type="module" crossorigin src="/assets/index-DKBwi4Yw.js"></script>
18
18
  <link rel="stylesheet" crossorigin href="/assets/index-BiGnI2Tk.css">
19
19
  </head>
20
20
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@suveren/gateway",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "Suveren gateway — local agent gateway built in compliance with the Human Agency Protocol (HAP). Runs the UI, control plane, and MCP server in one Node process.",
5
5
  "type": "module",
6
6
  "main": "server.js",
@@ -0,0 +1,232 @@
1
+ {
2
+ "id": "github.com/humanagencyprotocol/hap-profiles/charge@0.7",
3
+ "name": "Payments",
4
+ "version": "0.7",
5
+ "description": "Payments authority — governs collecting money from customers through a payment provider: payment links and payments, seeing whether money came in, and managing payment customers. Invoices and credit notes are Invoicing; refunds, subscriptions and outgoing money are not covered.",
6
+ "whatsNew": "Now called Payments. Payment links and payments need an amount within the limit (an open-amount link is refused), reads have their own switch, and managing payment customers is its own act. Refunds and subscriptions are no longer covered.",
7
+ "boundsSchema": {
8
+ "actionTypes": [
9
+ "charge",
10
+ "manage"
11
+ ],
12
+ "keyOrder": [
13
+ "profile",
14
+ "read_access",
15
+ "amount_max",
16
+ "amount_daily_max",
17
+ "amount_monthly_max",
18
+ "charge_daily_max",
19
+ "manage_daily_max"
20
+ ],
21
+ "fields": {
22
+ "profile": {
23
+ "type": "string",
24
+ "required": true
25
+ },
26
+ "read_access": {
27
+ "type": "string",
28
+ "required": true,
29
+ "displayName": "Read access",
30
+ "description": "Allow the agent to look up payments, payment links, payment customers and balances — including whether money came in.",
31
+ "boundType": {
32
+ "kind": "enum",
33
+ "values": [
34
+ "unlimited",
35
+ "none"
36
+ ]
37
+ },
38
+ "default": "unlimited"
39
+ },
40
+ "amount_max": {
41
+ "type": "number",
42
+ "required": true,
43
+ "displayName": "Max per payment",
44
+ "description": "Maximum amount of a single payment or payment link, in currency units. A call that states no amount (an open-amount link) is refused.",
45
+ "unit": "currency:EUR",
46
+ "boundType": {
47
+ "kind": "per_transaction",
48
+ "of": "amount",
49
+ "requiredFor": [
50
+ "charge"
51
+ ]
52
+ }
53
+ },
54
+ "amount_daily_max": {
55
+ "type": "number",
56
+ "required": true,
57
+ "displayName": "Collected per day",
58
+ "description": "Maximum cumulative amount of payments and payment links created per day.",
59
+ "unit": "currency:EUR",
60
+ "boundType": {
61
+ "kind": "cumulative_sum",
62
+ "of": "amount",
63
+ "window": "daily"
64
+ },
65
+ "appliesTo": [
66
+ "charge"
67
+ ]
68
+ },
69
+ "amount_monthly_max": {
70
+ "type": "number",
71
+ "required": true,
72
+ "displayName": "Collected per month",
73
+ "description": "Maximum cumulative amount of payments and payment links created per month.",
74
+ "unit": "currency:EUR",
75
+ "boundType": {
76
+ "kind": "cumulative_sum",
77
+ "of": "amount",
78
+ "window": "monthly"
79
+ },
80
+ "appliesTo": [
81
+ "charge"
82
+ ]
83
+ },
84
+ "charge_daily_max": {
85
+ "type": "number",
86
+ "required": true,
87
+ "displayName": "Payments per day",
88
+ "description": "Maximum payments and payment links created per day.",
89
+ "unit": "count",
90
+ "boundType": {
91
+ "kind": "cumulative_count",
92
+ "window": "daily"
93
+ },
94
+ "appliesTo": [
95
+ "charge"
96
+ ]
97
+ },
98
+ "manage_daily_max": {
99
+ "type": "number",
100
+ "required": true,
101
+ "displayName": "Customer changes per day",
102
+ "description": "Maximum payment customers created or changed per day. Moves no money.",
103
+ "unit": "count",
104
+ "boundType": {
105
+ "kind": "cumulative_count",
106
+ "window": "daily"
107
+ },
108
+ "appliesTo": [
109
+ "manage"
110
+ ]
111
+ }
112
+ }
113
+ },
114
+ "scopeSchema": {
115
+ "keyOrder": [
116
+ "currency"
117
+ ],
118
+ "fields": {
119
+ "currency": {
120
+ "type": "string",
121
+ "required": true,
122
+ "displayName": "Currency",
123
+ "description": "Permitted currency",
124
+ "constraint": {
125
+ "type": "string",
126
+ "enforceable": [
127
+ "enum"
128
+ ]
129
+ },
130
+ "enum": [
131
+ "EUR",
132
+ "CHF",
133
+ "USD",
134
+ "GBP"
135
+ ]
136
+ }
137
+ }
138
+ },
139
+ "executionContextSchema": {
140
+ "fields": {
141
+ "amount": {
142
+ "source": "declared",
143
+ "description": "Amount of the payment or payment link in currency units",
144
+ "required": true,
145
+ "constraint": {
146
+ "type": "number",
147
+ "enforceable": [
148
+ "max"
149
+ ]
150
+ }
151
+ },
152
+ "currency": {
153
+ "source": "declared",
154
+ "description": "Payment currency",
155
+ "required": true,
156
+ "constraint": {
157
+ "type": "string",
158
+ "enforceable": [
159
+ "enum"
160
+ ]
161
+ }
162
+ },
163
+ "amount_daily": {
164
+ "source": "cumulative",
165
+ "description": "Running daily amount collected",
166
+ "required": true,
167
+ "constraint": {
168
+ "type": "number",
169
+ "enforceable": [
170
+ "max"
171
+ ]
172
+ },
173
+ "cumulativeField": "amount",
174
+ "window": "daily"
175
+ },
176
+ "amount_monthly": {
177
+ "source": "cumulative",
178
+ "description": "Running monthly amount collected",
179
+ "required": true,
180
+ "constraint": {
181
+ "type": "number",
182
+ "enforceable": [
183
+ "max"
184
+ ]
185
+ },
186
+ "cumulativeField": "amount",
187
+ "window": "monthly"
188
+ },
189
+ "charge_count_daily": {
190
+ "source": "cumulative",
191
+ "description": "Running daily payment count",
192
+ "required": true,
193
+ "constraint": {
194
+ "type": "number",
195
+ "enforceable": [
196
+ "max"
197
+ ]
198
+ },
199
+ "cumulativeField": "_count",
200
+ "window": "daily"
201
+ },
202
+ "manage_count_daily": {
203
+ "source": "cumulative",
204
+ "description": "Running daily customer-change count",
205
+ "required": true,
206
+ "constraint": {
207
+ "type": "number",
208
+ "enforceable": [
209
+ "max"
210
+ ]
211
+ },
212
+ "cumulativeField": "_count",
213
+ "window": "daily"
214
+ }
215
+ }
216
+ },
217
+ "requiredGates": [
218
+ "bounds",
219
+ "intent",
220
+ "commitment",
221
+ "mandate_owner"
222
+ ],
223
+ "ttl": {
224
+ "default": 86400,
225
+ "max": 2592000
226
+ },
227
+ "retention_minimum": 7776000,
228
+ "content_binding": {
229
+ "version": "1",
230
+ "kind": "jcs"
231
+ }
232
+ }
@@ -51,6 +51,8 @@
51
51
  "github.com/humanagencyprotocol/hap-profiles/deploy@0.12": "deploy/0.12.profile.json",
52
52
  "github.com/humanagencyprotocol/hap-profiles/purchase@0.8": "purchase/0.8.profile.json",
53
53
  "github.com/humanagencyprotocol/hap-profiles/reporting@0.4": "reporting/0.4.profile.json",
54
- "github.com/humanagencyprotocol/hap-profiles/delegation@0.5": "delegation/0.5.profile.json"
54
+ "github.com/humanagencyprotocol/hap-profiles/delegation@0.5": "delegation/0.5.profile.json",
55
+ "github.com/humanagencyprotocol/hap-profiles/invoicing@0.1": "invoicing/0.1.profile.json",
56
+ "github.com/humanagencyprotocol/hap-profiles/charge@0.7": "charge/0.7.profile.json"
55
57
  }
56
58
  }
@@ -0,0 +1,259 @@
1
+ {
2
+ "id": "github.com/humanagencyprotocol/hap-profiles/invoicing@0.1",
3
+ "name": "Invoicing",
4
+ "version": "0.1",
5
+ "description": "Invoicing authority — governs issuing invoices and credit notes in the invoicing system (ERP). An issued invoice is never changed or deleted: a cancellation or correction is a credit note with its own number, as German and Austrian law require. No payments, reminders or master data.",
6
+ "whatsNew": "First version: invoices and credit notes, each with its own net limits.",
7
+ "boundsSchema": {
8
+ "actionTypes": [
9
+ "invoice",
10
+ "credit"
11
+ ],
12
+ "keyOrder": [
13
+ "profile",
14
+ "read_access",
15
+ "invoice_net_max",
16
+ "credit_net_max",
17
+ "invoice_net_monthly_max",
18
+ "credit_net_monthly_max",
19
+ "invoice_daily_max",
20
+ "credit_daily_max"
21
+ ],
22
+ "fields": {
23
+ "profile": {
24
+ "type": "string",
25
+ "required": true
26
+ },
27
+ "read_access": {
28
+ "type": "string",
29
+ "required": true,
30
+ "displayName": "Read access",
31
+ "description": "Allow the agent to look up invoices and credit notes, and the orders and customers they are issued for.",
32
+ "boundType": {
33
+ "kind": "enum",
34
+ "values": [
35
+ "unlimited",
36
+ "none"
37
+ ]
38
+ },
39
+ "toolsDescription": "list_invoices, get_invoice, list_credit_notes, get_credit_note",
40
+ "default": "unlimited"
41
+ },
42
+ "invoice_net_max": {
43
+ "type": "number",
44
+ "required": true,
45
+ "displayName": "Max net per invoice",
46
+ "description": "Maximum net total of a single invoice, in currency units. The connector recalculates the total from the lines and refuses a call whose declared total does not match.",
47
+ "unit": "currency:EUR",
48
+ "boundType": {
49
+ "kind": "per_transaction",
50
+ "of": "net_total",
51
+ "requiredFor": [
52
+ "invoice"
53
+ ]
54
+ }
55
+ },
56
+ "credit_net_max": {
57
+ "type": "number",
58
+ "required": true,
59
+ "displayName": "Max net per credit note",
60
+ "description": "Maximum net total of a single credit note (cancellation or correction of an issued invoice), in currency units. Recalculated by the connector like an invoice.",
61
+ "unit": "currency:EUR",
62
+ "boundType": {
63
+ "kind": "per_transaction",
64
+ "of": "credit_total",
65
+ "requiredFor": [
66
+ "credit"
67
+ ]
68
+ }
69
+ },
70
+ "invoice_net_monthly_max": {
71
+ "type": "number",
72
+ "required": true,
73
+ "displayName": "Invoiced per month",
74
+ "description": "Maximum cumulative net total of invoices issued per month, in currency units.",
75
+ "unit": "currency:EUR",
76
+ "boundType": {
77
+ "kind": "cumulative_sum",
78
+ "of": "net_total",
79
+ "window": "monthly"
80
+ },
81
+ "appliesTo": [
82
+ "invoice"
83
+ ]
84
+ },
85
+ "credit_net_monthly_max": {
86
+ "type": "number",
87
+ "required": true,
88
+ "displayName": "Credited per month",
89
+ "description": "Maximum cumulative net total of credit notes issued per month, in currency units.",
90
+ "unit": "currency:EUR",
91
+ "boundType": {
92
+ "kind": "cumulative_sum",
93
+ "of": "credit_total",
94
+ "window": "monthly"
95
+ },
96
+ "appliesTo": [
97
+ "credit"
98
+ ]
99
+ },
100
+ "invoice_daily_max": {
101
+ "type": "number",
102
+ "required": true,
103
+ "displayName": "Invoices per day",
104
+ "description": "Maximum invoices issued per day. An issued invoice is a legal document and cannot be withdrawn, only credited.",
105
+ "unit": "count",
106
+ "boundType": {
107
+ "kind": "cumulative_count",
108
+ "window": "daily"
109
+ },
110
+ "appliesTo": [
111
+ "invoice"
112
+ ]
113
+ },
114
+ "credit_daily_max": {
115
+ "type": "number",
116
+ "required": true,
117
+ "displayName": "Credit notes per day",
118
+ "description": "Maximum credit notes issued per day.",
119
+ "unit": "count",
120
+ "boundType": {
121
+ "kind": "cumulative_count",
122
+ "window": "daily"
123
+ },
124
+ "appliesTo": [
125
+ "credit"
126
+ ]
127
+ }
128
+ }
129
+ },
130
+ "scopeSchema": {
131
+ "keyOrder": [
132
+ "currency"
133
+ ],
134
+ "fields": {
135
+ "currency": {
136
+ "type": "string",
137
+ "required": true,
138
+ "displayName": "Currency",
139
+ "description": "Permitted invoice currency",
140
+ "constraint": {
141
+ "type": "string",
142
+ "enforceable": [
143
+ "enum"
144
+ ]
145
+ },
146
+ "enum": [
147
+ "EUR",
148
+ "CHF",
149
+ "USD",
150
+ "GBP"
151
+ ]
152
+ }
153
+ }
154
+ },
155
+ "executionContextSchema": {
156
+ "fields": {
157
+ "net_total": {
158
+ "source": "declared",
159
+ "description": "Net total of the invoice in currency units (verified by the connector against the lines)",
160
+ "required": true,
161
+ "constraint": {
162
+ "type": "number",
163
+ "enforceable": [
164
+ "max"
165
+ ]
166
+ }
167
+ },
168
+ "credit_total": {
169
+ "source": "declared",
170
+ "description": "Net total of the credit note in currency units (verified by the connector against the lines). Kept apart from net_total so an invoice limit never applies to a credit note, and the other way round.",
171
+ "required": true,
172
+ "constraint": {
173
+ "type": "number",
174
+ "enforceable": [
175
+ "max"
176
+ ]
177
+ }
178
+ },
179
+ "currency": {
180
+ "source": "declared",
181
+ "description": "Document currency",
182
+ "required": true,
183
+ "constraint": {
184
+ "type": "string",
185
+ "enforceable": [
186
+ "enum"
187
+ ]
188
+ }
189
+ },
190
+ "invoice_net_monthly": {
191
+ "source": "cumulative",
192
+ "description": "Running monthly net total invoiced",
193
+ "required": true,
194
+ "constraint": {
195
+ "type": "number",
196
+ "enforceable": [
197
+ "max"
198
+ ]
199
+ },
200
+ "cumulativeField": "net_total",
201
+ "window": "monthly"
202
+ },
203
+ "credit_net_monthly": {
204
+ "source": "cumulative",
205
+ "description": "Running monthly net total credited",
206
+ "required": true,
207
+ "constraint": {
208
+ "type": "number",
209
+ "enforceable": [
210
+ "max"
211
+ ]
212
+ },
213
+ "cumulativeField": "credit_total",
214
+ "window": "monthly"
215
+ },
216
+ "invoice_count_daily": {
217
+ "source": "cumulative",
218
+ "description": "Running daily invoice count",
219
+ "required": true,
220
+ "constraint": {
221
+ "type": "number",
222
+ "enforceable": [
223
+ "max"
224
+ ]
225
+ },
226
+ "cumulativeField": "_count",
227
+ "window": "daily"
228
+ },
229
+ "credit_count_daily": {
230
+ "source": "cumulative",
231
+ "description": "Running daily credit note count",
232
+ "required": true,
233
+ "constraint": {
234
+ "type": "number",
235
+ "enforceable": [
236
+ "max"
237
+ ]
238
+ },
239
+ "cumulativeField": "_count",
240
+ "window": "daily"
241
+ }
242
+ }
243
+ },
244
+ "requiredGates": [
245
+ "bounds",
246
+ "intent",
247
+ "commitment",
248
+ "mandate_owner"
249
+ ],
250
+ "ttl": {
251
+ "default": 86400,
252
+ "max": 2592000
253
+ },
254
+ "retention_minimum": 7776000,
255
+ "content_binding": {
256
+ "version": "1",
257
+ "kind": "jcs"
258
+ }
259
+ }