@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.
Files changed (101) hide show
  1. package/dist/adapter-interface/interface.d.mts +71 -0
  2. package/dist/adapter-interface/interface.d.ts +71 -0
  3. package/dist/adapter-interface/interface.js +36 -0
  4. package/dist/adapter-interface/interface.js.map +1 -0
  5. package/dist/adapter-interface/interface.mjs +10 -0
  6. package/dist/adapter-interface/interface.mjs.map +1 -0
  7. package/dist/adapter-interface/purpose-mapping.d.mts +28 -0
  8. package/dist/adapter-interface/purpose-mapping.d.ts +28 -0
  9. package/dist/adapter-interface/purpose-mapping.js +117 -0
  10. package/dist/adapter-interface/purpose-mapping.js.map +1 -0
  11. package/dist/adapter-interface/purpose-mapping.mjs +89 -0
  12. package/dist/adapter-interface/purpose-mapping.mjs.map +1 -0
  13. package/dist/adapters/express.d.mts +2 -2
  14. package/dist/adapters/express.d.ts +2 -2
  15. package/dist/adapters/express.js +46 -9
  16. package/dist/adapters/express.js.map +1 -1
  17. package/dist/adapters/express.mjs +46 -9
  18. package/dist/adapters/express.mjs.map +1 -1
  19. package/dist/adapters/nextjs.d.mts +2 -2
  20. package/dist/adapters/nextjs.d.ts +2 -2
  21. package/dist/adapters/nextjs.js +19 -9
  22. package/dist/adapters/nextjs.js.map +1 -1
  23. package/dist/adapters/nextjs.mjs +19 -9
  24. package/dist/adapters/nextjs.mjs.map +1 -1
  25. package/dist/adapters/sdk.d.mts +2 -2
  26. package/dist/adapters/sdk.d.ts +2 -2
  27. package/dist/adapters/sdk.js +20 -4
  28. package/dist/adapters/sdk.js.map +1 -1
  29. package/dist/adapters/sdk.mjs +20 -4
  30. package/dist/adapters/sdk.mjs.map +1 -1
  31. package/dist/agent/index.d.mts +2 -0
  32. package/dist/agent/index.d.ts +2 -0
  33. package/dist/agent/index.js +354 -0
  34. package/dist/agent/index.js.map +1 -0
  35. package/dist/agent/index.mjs +323 -0
  36. package/dist/agent/index.mjs.map +1 -0
  37. package/dist/browser/browser-adapter.d.mts +106 -0
  38. package/dist/browser/browser-adapter.d.ts +106 -0
  39. package/dist/browser/browser-adapter.js +286 -0
  40. package/dist/browser/browser-adapter.js.map +1 -0
  41. package/dist/browser/browser-adapter.mjs +259 -0
  42. package/dist/browser/browser-adapter.mjs.map +1 -0
  43. package/dist/cli/index.d.mts +241 -0
  44. package/dist/cli/index.d.ts +241 -0
  45. package/dist/cli/index.js +3734 -0
  46. package/dist/cli/index.js.map +1 -0
  47. package/dist/cli/index.mjs +3688 -0
  48. package/dist/cli/index.mjs.map +1 -0
  49. package/dist/cursor/cursor-adapter.d.mts +92 -0
  50. package/dist/cursor/cursor-adapter.d.ts +92 -0
  51. package/dist/cursor/cursor-adapter.js +273 -0
  52. package/dist/cursor/cursor-adapter.js.map +1 -0
  53. package/dist/cursor/cursor-adapter.mjs +246 -0
  54. package/dist/cursor/cursor-adapter.mjs.map +1 -0
  55. package/dist/{express-DUDYpvNZ.d.mts → express-Cp4eg77F.d.mts} +1 -1
  56. package/dist/{express-BhD3mWsL.d.ts → express-DIEyq1Tz.d.ts} +1 -1
  57. package/dist/gateway/gateway.d.mts +70 -0
  58. package/dist/gateway/gateway.d.ts +70 -0
  59. package/dist/gateway/gateway.js +3726 -0
  60. package/dist/gateway/gateway.js.map +1 -0
  61. package/dist/gateway/gateway.mjs +3706 -0
  62. package/dist/gateway/gateway.mjs.map +1 -0
  63. package/dist/git-trigger/git-hooks.d.mts +69 -0
  64. package/dist/git-trigger/git-hooks.d.ts +69 -0
  65. package/dist/git-trigger/git-hooks.js +244 -0
  66. package/dist/git-trigger/git-hooks.js.map +1 -0
  67. package/dist/git-trigger/git-hooks.mjs +221 -0
  68. package/dist/git-trigger/git-hooks.mjs.map +1 -0
  69. package/dist/index-BhTbGU-o.d.mts +206 -0
  70. package/dist/index-Bhfxq9xI.d.ts +206 -0
  71. package/dist/index-CNkmHmpi.d.ts +89 -0
  72. package/dist/index-CoLebmwv.d.mts +89 -0
  73. package/dist/index.d.mts +8 -295
  74. package/dist/index.d.ts +8 -295
  75. package/dist/index.js +60 -21
  76. package/dist/index.js.map +1 -1
  77. package/dist/index.mjs +60 -21
  78. package/dist/index.mjs.map +1 -1
  79. package/dist/local-evaluator/evaluator.d.mts +55 -0
  80. package/dist/local-evaluator/evaluator.d.ts +55 -0
  81. package/dist/local-evaluator/evaluator.js +272 -0
  82. package/dist/local-evaluator/evaluator.js.map +1 -0
  83. package/dist/local-evaluator/evaluator.mjs +244 -0
  84. package/dist/local-evaluator/evaluator.mjs.map +1 -0
  85. package/dist/{nextjs-C9FPOjSh.d.ts → nextjs-Cag7libc.d.ts} +1 -1
  86. package/dist/{nextjs-BtqyLSVQ.d.mts → nextjs-_C_FcJY5.d.mts} +1 -1
  87. package/dist/{sdk-BkVigGjF.d.ts → sdk-CMPDFUjo.d.ts} +3 -1
  88. package/dist/{sdk-xCbZgeZx.d.mts → sdk-DAJahT3p.d.mts} +3 -1
  89. package/dist/transport/index.d.mts +2 -0
  90. package/dist/transport/index.d.ts +2 -0
  91. package/dist/transport/index.js +211 -0
  92. package/dist/transport/index.js.map +1 -0
  93. package/dist/transport/index.mjs +176 -0
  94. package/dist/transport/index.mjs.map +1 -0
  95. package/dist/{types-CS6v75-d.d.mts → types-Bf8pML07.d.mts} +9 -1
  96. package/dist/{types-CS6v75-d.d.ts → types-Bf8pML07.d.ts} +9 -1
  97. package/dist/types-BvpGdsv1.d.mts +153 -0
  98. package/dist/types-Ce2mFJkO.d.ts +153 -0
  99. package/dist/ui/index.d.mts +1 -1
  100. package/dist/ui/index.d.ts +1 -1
  101. package/package.json +46 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/git-trigger/git-hooks.ts","../../src/adapter-interface/purpose-mapping.ts"],"sourcesContent":["/**\n * Git Trigger — Enterprise git push / PR verification\n *\n * Installs git hooks that evaluate changed files against the PDLSS policy\n * before allowing pushes to remote repositories.\n *\n * Two enforcement modes (admin-configurable):\n * - block: non-zero exit prevents the push\n * - warn: push proceeds but warning is printed\n */\n\nimport { existsSync, mkdirSync, writeFileSync, readFileSync, chmodSync } from 'fs';\nimport { join } from 'path';\nimport { execSync } from 'child_process';\nimport type { AstraSyncGateway } from '../gateway/gateway';\nimport { mapToolToPurpose, extractTarget, extractNetworkDomains } from '../adapter-interface/purpose-mapping';\nimport type { PDLSSContext, VerificationDecision } from '../gateway/types';\n\n// -----------------------------------------------------------------------\n// Configuration\n// -----------------------------------------------------------------------\n\nexport interface GitTriggerConfig {\n /** Block the push or just warn (default: 'warn') */\n enforcement: 'block' | 'warn';\n /** Which git hooks to install (default: ['pre-push']) */\n hooks: ('pre-push' | 'pre-commit')[];\n /** Only enforce on these branches (default: all) */\n protectedBranches?: string[];\n /** Custom message for blocked pushes */\n blockMessage?: string;\n}\n\nconst DEFAULT_CONFIG: GitTriggerConfig = {\n enforcement: 'warn',\n hooks: ['pre-push'],\n};\n\n// -----------------------------------------------------------------------\n// Hook script content\n// -----------------------------------------------------------------------\n\nconst HOOK_MARKER = '# AstraSync Local Guard — managed hook';\n\nfunction makeHookScript(hookType: 'pre-push' | 'pre-commit'): string {\n return `#!/bin/sh\n${HOOK_MARKER}\n# Runs AstraSync verification on changed files before ${hookType === 'pre-push' ? 'push' : 'commit'}.\n# Installed by: astrasync guard install-hooks\n# To remove: delete this file or run astrasync guard uninstall-hooks\n\nnpx astrasync guard check --trigger=${hookType} \"$@\"\nexit $?\n`;\n}\n\n// -----------------------------------------------------------------------\n// Hook installer\n// -----------------------------------------------------------------------\n\n/**\n * Install git hooks into the repository.\n * Returns the paths of installed hooks.\n */\nexport function installGitHooks(\n repoRoot: string,\n config: Partial<GitTriggerConfig> = {},\n): { installed: string[]; skipped: string[] } {\n const merged = { ...DEFAULT_CONFIG, ...config };\n const hooksDir = join(repoRoot, '.git', 'hooks');\n const installed: string[] = [];\n const skipped: string[] = [];\n\n if (!existsSync(join(repoRoot, '.git'))) {\n throw new Error(`Not a git repository: ${repoRoot}`);\n }\n\n if (!existsSync(hooksDir)) {\n mkdirSync(hooksDir, { recursive: true });\n }\n\n for (const hookType of merged.hooks) {\n const hookPath = join(hooksDir, hookType);\n\n // Don't overwrite non-AstraSync hooks\n if (existsSync(hookPath)) {\n const content = readFileSync(hookPath, 'utf-8');\n if (!content.includes(HOOK_MARKER)) {\n skipped.push(hookPath);\n continue;\n }\n }\n\n writeFileSync(hookPath, makeHookScript(hookType), 'utf-8');\n chmodSync(hookPath, 0o755);\n installed.push(hookPath);\n }\n\n return { installed, skipped };\n}\n\n/**\n * Remove AstraSync-managed git hooks.\n */\nexport function uninstallGitHooks(\n repoRoot: string,\n hooks: ('pre-push' | 'pre-commit')[] = ['pre-push'],\n): string[] {\n const hooksDir = join(repoRoot, '.git', 'hooks');\n const removed: string[] = [];\n\n for (const hookType of hooks) {\n const hookPath = join(hooksDir, hookType);\n if (existsSync(hookPath)) {\n const content = readFileSync(hookPath, 'utf-8');\n if (content.includes(HOOK_MARKER)) {\n const { unlinkSync } = require('fs');\n unlinkSync(hookPath);\n removed.push(hookPath);\n }\n }\n }\n\n return removed;\n}\n\n// -----------------------------------------------------------------------\n// Evaluation logic\n// -----------------------------------------------------------------------\n\n/**\n * Get list of changed files for the current trigger context.\n */\nexport function getChangedFiles(trigger: 'pre-push' | 'pre-commit', repoRoot: string): string[] {\n try {\n let output: string;\n if (trigger === 'pre-push') {\n // Files changed between HEAD and remote tracking branch\n output = execSync('git diff --name-only @{push}.. 2>/dev/null || git diff --name-only HEAD~1', {\n cwd: repoRoot,\n encoding: 'utf-8',\n });\n } else {\n // Files staged for commit\n output = execSync('git diff --cached --name-only', {\n cwd: repoRoot,\n encoding: 'utf-8',\n });\n }\n return output.split('\\n').filter(f => f.trim().length > 0);\n } catch {\n return [];\n }\n}\n\n/**\n * Map a file change to a PDLSS context for evaluation.\n */\nexport function fileChangeToPDLSSContext(filePath: string): PDLSSContext {\n const purpose = mapToolToPurpose('file_write');\n const target = extractTarget('file_write', { path: filePath });\n\n return {\n purpose,\n action: 'file_write',\n target,\n dataAccess: ['write'],\n resourceType: 'file',\n };\n}\n\n/**\n * Evaluate changed files against the gateway policy.\n * Returns a summary of allow/deny/review decisions.\n */\nexport async function evaluateChangedFiles(\n gateway: AstraSyncGateway,\n files: string[],\n config: Partial<GitTriggerConfig> = {},\n): Promise<GitCheckResult> {\n const merged = { ...DEFAULT_CONFIG, ...config };\n const results: { file: string; decision: VerificationDecision }[] = [];\n let blocked = 0;\n let warned = 0;\n let allowed = 0;\n\n for (const file of files) {\n const context = fileChangeToPDLSSContext(file);\n const decision = await gateway.evaluate(context);\n\n results.push({ file, decision });\n\n if (decision.recommendation === 'DENY') {\n blocked++;\n } else if (decision.recommendation === 'MANUAL_REVIEW') {\n warned++;\n } else {\n allowed++;\n }\n }\n\n const shouldBlock = merged.enforcement === 'block' && (blocked > 0);\n\n return {\n allowed,\n blocked,\n warned,\n total: files.length,\n shouldBlock,\n enforcement: merged.enforcement,\n results,\n blockMessage: shouldBlock\n ? (merged.blockMessage || `AstraSync blocked push: ${blocked} file(s) denied by policy`)\n : undefined,\n };\n}\n\nexport interface GitCheckResult {\n allowed: number;\n blocked: number;\n warned: number;\n total: number;\n shouldBlock: boolean;\n enforcement: 'block' | 'warn';\n results: { file: string; decision: VerificationDecision }[];\n blockMessage?: string;\n}\n\n/**\n * Check if the current branch is protected.\n */\nexport function isProtectedBranch(config: Partial<GitTriggerConfig> = {}): boolean {\n if (!config.protectedBranches || config.protectedBranches.length === 0) {\n return true; // All branches protected by default\n }\n\n try {\n const branch = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }).trim();\n return config.protectedBranches.some(pattern => {\n if (pattern === branch) return true;\n if (pattern.endsWith('*') && branch.startsWith(pattern.slice(0, -1))) return true;\n return false;\n });\n } catch {\n return true; // Can't determine branch, assume protected\n }\n}\n","/**\n * Shared purpose mapping utilities for Layer 4 platform adapters.\n *\n * Maps platform-native action names to PDLSS purpose categories.\n * Used by OpenClaw CLI, Cursor, browser, and future adapters.\n */\n\n// -----------------------------------------------------------------------\n// Tool → Purpose mapping\n// -----------------------------------------------------------------------\n\n/** Standard tool name → PDLSS purpose mapping used by all adapters */\nconst TOOL_PURPOSE_MAP: Record<string, string> = {\n // Shell\n shell_exec: 'shell.exec',\n run_command: 'shell.exec',\n execute: 'shell.exec',\n terminal_exec: 'shell.exec',\n run_terminal_command: 'shell.exec',\n\n // File read\n file_read: 'file.read',\n read_file: 'file.read',\n\n // File write\n file_write: 'file.write',\n write_file: 'file.write',\n create_file: 'file.write',\n edit_file: 'file.write',\n\n // File delete\n file_delete: 'file.delete',\n delete_file: 'file.delete',\n\n // Network\n http_request: 'network.request',\n fetch: 'network.request',\n web_request: 'network.request',\n\n // Email\n send_email: 'email.send',\n read_email: 'email.read',\n\n // Calendar\n create_event: 'calendar.create',\n\n // Database\n query_database: 'database.query',\n write_database: 'database.write',\n\n // Payment\n payment_execute: 'payment.execute',\n};\n\n/**\n * Map a tool/action name to a PDLSS purpose category.\n * Returns `tool.<name>` for unmapped tools (denied by default).\n */\nexport function mapToolToPurpose(toolName: string): string {\n return TOOL_PURPOSE_MAP[toolName] || `tool.${toolName}`;\n}\n\n/**\n * Register additional tool → purpose mappings (e.g. from a platform adapter).\n * Does not overwrite existing mappings.\n */\nexport function registerToolMappings(mappings: Record<string, string>): void {\n for (const [tool, purpose] of Object.entries(mappings)) {\n if (!(tool in TOOL_PURPOSE_MAP)) {\n TOOL_PURPOSE_MAP[tool] = purpose;\n }\n }\n}\n\n// -----------------------------------------------------------------------\n// Target extraction\n// -----------------------------------------------------------------------\n\n/**\n * Extract the meaningful target string from tool arguments.\n * Uses the purpose category to determine which argument field is relevant.\n */\nexport function extractTarget(toolName: string, args: Record<string, unknown>): string {\n const purpose = mapToolToPurpose(toolName);\n\n if (purpose.startsWith('shell.')) {\n return String(args.command || args.cmd || args.script || '');\n }\n\n if (purpose.startsWith('file.')) {\n return String(args.path || args.file || args.filename || args.file_path || '');\n }\n\n if (purpose.startsWith('network.')) {\n return String(args.url || args.endpoint || args.uri || '');\n }\n\n if (purpose.startsWith('email.')) {\n return String(args.to || args.recipient || args.address || '');\n }\n\n if (purpose.startsWith('database.')) {\n return String(args.query || args.table || '');\n }\n\n if (purpose.startsWith('payment.')) {\n return String(args.description || args.merchant || args.amount || '');\n }\n\n // Fallback: try common field names\n if (args.command) return String(args.command);\n if (args.path) return String(args.path);\n if (args.url) return String(args.url);\n\n // Default: use first non-empty string argument or tool name\n for (const val of Object.values(args)) {\n if (typeof val === 'string' && val.length > 0) return val;\n }\n return toolName;\n}\n\n// -----------------------------------------------------------------------\n// Network domain extraction\n// -----------------------------------------------------------------------\n\n/**\n * Extract network domains from a URL target.\n * Returns undefined if the target is not a URL.\n */\nexport function extractNetworkDomains(target: string): string[] | undefined {\n try {\n if (target.startsWith('http://') || target.startsWith('https://')) {\n const url = new URL(target);\n return [url.hostname];\n }\n } catch {\n // Not a URL\n }\n return undefined;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,206 @@
1
+ import { c as AstraSyncCredentials, g as ProtocolTransport, G as GatewayConfig } from './types-Bf8pML07.mjs';
2
+
3
+ /**
4
+ * AgentClient — Credential Presentation
5
+ *
6
+ * Agent-side SDK for automatically injecting AstraSync credentials
7
+ * into outgoing requests across all supported protocols.
8
+ */
9
+
10
+ interface AgentClientConfig {
11
+ agentId: string;
12
+ verifyUrl?: string;
13
+ challengeUrl?: string;
14
+ pdlss?: AstraSyncCredentials['pdlss'];
15
+ }
16
+ interface FetchOptions extends RequestInit {
17
+ purpose?: string;
18
+ action?: string;
19
+ }
20
+ declare class AgentClient {
21
+ private credentials;
22
+ constructor(config: AgentClientConfig);
23
+ /**
24
+ * Make an HTTP request with AstraSync headers automatically injected.
25
+ */
26
+ fetch(url: string, options?: FetchOptions): Promise<Response>;
27
+ /**
28
+ * Prepare A2A task metadata with AstraSync credentials.
29
+ */
30
+ prepareA2AMetadata(task: Record<string, unknown>, overrides?: {
31
+ purpose?: string;
32
+ action?: string;
33
+ }): Record<string, unknown>;
34
+ /**
35
+ * Prepare MCP params with AstraSync _meta.
36
+ */
37
+ prepareMcpMeta(params: Record<string, unknown>, overrides?: {
38
+ purpose?: string;
39
+ action?: string;
40
+ }): Record<string, unknown>;
41
+ /**
42
+ * Generic: apply credentials to any protocol.
43
+ */
44
+ applyCredentials(protocol: ProtocolTransport, target: Record<string, unknown>, overrides?: {
45
+ purpose?: string;
46
+ action?: string;
47
+ }): Record<string, unknown>;
48
+ private buildCredentials;
49
+ }
50
+
51
+ /**
52
+ * ChallengeHandler — Agent-Side Runtime Challenge Responder
53
+ *
54
+ * Handles incoming runtime challenges from AstraSync's verification service.
55
+ * Agents register pending counterparties before initiating contact,
56
+ * then this handler validates and responds to challenges.
57
+ */
58
+ interface ChallengeResponse {
59
+ status: number;
60
+ body: {
61
+ challengeId: string;
62
+ acknowledged: boolean;
63
+ pendingCounterparties: string[];
64
+ respondedAt: string;
65
+ error?: string;
66
+ };
67
+ }
68
+ interface ChallengeHandlerConfig {
69
+ agentId: string;
70
+ }
71
+ declare class ChallengeHandler {
72
+ private agentId;
73
+ private pendingCounterparties;
74
+ constructor(config: ChallengeHandlerConfig);
75
+ /**
76
+ * Register a counterparty as pending (before initiating contact).
77
+ */
78
+ registerPending(counterpartyId: string): void;
79
+ /**
80
+ * Remove a counterparty from pending list (after interaction complete).
81
+ */
82
+ removePending(counterpartyId: string): void;
83
+ /**
84
+ * Get current pending counterparties list.
85
+ */
86
+ getPendingList(): string[];
87
+ /**
88
+ * Express middleware for the challenge endpoint.
89
+ * Mount at: app.post('/astrasync/challenge', handler.expressMiddleware())
90
+ */
91
+ expressMiddleware(): (req: {
92
+ body: unknown;
93
+ }, res: {
94
+ status: (code: number) => {
95
+ json: (body: unknown) => void;
96
+ };
97
+ }) => void;
98
+ /**
99
+ * Generic handler (framework-agnostic).
100
+ * Returns { status, body } for the caller to send.
101
+ */
102
+ handleChallenge(body: unknown): ChallengeResponse;
103
+ }
104
+
105
+ /**
106
+ * PDLSS Formatter — Transport Format Conversion
107
+ *
108
+ * Converts between full PDLSS boundaries and compact transport format
109
+ * used in HTTP headers, A2A metadata, and MCP _meta blocks.
110
+ */
111
+
112
+ /**
113
+ * Full PDLSS configuration (as returned by the backend).
114
+ */
115
+ interface PDLSSConfig {
116
+ purpose?: {
117
+ categories?: string[];
118
+ allowedActions?: string[];
119
+ deniedActions?: string[];
120
+ };
121
+ duration?: {
122
+ maxSessionDuration?: number;
123
+ ttl?: number;
124
+ allowedDays?: number[];
125
+ allowedHours?: {
126
+ start: number;
127
+ end: number;
128
+ };
129
+ };
130
+ limits?: {
131
+ autonomousThreshold?: number;
132
+ stepUpThreshold?: number;
133
+ approvalThreshold?: number;
134
+ currency?: string;
135
+ };
136
+ scope?: {
137
+ jurisdictions?: string[];
138
+ resources?: string[];
139
+ resourceTypes?: string[];
140
+ };
141
+ selfInstantiation?: {
142
+ allowed: boolean;
143
+ maxDepth?: number;
144
+ maxSubAgents?: number;
145
+ };
146
+ }
147
+ /**
148
+ * Compact transport format (embedded in headers/metadata).
149
+ */
150
+ type TransportPDLSS = NonNullable<AstraSyncCredentials['pdlss']>;
151
+ /**
152
+ * Convert full PDLSS boundaries into compact transport format.
153
+ * Used by AgentClient when building credential headers/metadata.
154
+ */
155
+ declare function formatPDLSSForTransport(pdlss: PDLSSConfig): TransportPDLSS;
156
+ /**
157
+ * Parse transport format back into full PDLSS config.
158
+ * Used by counterparty-side when receiving credentials.
159
+ */
160
+ declare function parsePDLSSFromTransport(transport: TransportPDLSS): PDLSSConfig;
161
+
162
+ /**
163
+ * Decision Client — Counterparty-Side Decision Recording
164
+ *
165
+ * Helper for counterparties to record their grant/deny decisions
166
+ * back to AstraSync after receiving a verification result.
167
+ */
168
+
169
+ interface RecordDecisionParams {
170
+ sessionId: string;
171
+ decision: 'granted' | 'denied';
172
+ reason?: string;
173
+ tokenIssued?: boolean;
174
+ auditId?: string;
175
+ }
176
+ interface RecordDecisionResult {
177
+ recorded: boolean;
178
+ blockchainTxHash?: string;
179
+ }
180
+ /**
181
+ * Record a counterparty's grant/deny decision for a verification session.
182
+ * POST to /agents/verify-access/:sessionId/decision
183
+ */
184
+ declare function recordDecision(config: GatewayConfig, params: RecordDecisionParams): Promise<RecordDecisionResult>;
185
+
186
+ /**
187
+ * Agent-Side SDK Module
188
+ *
189
+ * Tools for AI agents to present credentials, handle challenges,
190
+ * and interact with the AstraSync verification protocol.
191
+ */
192
+
193
+ type index_AgentClient = AgentClient;
194
+ declare const index_AgentClient: typeof AgentClient;
195
+ type index_ChallengeHandler = ChallengeHandler;
196
+ declare const index_ChallengeHandler: typeof ChallengeHandler;
197
+ type index_PDLSSConfig = PDLSSConfig;
198
+ type index_TransportPDLSS = TransportPDLSS;
199
+ declare const index_formatPDLSSForTransport: typeof formatPDLSSForTransport;
200
+ declare const index_parsePDLSSFromTransport: typeof parsePDLSSFromTransport;
201
+ declare const index_recordDecision: typeof recordDecision;
202
+ declare namespace index {
203
+ export { index_AgentClient as AgentClient, index_ChallengeHandler as ChallengeHandler, type index_PDLSSConfig as PDLSSConfig, type index_TransportPDLSS as TransportPDLSS, index_formatPDLSSForTransport as formatPDLSSForTransport, index_parsePDLSSFromTransport as parsePDLSSFromTransport, index_recordDecision as recordDecision };
204
+ }
205
+
206
+ export { AgentClient as A, ChallengeHandler as C, type PDLSSConfig as P, type TransportPDLSS as T, formatPDLSSForTransport as f, index as i, parsePDLSSFromTransport as p, recordDecision as r };
@@ -0,0 +1,206 @@
1
+ import { c as AstraSyncCredentials, g as ProtocolTransport, G as GatewayConfig } from './types-Bf8pML07.js';
2
+
3
+ /**
4
+ * AgentClient — Credential Presentation
5
+ *
6
+ * Agent-side SDK for automatically injecting AstraSync credentials
7
+ * into outgoing requests across all supported protocols.
8
+ */
9
+
10
+ interface AgentClientConfig {
11
+ agentId: string;
12
+ verifyUrl?: string;
13
+ challengeUrl?: string;
14
+ pdlss?: AstraSyncCredentials['pdlss'];
15
+ }
16
+ interface FetchOptions extends RequestInit {
17
+ purpose?: string;
18
+ action?: string;
19
+ }
20
+ declare class AgentClient {
21
+ private credentials;
22
+ constructor(config: AgentClientConfig);
23
+ /**
24
+ * Make an HTTP request with AstraSync headers automatically injected.
25
+ */
26
+ fetch(url: string, options?: FetchOptions): Promise<Response>;
27
+ /**
28
+ * Prepare A2A task metadata with AstraSync credentials.
29
+ */
30
+ prepareA2AMetadata(task: Record<string, unknown>, overrides?: {
31
+ purpose?: string;
32
+ action?: string;
33
+ }): Record<string, unknown>;
34
+ /**
35
+ * Prepare MCP params with AstraSync _meta.
36
+ */
37
+ prepareMcpMeta(params: Record<string, unknown>, overrides?: {
38
+ purpose?: string;
39
+ action?: string;
40
+ }): Record<string, unknown>;
41
+ /**
42
+ * Generic: apply credentials to any protocol.
43
+ */
44
+ applyCredentials(protocol: ProtocolTransport, target: Record<string, unknown>, overrides?: {
45
+ purpose?: string;
46
+ action?: string;
47
+ }): Record<string, unknown>;
48
+ private buildCredentials;
49
+ }
50
+
51
+ /**
52
+ * ChallengeHandler — Agent-Side Runtime Challenge Responder
53
+ *
54
+ * Handles incoming runtime challenges from AstraSync's verification service.
55
+ * Agents register pending counterparties before initiating contact,
56
+ * then this handler validates and responds to challenges.
57
+ */
58
+ interface ChallengeResponse {
59
+ status: number;
60
+ body: {
61
+ challengeId: string;
62
+ acknowledged: boolean;
63
+ pendingCounterparties: string[];
64
+ respondedAt: string;
65
+ error?: string;
66
+ };
67
+ }
68
+ interface ChallengeHandlerConfig {
69
+ agentId: string;
70
+ }
71
+ declare class ChallengeHandler {
72
+ private agentId;
73
+ private pendingCounterparties;
74
+ constructor(config: ChallengeHandlerConfig);
75
+ /**
76
+ * Register a counterparty as pending (before initiating contact).
77
+ */
78
+ registerPending(counterpartyId: string): void;
79
+ /**
80
+ * Remove a counterparty from pending list (after interaction complete).
81
+ */
82
+ removePending(counterpartyId: string): void;
83
+ /**
84
+ * Get current pending counterparties list.
85
+ */
86
+ getPendingList(): string[];
87
+ /**
88
+ * Express middleware for the challenge endpoint.
89
+ * Mount at: app.post('/astrasync/challenge', handler.expressMiddleware())
90
+ */
91
+ expressMiddleware(): (req: {
92
+ body: unknown;
93
+ }, res: {
94
+ status: (code: number) => {
95
+ json: (body: unknown) => void;
96
+ };
97
+ }) => void;
98
+ /**
99
+ * Generic handler (framework-agnostic).
100
+ * Returns { status, body } for the caller to send.
101
+ */
102
+ handleChallenge(body: unknown): ChallengeResponse;
103
+ }
104
+
105
+ /**
106
+ * PDLSS Formatter — Transport Format Conversion
107
+ *
108
+ * Converts between full PDLSS boundaries and compact transport format
109
+ * used in HTTP headers, A2A metadata, and MCP _meta blocks.
110
+ */
111
+
112
+ /**
113
+ * Full PDLSS configuration (as returned by the backend).
114
+ */
115
+ interface PDLSSConfig {
116
+ purpose?: {
117
+ categories?: string[];
118
+ allowedActions?: string[];
119
+ deniedActions?: string[];
120
+ };
121
+ duration?: {
122
+ maxSessionDuration?: number;
123
+ ttl?: number;
124
+ allowedDays?: number[];
125
+ allowedHours?: {
126
+ start: number;
127
+ end: number;
128
+ };
129
+ };
130
+ limits?: {
131
+ autonomousThreshold?: number;
132
+ stepUpThreshold?: number;
133
+ approvalThreshold?: number;
134
+ currency?: string;
135
+ };
136
+ scope?: {
137
+ jurisdictions?: string[];
138
+ resources?: string[];
139
+ resourceTypes?: string[];
140
+ };
141
+ selfInstantiation?: {
142
+ allowed: boolean;
143
+ maxDepth?: number;
144
+ maxSubAgents?: number;
145
+ };
146
+ }
147
+ /**
148
+ * Compact transport format (embedded in headers/metadata).
149
+ */
150
+ type TransportPDLSS = NonNullable<AstraSyncCredentials['pdlss']>;
151
+ /**
152
+ * Convert full PDLSS boundaries into compact transport format.
153
+ * Used by AgentClient when building credential headers/metadata.
154
+ */
155
+ declare function formatPDLSSForTransport(pdlss: PDLSSConfig): TransportPDLSS;
156
+ /**
157
+ * Parse transport format back into full PDLSS config.
158
+ * Used by counterparty-side when receiving credentials.
159
+ */
160
+ declare function parsePDLSSFromTransport(transport: TransportPDLSS): PDLSSConfig;
161
+
162
+ /**
163
+ * Decision Client — Counterparty-Side Decision Recording
164
+ *
165
+ * Helper for counterparties to record their grant/deny decisions
166
+ * back to AstraSync after receiving a verification result.
167
+ */
168
+
169
+ interface RecordDecisionParams {
170
+ sessionId: string;
171
+ decision: 'granted' | 'denied';
172
+ reason?: string;
173
+ tokenIssued?: boolean;
174
+ auditId?: string;
175
+ }
176
+ interface RecordDecisionResult {
177
+ recorded: boolean;
178
+ blockchainTxHash?: string;
179
+ }
180
+ /**
181
+ * Record a counterparty's grant/deny decision for a verification session.
182
+ * POST to /agents/verify-access/:sessionId/decision
183
+ */
184
+ declare function recordDecision(config: GatewayConfig, params: RecordDecisionParams): Promise<RecordDecisionResult>;
185
+
186
+ /**
187
+ * Agent-Side SDK Module
188
+ *
189
+ * Tools for AI agents to present credentials, handle challenges,
190
+ * and interact with the AstraSync verification protocol.
191
+ */
192
+
193
+ type index_AgentClient = AgentClient;
194
+ declare const index_AgentClient: typeof AgentClient;
195
+ type index_ChallengeHandler = ChallengeHandler;
196
+ declare const index_ChallengeHandler: typeof ChallengeHandler;
197
+ type index_PDLSSConfig = PDLSSConfig;
198
+ type index_TransportPDLSS = TransportPDLSS;
199
+ declare const index_formatPDLSSForTransport: typeof formatPDLSSForTransport;
200
+ declare const index_parsePDLSSFromTransport: typeof parsePDLSSFromTransport;
201
+ declare const index_recordDecision: typeof recordDecision;
202
+ declare namespace index {
203
+ export { index_AgentClient as AgentClient, index_ChallengeHandler as ChallengeHandler, type index_PDLSSConfig as PDLSSConfig, type index_TransportPDLSS as TransportPDLSS, index_formatPDLSSForTransport as formatPDLSSForTransport, index_parsePDLSSFromTransport as parsePDLSSFromTransport, index_recordDecision as recordDecision };
204
+ }
205
+
206
+ export { AgentClient as A, ChallengeHandler as C, type PDLSSConfig as P, type TransportPDLSS as T, formatPDLSSForTransport as f, index as i, parsePDLSSFromTransport as p, recordDecision as r };
@@ -0,0 +1,89 @@
1
+ import { c as AstraSyncCredentials, g as ProtocolTransport } from './types-Bf8pML07.js';
2
+
3
+ /**
4
+ * HTTP Transport Adapter
5
+ *
6
+ * Maps AstraSync credentials to/from HTTP headers (X-Astra-* convention).
7
+ */
8
+
9
+ /**
10
+ * Inject AstraSync credentials into HTTP headers.
11
+ */
12
+ declare function setHttpHeaders(headers: Record<string, string>, credentials: AstraSyncCredentials): Record<string, string>;
13
+ /**
14
+ * Extract AstraSync credentials from HTTP headers.
15
+ */
16
+ declare function extractHttpCredentials(headers: Record<string, string | string[] | undefined>): AstraSyncCredentials | null;
17
+
18
+ /**
19
+ * A2A (Agent-to-Agent) Transport Adapter
20
+ *
21
+ * Maps AstraSync credentials to/from A2A task metadata.astrasync block.
22
+ */
23
+
24
+ interface A2ATask {
25
+ metadata?: Record<string, unknown>;
26
+ [key: string]: unknown;
27
+ }
28
+ /**
29
+ * Add AstraSync credentials to an A2A task's metadata block.
30
+ */
31
+ declare function setA2AMetadata(task: A2ATask, credentials: AstraSyncCredentials): A2ATask;
32
+ /**
33
+ * Extract AstraSync credentials from an A2A task's metadata block.
34
+ */
35
+ declare function extractA2ACredentials(task: A2ATask): AstraSyncCredentials | null;
36
+
37
+ /**
38
+ * MCP (Model Context Protocol) Transport Adapter
39
+ *
40
+ * Maps AstraSync credentials to/from MCP params._meta.astrasync block.
41
+ */
42
+
43
+ interface McpParams {
44
+ _meta?: Record<string, unknown>;
45
+ [key: string]: unknown;
46
+ }
47
+ /**
48
+ * Add AstraSync credentials to MCP params' _meta block.
49
+ */
50
+ declare function setMcpMeta(params: McpParams, credentials: AstraSyncCredentials): McpParams;
51
+ /**
52
+ * Extract AstraSync credentials from MCP params' _meta block.
53
+ */
54
+ declare function extractMcpCredentials(params: McpParams): AstraSyncCredentials | null;
55
+
56
+ /**
57
+ * Cross-Protocol Transport Module
58
+ *
59
+ * Provides adapters for injecting/extracting AstraSync credentials
60
+ * across HTTP, A2A, and MCP protocols.
61
+ */
62
+
63
+ /**
64
+ * Auto-detect protocol from request/context shape.
65
+ */
66
+ declare function detectProtocol(context: Record<string, unknown>): ProtocolTransport;
67
+ /**
68
+ * Apply credentials to any protocol target.
69
+ */
70
+ declare function applyCredentials(protocol: ProtocolTransport, target: Record<string, unknown>, credentials: AstraSyncCredentials): Record<string, unknown>;
71
+ /**
72
+ * Extract credentials from any protocol context.
73
+ */
74
+ declare function extractCredentialsFromProtocol(protocol: ProtocolTransport, context: Record<string, unknown>): AstraSyncCredentials | null;
75
+
76
+ declare const index_applyCredentials: typeof applyCredentials;
77
+ declare const index_detectProtocol: typeof detectProtocol;
78
+ declare const index_extractA2ACredentials: typeof extractA2ACredentials;
79
+ declare const index_extractCredentialsFromProtocol: typeof extractCredentialsFromProtocol;
80
+ declare const index_extractHttpCredentials: typeof extractHttpCredentials;
81
+ declare const index_extractMcpCredentials: typeof extractMcpCredentials;
82
+ declare const index_setA2AMetadata: typeof setA2AMetadata;
83
+ declare const index_setHttpHeaders: typeof setHttpHeaders;
84
+ declare const index_setMcpMeta: typeof setMcpMeta;
85
+ declare namespace index {
86
+ export { index_applyCredentials as applyCredentials, index_detectProtocol as detectProtocol, index_extractA2ACredentials as extractA2ACredentials, index_extractCredentialsFromProtocol as extractCredentialsFromProtocol, index_extractHttpCredentials as extractHttpCredentials, index_extractMcpCredentials as extractMcpCredentials, index_setA2AMetadata as setA2AMetadata, index_setHttpHeaders as setHttpHeaders, index_setMcpMeta as setMcpMeta };
87
+ }
88
+
89
+ export { applyCredentials as a, extractCredentialsFromProtocol as b, extractHttpCredentials as c, detectProtocol as d, extractA2ACredentials as e, extractMcpCredentials as f, setHttpHeaders as g, setMcpMeta as h, index as i, setA2AMetadata as s };
@@ -0,0 +1,89 @@
1
+ import { c as AstraSyncCredentials, g as ProtocolTransport } from './types-Bf8pML07.mjs';
2
+
3
+ /**
4
+ * HTTP Transport Adapter
5
+ *
6
+ * Maps AstraSync credentials to/from HTTP headers (X-Astra-* convention).
7
+ */
8
+
9
+ /**
10
+ * Inject AstraSync credentials into HTTP headers.
11
+ */
12
+ declare function setHttpHeaders(headers: Record<string, string>, credentials: AstraSyncCredentials): Record<string, string>;
13
+ /**
14
+ * Extract AstraSync credentials from HTTP headers.
15
+ */
16
+ declare function extractHttpCredentials(headers: Record<string, string | string[] | undefined>): AstraSyncCredentials | null;
17
+
18
+ /**
19
+ * A2A (Agent-to-Agent) Transport Adapter
20
+ *
21
+ * Maps AstraSync credentials to/from A2A task metadata.astrasync block.
22
+ */
23
+
24
+ interface A2ATask {
25
+ metadata?: Record<string, unknown>;
26
+ [key: string]: unknown;
27
+ }
28
+ /**
29
+ * Add AstraSync credentials to an A2A task's metadata block.
30
+ */
31
+ declare function setA2AMetadata(task: A2ATask, credentials: AstraSyncCredentials): A2ATask;
32
+ /**
33
+ * Extract AstraSync credentials from an A2A task's metadata block.
34
+ */
35
+ declare function extractA2ACredentials(task: A2ATask): AstraSyncCredentials | null;
36
+
37
+ /**
38
+ * MCP (Model Context Protocol) Transport Adapter
39
+ *
40
+ * Maps AstraSync credentials to/from MCP params._meta.astrasync block.
41
+ */
42
+
43
+ interface McpParams {
44
+ _meta?: Record<string, unknown>;
45
+ [key: string]: unknown;
46
+ }
47
+ /**
48
+ * Add AstraSync credentials to MCP params' _meta block.
49
+ */
50
+ declare function setMcpMeta(params: McpParams, credentials: AstraSyncCredentials): McpParams;
51
+ /**
52
+ * Extract AstraSync credentials from MCP params' _meta block.
53
+ */
54
+ declare function extractMcpCredentials(params: McpParams): AstraSyncCredentials | null;
55
+
56
+ /**
57
+ * Cross-Protocol Transport Module
58
+ *
59
+ * Provides adapters for injecting/extracting AstraSync credentials
60
+ * across HTTP, A2A, and MCP protocols.
61
+ */
62
+
63
+ /**
64
+ * Auto-detect protocol from request/context shape.
65
+ */
66
+ declare function detectProtocol(context: Record<string, unknown>): ProtocolTransport;
67
+ /**
68
+ * Apply credentials to any protocol target.
69
+ */
70
+ declare function applyCredentials(protocol: ProtocolTransport, target: Record<string, unknown>, credentials: AstraSyncCredentials): Record<string, unknown>;
71
+ /**
72
+ * Extract credentials from any protocol context.
73
+ */
74
+ declare function extractCredentialsFromProtocol(protocol: ProtocolTransport, context: Record<string, unknown>): AstraSyncCredentials | null;
75
+
76
+ declare const index_applyCredentials: typeof applyCredentials;
77
+ declare const index_detectProtocol: typeof detectProtocol;
78
+ declare const index_extractA2ACredentials: typeof extractA2ACredentials;
79
+ declare const index_extractCredentialsFromProtocol: typeof extractCredentialsFromProtocol;
80
+ declare const index_extractHttpCredentials: typeof extractHttpCredentials;
81
+ declare const index_extractMcpCredentials: typeof extractMcpCredentials;
82
+ declare const index_setA2AMetadata: typeof setA2AMetadata;
83
+ declare const index_setHttpHeaders: typeof setHttpHeaders;
84
+ declare const index_setMcpMeta: typeof setMcpMeta;
85
+ declare namespace index {
86
+ export { index_applyCredentials as applyCredentials, index_detectProtocol as detectProtocol, index_extractA2ACredentials as extractA2ACredentials, index_extractCredentialsFromProtocol as extractCredentialsFromProtocol, index_extractHttpCredentials as extractHttpCredentials, index_extractMcpCredentials as extractMcpCredentials, index_setA2AMetadata as setA2AMetadata, index_setHttpHeaders as setHttpHeaders, index_setMcpMeta as setMcpMeta };
87
+ }
88
+
89
+ export { applyCredentials as a, extractCredentialsFromProtocol as b, extractHttpCredentials as c, detectProtocol as d, extractA2ACredentials as e, extractMcpCredentials as f, setHttpHeaders as g, setMcpMeta as h, index as i, setA2AMetadata as s };