@paybond/kit 0.11.10 → 0.12.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 +2 -2
- package/completion-presets/catalog.json +374 -3
- package/completion-presets/catalog.sha256 +1 -1
- package/dist/agent/facade.js +13 -0
- package/dist/agent/guarded-agent.d.ts +1 -1
- package/dist/agent/guarded-agent.js +19 -0
- package/dist/agent/index.d.ts +2 -1
- package/dist/agent/index.js +1 -0
- package/dist/agent/instrument.d.ts +6 -0
- package/dist/agent/instrument.js +6 -0
- package/dist/agent/interceptor.d.ts +9 -0
- package/dist/agent/interceptor.js +177 -1
- package/dist/agent/receipt-client.d.ts +49 -0
- package/dist/agent/receipt-client.js +45 -0
- package/dist/agent/registry.js +1 -0
- package/dist/agent/run.d.ts +2 -0
- package/dist/agent/run.js +52 -0
- package/dist/agent/types.d.ts +70 -0
- package/dist/agent-receipt-external-attestations.d.ts +29 -0
- package/dist/agent-receipt-external-attestations.js +124 -0
- package/dist/agent-receipt.d.ts +134 -0
- package/dist/agent-receipt.js +580 -0
- package/dist/agent-recognition.d.ts +25 -0
- package/dist/agent-recognition.js +36 -0
- package/dist/audit/exports.d.ts +72 -0
- package/dist/audit/exports.js +185 -0
- package/dist/audit/index.d.ts +3 -0
- package/dist/audit/index.js +3 -0
- package/dist/audit/verify.d.ts +8 -0
- package/dist/audit/verify.js +113 -0
- package/dist/audit/wire.d.ts +54 -0
- package/dist/audit/wire.js +80 -0
- package/dist/cli/agent/demo-loaders.d.ts +2 -0
- package/dist/cli/agent/demo-loaders.js +24 -0
- package/dist/cli/agent/production-evidence.d.ts +11 -0
- package/dist/cli/agent/production-evidence.js +17 -0
- package/dist/cli/audit-export.d.ts +2 -7
- package/dist/cli/audit-export.js +2 -120
- package/dist/cli/command-spec.js +43 -10
- package/dist/cli/commands/agent.d.ts +3 -0
- package/dist/cli/commands/agent.js +143 -1
- package/dist/cli/commands/discovery.js +39 -36
- package/dist/cli/commands/workflows.js +116 -18
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.js +12 -8
- package/dist/cli/intents-harbor-mutation.d.ts +18 -0
- package/dist/cli/intents-harbor-mutation.js +33 -0
- package/dist/cli/paybond.d.ts +9 -0
- package/dist/cli/paybond.js +23 -0
- package/dist/cli/redact.js +3 -0
- package/dist/cloudflare-agents/config.d.ts +24 -0
- package/dist/cloudflare-agents/config.js +23 -0
- package/dist/cloudflare-agents/index.d.ts +3 -0
- package/dist/cloudflare-agents/index.js +3 -0
- package/dist/cloudflare-agents/peer.d.ts +9 -0
- package/dist/cloudflare-agents/peer.js +20 -0
- package/dist/cloudflare-agents/sandbox-demo.d.ts +36 -0
- package/dist/cloudflare-agents/sandbox-demo.js +89 -0
- package/dist/completion-catalog-digest.d.ts +1 -1
- package/dist/completion-catalog-digest.js +1 -1
- package/dist/completion-init.js +8 -3
- package/dist/dev/offline-gateway.d.ts +2 -1
- package/dist/dev/offline-gateway.js +34 -3
- package/dist/dev/x402-fund-mock.d.ts +28 -0
- package/dist/dev/x402-fund-mock.js +124 -0
- package/dist/index.d.ts +125 -9
- package/dist/index.js +264 -17
- package/dist/init.js +113 -2
- package/dist/mastra/config.d.ts +30 -0
- package/dist/mastra/config.js +58 -0
- package/dist/mastra/index.d.ts +2 -0
- package/dist/mastra/index.js +2 -0
- package/dist/mastra/peer.d.ts +11 -0
- package/dist/mastra/peer.js +24 -0
- package/dist/mastra/sandbox-demo.d.ts +36 -0
- package/dist/mastra/sandbox-demo.js +87 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/sandbox-demo.d.ts +38 -0
- package/dist/mcp/sandbox-demo.js +112 -0
- package/dist/mcp-receipt-resource.d.ts +10 -0
- package/dist/mcp-receipt-resource.js +32 -0
- package/dist/mcp-server.d.ts +6 -0
- package/dist/mcp-server.js +124 -1
- package/dist/mpp-commercial.d.ts +19 -0
- package/dist/mpp-commercial.js +34 -0
- package/dist/mpp-funding.d.ts +71 -0
- package/dist/mpp-funding.js +192 -0
- package/dist/payment-transport.d.ts +30 -0
- package/dist/payment-transport.js +56 -0
- package/dist/policy/init.js +2 -0
- package/dist/policy/intent-spec.js +2 -0
- package/dist/principal-intent.d.ts +1 -1
- package/dist/principal-intent.js +4 -1
- package/dist/project-init.js +8 -0
- package/dist/template-init.d.ts +2 -2
- package/dist/template-init.js +6 -2
- package/dist/x402-funding.d.ts +52 -0
- package/dist/x402-funding.js +124 -0
- package/package.json +20 -2
- package/templates/manifest.json +28 -9
- package/templates/openai-shopping-agent/package-lock.json +16 -8
- package/templates/openai-shopping-agent/package.json +1 -1
- package/templates/paybond-aws-operator/package-lock.json +13 -5
- package/templates/paybond-aws-operator/package.json +1 -1
- package/templates/paybond-claude-agents-demo/package-lock.json +16 -8
- package/templates/paybond-claude-agents-demo/package.json +1 -1
- package/templates/paybond-invoice-agent/requirements.txt +1 -1
- package/templates/paybond-mastra-travel-agent/.env.example +3 -0
- package/templates/paybond-mastra-travel-agent/.github/workflows/smoke.yml +20 -0
- package/templates/paybond-mastra-travel-agent/LICENSE +201 -0
- package/templates/paybond-mastra-travel-agent/README.md +29 -0
- package/templates/paybond-mastra-travel-agent/package-lock.json +3377 -0
- package/templates/paybond-mastra-travel-agent/package.json +22 -0
- package/templates/paybond-mastra-travel-agent/paybond.policy.yaml +22 -0
- package/templates/paybond-mastra-travel-agent/src/index.ts +22 -0
- package/templates/paybond-mastra-travel-agent/src/paybond.config.ts +51 -0
- package/templates/paybond-mastra-travel-agent/tsconfig.json +13 -0
- package/templates/paybond-mcp-coding-agent/package-lock.json +13 -5
- package/templates/paybond-mcp-coding-agent/package.json +1 -1
- package/templates/paybond-openai-agents-demo/package-lock.json +16 -8
- package/templates/paybond-openai-agents-demo/package.json +1 -1
- package/templates/paybond-procurement-agent/package-lock.json +13 -5
- package/templates/paybond-procurement-agent/package.json +1 -1
- package/templates/paybond-travel-agent/package-lock.json +16 -8
- package/templates/paybond-travel-agent/package.json +1 -1
- package/templates/paybond-vercel-shopping-agent/package-lock.json +13 -5
- package/templates/paybond-vercel-shopping-agent/package.json +1 -1
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { resolveJsonBody } from "../body.js";
|
|
2
|
-
import { verifyAuditBundleLocal } from "
|
|
2
|
+
import { verifyAuditBundleLocal } from "../../audit/verify.js";
|
|
3
|
+
import { PaybondAuditExports } from "../../audit/exports.js";
|
|
3
4
|
import { buildListQueryParams, extractNextCursor, partialResultsWarning, writeAtomicFileAsync, } from "../automation.js";
|
|
4
5
|
import { commandPath, gatewayUrl, requireConfirmation, withGateway } from "../context.js";
|
|
5
6
|
import { consumeBooleanFlag, consumeFlag } from "../globals.js";
|
|
6
7
|
import { CliError } from "../types.js";
|
|
7
8
|
export async function handleSignal(ctx, subcommand, argv) {
|
|
8
9
|
return withGateway(ctx, async (gateway) => {
|
|
9
|
-
const principal = await gateway.getJson("/v1/auth/principal");
|
|
10
|
-
const tenantId = String(principal.tenant_id ?? "");
|
|
11
10
|
if (subcommand === "portfolio") {
|
|
12
|
-
const body = await gateway.getJson(
|
|
11
|
+
const body = await gateway.getJson("/signal/v1/portfolio/summary");
|
|
13
12
|
return { data: body };
|
|
14
13
|
}
|
|
15
14
|
const didFlag = consumeFlag(argv, "--did");
|
|
@@ -17,11 +16,11 @@ export async function handleSignal(ctx, subcommand, argv) {
|
|
|
17
16
|
throw new CliError(`signal ${subcommand} requires --did`, { category: "usage", code: "cli.usage.missing_did" });
|
|
18
17
|
}
|
|
19
18
|
if (subcommand === "reputation") {
|
|
20
|
-
const body = await gateway.getJson(`/
|
|
19
|
+
const body = await gateway.getJson(`/reputation/${encodeURIComponent(didFlag.value)}`);
|
|
21
20
|
return { data: body };
|
|
22
21
|
}
|
|
23
22
|
if (subcommand === "fraud") {
|
|
24
|
-
const body = await gateway.getJson(`/
|
|
23
|
+
const body = await gateway.getJson(`/signal/v1/operators/${encodeURIComponent(didFlag.value)}/review-status`);
|
|
25
24
|
return { data: body };
|
|
26
25
|
}
|
|
27
26
|
throw new CliError(`unknown signal subcommand: ${subcommand}`, { category: "usage", code: "cli.usage.unknown_command" });
|
|
@@ -29,10 +28,23 @@ export async function handleSignal(ctx, subcommand, argv) {
|
|
|
29
28
|
}
|
|
30
29
|
export async function handleReceipts(ctx, subcommand, argv) {
|
|
31
30
|
return withGateway(ctx, async (gateway) => {
|
|
31
|
+
const kindFlag = consumeFlag(argv, "--kind");
|
|
32
|
+
const kind = (kindFlag.value ?? "protocol").trim().toLowerCase();
|
|
32
33
|
const receiptId = argv[0];
|
|
33
34
|
if (!receiptId) {
|
|
34
35
|
throw new CliError(`receipts ${subcommand} requires <receipt_id>`, { category: "usage", code: "cli.usage.missing_receipt_id" });
|
|
35
36
|
}
|
|
37
|
+
if (kind === "agent") {
|
|
38
|
+
if (subcommand === "get") {
|
|
39
|
+
const body = await gateway.getJson(`/protocol/v2/agent-receipts/${encodeURIComponent(receiptId)}`);
|
|
40
|
+
return { data: body };
|
|
41
|
+
}
|
|
42
|
+
if (subcommand === "verify") {
|
|
43
|
+
const fetched = await gateway.getJson(`/protocol/v2/agent-receipts/${encodeURIComponent(receiptId)}`);
|
|
44
|
+
const body = await gateway.postJson("/protocol/v2/agent-receipts/verify", fetched);
|
|
45
|
+
return { data: body };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
36
48
|
if (subcommand === "get") {
|
|
37
49
|
const body = await gateway.getJson(`/protocol/v2/receipts/${encodeURIComponent(receiptId)}`);
|
|
38
50
|
return { data: body };
|
|
@@ -54,7 +66,7 @@ export async function handleMandates(ctx, subcommand, argv) {
|
|
|
54
66
|
return { data: body };
|
|
55
67
|
}
|
|
56
68
|
if (subcommand === "import") {
|
|
57
|
-
const body = await gateway.postJson("/protocol/v2/mandates
|
|
69
|
+
const body = await gateway.postJson("/protocol/v2/mandates", payload);
|
|
58
70
|
return { data: body };
|
|
59
71
|
}
|
|
60
72
|
throw new CliError(`unknown mandates subcommand: ${subcommand}`, { category: "usage", code: "cli.usage.unknown_command" });
|
|
@@ -107,34 +119,27 @@ export async function handleAuditExports(ctx, subcommand, argv) {
|
|
|
107
119
|
}
|
|
108
120
|
}
|
|
109
121
|
return withGateway(ctx, async (gateway) => {
|
|
122
|
+
const exportsClient = PaybondAuditExports.fromGateway(gateway);
|
|
110
123
|
if (subcommand === "list") {
|
|
111
124
|
const limitFlag = consumeFlag(argv, "--limit");
|
|
112
125
|
const cursorFlag = consumeFlag(argv, "--cursor");
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
? body.exports
|
|
121
|
-
: [];
|
|
122
|
-
const nextCursor = extractNextCursor(body);
|
|
123
|
-
const warnings = partialResultsWarning(nextCursor) ? [partialResultsWarning(nextCursor)] : undefined;
|
|
126
|
+
const page = await exportsClient.list({
|
|
127
|
+
limit: limitFlag.value ? Number.parseInt(limitFlag.value, 10) : undefined,
|
|
128
|
+
cursor: cursorFlag.value,
|
|
129
|
+
});
|
|
130
|
+
const warnings = partialResultsWarning(page.next_cursor)
|
|
131
|
+
? [partialResultsWarning(page.next_cursor)]
|
|
132
|
+
: undefined;
|
|
124
133
|
const data = {
|
|
125
|
-
exports:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
expires_at: row.expires_at ? String(row.expires_at) : null,
|
|
132
|
-
scope: row.scope ? String(row.scope) : undefined,
|
|
133
|
-
};
|
|
134
|
-
}),
|
|
134
|
+
exports: page.jobs.map((item) => ({
|
|
135
|
+
job_id: item.id,
|
|
136
|
+
status: item.status,
|
|
137
|
+
created_at: item.created_at,
|
|
138
|
+
expires_at: item.expires_at,
|
|
139
|
+
})),
|
|
135
140
|
};
|
|
136
|
-
if (
|
|
137
|
-
data.next_cursor =
|
|
141
|
+
if (page.next_cursor) {
|
|
142
|
+
data.next_cursor = page.next_cursor;
|
|
138
143
|
}
|
|
139
144
|
return { data, warnings };
|
|
140
145
|
}
|
|
@@ -145,11 +150,9 @@ export async function handleAuditExports(ctx, subcommand, argv) {
|
|
|
145
150
|
if (subcommand === "get") {
|
|
146
151
|
const issueDownload = consumeBooleanFlag(argv.slice(1), "--issue-download").present;
|
|
147
152
|
const outputFlag = consumeFlag(argv.slice(1), "--output");
|
|
148
|
-
const
|
|
149
|
-
const body = await gateway.getJson(`/v1/compliance/audit-exports/${encodeURIComponent(jobId)}${query}`);
|
|
153
|
+
const body = await exportsClient.get(jobId, { issueDownload });
|
|
150
154
|
if (outputFlag.value) {
|
|
151
|
-
const
|
|
152
|
-
const token = String(job.download_token ?? "");
|
|
155
|
+
const token = String(body.job.download_token ?? "");
|
|
153
156
|
if (!token) {
|
|
154
157
|
throw new CliError("audit exports get --output requires a ready export with --issue-download", {
|
|
155
158
|
category: "validation",
|
|
@@ -185,8 +188,8 @@ export async function handleAuditExports(ctx, subcommand, argv) {
|
|
|
185
188
|
}
|
|
186
189
|
if (subcommand === "delete") {
|
|
187
190
|
requireConfirmation(ctx.globals, "delete audit export job");
|
|
188
|
-
await
|
|
189
|
-
return { data
|
|
191
|
+
const data = await exportsClient.delete(jobId);
|
|
192
|
+
return { data };
|
|
190
193
|
}
|
|
191
194
|
throw new CliError(`unknown audit exports subcommand: ${subcommand}`, { category: "usage", code: "cli.usage.unknown_command" });
|
|
192
195
|
});
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { resolveJsonBody } from "../body.js";
|
|
2
2
|
import { buildListQueryParams, extractNextCursor, partialResultsWarning, } from "../automation.js";
|
|
3
|
+
import { signHarborCreateRecognitionProof, signHarborEvidenceSubmitRecognitionProof, signHarborFundRecognitionProof, signHarborSettlementConfirmRecognitionProof, } from "../../agent-recognition.js";
|
|
4
|
+
import { DEPRECATED_INTENTS_FUND_BODY_WARNING, fundBodyShimUsed, parseHarborMutationFlags, resolveFundPaymentSignatureFromBody, resolveHarborRecognition, } from "../intents-harbor-mutation.js";
|
|
3
5
|
import { commandPath, requireConfirmation, withGateway } from "../context.js";
|
|
6
|
+
import { withPaybondCli } from "../paybond.js";
|
|
4
7
|
import { consumeFlag, parseOptionalNonNegativeInt, parseRequiredNonNegativeInt } from "../globals.js";
|
|
5
8
|
import { maskApiKey, redactSensitiveFields } from "../redact.js";
|
|
6
9
|
import { CliError } from "../types.js";
|
|
@@ -85,6 +88,9 @@ export async function handleKeys(ctx, subcommand, argv) {
|
|
|
85
88
|
});
|
|
86
89
|
}
|
|
87
90
|
export async function handleIntents(ctx, subcommand, argv) {
|
|
91
|
+
if (subcommand === "create") {
|
|
92
|
+
return handleIntentsCreate(ctx, argv);
|
|
93
|
+
}
|
|
88
94
|
return withGateway(ctx, async (gateway) => {
|
|
89
95
|
if (subcommand === "list") {
|
|
90
96
|
const statusFlag = consumeFlag(argv, "--status");
|
|
@@ -111,36 +117,128 @@ export async function handleIntents(ctx, subcommand, argv) {
|
|
|
111
117
|
const body = await gateway.getJson(`/harbor/operator/v1/intents/${encodeURIComponent(intentId)}`);
|
|
112
118
|
return { data: redactSensitiveFields(body) };
|
|
113
119
|
}
|
|
114
|
-
if (subcommand === "create") {
|
|
115
|
-
const { payload } = await resolveJsonBody(argv, {
|
|
116
|
-
missingMessage: "intents create requires --body <json-file> or --stdin",
|
|
117
|
-
});
|
|
118
|
-
const body = await gateway.postJson("/harbor/intents", payload);
|
|
119
|
-
return { data: redactSensitiveFields(body) };
|
|
120
|
-
}
|
|
121
120
|
if (!intentId) {
|
|
122
121
|
throw new CliError(`intents ${subcommand} requires <intent_id>`, { category: "usage", code: "cli.usage.missing_intent_id" });
|
|
123
122
|
}
|
|
124
123
|
if (subcommand === "fund") {
|
|
125
|
-
|
|
126
|
-
const body = await gateway.postJson(`/harbor/intents/${encodeURIComponent(intentId)}/fund`, payload);
|
|
127
|
-
return { data: redactSensitiveFields(body) };
|
|
124
|
+
return handleIntentsFund(ctx, intentId, argv.slice(1));
|
|
128
125
|
}
|
|
129
126
|
if (subcommand === "evidence") {
|
|
130
|
-
|
|
131
|
-
missingMessage: "intents evidence requires --body <json-file> or --stdin",
|
|
132
|
-
});
|
|
133
|
-
const body = await gateway.postJson(`/harbor/intents/${encodeURIComponent(intentId)}/evidence`, payload);
|
|
134
|
-
return { data: redactSensitiveFields(body) };
|
|
127
|
+
return handleIntentsEvidence(ctx, intentId, argv.slice(1));
|
|
135
128
|
}
|
|
136
129
|
if (subcommand === "settlement-confirm") {
|
|
137
|
-
|
|
138
|
-
const body = await gateway.postJson(`/harbor/intents/${encodeURIComponent(intentId)}/settlement/confirm`, payload);
|
|
139
|
-
return { data: redactSensitiveFields(body) };
|
|
130
|
+
return handleIntentsSettlementConfirm(ctx, intentId, argv);
|
|
140
131
|
}
|
|
141
132
|
throw new CliError(`unknown intents subcommand: ${subcommand}`, { category: "usage", code: "cli.usage.unknown_command" });
|
|
142
133
|
});
|
|
143
134
|
}
|
|
135
|
+
async function handleIntentsCreate(ctx, argv) {
|
|
136
|
+
const flags = parseHarborMutationFlags(argv);
|
|
137
|
+
const { payload } = await resolveJsonBody(flags.restArgv, {
|
|
138
|
+
missingMessage: "intents create requires --body <json-file> or --stdin",
|
|
139
|
+
});
|
|
140
|
+
const body = payload ?? {};
|
|
141
|
+
return withPaybondCli(ctx, async (session) => {
|
|
142
|
+
const recognition = await resolveHarborRecognition(ctx, flags);
|
|
143
|
+
const recognitionProof = signHarborCreateRecognitionProof({
|
|
144
|
+
tenantId: session.paybond.harbor.tenantId,
|
|
145
|
+
intentBody: body,
|
|
146
|
+
keyId: recognition.agentRecognitionKeyId,
|
|
147
|
+
signingSeed: recognition.agentRecognitionSigningSeed,
|
|
148
|
+
});
|
|
149
|
+
const result = await session.paybond.harbor.createIntent(body, {
|
|
150
|
+
recognitionProof,
|
|
151
|
+
idempotencyKey: flags.idempotencyKey?.trim(),
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
data: redactSensitiveFields(result),
|
|
155
|
+
warnings: session.warnings.length ? session.warnings : undefined,
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async function handleIntentsEvidence(ctx, intentId, argv) {
|
|
160
|
+
const flags = parseHarborMutationFlags(argv);
|
|
161
|
+
const { payload } = await resolveJsonBody(flags.restArgv, {
|
|
162
|
+
missingMessage: "intents evidence requires --body <json-file> or --stdin",
|
|
163
|
+
});
|
|
164
|
+
const body = payload ?? {};
|
|
165
|
+
return withPaybondCli(ctx, async (session) => {
|
|
166
|
+
const recognition = await resolveHarborRecognition(ctx, flags);
|
|
167
|
+
const recognitionProof = signHarborEvidenceSubmitRecognitionProof({
|
|
168
|
+
tenantId: session.paybond.harbor.tenantId,
|
|
169
|
+
intentId,
|
|
170
|
+
evidenceBody: body,
|
|
171
|
+
keyId: recognition.agentRecognitionKeyId,
|
|
172
|
+
signingSeed: recognition.agentRecognitionSigningSeed,
|
|
173
|
+
});
|
|
174
|
+
const result = await session.paybond.harbor.submitEvidence(intentId, body, {
|
|
175
|
+
recognitionProof,
|
|
176
|
+
idempotencyKey: flags.idempotencyKey?.trim(),
|
|
177
|
+
});
|
|
178
|
+
return {
|
|
179
|
+
data: redactSensitiveFields(result),
|
|
180
|
+
warnings: session.warnings.length ? session.warnings : undefined,
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async function handleIntentsFund(ctx, intentId, argv) {
|
|
185
|
+
const flags = parseHarborMutationFlags(argv);
|
|
186
|
+
const paymentSignatureFlag = consumeFlag(flags.restArgv, "--payment-signature");
|
|
187
|
+
let paymentSignature = paymentSignatureFlag.value?.trim() || undefined;
|
|
188
|
+
const deprecationWarnings = [];
|
|
189
|
+
const bodyShimUsed = fundBodyShimUsed(paymentSignatureFlag.rest);
|
|
190
|
+
const { payload } = await resolveJsonBody(paymentSignatureFlag.rest, { required: false });
|
|
191
|
+
if (bodyShimUsed) {
|
|
192
|
+
deprecationWarnings.push(DEPRECATED_INTENTS_FUND_BODY_WARNING);
|
|
193
|
+
if (!paymentSignature) {
|
|
194
|
+
paymentSignature = resolveFundPaymentSignatureFromBody(payload);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return withPaybondCli(ctx, async (session) => {
|
|
198
|
+
const recognition = await resolveHarborRecognition(ctx, flags);
|
|
199
|
+
const recognitionProof = signHarborFundRecognitionProof({
|
|
200
|
+
tenantId: session.paybond.harbor.tenantId,
|
|
201
|
+
intentId,
|
|
202
|
+
keyId: recognition.agentRecognitionKeyId,
|
|
203
|
+
signingSeed: recognition.agentRecognitionSigningSeed,
|
|
204
|
+
});
|
|
205
|
+
const result = await session.paybond.harbor.fundIntent(intentId, {
|
|
206
|
+
recognitionProof,
|
|
207
|
+
paymentSignature,
|
|
208
|
+
idempotencyKey: flags.idempotencyKey?.trim(),
|
|
209
|
+
});
|
|
210
|
+
const warnings = [...session.warnings, ...deprecationWarnings];
|
|
211
|
+
return {
|
|
212
|
+
data: redactSensitiveFields(result),
|
|
213
|
+
warnings: warnings.length ? warnings : undefined,
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
async function handleIntentsSettlementConfirm(ctx, intentId, argv) {
|
|
218
|
+
const flags = parseHarborMutationFlags(argv);
|
|
219
|
+
const { payload } = await resolveJsonBody(flags.restArgv, { required: false });
|
|
220
|
+
return withPaybondCli(ctx, async (session) => {
|
|
221
|
+
const recognition = await resolveHarborRecognition(ctx, flags);
|
|
222
|
+
const body = payload ?? {};
|
|
223
|
+
const recognitionProof = signHarborSettlementConfirmRecognitionProof({
|
|
224
|
+
tenantId: session.paybond.harbor.tenantId,
|
|
225
|
+
intentId,
|
|
226
|
+
body,
|
|
227
|
+
keyId: recognition.agentRecognitionKeyId,
|
|
228
|
+
signingSeed: recognition.agentRecognitionSigningSeed,
|
|
229
|
+
});
|
|
230
|
+
const result = await session.paybond.intents.confirmSettlement({
|
|
231
|
+
intentId,
|
|
232
|
+
body,
|
|
233
|
+
recognitionProof,
|
|
234
|
+
idempotencyKey: flags.idempotencyKey?.trim(),
|
|
235
|
+
});
|
|
236
|
+
return {
|
|
237
|
+
data: redactSensitiveFields(result),
|
|
238
|
+
warnings: session.warnings.length ? session.warnings : undefined,
|
|
239
|
+
};
|
|
240
|
+
});
|
|
241
|
+
}
|
|
144
242
|
export async function handleGuardrails(ctx, subcommand, argv) {
|
|
145
243
|
return withGateway(ctx, async (gateway) => {
|
|
146
244
|
if (subcommand === "bootstrap") {
|
package/dist/cli/help.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const ROOT_HELP = "Usage: paybond [--global-flags] <command> [<subcommand> ...] [args]\n\nGlobal flags:\n --gateway <url> Gateway base URL (default: https://api.paybond.ai)\n --env-file <path> Local secrets file (default: .env.local)\n --format table|json Human table or JSON envelope output (default: table)\n --json <fields> Field-selectable JSON for list/read commands (plain JSON; use --format json for envelope)\n --jq <expr> jq-style filter for list/read command output\n --profile <name> Named credential profile from the Paybond CLI config file\n --request-id <id> Correlation ID for Gateway calls and JSON output\n --yes Skip confirmation for destructive operations\n --no-open Do not open a browser for device login\n --color auto|always|never Colorize human table output and help text (default: auto)\n --no-color Disable color output (also honors NO_COLOR)\n\nCommands:\n onboarding Guided, non-destructive first-run checks\n help Detailed help for a command\n examples Copy-paste examples from the command spec\n completion bash|zsh|fish Shell completion scripts\n login Sandbox device login\n init Interactive first-run scaffold (solution, spend cap, framework, owned policy files)\n init guardrail|completion|agent-middleware\n Scaffold sandbox guardrail, completion evidence, or agent middleware integration files\n mcp serve|install|verify-config|tools MCP server and host configuration\n doctor Validate local runtime, credentials, and optional agent setup\n dev smoke|trace|loop|up\n Local sandbox developer loop: travel smoke, trace dashboard, WireMock up, and guided setup\n version Print package version (use --verbose for runtime details)\n diagnose Emit a redacted support bundle with --redacted\n config get|set|unset|list\n Manage CLI configuration values\n whoami Resolve the authenticated principal and tenant realm\n keys list|create|rotate|revoke\n Manage tenant service-account API keys\n intents list|get|create|fund|evidence|settlement-confirm\n Harbor intent workflows\n guardrails bootstrap|evidence\n Sandbox guardrail helpers\n spend authorize Authorize delegated spend for a tool call\n signal reputation|portfolio|fraud\n Signal summaries and fraud reads\n receipts get|verify\n Protocol settlement receipts\n mandates verify|import\n Agent mandate verification and import\n a2a card|contracts\n Agent card discovery and task contracts\n policy init|init-org|extend|presets list|presets show|validate-tools|templates|preview|import-mcp-receipt|import-x402-receipt|validate-evidence\n Scaffold and validate paybond.policy.yaml (including enterprise org inheritance), browse policy presets and solutions, list completion presets, preview Harbor templates, and import receipts\n agent run bind|status|trace|reload-policy|tool execute|validate|registry validate|sandbox smoke\n Agent middleware: bind runs, reload policy, execute tools, validate registry, sandbox smoke\n audit exports list|get|verify|delete\n Compliance audit export jobs and local bundle verification\n\nGetting started:\n Sandbox setup\n Authenticate, validate the runtime, and confirm tenant context.\n $ paybond login\n $ paybond doctor --format json\n Next: paybond whoami\n Agent + MCP host\n Preview MCP host config and list tools exposed to agents.\n $ paybond mcp install --host claude --scope local\n $ paybond mcp verify-config --host claude\n $ paybond mcp tools\n Next: paybond doctor --agent\n Paid-tool guardrail\n Scaffold a sandbox guardrail integration file for your agent runtime.\n $ paybond init guardrail\n $ paybond guardrails bootstrap --operation paid-tool --requested-spend-cents 100\n Next: paybond spend authorize --help\n Policy-driven agent sandbox\n Validate and smoke-test agent middleware from a versioned paybond.policy.yaml file.\n $ paybond policy init --out paybond.policy.yaml\n $ paybond policy validate-tools --file paybond.policy.yaml\n $ paybond agent sandbox smoke --policy-file paybond.policy.yaml --result-body '{\"status\":\"completed\",\"cost_cents\":18700}' --format json\n Next: paybond policy validate-tools --help\n Agent middleware sandbox\n Bind a sandbox run and execute a guarded tool with auto-evidence.\n $ paybond agent sandbox smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --result-body '{\"status\":\"ok\",\"cost_cents\":100}' --format json\n Next: paybond agent run bind --help\n Completion preset\n Scaffold catalog-aligned completion evidence for Harbor release predicates.\n $ paybond init completion --preset api_response_ok\n $ paybond policy templates\n $ paybond policy preview --preset api_response_ok --evidence-file evidence.json\n Next: paybond policy preview --help\n\nDocumentation: https://docs.paybond.ai/kit\n\nLearn more:\n paybond help <command> Detailed help for a command\n paybond examples Copy-paste command examples\n paybond onboarding Guided first-run checks\n paybond completion <shell> Shell completions (bash|zsh|fish)\n\nLegacy aliases: paybond-kit-login, paybond-init, paybond-kit-init, paybond-mcp-server\n";
|
|
1
|
+
export declare const ROOT_HELP = "Usage: paybond [--global-flags] <command> [<subcommand> ...] [args]\n\nGlobal flags:\n --gateway <url> Gateway base URL (default: https://api.paybond.ai)\n --env-file <path> Local secrets file (default: .env.local)\n --format table|json Human table or JSON envelope output (default: table)\n --json <fields> Field-selectable JSON for list/read commands (plain JSON; use --format json for envelope)\n --jq <expr> jq-style filter for list/read command output\n --profile <name> Named credential profile from the Paybond CLI config file\n --request-id <id> Correlation ID for Gateway calls and JSON output\n --yes Skip confirmation for destructive operations\n --no-open Do not open a browser for device login\n --color auto|always|never Colorize human table output and help text (default: auto)\n --no-color Disable color output (also honors NO_COLOR)\n\nCommands:\n onboarding Guided, non-destructive first-run checks\n help Detailed help for a command\n examples Copy-paste examples from the command spec\n completion bash|zsh|fish Shell completion scripts\n login Sandbox device login\n init Interactive first-run scaffold (solution, spend cap, framework, owned policy files)\n init guardrail|completion|agent-middleware\n Scaffold sandbox guardrail, completion evidence, or agent middleware integration files\n mcp serve|install|verify-config|tools MCP server and host configuration\n doctor Validate local runtime, credentials, and optional agent setup\n dev smoke|trace|loop|up\n Local sandbox developer loop: travel smoke, trace dashboard, WireMock up, and guided setup\n version Print package version (use --verbose for runtime details)\n diagnose Emit a redacted support bundle with --redacted\n config get|set|unset|list\n Manage CLI configuration values\n whoami Resolve the authenticated principal and tenant realm\n keys list|create|rotate|revoke\n Manage tenant service-account API keys\n intents list|get|create|fund|evidence|settlement-confirm\n Harbor intent workflows\n guardrails bootstrap|evidence\n Sandbox guardrail helpers\n spend authorize Authorize delegated spend for a tool call\n signal reputation|portfolio|fraud\n Signal summaries and fraud reads\n receipts get|verify\n Protocol settlement and agent action receipts (--kind agent)\n mandates verify|import\n Agent mandate verification and import\n a2a card|contracts\n Agent card discovery and task contracts\n policy init|init-org|extend|presets list|presets show|validate-tools|templates|preview|import-mcp-receipt|import-x402-receipt|validate-evidence\n Scaffold and validate paybond.policy.yaml (including enterprise org inheritance), browse policy presets and solutions, list completion presets, preview Harbor templates, and import receipts\n agent run bind|status|trace|reload-policy|tool execute|validate|registry validate|sandbox smoke\n Agent middleware: bind runs, reload policy, execute tools, validate registry, sandbox smoke\n audit exports list|get|verify|delete\n Compliance audit export jobs and local bundle verification\n\nGetting started:\n Sandbox setup\n Authenticate, validate the runtime, and confirm tenant context.\n $ paybond login\n $ paybond doctor --format json\n Next: paybond whoami\n Agent + MCP host\n Preview MCP host config and list tools exposed to agents.\n $ paybond mcp install --host claude --scope local\n $ paybond mcp verify-config --host claude\n $ paybond mcp tools\n Next: paybond doctor --agent\n Paid-tool guardrail\n Scaffold a sandbox guardrail integration file for your agent runtime.\n $ paybond init guardrail\n $ paybond guardrails bootstrap --operation paid-tool --requested-spend-cents 100\n Next: paybond spend authorize --help\n Policy-driven agent sandbox\n Validate and smoke-test agent middleware from a versioned paybond.policy.yaml file.\n $ paybond policy init --out paybond.policy.yaml\n $ paybond policy validate-tools --file paybond.policy.yaml\n $ paybond agent sandbox smoke --policy-file paybond.policy.yaml --result-body '{\"status\":\"completed\",\"cost_cents\":18700}' --format json\n Next: paybond policy validate-tools --help\n Agent middleware sandbox\n Bind a sandbox run and execute a guarded tool with auto-evidence.\n $ paybond agent sandbox smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --result-body '{\"status\":\"ok\",\"cost_cents\":100}' --format json\n Next: paybond agent run bind --help\n Completion preset\n Scaffold catalog-aligned completion evidence for Harbor release predicates.\n $ paybond init completion --preset api_response_ok\n $ paybond policy templates\n $ paybond policy preview --preset api_response_ok --evidence-file evidence.json\n Next: paybond policy preview --help\n\nDocumentation: https://docs.paybond.ai/kit\n\nLearn more:\n paybond help <command> Detailed help for a command\n paybond examples Copy-paste command examples\n paybond onboarding Guided first-run checks\n paybond completion <shell> Shell completions (bash|zsh|fish)\n\nLegacy aliases: paybond-kit-login, paybond-init, paybond-kit-init, paybond-mcp-server\n";
|
|
2
2
|
export declare const COMMAND_HELP: Record<string, string>;
|
|
3
3
|
export declare function helpForCommand(path: string): string;
|
package/dist/cli/help.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Generated by kit/cli-parity/generate.mjs — do not edit by hand.
|
|
2
|
-
export const ROOT_HELP = "Usage: paybond [--global-flags] <command> [<subcommand> ...] [args]\n\nGlobal flags:\n --gateway <url> Gateway base URL (default: https://api.paybond.ai)\n --env-file <path> Local secrets file (default: .env.local)\n --format table|json Human table or JSON envelope output (default: table)\n --json <fields> Field-selectable JSON for list/read commands (plain JSON; use --format json for envelope)\n --jq <expr> jq-style filter for list/read command output\n --profile <name> Named credential profile from the Paybond CLI config file\n --request-id <id> Correlation ID for Gateway calls and JSON output\n --yes Skip confirmation for destructive operations\n --no-open Do not open a browser for device login\n --color auto|always|never Colorize human table output and help text (default: auto)\n --no-color Disable color output (also honors NO_COLOR)\n\nCommands:\n onboarding Guided, non-destructive first-run checks\n help Detailed help for a command\n examples Copy-paste examples from the command spec\n completion bash|zsh|fish Shell completion scripts\n login Sandbox device login\n init Interactive first-run scaffold (solution, spend cap, framework, owned policy files)\n init guardrail|completion|agent-middleware\n Scaffold sandbox guardrail, completion evidence, or agent middleware integration files\n mcp serve|install|verify-config|tools MCP server and host configuration\n doctor Validate local runtime, credentials, and optional agent setup\n dev smoke|trace|loop|up\n Local sandbox developer loop: travel smoke, trace dashboard, WireMock up, and guided setup\n version Print package version (use --verbose for runtime details)\n diagnose Emit a redacted support bundle with --redacted\n config get|set|unset|list\n Manage CLI configuration values\n whoami Resolve the authenticated principal and tenant realm\n keys list|create|rotate|revoke\n Manage tenant service-account API keys\n intents list|get|create|fund|evidence|settlement-confirm\n Harbor intent workflows\n guardrails bootstrap|evidence\n Sandbox guardrail helpers\n spend authorize Authorize delegated spend for a tool call\n signal reputation|portfolio|fraud\n Signal summaries and fraud reads\n receipts get|verify\n Protocol settlement receipts\n mandates verify|import\n Agent mandate verification and import\n a2a card|contracts\n Agent card discovery and task contracts\n policy init|init-org|extend|presets list|presets show|validate-tools|templates|preview|import-mcp-receipt|import-x402-receipt|validate-evidence\n Scaffold and validate paybond.policy.yaml (including enterprise org inheritance), browse policy presets and solutions, list completion presets, preview Harbor templates, and import receipts\n agent run bind|status|trace|reload-policy|tool execute|validate|registry validate|sandbox smoke\n Agent middleware: bind runs, reload policy, execute tools, validate registry, sandbox smoke\n audit exports list|get|verify|delete\n Compliance audit export jobs and local bundle verification\n\nGetting started:\n Sandbox setup\n Authenticate, validate the runtime, and confirm tenant context.\n $ paybond login\n $ paybond doctor --format json\n Next: paybond whoami\n Agent + MCP host\n Preview MCP host config and list tools exposed to agents.\n $ paybond mcp install --host claude --scope local\n $ paybond mcp verify-config --host claude\n $ paybond mcp tools\n Next: paybond doctor --agent\n Paid-tool guardrail\n Scaffold a sandbox guardrail integration file for your agent runtime.\n $ paybond init guardrail\n $ paybond guardrails bootstrap --operation paid-tool --requested-spend-cents 100\n Next: paybond spend authorize --help\n Policy-driven agent sandbox\n Validate and smoke-test agent middleware from a versioned paybond.policy.yaml file.\n $ paybond policy init --out paybond.policy.yaml\n $ paybond policy validate-tools --file paybond.policy.yaml\n $ paybond agent sandbox smoke --policy-file paybond.policy.yaml --result-body '{\"status\":\"completed\",\"cost_cents\":18700}' --format json\n Next: paybond policy validate-tools --help\n Agent middleware sandbox\n Bind a sandbox run and execute a guarded tool with auto-evidence.\n $ paybond agent sandbox smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --result-body '{\"status\":\"ok\",\"cost_cents\":100}' --format json\n Next: paybond agent run bind --help\n Completion preset\n Scaffold catalog-aligned completion evidence for Harbor release predicates.\n $ paybond init completion --preset api_response_ok\n $ paybond policy templates\n $ paybond policy preview --preset api_response_ok --evidence-file evidence.json\n Next: paybond policy preview --help\n\nDocumentation: https://docs.paybond.ai/kit\n\nLearn more:\n paybond help <command> Detailed help for a command\n paybond examples Copy-paste command examples\n paybond onboarding Guided first-run checks\n paybond completion <shell> Shell completions (bash|zsh|fish)\n\nLegacy aliases: paybond-kit-login, paybond-init, paybond-kit-init, paybond-mcp-server\n";
|
|
2
|
+
export const ROOT_HELP = "Usage: paybond [--global-flags] <command> [<subcommand> ...] [args]\n\nGlobal flags:\n --gateway <url> Gateway base URL (default: https://api.paybond.ai)\n --env-file <path> Local secrets file (default: .env.local)\n --format table|json Human table or JSON envelope output (default: table)\n --json <fields> Field-selectable JSON for list/read commands (plain JSON; use --format json for envelope)\n --jq <expr> jq-style filter for list/read command output\n --profile <name> Named credential profile from the Paybond CLI config file\n --request-id <id> Correlation ID for Gateway calls and JSON output\n --yes Skip confirmation for destructive operations\n --no-open Do not open a browser for device login\n --color auto|always|never Colorize human table output and help text (default: auto)\n --no-color Disable color output (also honors NO_COLOR)\n\nCommands:\n onboarding Guided, non-destructive first-run checks\n help Detailed help for a command\n examples Copy-paste examples from the command spec\n completion bash|zsh|fish Shell completion scripts\n login Sandbox device login\n init Interactive first-run scaffold (solution, spend cap, framework, owned policy files)\n init guardrail|completion|agent-middleware\n Scaffold sandbox guardrail, completion evidence, or agent middleware integration files\n mcp serve|install|verify-config|tools MCP server and host configuration\n doctor Validate local runtime, credentials, and optional agent setup\n dev smoke|trace|loop|up\n Local sandbox developer loop: travel smoke, trace dashboard, WireMock up, and guided setup\n version Print package version (use --verbose for runtime details)\n diagnose Emit a redacted support bundle with --redacted\n config get|set|unset|list\n Manage CLI configuration values\n whoami Resolve the authenticated principal and tenant realm\n keys list|create|rotate|revoke\n Manage tenant service-account API keys\n intents list|get|create|fund|evidence|settlement-confirm\n Harbor intent workflows\n guardrails bootstrap|evidence\n Sandbox guardrail helpers\n spend authorize Authorize delegated spend for a tool call\n signal reputation|portfolio|fraud\n Signal summaries and fraud reads\n receipts get|verify\n Protocol settlement and agent action receipts (--kind agent)\n mandates verify|import\n Agent mandate verification and import\n a2a card|contracts\n Agent card discovery and task contracts\n policy init|init-org|extend|presets list|presets show|validate-tools|templates|preview|import-mcp-receipt|import-x402-receipt|validate-evidence\n Scaffold and validate paybond.policy.yaml (including enterprise org inheritance), browse policy presets and solutions, list completion presets, preview Harbor templates, and import receipts\n agent run bind|status|trace|reload-policy|tool execute|validate|registry validate|sandbox smoke\n Agent middleware: bind runs, reload policy, execute tools, validate registry, sandbox smoke\n audit exports list|get|verify|delete\n Compliance audit export jobs and local bundle verification\n\nGetting started:\n Sandbox setup\n Authenticate, validate the runtime, and confirm tenant context.\n $ paybond login\n $ paybond doctor --format json\n Next: paybond whoami\n Agent + MCP host\n Preview MCP host config and list tools exposed to agents.\n $ paybond mcp install --host claude --scope local\n $ paybond mcp verify-config --host claude\n $ paybond mcp tools\n Next: paybond doctor --agent\n Paid-tool guardrail\n Scaffold a sandbox guardrail integration file for your agent runtime.\n $ paybond init guardrail\n $ paybond guardrails bootstrap --operation paid-tool --requested-spend-cents 100\n Next: paybond spend authorize --help\n Policy-driven agent sandbox\n Validate and smoke-test agent middleware from a versioned paybond.policy.yaml file.\n $ paybond policy init --out paybond.policy.yaml\n $ paybond policy validate-tools --file paybond.policy.yaml\n $ paybond agent sandbox smoke --policy-file paybond.policy.yaml --result-body '{\"status\":\"completed\",\"cost_cents\":18700}' --format json\n Next: paybond policy validate-tools --help\n Agent middleware sandbox\n Bind a sandbox run and execute a guarded tool with auto-evidence.\n $ paybond agent sandbox smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --result-body '{\"status\":\"ok\",\"cost_cents\":100}' --format json\n Next: paybond agent run bind --help\n Completion preset\n Scaffold catalog-aligned completion evidence for Harbor release predicates.\n $ paybond init completion --preset api_response_ok\n $ paybond policy templates\n $ paybond policy preview --preset api_response_ok --evidence-file evidence.json\n Next: paybond policy preview --help\n\nDocumentation: https://docs.paybond.ai/kit\n\nLearn more:\n paybond help <command> Detailed help for a command\n paybond examples Copy-paste command examples\n paybond onboarding Guided first-run checks\n paybond completion <shell> Shell completions (bash|zsh|fish)\n\nLegacy aliases: paybond-kit-login, paybond-init, paybond-kit-init, paybond-mcp-server\n";
|
|
3
3
|
export const COMMAND_HELP = {
|
|
4
4
|
"onboarding": "Usage: paybond onboarding [--host claude|codex|openai|generic]\n\nRuns a guided, non-destructive first-run workflow: runtime check, login status, guardrail file status, MCP config preview, and doctor.\n\nExamples:\n $ paybond onboarding\n $ paybond onboarding --host claude --format json\n\nDocs: https://docs.paybond.ai/kit/coding-agent-setup\n\nNext: paybond login",
|
|
5
5
|
"help": "Usage: paybond help [<command> [<subcommand> ...]]\n\nShows detailed help for a command path. Without arguments, prints root help.\n\nExamples:\n $ paybond help\n $ paybond help login\n $ paybond help mcp install",
|
|
@@ -43,23 +43,23 @@ export const COMMAND_HELP = {
|
|
|
43
43
|
"keys revoke": "Usage: paybond keys revoke <key_id> [--yes]\n\nExamples:\n $ paybond keys revoke key-123 --yes",
|
|
44
44
|
"intents list": "Usage: paybond intents list [--status <status>] [--limit <n>]\n\nExamples:\n $ paybond intents list --limit 10",
|
|
45
45
|
"intents get": "Usage: paybond intents get <intent_id>\n\nExamples:\n $ paybond intents get intent-123",
|
|
46
|
-
"intents create": "Usage: paybond intents create --body <json-file
|
|
47
|
-
"intents fund": "Usage: paybond intents fund <intent_id> [--body <json-file>]\n\nExamples:\n $ paybond intents fund intent-123",
|
|
48
|
-
"intents evidence": "Usage: paybond intents evidence <intent_id> --body <json-file
|
|
49
|
-
"intents settlement-confirm": "Usage: paybond intents settlement-confirm <intent_id> [--body <json-file>]\n\nExamples:\n $ paybond intents settlement-confirm intent-123",
|
|
46
|
+
"intents create": "Usage: paybond intents create --body <json-file> [--agent-recognition-key-id <id> --agent-recognition-signing-seed-hex <hex>] [--idempotency-key <key>]\n\nCreate a Harbor intent through paybond.harbor.createIntent with a replay-safe recognition proof (flags or APP_AGENT_RECOGNITION_* env).\n\nExamples:\n $ paybond intents create --body intent.json",
|
|
47
|
+
"intents fund": "Usage: paybond intents fund <intent_id> [--payment-signature <sig>] [--body <json-file>] [--agent-recognition-key-id <id> --agent-recognition-signing-seed-hex <hex>] [--idempotency-key <key>]\n\nFund a Harbor intent through paybond.harbor.fundIntent with a replay-safe recognition proof (flags or APP_AGENT_RECOGNITION_* env). Pass --payment-signature for x402 retries; --body is a deprecated shim that reads payment_signature from JSON.\n\nExamples:\n $ paybond intents fund intent-123",
|
|
48
|
+
"intents evidence": "Usage: paybond intents evidence <intent_id> --body <json-file> [--agent-recognition-key-id <id> --agent-recognition-signing-seed-hex <hex>] [--idempotency-key <key>]\n\nSubmit pre-signed Harbor evidence through paybond.harbor.submitEvidence with a replay-safe recognition proof (flags or APP_AGENT_RECOGNITION_* env).\n\nExamples:\n $ paybond intents evidence intent-123 --body evidence.json",
|
|
49
|
+
"intents settlement-confirm": "Usage: paybond intents settlement-confirm <intent_id> [--body <json-file>] [--agent-recognition-key-id <id> --agent-recognition-signing-seed-hex <hex>] [--idempotency-key <key>]\n\nConfirm Harbor settlement through paybond.intents.confirmSettlement with a replay-safe recognition proof (flags or APP_AGENT_RECOGNITION_* env).\n\nExamples:\n $ paybond intents settlement-confirm intent-123",
|
|
50
50
|
"guardrails bootstrap": "Usage: paybond guardrails bootstrap --operation <name> --requested-spend-cents <n>\n\nExamples:\n $ paybond guardrails bootstrap --operation paid-tool --requested-spend-cents 100",
|
|
51
51
|
"guardrails evidence": "Usage: paybond guardrails evidence --intent-id <id> --body <json-file>\n\nExamples:\n $ paybond guardrails evidence --intent-id intent-123 --body evidence.json",
|
|
52
52
|
"spend authorize": "Usage: paybond spend authorize --intent-id <id> --token <capability> --operation <name> [--requested-spend-cents <n>]\n\nExamples:\n $ paybond spend authorize --intent-id intent-123 --token cap --operation paid-tool",
|
|
53
53
|
"signal reputation": "Usage: paybond signal reputation --did <did>\n\nExamples:\n $ paybond signal reputation --did did:example:alice",
|
|
54
54
|
"signal portfolio": "Usage: paybond signal portfolio\n\nExamples:\n $ paybond signal portfolio",
|
|
55
55
|
"signal fraud": "Usage: paybond signal fraud --did <did>\n\nExamples:\n $ paybond signal fraud --did did:example:alice",
|
|
56
|
-
"receipts get": "Usage: paybond receipts get <receipt_id
|
|
57
|
-
"receipts verify": "Usage: paybond receipts verify <receipt_id
|
|
56
|
+
"receipts get": "Usage: paybond receipts get <receipt_id> [--kind protocol|agent]\n\nFetch a signed protocol settlement receipt (default) or agent action receipt (--kind agent).\n\nExamples:\n $ paybond receipts get receipt-123\n $ paybond receipts get sha256:abc... --kind agent --format json",
|
|
57
|
+
"receipts verify": "Usage: paybond receipts verify <receipt_id> [--kind protocol|agent]\n\nVerify a protocol settlement receipt (default) or agent action receipt (--kind agent) via Gateway offline verify.\n\nExamples:\n $ paybond receipts verify receipt-123\n $ paybond receipts verify sha256:abc... --kind agent --format json",
|
|
58
58
|
"mandates verify": "Usage: paybond mandates verify --body <json-file>\n\nExamples:\n $ paybond mandates verify --body mandate.json",
|
|
59
59
|
"mandates import": "Usage: paybond mandates import --body <json-file>\n\nExamples:\n $ paybond mandates import --body mandate.json",
|
|
60
60
|
"a2a card": "Usage: paybond a2a card\n\nExamples:\n $ paybond a2a card",
|
|
61
61
|
"a2a contracts": "Usage: paybond a2a contracts [--contract-id <id>]\n\nExamples:\n $ paybond a2a contracts",
|
|
62
|
-
"init agent-middleware": "Usage: paybond init agent-middleware [--framework <name>] [--out <path>] [--force]\n\nScaffolds an agent middleware integration file (PaybondAgentRun, tool registry, interceptor). Default framework is generic (agent-agnostic).\n\nExamples:\n $ paybond init agent-middleware\n $ paybond init agent-middleware --framework claude-agents --out paybond-claude-agents.ts\n $ paybond init agent-middleware --framework
|
|
62
|
+
"init agent-middleware": "Usage: paybond init agent-middleware [--framework <name>] [--out <path>] [--force]\n\nScaffolds an agent middleware integration file (PaybondAgentRun, tool registry, interceptor). Default framework is generic (agent-agnostic).\n\nTypeScript frameworks: generic|claude-agents|openai|langgraph|vercel-ai|mastra|cloudflare-agents|mcp\nPython frameworks: generic|claude-agents|crewai|openai|langgraph|vercel-ai|mcp\n\nExamples:\n $ paybond init agent-middleware\n $ paybond init agent-middleware --framework claude-agents --out paybond-claude-agents.ts\n $ paybond init agent-middleware --framework mastra --out paybond-mastra.ts\n $ paybond init agent-middleware --framework cloudflare-agents --out paybond-cloudflare-agents.ts\n $ paybond init agent-middleware --framework mcp --out paybond-mcp.ts\n $ paybond init agent-middleware --framework crewai --out paybond_crewai.py\n\nDocs: https://docs.paybond.ai/kit/agent-middleware\n\nNext: paybond agent sandbox smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --result-body '{\"status\":\"ok\",\"cost_cents\":100}'",
|
|
63
63
|
"agent run bind": "Usage: paybond agent run bind [--sandbox] [--production] [--policy-file <path>] [--watch] [--operation <name> --requested-spend-cents <n>] [--completion-preset <id>] [--registry-file <path>] [--run-id <id>] [--attach-intent-id <id> --capability-token <token> --payee-did <did> --payee-signing-seed-hex <hex> --agent-recognition-key-id <id> --agent-recognition-signing-seed-hex <hex>] [--write-env]\n\nBind a run-scoped middleware context via sandbox bootstrap or attach an existing funded intent. Production attach requires payee and agent-recognition signing credentials (flags or APP_PAYEE_DID, APP_PAYEE_SEED_HEX, APP_AGENT_RECOGNITION_KEY_ID, APP_AGENT_RECOGNITION_SEED_HEX). Persists context to .paybond/runs/<run_id>.json (mode 0600). Use --watch with --policy-file to record file-watcher reload config for long-lived processes.\n\nExamples:\n $ paybond agent run bind --policy-file paybond.policy.yaml --format json\n $ paybond agent run bind --sandbox --operation travel.book_hotel --requested-spend-cents 20000 --completion-preset cost_and_completion --registry-file ./paybond.agent.registry.yaml --format json\n\nDocs: https://docs.paybond.ai/kit/agent-policy\n\nNext: paybond agent tool execute --help",
|
|
64
64
|
"agent run status": "Usage: paybond agent run status --run-id <id>\n\nInspect a bound run (tenant, intent, allowed tools, policy digest, reload metadata).\n\nExamples:\n $ paybond agent run status --run-id run-123 --format json\n\nDocs: https://docs.paybond.ai/kit/agent-middleware",
|
|
65
65
|
"agent run trace": "Usage: paybond agent run trace --run-id <id>\n\nShow middleware trace events for a bound run (tool selection, spend authorization, evidence, settlement). Reads .paybond/runs/<run_id>.trace.json written during tool execute.\n\nExamples:\n $ paybond agent run trace --run-id run-123 --format json\n $ paybond agent run trace --run-id run-123 --format table\n\nDocs: https://docs.paybond.ai/kit/agent-middleware#trace-events-and-observability",
|
|
@@ -74,7 +74,11 @@ export const COMMAND_HELP = {
|
|
|
74
74
|
"agent demo langgraph smoke": "Usage: paybond agent demo langgraph smoke [--production] [--runtime typescript|python] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM LangGraph sandbox demo: ToolNode interceptor, authorize, execute, and auto-evidence.\n\nExamples:\n $ paybond agent demo langgraph smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/langgraph",
|
|
75
75
|
"agent demo generic smoke": "Usage: paybond agent demo generic smoke [--production] [--runtime typescript|python] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM agent-agnostic sandbox demo: createPaybondGenericAgentConfig, wrapped execute, and auto-evidence.\n\nExamples:\n $ paybond agent demo generic smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/agent-agnostic",
|
|
76
76
|
"agent demo claude-agents smoke": "Usage: paybond agent demo claude-agents smoke [--production] [--runtime typescript|python] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM Claude Agent SDK sandbox demo: in-process MCP tool handlers, authorize, execute, and auto-evidence.\n\nExamples:\n $ paybond agent demo claude-agents smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/claude-agents",
|
|
77
|
+
"agent demo crewai smoke": "Usage: paybond agent demo crewai smoke [--production] [--runtime python] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM CrewAI sandbox demo: guarded @tool execution, authorize, and auto-evidence (Python-only).\n\nExamples:\n $ paybond agent demo crewai smoke --operation procurement.submit_po --requested-spend-cents 12000 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/crewai",
|
|
77
78
|
"agent demo openai-agents smoke": "Usage: paybond agent demo openai-agents smoke [--production] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM OpenAI Agents SDK sandbox demo: input guardrail pre-check, guarded invoke, and auto-evidence.\n\nExamples:\n $ paybond agent demo openai-agents smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/openai-agents",
|
|
79
|
+
"agent demo mastra smoke": "Usage: paybond agent demo mastra smoke [--production] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM Mastra sandbox demo: guarded createTool execute, authorize, and auto-evidence (TypeScript-only).\n\nExamples:\n $ paybond agent demo mastra smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/mastra",
|
|
80
|
+
"agent demo cloudflare-agents smoke": "Usage: paybond agent demo cloudflare-agents smoke [--production] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nBundled no-LLM Cloudflare Agents sandbox demo: guarded AI SDK tool execute, authorize, and auto-evidence (TypeScript-only).\n\nExamples:\n $ paybond agent demo cloudflare-agents smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/cloudflare-agents",
|
|
81
|
+
"agent demo mcp smoke": "Usage: paybond agent demo mcp smoke [--production] --operation <name> --requested-spend-cents <n> --evidence-preset <id>\n\nNo-LLM MCP tool-surface sandbox demo: authorize + evidence via in-process MCP server (no stdio subprocess).\n\nExamples:\n $ paybond agent demo mcp smoke --operation paid-tool --requested-spend-cents 100 --evidence-preset cost_and_completion --format json\n\nDocs: https://docs.paybond.ai/kit/mcp-server",
|
|
78
82
|
"audit exports list": "Usage: paybond audit exports list\n\nExamples:\n $ paybond audit exports list --format json",
|
|
79
83
|
"audit exports get": "Usage: paybond audit exports get <job_id> [--issue-download]\n\nExamples:\n $ paybond audit exports get job-123",
|
|
80
84
|
"audit exports verify": "Usage: paybond audit exports verify <path>\n\nExamples:\n $ paybond audit exports verify ./bundle",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AgentRecognitionCredentials } from "./agent/production-evidence.js";
|
|
2
|
+
import type { CliContext } from "./context.js";
|
|
3
|
+
/** Parsed recognition and idempotency flags for Harbor intent mutation CLI commands. */
|
|
4
|
+
export type HarborMutationFlags = {
|
|
5
|
+
recognitionKeyId?: string;
|
|
6
|
+
recognitionSeedHex?: string;
|
|
7
|
+
idempotencyKey?: string;
|
|
8
|
+
restArgv: string[];
|
|
9
|
+
};
|
|
10
|
+
/** Extract shared Harbor mutation flags from argv, leaving body and positional args in restArgv. */
|
|
11
|
+
export declare function parseHarborMutationFlags(argv: string[]): HarborMutationFlags;
|
|
12
|
+
/** Resolve agent recognition credentials for Harbor intent mutations from flags and APP_* env fallbacks. */
|
|
13
|
+
export declare function resolveHarborRecognition(ctx: CliContext, flags: Pick<HarborMutationFlags, "recognitionKeyId" | "recognitionSeedHex">): Promise<AgentRecognitionCredentials>;
|
|
14
|
+
export declare const DEPRECATED_INTENTS_FUND_BODY_WARNING = "deprecated: intents fund --body; use --payment-signature";
|
|
15
|
+
/** Whether deprecated ``--body`` / ``--stdin`` shims were passed to ``intents fund``. */
|
|
16
|
+
export declare function fundBodyShimUsed(argv: string[]): boolean;
|
|
17
|
+
/** Read ``payment_signature`` from deprecated ``intents fund --body`` JSON when present. */
|
|
18
|
+
export declare function resolveFundPaymentSignatureFromBody(payload: Record<string, unknown>): string | undefined;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { resolveAgentRecognitionFromCli } from "./agent/production-evidence.js";
|
|
2
|
+
import { consumeFlag } from "./globals.js";
|
|
3
|
+
/** Extract shared Harbor mutation flags from argv, leaving body and positional args in restArgv. */
|
|
4
|
+
export function parseHarborMutationFlags(argv) {
|
|
5
|
+
const recognitionKeyFlag = consumeFlag(argv, "--agent-recognition-key-id");
|
|
6
|
+
const recognitionSeedFlag = consumeFlag(recognitionKeyFlag.rest, "--agent-recognition-signing-seed-hex");
|
|
7
|
+
const idempotencyFlag = consumeFlag(recognitionSeedFlag.rest, "--idempotency-key");
|
|
8
|
+
return {
|
|
9
|
+
recognitionKeyId: recognitionKeyFlag.value,
|
|
10
|
+
recognitionSeedHex: recognitionSeedFlag.value,
|
|
11
|
+
idempotencyKey: idempotencyFlag.value,
|
|
12
|
+
restArgv: idempotencyFlag.rest,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Resolve agent recognition credentials for Harbor intent mutations from flags and APP_* env fallbacks. */
|
|
16
|
+
export async function resolveHarborRecognition(ctx, flags) {
|
|
17
|
+
return resolveAgentRecognitionFromCli({
|
|
18
|
+
cwd: ctx.cwd,
|
|
19
|
+
envFile: ctx.globals.envFile,
|
|
20
|
+
agentRecognitionKeyId: flags.recognitionKeyId,
|
|
21
|
+
agentRecognitionSigningSeedHex: flags.recognitionSeedHex,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export const DEPRECATED_INTENTS_FUND_BODY_WARNING = "deprecated: intents fund --body; use --payment-signature";
|
|
25
|
+
/** Whether deprecated ``--body`` / ``--stdin`` shims were passed to ``intents fund``. */
|
|
26
|
+
export function fundBodyShimUsed(argv) {
|
|
27
|
+
return argv.includes("--body") || argv.includes("--stdin");
|
|
28
|
+
}
|
|
29
|
+
/** Read ``payment_signature`` from deprecated ``intents fund --body`` JSON when present. */
|
|
30
|
+
export function resolveFundPaymentSignatureFromBody(payload) {
|
|
31
|
+
const value = payload.payment_signature;
|
|
32
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
33
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Paybond } from "../index.js";
|
|
2
|
+
import type { CliContext } from "./context.js";
|
|
3
|
+
export type PaybondCliSession = {
|
|
4
|
+
paybond: Paybond;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
warnings: string[];
|
|
7
|
+
};
|
|
8
|
+
/** Open a Paybond SDK session for general CLI commands (uses ctx.fetch for gateway I/O). */
|
|
9
|
+
export declare function withPaybondCli<T>(ctx: CliContext, handler: (session: PaybondCliSession) => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Paybond } from "../index.js";
|
|
2
|
+
import { resolveApiKeyWithMeta } from "./credentials.js";
|
|
3
|
+
/** Open a Paybond SDK session for general CLI commands (uses ctx.fetch for gateway I/O). */
|
|
4
|
+
export async function withPaybondCli(ctx, handler) {
|
|
5
|
+
const resolved = await resolveApiKeyWithMeta(ctx.globals, ctx.cwd);
|
|
6
|
+
const originalFetch = globalThis.fetch;
|
|
7
|
+
globalThis.fetch = ctx.fetch;
|
|
8
|
+
const paybond = await Paybond.open({
|
|
9
|
+
apiKey: resolved.apiKey,
|
|
10
|
+
gatewayBaseUrl: ctx.globals.gateway,
|
|
11
|
+
});
|
|
12
|
+
try {
|
|
13
|
+
return await handler({
|
|
14
|
+
paybond,
|
|
15
|
+
apiKey: resolved.apiKey,
|
|
16
|
+
warnings: resolved.warnings,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
finally {
|
|
20
|
+
await paybond.aclose();
|
|
21
|
+
globalThis.fetch = originalFetch;
|
|
22
|
+
}
|
|
23
|
+
}
|
package/dist/cli/redact.js
CHANGED
|
@@ -35,8 +35,11 @@ export function redactSensitiveFields(value) {
|
|
|
35
35
|
for (const [key, child] of Object.entries(value)) {
|
|
36
36
|
const lowered = key.toLowerCase();
|
|
37
37
|
if (lowered === "capability_token" ||
|
|
38
|
+
lowered === "capabilitytoken" ||
|
|
38
39
|
lowered === "access_token" ||
|
|
40
|
+
lowered === "accesstoken" ||
|
|
39
41
|
lowered === "refresh_token" ||
|
|
42
|
+
lowered === "refreshtoken" ||
|
|
40
43
|
(lowered.endsWith("_token") && lowered !== "token_type")) {
|
|
41
44
|
out[key] = hasRedactableScalarContent(child) ? "[redacted]" : child;
|
|
42
45
|
continue;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolSet } from "ai";
|
|
2
|
+
import type { PaybondAgentRun } from "../agent/run.js";
|
|
3
|
+
import { type PaybondVercelAgentConfigOptions } from "../vercel-ai/config.js";
|
|
4
|
+
import { paybondVercelToolApproval } from "../vercel-ai/tool-approval.js";
|
|
5
|
+
/** Cloudflare Agents `getTools()` return shape — AI SDK `ToolSet`. */
|
|
6
|
+
export type CloudflareAgentsToolSet = ToolSet;
|
|
7
|
+
/** Cloudflare Agents runner config: guarded tools plus `toolApproval` for AI SDK turns. */
|
|
8
|
+
export type PaybondCloudflareAgentsConfig<TOOLS extends ToolSet = ToolSet> = {
|
|
9
|
+
tools: TOOLS;
|
|
10
|
+
toolApproval: ReturnType<typeof paybondVercelToolApproval<TOOLS>>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Wrap side-effecting Cloudflare Agent tools with Paybond `wrapExecute`.
|
|
14
|
+
*
|
|
15
|
+
* Cloudflare Agents register tools via `getTools()` using the AI SDK `tool()`
|
|
16
|
+
* helper — the same execute boundary as the Vercel AI adapter.
|
|
17
|
+
*/
|
|
18
|
+
export declare function paybondCloudflareAgentsWrapTools<TOOLS extends ToolSet>(run: PaybondAgentRun, tools: TOOLS): TOOLS;
|
|
19
|
+
/**
|
|
20
|
+
* Framework runner helper for Cloudflare Agents `getTools()` / `streamText` wiring.
|
|
21
|
+
*
|
|
22
|
+
* Returns guarded `tools` and a `toolApproval` bridge for Harbor pre-checks.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createPaybondCloudflareAgentsConfig<TOOLS extends ToolSet>(run: PaybondAgentRun, tools: TOOLS, options?: PaybondVercelAgentConfigOptions): PaybondCloudflareAgentsConfig<TOOLS>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createPaybondVercelAgentConfig, } from "../vercel-ai/config.js";
|
|
2
|
+
import { paybondVercelWrapTools } from "../vercel-ai/wrap-tools.js";
|
|
3
|
+
/**
|
|
4
|
+
* Wrap side-effecting Cloudflare Agent tools with Paybond `wrapExecute`.
|
|
5
|
+
*
|
|
6
|
+
* Cloudflare Agents register tools via `getTools()` using the AI SDK `tool()`
|
|
7
|
+
* helper — the same execute boundary as the Vercel AI adapter.
|
|
8
|
+
*/
|
|
9
|
+
export function paybondCloudflareAgentsWrapTools(run, tools) {
|
|
10
|
+
return paybondVercelWrapTools(run, tools);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Framework runner helper for Cloudflare Agents `getTools()` / `streamText` wiring.
|
|
14
|
+
*
|
|
15
|
+
* Returns guarded `tools` and a `toolApproval` bridge for Harbor pre-checks.
|
|
16
|
+
*/
|
|
17
|
+
export function createPaybondCloudflareAgentsConfig(run, tools, options) {
|
|
18
|
+
const config = createPaybondVercelAgentConfig(run, tools, options);
|
|
19
|
+
return {
|
|
20
|
+
tools: config.tools,
|
|
21
|
+
toolApproval: config.toolApproval,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createPaybondCloudflareAgentsConfig, paybondCloudflareAgentsWrapTools, type CloudflareAgentsToolSet, type PaybondCloudflareAgentsConfig, } from "./config.js";
|
|
2
|
+
export { loadCloudflareAgentsSdk } from "./peer.js";
|
|
3
|
+
export { runCloudflareAgentsSandboxDemo, type RunCloudflareAgentsSandboxDemoInput, type RunCloudflareAgentsSandboxDemoResult, } from "./sandbox-demo.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type CloudflareAgentsModule = typeof import("agents");
|
|
2
|
+
/**
|
|
3
|
+
* Lazily resolve the optional `agents` peer dependency (Cloudflare Agents SDK).
|
|
4
|
+
*
|
|
5
|
+
* Importing `@paybond/kit/cloudflare-agents` must not require the SDK installed —
|
|
6
|
+
* the peer is only needed when adapter functions or the sandbox demo actually run.
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadCloudflareAgentsSdk(): CloudflareAgentsModule;
|
|
9
|
+
export {};
|