aui-agent-builder 0.3.57 → 0.3.59

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.
@@ -0,0 +1,481 @@
1
+ import fetch from "node-fetch";
2
+ import { randomUUID } from "crypto";
3
+ import { getConfig, loadProjectConfig, getBaseUrl, getAgentSettingsWriteUrl, getApiWorkflowBaseUrl, } from "../config/index.js";
4
+ import { AUIClient } from "../api-client/index.js";
5
+ import { AuthenticationError } from "../errors/index.js";
6
+ import { getValidSession } from "./auth.service.js";
7
+ import { captureRequest } from "../utils/request-capture.js";
8
+ // ─── Session ───
9
+ export async function getAuthenticatedSession() {
10
+ const config = getConfig();
11
+ if (!config.isAuthenticated) {
12
+ throw new AuthenticationError("Not logged in.");
13
+ }
14
+ const session = await getValidSession();
15
+ if (!session) {
16
+ throw new AuthenticationError("Session expired or invalid.", {
17
+ suggestion: "Your session has expired. Run `aui login` to re-authenticate.",
18
+ });
19
+ }
20
+ return session;
21
+ }
22
+ // ─── Scope Resolution ───
23
+ export function resolveScopeIds(session, overrides) {
24
+ const projectConfig = loadProjectConfig();
25
+ return {
26
+ organizationId: overrides?.organizationId ||
27
+ projectConfig?.organization_id ||
28
+ session.organization_id ||
29
+ "",
30
+ accountId: overrides?.accountId ||
31
+ projectConfig?.account_id ||
32
+ session.account_id ||
33
+ "",
34
+ networkId: overrides?.networkId ||
35
+ projectConfig?.agent_id ||
36
+ session.network_id ||
37
+ "",
38
+ networkCategoryId: overrides?.networkCategoryId ||
39
+ projectConfig?.network_category_id ||
40
+ "",
41
+ userId: session.user_id || "",
42
+ versionId: overrides?.versionId ||
43
+ projectConfig?.version_id ||
44
+ session.version_id ||
45
+ "",
46
+ };
47
+ }
48
+ /**
49
+ * Fetch the network_category_id from the network endpoint if not already known.
50
+ */
51
+ export async function resolveNetworkCategoryId(session, networkId, scope) {
52
+ if (scope.networkCategoryId)
53
+ return scope.networkCategoryId;
54
+ const client = new AUIClient({
55
+ baseUrl: session.api_url || getBaseUrl(session.environment),
56
+ authToken: session.auth_token,
57
+ accountId: scope.accountId,
58
+ organizationId: scope.organizationId,
59
+ environment: session.environment,
60
+ });
61
+ try {
62
+ const resp = await client.networks.get(networkId);
63
+ const network = resp.data;
64
+ if (typeof network.category === "string")
65
+ return network.category;
66
+ return network.category?._id || "";
67
+ }
68
+ catch {
69
+ return "";
70
+ }
71
+ }
72
+ // ─── Discovery ───
73
+ function buildHeaders(session, scope) {
74
+ return {
75
+ accept: "application/json, text/plain, */*",
76
+ "content-type": "application/json",
77
+ "x-access-token": session.auth_token,
78
+ "account-id": scope.accountId,
79
+ "organization-id": scope.organizationId,
80
+ "network-id": scope.networkId,
81
+ "x-aui-client": "AUI",
82
+ "x-aui-environment": session.environment,
83
+ "x-aui-origin": "stores",
84
+ "x-trace-id": randomUUID(),
85
+ };
86
+ }
87
+ export async function discoverMCPTools(session, serverUrl, scope, auth) {
88
+ const apiWorkflowBase = getApiWorkflowBaseUrl(session.environment);
89
+ const url = `${apiWorkflowBase}/v1/mcp/discovery`;
90
+ const headers = buildHeaders(session, scope);
91
+ const body = { url: serverUrl };
92
+ if (auth?.type === "token" && auth.token) {
93
+ body.token = auth.token;
94
+ }
95
+ const resp = await fetch(url, {
96
+ method: "POST",
97
+ headers,
98
+ body: JSON.stringify(body),
99
+ });
100
+ const responseText = await resp.text();
101
+ captureRequest({
102
+ timestamp: new Date().toISOString(),
103
+ method: "POST",
104
+ url,
105
+ headers,
106
+ body,
107
+ status: resp.status,
108
+ responseBody: responseText,
109
+ label: "MCP discovery",
110
+ success: resp.ok,
111
+ });
112
+ if (!resp.ok) {
113
+ throw new Error(`MCP discovery failed (${resp.status}): ${responseText}`);
114
+ }
115
+ let parsed;
116
+ try {
117
+ parsed = JSON.parse(responseText);
118
+ }
119
+ catch {
120
+ throw new Error(`MCP discovery returned invalid JSON: ${responseText.slice(0, 200)}`);
121
+ }
122
+ if (process.env.AUI_DEBUG) {
123
+ const keys = parsed && typeof parsed === "object" ? Object.keys(parsed) : [];
124
+ console.error(`[debug] MCP discovery response keys: ${keys.join(", ")}`);
125
+ }
126
+ const tools = extractTools(parsed);
127
+ return { tools };
128
+ }
129
+ function extractTools(parsed) {
130
+ if (!parsed || typeof parsed !== "object")
131
+ return [];
132
+ // Try common response shapes:
133
+ // { tools: [...] }
134
+ if (Array.isArray(parsed.tools))
135
+ return parsed.tools;
136
+ // { data: { tools: [...] } }
137
+ if (parsed.data && Array.isArray(parsed.data.tools))
138
+ return parsed.data.tools;
139
+ // { data: [...] } where each item has a name
140
+ if (Array.isArray(parsed.data))
141
+ return parsed.data;
142
+ // { result: { tools: [...] } }
143
+ if (parsed.result && Array.isArray(parsed.result.tools))
144
+ return parsed.result.tools;
145
+ // { result: [...] }
146
+ if (Array.isArray(parsed.result))
147
+ return parsed.result;
148
+ // Top-level array
149
+ if (Array.isArray(parsed))
150
+ return parsed;
151
+ // Walk one level deep for any array of objects with "name" field
152
+ for (const key of Object.keys(parsed)) {
153
+ const val = parsed[key];
154
+ if (Array.isArray(val) && val.length > 0 && val[0]?.name) {
155
+ return val;
156
+ }
157
+ if (val && typeof val === "object" && !Array.isArray(val)) {
158
+ for (const subKey of Object.keys(val)) {
159
+ const subVal = val[subKey];
160
+ if (Array.isArray(subVal) && subVal.length > 0 && subVal[0]?.name) {
161
+ return subVal;
162
+ }
163
+ }
164
+ }
165
+ }
166
+ return [];
167
+ }
168
+ // ─── Save ───
169
+ export async function saveIntegration(session, request, scope) {
170
+ const agentSettingsBase = getAgentSettingsWriteUrl(session.environment);
171
+ const url = `${agentSettingsBase}/v1/integrations/view`;
172
+ const categoryId = await resolveNetworkCategoryId(session, scope.networkId, scope);
173
+ const code = request.name
174
+ .toLowerCase()
175
+ .replace(/[^a-z0-9]+/g, "-")
176
+ .replace(/^-|-$/g, "");
177
+ const isComposio = !!request.composio;
178
+ const settings = isComposio
179
+ ? {
180
+ type: "COMPOSIO",
181
+ server_url: null,
182
+ authentication: null,
183
+ unified_to: null,
184
+ composio: {
185
+ user_id: request.composio.user_id,
186
+ toolkits: request.composio.toolkits,
187
+ tool_names: request.composio.tool_names,
188
+ },
189
+ }
190
+ : {
191
+ type: "DIRECT",
192
+ server_url: request.server_url,
193
+ authentication: {
194
+ type: request.authentication.type,
195
+ token: request.authentication.token || null,
196
+ },
197
+ tool_names: request.tool_names,
198
+ connection_id: null,
199
+ };
200
+ const body = {
201
+ name: request.display_name,
202
+ display_name: request.display_name,
203
+ description: request.description,
204
+ type: "MCP",
205
+ settings,
206
+ network_id: scope.networkId,
207
+ network_category_id: categoryId,
208
+ account_id: scope.accountId,
209
+ organization_id: scope.organizationId,
210
+ created_by: scope.userId,
211
+ updated_by: scope.userId,
212
+ };
213
+ if (scope.versionId) {
214
+ body.agent_version_id = scope.versionId;
215
+ }
216
+ const headers = {
217
+ "Content-Type": "application/json",
218
+ "Accept": "application/json",
219
+ "Authorization": `Bearer ${session.auth_token}`,
220
+ "X-Organization-ID": scope.organizationId,
221
+ "x-aui-client": "AUI",
222
+ "x-aui-environment": session.environment,
223
+ "x-trace-id": randomUUID(),
224
+ };
225
+ const resp = await fetch(url, {
226
+ method: "POST",
227
+ headers,
228
+ body: JSON.stringify(body),
229
+ });
230
+ const responseText = await resp.text();
231
+ captureRequest({
232
+ timestamp: new Date().toISOString(),
233
+ method: "POST",
234
+ url,
235
+ headers,
236
+ body,
237
+ status: resp.status,
238
+ responseBody: responseText,
239
+ label: "Create MCP integration",
240
+ success: resp.ok,
241
+ });
242
+ if (!resp.ok) {
243
+ return {
244
+ success: false,
245
+ error: `Failed to create integration (${resp.status}): ${responseText}`,
246
+ };
247
+ }
248
+ let parsed;
249
+ try {
250
+ parsed = JSON.parse(responseText);
251
+ }
252
+ catch {
253
+ parsed = responseText;
254
+ }
255
+ return { success: true, data: parsed };
256
+ }
257
+ // ─── Composio Native Integration ───
258
+ let composioInstance = null;
259
+ async function getComposioClient(apiKey) {
260
+ if (!composioInstance) {
261
+ const { Composio } = await import("@composio/core");
262
+ composioInstance = new Composio({ apiKey });
263
+ }
264
+ return composioInstance;
265
+ }
266
+ export function resetComposioClient() {
267
+ composioInstance = null;
268
+ }
269
+ /**
270
+ * Fetch the Composio API key from the AUI backend.
271
+ * The key is returned Base64-encoded and decoded here in the CLI.
272
+ */
273
+ export async function fetchComposioApiKey(session) {
274
+ const baseUrl = session.api_url || getBaseUrl(session.environment);
275
+ const configUrl = `${baseUrl}/third-party-auth/integrations/composio-config`;
276
+ try {
277
+ if (process.env.AUI_DEBUG) {
278
+ console.error(`[debug] Fetching integration config from: ${configUrl}`);
279
+ }
280
+ const resp = await fetch(configUrl, {
281
+ method: "GET",
282
+ headers: {
283
+ "Content-Type": "application/json",
284
+ "auth-token": session.auth_token,
285
+ },
286
+ });
287
+ if (process.env.AUI_DEBUG) {
288
+ console.error(`[debug] Integration config response: ${resp.status}`);
289
+ }
290
+ if (!resp.ok)
291
+ return null;
292
+ const body = await resp.json();
293
+ const encodedKey = body?.data?.apiKey;
294
+ if (process.env.AUI_DEBUG) {
295
+ console.error(`[debug] Integration config: key present=${!!encodedKey}, label=${body?.data?.label || "none"}`);
296
+ }
297
+ if (typeof encodedKey === "string" && encodedKey.length > 0) {
298
+ try {
299
+ return Buffer.from(encodedKey, "base64").toString("utf-8");
300
+ }
301
+ catch {
302
+ return encodedKey;
303
+ }
304
+ }
305
+ return null;
306
+ }
307
+ catch {
308
+ return null;
309
+ }
310
+ }
311
+ export async function listComposioToolkits(apiKey, options) {
312
+ const limit = options?.limit || 50;
313
+ const result = await fetchToolkitsViaREST(apiKey, limit, options?.search, options?.cursor);
314
+ const items = result.items.map((tk) => ({
315
+ slug: tk.slug || "",
316
+ name: tk.name || tk.slug || "",
317
+ logo: tk.meta?.logo || tk.logo || "",
318
+ description: tk.meta?.description || tk.description || "",
319
+ toolsCount: tk.meta?.toolsCount ?? tk.meta?.tools_count ?? tk.toolsCount ?? tk.tools_count ?? 0,
320
+ authSchemes: tk.authSchemes || tk.auth_schemes || [],
321
+ isNoAuth: tk.noAuth ?? tk.no_auth ?? false,
322
+ }));
323
+ return {
324
+ items,
325
+ nextCursor: result.nextCursor,
326
+ totalPages: result.totalPages ?? 1,
327
+ };
328
+ }
329
+ async function fetchToolkitsViaREST(apiKey, limit = 50, search, cursor) {
330
+ let url = `https://backend.composio.dev/api/v3.1/toolkits?sort_by=usage&limit=${limit}`;
331
+ if (search)
332
+ url += `&search=${encodeURIComponent(search)}`;
333
+ if (cursor)
334
+ url += `&cursor=${encodeURIComponent(cursor)}`;
335
+ for (const headerName of ["x-api-key", "x-user-api-key"]) {
336
+ try {
337
+ const resp = await fetch(url, {
338
+ method: "GET",
339
+ headers: {
340
+ [headerName]: apiKey,
341
+ "Accept": "application/json",
342
+ },
343
+ });
344
+ if (process.env.AUI_DEBUG) {
345
+ console.error(`[debug] REST toolkits fetch with ${headerName}: status ${resp.status}`);
346
+ }
347
+ if (!resp.ok) {
348
+ if (process.env.AUI_DEBUG) {
349
+ const text = await resp.text();
350
+ console.error(`[debug] REST toolkits fetch failed (${resp.status}): ${text.slice(0, 200)}`);
351
+ }
352
+ continue;
353
+ }
354
+ const data = await resp.json();
355
+ if (process.env.AUI_DEBUG) {
356
+ console.error(`[debug] REST toolkits response keys: ${Object.keys(data).join(", ")}`);
357
+ console.error(`[debug] REST toolkits next_cursor: ${data.next_cursor ?? "none"}, total_items: ${data.total_items ?? "unknown"}, total_pages: ${data.total_pages ?? "unknown"}`);
358
+ }
359
+ const items = extractToolkitItems(data);
360
+ return {
361
+ items,
362
+ nextCursor: data.next_cursor || data.nextCursor || undefined,
363
+ totalPages: data.total_pages ?? data.totalPages ?? undefined,
364
+ totalItems: data.total_items ?? data.totalItems ?? undefined,
365
+ };
366
+ }
367
+ catch (e) {
368
+ if (process.env.AUI_DEBUG) {
369
+ console.error(`[debug] REST toolkits fetch error (${headerName}): ${e instanceof Error ? e.message : String(e)}`);
370
+ }
371
+ }
372
+ }
373
+ throw new Error("Failed to fetch toolkits. Check your Composio API key.");
374
+ }
375
+ function extractToolkitItems(resp) {
376
+ if (!resp)
377
+ return [];
378
+ if (Array.isArray(resp))
379
+ return resp;
380
+ if (Array.isArray(resp.items))
381
+ return resp.items;
382
+ if (Array.isArray(resp.data))
383
+ return resp.data;
384
+ if (resp.items && typeof resp.items === "object" && !Array.isArray(resp.items)) {
385
+ const vals = Object.values(resp.items);
386
+ if (vals.length > 0 && Array.isArray(vals[0]))
387
+ return vals[0];
388
+ }
389
+ for (const key of Object.keys(resp)) {
390
+ const val = resp[key];
391
+ if (Array.isArray(val) && val.length > 0 && val[0]?.slug) {
392
+ return val;
393
+ }
394
+ }
395
+ return [];
396
+ }
397
+ export async function createComposioSession(apiKey, userId, toolkitSlug) {
398
+ const composio = await getComposioClient(apiKey);
399
+ const session = await composio.create(userId, {
400
+ toolkits: [toolkitSlug],
401
+ manageConnections: { enable: false },
402
+ });
403
+ return {
404
+ sessionId: session.sessionId,
405
+ mcpUrl: session.mcp.url,
406
+ mcpHeaders: session.mcp.headers || {},
407
+ session,
408
+ };
409
+ }
410
+ export async function authorizeComposioToolkit(composioSession, toolkitSlug, callbackUrl) {
411
+ const connectionRequest = await composioSession.session.authorize(toolkitSlug, callbackUrl ? { callbackUrl } : undefined);
412
+ return {
413
+ redirectUrl: connectionRequest.redirectUrl || "",
414
+ connectionRequest,
415
+ };
416
+ }
417
+ export async function waitForComposioConnection(authResult, timeout = 120000) {
418
+ const connectedAccount = await authResult.connectionRequest.waitForConnection(timeout);
419
+ return {
420
+ id: connectedAccount.id || "",
421
+ status: connectedAccount.status || "active",
422
+ };
423
+ }
424
+ export async function listComposioSessionToolkits(composioSession, options) {
425
+ const result = await composioSession.session.toolkits({
426
+ limit: 100,
427
+ ...(options?.search ? { search: options.search } : {}),
428
+ });
429
+ return (result.items || []).map((tk) => ({
430
+ slug: tk.slug,
431
+ name: tk.name,
432
+ logo: tk.logo,
433
+ isNoAuth: tk.isNoAuth || false,
434
+ }));
435
+ }
436
+ /**
437
+ * Discover tools for a Composio toolkit using the REST API.
438
+ * Supports pagination (cursor) and search (query).
439
+ */
440
+ export async function discoverComposioTools(apiKey, toolkitSlug, options) {
441
+ const limit = options?.limit || 200;
442
+ let url = `https://backend.composio.dev/api/v3.1/tools?toolkit_slug=${encodeURIComponent(toolkitSlug)}&limit=${limit}`;
443
+ if (options?.query)
444
+ url += `&query=${encodeURIComponent(options.query)}`;
445
+ if (options?.cursor)
446
+ url += `&cursor=${encodeURIComponent(options.cursor)}`;
447
+ for (const headerName of ["x-api-key", "x-user-api-key"]) {
448
+ const resp = await fetch(url, {
449
+ method: "GET",
450
+ headers: { [headerName]: apiKey, "Accept": "application/json" },
451
+ });
452
+ if (!resp.ok)
453
+ continue;
454
+ const data = await resp.json();
455
+ if (process.env.AUI_DEBUG) {
456
+ console.error(`[debug] Composio tools response keys: ${Object.keys(data).join(", ")}`);
457
+ console.error(`[debug] Composio tools count: ${data.items?.length ?? data.length ?? "unknown"}`);
458
+ }
459
+ return {
460
+ tools: extractComposioTools(data),
461
+ nextCursor: data?.next_cursor || data?.nextCursor || undefined,
462
+ totalItems: data?.total_items ?? data?.totalItems ?? undefined,
463
+ };
464
+ }
465
+ throw new Error(`Failed to fetch tools for ${toolkitSlug}. Check your API key.`);
466
+ }
467
+ function extractComposioTools(data) {
468
+ let rawItems = [];
469
+ if (Array.isArray(data))
470
+ rawItems = data;
471
+ else if (Array.isArray(data?.items))
472
+ rawItems = data.items;
473
+ else if (Array.isArray(data?.data))
474
+ rawItems = data.data;
475
+ return rawItems.map((t) => ({
476
+ name: t.slug || t.name || "",
477
+ description: t.description || t.human_description || "",
478
+ inputSchema: t.input_parameters || t.inputParameters || undefined,
479
+ }));
480
+ }
481
+ //# sourceMappingURL=integration.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.service.js","sourceRoot":"","sources":["../../src/services/integration.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { MCPTool, ComposioToolkitInfo } from "../../services/integration.service.js";
2
+ export declare function IntegrationHeader(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function MCPToolList({ tools }: {
4
+ tools: MCPTool[];
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function IntegrationCreatedView({ name, serverUrl, toolCount, toolNames, }: {
7
+ name: string;
8
+ serverUrl: string;
9
+ toolCount: number;
10
+ toolNames: string[];
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare function IntegrationDiscoveryView({ serverUrl, toolCount, }: {
13
+ serverUrl: string;
14
+ toolCount: number;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ComposioToolkitList({ toolkits }: {
17
+ toolkits: ComposioToolkitInfo[];
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ export declare function NativeIntegrationCreatedView({ name, toolkitSlug, toolCount, toolNames, }: {
20
+ name: string;
21
+ toolkitSlug: string;
22
+ toolCount: number;
23
+ toolNames: string[];
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=IntegrationView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntegrationView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/IntegrationView.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE1F,wBAAgB,iBAAiB,4CAEhC;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,2CAiB1D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,2CA4BA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,2CAYA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAAE,2CAoBpF;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,2CA4BA"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { Header, Section, StatusLine, Divider, Hint, KeyValue, } from "../components/index.js";
4
+ import { colors } from "../theme.js";
5
+ export function IntegrationHeader() {
6
+ return _jsx(Header, { title: "Create Integration", subtitle: "MCP \u2014 Manual Configuration" });
7
+ }
8
+ export function MCPToolList({ tools }) {
9
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Section, { title: `Available Tools (${tools.length})`, children: tools.map((tool, i) => (_jsxs(Box, { flexDirection: "column", marginBottom: i < tools.length - 1 ? 1 : 0, children: [_jsx(Text, { bold: true, color: colors.brand, children: tool.name }), tool.description && (_jsxs(Text, { color: colors.muted, children: [" ", tool.description] }))] }, tool.name))) }) }));
10
+ }
11
+ export function IntegrationCreatedView({ name, serverUrl, toolCount, toolNames, }) {
12
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(StatusLine, { kind: "success", label: `MCP integration "${name}" created` }), _jsxs(Section, { title: "Details", children: [_jsx(KeyValue, { label: "Server URL", value: serverUrl }), _jsx(KeyValue, { label: "Tools", value: `${toolCount} selected` }), _jsx(Box, { flexDirection: "column", marginLeft: 2, children: toolNames.map((t) => (_jsxs(Text, { color: colors.muted, children: ["\u2022 ", t] }, t))) })] }), _jsx(Divider, {}), _jsxs(Section, { title: "Next Steps", children: [_jsx(Hint, { message: "View integrations:", command: "aui integration --list" }), _jsx(Hint, { message: "Push changes:", command: "aui push" })] })] }));
13
+ }
14
+ export function IntegrationDiscoveryView({ serverUrl, toolCount, }) {
15
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(StatusLine, { kind: "success", label: `Discovered ${toolCount} tools from MCP server` }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: colors.muted, children: serverUrl }) })] }));
16
+ }
17
+ export function ComposioToolkitList({ toolkits }) {
18
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Section, { title: `Available Toolkits (${toolkits.length})`, children: toolkits.map((tk, i) => (_jsxs(Box, { flexDirection: "column", marginBottom: i < toolkits.length - 1 ? 1 : 0, children: [_jsxs(Text, { bold: true, color: colors.brand, children: [tk.name, " ", _jsxs(Text, { color: colors.muted, children: ["(", tk.slug, ")"] })] }), tk.description && (_jsxs(Text, { color: colors.muted, children: [" ", tk.description] })), tk.toolsCount !== undefined && tk.toolsCount > 0 && (_jsxs(Text, { color: colors.muted, children: [" ", tk.toolsCount, " tools available"] }))] }, tk.slug))) }) }));
19
+ }
20
+ export function NativeIntegrationCreatedView({ name, toolkitSlug, toolCount, toolNames, }) {
21
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(StatusLine, { kind: "success", label: `Native integration "${name}" created` }), _jsxs(Section, { title: "Details", children: [_jsx(KeyValue, { label: "Toolkit", value: toolkitSlug }), _jsx(KeyValue, { label: "Tools", value: `${toolCount} selected` }), _jsx(Box, { flexDirection: "column", marginLeft: 2, children: toolNames.map((t) => (_jsxs(Text, { color: colors.muted, children: ["\u2022 ", t] }, t))) })] }), _jsx(Divider, {}), _jsxs(Section, { title: "Next Steps", children: [_jsx(Hint, { message: "View integrations:", command: "aui integration --list" }), _jsx(Hint, { message: "Push changes:", command: "aui push" })] })] }));
22
+ }
23
+ //# sourceMappingURL=IntegrationView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntegrationView.js","sourceRoot":"","sources":["../../../src/ui/views/IntegrationView.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aui-agent-builder",
3
- "version": "0.3.57",
3
+ "version": "0.3.59",
4
4
  "description": "CLI for building, managing, and deploying AUI AI agent configurations",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",