@assemblyline-agents/runtime 4.0.1 → 5.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 (83) hide show
  1. package/dist/artifact-selection.d.ts +16 -0
  2. package/dist/artifact-selection.d.ts.map +1 -0
  3. package/dist/artifact-selection.js +41 -0
  4. package/dist/artifact-selection.js.map +1 -0
  5. package/dist/builtin-tool-executors.d.ts.map +1 -1
  6. package/dist/builtin-tool-executors.js +22 -11
  7. package/dist/builtin-tool-executors.js.map +1 -1
  8. package/dist/builtin-tools.d.ts +2 -1
  9. package/dist/builtin-tools.d.ts.map +1 -1
  10. package/dist/builtin-tools.js +96 -41
  11. package/dist/builtin-tools.js.map +1 -1
  12. package/dist/channel-credential-environment.d.ts +4 -0
  13. package/dist/channel-credential-environment.d.ts.map +1 -0
  14. package/dist/channel-credential-environment.js +29 -0
  15. package/dist/channel-credential-environment.js.map +1 -0
  16. package/dist/channel-operation.d.ts +22 -0
  17. package/dist/channel-operation.d.ts.map +1 -0
  18. package/dist/channel-operation.js +33 -0
  19. package/dist/channel-operation.js.map +1 -0
  20. package/dist/channel.d.ts +2 -0
  21. package/dist/channel.d.ts.map +1 -1
  22. package/dist/connection-events.d.ts.map +1 -1
  23. package/dist/connection-events.js +10 -8
  24. package/dist/connection-events.js.map +1 -1
  25. package/dist/connections.d.ts +22 -3
  26. package/dist/connections.d.ts.map +1 -1
  27. package/dist/connections.js +164 -40
  28. package/dist/connections.js.map +1 -1
  29. package/dist/credential-broker.d.ts +42 -0
  30. package/dist/credential-broker.d.ts.map +1 -0
  31. package/dist/credential-broker.js +92 -0
  32. package/dist/credential-broker.js.map +1 -0
  33. package/dist/credential-transfer-client.d.ts +17 -0
  34. package/dist/credential-transfer-client.d.ts.map +1 -0
  35. package/dist/credential-transfer-client.js +72 -0
  36. package/dist/credential-transfer-client.js.map +1 -0
  37. package/dist/delivery-send.d.ts.map +1 -1
  38. package/dist/delivery-send.js +6 -4
  39. package/dist/delivery-send.js.map +1 -1
  40. package/dist/index.d.ts +4 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +45 -9
  43. package/dist/index.js.map +1 -1
  44. package/dist/instrumentation-environment.d.ts +9 -0
  45. package/dist/instrumentation-environment.d.ts.map +1 -0
  46. package/dist/instrumentation-environment.js +15 -0
  47. package/dist/instrumentation-environment.js.map +1 -0
  48. package/dist/mcp-client.d.ts +0 -2
  49. package/dist/mcp-client.d.ts.map +1 -1
  50. package/dist/mcp-client.js +10 -19
  51. package/dist/mcp-client.js.map +1 -1
  52. package/dist/public-api.d.ts +1 -0
  53. package/dist/public-api.d.ts.map +1 -1
  54. package/dist/public-api.js +1 -0
  55. package/dist/public-api.js.map +1 -1
  56. package/dist/relay-mcp-client.d.ts.map +1 -1
  57. package/dist/relay-mcp-client.js +4 -4
  58. package/dist/relay-mcp-client.js.map +1 -1
  59. package/dist/replay-resume.d.ts +2 -0
  60. package/dist/replay-resume.d.ts.map +1 -1
  61. package/dist/replay-resume.js +2 -1
  62. package/dist/replay-resume.js.map +1 -1
  63. package/dist/runtime-types.d.ts +11 -3
  64. package/dist/runtime-types.d.ts.map +1 -1
  65. package/dist/sandbox-authored-tool-executor.d.ts +1 -1
  66. package/dist/sandbox-authored-tool-executor.d.ts.map +1 -1
  67. package/dist/sandbox-authored-tool-executor.js +5 -3
  68. package/dist/sandbox-authored-tool-executor.js.map +1 -1
  69. package/dist/sandbox-tool-bridge.js +4 -4
  70. package/dist/sandbox-tool-bridge.js.map +1 -1
  71. package/dist/subagent-handoff.d.ts +1 -0
  72. package/dist/subagent-handoff.d.ts.map +1 -1
  73. package/dist/subagent-handoff.js +37 -19
  74. package/dist/subagent-handoff.js.map +1 -1
  75. package/dist/tool-apis.d.ts +2 -2
  76. package/dist/tool-apis.d.ts.map +1 -1
  77. package/dist/tool-apis.js +10 -9
  78. package/dist/tool-apis.js.map +1 -1
  79. package/dist/tool-execution.d.ts +5 -0
  80. package/dist/tool-execution.d.ts.map +1 -1
  81. package/dist/tool-execution.js +1 -1
  82. package/dist/tool-execution.js.map +1 -1
  83. package/package.json +3 -3
@@ -7,6 +7,8 @@ import { SandboxCliConnectionClient } from "./sandbox-cli-client.js";
7
7
  import { audienceAllowsConnectionAccess } from "./audience.js";
8
8
  import { InMemoryConnectionAuthorizationSessionStore, InMemoryConnectionGrantStore } from "./connection-stores.js";
9
9
  import { connectionToolAccess, connectionToolApproval, isLiveConnection, isRecord, liveDefinitionUrl, parseQualifiedName, scoreMatch, stringValue, timestamp, tokenize } from "./connection-util.js";
10
+ import { CredentialBroker } from "./credential-broker.js";
11
+ import { CredentialTransferConnectionClient } from "./credential-transfer-client.js";
10
12
  export * from "./connection-auth-util.js";
11
13
  export * from "./connection-clients.js";
12
14
  export * from "./connection-stores.js";
@@ -137,14 +139,19 @@ export class RuntimeConnectionRegistry {
137
139
  resolved = new Map();
138
140
  clients = new Map();
139
141
  tokenCache = new Map();
140
- executionContext;
142
+ executionContext = new AsyncLocalStorage();
141
143
  authorizationIntent = new AsyncLocalStorage();
142
144
  pendingAuthorizationCreations = new Map();
143
145
  grantStore;
144
146
  authorizationSessionStore;
147
+ credentialBroker;
145
148
  constructor(options) {
146
149
  this.options = options;
147
- this.grantStore = options.grantStore ?? new InMemoryConnectionGrantStore();
150
+ this.grantStore = options.grantStore ?? options.credentialBroker?.grantStore ?? new InMemoryConnectionGrantStore();
151
+ this.credentialBroker = options.credentialBroker ?? new CredentialBroker({
152
+ store: { resolve: async () => undefined },
153
+ grantStore: this.grantStore
154
+ });
148
155
  this.authorizationSessionStore = options.authorizationSessionStore ?? new InMemoryConnectionAuthorizationSessionStore();
149
156
  }
150
157
  hasLiveConnections() {
@@ -164,7 +171,7 @@ export class RuntimeConnectionRegistry {
164
171
  const definition = (await this.resolveConnection(compiled)).definition;
165
172
  if (!definition.events)
166
173
  throw new ConnectionConfigurationError(`Connection ${connectionName} does not accept provider events.`);
167
- const context = this.resolverContext();
174
+ const context = this.resolverContext(compiled);
168
175
  let principal;
169
176
  if (definition.events.scope === "connection") {
170
177
  principal = { type: "app" };
@@ -188,6 +195,8 @@ export class RuntimeConnectionRegistry {
188
195
  events: definition.events,
189
196
  principal,
190
197
  principalKey: connectionPrincipalKey(principal),
198
+ config: context.config,
199
+ credentials: context.credentials,
191
200
  getToken: async () => {
192
201
  if (!definition.auth)
193
202
  throw new ConnectionConfigurationError(`Connection ${connectionName} event adapter requested a token without connection auth.`);
@@ -320,7 +329,7 @@ export class RuntimeConnectionRegistry {
320
329
  throw new Error(`Connection ${connectionName} does not support pairing codes.`);
321
330
  if (!code.trim())
322
331
  throw new Error("A pairing code is required.");
323
- const context = this.resolverContext();
332
+ const context = this.resolverContext(compiled);
324
333
  const token = await redeem({ code }, context);
325
334
  const authorization = definition.auth
326
335
  ? await normalizeAuthorization(definition.auth, context)
@@ -403,7 +412,7 @@ export class RuntimeConnectionRegistry {
403
412
  throw new ConnectionConfigurationError(`Connection ${connectionName} is not registered as a live connection.`);
404
413
  }
405
414
  const resolved = () => this.resolveConnection(compiled);
406
- const client = compiled.protocol === "credential"
415
+ const baseClient = compiled.protocol === "credential"
407
416
  ? new CredentialConnectionClient()
408
417
  : compiled.protocol === "cli"
409
418
  ? new SandboxCliConnectionClient(compiled, resolved, this)
@@ -418,18 +427,69 @@ export class RuntimeConnectionRegistry {
418
427
  : compiled.protocol === "a2a"
419
428
  ? new A2AConnectionClient(compiled, resolved, this)
420
429
  : new HttpApiConnectionClient(compiled, resolved, this);
430
+ const client = new CredentialTransferConnectionClient(compiled, baseClient, resolved, this);
421
431
  this.clients.set(connectionName, client);
422
432
  return client;
423
433
  }
434
+ async transferCredential(input) {
435
+ const source = this.options.connections.find((connection) => connection.name === input.sourceConnection);
436
+ const sink = this.options.connections.find((connection) => connection.name === input.sinkConnection);
437
+ if (!source || !sink || !this.toolAllowed(source) || !this.toolAllowed(sink)) {
438
+ throw new Error("Credential transfer source or sink is unavailable for this audience.");
439
+ }
440
+ const sourceDefinition = (await this.resolveConnection(source)).definition;
441
+ const sinkDefinition = (await this.resolveConnection(sink)).definition;
442
+ const sourceCapability = "credentialSource" in sourceDefinition ? sourceDefinition.credentialSource : undefined;
443
+ const sinkCapability = "credentialSink" in sinkDefinition ? sinkDefinition.credentialSink : undefined;
444
+ if (!sourceCapability || !sinkCapability)
445
+ throw new Error("Credential transfer source or sink is not configured.");
446
+ const principal = this.connectionPrincipal(sink);
447
+ const execution = this.executionContext.getStore();
448
+ const runId = execution?.runId ?? this.options.runId;
449
+ const identity = {
450
+ principal,
451
+ audience: this.options.audience ?? { private: true },
452
+ ...(runId ? { runId } : {})
453
+ };
454
+ const context = {
455
+ sourceConnection: source.name,
456
+ sinkConnection: sink.name,
457
+ ...(runId ? { runId } : {}),
458
+ principal,
459
+ purpose: input.purpose
460
+ };
461
+ try {
462
+ const value = await sourceCapability.resolve(input.reference, context);
463
+ await sinkCapability.consume(value, input.target, context);
464
+ await this.credentialBroker.recordTransfer({
465
+ credential: input.reference,
466
+ connection: sink.name,
467
+ identity,
468
+ purpose: input.purpose,
469
+ success: true
470
+ });
471
+ return { status: "filled" };
472
+ }
473
+ catch {
474
+ await this.credentialBroker.recordTransfer({
475
+ credential: input.reference,
476
+ connection: sink.name,
477
+ identity,
478
+ purpose: input.purpose,
479
+ success: false
480
+ }).catch(() => undefined);
481
+ throw new Error(`Credential transfer from ${source.name} to ${sink.name} failed.`);
482
+ }
483
+ }
424
484
  async executeSandboxCli(invocation) {
425
485
  if (!this.options.executeSandboxCli) {
426
486
  throw new Error("Sandbox CLI connection execution requires an active agent run sandbox.");
427
487
  }
428
- return this.options.executeSandboxCli(invocation, this.executionContext);
488
+ return this.options.executeSandboxCli(invocation, this.executionContext.getStore());
429
489
  }
430
490
  async resolveHeaders(connection, definition) {
431
491
  const headers = {};
432
- const context = this.resolverContext();
492
+ const context = this.resolverContext(connection);
433
493
  if (definition.auth !== undefined) {
434
494
  const token = await this.resolveToken(connection, definition.auth, context, liveDefinitionUrl(definition));
435
495
  const tokenType = token.tokenType?.trim() || "Bearer";
@@ -474,7 +534,7 @@ export class RuntimeConnectionRegistry {
474
534
  if (!definition.auth)
475
535
  return { status: "unavailable", reason: "connection_has_no_auth" };
476
536
  try {
477
- await this.resolveToken(compiled, definition.auth, this.resolverContext(), liveDefinitionUrl(definition));
537
+ await this.resolveToken(compiled, definition.auth, this.resolverContext(compiled), liveDefinitionUrl(definition));
478
538
  return { status: "connected" };
479
539
  }
480
540
  catch (error) {
@@ -504,10 +564,10 @@ export class RuntimeConnectionRegistry {
504
564
  async materializeCredentialsWithContext(run) {
505
565
  const materialized = [];
506
566
  const pending = [];
507
- const context = this.resolverContext();
508
567
  for (const compiled of this.options.connections) {
509
568
  if (!this.toolAllowed(compiled))
510
569
  continue;
570
+ const context = this.resolverContext(compiled);
511
571
  const failClosed = compiled.protocol === "credential"
512
572
  && sandboxCredentialWasRequested(run, compiled.name);
513
573
  let definition;
@@ -573,7 +633,8 @@ export class RuntimeConnectionRegistry {
573
633
  run,
574
634
  principal,
575
635
  session: context.session,
576
- env: this.options.env,
636
+ config: context.config,
637
+ credentials: context.credentials,
577
638
  fetch: this.options.fetch,
578
639
  getToken: async () => {
579
640
  if (!definition.auth)
@@ -639,7 +700,7 @@ export class RuntimeConnectionRegistry {
639
700
  async evictToken(connection, definition) {
640
701
  if (!definition.auth)
641
702
  return;
642
- const context = this.resolverContext();
703
+ const context = this.resolverContext(connection);
643
704
  const authorization = await normalizeAuthorization(definition.auth, context);
644
705
  const principal = connectionPrincipalFor(connection, authorization, context);
645
706
  const cacheKey = tokenCacheKey(connection.name, principal);
@@ -683,11 +744,7 @@ export class RuntimeConnectionRegistry {
683
744
  if (!resolved.definition.auth) {
684
745
  throw new ConnectionAuthorizationFailedError(session.connectionName, { reason: "auth_not_configured", retryable: false });
685
746
  }
686
- const authorization = await normalizeAuthorization(resolved.definition.auth, {
687
- env: this.options.env,
688
- fetch: this.options.fetch,
689
- session: session.session
690
- });
747
+ const authorization = await normalizeAuthorization(resolved.definition.auth, this.resolverContext(compiled, session.session));
691
748
  const connectionContext = { url: compiled.url ?? "" };
692
749
  let token;
693
750
  if (authorization.kind === "oauth" && authorization.oauth) {
@@ -723,8 +780,38 @@ export class RuntimeConnectionRegistry {
723
780
  request(input, init) {
724
781
  return this.options.fetch(input, init);
725
782
  }
726
- environmentValue(name) {
727
- return this.options.env[name];
783
+ async processEnvironment(connection) {
784
+ const context = this.factoryContext(connection);
785
+ const environment = {};
786
+ for (const name of connection.requiredConfig ?? []) {
787
+ const value = context.config[name];
788
+ if (value === undefined)
789
+ throw new ConnectionConfigurationError(`Connection ${connection.name} requires configuration ${name}.`);
790
+ environment[name] = value;
791
+ }
792
+ for (const name of connection.optionalConfig ?? []) {
793
+ const value = context.config[name];
794
+ if (value !== undefined)
795
+ environment[name] = value;
796
+ }
797
+ for (const name of connection.requiredCredentials ?? []) {
798
+ environment[name] = await context.credentials.get(name, {
799
+ purpose: "connection process authentication",
800
+ delivery: "stdio_env"
801
+ });
802
+ }
803
+ for (const name of connection.optionalCredentials ?? []) {
804
+ const value = await context.credentials.optional(name, {
805
+ purpose: "connection process authentication",
806
+ delivery: "stdio_env"
807
+ });
808
+ if (value !== undefined)
809
+ environment[name] = value;
810
+ }
811
+ return environment;
812
+ }
813
+ async credentialValue(connection, name, purpose) {
814
+ return this.factoryContext(connection).credentials.get(name, { purpose, delivery: "relay" });
728
815
  }
729
816
  async resolveConnection(compiled) {
730
817
  const existing = this.resolved.get(compiled.name);
@@ -739,7 +826,12 @@ export class RuntimeConnectionRegistry {
739
826
  if (compiled.hostRequirements?.platforms?.length && !compiled.hostRequirements.platforms.includes(platform)) {
740
827
  throw new Error(`${compiled.hostRequirements.message} Current runtime platform: ${platform}.`);
741
828
  }
742
- const raw = await this.options.loadDefinition(compiled);
829
+ const loaded = await this.options.loadDefinition(compiled);
830
+ const factoryContext = this.factoryContext(compiled);
831
+ const dynamic = compiled.source.path.startsWith("dynamic://");
832
+ const raw = !dynamic && isConnectionFactory(loaded)
833
+ ? await loaded.create(factoryContext)
834
+ : loaded;
743
835
  if (!isRecord(raw))
744
836
  throw new Error(`Connection ${compiled.name} did not export an object.`);
745
837
  if (compiled.protocol === "mcp") {
@@ -758,8 +850,8 @@ export class RuntimeConnectionRegistry {
758
850
  if (compiled.source.path.startsWith("dynamic://")) {
759
851
  throw new Error(`Dynamic MCP connection ${compiled.name} cannot use a device relay.`);
760
852
  }
761
- if (typeof raw.url !== "string" || typeof raw.credentialEnv !== "string") {
762
- throw new Error(`Relay MCP connection ${compiled.name} must export url and credentialEnv.`);
853
+ if (typeof raw.url !== "string" || typeof raw.credential !== "string") {
854
+ throw new Error(`Relay MCP connection ${compiled.name} must export url and credential.`);
763
855
  }
764
856
  }
765
857
  else if (typeof raw.url !== "string") {
@@ -913,23 +1005,50 @@ export class RuntimeConnectionRegistry {
913
1005
  throw error;
914
1006
  }
915
1007
  }
916
- resolverContext() {
1008
+ resolverContext(connection, session = this.options.session) {
1009
+ const factory = this.factoryContext(connection, session);
917
1010
  return {
918
- env: this.options.env,
1011
+ config: factory.config,
1012
+ credentials: factory.credentials,
919
1013
  fetch: this.options.fetch,
920
- session: this.options.session
1014
+ session
921
1015
  };
922
1016
  }
923
- async withExecutionContext(execution, fn) {
924
- const previous = this.executionContext;
925
- if (execution)
926
- this.executionContext = execution;
927
- try {
928
- return await fn();
929
- }
930
- finally {
931
- this.executionContext = previous;
1017
+ factoryContext(connection, session = this.options.session) {
1018
+ const principal = this.connectionPrincipal(connection, session);
1019
+ const audience = this.options.audience ?? { private: true };
1020
+ const identity = () => {
1021
+ const runId = this.executionContext.getStore()?.runId ?? this.options.runId;
1022
+ return { principal, audience, ...(runId ? { runId } : {}) };
1023
+ };
1024
+ const configNames = [...(connection.requiredConfig ?? []), ...(connection.optionalConfig ?? [])];
1025
+ return {
1026
+ connectionName: connection.name,
1027
+ agentId: this.options.agentId ?? "",
1028
+ principal,
1029
+ audience,
1030
+ config: Object.freeze(Object.fromEntries(configNames.map((name) => [name, this.options.config?.[name]]))),
1031
+ credentials: this.credentialBroker.scoped(connection, identity),
1032
+ fetch: this.options.fetch,
1033
+ session
1034
+ };
1035
+ }
1036
+ connectionPrincipal(connection, session = this.options.session) {
1037
+ if (connection.subject !== "user")
1038
+ return { type: "app" };
1039
+ if (session.principal?.type === "user")
1040
+ return session.principal;
1041
+ if (session.userId) {
1042
+ return {
1043
+ type: "user",
1044
+ id: session.userId,
1045
+ issuer: session.channel ?? "assembly-line"
1046
+ };
932
1047
  }
1048
+ throw new ConnectionConfigurationError(`Connection ${connection.name} requires an authenticated user principal.`);
1049
+ }
1050
+ async withExecutionContext(execution, fn) {
1051
+ return execution ? this.executionContext.run(execution, fn) : fn();
933
1052
  }
934
1053
  async createAuthorizationRequiredError(connection, authorization, principal, principalKey, context, connectionContext, cause) {
935
1054
  if (this.authorizationIntent.getStore() === "discover") {
@@ -1027,12 +1146,14 @@ export class RuntimeConnectionRegistry {
1027
1146
  session.codeVerifier = codeVerifier;
1028
1147
  if (resume !== undefined)
1029
1148
  session.resume = resume;
1030
- if (this.executionContext?.runId)
1031
- session.runId = this.executionContext.runId;
1032
- if (this.executionContext?.toolCallId)
1033
- session.toolCallId = this.executionContext.toolCallId;
1034
- if (this.executionContext?.toolName)
1035
- session.toolName = this.executionContext.toolName;
1149
+ const execution = this.executionContext.getStore();
1150
+ const runId = execution?.runId ?? this.options.runId;
1151
+ if (runId)
1152
+ session.runId = runId;
1153
+ if (execution?.toolCallId)
1154
+ session.toolCallId = execution.toolCallId;
1155
+ if (execution?.toolName)
1156
+ session.toolName = execution.toolName;
1036
1157
  await this.authorizationSessionStore.createSession(session);
1037
1158
  const errorOptions = {
1038
1159
  reason: cause?.reason ?? "authorization_required",
@@ -1043,7 +1164,7 @@ export class RuntimeConnectionRegistry {
1043
1164
  return new ConnectionAuthorizationRequiredError(connection.name, errorOptions);
1044
1165
  }
1045
1166
  callbackUrl() {
1046
- const base = (this.options.callbackBaseUrl ?? this.options.env.ASSEMBLY_LINE_PUBLIC_URL ?? "http://localhost").replace(/\/+$/u, "");
1167
+ const base = (this.options.callbackBaseUrl ?? this.options.config?.ASSEMBLY_LINE_PUBLIC_URL ?? "http://localhost").replace(/\/+$/u, "");
1047
1168
  return `${base}/assembly-line/connections/callback`;
1048
1169
  }
1049
1170
  async exchangeOAuthAuthorizationCode(oauth, session, callback) {
@@ -1169,4 +1290,7 @@ function sandboxCredentialWasRequested(run, connectionName) {
1169
1290
  && !Array.isArray(requests)
1170
1291
  && Object.prototype.hasOwnProperty.call(requests, connectionName));
1171
1292
  }
1293
+ function isConnectionFactory(value) {
1294
+ return Boolean(value && typeof value === "object" && typeof value.create === "function");
1295
+ }
1172
1296
  //# sourceMappingURL=connections.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { AgentAudience, CompiledConnection, ConnectionCredentialAccessor, ConnectionCredentialRequest, ConnectionPrincipal, CredentialStore } from "@assemblyline-agents/core";
2
+ import type { ConnectionGrantStore } from "./connection-stores.js";
3
+ export interface CredentialUseAuditRecord {
4
+ credential: string;
5
+ connection: string;
6
+ runId?: string;
7
+ principal: string;
8
+ purpose: string;
9
+ delivery: NonNullable<ConnectionCredentialRequest["delivery"]>;
10
+ success: boolean;
11
+ expiresAt?: number;
12
+ }
13
+ export interface CredentialBrokerOptions {
14
+ store: CredentialStore;
15
+ grantStore: ConnectionGrantStore;
16
+ audit?(record: CredentialUseAuditRecord): Promise<void> | void;
17
+ }
18
+ export interface ScopedCredentialIdentity {
19
+ principal: ConnectionPrincipal;
20
+ audience: AgentAudience;
21
+ runId?: string;
22
+ }
23
+ /** Runtime-owned boundary with no bulk-read or enumeration API. */
24
+ export declare class CredentialBroker {
25
+ private readonly options;
26
+ readonly grantStore: ConnectionGrantStore;
27
+ constructor(options: CredentialBrokerOptions);
28
+ scoped(connection: CompiledConnection, identity: ScopedCredentialIdentity | (() => ScopedCredentialIdentity)): ConnectionCredentialAccessor;
29
+ recordTransfer(input: {
30
+ credential: string;
31
+ connection: string;
32
+ identity: ScopedCredentialIdentity;
33
+ purpose: string;
34
+ success: boolean;
35
+ }): Promise<void>;
36
+ }
37
+ export declare class CredentialAccessError extends Error {
38
+ constructor(message: string);
39
+ }
40
+ /** Host environment is a credential-store backend, never runtime context. */
41
+ export declare function environmentCredentialStore(environment: Readonly<Record<string, string | undefined>>): CredentialStore;
42
+ //# sourceMappingURL=credential-broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-broker.d.ts","sourceRoot":"","sources":["../src/credential-broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mEAAmE;AACnE,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;gBAEb,OAAO,EAAE,uBAAuB;IAI7D,MAAM,CACJ,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,wBAAwB,GAAG,CAAC,MAAM,wBAAwB,CAAC,GACpE,4BAA4B;IAmDzB,cAAc,CAAC,KAAK,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlB;AAeD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,6EAA6E;AAC7E,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GACxD,eAAe,CAEjB"}