@astrasyncai/verification-gateway 1.0.0 → 2.0.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/dist/adapter-interface/interface.d.mts +71 -0
- package/dist/adapter-interface/interface.d.ts +71 -0
- package/dist/adapter-interface/interface.js +36 -0
- package/dist/adapter-interface/interface.js.map +1 -0
- package/dist/adapter-interface/interface.mjs +10 -0
- package/dist/adapter-interface/interface.mjs.map +1 -0
- package/dist/adapter-interface/purpose-mapping.d.mts +28 -0
- package/dist/adapter-interface/purpose-mapping.d.ts +28 -0
- package/dist/adapter-interface/purpose-mapping.js +117 -0
- package/dist/adapter-interface/purpose-mapping.js.map +1 -0
- package/dist/adapter-interface/purpose-mapping.mjs +89 -0
- package/dist/adapter-interface/purpose-mapping.mjs.map +1 -0
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +46 -9
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +46 -9
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +2 -2
- package/dist/adapters/nextjs.d.ts +2 -2
- package/dist/adapters/nextjs.js +19 -9
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +19 -9
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +2 -2
- package/dist/adapters/sdk.d.ts +2 -2
- package/dist/adapters/sdk.js +20 -4
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +20 -4
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +2 -0
- package/dist/agent/index.d.ts +2 -0
- package/dist/agent/index.js +354 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/index.mjs +323 -0
- package/dist/agent/index.mjs.map +1 -0
- package/dist/browser/browser-adapter.d.mts +106 -0
- package/dist/browser/browser-adapter.d.ts +106 -0
- package/dist/browser/browser-adapter.js +286 -0
- package/dist/browser/browser-adapter.js.map +1 -0
- package/dist/browser/browser-adapter.mjs +259 -0
- package/dist/browser/browser-adapter.mjs.map +1 -0
- package/dist/cli/index.d.mts +241 -0
- package/dist/cli/index.d.ts +241 -0
- package/dist/cli/index.js +3734 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.mjs +3688 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/cursor/cursor-adapter.d.mts +92 -0
- package/dist/cursor/cursor-adapter.d.ts +92 -0
- package/dist/cursor/cursor-adapter.js +273 -0
- package/dist/cursor/cursor-adapter.js.map +1 -0
- package/dist/cursor/cursor-adapter.mjs +246 -0
- package/dist/cursor/cursor-adapter.mjs.map +1 -0
- package/dist/{express-DUDYpvNZ.d.mts → express-Cp4eg77F.d.mts} +1 -1
- package/dist/{express-BhD3mWsL.d.ts → express-DIEyq1Tz.d.ts} +1 -1
- package/dist/gateway/gateway.d.mts +70 -0
- package/dist/gateway/gateway.d.ts +70 -0
- package/dist/gateway/gateway.js +3726 -0
- package/dist/gateway/gateway.js.map +1 -0
- package/dist/gateway/gateway.mjs +3706 -0
- package/dist/gateway/gateway.mjs.map +1 -0
- package/dist/git-trigger/git-hooks.d.mts +69 -0
- package/dist/git-trigger/git-hooks.d.ts +69 -0
- package/dist/git-trigger/git-hooks.js +244 -0
- package/dist/git-trigger/git-hooks.js.map +1 -0
- package/dist/git-trigger/git-hooks.mjs +221 -0
- package/dist/git-trigger/git-hooks.mjs.map +1 -0
- package/dist/index-BhTbGU-o.d.mts +206 -0
- package/dist/index-Bhfxq9xI.d.ts +206 -0
- package/dist/index-CNkmHmpi.d.ts +89 -0
- package/dist/index-CoLebmwv.d.mts +89 -0
- package/dist/index.d.mts +8 -295
- package/dist/index.d.ts +8 -295
- package/dist/index.js +60 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -21
- package/dist/index.mjs.map +1 -1
- package/dist/local-evaluator/evaluator.d.mts +55 -0
- package/dist/local-evaluator/evaluator.d.ts +55 -0
- package/dist/local-evaluator/evaluator.js +272 -0
- package/dist/local-evaluator/evaluator.js.map +1 -0
- package/dist/local-evaluator/evaluator.mjs +244 -0
- package/dist/local-evaluator/evaluator.mjs.map +1 -0
- package/dist/{nextjs-C9FPOjSh.d.ts → nextjs-Cag7libc.d.ts} +1 -1
- package/dist/{nextjs-BtqyLSVQ.d.mts → nextjs-_C_FcJY5.d.mts} +1 -1
- package/dist/{sdk-BkVigGjF.d.ts → sdk-CMPDFUjo.d.ts} +3 -1
- package/dist/{sdk-xCbZgeZx.d.mts → sdk-DAJahT3p.d.mts} +3 -1
- package/dist/transport/index.d.mts +2 -0
- package/dist/transport/index.d.ts +2 -0
- package/dist/transport/index.js +211 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/index.mjs +176 -0
- package/dist/transport/index.mjs.map +1 -0
- package/dist/{types-CS6v75-d.d.mts → types-Bf8pML07.d.mts} +9 -1
- package/dist/{types-CS6v75-d.d.ts → types-Bf8pML07.d.ts} +9 -1
- package/dist/types-BvpGdsv1.d.mts +153 -0
- package/dist/types-Ce2mFJkO.d.ts +153 -0
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +46 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as AccessLevel, i as TrustLevel, S as SDKOptions, b as VerificationResult } from './types-
|
|
1
|
+
import { a as AccessLevel, i as TrustLevel, S as SDKOptions, b as VerificationResult } from './types-Bf8pML07.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* AstraSync Universal Verification Gateway - Access Level Definitions
|
|
@@ -109,6 +109,8 @@ declare class VerificationGatewayClient {
|
|
|
109
109
|
isSubAgentRequest?: boolean;
|
|
110
110
|
parentAgentId?: string;
|
|
111
111
|
subAgentDepth?: number;
|
|
112
|
+
counterpartyUrl?: string;
|
|
113
|
+
counterpartyType?: string;
|
|
112
114
|
}): Promise<VerificationResult>;
|
|
113
115
|
/**
|
|
114
116
|
* Quick verification - just check if credentials are valid
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import '../types-Bf8pML07.mjs';
|
|
2
|
+
export { a as applyCredentials, d as detectProtocol, e as extractA2ACredentials, b as extractCredentialsFromProtocol, c as extractHttpCredentials, f as extractMcpCredentials, s as setA2AMetadata, g as setHttpHeaders, h as setMcpMeta } from '../index-CoLebmwv.mjs';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import '../types-Bf8pML07.js';
|
|
2
|
+
export { a as applyCredentials, d as detectProtocol, e as extractA2ACredentials, b as extractCredentialsFromProtocol, c as extractHttpCredentials, f as extractMcpCredentials, s as setA2AMetadata, g as setHttpHeaders, h as setMcpMeta } from '../index-CNkmHmpi.js';
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/transport/index.ts
|
|
21
|
+
var transport_exports = {};
|
|
22
|
+
__export(transport_exports, {
|
|
23
|
+
applyCredentials: () => applyCredentials,
|
|
24
|
+
detectProtocol: () => detectProtocol,
|
|
25
|
+
extractA2ACredentials: () => extractA2ACredentials,
|
|
26
|
+
extractCredentialsFromProtocol: () => extractCredentialsFromProtocol,
|
|
27
|
+
extractHttpCredentials: () => extractHttpCredentials,
|
|
28
|
+
extractMcpCredentials: () => extractMcpCredentials,
|
|
29
|
+
setA2AMetadata: () => setA2AMetadata,
|
|
30
|
+
setHttpHeaders: () => setHttpHeaders,
|
|
31
|
+
setMcpMeta: () => setMcpMeta
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(transport_exports);
|
|
34
|
+
|
|
35
|
+
// src/transport/http.ts
|
|
36
|
+
var HEADER_PREFIX = "X-Astra-";
|
|
37
|
+
function setHttpHeaders(headers, credentials) {
|
|
38
|
+
const result = { ...headers };
|
|
39
|
+
result[`${HEADER_PREFIX}ID`] = credentials.agentId;
|
|
40
|
+
if (credentials.verifyUrl) {
|
|
41
|
+
result[`${HEADER_PREFIX}Verify`] = credentials.verifyUrl;
|
|
42
|
+
}
|
|
43
|
+
if (credentials.challengeUrl) {
|
|
44
|
+
result[`${HEADER_PREFIX}Challenge`] = credentials.challengeUrl;
|
|
45
|
+
}
|
|
46
|
+
if (credentials.pdlss?.purpose) {
|
|
47
|
+
const purposeValue = credentials.pdlss.purpose.action ? `${credentials.pdlss.purpose.category}:${credentials.pdlss.purpose.action}` : credentials.pdlss.purpose.category;
|
|
48
|
+
result[`${HEADER_PREFIX}Purpose`] = purposeValue;
|
|
49
|
+
}
|
|
50
|
+
if (credentials.pdlss?.duration?.maxSessionDuration) {
|
|
51
|
+
result[`${HEADER_PREFIX}Duration`] = String(credentials.pdlss.duration.maxSessionDuration);
|
|
52
|
+
}
|
|
53
|
+
if (credentials.pdlss?.scope?.jurisdiction) {
|
|
54
|
+
result[`${HEADER_PREFIX}Scope`] = credentials.pdlss.scope.jurisdiction;
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
function extractHttpCredentials(headers) {
|
|
59
|
+
const getValue = (key) => {
|
|
60
|
+
const v = headers[key] ?? headers[key.toLowerCase()];
|
|
61
|
+
return Array.isArray(v) ? v[0] : v;
|
|
62
|
+
};
|
|
63
|
+
const agentId = getValue(`${HEADER_PREFIX}ID`) ?? getValue("x-astra-id");
|
|
64
|
+
if (!agentId) return null;
|
|
65
|
+
const credentials = { agentId };
|
|
66
|
+
const verifyUrl = getValue(`${HEADER_PREFIX}Verify`) ?? getValue("x-astra-verify");
|
|
67
|
+
if (verifyUrl) credentials.verifyUrl = verifyUrl;
|
|
68
|
+
const challengeUrl = getValue(`${HEADER_PREFIX}Challenge`) ?? getValue("x-astra-challenge");
|
|
69
|
+
if (challengeUrl) credentials.challengeUrl = challengeUrl;
|
|
70
|
+
const purpose = getValue(`${HEADER_PREFIX}Purpose`) ?? getValue("x-astra-purpose");
|
|
71
|
+
if (purpose) {
|
|
72
|
+
const [category, action] = purpose.split(":");
|
|
73
|
+
credentials.pdlss = {
|
|
74
|
+
...credentials.pdlss,
|
|
75
|
+
purpose: { category, action }
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const duration = getValue(`${HEADER_PREFIX}Duration`) ?? getValue("x-astra-duration");
|
|
79
|
+
if (duration) {
|
|
80
|
+
credentials.pdlss = {
|
|
81
|
+
...credentials.pdlss,
|
|
82
|
+
duration: { maxSessionDuration: parseInt(duration, 10) }
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const scope = getValue(`${HEADER_PREFIX}Scope`) ?? getValue("x-astra-scope");
|
|
86
|
+
if (scope) {
|
|
87
|
+
credentials.pdlss = {
|
|
88
|
+
...credentials.pdlss,
|
|
89
|
+
scope: { jurisdiction: scope }
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return credentials;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// src/transport/a2a.ts
|
|
96
|
+
function setA2AMetadata(task, credentials) {
|
|
97
|
+
const astrasync = {
|
|
98
|
+
agentId: credentials.agentId
|
|
99
|
+
};
|
|
100
|
+
if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;
|
|
101
|
+
if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;
|
|
102
|
+
if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;
|
|
103
|
+
if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;
|
|
104
|
+
if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;
|
|
105
|
+
return {
|
|
106
|
+
...task,
|
|
107
|
+
metadata: {
|
|
108
|
+
...task.metadata,
|
|
109
|
+
astrasync
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function extractA2ACredentials(task) {
|
|
114
|
+
const meta = task.metadata?.astrasync;
|
|
115
|
+
if (!meta?.agentId) return null;
|
|
116
|
+
const credentials = {
|
|
117
|
+
agentId: meta.agentId
|
|
118
|
+
};
|
|
119
|
+
if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;
|
|
120
|
+
if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;
|
|
121
|
+
if (meta.purpose || meta.duration || meta.scope) {
|
|
122
|
+
credentials.pdlss = {};
|
|
123
|
+
if (meta.purpose) credentials.pdlss.purpose = meta.purpose;
|
|
124
|
+
if (meta.duration) credentials.pdlss.duration = meta.duration;
|
|
125
|
+
if (meta.scope) credentials.pdlss.scope = meta.scope;
|
|
126
|
+
}
|
|
127
|
+
return credentials;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// src/transport/mcp.ts
|
|
131
|
+
function setMcpMeta(params, credentials) {
|
|
132
|
+
const astrasync = {
|
|
133
|
+
agentId: credentials.agentId
|
|
134
|
+
};
|
|
135
|
+
if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;
|
|
136
|
+
if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;
|
|
137
|
+
if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;
|
|
138
|
+
if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;
|
|
139
|
+
if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;
|
|
140
|
+
return {
|
|
141
|
+
...params,
|
|
142
|
+
_meta: {
|
|
143
|
+
...params._meta,
|
|
144
|
+
astrasync
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function extractMcpCredentials(params) {
|
|
149
|
+
const meta = params._meta?.astrasync;
|
|
150
|
+
if (!meta?.agentId) return null;
|
|
151
|
+
const credentials = {
|
|
152
|
+
agentId: meta.agentId
|
|
153
|
+
};
|
|
154
|
+
if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;
|
|
155
|
+
if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;
|
|
156
|
+
if (meta.purpose || meta.duration || meta.scope) {
|
|
157
|
+
credentials.pdlss = {};
|
|
158
|
+
if (meta.purpose) credentials.pdlss.purpose = meta.purpose;
|
|
159
|
+
if (meta.duration) credentials.pdlss.duration = meta.duration;
|
|
160
|
+
if (meta.scope) credentials.pdlss.scope = meta.scope;
|
|
161
|
+
}
|
|
162
|
+
return credentials;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// src/transport/index.ts
|
|
166
|
+
function detectProtocol(context) {
|
|
167
|
+
if (context.metadata && typeof context.metadata === "object") {
|
|
168
|
+
return "a2a";
|
|
169
|
+
}
|
|
170
|
+
if (context._meta && typeof context._meta === "object") {
|
|
171
|
+
return "mcp";
|
|
172
|
+
}
|
|
173
|
+
return "http";
|
|
174
|
+
}
|
|
175
|
+
function applyCredentials(protocol, target, credentials) {
|
|
176
|
+
switch (protocol) {
|
|
177
|
+
case "http":
|
|
178
|
+
return setHttpHeaders(target, credentials);
|
|
179
|
+
case "a2a":
|
|
180
|
+
return setA2AMetadata(target, credentials);
|
|
181
|
+
case "mcp":
|
|
182
|
+
return setMcpMeta(target, credentials);
|
|
183
|
+
default:
|
|
184
|
+
return target;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function extractCredentialsFromProtocol(protocol, context) {
|
|
188
|
+
switch (protocol) {
|
|
189
|
+
case "http":
|
|
190
|
+
return extractHttpCredentials(context);
|
|
191
|
+
case "a2a":
|
|
192
|
+
return extractA2ACredentials(context);
|
|
193
|
+
case "mcp":
|
|
194
|
+
return extractMcpCredentials(context);
|
|
195
|
+
default:
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
200
|
+
0 && (module.exports = {
|
|
201
|
+
applyCredentials,
|
|
202
|
+
detectProtocol,
|
|
203
|
+
extractA2ACredentials,
|
|
204
|
+
extractCredentialsFromProtocol,
|
|
205
|
+
extractHttpCredentials,
|
|
206
|
+
extractMcpCredentials,
|
|
207
|
+
setA2AMetadata,
|
|
208
|
+
setHttpHeaders,
|
|
209
|
+
setMcpMeta
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/transport/index.ts","../../src/transport/http.ts","../../src/transport/a2a.ts","../../src/transport/mcp.ts"],"sourcesContent":["/**\n * Cross-Protocol Transport Module\n *\n * Provides adapters for injecting/extracting AstraSync credentials\n * across HTTP, A2A, and MCP protocols.\n */\n\nimport type { AstraSyncCredentials, ProtocolTransport } from '../types';\nimport { setHttpHeaders, extractHttpCredentials } from './http';\nimport { setA2AMetadata, extractA2ACredentials } from './a2a';\nimport { setMcpMeta, extractMcpCredentials } from './mcp';\n\nexport { setHttpHeaders, extractHttpCredentials } from './http';\nexport { setA2AMetadata, extractA2ACredentials } from './a2a';\nexport { setMcpMeta, extractMcpCredentials } from './mcp';\n\n/**\n * Auto-detect protocol from request/context shape.\n */\nexport function detectProtocol(context: Record<string, unknown>): ProtocolTransport {\n // A2A: has metadata block with task-like structure\n if (context.metadata && typeof context.metadata === 'object') {\n return 'a2a';\n }\n\n // MCP: has _meta block (MCP convention)\n if (context._meta && typeof context._meta === 'object') {\n return 'mcp';\n }\n\n // Default to HTTP\n return 'http';\n}\n\n/**\n * Apply credentials to any protocol target.\n */\nexport function applyCredentials(\n protocol: ProtocolTransport,\n target: Record<string, unknown>,\n credentials: AstraSyncCredentials,\n): Record<string, unknown> {\n switch (protocol) {\n case 'http':\n return setHttpHeaders(target as Record<string, string>, credentials);\n case 'a2a':\n return setA2AMetadata(target, credentials);\n case 'mcp':\n return setMcpMeta(target, credentials);\n default:\n return target;\n }\n}\n\n/**\n * Extract credentials from any protocol context.\n */\nexport function extractCredentialsFromProtocol(\n protocol: ProtocolTransport,\n context: Record<string, unknown>,\n): AstraSyncCredentials | null {\n switch (protocol) {\n case 'http':\n return extractHttpCredentials(context as Record<string, string | string[] | undefined>);\n case 'a2a':\n return extractA2ACredentials(context);\n case 'mcp':\n return extractMcpCredentials(context);\n default:\n return null;\n }\n}\n","/**\n * HTTP Transport Adapter\n *\n * Maps AstraSync credentials to/from HTTP headers (X-Astra-* convention).\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\nconst HEADER_PREFIX = 'X-Astra-';\n\n/**\n * Inject AstraSync credentials into HTTP headers.\n */\nexport function setHttpHeaders(\n headers: Record<string, string>,\n credentials: AstraSyncCredentials,\n): Record<string, string> {\n const result = { ...headers };\n\n result[`${HEADER_PREFIX}ID`] = credentials.agentId;\n\n if (credentials.verifyUrl) {\n result[`${HEADER_PREFIX}Verify`] = credentials.verifyUrl;\n }\n\n if (credentials.challengeUrl) {\n result[`${HEADER_PREFIX}Challenge`] = credentials.challengeUrl;\n }\n\n if (credentials.pdlss?.purpose) {\n const purposeValue = credentials.pdlss.purpose.action\n ? `${credentials.pdlss.purpose.category}:${credentials.pdlss.purpose.action}`\n : credentials.pdlss.purpose.category;\n result[`${HEADER_PREFIX}Purpose`] = purposeValue;\n }\n\n if (credentials.pdlss?.duration?.maxSessionDuration) {\n result[`${HEADER_PREFIX}Duration`] = String(credentials.pdlss.duration.maxSessionDuration);\n }\n\n if (credentials.pdlss?.scope?.jurisdiction) {\n result[`${HEADER_PREFIX}Scope`] = credentials.pdlss.scope.jurisdiction;\n }\n\n return result;\n}\n\n/**\n * Extract AstraSync credentials from HTTP headers.\n */\nexport function extractHttpCredentials(\n headers: Record<string, string | string[] | undefined>,\n): AstraSyncCredentials | null {\n const getValue = (key: string): string | undefined => {\n const v = headers[key] ?? headers[key.toLowerCase()];\n return Array.isArray(v) ? v[0] : v;\n };\n\n const agentId = getValue(`${HEADER_PREFIX}ID`) ?? getValue('x-astra-id');\n if (!agentId) return null;\n\n const credentials: AstraSyncCredentials = { agentId };\n\n const verifyUrl = getValue(`${HEADER_PREFIX}Verify`) ?? getValue('x-astra-verify');\n if (verifyUrl) credentials.verifyUrl = verifyUrl;\n\n const challengeUrl = getValue(`${HEADER_PREFIX}Challenge`) ?? getValue('x-astra-challenge');\n if (challengeUrl) credentials.challengeUrl = challengeUrl;\n\n const purpose = getValue(`${HEADER_PREFIX}Purpose`) ?? getValue('x-astra-purpose');\n if (purpose) {\n const [category, action] = purpose.split(':');\n credentials.pdlss = {\n ...credentials.pdlss,\n purpose: { category, action },\n };\n }\n\n const duration = getValue(`${HEADER_PREFIX}Duration`) ?? getValue('x-astra-duration');\n if (duration) {\n credentials.pdlss = {\n ...credentials.pdlss,\n duration: { maxSessionDuration: parseInt(duration, 10) },\n };\n }\n\n const scope = getValue(`${HEADER_PREFIX}Scope`) ?? getValue('x-astra-scope');\n if (scope) {\n credentials.pdlss = {\n ...credentials.pdlss,\n scope: { jurisdiction: scope },\n };\n }\n\n return credentials;\n}\n","/**\n * A2A (Agent-to-Agent) Transport Adapter\n *\n * Maps AstraSync credentials to/from A2A task metadata.astrasync block.\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\ninterface A2ATask {\n metadata?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\ninterface AstraSyncMetadata {\n agentId: string;\n verifyUrl?: string;\n challengeUrl?: string;\n purpose?: { category: string; action?: string };\n duration?: { maxSessionDuration?: number };\n scope?: { jurisdiction?: string };\n}\n\n/**\n * Add AstraSync credentials to an A2A task's metadata block.\n */\nexport function setA2AMetadata(\n task: A2ATask,\n credentials: AstraSyncCredentials,\n): A2ATask {\n const astrasync: AstraSyncMetadata = {\n agentId: credentials.agentId,\n };\n\n if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;\n if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;\n if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;\n if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;\n if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;\n\n return {\n ...task,\n metadata: {\n ...task.metadata,\n astrasync,\n },\n };\n}\n\n/**\n * Extract AstraSync credentials from an A2A task's metadata block.\n */\nexport function extractA2ACredentials(task: A2ATask): AstraSyncCredentials | null {\n const meta = task.metadata?.astrasync as AstraSyncMetadata | undefined;\n if (!meta?.agentId) return null;\n\n const credentials: AstraSyncCredentials = {\n agentId: meta.agentId,\n };\n\n if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;\n if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;\n\n if (meta.purpose || meta.duration || meta.scope) {\n credentials.pdlss = {};\n if (meta.purpose) credentials.pdlss.purpose = meta.purpose;\n if (meta.duration) credentials.pdlss.duration = meta.duration;\n if (meta.scope) credentials.pdlss.scope = meta.scope;\n }\n\n return credentials;\n}\n","/**\n * MCP (Model Context Protocol) Transport Adapter\n *\n * Maps AstraSync credentials to/from MCP params._meta.astrasync block.\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\ninterface McpParams {\n _meta?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\ninterface AstraSyncMeta {\n agentId: string;\n verifyUrl?: string;\n challengeUrl?: string;\n purpose?: { category: string; action?: string };\n duration?: { maxSessionDuration?: number };\n scope?: { jurisdiction?: string };\n}\n\n/**\n * Add AstraSync credentials to MCP params' _meta block.\n */\nexport function setMcpMeta(\n params: McpParams,\n credentials: AstraSyncCredentials,\n): McpParams {\n const astrasync: AstraSyncMeta = {\n agentId: credentials.agentId,\n };\n\n if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;\n if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;\n if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;\n if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;\n if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;\n\n return {\n ...params,\n _meta: {\n ...params._meta,\n astrasync,\n },\n };\n}\n\n/**\n * Extract AstraSync credentials from MCP params' _meta block.\n */\nexport function extractMcpCredentials(params: McpParams): AstraSyncCredentials | null {\n const meta = params._meta?.astrasync as AstraSyncMeta | undefined;\n if (!meta?.agentId) return null;\n\n const credentials: AstraSyncCredentials = {\n agentId: meta.agentId,\n };\n\n if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;\n if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;\n\n if (meta.purpose || meta.duration || meta.scope) {\n credentials.pdlss = {};\n if (meta.purpose) credentials.pdlss.purpose = meta.purpose;\n if (meta.duration) credentials.pdlss.duration = meta.duration;\n if (meta.scope) credentials.pdlss.scope = meta.scope;\n }\n\n return credentials;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// src/transport/http.ts
|
|
2
|
+
var HEADER_PREFIX = "X-Astra-";
|
|
3
|
+
function setHttpHeaders(headers, credentials) {
|
|
4
|
+
const result = { ...headers };
|
|
5
|
+
result[`${HEADER_PREFIX}ID`] = credentials.agentId;
|
|
6
|
+
if (credentials.verifyUrl) {
|
|
7
|
+
result[`${HEADER_PREFIX}Verify`] = credentials.verifyUrl;
|
|
8
|
+
}
|
|
9
|
+
if (credentials.challengeUrl) {
|
|
10
|
+
result[`${HEADER_PREFIX}Challenge`] = credentials.challengeUrl;
|
|
11
|
+
}
|
|
12
|
+
if (credentials.pdlss?.purpose) {
|
|
13
|
+
const purposeValue = credentials.pdlss.purpose.action ? `${credentials.pdlss.purpose.category}:${credentials.pdlss.purpose.action}` : credentials.pdlss.purpose.category;
|
|
14
|
+
result[`${HEADER_PREFIX}Purpose`] = purposeValue;
|
|
15
|
+
}
|
|
16
|
+
if (credentials.pdlss?.duration?.maxSessionDuration) {
|
|
17
|
+
result[`${HEADER_PREFIX}Duration`] = String(credentials.pdlss.duration.maxSessionDuration);
|
|
18
|
+
}
|
|
19
|
+
if (credentials.pdlss?.scope?.jurisdiction) {
|
|
20
|
+
result[`${HEADER_PREFIX}Scope`] = credentials.pdlss.scope.jurisdiction;
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
function extractHttpCredentials(headers) {
|
|
25
|
+
const getValue = (key) => {
|
|
26
|
+
const v = headers[key] ?? headers[key.toLowerCase()];
|
|
27
|
+
return Array.isArray(v) ? v[0] : v;
|
|
28
|
+
};
|
|
29
|
+
const agentId = getValue(`${HEADER_PREFIX}ID`) ?? getValue("x-astra-id");
|
|
30
|
+
if (!agentId) return null;
|
|
31
|
+
const credentials = { agentId };
|
|
32
|
+
const verifyUrl = getValue(`${HEADER_PREFIX}Verify`) ?? getValue("x-astra-verify");
|
|
33
|
+
if (verifyUrl) credentials.verifyUrl = verifyUrl;
|
|
34
|
+
const challengeUrl = getValue(`${HEADER_PREFIX}Challenge`) ?? getValue("x-astra-challenge");
|
|
35
|
+
if (challengeUrl) credentials.challengeUrl = challengeUrl;
|
|
36
|
+
const purpose = getValue(`${HEADER_PREFIX}Purpose`) ?? getValue("x-astra-purpose");
|
|
37
|
+
if (purpose) {
|
|
38
|
+
const [category, action] = purpose.split(":");
|
|
39
|
+
credentials.pdlss = {
|
|
40
|
+
...credentials.pdlss,
|
|
41
|
+
purpose: { category, action }
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const duration = getValue(`${HEADER_PREFIX}Duration`) ?? getValue("x-astra-duration");
|
|
45
|
+
if (duration) {
|
|
46
|
+
credentials.pdlss = {
|
|
47
|
+
...credentials.pdlss,
|
|
48
|
+
duration: { maxSessionDuration: parseInt(duration, 10) }
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const scope = getValue(`${HEADER_PREFIX}Scope`) ?? getValue("x-astra-scope");
|
|
52
|
+
if (scope) {
|
|
53
|
+
credentials.pdlss = {
|
|
54
|
+
...credentials.pdlss,
|
|
55
|
+
scope: { jurisdiction: scope }
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return credentials;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// src/transport/a2a.ts
|
|
62
|
+
function setA2AMetadata(task, credentials) {
|
|
63
|
+
const astrasync = {
|
|
64
|
+
agentId: credentials.agentId
|
|
65
|
+
};
|
|
66
|
+
if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;
|
|
67
|
+
if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;
|
|
68
|
+
if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;
|
|
69
|
+
if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;
|
|
70
|
+
if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;
|
|
71
|
+
return {
|
|
72
|
+
...task,
|
|
73
|
+
metadata: {
|
|
74
|
+
...task.metadata,
|
|
75
|
+
astrasync
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function extractA2ACredentials(task) {
|
|
80
|
+
const meta = task.metadata?.astrasync;
|
|
81
|
+
if (!meta?.agentId) return null;
|
|
82
|
+
const credentials = {
|
|
83
|
+
agentId: meta.agentId
|
|
84
|
+
};
|
|
85
|
+
if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;
|
|
86
|
+
if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;
|
|
87
|
+
if (meta.purpose || meta.duration || meta.scope) {
|
|
88
|
+
credentials.pdlss = {};
|
|
89
|
+
if (meta.purpose) credentials.pdlss.purpose = meta.purpose;
|
|
90
|
+
if (meta.duration) credentials.pdlss.duration = meta.duration;
|
|
91
|
+
if (meta.scope) credentials.pdlss.scope = meta.scope;
|
|
92
|
+
}
|
|
93
|
+
return credentials;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// src/transport/mcp.ts
|
|
97
|
+
function setMcpMeta(params, credentials) {
|
|
98
|
+
const astrasync = {
|
|
99
|
+
agentId: credentials.agentId
|
|
100
|
+
};
|
|
101
|
+
if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;
|
|
102
|
+
if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;
|
|
103
|
+
if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;
|
|
104
|
+
if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;
|
|
105
|
+
if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;
|
|
106
|
+
return {
|
|
107
|
+
...params,
|
|
108
|
+
_meta: {
|
|
109
|
+
...params._meta,
|
|
110
|
+
astrasync
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function extractMcpCredentials(params) {
|
|
115
|
+
const meta = params._meta?.astrasync;
|
|
116
|
+
if (!meta?.agentId) return null;
|
|
117
|
+
const credentials = {
|
|
118
|
+
agentId: meta.agentId
|
|
119
|
+
};
|
|
120
|
+
if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;
|
|
121
|
+
if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;
|
|
122
|
+
if (meta.purpose || meta.duration || meta.scope) {
|
|
123
|
+
credentials.pdlss = {};
|
|
124
|
+
if (meta.purpose) credentials.pdlss.purpose = meta.purpose;
|
|
125
|
+
if (meta.duration) credentials.pdlss.duration = meta.duration;
|
|
126
|
+
if (meta.scope) credentials.pdlss.scope = meta.scope;
|
|
127
|
+
}
|
|
128
|
+
return credentials;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/transport/index.ts
|
|
132
|
+
function detectProtocol(context) {
|
|
133
|
+
if (context.metadata && typeof context.metadata === "object") {
|
|
134
|
+
return "a2a";
|
|
135
|
+
}
|
|
136
|
+
if (context._meta && typeof context._meta === "object") {
|
|
137
|
+
return "mcp";
|
|
138
|
+
}
|
|
139
|
+
return "http";
|
|
140
|
+
}
|
|
141
|
+
function applyCredentials(protocol, target, credentials) {
|
|
142
|
+
switch (protocol) {
|
|
143
|
+
case "http":
|
|
144
|
+
return setHttpHeaders(target, credentials);
|
|
145
|
+
case "a2a":
|
|
146
|
+
return setA2AMetadata(target, credentials);
|
|
147
|
+
case "mcp":
|
|
148
|
+
return setMcpMeta(target, credentials);
|
|
149
|
+
default:
|
|
150
|
+
return target;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function extractCredentialsFromProtocol(protocol, context) {
|
|
154
|
+
switch (protocol) {
|
|
155
|
+
case "http":
|
|
156
|
+
return extractHttpCredentials(context);
|
|
157
|
+
case "a2a":
|
|
158
|
+
return extractA2ACredentials(context);
|
|
159
|
+
case "mcp":
|
|
160
|
+
return extractMcpCredentials(context);
|
|
161
|
+
default:
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export {
|
|
166
|
+
applyCredentials,
|
|
167
|
+
detectProtocol,
|
|
168
|
+
extractA2ACredentials,
|
|
169
|
+
extractCredentialsFromProtocol,
|
|
170
|
+
extractHttpCredentials,
|
|
171
|
+
extractMcpCredentials,
|
|
172
|
+
setA2AMetadata,
|
|
173
|
+
setHttpHeaders,
|
|
174
|
+
setMcpMeta
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/transport/http.ts","../../src/transport/a2a.ts","../../src/transport/mcp.ts","../../src/transport/index.ts"],"sourcesContent":["/**\n * HTTP Transport Adapter\n *\n * Maps AstraSync credentials to/from HTTP headers (X-Astra-* convention).\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\nconst HEADER_PREFIX = 'X-Astra-';\n\n/**\n * Inject AstraSync credentials into HTTP headers.\n */\nexport function setHttpHeaders(\n headers: Record<string, string>,\n credentials: AstraSyncCredentials,\n): Record<string, string> {\n const result = { ...headers };\n\n result[`${HEADER_PREFIX}ID`] = credentials.agentId;\n\n if (credentials.verifyUrl) {\n result[`${HEADER_PREFIX}Verify`] = credentials.verifyUrl;\n }\n\n if (credentials.challengeUrl) {\n result[`${HEADER_PREFIX}Challenge`] = credentials.challengeUrl;\n }\n\n if (credentials.pdlss?.purpose) {\n const purposeValue = credentials.pdlss.purpose.action\n ? `${credentials.pdlss.purpose.category}:${credentials.pdlss.purpose.action}`\n : credentials.pdlss.purpose.category;\n result[`${HEADER_PREFIX}Purpose`] = purposeValue;\n }\n\n if (credentials.pdlss?.duration?.maxSessionDuration) {\n result[`${HEADER_PREFIX}Duration`] = String(credentials.pdlss.duration.maxSessionDuration);\n }\n\n if (credentials.pdlss?.scope?.jurisdiction) {\n result[`${HEADER_PREFIX}Scope`] = credentials.pdlss.scope.jurisdiction;\n }\n\n return result;\n}\n\n/**\n * Extract AstraSync credentials from HTTP headers.\n */\nexport function extractHttpCredentials(\n headers: Record<string, string | string[] | undefined>,\n): AstraSyncCredentials | null {\n const getValue = (key: string): string | undefined => {\n const v = headers[key] ?? headers[key.toLowerCase()];\n return Array.isArray(v) ? v[0] : v;\n };\n\n const agentId = getValue(`${HEADER_PREFIX}ID`) ?? getValue('x-astra-id');\n if (!agentId) return null;\n\n const credentials: AstraSyncCredentials = { agentId };\n\n const verifyUrl = getValue(`${HEADER_PREFIX}Verify`) ?? getValue('x-astra-verify');\n if (verifyUrl) credentials.verifyUrl = verifyUrl;\n\n const challengeUrl = getValue(`${HEADER_PREFIX}Challenge`) ?? getValue('x-astra-challenge');\n if (challengeUrl) credentials.challengeUrl = challengeUrl;\n\n const purpose = getValue(`${HEADER_PREFIX}Purpose`) ?? getValue('x-astra-purpose');\n if (purpose) {\n const [category, action] = purpose.split(':');\n credentials.pdlss = {\n ...credentials.pdlss,\n purpose: { category, action },\n };\n }\n\n const duration = getValue(`${HEADER_PREFIX}Duration`) ?? getValue('x-astra-duration');\n if (duration) {\n credentials.pdlss = {\n ...credentials.pdlss,\n duration: { maxSessionDuration: parseInt(duration, 10) },\n };\n }\n\n const scope = getValue(`${HEADER_PREFIX}Scope`) ?? getValue('x-astra-scope');\n if (scope) {\n credentials.pdlss = {\n ...credentials.pdlss,\n scope: { jurisdiction: scope },\n };\n }\n\n return credentials;\n}\n","/**\n * A2A (Agent-to-Agent) Transport Adapter\n *\n * Maps AstraSync credentials to/from A2A task metadata.astrasync block.\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\ninterface A2ATask {\n metadata?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\ninterface AstraSyncMetadata {\n agentId: string;\n verifyUrl?: string;\n challengeUrl?: string;\n purpose?: { category: string; action?: string };\n duration?: { maxSessionDuration?: number };\n scope?: { jurisdiction?: string };\n}\n\n/**\n * Add AstraSync credentials to an A2A task's metadata block.\n */\nexport function setA2AMetadata(\n task: A2ATask,\n credentials: AstraSyncCredentials,\n): A2ATask {\n const astrasync: AstraSyncMetadata = {\n agentId: credentials.agentId,\n };\n\n if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;\n if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;\n if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;\n if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;\n if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;\n\n return {\n ...task,\n metadata: {\n ...task.metadata,\n astrasync,\n },\n };\n}\n\n/**\n * Extract AstraSync credentials from an A2A task's metadata block.\n */\nexport function extractA2ACredentials(task: A2ATask): AstraSyncCredentials | null {\n const meta = task.metadata?.astrasync as AstraSyncMetadata | undefined;\n if (!meta?.agentId) return null;\n\n const credentials: AstraSyncCredentials = {\n agentId: meta.agentId,\n };\n\n if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;\n if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;\n\n if (meta.purpose || meta.duration || meta.scope) {\n credentials.pdlss = {};\n if (meta.purpose) credentials.pdlss.purpose = meta.purpose;\n if (meta.duration) credentials.pdlss.duration = meta.duration;\n if (meta.scope) credentials.pdlss.scope = meta.scope;\n }\n\n return credentials;\n}\n","/**\n * MCP (Model Context Protocol) Transport Adapter\n *\n * Maps AstraSync credentials to/from MCP params._meta.astrasync block.\n */\n\nimport type { AstraSyncCredentials } from '../types';\n\ninterface McpParams {\n _meta?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\ninterface AstraSyncMeta {\n agentId: string;\n verifyUrl?: string;\n challengeUrl?: string;\n purpose?: { category: string; action?: string };\n duration?: { maxSessionDuration?: number };\n scope?: { jurisdiction?: string };\n}\n\n/**\n * Add AstraSync credentials to MCP params' _meta block.\n */\nexport function setMcpMeta(\n params: McpParams,\n credentials: AstraSyncCredentials,\n): McpParams {\n const astrasync: AstraSyncMeta = {\n agentId: credentials.agentId,\n };\n\n if (credentials.verifyUrl) astrasync.verifyUrl = credentials.verifyUrl;\n if (credentials.challengeUrl) astrasync.challengeUrl = credentials.challengeUrl;\n if (credentials.pdlss?.purpose) astrasync.purpose = credentials.pdlss.purpose;\n if (credentials.pdlss?.duration) astrasync.duration = credentials.pdlss.duration;\n if (credentials.pdlss?.scope) astrasync.scope = credentials.pdlss.scope;\n\n return {\n ...params,\n _meta: {\n ...params._meta,\n astrasync,\n },\n };\n}\n\n/**\n * Extract AstraSync credentials from MCP params' _meta block.\n */\nexport function extractMcpCredentials(params: McpParams): AstraSyncCredentials | null {\n const meta = params._meta?.astrasync as AstraSyncMeta | undefined;\n if (!meta?.agentId) return null;\n\n const credentials: AstraSyncCredentials = {\n agentId: meta.agentId,\n };\n\n if (meta.verifyUrl) credentials.verifyUrl = meta.verifyUrl;\n if (meta.challengeUrl) credentials.challengeUrl = meta.challengeUrl;\n\n if (meta.purpose || meta.duration || meta.scope) {\n credentials.pdlss = {};\n if (meta.purpose) credentials.pdlss.purpose = meta.purpose;\n if (meta.duration) credentials.pdlss.duration = meta.duration;\n if (meta.scope) credentials.pdlss.scope = meta.scope;\n }\n\n return credentials;\n}\n","/**\n * Cross-Protocol Transport Module\n *\n * Provides adapters for injecting/extracting AstraSync credentials\n * across HTTP, A2A, and MCP protocols.\n */\n\nimport type { AstraSyncCredentials, ProtocolTransport } from '../types';\nimport { setHttpHeaders, extractHttpCredentials } from './http';\nimport { setA2AMetadata, extractA2ACredentials } from './a2a';\nimport { setMcpMeta, extractMcpCredentials } from './mcp';\n\nexport { setHttpHeaders, extractHttpCredentials } from './http';\nexport { setA2AMetadata, extractA2ACredentials } from './a2a';\nexport { setMcpMeta, extractMcpCredentials } from './mcp';\n\n/**\n * Auto-detect protocol from request/context shape.\n */\nexport function detectProtocol(context: Record<string, unknown>): ProtocolTransport {\n // A2A: has metadata block with task-like structure\n if (context.metadata && typeof context.metadata === 'object') {\n return 'a2a';\n }\n\n // MCP: has _meta block (MCP convention)\n if (context._meta && typeof context._meta === 'object') {\n return 'mcp';\n }\n\n // Default to HTTP\n return 'http';\n}\n\n/**\n * Apply credentials to any protocol target.\n */\nexport function applyCredentials(\n protocol: ProtocolTransport,\n target: Record<string, unknown>,\n credentials: AstraSyncCredentials,\n): Record<string, unknown> {\n switch (protocol) {\n case 'http':\n return setHttpHeaders(target as Record<string, string>, credentials);\n case 'a2a':\n return setA2AMetadata(target, credentials);\n case 'mcp':\n return setMcpMeta(target, credentials);\n default:\n return target;\n }\n}\n\n/**\n * Extract credentials from any protocol context.\n */\nexport function extractCredentialsFromProtocol(\n protocol: ProtocolTransport,\n context: Record<string, unknown>,\n): AstraSyncCredentials | null {\n switch (protocol) {\n case 'http':\n return extractHttpCredentials(context as Record<string, string | string[] | undefined>);\n case 'a2a':\n return extractA2ACredentials(context);\n case 'mcp':\n return extractMcpCredentials(context);\n default:\n return null;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -54,6 +54,10 @@ interface GatewayConfig {
|
|
|
54
54
|
debug?: boolean;
|
|
55
55
|
/** Custom headers to send with verification requests */
|
|
56
56
|
customHeaders?: Record<string, string>;
|
|
57
|
+
/** This counterparty's URL (sent with verify-access requests for analytics) */
|
|
58
|
+
counterpartyUrl?: string;
|
|
59
|
+
/** This counterparty's type (sent with verify-access requests for analytics) */
|
|
60
|
+
counterpartyType?: CounterpartyType;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Verified agent information
|
|
@@ -202,6 +206,8 @@ interface VerificationRequest {
|
|
|
202
206
|
createSession?: boolean;
|
|
203
207
|
/** Counterparty type */
|
|
204
208
|
counterpartyType?: CounterpartyType;
|
|
209
|
+
/** Counterparty URL */
|
|
210
|
+
counterpartyUrl?: string;
|
|
205
211
|
/** Runtime challenge options */
|
|
206
212
|
runtimeChallengeOptions?: {
|
|
207
213
|
timeoutOverride?: number;
|
|
@@ -236,6 +242,8 @@ interface ExpressMiddlewareOptions extends GatewayConfig {
|
|
|
236
242
|
skipPaths?: string[];
|
|
237
243
|
/** Custom response for denied requests */
|
|
238
244
|
onDenied?: (result: VerificationResult, req: unknown, res: unknown) => void;
|
|
245
|
+
/** Automatically create sessions and record grant/deny decisions (default: true) */
|
|
246
|
+
recordDecisions?: boolean;
|
|
239
247
|
}
|
|
240
248
|
/**
|
|
241
249
|
* Next.js middleware options
|
|
@@ -356,4 +364,4 @@ interface CommerceShieldProps {
|
|
|
356
364
|
className?: string;
|
|
357
365
|
}
|
|
358
366
|
|
|
359
|
-
export type { AgentCredentials as A, CommerceShieldProps as C, EnhancedVerificationResult as E, GatewayConfig as G, NextJsMiddlewareOptions as N,
|
|
367
|
+
export type { AgentCredentials as A, CommerceShieldProps as C, EnhancedVerificationResult as E, GatewayConfig as G, NextJsMiddlewareOptions as N, PDLSSInfo as P, RouteAccessConfig as R, SDKOptions as S, TokenGuidance as T, VerificationRequest as V, AccessLevel as a, VerificationResult as b, AstraSyncCredentials as c, CounterpartyType as d, ExpressMiddlewareOptions as e, GuidanceInfo as f, ProtocolTransport as g, RuntimeChallengeResult as h, TrustLevel as i, VerifiedAgent as j, VerifiedDeveloper as k, VerifiedOrganization as l };
|
|
@@ -54,6 +54,10 @@ interface GatewayConfig {
|
|
|
54
54
|
debug?: boolean;
|
|
55
55
|
/** Custom headers to send with verification requests */
|
|
56
56
|
customHeaders?: Record<string, string>;
|
|
57
|
+
/** This counterparty's URL (sent with verify-access requests for analytics) */
|
|
58
|
+
counterpartyUrl?: string;
|
|
59
|
+
/** This counterparty's type (sent with verify-access requests for analytics) */
|
|
60
|
+
counterpartyType?: CounterpartyType;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Verified agent information
|
|
@@ -202,6 +206,8 @@ interface VerificationRequest {
|
|
|
202
206
|
createSession?: boolean;
|
|
203
207
|
/** Counterparty type */
|
|
204
208
|
counterpartyType?: CounterpartyType;
|
|
209
|
+
/** Counterparty URL */
|
|
210
|
+
counterpartyUrl?: string;
|
|
205
211
|
/** Runtime challenge options */
|
|
206
212
|
runtimeChallengeOptions?: {
|
|
207
213
|
timeoutOverride?: number;
|
|
@@ -236,6 +242,8 @@ interface ExpressMiddlewareOptions extends GatewayConfig {
|
|
|
236
242
|
skipPaths?: string[];
|
|
237
243
|
/** Custom response for denied requests */
|
|
238
244
|
onDenied?: (result: VerificationResult, req: unknown, res: unknown) => void;
|
|
245
|
+
/** Automatically create sessions and record grant/deny decisions (default: true) */
|
|
246
|
+
recordDecisions?: boolean;
|
|
239
247
|
}
|
|
240
248
|
/**
|
|
241
249
|
* Next.js middleware options
|
|
@@ -356,4 +364,4 @@ interface CommerceShieldProps {
|
|
|
356
364
|
className?: string;
|
|
357
365
|
}
|
|
358
366
|
|
|
359
|
-
export type { AgentCredentials as A, CommerceShieldProps as C, EnhancedVerificationResult as E, GatewayConfig as G, NextJsMiddlewareOptions as N,
|
|
367
|
+
export type { AgentCredentials as A, CommerceShieldProps as C, EnhancedVerificationResult as E, GatewayConfig as G, NextJsMiddlewareOptions as N, PDLSSInfo as P, RouteAccessConfig as R, SDKOptions as S, TokenGuidance as T, VerificationRequest as V, AccessLevel as a, VerificationResult as b, AstraSyncCredentials as c, CounterpartyType as d, ExpressMiddlewareOptions as e, GuidanceInfo as f, ProtocolTransport as g, RuntimeChallengeResult as h, TrustLevel as i, VerifiedAgent as j, VerifiedDeveloper as k, VerifiedOrganization as l };
|