@tangle-network/agent-integrations 0.59.0 → 0.59.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/data/bundled-adapter-manifests.json +1 -1
- package/dist/{adapters-ediOgE75.js → adapters-4-7nkFS3.js} +137 -383
- package/dist/{adapters-ediOgE75.js.map → adapters-4-7nkFS3.js.map} +1 -1
- package/dist/{bundled-manifest-data-DQXscV3-.js → bundled-manifest-data-ka9qth1e.js} +72 -51
- package/dist/{bundled-manifest-data-DQXscV3-.js.map → bundled-manifest-data-ka9qth1e.js.map} +1 -1
- package/dist/catalog-CFvKzwVj.js +201 -0
- package/dist/catalog-CFvKzwVj.js.map +1 -0
- package/dist/catalog.js +1 -1
- package/dist/connect/index.js +1 -1
- package/dist/connectors/adapters/index.js +1 -1
- package/dist/connectors/index.d.ts +2 -1
- package/dist/connectors/index.js +3 -2
- package/dist/connectors/oauth.d.ts +2 -0
- package/dist/connectors/oauth.js +282 -0
- package/dist/connectors/oauth.js.map +1 -0
- package/dist/{consumer-BC6pCUzI.d.ts → consumer-zHtoJixe.d.ts} +5 -37
- package/dist/{consumer-BC6pCUzI.d.ts.map → consumer-zHtoJixe.d.ts.map} +1 -1
- package/dist/consumer.d.ts +1 -1
- package/dist/hub-0Od2lgun.d.ts +38 -0
- package/dist/hub-0Od2lgun.d.ts.map +1 -0
- package/dist/hub-D13zPQGr.js +1004 -0
- package/dist/hub-D13zPQGr.js.map +1 -0
- package/dist/hub.d.ts +2 -0
- package/dist/hub.js +2 -0
- package/dist/index-BQXENE9p.d.ts +130 -0
- package/dist/index-BQXENE9p.d.ts.map +1 -0
- package/dist/index-CDVPZuIY.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +16 -12
- package/dist/internal/bundled-manifest-runtime.js +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +2 -1
- package/dist/mcp.js.map +1 -1
- package/dist/middleware/index.js +1 -1
- package/dist/oauth-C5pa5j3O.d.ts +136 -0
- package/dist/oauth-C5pa5j3O.d.ts.map +1 -0
- package/dist/registry-core-BZo69C37.js +186 -0
- package/dist/registry-core-BZo69C37.js.map +1 -0
- package/dist/registry.js +2 -2
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +1 -1
- package/dist/sandbox.d.ts +2 -0
- package/dist/sandbox.js +114 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/{specs-BkhKJNjX.js → specs-C2qsaxDe.js} +2 -2
- package/dist/{specs-BkhKJNjX.js.map → specs-C2qsaxDe.js.map} +1 -1
- package/dist/specs.js +1 -1
- package/dist/{src-Bd4KMI-J.js → src-mzICXbwx.js} +84922 -86026
- package/dist/src-mzICXbwx.js.map +1 -0
- package/dist/stripe/index.js +1 -1
- package/dist/webhooks/index.js +1 -1
- package/package.json +17 -2
- package/dist/catalog-CBd0zbdD.js +0 -383
- package/dist/catalog-CBd0zbdD.js.map +0 -1
- package/dist/index-j2QziJA5.d.ts +0 -263
- package/dist/index-j2QziJA5.d.ts.map +0 -1
- package/dist/src-Bd4KMI-J.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-core-BZo69C37.js","names":[],"sources":["../src/registry-core.ts"],"sourcesContent":["import type {\n IntegrationCatalogSource,\n IntegrationConnector,\n IntegrationConnectorAction,\n IntegrationConnectorTrigger,\n} from './core-types.js'\nimport { INTEGRATION_KIND_ALIASES } from './integration-kind-aliases.js'\n\nexport type IntegrationSupportTier =\n | 'catalogOnly'\n | 'setupReady'\n | 'gatewayExecutable'\n | 'firstPartyExecutable'\n | 'sandboxExecutable'\n\nexport interface IntegrationRegistrySourceRef {\n sourceId: string\n providerId: string\n connectorId: string\n supportTier: IntegrationSupportTier\n actionCount: number\n triggerCount: number\n}\n\nexport interface IntegrationRegistryConflict {\n field: 'auth' | 'category'\n values: Array<{\n value: string\n sourceId: string\n connectorId: string\n }>\n}\n\nexport interface IntegrationRegistryEntry {\n canonicalId: string\n connector: IntegrationConnector\n aliases: string[]\n supportTier: IntegrationSupportTier\n sources: IntegrationRegistrySourceRef[]\n conflicts: IntegrationRegistryConflict[]\n}\n\nexport interface IntegrationRegistry {\n entries: IntegrationRegistryEntry[]\n connectors: IntegrationConnector[]\n byId: Map<string, IntegrationRegistryEntry>\n}\n\nexport interface IntegrationRegistrySummary {\n totalEntries: number\n totalSources: number\n toolBindableEntries: number\n conflictEntries: number\n bySupportTier: Record<IntegrationSupportTier, number>\n}\n\nexport interface ComposeIntegrationRegistryOptions {\n aliases?: Record<string, string>\n sourcePrecedence?: Record<string, number>\n}\n\nconst DEFAULT_ALIASES = INTEGRATION_KIND_ALIASES\n\nconst DEFAULT_SOURCE_PRECEDENCE: Record<string, number> = {\n 'first-party': 500,\n spec: 400,\n gateway: 300,\n 'tangle-catalog': 100,\n activepieces: 100,\n coverage: 50,\n}\n\nconst SUPPORT_RANK: Record<IntegrationSupportTier, number> = {\n catalogOnly: 0,\n setupReady: 1,\n gatewayExecutable: 2,\n firstPartyExecutable: 3,\n sandboxExecutable: 4,\n}\n\nexport function composeIntegrationRegistry(\n sources: IntegrationCatalogSource[],\n options: ComposeIntegrationRegistryOptions = {},\n): IntegrationRegistry {\n const aliases = { ...DEFAULT_ALIASES, ...(options.aliases ?? {}) }\n const precedence = { ...DEFAULT_SOURCE_PRECEDENCE, ...(options.sourcePrecedence ?? {}) }\n const grouped = new Map<string, Candidate[]>()\n\n for (const source of sources) {\n for (const connector of source.connectors) {\n const canonicalId = canonicalConnectorId(connector.id, aliases)\n const candidates = grouped.get(canonicalId) ?? []\n candidates.push({\n source,\n connector,\n supportTier: inferIntegrationSupportTier(connector),\n })\n grouped.set(canonicalId, candidates)\n }\n }\n\n const entries = [...grouped.entries()]\n .map(([canonicalId, candidates]) => registryEntry(canonicalId, candidates, precedence, aliases))\n .sort((a, b) => a.canonicalId.localeCompare(b.canonicalId))\n const byId = new Map<string, IntegrationRegistryEntry>()\n for (const entry of entries) {\n byId.set(entry.canonicalId, entry)\n for (const alias of entry.aliases) byId.set(alias, entry)\n }\n return {\n entries,\n connectors: entries.map((entry) => entry.connector),\n byId,\n }\n}\n\nexport function summarizeIntegrationRegistry(registry: IntegrationRegistry): IntegrationRegistrySummary {\n const bySupportTier = {\n catalogOnly: 0,\n setupReady: 0,\n gatewayExecutable: 0,\n firstPartyExecutable: 0,\n sandboxExecutable: 0,\n } satisfies Record<IntegrationSupportTier, number>\n for (const entry of registry.entries) bySupportTier[entry.supportTier] += 1\n return {\n totalEntries: registry.entries.length,\n totalSources: registry.entries.reduce((sum, entry) => sum + entry.sources.length, 0),\n toolBindableEntries: registry.entries.filter((entry) => entry.connector.actions.length > 0).length,\n conflictEntries: registry.entries.filter((entry) => entry.conflicts.length > 0).length,\n bySupportTier,\n }\n}\n\nexport function canonicalConnectorId(id: string, aliases: Record<string, string> = DEFAULT_ALIASES): string {\n const normalized = slug(id)\n let current = normalized\n const seen = new Set<string>()\n while (aliases[current] && !seen.has(current)) {\n seen.add(current)\n current = aliases[current]\n }\n return current\n}\n\nexport function inferIntegrationSupportTier(connector: IntegrationConnector): IntegrationSupportTier {\n const metadata = connector.metadata ?? {}\n const explicit = metadata.supportTier\n if (isSupportTier(explicit)) return explicit\n if (metadata.sandboxExecutable === true) return 'sandboxExecutable'\n if (metadata.source === 'first-party-adapter' || connector.providerId === 'first-party') return 'firstPartyExecutable'\n if (metadata.source === 'gateway-catalog' && metadata.executable === true) return 'gatewayExecutable'\n if (metadata.source === 'integration-spec') return 'setupReady'\n if (\n metadata.source === 'coverage-catalog'\n || metadata.source === 'activepieces-community'\n || metadata.source === 'tangle-integrations-catalog'\n || metadata.catalogOnly === true\n ) return 'catalogOnly'\n if (connector.actions.length > 0) return 'gatewayExecutable'\n return 'catalogOnly'\n}\n\nfunction registryEntry(\n canonicalId: string,\n candidates: Candidate[],\n precedence: Record<string, number>,\n aliases: Record<string, string>,\n): IntegrationRegistryEntry {\n const ordered = [...candidates].sort((a, b) => compareCandidates(a, b, precedence))\n const primary = ordered[0]!\n const actions = mergeActions(ordered)\n const triggers = mergeTriggers(ordered)\n const scopes = unique(toolBindableCandidates(ordered).flatMap((candidate) => candidate.connector.scopes ?? []))\n const supportTier = ordered.reduce<IntegrationSupportTier>(\n (best, candidate) => SUPPORT_RANK[candidate.supportTier] > SUPPORT_RANK[best] ? candidate.supportTier : best,\n primary.supportTier,\n )\n const aliasesForEntry = unique([\n ...ordered.map((candidate) => candidate.connector.id),\n ...Object.entries(aliases)\n .filter(([, target]) => canonicalConnectorId(target, aliases) === canonicalId)\n .map(([alias]) => alias),\n ].map(slug).filter((id) => id && id !== canonicalId)).sort()\n const sources = ordered.map((candidate): IntegrationRegistrySourceRef => ({\n sourceId: candidate.source.id,\n providerId: candidate.connector.providerId,\n connectorId: candidate.connector.id,\n supportTier: candidate.supportTier,\n actionCount: candidate.connector.actions.length,\n triggerCount: candidate.connector.triggers?.length ?? 0,\n }))\n const conflicts = conflictDiagnostics(ordered)\n\n return {\n canonicalId,\n aliases: aliasesForEntry,\n supportTier,\n sources,\n conflicts,\n connector: {\n ...primary.connector,\n id: canonicalId,\n scopes,\n actions,\n triggers,\n metadata: {\n ...(primary.connector.metadata ?? {}),\n registry: {\n canonicalId,\n aliases: aliasesForEntry,\n supportTier,\n sources,\n conflicts,\n toolBindable: actions.length > 0,\n catalogOnlyActionCount: ordered\n .filter((candidate) => candidate.supportTier === 'catalogOnly')\n .reduce((sum, candidate) => sum + catalogActionCount(candidate.connector), 0),\n },\n },\n },\n }\n}\n\nfunction compareCandidates(a: Candidate, b: Candidate, precedence: Record<string, number>): number {\n return SUPPORT_RANK[b.supportTier] - SUPPORT_RANK[a.supportTier]\n || (b.source.precedence ?? precedence[b.source.id] ?? 0) - (a.source.precedence ?? precedence[a.source.id] ?? 0)\n || b.connector.actions.length - a.connector.actions.length\n || a.connector.id.localeCompare(b.connector.id)\n}\n\nfunction mergeActions(candidates: Candidate[]): IntegrationConnectorAction[] {\n const out = new Map<string, IntegrationConnectorAction>()\n for (const candidate of toolBindableCandidates(candidates)) {\n for (const action of candidate.connector.actions) {\n if (!out.has(action.id)) out.set(action.id, action)\n }\n }\n return [...out.values()]\n}\n\nfunction mergeTriggers(candidates: Candidate[]): IntegrationConnectorTrigger[] | undefined {\n const out = new Map<string, IntegrationConnectorTrigger>()\n for (const candidate of toolBindableCandidates(candidates)) {\n for (const trigger of candidate.connector.triggers ?? []) {\n if (!out.has(trigger.id)) out.set(trigger.id, trigger)\n }\n }\n return out.size > 0 ? [...out.values()] : undefined\n}\n\nfunction toolBindableCandidates(candidates: Candidate[]): Candidate[] {\n const bindable = candidates.filter((candidate) => candidate.supportTier !== 'catalogOnly')\n if (bindable.length === 0) return []\n const maxRank = Math.max(...bindable.map((candidate) => SUPPORT_RANK[candidate.supportTier]))\n return bindable.filter((candidate) => SUPPORT_RANK[candidate.supportTier] === maxRank)\n}\n\nfunction catalogActionCount(connector: IntegrationConnector): number {\n const value = connector.metadata?.catalogActionCount\n return typeof value === 'number' ? value : connector.actions.length\n}\n\nfunction conflictDiagnostics(candidates: Candidate[]): IntegrationRegistryConflict[] {\n return [\n conflictFor('auth', candidates.map((candidate) => ({\n value: candidate.connector.auth,\n sourceId: candidate.source.id,\n connectorId: candidate.connector.id,\n }))),\n conflictFor('category', candidates.map((candidate) => ({\n value: candidate.connector.category,\n sourceId: candidate.source.id,\n connectorId: candidate.connector.id,\n }))),\n ].filter((conflict): conflict is IntegrationRegistryConflict => Boolean(conflict))\n}\n\nfunction conflictFor(\n field: IntegrationRegistryConflict['field'],\n values: IntegrationRegistryConflict['values'],\n): IntegrationRegistryConflict | undefined {\n const uniqueValues = new Set(values.map((entry) => entry.value))\n if (uniqueValues.size <= 1) return undefined\n return { field, values }\n}\n\nfunction isSupportTier(value: unknown): value is IntegrationSupportTier {\n return value === 'catalogOnly'\n || value === 'setupReady'\n || value === 'gatewayExecutable'\n || value === 'firstPartyExecutable'\n || value === 'sandboxExecutable'\n}\n\nfunction slug(value: string): string {\n return value.trim().toLowerCase()\n .replace(/&/g, 'and')\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n}\n\nfunction unique<T>(values: T[]): T[] {\n return [...new Set(values)]\n}\n\ninterface Candidate {\n source: IntegrationCatalogSource\n connector: IntegrationConnector\n supportTier: IntegrationSupportTier\n}\n"],"mappings":"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"}
|
package/dist/registry.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { C as buildDefaultIntegrationRegistry, w as classifyIntegrationCatalogExecutability } from "./src-mzICXbwx.js";
|
|
2
|
+
import { i as summarizeIntegrationRegistry, n as composeIntegrationRegistry, r as inferIntegrationSupportTier, t as canonicalConnectorId } from "./registry-core-BZo69C37.js";
|
|
3
3
|
export { buildDefaultIntegrationRegistry, canonicalConnectorId, classifyIntegrationCatalogExecutability, composeIntegrationRegistry, inferIntegrationSupportTier, summarizeIntegrationRegistry };
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Cr as
|
|
1
|
+
import { Cr as IntegrationRuntimeHub, Er as createIntegrationRuntime, Sr as IntegrationRuntime, Tr as IntegrationSandboxBundle, _r as IntegrationManifestResolution, br as IntegrationRequirementResolution, fr as InMemoryIntegrationGrantStore, gr as IntegrationManifest, hr as IntegrationGrantStore, mr as IntegrationGrant, pr as IntegrationCapabilityBinding, vr as IntegrationRequirement, wr as IntegrationRuntimeOptions, xr as IntegrationRequirementStatus, yr as IntegrationRequirementMode } from "./consumer-zHtoJixe.js";
|
|
2
2
|
export { InMemoryIntegrationGrantStore, IntegrationCapabilityBinding, IntegrationGrant, IntegrationGrantStore, IntegrationManifest, IntegrationManifestResolution, IntegrationRequirement, IntegrationRequirementMode, IntegrationRequirementResolution, IntegrationRequirementStatus, IntegrationRuntime, IntegrationRuntimeHub, IntegrationRuntimeOptions, IntegrationSandboxBundle, createIntegrationRuntime };
|
package/dist/runtime.js
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { At as redactInvocationEnvelope, Ct as IntegrationSandboxHostOptions, Dt as invocationRequestFromEnvelope, Et as dispatchIntegrationInvocation, Ot as normalizeIntegrationResult, St as IntegrationSandboxHostHub, Tt as buildIntegrationInvocationEnvelope, bt as IntegrationInvocationEnvelopeValidationOptions, jt as validateIntegrationInvocationEnvelope, kt as redactCapability, wt as NormalizedIntegrationResult, xt as IntegrationSandboxHost, yt as IntegrationInvocationEnvelope } from "./consumer-zHtoJixe.js";
|
|
2
|
+
export { IntegrationInvocationEnvelope, IntegrationInvocationEnvelopeValidationOptions, IntegrationSandboxHost, IntegrationSandboxHostHub, IntegrationSandboxHostOptions, NormalizedIntegrationResult, buildIntegrationInvocationEnvelope, dispatchIntegrationInvocation, invocationRequestFromEnvelope, normalizeIntegrationResult, redactCapability, redactInvocationEnvelope, validateIntegrationInvocationEnvelope };
|
package/dist/sandbox.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { t as redactUnknown } from "./redaction-B6R-ZeWT.js";
|
|
2
|
+
import { o as parseIntegrationToolName } from "./catalog-CFvKzwVj.js";
|
|
3
|
+
//#region src/sandbox.ts
|
|
4
|
+
function buildIntegrationInvocationEnvelope(input) {
|
|
5
|
+
const parsed = parseIntegrationToolName(input.toolName);
|
|
6
|
+
const envelope = {
|
|
7
|
+
kind: "integration.invocation",
|
|
8
|
+
capabilityToken: input.capabilityToken,
|
|
9
|
+
toolName: input.toolName,
|
|
10
|
+
action: parsed.actionId,
|
|
11
|
+
input: input.args,
|
|
12
|
+
idempotencyKey: input.idempotencyKey,
|
|
13
|
+
dryRun: input.dryRun,
|
|
14
|
+
metadata: input.metadata
|
|
15
|
+
};
|
|
16
|
+
validateIntegrationInvocationEnvelope(envelope, { maxInputBytes: input.maxInputBytes });
|
|
17
|
+
return envelope;
|
|
18
|
+
}
|
|
19
|
+
function invocationRequestFromEnvelope(envelope, options = {}) {
|
|
20
|
+
validateIntegrationInvocationEnvelope(envelope, options);
|
|
21
|
+
return {
|
|
22
|
+
action: envelope.action,
|
|
23
|
+
input: envelope.input,
|
|
24
|
+
idempotencyKey: envelope.idempotencyKey,
|
|
25
|
+
dryRun: envelope.dryRun,
|
|
26
|
+
metadata: envelope.metadata
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function validateIntegrationInvocationEnvelope(envelope, options = {}) {
|
|
30
|
+
if (!envelope || typeof envelope !== "object") throw new Error("Integration invocation envelope is required.");
|
|
31
|
+
if (envelope.kind !== "integration.invocation") throw new Error("Invalid integration invocation envelope kind.");
|
|
32
|
+
if (!isNonEmptyString(envelope.capabilityToken)) throw new Error("Integration invocation envelope is missing capabilityToken.");
|
|
33
|
+
if (!isNonEmptyString(envelope.toolName)) throw new Error("Integration invocation envelope is missing toolName.");
|
|
34
|
+
if (!isNonEmptyString(envelope.action)) throw new Error("Integration invocation envelope is missing action.");
|
|
35
|
+
if (!isNonEmptyString(envelope.idempotencyKey)) throw new Error("Integration invocation envelope is missing idempotencyKey.");
|
|
36
|
+
if (envelope.metadata !== void 0 && !isPlainRecord(envelope.metadata)) throw new Error("Integration invocation envelope metadata must be an object.");
|
|
37
|
+
const parsed = parseIntegrationToolName(envelope.toolName);
|
|
38
|
+
if (parsed.actionId !== envelope.action) throw new Error(`Integration invocation action ${envelope.action} does not match tool ${parsed.actionId}.`);
|
|
39
|
+
const inputBytes = Buffer.byteLength(JSON.stringify(envelope.input ?? null), "utf8");
|
|
40
|
+
const maxInputBytes = options.maxInputBytes ?? 262144;
|
|
41
|
+
if (inputBytes > maxInputBytes) throw new Error(`Integration invocation input exceeds ${maxInputBytes} bytes.`);
|
|
42
|
+
if (options.requireKnownTool || options.connectors) {
|
|
43
|
+
if (!options.connectors) throw new Error("connectors are required when requireKnownTool is true.");
|
|
44
|
+
const connector = options.connectors.find((candidate) => candidate.providerId === parsed.providerId && candidate.id === parsed.connectorId);
|
|
45
|
+
const action = connector?.actions.find((candidate) => candidate.id === parsed.actionId);
|
|
46
|
+
if (!connector || !action) throw new Error(`Unknown integration tool ${envelope.toolName}.`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function redactInvocationEnvelope(envelope) {
|
|
50
|
+
return {
|
|
51
|
+
...envelope,
|
|
52
|
+
capabilityToken: "[REDACTED]",
|
|
53
|
+
input: redactUnknown(envelope.input),
|
|
54
|
+
metadata: redactUnknown(envelope.metadata)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function redactCapability(capability) {
|
|
58
|
+
return {
|
|
59
|
+
...capability,
|
|
60
|
+
metadata: redactUnknown(capability.metadata)
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function normalizeIntegrationResult(result) {
|
|
64
|
+
const output = result.output;
|
|
65
|
+
if (!result.ok && output?.approvalRequired === true && output.approval) return {
|
|
66
|
+
status: "approval_required",
|
|
67
|
+
action: result.action,
|
|
68
|
+
approval: output.approval,
|
|
69
|
+
metadata: result.metadata
|
|
70
|
+
};
|
|
71
|
+
if (!result.ok) return {
|
|
72
|
+
status: "failed",
|
|
73
|
+
action: result.action,
|
|
74
|
+
error: String(result.output ?? result.warnings?.[0] ?? "integration action failed"),
|
|
75
|
+
metadata: result.metadata
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
status: "ok",
|
|
79
|
+
action: result.action,
|
|
80
|
+
output: result.output,
|
|
81
|
+
metadata: result.metadata
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async function dispatchIntegrationInvocation(envelope, options) {
|
|
85
|
+
try {
|
|
86
|
+
validateIntegrationInvocationEnvelope(envelope, options);
|
|
87
|
+
return normalizeIntegrationResult(await options.hub.invokeWithCapability(envelope.capabilityToken, invocationRequestFromEnvelope(envelope, options)));
|
|
88
|
+
} catch (error) {
|
|
89
|
+
return {
|
|
90
|
+
status: "failed",
|
|
91
|
+
action: typeof envelope?.action === "string" ? envelope.action : "unknown",
|
|
92
|
+
error: error instanceof Error ? error.message : "Integration invocation failed."
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
var IntegrationSandboxHost = class {
|
|
97
|
+
options;
|
|
98
|
+
constructor(options) {
|
|
99
|
+
this.options = options;
|
|
100
|
+
}
|
|
101
|
+
dispatch(envelope) {
|
|
102
|
+
return dispatchIntegrationInvocation(envelope, this.options);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
function isNonEmptyString(value) {
|
|
106
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
107
|
+
}
|
|
108
|
+
function isPlainRecord(value) {
|
|
109
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { IntegrationSandboxHost, buildIntegrationInvocationEnvelope, dispatchIntegrationInvocation, invocationRequestFromEnvelope, normalizeIntegrationResult, redactCapability, redactInvocationEnvelope, validateIntegrationInvocationEnvelope };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","names":[],"sources":["../src/sandbox.ts"],"sourcesContent":["import type {\n IntegrationActionResult,\n IntegrationApprovalRequest,\n IntegrationCapability,\n IntegrationConnector,\n InvokeWithCapabilityRequest,\n} from './index.js'\nimport { parseIntegrationToolName } from './catalog.js'\nimport { redactUnknown } from './redaction.js'\n\nexport interface IntegrationInvocationEnvelope {\n kind: 'integration.invocation'\n capabilityToken: string\n toolName: string\n action: string\n input?: unknown\n idempotencyKey: string\n dryRun?: boolean\n metadata?: Record<string, unknown>\n}\n\nexport interface IntegrationInvocationEnvelopeValidationOptions {\n connectors?: IntegrationConnector[]\n maxInputBytes?: number\n requireKnownTool?: boolean\n}\n\nexport type NormalizedIntegrationResult =\n | { status: 'ok'; action: string; output?: unknown; metadata?: Record<string, unknown> }\n | { status: 'approval_required'; action: string; approval: IntegrationApprovalRequest; metadata?: Record<string, unknown> }\n | { status: 'failed'; action: string; error: string; metadata?: Record<string, unknown> }\n\nexport interface IntegrationSandboxHostHub {\n invokeWithCapability(token: string, request: InvokeWithCapabilityRequest): Promise<IntegrationActionResult> | IntegrationActionResult\n}\n\nexport interface IntegrationSandboxHostOptions extends IntegrationInvocationEnvelopeValidationOptions {\n hub: IntegrationSandboxHostHub\n}\n\nexport function buildIntegrationInvocationEnvelope(input: {\n capabilityToken: string\n toolName: string\n args?: unknown\n idempotencyKey: string\n dryRun?: boolean\n metadata?: Record<string, unknown>\n maxInputBytes?: number\n}): IntegrationInvocationEnvelope {\n const parsed = parseIntegrationToolName(input.toolName)\n const envelope: IntegrationInvocationEnvelope = {\n kind: 'integration.invocation',\n capabilityToken: input.capabilityToken,\n toolName: input.toolName,\n action: parsed.actionId,\n input: input.args,\n idempotencyKey: input.idempotencyKey,\n dryRun: input.dryRun,\n metadata: input.metadata,\n }\n validateIntegrationInvocationEnvelope(envelope, { maxInputBytes: input.maxInputBytes })\n return envelope\n}\n\nexport function invocationRequestFromEnvelope(\n envelope: IntegrationInvocationEnvelope,\n options: IntegrationInvocationEnvelopeValidationOptions = {},\n): InvokeWithCapabilityRequest {\n validateIntegrationInvocationEnvelope(envelope, options)\n return {\n action: envelope.action,\n input: envelope.input,\n idempotencyKey: envelope.idempotencyKey,\n dryRun: envelope.dryRun,\n metadata: envelope.metadata,\n }\n}\n\nexport function validateIntegrationInvocationEnvelope(\n envelope: IntegrationInvocationEnvelope,\n options: IntegrationInvocationEnvelopeValidationOptions = {},\n): void {\n if (!envelope || typeof envelope !== 'object') throw new Error('Integration invocation envelope is required.')\n if (envelope.kind !== 'integration.invocation') throw new Error('Invalid integration invocation envelope kind.')\n if (!isNonEmptyString(envelope.capabilityToken)) throw new Error('Integration invocation envelope is missing capabilityToken.')\n if (!isNonEmptyString(envelope.toolName)) throw new Error('Integration invocation envelope is missing toolName.')\n if (!isNonEmptyString(envelope.action)) throw new Error('Integration invocation envelope is missing action.')\n if (!isNonEmptyString(envelope.idempotencyKey)) throw new Error('Integration invocation envelope is missing idempotencyKey.')\n if (envelope.metadata !== undefined && !isPlainRecord(envelope.metadata)) {\n throw new Error('Integration invocation envelope metadata must be an object.')\n }\n const parsed = parseIntegrationToolName(envelope.toolName)\n if (parsed.actionId !== envelope.action) {\n throw new Error(`Integration invocation action ${envelope.action} does not match tool ${parsed.actionId}.`)\n }\n const inputBytes = Buffer.byteLength(JSON.stringify(envelope.input ?? null), 'utf8')\n const maxInputBytes = options.maxInputBytes ?? 256 * 1024\n if (inputBytes > maxInputBytes) {\n throw new Error(`Integration invocation input exceeds ${maxInputBytes} bytes.`)\n }\n if (options.requireKnownTool || options.connectors) {\n if (!options.connectors) throw new Error('connectors are required when requireKnownTool is true.')\n const connector = options.connectors.find((candidate) =>\n candidate.providerId === parsed.providerId && candidate.id === parsed.connectorId\n )\n const action = connector?.actions.find((candidate) => candidate.id === parsed.actionId)\n if (!connector || !action) throw new Error(`Unknown integration tool ${envelope.toolName}.`)\n }\n}\n\nexport function redactInvocationEnvelope(envelope: IntegrationInvocationEnvelope): Omit<IntegrationInvocationEnvelope, 'capabilityToken'> & { capabilityToken: '[REDACTED]' } {\n return {\n ...envelope,\n capabilityToken: '[REDACTED]',\n input: redactUnknown(envelope.input),\n metadata: redactUnknown(envelope.metadata) as Record<string, unknown> | undefined,\n }\n}\n\nexport function redactCapability(capability: IntegrationCapability): IntegrationCapability {\n return {\n ...capability,\n metadata: redactUnknown(capability.metadata) as Record<string, unknown> | undefined,\n }\n}\n\nexport function normalizeIntegrationResult(result: IntegrationActionResult): NormalizedIntegrationResult {\n const output = result.output as { approvalRequired?: unknown; approval?: IntegrationApprovalRequest } | undefined\n if (!result.ok && output?.approvalRequired === true && output.approval) {\n return {\n status: 'approval_required',\n action: result.action,\n approval: output.approval,\n metadata: result.metadata,\n }\n }\n if (!result.ok) {\n return {\n status: 'failed',\n action: result.action,\n error: String(result.output ?? result.warnings?.[0] ?? 'integration action failed'),\n metadata: result.metadata,\n }\n }\n return {\n status: 'ok',\n action: result.action,\n output: result.output,\n metadata: result.metadata,\n }\n}\n\nexport async function dispatchIntegrationInvocation(\n envelope: IntegrationInvocationEnvelope,\n options: IntegrationSandboxHostOptions,\n): Promise<NormalizedIntegrationResult> {\n try {\n validateIntegrationInvocationEnvelope(envelope, options)\n const result = await options.hub.invokeWithCapability(\n envelope.capabilityToken,\n invocationRequestFromEnvelope(envelope, options),\n )\n return normalizeIntegrationResult(result)\n } catch (error) {\n return {\n status: 'failed',\n action: typeof envelope?.action === 'string' ? envelope.action : 'unknown',\n error: error instanceof Error ? error.message : 'Integration invocation failed.',\n }\n }\n}\n\nexport class IntegrationSandboxHost {\n private readonly options: IntegrationSandboxHostOptions\n\n constructor(options: IntegrationSandboxHostOptions) {\n this.options = options\n }\n\n dispatch(envelope: IntegrationInvocationEnvelope): Promise<NormalizedIntegrationResult> {\n return dispatchIntegrationInvocation(envelope, this.options)\n }\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as canonicalIntegrationKind } from "./integration-kind-aliases-DeUJgBWP.js";
|
|
2
|
-
import { a as getBundledAdapterManifest, i as bundledOAuth2AuthContract, n as bundledAuthMode, t as bundledApiKeyHint } from "./bundled-manifest-data-
|
|
2
|
+
import { a as getBundledAdapterManifest, i as bundledOAuth2AuthContract, n as bundledAuthMode, t as bundledApiKeyHint } from "./bundled-manifest-data-ka9qth1e.js";
|
|
3
3
|
import { buildIntegrationCoverageConnectors, listIntegrationCoverageSpecs } from "./coverage-catalog.js";
|
|
4
4
|
//#region src/specs/families.ts
|
|
5
5
|
const INTEGRATION_FAMILIES = {
|
|
@@ -2406,4 +2406,4 @@ function validateCredentialSet(spec, values) {
|
|
|
2406
2406
|
//#endregion
|
|
2407
2407
|
export { getIntegrationFamily as _, buildHealthcheckPlan as a, renderConsoleSteps as c, getIntegrationSpec as d, integrationSpecToConnector as f, INTEGRATION_FAMILIES as g, resolveConnectorAuthSpec as h, validateIntegrationSpec as i, renderRunbookMarkdown as l, listIntegrationSpecs as m, validateCredentialFormat as n, consoleStepsToText as o, listExecutableIntegrationSpecs as p, validateCredentialSet as r, renderAgentToolDescription as s, assertValidIntegrationSpec as t, specAuthToConnectorAuth as u };
|
|
2408
2408
|
|
|
2409
|
-
//# sourceMappingURL=specs-
|
|
2409
|
+
//# sourceMappingURL=specs-C2qsaxDe.js.map
|