@tangle-network/agent-integrations 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +151 -161
- package/dist/index.d.ts +184 -1
- package/dist/index.js +591 -0
- package/dist/index.js.map +1 -1
- package/docs/integration-coverage-checklist.md +2 -1
- package/docs/provider-decision-matrix.md +1 -3
- package/examples/basic-hub.ts +47 -0
- package/examples/declarative-rest.ts +27 -0
- package/examples/first-party-adapter.ts +32 -0
- package/package.json +2 -1
- package/docs/execution-layer-launch-plan.md +0 -222
package/README.md
CHANGED
|
@@ -1,173 +1,163 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
# @tangle-network/agent-integrations
|
|
2
|
+
|
|
3
|
+
Vendor-neutral integration contracts for agent apps, sandboxes, and generated
|
|
4
|
+
software that need user-authorized access to external systems.
|
|
5
|
+
|
|
6
|
+
The package standardizes connector catalogs, user connections, scoped sandbox
|
|
7
|
+
capabilities, action invocation, trigger events, provider adapters, and
|
|
8
|
+
first-party connector adapters. Product code can route through Nango, Pipedream,
|
|
9
|
+
Activepieces, a custom gateway, or first-party adapters without changing the
|
|
10
|
+
agent-facing tool contract.
|
|
11
|
+
|
|
12
|
+
## Contents
|
|
13
|
+
|
|
14
|
+
- [What It Provides](#what-it-provides)
|
|
15
|
+
- [Architecture](#architecture)
|
|
16
|
+
- [Install](#install)
|
|
17
|
+
- [Core Primitives](#core-primitives)
|
|
18
|
+
- [Provider Strategy](#provider-strategy)
|
|
19
|
+
- [Executable Coverage](#executable-coverage)
|
|
20
|
+
- [Examples](#examples)
|
|
21
|
+
- [Security Model](#security-model)
|
|
22
|
+
- [Development](#development)
|
|
23
|
+
|
|
24
|
+
## What It Provides
|
|
25
|
+
|
|
26
|
+
- A normalized connector/action/trigger catalog.
|
|
27
|
+
- User-owned connection records that reference secrets without storing raw
|
|
28
|
+
credentials in public shapes.
|
|
29
|
+
- Short-lived capability tokens for sandbox-safe access to a subset of a user's
|
|
30
|
+
connection.
|
|
31
|
+
- Policy checks for read/write/destructive actions.
|
|
32
|
+
- Invocation-envelope validation before sandbox tool calls reach the hub.
|
|
33
|
+
- A generic HTTP provider boundary for hosted integration gateways.
|
|
34
|
+
- A first-party `ConnectorAdapter` boundary for direct provider execution.
|
|
35
|
+
- A declarative REST adapter factory for promoting REST APIs from reviewed specs.
|
|
36
|
+
- A broad coverage catalog for planning hundreds of integrations without
|
|
37
|
+
pretending every catalog item is executable.
|
|
38
|
+
- A generated `IntegrationSpec` registry used for setup docs, admin UI steps,
|
|
39
|
+
normalized permissions, healthcheck plans, and tool descriptions.
|
|
40
|
+
|
|
41
|
+
## Architecture
|
|
12
42
|
|
|
13
43
|
```txt
|
|
14
|
-
|
|
44
|
+
connector catalog
|
|
45
|
+
-> user connection
|
|
46
|
+
-> scoped capability
|
|
47
|
+
-> policy decision
|
|
48
|
+
-> provider/action invocation
|
|
49
|
+
-> audit-safe result or normalized trigger event
|
|
15
50
|
```
|
|
16
51
|
|
|
17
|
-
|
|
18
|
-
HubSpot, webhooks, internal tools.
|
|
19
|
-
- **Connections** are user/team-owned grants. They carry secret references, not
|
|
20
|
-
raw credentials.
|
|
21
|
-
- **Capabilities** are short-lived, sandbox-safe tokens that authorize a subset
|
|
22
|
-
of actions on a connection.
|
|
23
|
-
- **Actions** are read/write/destructive operations.
|
|
24
|
-
- **Triggers** normalize inbound events from providers into one event shape.
|
|
25
|
-
|
|
26
|
-
## Why This Exists
|
|
27
|
-
|
|
28
|
-
Agent Builder and sandbox apps need to support prompts like:
|
|
29
|
-
|
|
30
|
-
```txt
|
|
31
|
-
At Gmail, build me an app that summarizes unread support emails and drafts replies.
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
The generated app should be able to request Gmail access, instantiate inside the
|
|
35
|
-
user's sandbox, and let the agent read/write through a scoped integration
|
|
36
|
-
capability. The sandbox should never receive reusable provider secrets.
|
|
37
|
-
|
|
38
|
-
## Core Usage
|
|
39
|
-
|
|
40
|
-
### Product Flow
|
|
52
|
+
Main boundaries:
|
|
41
53
|
|
|
42
|
-
|
|
54
|
+
- `IntegrationHub`: product-facing facade for catalogs, connections,
|
|
55
|
+
capabilities, and action invocation.
|
|
56
|
+
- `IntegrationProvider`: vendor or gateway implementation boundary.
|
|
57
|
+
- `ConnectorAdapter`: first-party connector boundary for direct API execution.
|
|
58
|
+
- `IntegrationActionGuard`: optional cross-cutting hook for idempotency,
|
|
59
|
+
approval, audit logging, rate limits, and conflict handling.
|
|
43
60
|
|
|
44
|
-
|
|
45
|
-
generated app declares required tools
|
|
46
|
-
-> app searches the integration catalog by intent
|
|
47
|
-
-> user connects the missing accounts
|
|
48
|
-
-> runtime issues a short-lived capability to the sandbox
|
|
49
|
-
-> reads run immediately
|
|
50
|
-
-> writes pause for policy approval
|
|
51
|
-
-> every call returns an audit-safe result
|
|
52
|
-
```
|
|
61
|
+
## Install
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- `buildIntegrationToolCatalog` and `searchIntegrationTools` for discoverable
|
|
57
|
-
tool catalogs.
|
|
58
|
-
- `buildIntegrationCoverageConnectors` for broad planning coverage across
|
|
59
|
-
100+ high-value integrations before each one has a first-party executor.
|
|
60
|
-
- `toMcpTools` for MCP-compatible tool export.
|
|
61
|
-
- `IntegrationHub.issueCapability` for scoped sandbox handoff.
|
|
62
|
-
- `createDefaultIntegrationPolicyEngine` for allow / approval / deny decisions.
|
|
63
|
-
- `buildIntegrationInvocationEnvelope` and
|
|
64
|
-
`validateIntegrationInvocationEnvelope` for sandbox-safe tool calls with
|
|
65
|
-
action/tool consistency, idempotency-key, metadata-shape, known-tool, and
|
|
66
|
-
input-size checks.
|
|
67
|
-
- `createConnectorAdapterProvider` to run first-party adapters through the hub.
|
|
68
|
-
- `declarativeRestConnector` to promote REST-shaped providers from compact,
|
|
69
|
-
reviewed specs instead of hand-writing one brittle adapter per API.
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
import {
|
|
73
|
-
InMemoryConnectionStore,
|
|
74
|
-
IntegrationHub,
|
|
75
|
-
buildIntegrationToolCatalog,
|
|
76
|
-
createMockIntegrationProvider,
|
|
77
|
-
searchIntegrationTools,
|
|
78
|
-
} from '@tangle-network/agent-integrations'
|
|
79
|
-
|
|
80
|
-
const provider = createMockIntegrationProvider()
|
|
81
|
-
const hub = new IntegrationHub({
|
|
82
|
-
providers: [provider],
|
|
83
|
-
store: new InMemoryConnectionStore(),
|
|
84
|
-
capabilitySecret: 'dev-secret',
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
const catalog = buildIntegrationToolCatalog(await hub.listConnectors())
|
|
88
|
-
const tools = searchIntegrationTools(catalog, 'search unread gmail', { maxRisk: 'read' })
|
|
89
|
-
|
|
90
|
-
const connection = await hub.upsertConnection({
|
|
91
|
-
id: 'conn_1',
|
|
92
|
-
owner: { type: 'user', id: 'user_1' },
|
|
93
|
-
providerId: 'mock',
|
|
94
|
-
connectorId: 'gmail',
|
|
95
|
-
status: 'active',
|
|
96
|
-
grantedScopes: ['email.read'],
|
|
97
|
-
createdAt: new Date().toISOString(),
|
|
98
|
-
updatedAt: new Date().toISOString(),
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
const capability = await hub.issueCapability({
|
|
102
|
-
subject: { type: 'sandbox', id: 'sandbox_1' },
|
|
103
|
-
connectionId: connection.id,
|
|
104
|
-
scopes: ['email.read'],
|
|
105
|
-
allowedActions: ['messages.search'],
|
|
106
|
-
ttlMs: 60_000,
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
const result = await hub.invokeWithCapability(capability.token, {
|
|
110
|
-
action: 'messages.search',
|
|
111
|
-
input: { q: 'is:unread' },
|
|
112
|
-
})
|
|
63
|
+
```sh
|
|
64
|
+
pnpm add @tangle-network/agent-integrations
|
|
113
65
|
```
|
|
114
66
|
|
|
115
|
-
##
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
67
|
+
## Core Primitives
|
|
68
|
+
|
|
69
|
+
| Primitive | Purpose |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `IntegrationConnector` | Normalized catalog entry for a provider connection. |
|
|
72
|
+
| `IntegrationConnection` | User/team/agent-owned grant with scopes and secret references. |
|
|
73
|
+
| `IntegrationHub` | Facade for provider catalogs, connection storage, capabilities, and invocation. |
|
|
74
|
+
| `IntegrationCapability` | Short-lived authorization for a specific subject, connection, scope set, and action set. |
|
|
75
|
+
| `buildIntegrationToolCatalog` | Converts connector actions into agent/tool definitions. |
|
|
76
|
+
| `searchIntegrationTools` | Intent search over normalized integration tools. |
|
|
77
|
+
| `buildIntegrationCoverageConnectors` | Planning catalog for 100+ high-value integrations. |
|
|
78
|
+
| `buildIntegrationInvocationEnvelope` | Sandbox-safe action envelope. |
|
|
79
|
+
| `validateIntegrationInvocationEnvelope` | Runtime validation for tool/action consistency and input limits. |
|
|
80
|
+
| `createHttpIntegrationProvider` | Adapter for hosted integration gateways. |
|
|
81
|
+
| `createConnectorAdapterProvider` | Runs first-party `ConnectorAdapter`s through the same provider contract. |
|
|
82
|
+
| `declarativeRestConnector` | Builds REST-backed first-party adapters from compact specs. |
|
|
83
|
+
| `listIntegrationSpecs` | Generates setup/execution specs from the coverage catalog and family defaults. |
|
|
84
|
+
| `renderRunbookMarkdown` / `renderConsoleSteps` | Render operator docs or admin UI steps from the same spec source. |
|
|
85
|
+
| `validateCredentialSet` / `buildHealthcheckPlan` | Validate setup input and describe the correct healthcheck path. |
|
|
86
|
+
|
|
87
|
+
## Provider Strategy
|
|
88
|
+
|
|
89
|
+
The package deliberately avoids vendor lock-in.
|
|
90
|
+
|
|
91
|
+
- Use a hosted gateway when it compresses long-tail OAuth/API coverage.
|
|
92
|
+
- Promote high-volume, sensitive, or strategically important integrations to
|
|
93
|
+
first-party adapters.
|
|
94
|
+
- Keep product and sandbox code on `IntegrationHub` contracts so provider changes
|
|
95
|
+
do not alter generated apps or agent tool calls.
|
|
96
|
+
- Treat catalog coverage and executable coverage as different states.
|
|
97
|
+
|
|
98
|
+
See [Provider Decision Matrix](./docs/provider-decision-matrix.md).
|
|
99
|
+
|
|
100
|
+
## Executable Coverage
|
|
101
|
+
|
|
102
|
+
Current first-party adapters:
|
|
103
|
+
|
|
104
|
+
- Google Calendar
|
|
105
|
+
- Microsoft Calendar
|
|
106
|
+
- Google Sheets
|
|
107
|
+
- Slack
|
|
108
|
+
- Slack Events
|
|
109
|
+
- HubSpot
|
|
110
|
+
- Notion database
|
|
111
|
+
- Stripe payments pack
|
|
112
|
+
- Stripe webhook receiver
|
|
113
|
+
- Twilio SMS
|
|
114
|
+
- Generic webhook
|
|
115
|
+
- GitHub
|
|
116
|
+
- GitLab
|
|
117
|
+
- Airtable
|
|
118
|
+
- Asana
|
|
119
|
+
- Salesforce
|
|
120
|
+
|
|
121
|
+
Broad planning coverage is generated from
|
|
122
|
+
`buildIntegrationCoverageConnectors()` and tracked in
|
|
123
|
+
[Integration Coverage Checklist](./docs/integration-coverage-checklist.md).
|
|
124
|
+
|
|
125
|
+
## Examples
|
|
126
|
+
|
|
127
|
+
Runnable examples live in [`examples/`](./examples):
|
|
128
|
+
|
|
129
|
+
- [`examples/basic-hub.ts`](./examples/basic-hub.ts) - catalog search,
|
|
130
|
+
connection storage, capability issue, and action invocation.
|
|
131
|
+
- [`examples/first-party-adapter.ts`](./examples/first-party-adapter.ts) -
|
|
132
|
+
first-party adapter provider wiring.
|
|
133
|
+
- [`examples/declarative-rest.ts`](./examples/declarative-rest.ts) - compact
|
|
134
|
+
REST connector spec.
|
|
135
|
+
|
|
136
|
+
The README stays short; examples are separate so they can be copied and expanded
|
|
137
|
+
without obscuring the package contract.
|
|
138
|
+
|
|
139
|
+
## Security Model
|
|
140
|
+
|
|
141
|
+
- Capability tokens expire.
|
|
142
|
+
- Capability tokens do not contain provider credentials.
|
|
143
|
+
- Connection records carry secret references, not raw secrets.
|
|
144
|
+
- Write and destructive actions can require approval.
|
|
145
|
+
- Invocation envelopes validate action/tool consistency, idempotency keys,
|
|
146
|
+
metadata shape, known tools, and input size.
|
|
147
|
+
- Action invocation checks ownership, connection status, scopes, allowed actions,
|
|
148
|
+
and expiration.
|
|
149
|
+
- `IntegrationActionGuard` can enforce idempotency, approval, audit logging,
|
|
150
|
+
conflict handling, and rate limits across all providers.
|
|
151
|
+
|
|
152
|
+
## Development
|
|
153
|
+
|
|
154
|
+
```sh
|
|
155
|
+
pnpm install
|
|
156
|
+
pnpm typecheck
|
|
157
|
+
pnpm test
|
|
158
|
+
pnpm build
|
|
136
159
|
```
|
|
137
160
|
|
|
138
|
-
|
|
139
|
-
Nango, Pipedream, Activepieces, a Zapier-style service, or an internal gateway.
|
|
140
|
-
|
|
141
|
-
For first-party REST APIs, use the declarative adapter factory:
|
|
142
|
-
|
|
143
|
-
```ts
|
|
144
|
-
import { createConnectorAdapterProvider, githubConnector } from '@tangle-network/agent-integrations'
|
|
145
|
-
|
|
146
|
-
const provider = createConnectorAdapterProvider({
|
|
147
|
-
adapters: [githubConnector],
|
|
148
|
-
resolveDataSource: async (connection) => loadSourceAndCredentials(connection),
|
|
149
|
-
})
|
|
150
|
-
```
|
|
161
|
+
## License
|
|
151
162
|
|
|
152
|
-
|
|
153
|
-
Google Sheets, Slack, HubSpot, Notion database, Stripe, Twilio, webhooks,
|
|
154
|
-
GitHub, GitLab, Airtable, Asana, and Salesforce.
|
|
155
|
-
|
|
156
|
-
See [Provider Decision Matrix](./docs/provider-decision-matrix.md) for the
|
|
157
|
-
build-vs-buy policy. The short version: use a vendor gateway only to compress
|
|
158
|
-
time-to-coverage, but keep all product and sandbox code on this package's
|
|
159
|
-
contracts so high-volume or strategic connectors can be moved first-party
|
|
160
|
-
without changing agent code.
|
|
161
|
-
|
|
162
|
-
## Security Defaults
|
|
163
|
-
|
|
164
|
-
- Capabilities expire.
|
|
165
|
-
- Capability tokens contain no provider credential.
|
|
166
|
-
- Secret refs are redacted from public telemetry.
|
|
167
|
-
- Write/destructive actions can be policy-gated.
|
|
168
|
-
- Sandbox invocation envelopes are validated before conversion to hub requests.
|
|
169
|
-
- Action invocation checks connection ownership, status, scopes, allowed
|
|
170
|
-
actions, and expiration.
|
|
171
|
-
- Optional `IntegrationActionGuard` wraps every action invocation for
|
|
172
|
-
idempotency, audit logging, conflict detection, rate limits, and
|
|
173
|
-
approval gates.
|
|
163
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -1205,6 +1205,189 @@ declare function buildIntegrationCoverageConnectors(options?: {
|
|
|
1205
1205
|
}): IntegrationConnector[];
|
|
1206
1206
|
declare function integrationCoverageChecklistMarkdown(): string;
|
|
1207
1207
|
|
|
1208
|
+
type IntegrationAuthMode = 'oauth2' | 'api_key' | 'hmac' | 'none' | 'custom';
|
|
1209
|
+
type IntegrationSpecStatus = 'catalog' | 'executable' | 'deprecated';
|
|
1210
|
+
type IntegrationFamilyId = 'google' | 'microsoft-graph' | 'atlassian' | 'salesforce' | 'hubspot' | 'slack' | 'notion' | 'standard-oauth2' | 'api-key' | 'hmac' | 'none';
|
|
1211
|
+
type NormalizedPermission = `${string}.read` | `${string}.write` | `${string}.delete` | `${string}.admin`;
|
|
1212
|
+
interface IntegrationSpec {
|
|
1213
|
+
kind: string;
|
|
1214
|
+
title: string;
|
|
1215
|
+
category: IntegrationConnectorCategory;
|
|
1216
|
+
status: IntegrationSpecStatus;
|
|
1217
|
+
family: IntegrationFamilyId;
|
|
1218
|
+
auth: IntegrationAuthSpec;
|
|
1219
|
+
permissions: PermissionDescriptor[];
|
|
1220
|
+
actions: IntegrationConnectorAction[];
|
|
1221
|
+
triggers?: IntegrationConnectorTrigger[];
|
|
1222
|
+
setup: IntegrationSetupSpec;
|
|
1223
|
+
lifecycle?: IntegrationLifecycleSpec;
|
|
1224
|
+
plannerHints?: IntegrationPlannerHints;
|
|
1225
|
+
metadata?: Record<string, unknown>;
|
|
1226
|
+
}
|
|
1227
|
+
type IntegrationAuthSpec = OAuth2AuthSpec | ApiKeyAuthSpec | HmacAuthSpec | NoneAuthSpec | CustomAuthSpec;
|
|
1228
|
+
interface OAuth2AuthSpec {
|
|
1229
|
+
mode: 'oauth2';
|
|
1230
|
+
authorizationUrl: string;
|
|
1231
|
+
tokenUrl: string;
|
|
1232
|
+
clientIdEnv?: string;
|
|
1233
|
+
clientSecretEnv?: string;
|
|
1234
|
+
scopes: ScopeDescriptor[];
|
|
1235
|
+
extraAuthParams?: Record<string, string>;
|
|
1236
|
+
redirectUriTemplate: string;
|
|
1237
|
+
pkce?: 'required' | 'supported' | 'unsupported';
|
|
1238
|
+
}
|
|
1239
|
+
interface ApiKeyAuthSpec {
|
|
1240
|
+
mode: 'api_key';
|
|
1241
|
+
credential: CredentialFieldSpec;
|
|
1242
|
+
placement?: 'bearer' | 'header' | 'query' | 'basic';
|
|
1243
|
+
}
|
|
1244
|
+
interface HmacAuthSpec {
|
|
1245
|
+
mode: 'hmac';
|
|
1246
|
+
credential: CredentialFieldSpec;
|
|
1247
|
+
signatureHeader?: string;
|
|
1248
|
+
}
|
|
1249
|
+
interface NoneAuthSpec {
|
|
1250
|
+
mode: 'none';
|
|
1251
|
+
}
|
|
1252
|
+
interface CustomAuthSpec {
|
|
1253
|
+
mode: 'custom';
|
|
1254
|
+
description: string;
|
|
1255
|
+
}
|
|
1256
|
+
interface ScopeDescriptor {
|
|
1257
|
+
normalized: NormalizedPermission;
|
|
1258
|
+
providerScope: string;
|
|
1259
|
+
title: string;
|
|
1260
|
+
reason: string;
|
|
1261
|
+
risk: IntegrationActionRisk;
|
|
1262
|
+
dataClass: IntegrationDataClass;
|
|
1263
|
+
}
|
|
1264
|
+
interface PermissionDescriptor {
|
|
1265
|
+
normalized: NormalizedPermission;
|
|
1266
|
+
providerScopes: string[];
|
|
1267
|
+
title: string;
|
|
1268
|
+
risk: IntegrationActionRisk;
|
|
1269
|
+
dataClass: IntegrationDataClass;
|
|
1270
|
+
reason: string;
|
|
1271
|
+
}
|
|
1272
|
+
interface CredentialFieldSpec {
|
|
1273
|
+
label: string;
|
|
1274
|
+
description: string;
|
|
1275
|
+
env?: string;
|
|
1276
|
+
example?: string;
|
|
1277
|
+
regex?: string;
|
|
1278
|
+
secret: boolean;
|
|
1279
|
+
}
|
|
1280
|
+
interface ConsoleStep {
|
|
1281
|
+
id: string;
|
|
1282
|
+
title: string;
|
|
1283
|
+
detail: string;
|
|
1284
|
+
copyValue?: string;
|
|
1285
|
+
}
|
|
1286
|
+
interface Quirk {
|
|
1287
|
+
id: string;
|
|
1288
|
+
severity: 'info' | 'warning' | 'critical';
|
|
1289
|
+
message: string;
|
|
1290
|
+
}
|
|
1291
|
+
interface PostSetupCheck {
|
|
1292
|
+
id: string;
|
|
1293
|
+
title: string;
|
|
1294
|
+
detail: string;
|
|
1295
|
+
}
|
|
1296
|
+
interface HealthcheckSpec {
|
|
1297
|
+
id: string;
|
|
1298
|
+
level: 'client_config' | 'connection' | 'webhook' | 'static';
|
|
1299
|
+
method?: 'GET' | 'POST';
|
|
1300
|
+
url?: string;
|
|
1301
|
+
expectedStatus?: number[];
|
|
1302
|
+
description: string;
|
|
1303
|
+
}
|
|
1304
|
+
interface IntegrationSetupSpec {
|
|
1305
|
+
consoleUrl?: string;
|
|
1306
|
+
consoleSteps: ConsoleStep[];
|
|
1307
|
+
credentialFields: CredentialFieldSpec[];
|
|
1308
|
+
redirectUriTemplate?: string;
|
|
1309
|
+
knownQuirks?: Quirk[];
|
|
1310
|
+
postSetup?: PostSetupCheck[];
|
|
1311
|
+
healthcheck?: HealthcheckSpec;
|
|
1312
|
+
}
|
|
1313
|
+
interface IntegrationLifecycleSpec {
|
|
1314
|
+
supportsRefresh: boolean;
|
|
1315
|
+
supportsRevoke: boolean;
|
|
1316
|
+
supportsIncrementalAuth: boolean;
|
|
1317
|
+
recommendedHealthcheckIntervalHours?: number;
|
|
1318
|
+
freshnessSloMinutes?: number;
|
|
1319
|
+
}
|
|
1320
|
+
interface IntegrationPlannerHints {
|
|
1321
|
+
useFor: string[];
|
|
1322
|
+
avoidFor?: string[];
|
|
1323
|
+
dataFreshness: 'realtime' | 'near_realtime' | 'eventual' | 'manual';
|
|
1324
|
+
writeRisk: 'low' | 'medium' | 'high';
|
|
1325
|
+
}
|
|
1326
|
+
interface IntegrationFamilySpec {
|
|
1327
|
+
id: IntegrationFamilyId;
|
|
1328
|
+
title: string;
|
|
1329
|
+
authMode: IntegrationAuthMode;
|
|
1330
|
+
consoleUrl?: string;
|
|
1331
|
+
authorizationUrl?: string;
|
|
1332
|
+
tokenUrl?: string;
|
|
1333
|
+
redirectUriTemplate?: string;
|
|
1334
|
+
credentialFields: CredentialFieldSpec[];
|
|
1335
|
+
consoleSteps: ConsoleStep[];
|
|
1336
|
+
knownQuirks?: Quirk[];
|
|
1337
|
+
lifecycle: IntegrationLifecycleSpec;
|
|
1338
|
+
}
|
|
1339
|
+
interface IntegrationSpecValidationIssue {
|
|
1340
|
+
path: string;
|
|
1341
|
+
message: string;
|
|
1342
|
+
}
|
|
1343
|
+
interface IntegrationSpecValidationResult {
|
|
1344
|
+
ok: boolean;
|
|
1345
|
+
issues: IntegrationSpecValidationIssue[];
|
|
1346
|
+
}
|
|
1347
|
+
interface RenderSpecOptions {
|
|
1348
|
+
host: string;
|
|
1349
|
+
callbackPath?: string;
|
|
1350
|
+
}
|
|
1351
|
+
interface RenderedConsoleStep extends ConsoleStep {
|
|
1352
|
+
detail: string;
|
|
1353
|
+
copyValue?: string;
|
|
1354
|
+
}
|
|
1355
|
+
interface CredentialValidationInput {
|
|
1356
|
+
field: CredentialFieldSpec;
|
|
1357
|
+
value: string;
|
|
1358
|
+
}
|
|
1359
|
+
interface CredentialValidationResult {
|
|
1360
|
+
ok: boolean;
|
|
1361
|
+
field: string;
|
|
1362
|
+
message?: string;
|
|
1363
|
+
}
|
|
1364
|
+
interface HealthcheckPlan {
|
|
1365
|
+
kind: string;
|
|
1366
|
+
healthcheck: HealthcheckSpec;
|
|
1367
|
+
requires: Array<'client_id' | 'client_secret' | 'api_key' | 'hmac_secret' | 'connection_credentials'>;
|
|
1368
|
+
message: string;
|
|
1369
|
+
}
|
|
1370
|
+
declare function specAuthToConnectorAuth(auth: IntegrationAuthSpec): IntegrationConnector['auth'];
|
|
1371
|
+
|
|
1372
|
+
declare const INTEGRATION_FAMILIES: Record<IntegrationFamilyId, IntegrationFamilySpec>;
|
|
1373
|
+
declare function getIntegrationFamily(id: IntegrationFamilyId): IntegrationFamilySpec;
|
|
1374
|
+
|
|
1375
|
+
declare function listIntegrationSpecs(): IntegrationSpec[];
|
|
1376
|
+
declare function getIntegrationSpec(kind: string): IntegrationSpec | undefined;
|
|
1377
|
+
declare function listExecutableIntegrationSpecs(): IntegrationSpec[];
|
|
1378
|
+
declare function integrationSpecToConnector(spec: IntegrationSpec, providerId?: string): IntegrationConnector;
|
|
1379
|
+
|
|
1380
|
+
declare function renderConsoleSteps(spec: IntegrationSpec, options: RenderSpecOptions): RenderedConsoleStep[];
|
|
1381
|
+
declare function renderRunbookMarkdown(spec: IntegrationSpec, options: RenderSpecOptions): string;
|
|
1382
|
+
declare function renderAgentToolDescription(spec: IntegrationSpec): string;
|
|
1383
|
+
declare function buildHealthcheckPlan(spec: IntegrationSpec): HealthcheckPlan;
|
|
1384
|
+
declare function consoleStepsToText(steps: ConsoleStep[]): string;
|
|
1385
|
+
|
|
1386
|
+
declare function validateIntegrationSpec(spec: IntegrationSpec): IntegrationSpecValidationResult;
|
|
1387
|
+
declare function assertValidIntegrationSpec(spec: IntegrationSpec): void;
|
|
1388
|
+
declare function validateCredentialFormat(field: CredentialFieldSpec, value: string): CredentialValidationResult;
|
|
1389
|
+
declare function validateCredentialSet(spec: IntegrationSpec, values: Record<string, string>): CredentialValidationResult[];
|
|
1390
|
+
|
|
1208
1391
|
type IntegrationProviderKind = 'first_party' | 'nango' | 'pipedream' | 'zapier' | 'activepieces' | 'executor' | 'custom';
|
|
1209
1392
|
type IntegrationConnectorCategory = 'email' | 'calendar' | 'chat' | 'crm' | 'storage' | 'docs' | 'database' | 'webhook' | 'workflow' | 'internal' | 'other';
|
|
1210
1393
|
type IntegrationActionRisk = 'read' | 'write' | 'destructive';
|
|
@@ -1501,4 +1684,4 @@ declare function createHttpIntegrationProvider(options: HttpIntegrationProviderO
|
|
|
1501
1684
|
declare function signCapability(capability: IntegrationCapability, secret: string): string;
|
|
1502
1685
|
declare function verifyCapabilityToken(token: string, secret: string): IntegrationCapability;
|
|
1503
1686
|
|
|
1504
|
-
export { type AuthSpec, type CASStrategy, type Capability, type CapabilityClass, type CapabilityMutation, type CapabilityMutationResult, type CapabilityParameterSchema, type CapabilityRead, type CapabilityReadResult, type CompleteAuthRequest, type ConnectorAdapter, type ConnectorAdapterProviderOptions, type ConnectorCredentials, type ConnectorInvocation, type ConnectorManifest, type ConnectorManifestValidationIssue, type ConnectorManifestValidationResult, type ConsistencyModel, CredentialsExpired, DEFAULT_SIGNATURE_TOLERANCE_SECONDS, type DataSourceMetadata, type EventHandlerResult, type ExchangeCodeInput, type GenericHmacVerifyOptions, type GoogleCalendarOptions, type GoogleSheetsOptions, type GraphqlOperationSpec, type HttpIntegrationProviderOptions, type HubSpotOptions, type ImportCatalogOptions, InMemoryConnectionStore, InMemoryOAuthFlowStore, type InboundEvent, type IntegrationActionGuard, type IntegrationActionPack, type IntegrationActionRequest, type IntegrationActionResult, type IntegrationActionRisk, type IntegrationActor, type IntegrationApprovalRequest, type IntegrationApprovalResolution, type IntegrationCapability, type IntegrationConnection, type IntegrationConnectionStore, type IntegrationConnector, type IntegrationConnectorAction, type IntegrationConnectorCategory, type IntegrationConnectorTrigger, type IntegrationCoveragePriority, type IntegrationCoverageSpec, type IntegrationDataClass, IntegrationError, type IntegrationGuardContext, IntegrationHub, type IntegrationHubOptions, type IntegrationInvocationEnvelope, type IntegrationInvocationEnvelopeValidationOptions, type IntegrationPolicyDecision, type IntegrationPolicyEffect, type IntegrationPolicyEngine, type IntegrationPolicyRule, type IntegrationProvider, type IntegrationProviderKind, type IntegrationToolDefinition, type IntegrationToolSearchFilters, type IntegrationToolSearchResult, type IntegrationTriggerEvent, type IntegrationTriggerSubscription, type InvokeWithCapabilityRequest, type IssueCapabilityRequest, type IssuedIntegrationCapability, type McpCatalog, type McpCatalogTool, type McpToolDefinition, type MicrosoftCalendarOptions, type NormalizedIntegrationResult, type NotionDatabaseOptions, type OAuthFlowStore, type OAuthTokens, type OpenApiDocument, type OpenApiOperation, type ParsedStripeSignatureHeader, type PendingOAuthFlow, type RateLimitSpec, type RefreshInput, type ResolvedDataSource, ResourceContention, type RestConnectorSpec, type RestCredentialPlacement, type RestOperationSpec, type RestRequestSpec, type SecretRef, type SlackOptions, type SlackVerifyOptions, type StartAuthRequest, type StartAuthResult, type StartOAuthInput, type StartOAuthOutput, StaticIntegrationPolicyEngine, type StaticIntegrationPolicyOptions, type StripeVerifyOptions, type TwilioVerifyOptions, _resetPendingFlowsForTests, airtableConnector, asanaConnector, assertValidConnectorManifest, buildApprovalRequest, buildIntegrationCoverageConnectors, buildIntegrationInvocationEnvelope, buildIntegrationToolCatalog, consumePendingFlow, createConnectorAdapterProvider, createDefaultIntegrationPolicyEngine, createHttpIntegrationProvider, createMockIntegrationProvider, declarativeRestConnector, exchangeAuthorizationCode, firstHeader, githubConnector, gitlabConnector, googleCalendar, googleSheets, hubspot, importGraphqlConnector, importMcpConnector, importOpenApiConnector, integrationCoverageChecklistMarkdown, integrationToolName, invocationRequestFromEnvelope, listIntegrationCoverageSpecs, manifestToConnector, microsoftCalendar, normalizeIntegrationResult, notionDatabase, parseIntegrationToolName, parseStripeSignatureHeader, redactApprovalRequest, redactCapability, redactInvocationEnvelope, refreshAccessToken, salesforceConnector, sanitizeConnection, searchIntegrationTools, signCapability, slack, slackEventsConnector, startOAuthFlow, stripePackConnector, stripeWebhookReceiverConnector, toMcpTools, twilioSmsConnector, validateConnectorManifest, validateIntegrationInvocationEnvelope, verifyCapabilityToken, verifyHmacSignature, verifySlackSignature, verifyStripeSignature, verifyTwilioSignature, webhookConnector };
|
|
1687
|
+
export { type ApiKeyAuthSpec, type AuthSpec, type CASStrategy, type Capability, type CapabilityClass, type CapabilityMutation, type CapabilityMutationResult, type CapabilityParameterSchema, type CapabilityRead, type CapabilityReadResult, type CompleteAuthRequest, type ConnectorAdapter, type ConnectorAdapterProviderOptions, type ConnectorCredentials, type ConnectorInvocation, type ConnectorManifest, type ConnectorManifestValidationIssue, type ConnectorManifestValidationResult, type ConsistencyModel, type ConsoleStep, type CredentialFieldSpec, type CredentialValidationInput, type CredentialValidationResult, CredentialsExpired, type CustomAuthSpec, DEFAULT_SIGNATURE_TOLERANCE_SECONDS, type DataSourceMetadata, type EventHandlerResult, type ExchangeCodeInput, type GenericHmacVerifyOptions, type GoogleCalendarOptions, type GoogleSheetsOptions, type GraphqlOperationSpec, type HealthcheckPlan, type HealthcheckSpec, type HmacAuthSpec, type HttpIntegrationProviderOptions, type HubSpotOptions, INTEGRATION_FAMILIES, type ImportCatalogOptions, InMemoryConnectionStore, InMemoryOAuthFlowStore, type InboundEvent, type IntegrationActionGuard, type IntegrationActionPack, type IntegrationActionRequest, type IntegrationActionResult, type IntegrationActionRisk, type IntegrationActor, type IntegrationApprovalRequest, type IntegrationApprovalResolution, type IntegrationAuthMode, type IntegrationAuthSpec, type IntegrationCapability, type IntegrationConnection, type IntegrationConnectionStore, type IntegrationConnector, type IntegrationConnectorAction, type IntegrationConnectorCategory, type IntegrationConnectorTrigger, type IntegrationCoveragePriority, type IntegrationCoverageSpec, type IntegrationDataClass, IntegrationError, type IntegrationFamilyId, type IntegrationFamilySpec, type IntegrationGuardContext, IntegrationHub, type IntegrationHubOptions, type IntegrationInvocationEnvelope, type IntegrationInvocationEnvelopeValidationOptions, type IntegrationLifecycleSpec, type IntegrationPlannerHints, type IntegrationPolicyDecision, type IntegrationPolicyEffect, type IntegrationPolicyEngine, type IntegrationPolicyRule, type IntegrationProvider, type IntegrationProviderKind, type IntegrationSetupSpec, type IntegrationSpec, type IntegrationSpecStatus, type IntegrationSpecValidationIssue, type IntegrationSpecValidationResult, type IntegrationToolDefinition, type IntegrationToolSearchFilters, type IntegrationToolSearchResult, type IntegrationTriggerEvent, type IntegrationTriggerSubscription, type InvokeWithCapabilityRequest, type IssueCapabilityRequest, type IssuedIntegrationCapability, type McpCatalog, type McpCatalogTool, type McpToolDefinition, type MicrosoftCalendarOptions, type NoneAuthSpec, type NormalizedIntegrationResult, type NormalizedPermission, type NotionDatabaseOptions, type OAuth2AuthSpec, type OAuthFlowStore, type OAuthTokens, type OpenApiDocument, type OpenApiOperation, type ParsedStripeSignatureHeader, type PendingOAuthFlow, type PermissionDescriptor, type PostSetupCheck, type Quirk, type RateLimitSpec, type RefreshInput, type RenderSpecOptions, type RenderedConsoleStep, type ResolvedDataSource, ResourceContention, type RestConnectorSpec, type RestCredentialPlacement, type RestOperationSpec, type RestRequestSpec, type ScopeDescriptor, type SecretRef, type SlackOptions, type SlackVerifyOptions, type StartAuthRequest, type StartAuthResult, type StartOAuthInput, type StartOAuthOutput, StaticIntegrationPolicyEngine, type StaticIntegrationPolicyOptions, type StripeVerifyOptions, type TwilioVerifyOptions, _resetPendingFlowsForTests, airtableConnector, asanaConnector, assertValidConnectorManifest, assertValidIntegrationSpec, buildApprovalRequest, buildHealthcheckPlan, buildIntegrationCoverageConnectors, buildIntegrationInvocationEnvelope, buildIntegrationToolCatalog, consoleStepsToText, consumePendingFlow, createConnectorAdapterProvider, createDefaultIntegrationPolicyEngine, createHttpIntegrationProvider, createMockIntegrationProvider, declarativeRestConnector, exchangeAuthorizationCode, firstHeader, getIntegrationFamily, getIntegrationSpec, githubConnector, gitlabConnector, googleCalendar, googleSheets, hubspot, importGraphqlConnector, importMcpConnector, importOpenApiConnector, integrationCoverageChecklistMarkdown, integrationSpecToConnector, integrationToolName, invocationRequestFromEnvelope, listExecutableIntegrationSpecs, listIntegrationCoverageSpecs, listIntegrationSpecs, manifestToConnector, microsoftCalendar, normalizeIntegrationResult, notionDatabase, parseIntegrationToolName, parseStripeSignatureHeader, redactApprovalRequest, redactCapability, redactInvocationEnvelope, refreshAccessToken, renderAgentToolDescription, renderConsoleSteps, renderRunbookMarkdown, salesforceConnector, sanitizeConnection, searchIntegrationTools, signCapability, slack, slackEventsConnector, specAuthToConnectorAuth, startOAuthFlow, stripePackConnector, stripeWebhookReceiverConnector, toMcpTools, twilioSmsConnector, validateConnectorManifest, validateCredentialFormat, validateCredentialSet, validateIntegrationInvocationEnvelope, validateIntegrationSpec, verifyCapabilityToken, verifyHmacSignature, verifySlackSignature, verifyStripeSignature, verifyTwilioSignature, webhookConnector };
|