@primitivedotdev/sdk 1.7.0 → 1.9.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.
- package/README.md +83 -0
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.js +3 -3
- package/dist/{api-ClLMDF81.js → api-CwpE8_17.js} +178 -1
- package/dist/contract/index.d.ts +2 -2
- package/dist/contract/index.js +1 -1
- package/dist/{errors-DyuAXctD.d.ts → errors-bXUNXAlf.d.ts} +1 -1
- package/dist/{index-iZWfb98V.d.ts → index-BDnY9HH-.d.ts} +30 -48
- package/dist/{index-BnbrY8kp.d.ts → index-DZ7eZB3M.d.ts} +680 -3
- package/dist/index.d.ts +5 -5
- package/dist/index.js +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{operations.generated-DQIrhCT5.js → operations.generated-03WHPOSm.js} +1508 -57
- package/dist/parser/index.d.ts +1 -1
- package/dist/{types-QT2ss9ho.d.ts → types-BjnIxPED.d.ts} +97 -2
- package/dist/webhook/index.d.ts +4 -4
- package/dist/webhook/index.js +2 -2
- package/dist/{webhook-CwjCyFv-.js → webhook-CiIPtegj.js} +155 -26
- package/dist/x402/index.d.ts +136 -1
- package/dist/x402/index.js +178 -2
- package/package.json +2 -2
|
@@ -84,6 +84,10 @@ const openapiDocument = {
|
|
|
84
84
|
{
|
|
85
85
|
"name": "Functions",
|
|
86
86
|
"description": "Deploy JavaScript handlers that run on inbound mail. Each function\nis a single ESM module whose default export is an object with an\nasync `fetch(request, env)` method, in the shape of a Workers-style\nhandler. Primitive signs each delivery and forwards the\n`Primitive-Signature` header to the handler; verify the raw request\nbody with `PRIMITIVE_WEBHOOK_SECRET` before trusting the parsed event.\nThe `event` field is `email.received` for normal inbound mail, or a\nmachine-mail type (`email.bounced`, `email.tls_report`,\n`email.dmarc_report`, `email.dmarc_failure`) for bounces and reports;\nthe payload shape is otherwise identical. Code runs on\nPrimitive's edge runtime; there is no infrastructure to manage.\nSecrets land in `env` as encrypted bindings and are refreshed on\nevery redeploy.\n"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "Registries",
|
|
90
|
+
"description": "The Agent Registry: ownable directories of agents, addressable by a\nregistry-scoped handle. A registry's publish policy (owner_only, request,\nor open) decides whether a publish lists immediately or pends owner\napproval. An agent is defined once with a globally unique,\nreachability-verified address, then published into any registry under a\nhandle. Discovery reads (list, resolve, get) are public for public\nregistries; managing a registry and moderating requests use the owner's\nAPI key.\n"
|
|
87
91
|
}
|
|
88
92
|
],
|
|
89
93
|
"paths": {
|
|
@@ -2379,6 +2383,40 @@ const openapiDocument = {
|
|
|
2379
2383
|
}
|
|
2380
2384
|
}
|
|
2381
2385
|
},
|
|
2386
|
+
"/x402/email-challenges": { "post": {
|
|
2387
|
+
"operationId": "createEmailChallenge",
|
|
2388
|
+
"summary": "Create an email-native payment challenge",
|
|
2389
|
+
"description": "Issue an x402 payment challenge over a real email thread (the payee\nside). Unlike `createChallenge` (which mints a synthetic challenge id),\nthis sends the challenge as an email from `from` to `to` and binds the\npayment to that DKIM-authenticated thread. The `pay_to` address and the\ntoken asset are resolved server-side from your registered default payout\naddress for the network, never from the request. The response carries\nthe thread's `interaction_id` plus the `challenge` (the\n`payment_requirements`, the `nonce_binding`, and `expires_at`) the payer\nneeds to sign; the payer replies with a signed `payment` interaction\nstep. Amounts are in token base units (USDC has 6 decimals, so `\"10000\"`\nis 0.01 USDC).\n",
|
|
2390
|
+
"tags": ["Payments"],
|
|
2391
|
+
"security": [{ "BearerAuth": [] }],
|
|
2392
|
+
"parameters": [{ "$ref": "#/components/parameters/IdempotencyKey" }],
|
|
2393
|
+
"requestBody": {
|
|
2394
|
+
"required": true,
|
|
2395
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateEmailChallengeInput" } } }
|
|
2396
|
+
},
|
|
2397
|
+
"responses": {
|
|
2398
|
+
"200": {
|
|
2399
|
+
"description": "Idempotent replay: a request with a previously-used idempotency key\nreturns the original issued challenge without sending a second email.\n",
|
|
2400
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
|
|
2401
|
+
"type": "object",
|
|
2402
|
+
"properties": { "data": { "$ref": "#/components/schemas/X402EmailChallenge" } }
|
|
2403
|
+
}] } } }
|
|
2404
|
+
},
|
|
2405
|
+
"201": {
|
|
2406
|
+
"description": "Email challenge issued",
|
|
2407
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
|
|
2408
|
+
"type": "object",
|
|
2409
|
+
"properties": { "data": { "$ref": "#/components/schemas/X402EmailChallenge" } }
|
|
2410
|
+
}] } } }
|
|
2411
|
+
},
|
|
2412
|
+
"400": { "$ref": "#/components/responses/ValidationError" },
|
|
2413
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2414
|
+
"403": { "$ref": "#/components/responses/Forbidden" },
|
|
2415
|
+
"409": { "$ref": "#/components/responses/Conflict" },
|
|
2416
|
+
"422": { "$ref": "#/components/responses/UnprocessableEntity" },
|
|
2417
|
+
"429": { "$ref": "#/components/responses/RateLimited" }
|
|
2418
|
+
}
|
|
2419
|
+
} },
|
|
2382
2420
|
"/x402/challenges": { "post": {
|
|
2383
2421
|
"operationId": "createChallenge",
|
|
2384
2422
|
"summary": "Create a payment challenge",
|
|
@@ -2521,7 +2559,316 @@ const openapiDocument = {
|
|
|
2521
2559
|
"403": { "$ref": "#/components/responses/Forbidden" },
|
|
2522
2560
|
"429": { "$ref": "#/components/responses/RateLimited" }
|
|
2523
2561
|
}
|
|
2524
|
-
} }
|
|
2562
|
+
} },
|
|
2563
|
+
"/registries": {
|
|
2564
|
+
"get": {
|
|
2565
|
+
"operationId": "listRegistries",
|
|
2566
|
+
"summary": "List the registries you own",
|
|
2567
|
+
"tags": ["Registries"],
|
|
2568
|
+
"responses": {
|
|
2569
|
+
"200": {
|
|
2570
|
+
"description": "Registries owned by the caller",
|
|
2571
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2572
|
+
"type": "array",
|
|
2573
|
+
"items": { "$ref": "#/components/schemas/Registry" }
|
|
2574
|
+
} } }] } } }
|
|
2575
|
+
},
|
|
2576
|
+
"401": { "$ref": "#/components/responses/Unauthorized" }
|
|
2577
|
+
}
|
|
2578
|
+
},
|
|
2579
|
+
"post": {
|
|
2580
|
+
"operationId": "createRegistry",
|
|
2581
|
+
"summary": "Create a registry",
|
|
2582
|
+
"tags": ["Registries"],
|
|
2583
|
+
"requestBody": {
|
|
2584
|
+
"required": true,
|
|
2585
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRegistryInput" } } }
|
|
2586
|
+
},
|
|
2587
|
+
"responses": {
|
|
2588
|
+
"201": {
|
|
2589
|
+
"description": "Registry created",
|
|
2590
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2591
|
+
"type": "object",
|
|
2592
|
+
"properties": {
|
|
2593
|
+
"id": {
|
|
2594
|
+
"type": "string",
|
|
2595
|
+
"format": "uuid"
|
|
2596
|
+
},
|
|
2597
|
+
"slug": { "type": "string" }
|
|
2598
|
+
},
|
|
2599
|
+
"required": ["id", "slug"]
|
|
2600
|
+
} } }] } } }
|
|
2601
|
+
},
|
|
2602
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2603
|
+
"403": { "$ref": "#/components/responses/Forbidden" },
|
|
2604
|
+
"409": { "$ref": "#/components/responses/Conflict" },
|
|
2605
|
+
"422": { "$ref": "#/components/responses/ValidationError" }
|
|
2606
|
+
}
|
|
2607
|
+
}
|
|
2608
|
+
},
|
|
2609
|
+
"/registries/{slug}": {
|
|
2610
|
+
"parameters": [{
|
|
2611
|
+
"name": "slug",
|
|
2612
|
+
"in": "path",
|
|
2613
|
+
"required": true,
|
|
2614
|
+
"schema": { "type": "string" },
|
|
2615
|
+
"description": "The registry slug"
|
|
2616
|
+
}],
|
|
2617
|
+
"get": {
|
|
2618
|
+
"operationId": "getRegistry",
|
|
2619
|
+
"summary": "Get a public registry's metadata",
|
|
2620
|
+
"tags": ["Registries"],
|
|
2621
|
+
"security": [],
|
|
2622
|
+
"responses": {
|
|
2623
|
+
"200": {
|
|
2624
|
+
"description": "Registry metadata",
|
|
2625
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": { "$ref": "#/components/schemas/Registry" } } }] } } }
|
|
2626
|
+
},
|
|
2627
|
+
"404": { "$ref": "#/components/responses/NotFound" }
|
|
2628
|
+
}
|
|
2629
|
+
},
|
|
2630
|
+
"patch": {
|
|
2631
|
+
"operationId": "updateRegistry",
|
|
2632
|
+
"summary": "Update a registry you own",
|
|
2633
|
+
"tags": ["Registries"],
|
|
2634
|
+
"requestBody": {
|
|
2635
|
+
"required": true,
|
|
2636
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRegistryInput" } } }
|
|
2637
|
+
},
|
|
2638
|
+
"responses": {
|
|
2639
|
+
"200": {
|
|
2640
|
+
"description": "Registry updated",
|
|
2641
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2642
|
+
"type": "object",
|
|
2643
|
+
"properties": { "id": {
|
|
2644
|
+
"type": "string",
|
|
2645
|
+
"format": "uuid"
|
|
2646
|
+
} },
|
|
2647
|
+
"required": ["id"]
|
|
2648
|
+
} } }] } } }
|
|
2649
|
+
},
|
|
2650
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2651
|
+
"403": { "$ref": "#/components/responses/Forbidden" },
|
|
2652
|
+
"404": { "$ref": "#/components/responses/NotFound" },
|
|
2653
|
+
"422": { "$ref": "#/components/responses/ValidationError" }
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
},
|
|
2657
|
+
"/registries/{slug}/agents": {
|
|
2658
|
+
"parameters": [{
|
|
2659
|
+
"name": "slug",
|
|
2660
|
+
"in": "path",
|
|
2661
|
+
"required": true,
|
|
2662
|
+
"schema": { "type": "string" }
|
|
2663
|
+
}],
|
|
2664
|
+
"get": {
|
|
2665
|
+
"operationId": "listRegistryAgents",
|
|
2666
|
+
"summary": "List agents in a registry",
|
|
2667
|
+
"tags": ["Registries"],
|
|
2668
|
+
"security": [],
|
|
2669
|
+
"parameters": [{
|
|
2670
|
+
"name": "limit",
|
|
2671
|
+
"in": "query",
|
|
2672
|
+
"required": false,
|
|
2673
|
+
"schema": {
|
|
2674
|
+
"type": "integer",
|
|
2675
|
+
"minimum": 1,
|
|
2676
|
+
"maximum": 200
|
|
2677
|
+
}
|
|
2678
|
+
}, {
|
|
2679
|
+
"name": "cursor",
|
|
2680
|
+
"in": "query",
|
|
2681
|
+
"required": false,
|
|
2682
|
+
"schema": { "type": "string" },
|
|
2683
|
+
"description": "The address of the last agent from the previous page."
|
|
2684
|
+
}],
|
|
2685
|
+
"responses": { "200": {
|
|
2686
|
+
"description": "Approved, reachable agents. Empty for an unknown or private registry.",
|
|
2687
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/ListEnvelope" }, { "properties": { "data": {
|
|
2688
|
+
"type": "array",
|
|
2689
|
+
"items": { "$ref": "#/components/schemas/RegistryAgent" }
|
|
2690
|
+
} } }] } } }
|
|
2691
|
+
} }
|
|
2692
|
+
},
|
|
2693
|
+
"post": {
|
|
2694
|
+
"operationId": "publishAgent",
|
|
2695
|
+
"summary": "Publish an agent into a registry",
|
|
2696
|
+
"tags": ["Registries"],
|
|
2697
|
+
"requestBody": {
|
|
2698
|
+
"required": true,
|
|
2699
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublishAgentInput" } } }
|
|
2700
|
+
},
|
|
2701
|
+
"responses": {
|
|
2702
|
+
"200": {
|
|
2703
|
+
"description": "Idempotent replay of an existing publication",
|
|
2704
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": { "$ref": "#/components/schemas/PublishAgentResult" } } }] } } }
|
|
2705
|
+
},
|
|
2706
|
+
"201": {
|
|
2707
|
+
"description": "Published (approved) or request created (requested)",
|
|
2708
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": { "$ref": "#/components/schemas/PublishAgentResult" } } }] } } }
|
|
2709
|
+
},
|
|
2710
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2711
|
+
"403": { "$ref": "#/components/responses/Forbidden" },
|
|
2712
|
+
"404": { "$ref": "#/components/responses/NotFound" },
|
|
2713
|
+
"409": { "$ref": "#/components/responses/Conflict" },
|
|
2714
|
+
"422": { "$ref": "#/components/responses/ValidationError" }
|
|
2715
|
+
}
|
|
2716
|
+
}
|
|
2717
|
+
},
|
|
2718
|
+
"/registries/{slug}/agents/{handle}": {
|
|
2719
|
+
"parameters": [{
|
|
2720
|
+
"name": "slug",
|
|
2721
|
+
"in": "path",
|
|
2722
|
+
"required": true,
|
|
2723
|
+
"schema": { "type": "string" }
|
|
2724
|
+
}, {
|
|
2725
|
+
"name": "handle",
|
|
2726
|
+
"in": "path",
|
|
2727
|
+
"required": true,
|
|
2728
|
+
"schema": { "type": "string" }
|
|
2729
|
+
}],
|
|
2730
|
+
"get": {
|
|
2731
|
+
"operationId": "resolveRegistryHandle",
|
|
2732
|
+
"summary": "Resolve a registry handle to its agent",
|
|
2733
|
+
"tags": ["Registries"],
|
|
2734
|
+
"security": [],
|
|
2735
|
+
"responses": {
|
|
2736
|
+
"200": {
|
|
2737
|
+
"description": "The agent listing under the handle",
|
|
2738
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": { "$ref": "#/components/schemas/RegistryAgent" } } }] } } }
|
|
2739
|
+
},
|
|
2740
|
+
"404": { "$ref": "#/components/responses/NotFound" }
|
|
2741
|
+
}
|
|
2742
|
+
},
|
|
2743
|
+
"delete": {
|
|
2744
|
+
"operationId": "unpublishAgent",
|
|
2745
|
+
"summary": "Unpublish an agent from a registry",
|
|
2746
|
+
"tags": ["Registries"],
|
|
2747
|
+
"responses": {
|
|
2748
|
+
"200": { "$ref": "#/components/responses/Deleted" },
|
|
2749
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2750
|
+
"404": { "$ref": "#/components/responses/NotFound" }
|
|
2751
|
+
}
|
|
2752
|
+
}
|
|
2753
|
+
},
|
|
2754
|
+
"/registries/{slug}/requests": {
|
|
2755
|
+
"parameters": [{
|
|
2756
|
+
"name": "slug",
|
|
2757
|
+
"in": "path",
|
|
2758
|
+
"required": true,
|
|
2759
|
+
"schema": { "type": "string" }
|
|
2760
|
+
}],
|
|
2761
|
+
"get": {
|
|
2762
|
+
"operationId": "listRegistryRequests",
|
|
2763
|
+
"summary": "List pending publication requests",
|
|
2764
|
+
"tags": ["Registries"],
|
|
2765
|
+
"parameters": [{
|
|
2766
|
+
"name": "limit",
|
|
2767
|
+
"in": "query",
|
|
2768
|
+
"required": false,
|
|
2769
|
+
"schema": {
|
|
2770
|
+
"type": "integer",
|
|
2771
|
+
"minimum": 1,
|
|
2772
|
+
"maximum": 200
|
|
2773
|
+
}
|
|
2774
|
+
}],
|
|
2775
|
+
"responses": {
|
|
2776
|
+
"200": {
|
|
2777
|
+
"description": "Pending requests for a registry you own",
|
|
2778
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2779
|
+
"type": "array",
|
|
2780
|
+
"items": { "$ref": "#/components/schemas/RegistryRequest" }
|
|
2781
|
+
} } }] } } }
|
|
2782
|
+
},
|
|
2783
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2784
|
+
"404": { "$ref": "#/components/responses/NotFound" }
|
|
2785
|
+
}
|
|
2786
|
+
}
|
|
2787
|
+
},
|
|
2788
|
+
"/registries/{slug}/requests/{id}": {
|
|
2789
|
+
"parameters": [{
|
|
2790
|
+
"name": "slug",
|
|
2791
|
+
"in": "path",
|
|
2792
|
+
"required": true,
|
|
2793
|
+
"schema": { "type": "string" }
|
|
2794
|
+
}, { "$ref": "#/components/parameters/ResourceId" }],
|
|
2795
|
+
"post": {
|
|
2796
|
+
"operationId": "decideRegistryRequest",
|
|
2797
|
+
"summary": "Approve or reject a publication request",
|
|
2798
|
+
"tags": ["Registries"],
|
|
2799
|
+
"requestBody": {
|
|
2800
|
+
"required": true,
|
|
2801
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/DecideRegistryRequestInput" } } }
|
|
2802
|
+
},
|
|
2803
|
+
"responses": {
|
|
2804
|
+
"200": {
|
|
2805
|
+
"description": "Decision applied",
|
|
2806
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2807
|
+
"type": "object",
|
|
2808
|
+
"properties": { "status": {
|
|
2809
|
+
"type": "string",
|
|
2810
|
+
"enum": ["approved", "rejected"]
|
|
2811
|
+
} },
|
|
2812
|
+
"required": ["status"]
|
|
2813
|
+
} } }] } } }
|
|
2814
|
+
},
|
|
2815
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2816
|
+
"404": { "$ref": "#/components/responses/NotFound" },
|
|
2817
|
+
"409": { "$ref": "#/components/responses/Conflict" },
|
|
2818
|
+
"422": { "$ref": "#/components/responses/ValidationError" }
|
|
2819
|
+
}
|
|
2820
|
+
}
|
|
2821
|
+
},
|
|
2822
|
+
"/agents": { "post": {
|
|
2823
|
+
"operationId": "defineAgent",
|
|
2824
|
+
"summary": "Define an agent identity",
|
|
2825
|
+
"tags": ["Registries"],
|
|
2826
|
+
"requestBody": {
|
|
2827
|
+
"required": true,
|
|
2828
|
+
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefineAgentInput" } } }
|
|
2829
|
+
},
|
|
2830
|
+
"responses": {
|
|
2831
|
+
"201": {
|
|
2832
|
+
"description": "Agent defined",
|
|
2833
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": {
|
|
2834
|
+
"type": "object",
|
|
2835
|
+
"properties": {
|
|
2836
|
+
"id": {
|
|
2837
|
+
"type": "string",
|
|
2838
|
+
"format": "uuid"
|
|
2839
|
+
},
|
|
2840
|
+
"address": { "type": "string" }
|
|
2841
|
+
},
|
|
2842
|
+
"required": ["id", "address"]
|
|
2843
|
+
} } }] } } }
|
|
2844
|
+
},
|
|
2845
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
2846
|
+
"409": { "$ref": "#/components/responses/Conflict" },
|
|
2847
|
+
"422": { "$ref": "#/components/responses/ValidationError" }
|
|
2848
|
+
}
|
|
2849
|
+
} },
|
|
2850
|
+
"/agents/{address}": {
|
|
2851
|
+
"parameters": [{
|
|
2852
|
+
"name": "address",
|
|
2853
|
+
"in": "path",
|
|
2854
|
+
"required": true,
|
|
2855
|
+
"schema": { "type": "string" },
|
|
2856
|
+
"description": "The agent's email address (URL-encoded)."
|
|
2857
|
+
}],
|
|
2858
|
+
"get": {
|
|
2859
|
+
"operationId": "getAgent",
|
|
2860
|
+
"summary": "Get an agent's public profile by address",
|
|
2861
|
+
"tags": ["Registries"],
|
|
2862
|
+
"security": [],
|
|
2863
|
+
"responses": {
|
|
2864
|
+
"200": {
|
|
2865
|
+
"description": "The agent's public profile",
|
|
2866
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, { "properties": { "data": { "$ref": "#/components/schemas/RegistryAgent" } } }] } } }
|
|
2867
|
+
},
|
|
2868
|
+
"404": { "$ref": "#/components/responses/NotFound" }
|
|
2869
|
+
}
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2525
2872
|
},
|
|
2526
2873
|
"components": {
|
|
2527
2874
|
"securitySchemes": {
|
|
@@ -2548,6 +2895,16 @@ const openapiDocument = {
|
|
|
2548
2895
|
},
|
|
2549
2896
|
"description": "Resource UUID"
|
|
2550
2897
|
},
|
|
2898
|
+
"IdempotencyKey": {
|
|
2899
|
+
"name": "idempotency-key",
|
|
2900
|
+
"in": "header",
|
|
2901
|
+
"required": false,
|
|
2902
|
+
"schema": {
|
|
2903
|
+
"type": "string",
|
|
2904
|
+
"maxLength": 255
|
|
2905
|
+
},
|
|
2906
|
+
"description": "Optional idempotency key. Retrying a request with the same key returns\nthe original result instead of repeating the side effect (for\n`createEmailChallenge`, re-sending the email).\n"
|
|
2907
|
+
},
|
|
2551
2908
|
"Cursor": {
|
|
2552
2909
|
"name": "cursor",
|
|
2553
2910
|
"in": "query",
|
|
@@ -2730,40 +3087,238 @@ const openapiDocument = {
|
|
|
2730
3087
|
}
|
|
2731
3088
|
},
|
|
2732
3089
|
"schemas": {
|
|
2733
|
-
"
|
|
3090
|
+
"PublishPolicy": {
|
|
3091
|
+
"type": "string",
|
|
3092
|
+
"enum": [
|
|
3093
|
+
"owner_only",
|
|
3094
|
+
"request",
|
|
3095
|
+
"open"
|
|
3096
|
+
],
|
|
3097
|
+
"description": "Who may publish into a registry. owner_only: only the registry owner.\nrequest: anyone may request and the owner approves. open: anyone may\npublish and it lists immediately (no approval step).\n"
|
|
3098
|
+
},
|
|
3099
|
+
"Registry": {
|
|
2734
3100
|
"type": "object",
|
|
2735
|
-
"additionalProperties": false,
|
|
2736
3101
|
"properties": {
|
|
2737
|
-
"
|
|
2738
|
-
"type": "string",
|
|
2739
|
-
"pattern": "^0x[0-9a-fA-F]{40}$",
|
|
2740
|
-
"description": "The payout address (your signer's own EVM address), 0x-prefixed."
|
|
2741
|
-
},
|
|
2742
|
-
"network": {
|
|
2743
|
-
"type": "string",
|
|
2744
|
-
"enum": ["base", "base-sepolia"],
|
|
2745
|
-
"description": "The chain the address receives on."
|
|
2746
|
-
},
|
|
2747
|
-
"signature": {
|
|
2748
|
-
"type": "string",
|
|
2749
|
-
"pattern": "^0x[0-9a-fA-F]+$",
|
|
2750
|
-
"description": "A `personal_sign` signature over the org-bound message produced by\nthe SDK helper `buildPayoutRegistrationMessage`. Recovered and\nchecked against `address`; the org id is bound into the signed bytes.\n"
|
|
2751
|
-
},
|
|
2752
|
-
"issued_at": {
|
|
3102
|
+
"id": {
|
|
2753
3103
|
"type": "string",
|
|
2754
|
-
"format": "
|
|
2755
|
-
"description": "ISO-8601 timestamp embedded in the signed message. Must be within a\nshort freshness window (about 10 minutes) of server time.\n"
|
|
3104
|
+
"format": "uuid"
|
|
2756
3105
|
},
|
|
2757
|
-
"
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
}
|
|
3106
|
+
"slug": { "type": "string" },
|
|
3107
|
+
"name": { "type": "string" },
|
|
3108
|
+
"description": { "type": ["string", "null"] },
|
|
3109
|
+
"is_public": { "type": "boolean" },
|
|
3110
|
+
"publish_policy": { "$ref": "#/components/schemas/PublishPolicy" }
|
|
2762
3111
|
},
|
|
2763
3112
|
"required": [
|
|
2764
|
-
"
|
|
2765
|
-
"
|
|
2766
|
-
"
|
|
3113
|
+
"id",
|
|
3114
|
+
"slug",
|
|
3115
|
+
"name",
|
|
3116
|
+
"description",
|
|
3117
|
+
"is_public",
|
|
3118
|
+
"publish_policy"
|
|
3119
|
+
]
|
|
3120
|
+
},
|
|
3121
|
+
"RegistryAgent": {
|
|
3122
|
+
"type": "object",
|
|
3123
|
+
"description": "An agent's public directory profile.",
|
|
3124
|
+
"properties": {
|
|
3125
|
+
"address": { "type": "string" },
|
|
3126
|
+
"display_name": { "type": "string" },
|
|
3127
|
+
"title": { "type": ["string", "null"] },
|
|
3128
|
+
"description": { "type": ["string", "null"] },
|
|
3129
|
+
"tags": {
|
|
3130
|
+
"type": "array",
|
|
3131
|
+
"items": { "type": "string" }
|
|
3132
|
+
},
|
|
3133
|
+
"handle": {
|
|
3134
|
+
"type": ["string", "null"],
|
|
3135
|
+
"description": "The registry-scoped name. Null on the global by-address read."
|
|
3136
|
+
}
|
|
3137
|
+
},
|
|
3138
|
+
"required": [
|
|
3139
|
+
"address",
|
|
3140
|
+
"display_name",
|
|
3141
|
+
"title",
|
|
3142
|
+
"description",
|
|
3143
|
+
"tags",
|
|
3144
|
+
"handle"
|
|
3145
|
+
]
|
|
3146
|
+
},
|
|
3147
|
+
"RegistryRequest": {
|
|
3148
|
+
"type": "object",
|
|
3149
|
+
"description": "A pending publication request, as the registry owner sees it.",
|
|
3150
|
+
"properties": {
|
|
3151
|
+
"id": {
|
|
3152
|
+
"type": "string",
|
|
3153
|
+
"format": "uuid"
|
|
3154
|
+
},
|
|
3155
|
+
"address": { "type": "string" },
|
|
3156
|
+
"display_name": { "type": "string" },
|
|
3157
|
+
"handle": { "type": ["string", "null"] },
|
|
3158
|
+
"requested_at": {
|
|
3159
|
+
"type": "string",
|
|
3160
|
+
"format": "date-time"
|
|
3161
|
+
}
|
|
3162
|
+
},
|
|
3163
|
+
"required": [
|
|
3164
|
+
"id",
|
|
3165
|
+
"address",
|
|
3166
|
+
"display_name",
|
|
3167
|
+
"handle",
|
|
3168
|
+
"requested_at"
|
|
3169
|
+
]
|
|
3170
|
+
},
|
|
3171
|
+
"CreateRegistryInput": {
|
|
3172
|
+
"type": "object",
|
|
3173
|
+
"properties": {
|
|
3174
|
+
"slug": {
|
|
3175
|
+
"type": "string",
|
|
3176
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
|
|
3177
|
+
"description": "Lowercase slug, unique across registries."
|
|
3178
|
+
},
|
|
3179
|
+
"name": {
|
|
3180
|
+
"type": "string",
|
|
3181
|
+
"minLength": 1,
|
|
3182
|
+
"maxLength": 120
|
|
3183
|
+
},
|
|
3184
|
+
"description": {
|
|
3185
|
+
"type": ["string", "null"],
|
|
3186
|
+
"maxLength": 2e3
|
|
3187
|
+
},
|
|
3188
|
+
"is_public": { "type": "boolean" },
|
|
3189
|
+
"publish_policy": { "$ref": "#/components/schemas/PublishPolicy" }
|
|
3190
|
+
},
|
|
3191
|
+
"required": ["slug", "name"]
|
|
3192
|
+
},
|
|
3193
|
+
"UpdateRegistryInput": {
|
|
3194
|
+
"type": "object",
|
|
3195
|
+
"minProperties": 1,
|
|
3196
|
+
"properties": {
|
|
3197
|
+
"name": {
|
|
3198
|
+
"type": "string",
|
|
3199
|
+
"minLength": 1,
|
|
3200
|
+
"maxLength": 120
|
|
3201
|
+
},
|
|
3202
|
+
"description": {
|
|
3203
|
+
"type": ["string", "null"],
|
|
3204
|
+
"maxLength": 2e3
|
|
3205
|
+
},
|
|
3206
|
+
"is_public": { "type": "boolean" },
|
|
3207
|
+
"publish_policy": { "$ref": "#/components/schemas/PublishPolicy" }
|
|
3208
|
+
}
|
|
3209
|
+
},
|
|
3210
|
+
"DefineAgentInput": {
|
|
3211
|
+
"type": "object",
|
|
3212
|
+
"properties": {
|
|
3213
|
+
"address": {
|
|
3214
|
+
"type": "string",
|
|
3215
|
+
"description": "The agent's globally unique email address; must route to the endpoint."
|
|
3216
|
+
},
|
|
3217
|
+
"endpoint_id": {
|
|
3218
|
+
"type": "string",
|
|
3219
|
+
"format": "uuid"
|
|
3220
|
+
},
|
|
3221
|
+
"display_name": {
|
|
3222
|
+
"type": "string",
|
|
3223
|
+
"minLength": 1,
|
|
3224
|
+
"maxLength": 120
|
|
3225
|
+
},
|
|
3226
|
+
"title": {
|
|
3227
|
+
"type": ["string", "null"],
|
|
3228
|
+
"maxLength": 120
|
|
3229
|
+
},
|
|
3230
|
+
"description": {
|
|
3231
|
+
"type": ["string", "null"],
|
|
3232
|
+
"maxLength": 2e3
|
|
3233
|
+
},
|
|
3234
|
+
"tags": {
|
|
3235
|
+
"type": "array",
|
|
3236
|
+
"items": {
|
|
3237
|
+
"type": "string",
|
|
3238
|
+
"maxLength": 40
|
|
3239
|
+
},
|
|
3240
|
+
"maxItems": 20
|
|
3241
|
+
}
|
|
3242
|
+
},
|
|
3243
|
+
"required": [
|
|
3244
|
+
"address",
|
|
3245
|
+
"endpoint_id",
|
|
3246
|
+
"display_name"
|
|
3247
|
+
]
|
|
3248
|
+
},
|
|
3249
|
+
"PublishAgentInput": {
|
|
3250
|
+
"type": "object",
|
|
3251
|
+
"properties": {
|
|
3252
|
+
"address": { "type": "string" },
|
|
3253
|
+
"handle": {
|
|
3254
|
+
"type": "string",
|
|
3255
|
+
"description": "The registry-scoped name to list the agent under."
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3258
|
+
"required": ["address", "handle"]
|
|
3259
|
+
},
|
|
3260
|
+
"PublishAgentResult": {
|
|
3261
|
+
"type": "object",
|
|
3262
|
+
"properties": {
|
|
3263
|
+
"status": {
|
|
3264
|
+
"type": "string",
|
|
3265
|
+
"enum": ["approved", "requested"],
|
|
3266
|
+
"description": "approved lists immediately; requested pends owner approval."
|
|
3267
|
+
},
|
|
3268
|
+
"handle": { "type": "string" },
|
|
3269
|
+
"idempotent_replay": {
|
|
3270
|
+
"type": "boolean",
|
|
3271
|
+
"description": "True when the publish matched an existing identical publication."
|
|
3272
|
+
}
|
|
3273
|
+
},
|
|
3274
|
+
"required": [
|
|
3275
|
+
"status",
|
|
3276
|
+
"handle",
|
|
3277
|
+
"idempotent_replay"
|
|
3278
|
+
]
|
|
3279
|
+
},
|
|
3280
|
+
"DecideRegistryRequestInput": {
|
|
3281
|
+
"type": "object",
|
|
3282
|
+
"properties": { "decision": {
|
|
3283
|
+
"type": "string",
|
|
3284
|
+
"enum": ["approved", "rejected"]
|
|
3285
|
+
} },
|
|
3286
|
+
"required": ["decision"]
|
|
3287
|
+
},
|
|
3288
|
+
"RegisterPayoutAddressInput": {
|
|
3289
|
+
"type": "object",
|
|
3290
|
+
"additionalProperties": false,
|
|
3291
|
+
"properties": {
|
|
3292
|
+
"address": {
|
|
3293
|
+
"type": "string",
|
|
3294
|
+
"pattern": "^0x[0-9a-fA-F]{40}$",
|
|
3295
|
+
"description": "The payout address (your signer's own EVM address), 0x-prefixed."
|
|
3296
|
+
},
|
|
3297
|
+
"network": {
|
|
3298
|
+
"type": "string",
|
|
3299
|
+
"enum": ["base", "base-sepolia"],
|
|
3300
|
+
"description": "The chain the address receives on."
|
|
3301
|
+
},
|
|
3302
|
+
"signature": {
|
|
3303
|
+
"type": "string",
|
|
3304
|
+
"pattern": "^0x[0-9a-fA-F]+$",
|
|
3305
|
+
"description": "A `personal_sign` signature over the org-bound message produced by\nthe SDK helper `buildPayoutRegistrationMessage`. Recovered and\nchecked against `address`; the org id is bound into the signed bytes.\n"
|
|
3306
|
+
},
|
|
3307
|
+
"issued_at": {
|
|
3308
|
+
"type": "string",
|
|
3309
|
+
"format": "date-time",
|
|
3310
|
+
"description": "ISO-8601 timestamp embedded in the signed message. Must be within a\nshort freshness window (about 10 minutes) of server time.\n"
|
|
3311
|
+
},
|
|
3312
|
+
"label": {
|
|
3313
|
+
"type": "string",
|
|
3314
|
+
"maxLength": 80,
|
|
3315
|
+
"description": "Optional human-readable label."
|
|
3316
|
+
}
|
|
3317
|
+
},
|
|
3318
|
+
"required": [
|
|
3319
|
+
"address",
|
|
3320
|
+
"network",
|
|
3321
|
+
"signature",
|
|
2767
3322
|
"issued_at"
|
|
2768
3323
|
]
|
|
2769
3324
|
},
|
|
@@ -2988,6 +3543,94 @@ const openapiDocument = {
|
|
|
2988
3543
|
"expires_at"
|
|
2989
3544
|
]
|
|
2990
3545
|
},
|
|
3546
|
+
"CreateEmailChallengeInput": {
|
|
3547
|
+
"type": "object",
|
|
3548
|
+
"additionalProperties": false,
|
|
3549
|
+
"description": "Issue a payment challenge over an email thread. `from` is your sending\naddress (the funds receiver; ownership is enforced at send, exactly as\nfor outbound mail) and `to` is the payer's address. The `pay_to` payout\nwallet and the token asset are resolved server-side, never taken from\nthe request.\n",
|
|
3550
|
+
"properties": {
|
|
3551
|
+
"from": {
|
|
3552
|
+
"type": "string",
|
|
3553
|
+
"format": "email",
|
|
3554
|
+
"description": "Your sending address (the payee / funds receiver). Must be an\naddress your org is allowed to send from.\n"
|
|
3555
|
+
},
|
|
3556
|
+
"to": {
|
|
3557
|
+
"type": "string",
|
|
3558
|
+
"format": "email",
|
|
3559
|
+
"description": "The payer's email address the challenge is sent to."
|
|
3560
|
+
},
|
|
3561
|
+
"amount": {
|
|
3562
|
+
"type": "string",
|
|
3563
|
+
"pattern": "^[1-9][0-9]{0,38}$",
|
|
3564
|
+
"description": "Amount to collect, in token base units. USDC has 6 decimals, so\n`\"10000\"` is 0.01 USDC.\n"
|
|
3565
|
+
},
|
|
3566
|
+
"network": {
|
|
3567
|
+
"type": "string",
|
|
3568
|
+
"enum": ["base", "base-sepolia"]
|
|
3569
|
+
},
|
|
3570
|
+
"expires_in": {
|
|
3571
|
+
"type": "integer",
|
|
3572
|
+
"minimum": 60,
|
|
3573
|
+
"maximum": 86400,
|
|
3574
|
+
"description": "Seconds until the challenge expires. Defaults to 3600."
|
|
3575
|
+
},
|
|
3576
|
+
"resource": {
|
|
3577
|
+
"type": "string",
|
|
3578
|
+
"format": "uri",
|
|
3579
|
+
"maxLength": 2048,
|
|
3580
|
+
"description": "Optional URL identifying what is being paid for."
|
|
3581
|
+
},
|
|
3582
|
+
"description": {
|
|
3583
|
+
"type": "string",
|
|
3584
|
+
"maxLength": 512,
|
|
3585
|
+
"description": "Optional human-readable description of the payment."
|
|
3586
|
+
}
|
|
3587
|
+
},
|
|
3588
|
+
"required": [
|
|
3589
|
+
"from",
|
|
3590
|
+
"to",
|
|
3591
|
+
"amount",
|
|
3592
|
+
"network"
|
|
3593
|
+
]
|
|
3594
|
+
},
|
|
3595
|
+
"X402EmailChallengeDetails": {
|
|
3596
|
+
"type": "object",
|
|
3597
|
+
"description": "The challenge the payer needs to sign and pay, carried inside an\nemail-native challenge response.\n",
|
|
3598
|
+
"properties": {
|
|
3599
|
+
"payment_requirements": { "$ref": "#/components/schemas/X402PaymentRequirements" },
|
|
3600
|
+
"nonce_binding": { "$ref": "#/components/schemas/X402NonceBinding" },
|
|
3601
|
+
"expires_at": {
|
|
3602
|
+
"type": "string",
|
|
3603
|
+
"format": "date-time",
|
|
3604
|
+
"description": "ISO-8601 expiry of the challenge."
|
|
3605
|
+
}
|
|
3606
|
+
},
|
|
3607
|
+
"required": [
|
|
3608
|
+
"payment_requirements",
|
|
3609
|
+
"nonce_binding",
|
|
3610
|
+
"expires_at"
|
|
3611
|
+
]
|
|
3612
|
+
},
|
|
3613
|
+
"X402EmailChallenge": {
|
|
3614
|
+
"type": "object",
|
|
3615
|
+
"description": "The result of issuing an email-native payment challenge. `interaction_id`\nis the real email thread id (`uuid@domain`) the payment is bound to;\n`challenge_id` is the underlying challenge record. Hand the `challenge`\nto the payer, who replies with a signed `payment` interaction step (the\nSDK `payEmailChallenge` helper builds it).\n",
|
|
3616
|
+
"properties": {
|
|
3617
|
+
"interaction_id": {
|
|
3618
|
+
"type": "string",
|
|
3619
|
+
"description": "The email thread id (`uuid@domain`) the payment is bound to."
|
|
3620
|
+
},
|
|
3621
|
+
"challenge_id": {
|
|
3622
|
+
"type": "string",
|
|
3623
|
+
"format": "uuid",
|
|
3624
|
+
"description": "The underlying challenge record id."
|
|
3625
|
+
},
|
|
3626
|
+
"challenge": { "$ref": "#/components/schemas/X402EmailChallengeDetails" }
|
|
3627
|
+
},
|
|
3628
|
+
"required": [
|
|
3629
|
+
"interaction_id",
|
|
3630
|
+
"challenge_id",
|
|
3631
|
+
"challenge"
|
|
3632
|
+
]
|
|
3633
|
+
},
|
|
2991
3634
|
"X402PaymentPayload": {
|
|
2992
3635
|
"type": "object",
|
|
2993
3636
|
"description": "A signed x402 v1 `PaymentPayload`. The SDK `pay()` helper builds this;\ncallers rarely construct it by hand. Field names are x402-native.\n",
|
|
@@ -12838,42 +13481,214 @@ const operationManifest = [
|
|
|
12838
13481
|
},
|
|
12839
13482
|
{
|
|
12840
13483
|
"binaryResponse": false,
|
|
12841
|
-
"bodyRequired":
|
|
12842
|
-
"command": "
|
|
12843
|
-
"description": "
|
|
12844
|
-
"hasJsonBody":
|
|
12845
|
-
"method": "
|
|
12846
|
-
"operationId": "
|
|
12847
|
-
"path": "/x402/challenges
|
|
12848
|
-
"pathParams": [
|
|
12849
|
-
"description": "Resource UUID",
|
|
12850
|
-
"enum": null,
|
|
12851
|
-
"name": "id",
|
|
12852
|
-
"required": true,
|
|
12853
|
-
"type": "string"
|
|
12854
|
-
}],
|
|
13484
|
+
"bodyRequired": true,
|
|
13485
|
+
"command": "create-email-challenge",
|
|
13486
|
+
"description": "Issue an x402 payment challenge over a real email thread (the payee\nside). Unlike `createChallenge` (which mints a synthetic challenge id),\nthis sends the challenge as an email from `from` to `to` and binds the\npayment to that DKIM-authenticated thread. The `pay_to` address and the\ntoken asset are resolved server-side from your registered default payout\naddress for the network, never from the request. The response carries\nthe thread's `interaction_id` plus the `challenge` (the\n`payment_requirements`, the `nonce_binding`, and `expires_at`) the payer\nneeds to sign; the payer replies with a signed `payment` interaction\nstep. Amounts are in token base units (USDC has 6 decimals, so `\"10000\"`\nis 0.01 USDC).\n",
|
|
13487
|
+
"hasJsonBody": true,
|
|
13488
|
+
"method": "POST",
|
|
13489
|
+
"operationId": "createEmailChallenge",
|
|
13490
|
+
"path": "/x402/email-challenges",
|
|
13491
|
+
"pathParams": [],
|
|
12855
13492
|
"queryParams": [],
|
|
12856
|
-
"requestSchema":
|
|
12857
|
-
"responseSchema": {
|
|
13493
|
+
"requestSchema": {
|
|
12858
13494
|
"type": "object",
|
|
13495
|
+
"additionalProperties": false,
|
|
13496
|
+
"description": "Issue a payment challenge over an email thread. `from` is your sending\naddress (the funds receiver; ownership is enforced at send, exactly as\nfor outbound mail) and `to` is the payer's address. The `pay_to` payout\nwallet and the token asset are resolved server-side, never taken from\nthe request.\n",
|
|
12859
13497
|
"properties": {
|
|
12860
|
-
"
|
|
13498
|
+
"from": {
|
|
12861
13499
|
"type": "string",
|
|
12862
|
-
"format": "
|
|
13500
|
+
"format": "email",
|
|
13501
|
+
"description": "Your sending address (the payee / funds receiver). Must be an\naddress your org is allowed to send from.\n"
|
|
12863
13502
|
},
|
|
12864
|
-
"
|
|
13503
|
+
"to": {
|
|
12865
13504
|
"type": "string",
|
|
12866
|
-
"
|
|
12867
|
-
|
|
12868
|
-
"settling",
|
|
12869
|
-
"settled",
|
|
12870
|
-
"failed",
|
|
12871
|
-
"expired"
|
|
12872
|
-
]
|
|
13505
|
+
"format": "email",
|
|
13506
|
+
"description": "The payer's email address the challenge is sent to."
|
|
12873
13507
|
},
|
|
12874
|
-
"
|
|
13508
|
+
"amount": {
|
|
12875
13509
|
"type": "string",
|
|
12876
|
-
"
|
|
13510
|
+
"pattern": "^[1-9][0-9]{0,38}$",
|
|
13511
|
+
"description": "Amount to collect, in token base units. USDC has 6 decimals, so\n`\"10000\"` is 0.01 USDC.\n"
|
|
13512
|
+
},
|
|
13513
|
+
"network": {
|
|
13514
|
+
"type": "string",
|
|
13515
|
+
"enum": ["base", "base-sepolia"]
|
|
13516
|
+
},
|
|
13517
|
+
"expires_in": {
|
|
13518
|
+
"type": "integer",
|
|
13519
|
+
"minimum": 60,
|
|
13520
|
+
"maximum": 86400,
|
|
13521
|
+
"description": "Seconds until the challenge expires. Defaults to 3600."
|
|
13522
|
+
},
|
|
13523
|
+
"resource": {
|
|
13524
|
+
"type": "string",
|
|
13525
|
+
"format": "uri",
|
|
13526
|
+
"maxLength": 2048,
|
|
13527
|
+
"description": "Optional URL identifying what is being paid for."
|
|
13528
|
+
},
|
|
13529
|
+
"description": {
|
|
13530
|
+
"type": "string",
|
|
13531
|
+
"maxLength": 512,
|
|
13532
|
+
"description": "Optional human-readable description of the payment."
|
|
13533
|
+
}
|
|
13534
|
+
},
|
|
13535
|
+
"required": [
|
|
13536
|
+
"from",
|
|
13537
|
+
"to",
|
|
13538
|
+
"amount",
|
|
13539
|
+
"network"
|
|
13540
|
+
]
|
|
13541
|
+
},
|
|
13542
|
+
"responseSchema": {
|
|
13543
|
+
"type": "object",
|
|
13544
|
+
"description": "The result of issuing an email-native payment challenge. `interaction_id`\nis the real email thread id (`uuid@domain`) the payment is bound to;\n`challenge_id` is the underlying challenge record. Hand the `challenge`\nto the payer, who replies with a signed `payment` interaction step (the\nSDK `payEmailChallenge` helper builds it).\n",
|
|
13545
|
+
"properties": {
|
|
13546
|
+
"interaction_id": {
|
|
13547
|
+
"type": "string",
|
|
13548
|
+
"description": "The email thread id (`uuid@domain`) the payment is bound to."
|
|
13549
|
+
},
|
|
13550
|
+
"challenge_id": {
|
|
13551
|
+
"type": "string",
|
|
13552
|
+
"format": "uuid",
|
|
13553
|
+
"description": "The underlying challenge record id."
|
|
13554
|
+
},
|
|
13555
|
+
"challenge": {
|
|
13556
|
+
"type": "object",
|
|
13557
|
+
"description": "The challenge the payer needs to sign and pay, carried inside an\nemail-native challenge response.\n",
|
|
13558
|
+
"properties": {
|
|
13559
|
+
"payment_requirements": {
|
|
13560
|
+
"type": "object",
|
|
13561
|
+
"description": "The x402 `PaymentRequirements` the payer signs over. Field names are\nx402's native camelCase, preserved byte-for-byte.\n",
|
|
13562
|
+
"properties": {
|
|
13563
|
+
"scheme": {
|
|
13564
|
+
"type": "string",
|
|
13565
|
+
"description": "The x402 settlement scheme. Always `exact` for v1.",
|
|
13566
|
+
"example": "exact"
|
|
13567
|
+
},
|
|
13568
|
+
"network": {
|
|
13569
|
+
"type": "string",
|
|
13570
|
+
"enum": ["base", "base-sepolia"]
|
|
13571
|
+
},
|
|
13572
|
+
"maxAmountRequired": {
|
|
13573
|
+
"type": "string",
|
|
13574
|
+
"description": "Amount in token base units."
|
|
13575
|
+
},
|
|
13576
|
+
"payTo": {
|
|
13577
|
+
"type": "string",
|
|
13578
|
+
"description": "The payee's resolved payout address (checksummed)."
|
|
13579
|
+
},
|
|
13580
|
+
"asset": {
|
|
13581
|
+
"type": "string",
|
|
13582
|
+
"description": "The token contract address (checksummed). USDC."
|
|
13583
|
+
},
|
|
13584
|
+
"resource": { "type": "string" },
|
|
13585
|
+
"description": { "type": "string" },
|
|
13586
|
+
"maxTimeoutSeconds": { "type": "integer" },
|
|
13587
|
+
"extra": {
|
|
13588
|
+
"type": "object",
|
|
13589
|
+
"description": "The token's load-bearing EIP-712 domain params. `name` differs by\nchain (Base mainnet USDC is `USD Coin`, Base Sepolia is `USDC`); a\nwrong value produces a signature the verifier rejects.\n",
|
|
13590
|
+
"properties": {
|
|
13591
|
+
"name": { "type": "string" },
|
|
13592
|
+
"version": { "type": "string" }
|
|
13593
|
+
},
|
|
13594
|
+
"required": ["name", "version"]
|
|
13595
|
+
}
|
|
13596
|
+
},
|
|
13597
|
+
"required": [
|
|
13598
|
+
"scheme",
|
|
13599
|
+
"network",
|
|
13600
|
+
"maxAmountRequired",
|
|
13601
|
+
"payTo",
|
|
13602
|
+
"asset",
|
|
13603
|
+
"extra"
|
|
13604
|
+
]
|
|
13605
|
+
},
|
|
13606
|
+
"nonce_binding": {
|
|
13607
|
+
"type": "object",
|
|
13608
|
+
"description": "The interaction binding the payer hashes into the EIP-3009 nonce\n(`deriveEip3009Nonce`). Pinning the nonce to this binding is what lets an\nx402 payment ride asynchronous transports safely: a replayed challenge\ncan't redirect funds and a signed payment can't settle twice.\n",
|
|
13609
|
+
"properties": {
|
|
13610
|
+
"interaction_id": {
|
|
13611
|
+
"type": "string",
|
|
13612
|
+
"description": "Interaction id, including its `@domain` part."
|
|
13613
|
+
},
|
|
13614
|
+
"challenge_step_id": {
|
|
13615
|
+
"type": "string",
|
|
13616
|
+
"format": "uuid"
|
|
13617
|
+
},
|
|
13618
|
+
"challenge_nonce": {
|
|
13619
|
+
"type": "string",
|
|
13620
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
13621
|
+
"description": "32 random bytes as 64 lowercase hex chars."
|
|
13622
|
+
}
|
|
13623
|
+
},
|
|
13624
|
+
"required": [
|
|
13625
|
+
"interaction_id",
|
|
13626
|
+
"challenge_step_id",
|
|
13627
|
+
"challenge_nonce"
|
|
13628
|
+
]
|
|
13629
|
+
},
|
|
13630
|
+
"expires_at": {
|
|
13631
|
+
"type": "string",
|
|
13632
|
+
"format": "date-time",
|
|
13633
|
+
"description": "ISO-8601 expiry of the challenge."
|
|
13634
|
+
}
|
|
13635
|
+
},
|
|
13636
|
+
"required": [
|
|
13637
|
+
"payment_requirements",
|
|
13638
|
+
"nonce_binding",
|
|
13639
|
+
"expires_at"
|
|
13640
|
+
]
|
|
13641
|
+
}
|
|
13642
|
+
},
|
|
13643
|
+
"required": [
|
|
13644
|
+
"interaction_id",
|
|
13645
|
+
"challenge_id",
|
|
13646
|
+
"challenge"
|
|
13647
|
+
]
|
|
13648
|
+
},
|
|
13649
|
+
"sdkName": "createEmailChallenge",
|
|
13650
|
+
"summary": "Create an email-native payment challenge",
|
|
13651
|
+
"tag": "Payments",
|
|
13652
|
+
"tagCommand": "payments"
|
|
13653
|
+
},
|
|
13654
|
+
{
|
|
13655
|
+
"binaryResponse": false,
|
|
13656
|
+
"bodyRequired": false,
|
|
13657
|
+
"command": "get-challenge",
|
|
13658
|
+
"description": "Fetch a challenge you created, to poll its `status` and settlement\nreceipt (`settle_tx`). Scoped to the challenger org that created it.\n",
|
|
13659
|
+
"hasJsonBody": false,
|
|
13660
|
+
"method": "GET",
|
|
13661
|
+
"operationId": "getChallenge",
|
|
13662
|
+
"path": "/x402/challenges/{id}",
|
|
13663
|
+
"pathParams": [{
|
|
13664
|
+
"description": "Resource UUID",
|
|
13665
|
+
"enum": null,
|
|
13666
|
+
"name": "id",
|
|
13667
|
+
"required": true,
|
|
13668
|
+
"type": "string"
|
|
13669
|
+
}],
|
|
13670
|
+
"queryParams": [],
|
|
13671
|
+
"requestSchema": null,
|
|
13672
|
+
"responseSchema": {
|
|
13673
|
+
"type": "object",
|
|
13674
|
+
"properties": {
|
|
13675
|
+
"id": {
|
|
13676
|
+
"type": "string",
|
|
13677
|
+
"format": "uuid"
|
|
13678
|
+
},
|
|
13679
|
+
"status": {
|
|
13680
|
+
"type": "string",
|
|
13681
|
+
"enum": [
|
|
13682
|
+
"pending",
|
|
13683
|
+
"settling",
|
|
13684
|
+
"settled",
|
|
13685
|
+
"failed",
|
|
13686
|
+
"expired"
|
|
13687
|
+
]
|
|
13688
|
+
},
|
|
13689
|
+
"network": {
|
|
13690
|
+
"type": "string",
|
|
13691
|
+
"enum": ["base", "base-sepolia"]
|
|
12877
13692
|
},
|
|
12878
13693
|
"asset": {
|
|
12879
13694
|
"type": "string",
|
|
@@ -13440,6 +14255,642 @@ const operationManifest = [
|
|
|
13440
14255
|
"tag": "Payments",
|
|
13441
14256
|
"tagCommand": "payments"
|
|
13442
14257
|
},
|
|
14258
|
+
{
|
|
14259
|
+
"binaryResponse": false,
|
|
14260
|
+
"bodyRequired": true,
|
|
14261
|
+
"command": "create-registry",
|
|
14262
|
+
"description": null,
|
|
14263
|
+
"hasJsonBody": true,
|
|
14264
|
+
"method": "POST",
|
|
14265
|
+
"operationId": "createRegistry",
|
|
14266
|
+
"path": "/registries",
|
|
14267
|
+
"pathParams": [],
|
|
14268
|
+
"queryParams": [],
|
|
14269
|
+
"requestSchema": {
|
|
14270
|
+
"type": "object",
|
|
14271
|
+
"properties": {
|
|
14272
|
+
"slug": {
|
|
14273
|
+
"type": "string",
|
|
14274
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
|
|
14275
|
+
"description": "Lowercase slug, unique across registries."
|
|
14276
|
+
},
|
|
14277
|
+
"name": {
|
|
14278
|
+
"type": "string",
|
|
14279
|
+
"minLength": 1,
|
|
14280
|
+
"maxLength": 120
|
|
14281
|
+
},
|
|
14282
|
+
"description": {
|
|
14283
|
+
"type": ["string", "null"],
|
|
14284
|
+
"maxLength": 2e3
|
|
14285
|
+
},
|
|
14286
|
+
"is_public": { "type": "boolean" },
|
|
14287
|
+
"publish_policy": {
|
|
14288
|
+
"type": "string",
|
|
14289
|
+
"enum": [
|
|
14290
|
+
"owner_only",
|
|
14291
|
+
"request",
|
|
14292
|
+
"open"
|
|
14293
|
+
],
|
|
14294
|
+
"description": "Who may publish into a registry. owner_only: only the registry owner.\nrequest: anyone may request and the owner approves. open: anyone may\npublish and it lists immediately (no approval step).\n"
|
|
14295
|
+
}
|
|
14296
|
+
},
|
|
14297
|
+
"required": ["slug", "name"]
|
|
14298
|
+
},
|
|
14299
|
+
"responseSchema": {
|
|
14300
|
+
"type": "object",
|
|
14301
|
+
"properties": {
|
|
14302
|
+
"id": {
|
|
14303
|
+
"type": "string",
|
|
14304
|
+
"format": "uuid"
|
|
14305
|
+
},
|
|
14306
|
+
"slug": { "type": "string" }
|
|
14307
|
+
},
|
|
14308
|
+
"required": ["id", "slug"]
|
|
14309
|
+
},
|
|
14310
|
+
"sdkName": "createRegistry",
|
|
14311
|
+
"summary": "Create a registry",
|
|
14312
|
+
"tag": "Registries",
|
|
14313
|
+
"tagCommand": "registries"
|
|
14314
|
+
},
|
|
14315
|
+
{
|
|
14316
|
+
"binaryResponse": false,
|
|
14317
|
+
"bodyRequired": true,
|
|
14318
|
+
"command": "decide-registry-request",
|
|
14319
|
+
"description": null,
|
|
14320
|
+
"hasJsonBody": true,
|
|
14321
|
+
"method": "POST",
|
|
14322
|
+
"operationId": "decideRegistryRequest",
|
|
14323
|
+
"path": "/registries/{slug}/requests/{id}",
|
|
14324
|
+
"pathParams": [{
|
|
14325
|
+
"description": null,
|
|
14326
|
+
"enum": null,
|
|
14327
|
+
"name": "slug",
|
|
14328
|
+
"required": true,
|
|
14329
|
+
"type": "string"
|
|
14330
|
+
}, {
|
|
14331
|
+
"description": "Resource UUID",
|
|
14332
|
+
"enum": null,
|
|
14333
|
+
"name": "id",
|
|
14334
|
+
"required": true,
|
|
14335
|
+
"type": "string"
|
|
14336
|
+
}],
|
|
14337
|
+
"queryParams": [],
|
|
14338
|
+
"requestSchema": {
|
|
14339
|
+
"type": "object",
|
|
14340
|
+
"properties": { "decision": {
|
|
14341
|
+
"type": "string",
|
|
14342
|
+
"enum": ["approved", "rejected"]
|
|
14343
|
+
} },
|
|
14344
|
+
"required": ["decision"]
|
|
14345
|
+
},
|
|
14346
|
+
"responseSchema": {
|
|
14347
|
+
"type": "object",
|
|
14348
|
+
"properties": { "status": {
|
|
14349
|
+
"type": "string",
|
|
14350
|
+
"enum": ["approved", "rejected"]
|
|
14351
|
+
} },
|
|
14352
|
+
"required": ["status"]
|
|
14353
|
+
},
|
|
14354
|
+
"sdkName": "decideRegistryRequest",
|
|
14355
|
+
"summary": "Approve or reject a publication request",
|
|
14356
|
+
"tag": "Registries",
|
|
14357
|
+
"tagCommand": "registries"
|
|
14358
|
+
},
|
|
14359
|
+
{
|
|
14360
|
+
"binaryResponse": false,
|
|
14361
|
+
"bodyRequired": true,
|
|
14362
|
+
"command": "define-agent",
|
|
14363
|
+
"description": null,
|
|
14364
|
+
"hasJsonBody": true,
|
|
14365
|
+
"method": "POST",
|
|
14366
|
+
"operationId": "defineAgent",
|
|
14367
|
+
"path": "/agents",
|
|
14368
|
+
"pathParams": [],
|
|
14369
|
+
"queryParams": [],
|
|
14370
|
+
"requestSchema": {
|
|
14371
|
+
"type": "object",
|
|
14372
|
+
"properties": {
|
|
14373
|
+
"address": {
|
|
14374
|
+
"type": "string",
|
|
14375
|
+
"description": "The agent's globally unique email address; must route to the endpoint."
|
|
14376
|
+
},
|
|
14377
|
+
"endpoint_id": {
|
|
14378
|
+
"type": "string",
|
|
14379
|
+
"format": "uuid"
|
|
14380
|
+
},
|
|
14381
|
+
"display_name": {
|
|
14382
|
+
"type": "string",
|
|
14383
|
+
"minLength": 1,
|
|
14384
|
+
"maxLength": 120
|
|
14385
|
+
},
|
|
14386
|
+
"title": {
|
|
14387
|
+
"type": ["string", "null"],
|
|
14388
|
+
"maxLength": 120
|
|
14389
|
+
},
|
|
14390
|
+
"description": {
|
|
14391
|
+
"type": ["string", "null"],
|
|
14392
|
+
"maxLength": 2e3
|
|
14393
|
+
},
|
|
14394
|
+
"tags": {
|
|
14395
|
+
"type": "array",
|
|
14396
|
+
"items": {
|
|
14397
|
+
"type": "string",
|
|
14398
|
+
"maxLength": 40
|
|
14399
|
+
},
|
|
14400
|
+
"maxItems": 20
|
|
14401
|
+
}
|
|
14402
|
+
},
|
|
14403
|
+
"required": [
|
|
14404
|
+
"address",
|
|
14405
|
+
"endpoint_id",
|
|
14406
|
+
"display_name"
|
|
14407
|
+
]
|
|
14408
|
+
},
|
|
14409
|
+
"responseSchema": {
|
|
14410
|
+
"type": "object",
|
|
14411
|
+
"properties": {
|
|
14412
|
+
"id": {
|
|
14413
|
+
"type": "string",
|
|
14414
|
+
"format": "uuid"
|
|
14415
|
+
},
|
|
14416
|
+
"address": { "type": "string" }
|
|
14417
|
+
},
|
|
14418
|
+
"required": ["id", "address"]
|
|
14419
|
+
},
|
|
14420
|
+
"sdkName": "defineAgent",
|
|
14421
|
+
"summary": "Define an agent identity",
|
|
14422
|
+
"tag": "Registries",
|
|
14423
|
+
"tagCommand": "registries"
|
|
14424
|
+
},
|
|
14425
|
+
{
|
|
14426
|
+
"binaryResponse": false,
|
|
14427
|
+
"bodyRequired": false,
|
|
14428
|
+
"command": "get-agent",
|
|
14429
|
+
"description": null,
|
|
14430
|
+
"hasJsonBody": false,
|
|
14431
|
+
"method": "GET",
|
|
14432
|
+
"operationId": "getAgent",
|
|
14433
|
+
"path": "/agents/{address}",
|
|
14434
|
+
"pathParams": [{
|
|
14435
|
+
"description": "The agent's email address (URL-encoded).",
|
|
14436
|
+
"enum": null,
|
|
14437
|
+
"name": "address",
|
|
14438
|
+
"required": true,
|
|
14439
|
+
"type": "string"
|
|
14440
|
+
}],
|
|
14441
|
+
"queryParams": [],
|
|
14442
|
+
"requestSchema": null,
|
|
14443
|
+
"responseSchema": {
|
|
14444
|
+
"type": "object",
|
|
14445
|
+
"description": "An agent's public directory profile.",
|
|
14446
|
+
"properties": {
|
|
14447
|
+
"address": { "type": "string" },
|
|
14448
|
+
"display_name": { "type": "string" },
|
|
14449
|
+
"title": { "type": ["string", "null"] },
|
|
14450
|
+
"description": { "type": ["string", "null"] },
|
|
14451
|
+
"tags": {
|
|
14452
|
+
"type": "array",
|
|
14453
|
+
"items": { "type": "string" }
|
|
14454
|
+
},
|
|
14455
|
+
"handle": {
|
|
14456
|
+
"type": ["string", "null"],
|
|
14457
|
+
"description": "The registry-scoped name. Null on the global by-address read."
|
|
14458
|
+
}
|
|
14459
|
+
},
|
|
14460
|
+
"required": [
|
|
14461
|
+
"address",
|
|
14462
|
+
"display_name",
|
|
14463
|
+
"title",
|
|
14464
|
+
"description",
|
|
14465
|
+
"tags",
|
|
14466
|
+
"handle"
|
|
14467
|
+
]
|
|
14468
|
+
},
|
|
14469
|
+
"sdkName": "getAgent",
|
|
14470
|
+
"summary": "Get an agent's public profile by address",
|
|
14471
|
+
"tag": "Registries",
|
|
14472
|
+
"tagCommand": "registries"
|
|
14473
|
+
},
|
|
14474
|
+
{
|
|
14475
|
+
"binaryResponse": false,
|
|
14476
|
+
"bodyRequired": false,
|
|
14477
|
+
"command": "get-registry",
|
|
14478
|
+
"description": null,
|
|
14479
|
+
"hasJsonBody": false,
|
|
14480
|
+
"method": "GET",
|
|
14481
|
+
"operationId": "getRegistry",
|
|
14482
|
+
"path": "/registries/{slug}",
|
|
14483
|
+
"pathParams": [{
|
|
14484
|
+
"description": "The registry slug",
|
|
14485
|
+
"enum": null,
|
|
14486
|
+
"name": "slug",
|
|
14487
|
+
"required": true,
|
|
14488
|
+
"type": "string"
|
|
14489
|
+
}],
|
|
14490
|
+
"queryParams": [],
|
|
14491
|
+
"requestSchema": null,
|
|
14492
|
+
"responseSchema": {
|
|
14493
|
+
"type": "object",
|
|
14494
|
+
"properties": {
|
|
14495
|
+
"id": {
|
|
14496
|
+
"type": "string",
|
|
14497
|
+
"format": "uuid"
|
|
14498
|
+
},
|
|
14499
|
+
"slug": { "type": "string" },
|
|
14500
|
+
"name": { "type": "string" },
|
|
14501
|
+
"description": { "type": ["string", "null"] },
|
|
14502
|
+
"is_public": { "type": "boolean" },
|
|
14503
|
+
"publish_policy": {
|
|
14504
|
+
"type": "string",
|
|
14505
|
+
"enum": [
|
|
14506
|
+
"owner_only",
|
|
14507
|
+
"request",
|
|
14508
|
+
"open"
|
|
14509
|
+
],
|
|
14510
|
+
"description": "Who may publish into a registry. owner_only: only the registry owner.\nrequest: anyone may request and the owner approves. open: anyone may\npublish and it lists immediately (no approval step).\n"
|
|
14511
|
+
}
|
|
14512
|
+
},
|
|
14513
|
+
"required": [
|
|
14514
|
+
"id",
|
|
14515
|
+
"slug",
|
|
14516
|
+
"name",
|
|
14517
|
+
"description",
|
|
14518
|
+
"is_public",
|
|
14519
|
+
"publish_policy"
|
|
14520
|
+
]
|
|
14521
|
+
},
|
|
14522
|
+
"sdkName": "getRegistry",
|
|
14523
|
+
"summary": "Get a public registry's metadata",
|
|
14524
|
+
"tag": "Registries",
|
|
14525
|
+
"tagCommand": "registries"
|
|
14526
|
+
},
|
|
14527
|
+
{
|
|
14528
|
+
"binaryResponse": false,
|
|
14529
|
+
"bodyRequired": false,
|
|
14530
|
+
"command": "list-registries",
|
|
14531
|
+
"description": null,
|
|
14532
|
+
"hasJsonBody": false,
|
|
14533
|
+
"method": "GET",
|
|
14534
|
+
"operationId": "listRegistries",
|
|
14535
|
+
"path": "/registries",
|
|
14536
|
+
"pathParams": [],
|
|
14537
|
+
"queryParams": [],
|
|
14538
|
+
"requestSchema": null,
|
|
14539
|
+
"responseSchema": {
|
|
14540
|
+
"type": "array",
|
|
14541
|
+
"items": {
|
|
14542
|
+
"type": "object",
|
|
14543
|
+
"properties": {
|
|
14544
|
+
"id": {
|
|
14545
|
+
"type": "string",
|
|
14546
|
+
"format": "uuid"
|
|
14547
|
+
},
|
|
14548
|
+
"slug": { "type": "string" },
|
|
14549
|
+
"name": { "type": "string" },
|
|
14550
|
+
"description": { "type": ["string", "null"] },
|
|
14551
|
+
"is_public": { "type": "boolean" },
|
|
14552
|
+
"publish_policy": {
|
|
14553
|
+
"type": "string",
|
|
14554
|
+
"enum": [
|
|
14555
|
+
"owner_only",
|
|
14556
|
+
"request",
|
|
14557
|
+
"open"
|
|
14558
|
+
],
|
|
14559
|
+
"description": "Who may publish into a registry. owner_only: only the registry owner.\nrequest: anyone may request and the owner approves. open: anyone may\npublish and it lists immediately (no approval step).\n"
|
|
14560
|
+
}
|
|
14561
|
+
},
|
|
14562
|
+
"required": [
|
|
14563
|
+
"id",
|
|
14564
|
+
"slug",
|
|
14565
|
+
"name",
|
|
14566
|
+
"description",
|
|
14567
|
+
"is_public",
|
|
14568
|
+
"publish_policy"
|
|
14569
|
+
]
|
|
14570
|
+
}
|
|
14571
|
+
},
|
|
14572
|
+
"sdkName": "listRegistries",
|
|
14573
|
+
"summary": "List the registries you own",
|
|
14574
|
+
"tag": "Registries",
|
|
14575
|
+
"tagCommand": "registries"
|
|
14576
|
+
},
|
|
14577
|
+
{
|
|
14578
|
+
"binaryResponse": false,
|
|
14579
|
+
"bodyRequired": false,
|
|
14580
|
+
"command": "list-registry-agents",
|
|
14581
|
+
"description": null,
|
|
14582
|
+
"hasJsonBody": false,
|
|
14583
|
+
"method": "GET",
|
|
14584
|
+
"operationId": "listRegistryAgents",
|
|
14585
|
+
"path": "/registries/{slug}/agents",
|
|
14586
|
+
"pathParams": [{
|
|
14587
|
+
"description": null,
|
|
14588
|
+
"enum": null,
|
|
14589
|
+
"name": "slug",
|
|
14590
|
+
"required": true,
|
|
14591
|
+
"type": "string"
|
|
14592
|
+
}],
|
|
14593
|
+
"queryParams": [{
|
|
14594
|
+
"description": null,
|
|
14595
|
+
"enum": null,
|
|
14596
|
+
"maximum": 200,
|
|
14597
|
+
"minimum": 1,
|
|
14598
|
+
"name": "limit",
|
|
14599
|
+
"required": false,
|
|
14600
|
+
"type": "integer"
|
|
14601
|
+
}, {
|
|
14602
|
+
"description": "The address of the last agent from the previous page.",
|
|
14603
|
+
"enum": null,
|
|
14604
|
+
"name": "cursor",
|
|
14605
|
+
"required": false,
|
|
14606
|
+
"type": "string"
|
|
14607
|
+
}],
|
|
14608
|
+
"requestSchema": null,
|
|
14609
|
+
"responseSchema": {
|
|
14610
|
+
"type": "array",
|
|
14611
|
+
"items": {
|
|
14612
|
+
"type": "object",
|
|
14613
|
+
"description": "An agent's public directory profile.",
|
|
14614
|
+
"properties": {
|
|
14615
|
+
"address": { "type": "string" },
|
|
14616
|
+
"display_name": { "type": "string" },
|
|
14617
|
+
"title": { "type": ["string", "null"] },
|
|
14618
|
+
"description": { "type": ["string", "null"] },
|
|
14619
|
+
"tags": {
|
|
14620
|
+
"type": "array",
|
|
14621
|
+
"items": { "type": "string" }
|
|
14622
|
+
},
|
|
14623
|
+
"handle": {
|
|
14624
|
+
"type": ["string", "null"],
|
|
14625
|
+
"description": "The registry-scoped name. Null on the global by-address read."
|
|
14626
|
+
}
|
|
14627
|
+
},
|
|
14628
|
+
"required": [
|
|
14629
|
+
"address",
|
|
14630
|
+
"display_name",
|
|
14631
|
+
"title",
|
|
14632
|
+
"description",
|
|
14633
|
+
"tags",
|
|
14634
|
+
"handle"
|
|
14635
|
+
]
|
|
14636
|
+
}
|
|
14637
|
+
},
|
|
14638
|
+
"sdkName": "listRegistryAgents",
|
|
14639
|
+
"summary": "List agents in a registry",
|
|
14640
|
+
"tag": "Registries",
|
|
14641
|
+
"tagCommand": "registries"
|
|
14642
|
+
},
|
|
14643
|
+
{
|
|
14644
|
+
"binaryResponse": false,
|
|
14645
|
+
"bodyRequired": false,
|
|
14646
|
+
"command": "list-registry-requests",
|
|
14647
|
+
"description": null,
|
|
14648
|
+
"hasJsonBody": false,
|
|
14649
|
+
"method": "GET",
|
|
14650
|
+
"operationId": "listRegistryRequests",
|
|
14651
|
+
"path": "/registries/{slug}/requests",
|
|
14652
|
+
"pathParams": [{
|
|
14653
|
+
"description": null,
|
|
14654
|
+
"enum": null,
|
|
14655
|
+
"name": "slug",
|
|
14656
|
+
"required": true,
|
|
14657
|
+
"type": "string"
|
|
14658
|
+
}],
|
|
14659
|
+
"queryParams": [{
|
|
14660
|
+
"description": null,
|
|
14661
|
+
"enum": null,
|
|
14662
|
+
"maximum": 200,
|
|
14663
|
+
"minimum": 1,
|
|
14664
|
+
"name": "limit",
|
|
14665
|
+
"required": false,
|
|
14666
|
+
"type": "integer"
|
|
14667
|
+
}],
|
|
14668
|
+
"requestSchema": null,
|
|
14669
|
+
"responseSchema": {
|
|
14670
|
+
"type": "array",
|
|
14671
|
+
"items": {
|
|
14672
|
+
"type": "object",
|
|
14673
|
+
"description": "A pending publication request, as the registry owner sees it.",
|
|
14674
|
+
"properties": {
|
|
14675
|
+
"id": {
|
|
14676
|
+
"type": "string",
|
|
14677
|
+
"format": "uuid"
|
|
14678
|
+
},
|
|
14679
|
+
"address": { "type": "string" },
|
|
14680
|
+
"display_name": { "type": "string" },
|
|
14681
|
+
"handle": { "type": ["string", "null"] },
|
|
14682
|
+
"requested_at": {
|
|
14683
|
+
"type": "string",
|
|
14684
|
+
"format": "date-time"
|
|
14685
|
+
}
|
|
14686
|
+
},
|
|
14687
|
+
"required": [
|
|
14688
|
+
"id",
|
|
14689
|
+
"address",
|
|
14690
|
+
"display_name",
|
|
14691
|
+
"handle",
|
|
14692
|
+
"requested_at"
|
|
14693
|
+
]
|
|
14694
|
+
}
|
|
14695
|
+
},
|
|
14696
|
+
"sdkName": "listRegistryRequests",
|
|
14697
|
+
"summary": "List pending publication requests",
|
|
14698
|
+
"tag": "Registries",
|
|
14699
|
+
"tagCommand": "registries"
|
|
14700
|
+
},
|
|
14701
|
+
{
|
|
14702
|
+
"binaryResponse": false,
|
|
14703
|
+
"bodyRequired": true,
|
|
14704
|
+
"command": "publish-agent",
|
|
14705
|
+
"description": null,
|
|
14706
|
+
"hasJsonBody": true,
|
|
14707
|
+
"method": "POST",
|
|
14708
|
+
"operationId": "publishAgent",
|
|
14709
|
+
"path": "/registries/{slug}/agents",
|
|
14710
|
+
"pathParams": [{
|
|
14711
|
+
"description": null,
|
|
14712
|
+
"enum": null,
|
|
14713
|
+
"name": "slug",
|
|
14714
|
+
"required": true,
|
|
14715
|
+
"type": "string"
|
|
14716
|
+
}],
|
|
14717
|
+
"queryParams": [],
|
|
14718
|
+
"requestSchema": {
|
|
14719
|
+
"type": "object",
|
|
14720
|
+
"properties": {
|
|
14721
|
+
"address": { "type": "string" },
|
|
14722
|
+
"handle": {
|
|
14723
|
+
"type": "string",
|
|
14724
|
+
"description": "The registry-scoped name to list the agent under."
|
|
14725
|
+
}
|
|
14726
|
+
},
|
|
14727
|
+
"required": ["address", "handle"]
|
|
14728
|
+
},
|
|
14729
|
+
"responseSchema": {
|
|
14730
|
+
"type": "object",
|
|
14731
|
+
"properties": {
|
|
14732
|
+
"status": {
|
|
14733
|
+
"type": "string",
|
|
14734
|
+
"enum": ["approved", "requested"],
|
|
14735
|
+
"description": "approved lists immediately; requested pends owner approval."
|
|
14736
|
+
},
|
|
14737
|
+
"handle": { "type": "string" },
|
|
14738
|
+
"idempotent_replay": {
|
|
14739
|
+
"type": "boolean",
|
|
14740
|
+
"description": "True when the publish matched an existing identical publication."
|
|
14741
|
+
}
|
|
14742
|
+
},
|
|
14743
|
+
"required": [
|
|
14744
|
+
"status",
|
|
14745
|
+
"handle",
|
|
14746
|
+
"idempotent_replay"
|
|
14747
|
+
]
|
|
14748
|
+
},
|
|
14749
|
+
"sdkName": "publishAgent",
|
|
14750
|
+
"summary": "Publish an agent into a registry",
|
|
14751
|
+
"tag": "Registries",
|
|
14752
|
+
"tagCommand": "registries"
|
|
14753
|
+
},
|
|
14754
|
+
{
|
|
14755
|
+
"binaryResponse": false,
|
|
14756
|
+
"bodyRequired": false,
|
|
14757
|
+
"command": "resolve-registry-handle",
|
|
14758
|
+
"description": null,
|
|
14759
|
+
"hasJsonBody": false,
|
|
14760
|
+
"method": "GET",
|
|
14761
|
+
"operationId": "resolveRegistryHandle",
|
|
14762
|
+
"path": "/registries/{slug}/agents/{handle}",
|
|
14763
|
+
"pathParams": [{
|
|
14764
|
+
"description": null,
|
|
14765
|
+
"enum": null,
|
|
14766
|
+
"name": "slug",
|
|
14767
|
+
"required": true,
|
|
14768
|
+
"type": "string"
|
|
14769
|
+
}, {
|
|
14770
|
+
"description": null,
|
|
14771
|
+
"enum": null,
|
|
14772
|
+
"name": "handle",
|
|
14773
|
+
"required": true,
|
|
14774
|
+
"type": "string"
|
|
14775
|
+
}],
|
|
14776
|
+
"queryParams": [],
|
|
14777
|
+
"requestSchema": null,
|
|
14778
|
+
"responseSchema": {
|
|
14779
|
+
"type": "object",
|
|
14780
|
+
"description": "An agent's public directory profile.",
|
|
14781
|
+
"properties": {
|
|
14782
|
+
"address": { "type": "string" },
|
|
14783
|
+
"display_name": { "type": "string" },
|
|
14784
|
+
"title": { "type": ["string", "null"] },
|
|
14785
|
+
"description": { "type": ["string", "null"] },
|
|
14786
|
+
"tags": {
|
|
14787
|
+
"type": "array",
|
|
14788
|
+
"items": { "type": "string" }
|
|
14789
|
+
},
|
|
14790
|
+
"handle": {
|
|
14791
|
+
"type": ["string", "null"],
|
|
14792
|
+
"description": "The registry-scoped name. Null on the global by-address read."
|
|
14793
|
+
}
|
|
14794
|
+
},
|
|
14795
|
+
"required": [
|
|
14796
|
+
"address",
|
|
14797
|
+
"display_name",
|
|
14798
|
+
"title",
|
|
14799
|
+
"description",
|
|
14800
|
+
"tags",
|
|
14801
|
+
"handle"
|
|
14802
|
+
]
|
|
14803
|
+
},
|
|
14804
|
+
"sdkName": "resolveRegistryHandle",
|
|
14805
|
+
"summary": "Resolve a registry handle to its agent",
|
|
14806
|
+
"tag": "Registries",
|
|
14807
|
+
"tagCommand": "registries"
|
|
14808
|
+
},
|
|
14809
|
+
{
|
|
14810
|
+
"binaryResponse": false,
|
|
14811
|
+
"bodyRequired": false,
|
|
14812
|
+
"command": "unpublish-agent",
|
|
14813
|
+
"description": null,
|
|
14814
|
+
"hasJsonBody": false,
|
|
14815
|
+
"method": "DELETE",
|
|
14816
|
+
"operationId": "unpublishAgent",
|
|
14817
|
+
"path": "/registries/{slug}/agents/{handle}",
|
|
14818
|
+
"pathParams": [{
|
|
14819
|
+
"description": null,
|
|
14820
|
+
"enum": null,
|
|
14821
|
+
"name": "slug",
|
|
14822
|
+
"required": true,
|
|
14823
|
+
"type": "string"
|
|
14824
|
+
}, {
|
|
14825
|
+
"description": null,
|
|
14826
|
+
"enum": null,
|
|
14827
|
+
"name": "handle",
|
|
14828
|
+
"required": true,
|
|
14829
|
+
"type": "string"
|
|
14830
|
+
}],
|
|
14831
|
+
"queryParams": [],
|
|
14832
|
+
"requestSchema": null,
|
|
14833
|
+
"responseSchema": null,
|
|
14834
|
+
"sdkName": "unpublishAgent",
|
|
14835
|
+
"summary": "Unpublish an agent from a registry",
|
|
14836
|
+
"tag": "Registries",
|
|
14837
|
+
"tagCommand": "registries"
|
|
14838
|
+
},
|
|
14839
|
+
{
|
|
14840
|
+
"binaryResponse": false,
|
|
14841
|
+
"bodyRequired": true,
|
|
14842
|
+
"command": "update-registry",
|
|
14843
|
+
"description": null,
|
|
14844
|
+
"hasJsonBody": true,
|
|
14845
|
+
"method": "PATCH",
|
|
14846
|
+
"operationId": "updateRegistry",
|
|
14847
|
+
"path": "/registries/{slug}",
|
|
14848
|
+
"pathParams": [{
|
|
14849
|
+
"description": "The registry slug",
|
|
14850
|
+
"enum": null,
|
|
14851
|
+
"name": "slug",
|
|
14852
|
+
"required": true,
|
|
14853
|
+
"type": "string"
|
|
14854
|
+
}],
|
|
14855
|
+
"queryParams": [],
|
|
14856
|
+
"requestSchema": {
|
|
14857
|
+
"type": "object",
|
|
14858
|
+
"minProperties": 1,
|
|
14859
|
+
"properties": {
|
|
14860
|
+
"name": {
|
|
14861
|
+
"type": "string",
|
|
14862
|
+
"minLength": 1,
|
|
14863
|
+
"maxLength": 120
|
|
14864
|
+
},
|
|
14865
|
+
"description": {
|
|
14866
|
+
"type": ["string", "null"],
|
|
14867
|
+
"maxLength": 2e3
|
|
14868
|
+
},
|
|
14869
|
+
"is_public": { "type": "boolean" },
|
|
14870
|
+
"publish_policy": {
|
|
14871
|
+
"type": "string",
|
|
14872
|
+
"enum": [
|
|
14873
|
+
"owner_only",
|
|
14874
|
+
"request",
|
|
14875
|
+
"open"
|
|
14876
|
+
],
|
|
14877
|
+
"description": "Who may publish into a registry. owner_only: only the registry owner.\nrequest: anyone may request and the owner approves. open: anyone may\npublish and it lists immediately (no approval step).\n"
|
|
14878
|
+
}
|
|
14879
|
+
}
|
|
14880
|
+
},
|
|
14881
|
+
"responseSchema": {
|
|
14882
|
+
"type": "object",
|
|
14883
|
+
"properties": { "id": {
|
|
14884
|
+
"type": "string",
|
|
14885
|
+
"format": "uuid"
|
|
14886
|
+
} },
|
|
14887
|
+
"required": ["id"]
|
|
14888
|
+
},
|
|
14889
|
+
"sdkName": "updateRegistry",
|
|
14890
|
+
"summary": "Update a registry you own",
|
|
14891
|
+
"tag": "Registries",
|
|
14892
|
+
"tagCommand": "registries"
|
|
14893
|
+
},
|
|
13443
14894
|
{
|
|
13444
14895
|
"binaryResponse": false,
|
|
13445
14896
|
"bodyRequired": true,
|