@aws/agentcore 0.27.0 → 0.28.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 +4 -4
- package/dist/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap +73 -7
- package/dist/assets/cdk/bin/cdk.ts +26 -2
- package/dist/assets/cdk/lib/cdk-stack.ts +46 -4
- package/dist/assets/cdk/package.json +1 -1
- package/dist/cli/index.mjs +492 -478
- package/dist/lib/utils/subprocess.js +2 -2
- package/dist/lib/utils/subprocess.js.map +1 -1
- package/dist/schema/schemas/agentcore-project.d.ts +11 -5
- package/dist/schema/schemas/agentcore-project.d.ts.map +1 -1
- package/dist/schema/schemas/agentcore-project.js +4 -1
- package/dist/schema/schemas/agentcore-project.js.map +1 -1
- package/dist/schema/schemas/deployed-state.d.ts +54 -18
- package/dist/schema/schemas/deployed-state.d.ts.map +1 -1
- package/dist/schema/schemas/deployed-state.js +11 -2
- package/dist/schema/schemas/deployed-state.js.map +1 -1
- package/dist/schema/schemas/primitives/index.d.ts +2 -2
- package/dist/schema/schemas/primitives/index.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/index.js +4 -1
- package/dist/schema/schemas/primitives/index.js.map +1 -1
- package/dist/schema/schemas/primitives/payment.d.ts +35 -3
- package/dist/schema/schemas/primitives/payment.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/payment.js +11 -2
- package/dist/schema/schemas/primitives/payment.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -197,10 +197,10 @@ Policy engines apply Cedar-based pre/post-call policies to agent invocations —
|
|
|
197
197
|
Pay-per-call agent transactions via the [x402 protocol](https://www.x402.org/). When a tool call returns
|
|
198
198
|
`402 Payment Required`, the payments system signs and submits payment then retries automatically.
|
|
199
199
|
|
|
200
|
-
| Command | Description
|
|
201
|
-
| ----------------------- |
|
|
202
|
-
| `add payment-manager` | Add a payment manager (orchestrates payment sessions for the agent)
|
|
203
|
-
| `add payment-connector` | Add a
|
|
200
|
+
| Command | Description |
|
|
201
|
+
| ----------------------- | ------------------------------------------------------------------------- |
|
|
202
|
+
| `add payment-manager` | Add a payment manager (orchestrates payment sessions for the agent) |
|
|
203
|
+
| `add payment-connector` | Add a Quick Create or manual payment connector (CoinbaseCDP, StripePrivy) |
|
|
204
204
|
|
|
205
205
|
> See [Payments](docs/payments.md) for the full setup including instrument creation and tool allowlists.
|
|
206
206
|
|
|
@@ -186,7 +186,12 @@ async function main() {
|
|
|
186
186
|
autoPayment?: boolean;
|
|
187
187
|
paymentToolAllowlist?: string[];
|
|
188
188
|
networkPreferences?: string[];
|
|
189
|
-
connectors: {
|
|
189
|
+
connectors: {
|
|
190
|
+
name: string;
|
|
191
|
+
provider?: string;
|
|
192
|
+
provisionMode?: 'MANUAL' | 'QUICK_CREATE';
|
|
193
|
+
credentialName?: string;
|
|
194
|
+
}[];
|
|
190
195
|
}) => ({
|
|
191
196
|
name: p.name,
|
|
192
197
|
description: p.description,
|
|
@@ -196,6 +201,19 @@ async function main() {
|
|
|
196
201
|
paymentToolAllowlist: p.paymentToolAllowlist,
|
|
197
202
|
networkPreferences: p.networkPreferences,
|
|
198
203
|
connectors: p.connectors.map(c => {
|
|
204
|
+
if (c.provisionMode === 'QUICK_CREATE') {
|
|
205
|
+
return {
|
|
206
|
+
name: c.name,
|
|
207
|
+
provider: 'CoinbaseCDP' as const,
|
|
208
|
+
provisionMode: 'QUICK_CREATE' as const,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (!c.credentialName) {
|
|
213
|
+
throw new Error(
|
|
214
|
+
\`Manual payment connector "\${c.name}" on manager "\${p.name}" is missing its credential name.\`
|
|
215
|
+
);
|
|
216
|
+
}
|
|
199
217
|
const credentialProviderArn = paymentCredentials?.[c.credentialName]?.credentialProviderArn;
|
|
200
218
|
if (!credentialProviderArn) {
|
|
201
219
|
// Fail fast with an actionable message rather than passing an empty
|
|
@@ -206,7 +224,13 @@ async function main() {
|
|
|
206
224
|
\`Run \\\`agentcore deploy\\\` so the credential provider is created first.\`
|
|
207
225
|
);
|
|
208
226
|
}
|
|
209
|
-
return {
|
|
227
|
+
return {
|
|
228
|
+
name: c.name,
|
|
229
|
+
provider: c.provider,
|
|
230
|
+
...(c.provisionMode && { provisionMode: c.provisionMode }),
|
|
231
|
+
credentialName: c.credentialName,
|
|
232
|
+
credentialProviderArn,
|
|
233
|
+
};
|
|
210
234
|
}),
|
|
211
235
|
})
|
|
212
236
|
)
|
|
@@ -378,12 +402,24 @@ import { Construct } from 'constructs';
|
|
|
378
402
|
*/
|
|
379
403
|
export type HarnessConfig = HarnessDeploymentConfig;
|
|
380
404
|
|
|
381
|
-
export interface
|
|
405
|
+
export interface ManualPaymentConnectorSpec {
|
|
382
406
|
name: string;
|
|
383
407
|
provider: 'CoinbaseCDP' | 'StripePrivy';
|
|
408
|
+
provisionMode?: 'MANUAL';
|
|
409
|
+
credentialName: string;
|
|
384
410
|
credentialProviderArn: string;
|
|
385
411
|
}
|
|
386
412
|
|
|
413
|
+
export interface QuickCreatePaymentConnectorSpec {
|
|
414
|
+
name: string;
|
|
415
|
+
provider: 'CoinbaseCDP';
|
|
416
|
+
provisionMode: 'QUICK_CREATE';
|
|
417
|
+
credentialName?: never;
|
|
418
|
+
credentialProviderArn?: never;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
export type PaymentConnectorSpec = ManualPaymentConnectorSpec | QuickCreatePaymentConnectorSpec;
|
|
422
|
+
|
|
387
423
|
export interface PaymentSpec {
|
|
388
424
|
name: string;
|
|
389
425
|
description?: string;
|
|
@@ -562,13 +598,31 @@ export class AgentCoreStack extends Stack {
|
|
|
562
598
|
// Create connectors for this manager
|
|
563
599
|
for (const connector of payment.connectors) {
|
|
564
600
|
const connId = toCdkId(connector.name);
|
|
565
|
-
const
|
|
601
|
+
const schemaConnector =
|
|
602
|
+
connector.provisionMode === 'QUICK_CREATE'
|
|
603
|
+
? connector
|
|
604
|
+
: {
|
|
605
|
+
name: connector.name,
|
|
606
|
+
provider: connector.provider,
|
|
607
|
+
...(connector.provisionMode && { provisionMode: connector.provisionMode }),
|
|
608
|
+
credentialName: connector.credentialName,
|
|
609
|
+
};
|
|
610
|
+
const compatibilityProps = {
|
|
566
611
|
projectName: spec.name,
|
|
567
612
|
paymentManager: manager,
|
|
613
|
+
connector: schemaConnector,
|
|
614
|
+
// Remove these legacy manual fields after the new L3 release is pinned.
|
|
568
615
|
connectorName: connector.name,
|
|
569
616
|
connectorType: connector.provider,
|
|
570
|
-
|
|
571
|
-
|
|
617
|
+
...(connector.provisionMode !== 'QUICK_CREATE' && {
|
|
618
|
+
credentialProviderArn: connector.credentialProviderArn,
|
|
619
|
+
}),
|
|
620
|
+
};
|
|
621
|
+
const conn = new AgentCorePaymentConnector(
|
|
622
|
+
this,
|
|
623
|
+
\`Payment\${mgrId}\${connId}\`,
|
|
624
|
+
compatibilityProps as unknown as ConstructorParameters<typeof AgentCorePaymentConnector>[2]
|
|
625
|
+
);
|
|
572
626
|
|
|
573
627
|
// Wire first connector's ID as env var (eligible agents only)
|
|
574
628
|
if (connector === payment.connectors[0]) {
|
|
@@ -581,6 +635,18 @@ export class AgentCoreStack extends Stack {
|
|
|
581
635
|
new CfnOutput(this, \`Payment\${mgrId}\${connId}ConnectorId\`, {
|
|
582
636
|
value: conn.paymentConnectorId,
|
|
583
637
|
});
|
|
638
|
+
if (connector.provisionMode === 'QUICK_CREATE') {
|
|
639
|
+
const quickCreateConnector = conn as AgentCorePaymentConnector & {
|
|
640
|
+
paymentConnectorStatus: string;
|
|
641
|
+
authorizationUrl: string;
|
|
642
|
+
};
|
|
643
|
+
new CfnOutput(this, \`Payment\${mgrId}\${connId}ConnectorStatus\`, {
|
|
644
|
+
value: quickCreateConnector.paymentConnectorStatus,
|
|
645
|
+
});
|
|
646
|
+
new CfnOutput(this, \`Payment\${mgrId}\${connId}AuthorizationUrl\`, {
|
|
647
|
+
value: quickCreateConnector.authorizationUrl,
|
|
648
|
+
});
|
|
649
|
+
}
|
|
584
650
|
}
|
|
585
651
|
|
|
586
652
|
// CFN Outputs for post-deploy state parsing
|
|
@@ -645,7 +711,7 @@ exports[`Assets Directory Snapshots > CDK assets > cdk/cdk/package.json should m
|
|
|
645
711
|
"typescript": "~5.9.3"
|
|
646
712
|
},
|
|
647
713
|
"dependencies": {
|
|
648
|
-
"@aws/agentcore-cdk": "0.1.0-alpha.
|
|
714
|
+
"@aws/agentcore-cdk": "0.1.0-alpha.49",
|
|
649
715
|
"aws-cdk-lib": "~2.261.0",
|
|
650
716
|
"constructs": "~10.7.0"
|
|
651
717
|
}
|
|
@@ -141,7 +141,12 @@ async function main() {
|
|
|
141
141
|
autoPayment?: boolean;
|
|
142
142
|
paymentToolAllowlist?: string[];
|
|
143
143
|
networkPreferences?: string[];
|
|
144
|
-
connectors: {
|
|
144
|
+
connectors: {
|
|
145
|
+
name: string;
|
|
146
|
+
provider?: string;
|
|
147
|
+
provisionMode?: 'MANUAL' | 'QUICK_CREATE';
|
|
148
|
+
credentialName?: string;
|
|
149
|
+
}[];
|
|
145
150
|
}) => ({
|
|
146
151
|
name: p.name,
|
|
147
152
|
description: p.description,
|
|
@@ -151,6 +156,19 @@ async function main() {
|
|
|
151
156
|
paymentToolAllowlist: p.paymentToolAllowlist,
|
|
152
157
|
networkPreferences: p.networkPreferences,
|
|
153
158
|
connectors: p.connectors.map(c => {
|
|
159
|
+
if (c.provisionMode === 'QUICK_CREATE') {
|
|
160
|
+
return {
|
|
161
|
+
name: c.name,
|
|
162
|
+
provider: 'CoinbaseCDP' as const,
|
|
163
|
+
provisionMode: 'QUICK_CREATE' as const,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (!c.credentialName) {
|
|
168
|
+
throw new Error(
|
|
169
|
+
`Manual payment connector "${c.name}" on manager "${p.name}" is missing its credential name.`
|
|
170
|
+
);
|
|
171
|
+
}
|
|
154
172
|
const credentialProviderArn = paymentCredentials?.[c.credentialName]?.credentialProviderArn;
|
|
155
173
|
if (!credentialProviderArn) {
|
|
156
174
|
// Fail fast with an actionable message rather than passing an empty
|
|
@@ -161,7 +179,13 @@ async function main() {
|
|
|
161
179
|
`Run \`agentcore deploy\` so the credential provider is created first.`
|
|
162
180
|
);
|
|
163
181
|
}
|
|
164
|
-
return {
|
|
182
|
+
return {
|
|
183
|
+
name: c.name,
|
|
184
|
+
provider: c.provider,
|
|
185
|
+
...(c.provisionMode && { provisionMode: c.provisionMode }),
|
|
186
|
+
credentialName: c.credentialName,
|
|
187
|
+
credentialProviderArn,
|
|
188
|
+
};
|
|
165
189
|
}),
|
|
166
190
|
})
|
|
167
191
|
)
|
|
@@ -19,12 +19,24 @@ import { Construct } from 'constructs';
|
|
|
19
19
|
*/
|
|
20
20
|
export type HarnessConfig = HarnessDeploymentConfig;
|
|
21
21
|
|
|
22
|
-
export interface
|
|
22
|
+
export interface ManualPaymentConnectorSpec {
|
|
23
23
|
name: string;
|
|
24
24
|
provider: 'CoinbaseCDP' | 'StripePrivy';
|
|
25
|
+
provisionMode?: 'MANUAL';
|
|
26
|
+
credentialName: string;
|
|
25
27
|
credentialProviderArn: string;
|
|
26
28
|
}
|
|
27
29
|
|
|
30
|
+
export interface QuickCreatePaymentConnectorSpec {
|
|
31
|
+
name: string;
|
|
32
|
+
provider: 'CoinbaseCDP';
|
|
33
|
+
provisionMode: 'QUICK_CREATE';
|
|
34
|
+
credentialName?: never;
|
|
35
|
+
credentialProviderArn?: never;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export type PaymentConnectorSpec = ManualPaymentConnectorSpec | QuickCreatePaymentConnectorSpec;
|
|
39
|
+
|
|
28
40
|
export interface PaymentSpec {
|
|
29
41
|
name: string;
|
|
30
42
|
description?: string;
|
|
@@ -203,13 +215,31 @@ export class AgentCoreStack extends Stack {
|
|
|
203
215
|
// Create connectors for this manager
|
|
204
216
|
for (const connector of payment.connectors) {
|
|
205
217
|
const connId = toCdkId(connector.name);
|
|
206
|
-
const
|
|
218
|
+
const schemaConnector =
|
|
219
|
+
connector.provisionMode === 'QUICK_CREATE'
|
|
220
|
+
? connector
|
|
221
|
+
: {
|
|
222
|
+
name: connector.name,
|
|
223
|
+
provider: connector.provider,
|
|
224
|
+
...(connector.provisionMode && { provisionMode: connector.provisionMode }),
|
|
225
|
+
credentialName: connector.credentialName,
|
|
226
|
+
};
|
|
227
|
+
const compatibilityProps = {
|
|
207
228
|
projectName: spec.name,
|
|
208
229
|
paymentManager: manager,
|
|
230
|
+
connector: schemaConnector,
|
|
231
|
+
// Remove these legacy manual fields after the new L3 release is pinned.
|
|
209
232
|
connectorName: connector.name,
|
|
210
233
|
connectorType: connector.provider,
|
|
211
|
-
|
|
212
|
-
|
|
234
|
+
...(connector.provisionMode !== 'QUICK_CREATE' && {
|
|
235
|
+
credentialProviderArn: connector.credentialProviderArn,
|
|
236
|
+
}),
|
|
237
|
+
};
|
|
238
|
+
const conn = new AgentCorePaymentConnector(
|
|
239
|
+
this,
|
|
240
|
+
`Payment${mgrId}${connId}`,
|
|
241
|
+
compatibilityProps as unknown as ConstructorParameters<typeof AgentCorePaymentConnector>[2]
|
|
242
|
+
);
|
|
213
243
|
|
|
214
244
|
// Wire first connector's ID as env var (eligible agents only)
|
|
215
245
|
if (connector === payment.connectors[0]) {
|
|
@@ -222,6 +252,18 @@ export class AgentCoreStack extends Stack {
|
|
|
222
252
|
new CfnOutput(this, `Payment${mgrId}${connId}ConnectorId`, {
|
|
223
253
|
value: conn.paymentConnectorId,
|
|
224
254
|
});
|
|
255
|
+
if (connector.provisionMode === 'QUICK_CREATE') {
|
|
256
|
+
const quickCreateConnector = conn as AgentCorePaymentConnector & {
|
|
257
|
+
paymentConnectorStatus: string;
|
|
258
|
+
authorizationUrl: string;
|
|
259
|
+
};
|
|
260
|
+
new CfnOutput(this, `Payment${mgrId}${connId}ConnectorStatus`, {
|
|
261
|
+
value: quickCreateConnector.paymentConnectorStatus,
|
|
262
|
+
});
|
|
263
|
+
new CfnOutput(this, `Payment${mgrId}${connId}AuthorizationUrl`, {
|
|
264
|
+
value: quickCreateConnector.authorizationUrl,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
225
267
|
}
|
|
226
268
|
|
|
227
269
|
// CFN Outputs for post-deploy state parsing
|