@envarai/envarpay 0.1.0-alpha.3 → 0.2.0-alpha.10

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/README.md +57 -145
  2. package/dist/commerce/alerts.d.ts +37 -0
  3. package/dist/commerce/alerts.js +127 -0
  4. package/dist/commerce/buyer-store.d.ts +101 -0
  5. package/dist/commerce/buyer-store.js +168 -0
  6. package/dist/commerce/buyer.d.ts +138 -0
  7. package/dist/commerce/buyer.js +775 -0
  8. package/dist/commerce/card.d.ts +5 -0
  9. package/dist/commerce/card.js +29 -0
  10. package/dist/commerce/chain.d.ts +24 -0
  11. package/dist/commerce/chain.js +146 -0
  12. package/dist/commerce/cli.d.ts +2 -0
  13. package/dist/commerce/cli.js +318 -0
  14. package/dist/commerce/client-runtime.d.ts +8 -0
  15. package/dist/commerce/client-runtime.js +7 -0
  16. package/dist/commerce/config.d.ts +11 -0
  17. package/dist/commerce/config.js +200 -0
  18. package/dist/commerce/envar-runtime.d.ts +47 -0
  19. package/dist/commerce/envar-runtime.js +276 -0
  20. package/dist/commerce/envar.d.ts +126 -0
  21. package/dist/commerce/envar.js +647 -0
  22. package/dist/commerce/http.d.ts +2 -0
  23. package/dist/commerce/http.js +34 -0
  24. package/dist/commerce/index.d.ts +5 -0
  25. package/dist/commerce/index.js +5 -0
  26. package/dist/commerce/management.d.ts +14 -0
  27. package/dist/commerce/management.js +140 -0
  28. package/dist/commerce/mpp-client.d.ts +70 -0
  29. package/dist/commerce/mpp-client.js +29 -0
  30. package/dist/commerce/mpp-runtime.d.ts +4 -0
  31. package/dist/commerce/mpp-runtime.js +4 -0
  32. package/dist/commerce/mpp.d.ts +53 -0
  33. package/dist/commerce/mpp.js +163 -0
  34. package/dist/commerce/native-skills.d.ts +27 -0
  35. package/dist/commerce/native-skills.js +176 -0
  36. package/dist/commerce/operations.d.ts +22 -0
  37. package/dist/commerce/operations.js +39 -0
  38. package/dist/commerce/peer-proxy.d.ts +44 -0
  39. package/dist/commerce/peer-proxy.js +673 -0
  40. package/dist/commerce/pricing.d.ts +12 -0
  41. package/dist/commerce/pricing.js +60 -0
  42. package/dist/commerce/runtime.d.ts +10 -0
  43. package/dist/commerce/runtime.js +10 -0
  44. package/dist/commerce/server.d.ts +61 -0
  45. package/dist/commerce/server.js +516 -0
  46. package/dist/commerce/setup.d.ts +18 -0
  47. package/dist/commerce/setup.js +344 -0
  48. package/dist/commerce/skill-gate.d.ts +54 -0
  49. package/dist/commerce/skill-gate.js +153 -0
  50. package/dist/commerce/store.d.ts +88 -0
  51. package/dist/commerce/store.js +473 -0
  52. package/dist/commerce/stripe-issuer.d.ts +41 -0
  53. package/dist/commerce/stripe-issuer.js +351 -0
  54. package/dist/commerce/stripe-provider.d.ts +11 -0
  55. package/dist/commerce/stripe-provider.js +132 -0
  56. package/dist/commerce/types.d.ts +138 -0
  57. package/dist/commerce/types.js +8 -0
  58. package/dist/commerce/upstream.d.ts +6 -0
  59. package/dist/commerce/upstream.js +103 -0
  60. package/dist/commerce/vault.d.ts +8 -0
  61. package/dist/commerce/vault.js +55 -0
  62. package/dist/commerce/x402.d.ts +38 -0
  63. package/dist/commerce/x402.js +181 -0
  64. package/examples/buyer-policy.json +18 -0
  65. package/examples/envar-integration-policy.json +18 -0
  66. package/examples/hermes-setup-probe.py +105 -0
  67. package/examples/native-skill-runner.py +197 -0
  68. package/examples/seller.json +52 -0
  69. package/package.json +75 -10
  70. package/schemas/buyer-policy.schema.json +253 -0
  71. package/schemas/envarpay.config.schema.json +383 -0
  72. package/schemas/quote.schema.json +91 -0
@@ -0,0 +1,383 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:envarpay:config:1-or-2",
4
+ "title": "EnvarPay A2A commerce MVP configuration",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "configVersion",
9
+ "agent",
10
+ "paymentProfiles",
11
+ "services"
12
+ ],
13
+ "properties": {
14
+ "configVersion": {
15
+ "enum": [1, 2]
16
+ },
17
+ "agent": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "required": [
21
+ "id",
22
+ "name"
23
+ ],
24
+ "properties": {
25
+ "id": {
26
+ "$ref": "#/$defs/id"
27
+ },
28
+ "name": {
29
+ "type": "string",
30
+ "minLength": 1,
31
+ "maxLength": 120
32
+ }
33
+ }
34
+ },
35
+ "paymentProfiles": {
36
+ "type": "object",
37
+ "maxProperties": 16,
38
+ "propertyNames": {
39
+ "$ref": "#/$defs/id"
40
+ },
41
+ "additionalProperties": {
42
+ "oneOf": [
43
+ {
44
+ "$ref": "#/$defs/x402"
45
+ },
46
+ {
47
+ "$ref": "#/$defs/mpp"
48
+ }
49
+ ]
50
+ }
51
+ },
52
+ "services": {
53
+ "type": "array",
54
+ "minItems": 0,
55
+ "maxItems": 64,
56
+ "items": {
57
+ "$ref": "#/$defs/service"
58
+ }
59
+ }
60
+ },
61
+ "$defs": {
62
+ "id": {
63
+ "type": "string",
64
+ "pattern": "^[a-z][a-z0-9-]{0,63}$"
65
+ },
66
+ "amount": {
67
+ "type": "string",
68
+ "pattern": "^[1-9][0-9]{0,77}$"
69
+ },
70
+ "address": {
71
+ "type": "string",
72
+ "pattern": "^0x[0-9a-fA-F]{40}$"
73
+ },
74
+ "httpUrl": {
75
+ "type": "string",
76
+ "format": "uri",
77
+ "pattern": "^https?://",
78
+ "maxLength": 2048
79
+ },
80
+ "x402": {
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "required": [
84
+ "adapter",
85
+ "scheme",
86
+ "network",
87
+ "asset",
88
+ "payTo",
89
+ "facilitatorUrl"
90
+ ],
91
+ "properties": {
92
+ "adapter": {
93
+ "const": "x402"
94
+ },
95
+ "scheme": {
96
+ "const": "exact"
97
+ },
98
+ "network": {
99
+ "type": "string",
100
+ "pattern": "^eip155:[1-9][0-9]*$"
101
+ },
102
+ "asset": {
103
+ "$ref": "#/$defs/address"
104
+ },
105
+ "payTo": {
106
+ "$ref": "#/$defs/address"
107
+ },
108
+ "facilitatorUrl": {
109
+ "type": "string",
110
+ "format": "uri",
111
+ "pattern": "^https://"
112
+ }
113
+ }
114
+ },
115
+ "mpp": {
116
+ "type": "object",
117
+ "additionalProperties": false,
118
+ "required": [
119
+ "adapter",
120
+ "method",
121
+ "intent",
122
+ "currency",
123
+ "accountRef"
124
+ ],
125
+ "properties": {
126
+ "adapter": {
127
+ "const": "mpp"
128
+ },
129
+ "method": {
130
+ "const": "stripe"
131
+ },
132
+ "intent": {
133
+ "const": "charge"
134
+ },
135
+ "currency": {
136
+ "const": "usd"
137
+ },
138
+ "accountRef": {
139
+ "$ref": "#/$defs/id"
140
+ }
141
+ }
142
+ },
143
+ "service": {
144
+ "type": "object",
145
+ "additionalProperties": false,
146
+ "required": [
147
+ "id",
148
+ "name",
149
+ "revision",
150
+ "execution",
151
+ "contract",
152
+ "offers"
153
+ ],
154
+ "properties": {
155
+ "id": {
156
+ "$ref": "#/$defs/id"
157
+ },
158
+ "name": {
159
+ "type": "string",
160
+ "minLength": 1
161
+ },
162
+ "revision": {
163
+ "type": "integer",
164
+ "minimum": 1,
165
+ "maximum": 2147483647
166
+ },
167
+ "execution": {
168
+ "oneOf": [
169
+ {
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "required": ["type", "cardUrl"],
173
+ "properties": {
174
+ "type": { "const": "a2a" },
175
+ "cardUrl": { "$ref": "#/$defs/httpUrl" }
176
+ }
177
+ },
178
+ {
179
+ "type": "object",
180
+ "additionalProperties": false,
181
+ "required": ["type", "cardUrl", "skillDigest"],
182
+ "properties": {
183
+ "type": { "const": "skill" },
184
+ "cardUrl": { "$ref": "#/$defs/httpUrl" },
185
+ "skillDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
186
+ }
187
+ }
188
+ ]
189
+ },
190
+ "contract": {
191
+ "type": "object",
192
+ "additionalProperties": false,
193
+ "required": [
194
+ "inputSchema",
195
+ "deliverables",
196
+ "targetDurationSeconds",
197
+ "includedRevisions"
198
+ ],
199
+ "properties": {
200
+ "inputSchema": {
201
+ "type": "object"
202
+ },
203
+ "deliverables": {
204
+ "type": "array",
205
+ "minItems": 1,
206
+ "uniqueItems": true,
207
+ "items": {
208
+ "type": "string",
209
+ "minLength": 1
210
+ }
211
+ },
212
+ "targetDurationSeconds": {
213
+ "type": "integer",
214
+ "minimum": 1,
215
+ "maximum": 86400
216
+ },
217
+ "includedRevisions": {
218
+ "const": 0
219
+ }
220
+ }
221
+ },
222
+ "offers": {
223
+ "type": "array",
224
+ "minItems": 1,
225
+ "maxItems": 16,
226
+ "items": {
227
+ "$ref": "#/$defs/offer"
228
+ }
229
+ }
230
+ }
231
+ },
232
+ "free": {
233
+ "type": "object",
234
+ "additionalProperties": false,
235
+ "required": [
236
+ "kind"
237
+ ],
238
+ "properties": {
239
+ "kind": {
240
+ "const": "free"
241
+ }
242
+ }
243
+ },
244
+ "fixed": {
245
+ "type": "object",
246
+ "additionalProperties": false,
247
+ "required": [
248
+ "kind",
249
+ "amount"
250
+ ],
251
+ "properties": {
252
+ "kind": {
253
+ "const": "fixed"
254
+ },
255
+ "amount": {
256
+ "$ref": "#/$defs/amount"
257
+ }
258
+ }
259
+ },
260
+ "quantity": {
261
+ "type": "object",
262
+ "additionalProperties": false,
263
+ "required": [
264
+ "kind",
265
+ "unit",
266
+ "unitAmount",
267
+ "quantity"
268
+ ],
269
+ "properties": {
270
+ "kind": {
271
+ "const": "quantity"
272
+ },
273
+ "unit": {
274
+ "$ref": "#/$defs/id"
275
+ },
276
+ "unitAmount": {
277
+ "$ref": "#/$defs/amount"
278
+ },
279
+ "quantity": {
280
+ "type": "object",
281
+ "additionalProperties": false,
282
+ "required": [
283
+ "pointer",
284
+ "measure",
285
+ "min",
286
+ "max"
287
+ ],
288
+ "properties": {
289
+ "pointer": {
290
+ "type": "string",
291
+ "pattern": "^(/([^~/]|~[01])*)+$"
292
+ },
293
+ "measure": {
294
+ "const": "count"
295
+ },
296
+ "min": {
297
+ "type": "integer",
298
+ "minimum": 1
299
+ },
300
+ "max": {
301
+ "type": "integer",
302
+ "minimum": 1,
303
+ "maximum": 10000
304
+ }
305
+ }
306
+ }
307
+ }
308
+ },
309
+ "offer": {
310
+ "oneOf": [
311
+ {
312
+ "type": "object",
313
+ "additionalProperties": false,
314
+ "required": [
315
+ "id",
316
+ "pricing",
317
+ "collection"
318
+ ],
319
+ "properties": {
320
+ "id": {
321
+ "$ref": "#/$defs/id"
322
+ },
323
+ "pricing": {
324
+ "$ref": "#/$defs/free"
325
+ },
326
+ "collection": {
327
+ "type": "object",
328
+ "additionalProperties": false,
329
+ "required": [
330
+ "kind"
331
+ ],
332
+ "properties": {
333
+ "kind": {
334
+ "const": "none"
335
+ }
336
+ }
337
+ }
338
+ }
339
+ },
340
+ {
341
+ "type": "object",
342
+ "additionalProperties": false,
343
+ "required": [
344
+ "id",
345
+ "pricing",
346
+ "collection",
347
+ "paymentProfile"
348
+ ],
349
+ "properties": {
350
+ "id": {
351
+ "$ref": "#/$defs/id"
352
+ },
353
+ "pricing": {
354
+ "oneOf": [
355
+ {
356
+ "$ref": "#/$defs/fixed"
357
+ },
358
+ {
359
+ "$ref": "#/$defs/quantity"
360
+ }
361
+ ]
362
+ },
363
+ "collection": {
364
+ "type": "object",
365
+ "additionalProperties": false,
366
+ "required": [
367
+ "kind"
368
+ ],
369
+ "properties": {
370
+ "kind": {
371
+ "const": "upfront"
372
+ }
373
+ }
374
+ },
375
+ "paymentProfile": {
376
+ "$ref": "#/$defs/id"
377
+ }
378
+ }
379
+ }
380
+ ]
381
+ }
382
+ }
383
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:envarpay:price-quote:1",
4
+ "title": "Immutable price quote before payment challenge construction",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "quoteVersion",
9
+ "quoteId",
10
+ "caller",
11
+ "serviceId",
12
+ "serviceRevision",
13
+ "offerId",
14
+ "messageId",
15
+ "inputDigest",
16
+ "termsDigest",
17
+ "issuedAt",
18
+ "expiresAt",
19
+ "amount",
20
+ "currency",
21
+ "recipient",
22
+ "paymentProfile"
23
+ ],
24
+ "properties": {
25
+ "quoteVersion": {
26
+ "const": 1
27
+ },
28
+ "quoteId": {
29
+ "type": "string",
30
+ "format": "uuid"
31
+ },
32
+ "caller": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "serviceId": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "serviceRevision": {
41
+ "type": "integer",
42
+ "minimum": 1
43
+ },
44
+ "offerId": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "messageId": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "inputDigest": {
53
+ "type": "string",
54
+ "pattern": "^[0-9a-f]{64}$"
55
+ },
56
+ "termsDigest": {
57
+ "type": "string",
58
+ "pattern": "^[0-9a-f]{64}$"
59
+ },
60
+ "issuedAt": {
61
+ "type": "string",
62
+ "format": "date-time"
63
+ },
64
+ "expiresAt": {
65
+ "type": "string",
66
+ "format": "date-time"
67
+ },
68
+ "amount": {
69
+ "type": "string",
70
+ "pattern": "^(0|[1-9][0-9]{0,77})$"
71
+ },
72
+ "currency": {
73
+ "type": [
74
+ "string",
75
+ "null"
76
+ ]
77
+ },
78
+ "recipient": {
79
+ "type": [
80
+ "string",
81
+ "null"
82
+ ]
83
+ },
84
+ "paymentProfile": {
85
+ "type": [
86
+ "object",
87
+ "null"
88
+ ]
89
+ }
90
+ }
91
+ }