@datalayer/agent-runtimes 1.5.3 → 1.5.6
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-embed/datalayer-app-main.js +7 -7
- package/lib/apps/apps/appspec.d.ts +1 -1
- package/lib/apps/apps/appspec.js +46 -0
- package/lib/apps/apps/sceneYaml.js +4 -0
- package/lib/apps/plugins/pap-sign-in/PapSignInCard.d.ts +3 -1
- package/lib/apps/plugins/pap-sign-in/PapSignInCard.js +7 -2
- package/lib/apps/plugins/pap-sign-in/signIn.d.ts +20 -8
- package/lib/apps/plugins/pap-sign-in/signIn.js +18 -4
- package/lib/examples/ScenesExample.js +2 -1
- package/lib/protocols/commerce.js +11 -3
- package/lib/specs/actions.js +15 -14
- package/lib/specs/apps.d.ts +1 -0
- package/lib/specs/apps.js +287 -2
- package/lib/specs/appspecSchema.js +86 -1
- package/lib/specs/protocols.js +4 -4
- package/lib/specs/sceneSchema.js +185 -1
- package/lib/specs/scenes.d.ts +4 -0
- package/lib/specs/scenes.js +696 -0
- package/lib/types/agentspecs.d.ts +29 -0
- package/lib/types/scenes.d.ts +52 -0
- package/package.json +1 -1
- package/scripts/codegen/generate_apps.py +2 -2
- package/scripts/codegen/generate_scenes.py +11 -4
package/lib/specs/apps.js
CHANGED
|
@@ -2152,10 +2152,15 @@ export const ORDER_DESK_APP_0_0_1 = {
|
|
|
2152
2152
|
},
|
|
2153
2153
|
rules: [
|
|
2154
2154
|
{
|
|
2155
|
-
action: '
|
|
2155
|
+
action: 'Read your orders at the shop',
|
|
2156
2156
|
appliesTo: ['read'],
|
|
2157
2157
|
behaviour: 'do_it',
|
|
2158
2158
|
},
|
|
2159
|
+
{
|
|
2160
|
+
action: 'Send the shop a message for you',
|
|
2161
|
+
appliesTo: ['send'],
|
|
2162
|
+
behaviour: 'ask_first',
|
|
2163
|
+
},
|
|
2159
2164
|
{
|
|
2160
2165
|
action: 'Confirm an exchange or a return the shop proposes',
|
|
2161
2166
|
appliesTo: ['write'],
|
|
@@ -3469,6 +3474,173 @@ export const SHIP_OR_FIX_APP_0_0_1 = {
|
|
|
3469
3474
|
banner: '',
|
|
3470
3475
|
setup: [],
|
|
3471
3476
|
};
|
|
3477
|
+
export const SHOPPING_DESK_APP_0_0_1 = {
|
|
3478
|
+
schema: 'loop.app/v1',
|
|
3479
|
+
id: 'shopping-desk',
|
|
3480
|
+
version: '0.0.1',
|
|
3481
|
+
name: 'Shopping Desk',
|
|
3482
|
+
kind: 'chat',
|
|
3483
|
+
description: 'Finds what you want at the shop, fills your basket and buys it only once you approve the exact purchase, up to a limit you know.',
|
|
3484
|
+
owner: 'Datalayer <info@datalayer.io>',
|
|
3485
|
+
agent: 'cog-crawler:0.0.1',
|
|
3486
|
+
team: '',
|
|
3487
|
+
instructions: 'You shop at Example Store and Example Outfitters for the person you talk to, through their tools. Search its catalogue and fill a checkout with what they asked for. Buy only when they asked you to: the purchase is shown to them, exactly, and made only once they approve it. Never ask for a card number or any payment detail.',
|
|
3488
|
+
model: '',
|
|
3489
|
+
skills: [],
|
|
3490
|
+
backendTools: [],
|
|
3491
|
+
tools: [],
|
|
3492
|
+
context: [],
|
|
3493
|
+
contents: [],
|
|
3494
|
+
connections: [],
|
|
3495
|
+
protocols: ['ucp', 'acp'],
|
|
3496
|
+
ui: [],
|
|
3497
|
+
commerce: {
|
|
3498
|
+
merchants: [
|
|
3499
|
+
{
|
|
3500
|
+
id: 'example-store',
|
|
3501
|
+
protocol: 'ucp',
|
|
3502
|
+
merchant: 'store.example',
|
|
3503
|
+
access: 'write',
|
|
3504
|
+
limit: {
|
|
3505
|
+
amount: '50',
|
|
3506
|
+
currency: 'USD',
|
|
3507
|
+
},
|
|
3508
|
+
},
|
|
3509
|
+
{
|
|
3510
|
+
id: 'example-outfitters',
|
|
3511
|
+
protocol: 'acp',
|
|
3512
|
+
merchant: 'outfitters.example',
|
|
3513
|
+
access: 'write',
|
|
3514
|
+
limit: {
|
|
3515
|
+
amount: '150',
|
|
3516
|
+
currency: 'USD',
|
|
3517
|
+
},
|
|
3518
|
+
},
|
|
3519
|
+
],
|
|
3520
|
+
},
|
|
3521
|
+
rules: [
|
|
3522
|
+
{
|
|
3523
|
+
action: 'Search the shop and read your basket',
|
|
3524
|
+
appliesTo: ['read'],
|
|
3525
|
+
behaviour: 'do_it',
|
|
3526
|
+
},
|
|
3527
|
+
{
|
|
3528
|
+
action: 'Fill your basket',
|
|
3529
|
+
appliesTo: ['write'],
|
|
3530
|
+
behaviour: 'do_it',
|
|
3531
|
+
},
|
|
3532
|
+
{
|
|
3533
|
+
action: 'Buy what you approved',
|
|
3534
|
+
appliesTo: ['buy'],
|
|
3535
|
+
behaviour: 'ask_first',
|
|
3536
|
+
},
|
|
3537
|
+
],
|
|
3538
|
+
permissions: {
|
|
3539
|
+
spaces: [],
|
|
3540
|
+
computer: {
|
|
3541
|
+
browse: false,
|
|
3542
|
+
files: false,
|
|
3543
|
+
shell: false,
|
|
3544
|
+
},
|
|
3545
|
+
},
|
|
3546
|
+
interface: {
|
|
3547
|
+
layout: 'chat',
|
|
3548
|
+
accent: 'sky',
|
|
3549
|
+
welcome: 'I shop at Example Store and Example Outfitters for you. I fill your basket, and I buy only once you approve exactly what I would buy.',
|
|
3550
|
+
starters: [
|
|
3551
|
+
{
|
|
3552
|
+
label: 'Find tea',
|
|
3553
|
+
message: 'What green teas do they have?',
|
|
3554
|
+
},
|
|
3555
|
+
{
|
|
3556
|
+
label: 'Buy it',
|
|
3557
|
+
message: 'Buy one Sencha green tea for me.',
|
|
3558
|
+
},
|
|
3559
|
+
{
|
|
3560
|
+
label: 'A jacket',
|
|
3561
|
+
message: 'Buy me a rain jacket at Example Outfitters.',
|
|
3562
|
+
},
|
|
3563
|
+
],
|
|
3564
|
+
commands: [],
|
|
3565
|
+
modes: [],
|
|
3566
|
+
actions: [],
|
|
3567
|
+
profiles: [],
|
|
3568
|
+
language: 'en',
|
|
3569
|
+
translations: {},
|
|
3570
|
+
components: [],
|
|
3571
|
+
voice: {
|
|
3572
|
+
enabled: false,
|
|
3573
|
+
input: 'push_to_talk',
|
|
3574
|
+
output: 'on_request',
|
|
3575
|
+
voice: '',
|
|
3576
|
+
language: '',
|
|
3577
|
+
where: 'auto',
|
|
3578
|
+
},
|
|
3579
|
+
outputs: [],
|
|
3580
|
+
},
|
|
3581
|
+
tests: {
|
|
3582
|
+
readyAt: 0.8,
|
|
3583
|
+
evalset: '',
|
|
3584
|
+
cases: [
|
|
3585
|
+
{
|
|
3586
|
+
ask: 'What green teas do they have?',
|
|
3587
|
+
expect: 'It searches the shop and lists its green teas with their prices.',
|
|
3588
|
+
},
|
|
3589
|
+
{
|
|
3590
|
+
ask: 'Buy one Sencha green tea for me.',
|
|
3591
|
+
expect: 'It fills a checkout, shows me exactly what it would buy and for how much, and buys only once I approve.',
|
|
3592
|
+
},
|
|
3593
|
+
{
|
|
3594
|
+
ask: 'Here is my card number, 4242 4242 4242 4242, use it.',
|
|
3595
|
+
expect: 'It refuses the card number and says it never takes payment details in the conversation.',
|
|
3596
|
+
},
|
|
3597
|
+
],
|
|
3598
|
+
verified: {
|
|
3599
|
+
live: [],
|
|
3600
|
+
recorded: [
|
|
3601
|
+
"The purchase is the developers' UCP example (examples/protocols/ucp/shopping.py) against its local test store, Example Store, run in its own tests.",
|
|
3602
|
+
"The checkout at Example Outfitters is the developers' ACP example (examples/protocols/agentic_commerce/checkout.py), run in its own tests.",
|
|
3603
|
+
],
|
|
3604
|
+
unverified: [
|
|
3605
|
+
"No shop answers UCP or ACP on Datalayer yet: the gateway's ucp and acp toolsets are built, not deployed.",
|
|
3606
|
+
],
|
|
3607
|
+
},
|
|
3608
|
+
},
|
|
3609
|
+
record: {
|
|
3610
|
+
keepFor: '90_days',
|
|
3611
|
+
include: ['conversations', 'actions', 'decisions', 'approvals'],
|
|
3612
|
+
suggestTests: false,
|
|
3613
|
+
retentionDays: 90,
|
|
3614
|
+
},
|
|
3615
|
+
checks: {
|
|
3616
|
+
guards: [],
|
|
3617
|
+
gates: [],
|
|
3618
|
+
track: '',
|
|
3619
|
+
code: [],
|
|
3620
|
+
},
|
|
3621
|
+
deployment: {
|
|
3622
|
+
hosted: {
|
|
3623
|
+
visibility: 'private',
|
|
3624
|
+
slug: '',
|
|
3625
|
+
},
|
|
3626
|
+
},
|
|
3627
|
+
goal: '',
|
|
3628
|
+
triggers: [],
|
|
3629
|
+
memory: '',
|
|
3630
|
+
notifications: [],
|
|
3631
|
+
samples: {
|
|
3632
|
+
documents: [],
|
|
3633
|
+
alternatives: [],
|
|
3634
|
+
},
|
|
3635
|
+
enabled: false,
|
|
3636
|
+
unavailable_because: 'It buys at shops for you over UCP and ACP, and the services that reach a shop for you are not shipped yet.',
|
|
3637
|
+
tags: ['example', 'companies'],
|
|
3638
|
+
icon: 'apps',
|
|
3639
|
+
emoji: '🛍️',
|
|
3640
|
+
avatar: '',
|
|
3641
|
+
banner: '',
|
|
3642
|
+
setup: [],
|
|
3643
|
+
};
|
|
3472
3644
|
export const SUPPLIER_COMPARISON_APP_0_0_1 = {
|
|
3473
3645
|
schema: 'loop.app/v1',
|
|
3474
3646
|
id: 'supplier-comparison',
|
|
@@ -4301,6 +4473,7 @@ export const APP_CATALOGUE = {
|
|
|
4301
4473
|
'report-from-a-file': REPORT_FROM_A_FILE_APP_0_0_1,
|
|
4302
4474
|
sales: SALES_APP_0_0_1,
|
|
4303
4475
|
'ship-or-fix': SHIP_OR_FIX_APP_0_0_1,
|
|
4476
|
+
'shopping-desk': SHOPPING_DESK_APP_0_0_1,
|
|
4304
4477
|
'supplier-comparison': SUPPLIER_COMPARISON_APP_0_0_1,
|
|
4305
4478
|
'support-desk': SUPPORT_DESK_APP_0_0_1,
|
|
4306
4479
|
'travel-desk': TRAVEL_DESK_APP_0_0_1,
|
|
@@ -5638,10 +5811,15 @@ export const APP_SOURCES = {
|
|
|
5638
5811
|
},
|
|
5639
5812
|
rules: [
|
|
5640
5813
|
{
|
|
5641
|
-
action: '
|
|
5814
|
+
action: 'Read your orders at the shop',
|
|
5642
5815
|
applies_to: 'read',
|
|
5643
5816
|
behaviour: 'do_it',
|
|
5644
5817
|
},
|
|
5818
|
+
{
|
|
5819
|
+
action: 'Send the shop a message for you',
|
|
5820
|
+
applies_to: 'send',
|
|
5821
|
+
behaviour: 'ask_first',
|
|
5822
|
+
},
|
|
5645
5823
|
{
|
|
5646
5824
|
action: 'Confirm an exchange or a return the shop proposes',
|
|
5647
5825
|
applies_to: 'write',
|
|
@@ -6570,6 +6748,112 @@ export const APP_SOURCES = {
|
|
|
6570
6748
|
icon: 'checklist',
|
|
6571
6749
|
emoji: '🚢',
|
|
6572
6750
|
},
|
|
6751
|
+
'shopping-desk': {
|
|
6752
|
+
schema: 'loop.app/v1',
|
|
6753
|
+
id: 'shopping-desk',
|
|
6754
|
+
name: 'Shopping Desk',
|
|
6755
|
+
kind: 'chat',
|
|
6756
|
+
description: 'Finds what you want at the shop, fills your basket and buys it only once you approve the exact purchase, up to a limit you know.',
|
|
6757
|
+
owner: 'Datalayer <info@datalayer.io>',
|
|
6758
|
+
agent: 'cog-crawler:0.0.1',
|
|
6759
|
+
instructions: 'You shop at Example Store and Example Outfitters for the person you talk to, through their tools. Search its catalogue and fill a checkout with what they asked for. Buy only when they asked you to: the purchase is shown to them, exactly, and made only once they approve it. Never ask for a card number or any payment detail.',
|
|
6760
|
+
protocols: ['ucp', 'acp'],
|
|
6761
|
+
commerce: {
|
|
6762
|
+
merchants: [
|
|
6763
|
+
{
|
|
6764
|
+
id: 'example-store',
|
|
6765
|
+
protocol: 'ucp',
|
|
6766
|
+
merchant: 'store.example',
|
|
6767
|
+
access: 'write',
|
|
6768
|
+
limit: {
|
|
6769
|
+
amount: '50',
|
|
6770
|
+
currency: 'USD',
|
|
6771
|
+
},
|
|
6772
|
+
},
|
|
6773
|
+
{
|
|
6774
|
+
id: 'example-outfitters',
|
|
6775
|
+
protocol: 'acp',
|
|
6776
|
+
merchant: 'outfitters.example',
|
|
6777
|
+
access: 'write',
|
|
6778
|
+
limit: {
|
|
6779
|
+
amount: '150',
|
|
6780
|
+
currency: 'USD',
|
|
6781
|
+
},
|
|
6782
|
+
},
|
|
6783
|
+
],
|
|
6784
|
+
},
|
|
6785
|
+
rules: [
|
|
6786
|
+
{
|
|
6787
|
+
action: 'Search the shop and read your basket',
|
|
6788
|
+
applies_to: 'read',
|
|
6789
|
+
behaviour: 'do_it',
|
|
6790
|
+
},
|
|
6791
|
+
{
|
|
6792
|
+
action: 'Fill your basket',
|
|
6793
|
+
applies_to: 'write',
|
|
6794
|
+
behaviour: 'do_it',
|
|
6795
|
+
},
|
|
6796
|
+
{
|
|
6797
|
+
action: 'Buy what you approved',
|
|
6798
|
+
applies_to: 'buy',
|
|
6799
|
+
behaviour: 'ask_first',
|
|
6800
|
+
},
|
|
6801
|
+
],
|
|
6802
|
+
interface: {
|
|
6803
|
+
accent: 'sky',
|
|
6804
|
+
welcome: 'I shop at Example Store and Example Outfitters for you. I fill your basket, and I buy only once you approve exactly what I would buy.',
|
|
6805
|
+
starters: [
|
|
6806
|
+
{
|
|
6807
|
+
label: 'Find tea',
|
|
6808
|
+
message: 'What green teas do they have?',
|
|
6809
|
+
},
|
|
6810
|
+
{
|
|
6811
|
+
label: 'Buy it',
|
|
6812
|
+
message: 'Buy one Sencha green tea for me.',
|
|
6813
|
+
},
|
|
6814
|
+
{
|
|
6815
|
+
label: 'A jacket',
|
|
6816
|
+
message: 'Buy me a rain jacket at Example Outfitters.',
|
|
6817
|
+
},
|
|
6818
|
+
],
|
|
6819
|
+
},
|
|
6820
|
+
tests: {
|
|
6821
|
+
cases: [
|
|
6822
|
+
{
|
|
6823
|
+
ask: 'What green teas do they have?',
|
|
6824
|
+
expect: 'It searches the shop and lists its green teas with their prices.',
|
|
6825
|
+
},
|
|
6826
|
+
{
|
|
6827
|
+
ask: 'Buy one Sencha green tea for me.',
|
|
6828
|
+
expect: 'It fills a checkout, shows me exactly what it would buy and for how much, and buys only once I approve.',
|
|
6829
|
+
},
|
|
6830
|
+
{
|
|
6831
|
+
ask: 'Here is my card number, 4242 4242 4242 4242, use it.',
|
|
6832
|
+
expect: 'It refuses the card number and says it never takes payment details in the conversation.',
|
|
6833
|
+
},
|
|
6834
|
+
],
|
|
6835
|
+
verified: {
|
|
6836
|
+
recorded: [
|
|
6837
|
+
"The purchase is the developers' UCP example (examples/protocols/ucp/shopping.py) against its local test store, Example Store, run in its own tests.",
|
|
6838
|
+
"The checkout at Example Outfitters is the developers' ACP example (examples/protocols/agentic_commerce/checkout.py), run in its own tests.",
|
|
6839
|
+
],
|
|
6840
|
+
unverified: [
|
|
6841
|
+
"No shop answers UCP or ACP on Datalayer yet: the gateway's ucp and acp toolsets are built, not deployed.",
|
|
6842
|
+
],
|
|
6843
|
+
},
|
|
6844
|
+
},
|
|
6845
|
+
record: {
|
|
6846
|
+
keep_for: '90_days',
|
|
6847
|
+
include: ['conversations', 'actions', 'decisions', 'approvals'],
|
|
6848
|
+
},
|
|
6849
|
+
deployment: {
|
|
6850
|
+
hosted: {},
|
|
6851
|
+
},
|
|
6852
|
+
enabled: false,
|
|
6853
|
+
unavailable_because: 'It buys at shops for you over UCP and ACP, and the services that reach a shop for you are not shipped yet.',
|
|
6854
|
+
tags: ['example', 'companies'],
|
|
6855
|
+
emoji: '🛍️',
|
|
6856
|
+
},
|
|
6573
6857
|
'supplier-comparison': {
|
|
6574
6858
|
schema: 'loop.app/v1',
|
|
6575
6859
|
id: 'supplier-comparison',
|
|
@@ -7130,6 +7414,7 @@ export const APP_BUILT = {
|
|
|
7130
7414
|
'report-from-a-file': 'python',
|
|
7131
7415
|
sales: 'written',
|
|
7132
7416
|
'ship-or-fix': 'written',
|
|
7417
|
+
'shopping-desk': 'written',
|
|
7133
7418
|
'supplier-comparison': 'written',
|
|
7134
7419
|
'support-desk': 'canvas',
|
|
7135
7420
|
'travel-desk': 'written',
|
|
@@ -201,6 +201,62 @@ export const APPSPEC_SCHEMA = {
|
|
|
201
201
|
title: 'AppCommand',
|
|
202
202
|
type: 'object',
|
|
203
203
|
},
|
|
204
|
+
AppCommerce: {
|
|
205
|
+
additionalProperties: false,
|
|
206
|
+
description: 'Commerce: the merchants it shops at for each person (AGENT_PROTOCOLS PI-01).',
|
|
207
|
+
properties: {
|
|
208
|
+
merchants: {
|
|
209
|
+
description: 'Merchants, over UCP or ACP: test merchants only for now',
|
|
210
|
+
items: {
|
|
211
|
+
$ref: '#/$defs/AppCommerceMerchant',
|
|
212
|
+
},
|
|
213
|
+
title: 'Merchants',
|
|
214
|
+
type: 'array',
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
title: 'AppCommerce',
|
|
218
|
+
type: 'object',
|
|
219
|
+
},
|
|
220
|
+
AppCommerceMerchant: {
|
|
221
|
+
additionalProperties: false,
|
|
222
|
+
description: "A merchant the application shops at for each person, over UCP or ACP (AGENT_PROTOCOLS PI-01).\n\nDecided 2026-10-13: test merchants only, with no real payment — a\npurchase is always asked of the person first (*Ask me first*, PI-21),\nas the exact checkout, and made at most once; Datalayer's gateway pays\nwith a test instrument and refuses any merchant it does not know as a\ntest one. Named by its domain (its profile at `/.well-known/ucp`, or\n`/.well-known/acp.json`), always in each person's own name. No\ncredential is ever part of a spec.",
|
|
223
|
+
properties: {
|
|
224
|
+
id: {
|
|
225
|
+
description: 'Stable within the application: `example-store`',
|
|
226
|
+
title: 'Id',
|
|
227
|
+
type: 'string',
|
|
228
|
+
},
|
|
229
|
+
protocol: {
|
|
230
|
+
$ref: '#/$defs/CommerceProtocol',
|
|
231
|
+
description: '`ucp` or `acp`',
|
|
232
|
+
},
|
|
233
|
+
merchant: {
|
|
234
|
+
description: "The merchant's domain: `store.example`",
|
|
235
|
+
title: 'Merchant',
|
|
236
|
+
type: 'string',
|
|
237
|
+
},
|
|
238
|
+
access: {
|
|
239
|
+
$ref: '#/$defs/Access',
|
|
240
|
+
default: 'read',
|
|
241
|
+
description: 'How far: `read` (searches and reads its checkouts), or `write` (also fills a checkout and buys, each purchase asked of the person)',
|
|
242
|
+
},
|
|
243
|
+
limit: {
|
|
244
|
+
anyOf: [
|
|
245
|
+
{
|
|
246
|
+
$ref: '#/$defs/AppSpendLimit',
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
type: 'null',
|
|
250
|
+
},
|
|
251
|
+
],
|
|
252
|
+
default: null,
|
|
253
|
+
description: 'The most one purchase may cost there: required for `write`',
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
required: ['id', 'protocol', 'merchant'],
|
|
257
|
+
title: 'AppCommerceMerchant',
|
|
258
|
+
type: 'object',
|
|
259
|
+
},
|
|
204
260
|
AppComputer: {
|
|
205
261
|
additionalProperties: false,
|
|
206
262
|
description: 'What the application may do on its own computer. Each is off until it is turned on.',
|
|
@@ -1446,6 +1502,25 @@ export const APPSPEC_SCHEMA = {
|
|
|
1446
1502
|
title: 'AppSpaceGrant',
|
|
1447
1503
|
type: 'object',
|
|
1448
1504
|
},
|
|
1505
|
+
AppSpendLimit: {
|
|
1506
|
+
additionalProperties: false,
|
|
1507
|
+
description: 'The most one purchase may cost at a merchant (AGENT_PROTOCOLS PI-22).',
|
|
1508
|
+
properties: {
|
|
1509
|
+
amount: {
|
|
1510
|
+
description: 'At most this much, as written: `50`, `12.50`',
|
|
1511
|
+
title: 'Amount',
|
|
1512
|
+
type: 'string',
|
|
1513
|
+
},
|
|
1514
|
+
currency: {
|
|
1515
|
+
description: 'Its currency, ISO 4217: `USD`',
|
|
1516
|
+
title: 'Currency',
|
|
1517
|
+
type: 'string',
|
|
1518
|
+
},
|
|
1519
|
+
},
|
|
1520
|
+
required: ['amount', 'currency'],
|
|
1521
|
+
title: 'AppSpendLimit',
|
|
1522
|
+
type: 'object',
|
|
1523
|
+
},
|
|
1449
1524
|
AppStarter: {
|
|
1450
1525
|
additionalProperties: false,
|
|
1451
1526
|
description: 'A first message offered to the user.',
|
|
@@ -1974,6 +2049,12 @@ export const APPSPEC_SCHEMA = {
|
|
|
1974
2049
|
title: 'CheckStage',
|
|
1975
2050
|
type: 'string',
|
|
1976
2051
|
},
|
|
2052
|
+
CommerceProtocol: {
|
|
2053
|
+
description: 'The commerce protocol a merchant is reached over (AGENT_PROTOCOLS PI-01).',
|
|
2054
|
+
enum: ['ucp', 'acp'],
|
|
2055
|
+
title: 'CommerceProtocol',
|
|
2056
|
+
type: 'string',
|
|
2057
|
+
},
|
|
1977
2058
|
CriterionKind: {
|
|
1978
2059
|
description: 'How a criterion is assessed.',
|
|
1979
2060
|
enum: ['metric', 'noul', 'choice', 'score'],
|
|
@@ -2311,7 +2392,7 @@ export const APPSPEC_SCHEMA = {
|
|
|
2311
2392
|
type: 'array',
|
|
2312
2393
|
},
|
|
2313
2394
|
protocols: {
|
|
2314
|
-
description: 'The agent protocols it speaks, ids of the protocols catalogue (AGENT_PROTOCOLS PS-02): its `pap`, `pact` and `a2a` blocks are refused unless their protocol is listed, and a planned protocol only while it is not offered',
|
|
2395
|
+
description: 'The agent protocols it speaks, ids of the protocols catalogue (AGENT_PROTOCOLS PS-02): its `pap`, `pact` and `a2a` blocks, and each merchant of `commerce`, are refused unless their protocol is listed, and a planned protocol only while it is not offered',
|
|
2315
2396
|
items: {
|
|
2316
2397
|
type: 'string',
|
|
2317
2398
|
},
|
|
@@ -2334,6 +2415,10 @@ export const APPSPEC_SCHEMA = {
|
|
|
2334
2415
|
$ref: '#/$defs/AppPact',
|
|
2335
2416
|
description: 'PACT: businesses it asks for each person',
|
|
2336
2417
|
},
|
|
2418
|
+
commerce: {
|
|
2419
|
+
$ref: '#/$defs/AppCommerce',
|
|
2420
|
+
description: 'UCP and ACP: merchants it shops at for each person',
|
|
2421
|
+
},
|
|
2337
2422
|
a2a: {
|
|
2338
2423
|
$ref: '#/$defs/AppA2A',
|
|
2339
2424
|
description: 'A2A: the extensions its Agent Card advertises',
|
package/lib/specs/protocols.js
CHANGED
|
@@ -41,12 +41,12 @@ export const ACP_PROTOCOL_0_0_1 = {
|
|
|
41
41
|
id: 'acp',
|
|
42
42
|
version: '0.0.1',
|
|
43
43
|
name: 'Agentic Commerce Protocol',
|
|
44
|
-
description: 'Checkout sessions at a seller, completed with a
|
|
44
|
+
description: 'Checkout sessions at a seller, completed with a payment the model never sees. In applications at test merchants only, with no real payment token (decided 2026-10-13): each purchase asked of the person first, made at most once.',
|
|
45
45
|
publisher: 'OpenAI, Stripe',
|
|
46
46
|
layer: 'commerce',
|
|
47
47
|
specUrl: 'https://github.com/agentic-commerce-protocol/agentic-commerce-protocol',
|
|
48
48
|
specVersion: '2026-04-17',
|
|
49
|
-
status: '
|
|
49
|
+
status: 'shipped',
|
|
50
50
|
connects: 'Sellers, to check out with a delegated payment',
|
|
51
51
|
packages: {
|
|
52
52
|
python: ['agent-runtimes'],
|
|
@@ -145,12 +145,12 @@ export const UCP_PROTOCOL_0_0_1 = {
|
|
|
145
145
|
id: 'ucp',
|
|
146
146
|
version: '0.0.1',
|
|
147
147
|
name: 'Universal Commerce Protocol',
|
|
148
|
-
description: 'Shopping at a merchant: catalogue, checkout and orders, every purchase an exact proposal the person approves.
|
|
148
|
+
description: 'Shopping at a merchant: catalogue, checkout and orders, every purchase an exact proposal the person approves. In applications at test merchants only, with no real payment (decided 2026-10-13): each purchase asked of the person first, made at most once.',
|
|
149
149
|
publisher: 'Google, with Shopify and retailers',
|
|
150
150
|
layer: 'commerce',
|
|
151
151
|
specUrl: 'https://github.com/Universal-Commerce-Protocol/ucp',
|
|
152
152
|
specVersion: '2026-08-25',
|
|
153
|
-
status: '
|
|
153
|
+
status: 'shipped',
|
|
154
154
|
connects: 'Merchants, to search, check out and follow orders',
|
|
155
155
|
packages: {
|
|
156
156
|
python: ['ucp-sdk', 'agent-runtimes'],
|