@alfe.ai/agent-api-client 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +334 -13
- package/dist/index.d.cts +313 -310
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +313 -310
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +334 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["PERMISSION_CATALOG","Record","TENANT_ALLOWED_SUBJECTS","TenantAllowedSubject","ResourceScope","RESOURCE_SCOPES","AccessLevel","ScopedAccess","AllScopedAccess","ResourceScope","DEFAULT_INTEGRATIONS","IntegrationVisibility","INTEGRATION_VISIBILITIES","IntegrationScope","INTEGRATION_SCOPES","IntegrationDesiredStatus","INTEGRATION_DESIRED_STATUSES","IntegrationActualStatus","INTEGRATION_ACTUAL_STATUSES","IntegrationInstall","Record","AgentIntegration","OrgIntegration","IntegrationConfigSchemaField","IntegrationConfigResult","RegistryEntry","ResourceScope","SecretScope","SECRET_SCOPES","EncryptedEnvelopeV1","FIELD_FORMATS","FieldFormat","FIELD_SENSITIVITIES","FieldSensitivity","Field","SECRET_CATEGORIES","SecretCategory","FieldView","SecretAggregate","SecretMetadata","FieldEnvelope","ScopeInfo","GeneratedDataKey","CHANGELOG_ACTIONS","ChangelogAction","ChangelogActor","ChangelogEntry"],"sources":["../../../packages-internal/types/dist/access.d.ts","../../../packages-internal/types/dist/integration.d.ts","../../../packages-internal/types/dist/secrets.d.ts","../src/index.ts"],"sourcesContent":["/**\n * Runtime catalog of declared permission subjects + allowed actions.\n *\n * Mirrors the compile-time `PermissionDefinitions` augmentation in\n * `@alfe/api-core/auriclabs-roles.ts`. Kept here so browser code\n * (dashboard) can consume it without pulling in server-only deps\n * (`@middy/core`, `aws-lambda`, etc.).\n */\nexport declare const PERMISSION_CATALOG: Record<string, readonly string[]>;\n/**\n * Subjects a tenant may grant via a custom role.\n *\n * Excludes `all` (platform-admin escape hatch) and `admin_*` subjects.\n */\nexport declare const TENANT_ALLOWED_SUBJECTS: readonly [\"agent\", \"sync\", \"integration\", \"secret\", \"database\", \"template\", \"org_file\", \"team\", \"project\", \"model_policy\", \"role_management\", \"billing\", \"identity\", \"token\", \"user\", \"gateway\", \"voice\"];\nexport type TenantAllowedSubject = (typeof TENANT_ALLOWED_SUBJECTS)[number];\n/**\n * The four resource scopes at which a permission can apply.\n * Order is meaningful: broader scopes first (`org`) → narrower last (`agent`).\n *\n * `IntegrationScope` in integration.ts and `SecretScope` in secrets.ts are\n * intentional aliases of this same enum — there is only one concept of\n * \"scope\" in Alfe.\n */\nexport declare const ResourceScope: {\n readonly Org: \"org\";\n readonly Team: \"team\";\n readonly Project: \"project\";\n readonly Agent: \"agent\";\n};\nexport type ResourceScope = (typeof ResourceScope)[keyof typeof ResourceScope];\n/** Ordered tuple of resource scope string values (broad → narrow). */\nexport declare const RESOURCE_SCOPES: readonly [\"agent\" | \"team\" | \"project\" | \"org\", ...(\"agent\" | \"team\" | \"project\" | \"org\")[]];\nexport declare const AccessLevel: {\n readonly None: \"none\";\n readonly Read: \"read\";\n readonly Write: \"write\";\n readonly Manage: \"manage\";\n};\nexport type AccessLevel = (typeof AccessLevel)[keyof typeof AccessLevel];\nexport interface ScopedAccess {\n scope: ResourceScope;\n scopeId: string;\n accessLevel: AccessLevel;\n /** Resolved role label (e.g. \"org_admin\", \"team_member\") */\n role: string;\n}\nexport interface AllScopedAccess {\n orgAccess: ScopedAccess;\n teamAccess: ScopedAccess[];\n projectAccess: ScopedAccess[];\n}\n//# sourceMappingURL=access.d.ts.map","import { ResourceScope } from \"./access.js\";\n/** Integrations auto-installed for ALL agents regardless of hosting type. Cannot be removed. */\nexport declare const DEFAULT_INTEGRATIONS: readonly string[];\n/** Controls where an integration appears: public (everyone), hidden (nowhere) */\nexport declare const IntegrationVisibility: {\n readonly Public: \"public\";\n readonly Hidden: \"hidden\";\n};\nexport type IntegrationVisibility = (typeof IntegrationVisibility)[keyof typeof IntegrationVisibility];\nexport declare const INTEGRATION_VISIBILITIES: readonly [\"public\" | \"hidden\", ...(\"public\" | \"hidden\")[]];\n/** Scope at which an integration is installed */\nexport declare const IntegrationScope: {\n readonly Org: \"org\";\n readonly Team: \"team\";\n readonly Project: \"project\";\n readonly Agent: \"agent\";\n};\nexport type IntegrationScope = ResourceScope;\nexport declare const INTEGRATION_SCOPES: readonly [\"agent\" | \"team\" | \"project\" | \"org\", ...(\"agent\" | \"team\" | \"project\" | \"org\")[]];\nexport declare const IntegrationDesiredStatus: {\n readonly Active: \"active\";\n readonly Removed: \"removed\";\n};\nexport type IntegrationDesiredStatus = (typeof IntegrationDesiredStatus)[keyof typeof IntegrationDesiredStatus];\nexport declare const INTEGRATION_DESIRED_STATUSES: readonly [\"active\" | \"removed\", ...(\"active\" | \"removed\")[]];\nexport declare const IntegrationActualStatus: {\n readonly Installing: \"installing\";\n readonly Active: \"active\";\n readonly Error: \"error\";\n readonly Removing: \"removing\";\n readonly Inactive: \"inactive\";\n readonly Unknown: \"unknown\";\n};\nexport type IntegrationActualStatus = (typeof IntegrationActualStatus)[keyof typeof IntegrationActualStatus];\nexport declare const INTEGRATION_ACTUAL_STATUSES: readonly [\"active\" | \"error\" | \"installing\" | \"removing\" | \"inactive\" | \"unknown\", ...(\"active\" | \"error\" | \"installing\" | \"removing\" | \"inactive\" | \"unknown\")[]];\nexport interface IntegrationInstall {\n scope: IntegrationScope;\n scopeId: string;\n integrationId: string;\n tenantId: string;\n desiredStatus: IntegrationDesiredStatus;\n actualStatus: IntegrationActualStatus;\n version: string;\n config: Record<string, unknown>;\n errorMessage: string;\n installedAt: string;\n updatedAt: string;\n}\n/** @deprecated Use IntegrationInstall instead */\nexport type AgentIntegration = IntegrationInstall;\n/** Org-scoped integration install */\nexport type OrgIntegration = IntegrationInstall;\nexport interface IntegrationConfigSchemaField {\n key: string;\n label: string;\n type: string;\n description?: string;\n required?: boolean;\n default?: string | number | boolean;\n options?: string[];\n select_options?: {\n value: string;\n label: string;\n }[];\n oauth_provider?: string;\n oauth_scopes?: string[];\n oauth_integration_id?: string;\n editable?: string;\n hidden?: boolean;\n}\nexport interface IntegrationConfigResult {\n integrationId: string;\n config: Record<string, unknown>;\n configSchema: IntegrationConfigSchemaField[];\n}\nexport interface RegistryEntry {\n id: string;\n name: string;\n description: string;\n versions: string[];\n latest: string;\n repository: string;\n commit: string;\n icon?: string;\n author?: {\n name: string;\n url?: string;\n } | string;\n pricing?: {\n type: \"free\" | \"paid\" | \"usage\";\n price?: number;\n currency?: string;\n interval?: \"month\" | \"year\";\n description?: string;\n };\n features?: string[];\n preview_images?: string[];\n config_schema?: IntegrationConfigSchemaField[];\n supported_agents?: string[];\n /** Scopes where this integration can be installed */\n supported_scopes?: IntegrationScope[];\n /** Visibility status — controls where integration appears */\n visibility?: IntegrationVisibility;\n}\n//# sourceMappingURL=integration.d.ts.map","/**\n * Secrets types — shared between services/secrets, @alfe.ai/agent-api-client,\n * the openclaw-secrets plugin, and dashboard clients.\n *\n * Server-side crypto and KMS glue live in @alfe/secret-store (Node/AWS-only);\n * this module is a pure, dependency-free shape contract safe for every\n * environment the agent-api-client ships to.\n */\nimport type { ResourceScope } from \"./access.js\";\n/** Scope levels at which a secret can be owned. Aliased to ResourceScope. */\nexport type SecretScope = ResourceScope;\nexport declare const SECRET_SCOPES: readonly [\"agent\" | \"team\" | \"project\" | \"org\", ...(\"agent\" | \"team\" | \"project\" | \"org\")[]];\n/**\n * v1 encrypted envelope as persisted by services/secrets and exchanged with\n * agents. Values are AES-256-GCM ciphertext; iv/authTag/ciphertext/dataKeyCiphertext\n * are all base64-encoded.\n */\nexport interface EncryptedEnvelopeV1 {\n version: 1;\n iv: string;\n ciphertext: string;\n authTag: string;\n dataKeyCiphertext: string;\n}\n/**\n * Display/validation hint for a field's value. `\"json\"` signals that the\n * string is a JSON-stringified payload that consumers should `JSON.parse`.\n */\nexport declare const FIELD_FORMATS: readonly [\"text\", \"email\", \"url\", \"phone\", \"date\", \"number\", \"json\"];\nexport type FieldFormat = (typeof FIELD_FORMATS)[number];\n/**\n * Whether a field is stored in plaintext (visible to anyone with read access)\n * or encrypted (requires KMS + the right encryption context to read).\n */\nexport declare const FIELD_SENSITIVITIES: readonly [\"plaintext\", \"encrypted\"];\nexport type FieldSensitivity = (typeof FIELD_SENSITIVITIES)[number];\n/**\n * A field on a secret. `value` is always a string at the wire; for encrypted\n * fields it's the plaintext at the API edge (the service encrypts before\n * persistence). Reads from the dashboard omit `value` for encrypted fields;\n * agents get a `FieldEnvelope` instead and decrypt locally.\n */\nexport interface Field {\n key: string;\n format?: FieldFormat;\n sensitivity: FieldSensitivity;\n value: string;\n}\n/**\n * Secret category — drives icon/template/filter behaviour. Defaults to\n * `\"other\"` for migrated rows.\n */\nexport declare const SECRET_CATEGORIES: readonly [\"login\", \"api_key\", \"database\", \"ssh_key\", \"certificate\", \"secure_note\", \"credit_card\", \"identity\", \"wifi\", \"other\"];\nexport type SecretCategory = (typeof SECRET_CATEGORIES)[number];\n/**\n * One field as exposed to readers. Encrypted fields have no `value` on the\n * dashboard read path; the agent-side aggregate carries `envelope` instead.\n */\nexport interface FieldView {\n key: string;\n format?: FieldFormat;\n sensitivity: FieldSensitivity;\n /** Present for `sensitivity: \"plaintext\"` only. */\n value?: string;\n /** Present for `sensitivity: \"encrypted\"` on agent-side reads only. */\n envelope?: EncryptedEnvelopeV1;\n /** Plaintext fields that opt into `format: \"json\"` are pre-parsed for callers. */\n parsedValue?: unknown;\n rotatedAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n/** A secret as assembled from its multi-row aggregate. */\nexport interface SecretAggregate {\n secretId: string;\n secretName: string;\n description?: string;\n tags: string[];\n category: SecretCategory;\n fields: FieldView[];\n changelogVersion: number;\n createdAt: string;\n updatedAt: string;\n}\n/** Metadata-only projection — used by list endpoints. */\nexport interface SecretMetadata {\n secretId: string;\n secretName: string;\n description?: string;\n tags: string[];\n category: SecretCategory;\n fieldKeys: string[];\n changelogVersion: number;\n createdAt: string;\n updatedAt: string;\n}\n/**\n * Per-field encrypted envelope returned to agents on the agent-side aggregate.\n * Agents decrypt locally using a data key fetched from `/decrypt-data-key`.\n */\nexport interface FieldEnvelope {\n key: string;\n format?: FieldFormat;\n envelope: EncryptedEnvelopeV1;\n rotatedAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n/** A scope the caller can read or write secrets in. */\nexport interface ScopeInfo {\n scope: SecretScope;\n scopeId: string;\n name?: string;\n}\n/**\n * KMS-issued data key, returned by the secrets service's\n * `/secrets/generate-data-key` KMS proxy endpoint. The plaintext key is\n * returned base64-encoded; callers MUST decode it to a Buffer and zero the\n * Buffer after use — never keep the plaintext as a JS string.\n */\nexport interface GeneratedDataKey {\n plaintextKey: string;\n dataKeyCiphertext: string;\n}\n/**\n * Action types recorded in the secret changelog. Append-only.\n */\nexport declare const CHANGELOG_ACTIONS: readonly [\"created\", \"deleted\", \"metadata_updated\", \"field_added\", \"field_rotated\", \"field_removed\", \"tag_added\", \"tag_removed\"];\nexport type ChangelogAction = (typeof CHANGELOG_ACTIONS)[number];\n/** Who triggered a changelog entry. */\nexport interface ChangelogActor {\n kind: \"user\" | \"agent\" | \"system\";\n id: string;\n}\n/**\n * One audit row from the secret's changelog. Metadata only — never carries\n * field VALUES (old or new). Rolling back a rotated secret is intentionally\n * not supported.\n */\nexport interface ChangelogEntry {\n changelogVersion: number;\n action: ChangelogAction;\n fieldKey?: string;\n fieldSensitivity?: FieldSensitivity;\n changedBy: ChangelogActor;\n reason?: string;\n timestamp: string;\n}\n//# sourceMappingURL=secrets.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -115,41 +115,362 @@ var AgentApiClient = class {
|
|
|
115
115
|
async getRegistry() {
|
|
116
116
|
return this.request("/integrations/registry");
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Returns every connected Google account for the agent. Multi-account by
|
|
120
|
+
* design — the openclaw-google plugin requires the LLM to pass `email`
|
|
121
|
+
* explicitly to `google_run_command` so an account is always selected
|
|
122
|
+
* deliberately.
|
|
123
|
+
*
|
|
124
|
+
* 2026-05-14 (connections-redesign PR 1): the legacy flat shape (`email`,
|
|
125
|
+
* `refreshToken`, `accessToken`, etc., populated from the default account)
|
|
126
|
+
* is gone. Iterate over `accounts`.
|
|
127
|
+
*/
|
|
118
128
|
async getGoogleCredentials() {
|
|
119
|
-
return this.request("/agent/google/
|
|
129
|
+
return { accounts: (await this.request("/agent/connect/google/accounts")).accounts.map((a) => ({
|
|
130
|
+
email: a.accountIdentifier,
|
|
131
|
+
refreshToken: a.refreshToken ?? "",
|
|
132
|
+
clientId: a.clientId ?? "",
|
|
133
|
+
clientSecret: a.clientSecret ?? "",
|
|
134
|
+
displayName: a.displayName ?? void 0,
|
|
135
|
+
connectedAt: a.connectedAt
|
|
136
|
+
})) };
|
|
120
137
|
}
|
|
121
138
|
async disconnectGoogleAccount(email) {
|
|
122
|
-
return this.request(`/agent/google/accounts/${encodeURIComponent(email)}`, { method: "DELETE" })
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
139
|
+
return { accounts: (await this.request(`/agent/connect/google/accounts/${encodeURIComponent(email)}`, { method: "DELETE" })).accounts.map((a) => ({
|
|
140
|
+
email: a.accountIdentifier,
|
|
141
|
+
displayName: a.displayName ?? void 0,
|
|
142
|
+
connectedAt: a.connectedAt
|
|
143
|
+
})) };
|
|
126
144
|
}
|
|
127
145
|
async getGoogleChatCredentials() {
|
|
128
146
|
return this.request("/agent/google-chat/credentials");
|
|
129
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated Returns a single primary credential blob (legacy "pick-the-
|
|
150
|
+
* default-connection" shape). Use `getGithubAccounts()` for the multi-
|
|
151
|
+
* account shape required by Pattern A — explicit selector args on every
|
|
152
|
+
* tool. Retained because the `@alfe.ai/openclaw-github` proxy is the
|
|
153
|
+
* only consumer that knows about Pattern A; legacy env-interpolation
|
|
154
|
+
* callers will keep hitting `/credentials` until they move to the proxy.
|
|
155
|
+
*/
|
|
130
156
|
async getGithubCredentials() {
|
|
131
|
-
|
|
157
|
+
const raw = await this.request("/agent/connect/github/credentials");
|
|
158
|
+
return {
|
|
159
|
+
login: raw.login,
|
|
160
|
+
accessToken: raw.accessToken
|
|
161
|
+
};
|
|
132
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Pattern A: multi-account credential fetch for GitHub.
|
|
165
|
+
*
|
|
166
|
+
* Returns every agent-scoped GitHub connection. The caller is expected
|
|
167
|
+
* to require a `login` selector on every credential-touching tool and
|
|
168
|
+
* look up the matching account at dispatch time.
|
|
169
|
+
*
|
|
170
|
+
* GitHub OAuth tokens have no expiry (`tokenLifecycle: "no_expiry"`),
|
|
171
|
+
* so there is intentionally no `refreshGithubAccountToken` method — if
|
|
172
|
+
* a token is revoked the user must re-run the OAuth flow.
|
|
173
|
+
*
|
|
174
|
+
* Returned `accounts[i].login` is the GitHub username — the stable
|
|
175
|
+
* cross-session identifier the LLM should pass.
|
|
176
|
+
*/
|
|
177
|
+
async getGithubAccounts() {
|
|
178
|
+
return { accounts: (await this.request("/agent/connect/github/accounts")).accounts.map((a) => ({
|
|
179
|
+
connectionId: a.connectionId,
|
|
180
|
+
accountIdentifier: a.accountIdentifier,
|
|
181
|
+
displayName: a.displayName,
|
|
182
|
+
connectedAt: a.connectedAt,
|
|
183
|
+
accessToken: a.accessToken ?? "",
|
|
184
|
+
login: a.login ?? a.accountIdentifier,
|
|
185
|
+
scopes: a.scopes ?? ""
|
|
186
|
+
})) };
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* @deprecated Returns a single primary credential blob (legacy "pick-the-
|
|
190
|
+
* default-connection" shape). Use `getXeroAccounts()` for the multi-
|
|
191
|
+
* account shape required by Pattern A — explicit selector args on every
|
|
192
|
+
* tool. This method will be removed once all consumers migrate.
|
|
193
|
+
*/
|
|
133
194
|
async getXeroCredentials() {
|
|
134
|
-
|
|
195
|
+
const raw = await this.request("/agent/connect/xero/credentials");
|
|
196
|
+
return {
|
|
197
|
+
accessToken: raw.accessToken,
|
|
198
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
199
|
+
xeroTenantId: raw.xeroTenantId ?? ""
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Pattern A: multi-account credential fetch for Xero. Returns every
|
|
204
|
+
* agent-scoped Xero connection. The caller is expected to require a
|
|
205
|
+
* selector arg (e.g. `xeroTenantId`) on every credential-touching tool
|
|
206
|
+
* and look up the matching account by that selector at dispatch time.
|
|
207
|
+
*
|
|
208
|
+
* Returned `accounts[i].accountIdentifier` is the Xero tenantId — the
|
|
209
|
+
* stable cross-session identifier the LLM should pass.
|
|
210
|
+
*/
|
|
211
|
+
async getXeroAccounts() {
|
|
212
|
+
return { accounts: (await this.request("/agent/connect/xero/accounts")).accounts.map((a) => ({
|
|
213
|
+
connectionId: a.connectionId,
|
|
214
|
+
accountIdentifier: a.accountIdentifier,
|
|
215
|
+
displayName: a.displayName,
|
|
216
|
+
connectedAt: a.connectedAt,
|
|
217
|
+
accessToken: a.accessToken,
|
|
218
|
+
accessTokenExpiresAt: a.accessTokenExpiresAt ?? "",
|
|
219
|
+
xeroTenantId: a.xeroTenantId ?? a.accountIdentifier
|
|
220
|
+
})) };
|
|
135
221
|
}
|
|
136
222
|
async refreshXeroToken() {
|
|
137
|
-
return this.request("/agent/xero/
|
|
223
|
+
return this.request("/agent/connect/xero/refresh", { method: "POST" });
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Pattern A: refresh a specific Xero connection by its `accountIdentifier`
|
|
227
|
+
* (the Xero `tenantId`). The legacy `refreshXeroToken()` only refreshes
|
|
228
|
+
* the *primary* connection, which is wrong for multi-tenant Xero where
|
|
229
|
+
* each tenant has its own non-interchangeable access token.
|
|
230
|
+
*/
|
|
231
|
+
async refreshXeroAccountToken(xeroTenantId) {
|
|
232
|
+
const path = `/agent/connect/xero/accounts/${encodeURIComponent(xeroTenantId)}/refresh`;
|
|
233
|
+
const raw = await this.request(path, { method: "POST" });
|
|
234
|
+
return {
|
|
235
|
+
accessToken: raw.accessToken,
|
|
236
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
237
|
+
expiresAt: raw.expiresAt ?? ""
|
|
238
|
+
};
|
|
138
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* @deprecated Returns a single primary credential blob (legacy "pick-the-
|
|
242
|
+
* default-connection" shape). Use `getNotionAccounts()` for the multi-
|
|
243
|
+
* account shape required by Pattern A.
|
|
244
|
+
*/
|
|
139
245
|
async getNotionCredentials() {
|
|
140
|
-
|
|
246
|
+
const raw = await this.request("/agent/connect/notion/credentials");
|
|
247
|
+
return {
|
|
248
|
+
accessToken: raw.accessToken,
|
|
249
|
+
workspaceId: raw.workspaceId ?? "",
|
|
250
|
+
workspaceName: raw.workspaceName ?? ""
|
|
251
|
+
};
|
|
141
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Pattern A: multi-account credential fetch for Notion. Returns every
|
|
255
|
+
* agent-scoped Notion connection. The caller is expected to require a
|
|
256
|
+
* selector arg (e.g. `workspaceId`) on every credential-touching tool.
|
|
257
|
+
*
|
|
258
|
+
* Returned `accounts[i].accountIdentifier` is the Notion workspaceId.
|
|
259
|
+
*/
|
|
260
|
+
async getNotionAccounts() {
|
|
261
|
+
return { accounts: (await this.request("/agent/connect/notion/accounts")).accounts.map((a) => ({
|
|
262
|
+
connectionId: a.connectionId,
|
|
263
|
+
accountIdentifier: a.accountIdentifier,
|
|
264
|
+
displayName: a.displayName,
|
|
265
|
+
connectedAt: a.connectedAt,
|
|
266
|
+
accessToken: a.accessToken,
|
|
267
|
+
workspaceId: a.workspaceId ?? a.accountIdentifier,
|
|
268
|
+
workspaceName: a.workspaceName ?? a.displayName ?? ""
|
|
269
|
+
})) };
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* @deprecated Returns a single primary Atlassian Connection's credentials
|
|
273
|
+
* (one OAuth user, one cloudId) — the legacy "pick-the-default-connection"
|
|
274
|
+
* shape. Atlassian is multi-site by nature (each OAuth user may have
|
|
275
|
+
* access to multiple Cloud sites), so Pattern A plugins MUST use
|
|
276
|
+
* `getAtlassianAccounts()` to discover the full set and dispatch via
|
|
277
|
+
* the `cloudId` selector arg.
|
|
278
|
+
*/
|
|
142
279
|
async getAtlassianCredentials() {
|
|
143
|
-
|
|
280
|
+
const raw = await this.request("/agent/connect/atlassian/credentials");
|
|
281
|
+
return {
|
|
282
|
+
accessToken: raw.accessToken,
|
|
283
|
+
refreshToken: "",
|
|
284
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
285
|
+
cloudId: raw.cloudId ?? "",
|
|
286
|
+
siteName: raw.siteName ?? "",
|
|
287
|
+
siteUrl: raw.siteUrl ?? "",
|
|
288
|
+
email: "",
|
|
289
|
+
enabledProducts: [],
|
|
290
|
+
clientId: raw.clientId,
|
|
291
|
+
clientSecret: raw.clientSecret
|
|
292
|
+
};
|
|
144
293
|
}
|
|
145
294
|
async refreshAtlassianToken() {
|
|
146
|
-
return this.request("/agent/atlassian/
|
|
295
|
+
return this.request("/agent/connect/atlassian/refresh", { method: "POST" });
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Pattern A: multi-account / multi-site credential fetch for Atlassian.
|
|
299
|
+
*
|
|
300
|
+
* Returns every agent-scoped Atlassian Connection. Each Connection is
|
|
301
|
+
* one OAuth user with a single access token and N accessible Cloud
|
|
302
|
+
* sites (`availableSites`). The caller is expected to:
|
|
303
|
+
*
|
|
304
|
+
* 1. Flatten (connection × cloudId) into one MCP child per site.
|
|
305
|
+
* 2. Require a `cloudId` selector on every credential-touching tool.
|
|
306
|
+
* 3. Use the access token bound to the Connection that owns the
|
|
307
|
+
* requested `cloudId` (Atlassian shares one access token across
|
|
308
|
+
* all sites accessible to the OAuth user).
|
|
309
|
+
*
|
|
310
|
+
* Per-account token refresh uses `refreshAtlassianAccountToken(email)`
|
|
311
|
+
* — refreshing one Connection rotates its single access token, which
|
|
312
|
+
* then applies to every cloudId for that Connection.
|
|
313
|
+
*
|
|
314
|
+
* Returned `accounts[i].accountIdentifier` is the OAuth user's email
|
|
315
|
+
* — the stable cross-session identifier for refresh purposes. The LLM
|
|
316
|
+
* never sees this directly: it picks a site via the `cloudId` arg
|
|
317
|
+
* instead.
|
|
318
|
+
*/
|
|
319
|
+
async getAtlassianAccounts() {
|
|
320
|
+
return { accounts: (await this.request("/agent/connect/atlassian/accounts")).accounts.map((a) => ({
|
|
321
|
+
connectionId: a.connectionId,
|
|
322
|
+
accountIdentifier: a.accountIdentifier,
|
|
323
|
+
displayName: a.displayName,
|
|
324
|
+
connectedAt: a.connectedAt,
|
|
325
|
+
accessToken: a.accessToken ?? "",
|
|
326
|
+
accessTokenExpiresAt: a.accessTokenExpiresAt ?? "",
|
|
327
|
+
clientId: a.clientId ?? "",
|
|
328
|
+
clientSecret: a.clientSecret ?? "",
|
|
329
|
+
cloudId: a.cloudId ?? "",
|
|
330
|
+
siteName: a.siteName ?? "",
|
|
331
|
+
siteUrl: a.siteUrl ?? "",
|
|
332
|
+
availableSites: a.availableSites ?? []
|
|
333
|
+
})) };
|
|
147
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Pattern A: refresh a specific Atlassian Connection by `accountIdentifier`
|
|
337
|
+
* (the OAuth user's email).
|
|
338
|
+
*
|
|
339
|
+
* Atlassian rotates refresh tokens (`rotatesRefreshToken: true`); the
|
|
340
|
+
* server-side per-account refresh endpoint handles rotation and
|
|
341
|
+
* persistence. Refreshing one Connection updates its single access
|
|
342
|
+
* token, which applies to every accessible Cloud site (cloudId) for
|
|
343
|
+
* that OAuth user.
|
|
344
|
+
*
|
|
345
|
+
* Returns the new access token + expiry. The proxy is responsible for
|
|
346
|
+
* fanning the new token out to every child server it spawned for
|
|
347
|
+
* cloudIds owned by this Connection.
|
|
348
|
+
*/
|
|
349
|
+
async refreshAtlassianAccountToken(accountIdentifier) {
|
|
350
|
+
const path = `/agent/connect/atlassian/accounts/${encodeURIComponent(accountIdentifier)}/refresh`;
|
|
351
|
+
const raw = await this.request(path, { method: "POST" });
|
|
352
|
+
return {
|
|
353
|
+
accessToken: raw.accessToken,
|
|
354
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
355
|
+
expiresAt: raw.expiresAt ?? ""
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* @deprecated Returns a single primary credential blob (legacy "pick-the-
|
|
360
|
+
* default-connection" shape). Use `getMYOBAccounts()` for the multi-
|
|
361
|
+
* account shape required by Pattern A.
|
|
362
|
+
*/
|
|
148
363
|
async getMYOBCredentials() {
|
|
149
|
-
|
|
364
|
+
const raw = await this.request("/agent/connect/myob/credentials");
|
|
365
|
+
return {
|
|
366
|
+
accessToken: raw.accessToken,
|
|
367
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
368
|
+
myobBusinessId: raw.myobBusinessId,
|
|
369
|
+
clientId: raw.clientId
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Pattern A: multi-account credential fetch for MYOB. Returns every
|
|
374
|
+
* agent-scoped MYOB connection. The caller is expected to require a
|
|
375
|
+
* selector arg (e.g. `myobBusinessId` / `accountIdentifier`) on every
|
|
376
|
+
* credential-touching tool.
|
|
377
|
+
*
|
|
378
|
+
* Returned `accounts[i].accountIdentifier` is the MYOB businessId.
|
|
379
|
+
*/
|
|
380
|
+
async getMYOBAccounts() {
|
|
381
|
+
return { accounts: (await this.request("/agent/connect/myob/accounts")).accounts.map((a) => ({
|
|
382
|
+
connectionId: a.connectionId,
|
|
383
|
+
accountIdentifier: a.accountIdentifier,
|
|
384
|
+
displayName: a.displayName,
|
|
385
|
+
connectedAt: a.connectedAt,
|
|
386
|
+
accessToken: a.accessToken,
|
|
387
|
+
accessTokenExpiresAt: a.accessTokenExpiresAt ?? "",
|
|
388
|
+
myobBusinessId: a.myobBusinessId ?? a.accountIdentifier,
|
|
389
|
+
clientId: a.clientId
|
|
390
|
+
})) };
|
|
150
391
|
}
|
|
151
392
|
async refreshMYOBToken() {
|
|
152
|
-
return this.request("/agent/myob/
|
|
393
|
+
return this.request("/agent/connect/myob/refresh", { method: "POST" });
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Microsoft 365 (delegated OAuth) credential fetch — single-account shape.
|
|
397
|
+
*
|
|
398
|
+
* @deprecated Use `getMicrosoftAccounts()` and dispatch via the `email`
|
|
399
|
+
* selector once per-account plugins land. Retained because the existing
|
|
400
|
+
* `integrations/connect/microsoft/hooks/post_activate.mjs` writes
|
|
401
|
+
* `mgc` credentials for the single (default) Microsoft account.
|
|
402
|
+
*
|
|
403
|
+
* Returns the agent's effective Microsoft delegated-OAuth credentials.
|
|
404
|
+
* Distinct from `getTeamsCredentials()` (Azure bot credentials for the
|
|
405
|
+
* Teams adapter, which is admin-consent flow on services/microsoft, not
|
|
406
|
+
* delegated OAuth on services/connect).
|
|
407
|
+
*/
|
|
408
|
+
async getMicrosoftCredentials() {
|
|
409
|
+
const raw = await this.request("/agent/connect/microsoft/credentials");
|
|
410
|
+
return {
|
|
411
|
+
accessToken: raw.accessToken ?? "",
|
|
412
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt,
|
|
413
|
+
refreshToken: raw.refreshToken ?? "",
|
|
414
|
+
clientId: raw.clientId ?? "",
|
|
415
|
+
clientSecret: raw.clientSecret ?? "",
|
|
416
|
+
email: raw.email ?? raw.accountIdentifier,
|
|
417
|
+
microsoftTenantId: raw.microsoftTenantId,
|
|
418
|
+
workspaceDomain: raw.workspaceDomain
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Pattern A: multi-account credential fetch for Microsoft 365.
|
|
423
|
+
*
|
|
424
|
+
* Returns every agent-scoped Microsoft connection. The caller is expected
|
|
425
|
+
* to require an `email` selector on every credential-touching tool and
|
|
426
|
+
* look up the matching account at dispatch time.
|
|
427
|
+
*
|
|
428
|
+
* Returned `accounts[i].accountIdentifier` is the user's primary email
|
|
429
|
+
* (or the tid claim as fallback) — the stable cross-session identifier
|
|
430
|
+
* the LLM should pass.
|
|
431
|
+
*
|
|
432
|
+
* Per-account token refresh is exposed via `refreshMicrosoftAccountToken`,
|
|
433
|
+
* NOT `refreshXeroAccountToken` — Microsoft refresh tokens are not
|
|
434
|
+
* interchangeable across (tenant, user) pairs.
|
|
435
|
+
*/
|
|
436
|
+
async getMicrosoftAccounts() {
|
|
437
|
+
return { accounts: (await this.request("/agent/connect/microsoft/accounts")).accounts.map((a) => ({
|
|
438
|
+
connectionId: a.connectionId,
|
|
439
|
+
accountIdentifier: a.accountIdentifier,
|
|
440
|
+
displayName: a.displayName,
|
|
441
|
+
connectedAt: a.connectedAt,
|
|
442
|
+
accessToken: a.accessToken ?? "",
|
|
443
|
+
accessTokenExpiresAt: a.accessTokenExpiresAt ?? "",
|
|
444
|
+
refreshToken: a.refreshToken ?? "",
|
|
445
|
+
clientId: a.clientId ?? "",
|
|
446
|
+
clientSecret: a.clientSecret ?? "",
|
|
447
|
+
email: a.email ?? a.accountIdentifier,
|
|
448
|
+
microsoftTenantId: a.microsoftTenantId ?? "",
|
|
449
|
+
workspaceDomain: a.workspaceDomain ?? ""
|
|
450
|
+
})) };
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Pattern A: refresh a specific Microsoft 365 connection by its
|
|
454
|
+
* `accountIdentifier`. For Microsoft, `accountIdentifier` is the user's
|
|
455
|
+
* email when the Graph profile fetch succeeded at connect time, and the
|
|
456
|
+
* Azure tenant id (`tid` claim) as fallback. Callers should pass the
|
|
457
|
+
* value returned by `getMicrosoftAccounts()` rather than synthesising
|
|
458
|
+
* an email locally.
|
|
459
|
+
*
|
|
460
|
+
* Microsoft refresh tokens are bound to a specific (tenant, user) pair —
|
|
461
|
+
* they are NOT interchangeable across accounts, so per-account refresh
|
|
462
|
+
* is mandatory. The generic /accounts/{accountIdentifier}/refresh
|
|
463
|
+
* endpoint walks the agent's full visible scope chain to find a matching
|
|
464
|
+
* connection (works for inherited team/project Microsoft connections).
|
|
465
|
+
*/
|
|
466
|
+
async refreshMicrosoftAccountToken(accountIdentifier) {
|
|
467
|
+
const path = `/agent/connect/microsoft/accounts/${encodeURIComponent(accountIdentifier)}/refresh`;
|
|
468
|
+
const raw = await this.request(path, { method: "POST" });
|
|
469
|
+
return {
|
|
470
|
+
accessToken: raw.accessToken,
|
|
471
|
+
accessTokenExpiresAt: raw.accessTokenExpiresAt ?? "",
|
|
472
|
+
expiresAt: raw.expiresAt ?? ""
|
|
473
|
+
};
|
|
153
474
|
}
|
|
154
475
|
async getTeamsCredentials() {
|
|
155
476
|
return this.request("/agent/microsoft/credentials");
|