aui-agent-builder 0.3.134 → 0.3.136

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +5 -0
  2. package/dist/api-client/apollo-client.d.ts +8 -0
  3. package/dist/api-client/apollo-client.d.ts.map +1 -1
  4. package/dist/api-client/apollo-client.js.map +1 -1
  5. package/dist/api-client/kb-view-client.d.ts +11 -0
  6. package/dist/api-client/kb-view-client.d.ts.map +1 -1
  7. package/dist/api-client/kb-view-client.js.map +1 -1
  8. package/dist/api-client/rag-client.d.ts +22 -0
  9. package/dist/api-client/rag-client.d.ts.map +1 -1
  10. package/dist/api-client/rag-client.js +26 -0
  11. package/dist/api-client/rag-client.js.map +1 -1
  12. package/dist/commands/apollo.d.ts +24 -0
  13. package/dist/commands/apollo.d.ts.map +1 -1
  14. package/dist/commands/apollo.js +30 -0
  15. package/dist/commands/apollo.js.map +1 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +171 -2
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/push.js +6 -1
  20. package/dist/commands/push.js.map +1 -1
  21. package/dist/commands/rag.d.ts +1 -0
  22. package/dist/commands/rag.d.ts.map +1 -1
  23. package/dist/commands/rag.js +62 -5
  24. package/dist/commands/rag.js.map +1 -1
  25. package/dist/commands/version-snapshot.d.ts.map +1 -1
  26. package/dist/commands/version-snapshot.js +75 -0
  27. package/dist/commands/version-snapshot.js.map +1 -1
  28. package/dist/index.js +5 -15
  29. package/dist/index.js.map +1 -1
  30. package/dist/services/kb-view.service.d.ts +2 -1
  31. package/dist/services/kb-view.service.d.ts.map +1 -1
  32. package/dist/services/kb-view.service.js +22 -9
  33. package/dist/services/kb-view.service.js.map +1 -1
  34. package/dist/services/list-agents.service.d.ts +10 -0
  35. package/dist/services/list-agents.service.d.ts.map +1 -1
  36. package/dist/services/list-agents.service.js +15 -20
  37. package/dist/services/list-agents.service.js.map +1 -1
  38. package/dist/services/rag.service.d.ts +18 -0
  39. package/dist/services/rag.service.d.ts.map +1 -1
  40. package/dist/services/rag.service.js +27 -2
  41. package/dist/services/rag.service.js.map +1 -1
  42. package/dist/ui/views/RagView.d.ts +6 -1
  43. package/dist/ui/views/RagView.d.ts.map +1 -1
  44. package/dist/ui/views/RagView.js +23 -0
  45. package/dist/ui/views/RagView.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/commands/add-integration.d.ts +0 -20
  48. package/dist/commands/add-integration.d.ts.map +0 -1
  49. package/dist/commands/add-integration.js +0 -389
  50. package/dist/commands/add-integration.js.map +0 -1
  51. package/dist/commands/add-tool.d.ts +0 -17
  52. package/dist/commands/add-tool.d.ts.map +0 -1
  53. package/dist/commands/add-tool.js +0 -225
  54. package/dist/commands/add-tool.js.map +0 -1
@@ -1,389 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as fs from "fs";
3
- import * as path from "path";
4
- import { render } from "ink";
5
- import inquirer from "inquirer";
6
- import chalk from "chalk";
7
- import fetch from "node-fetch";
8
- import { findProjectRoot, getApiWorkflowBaseUrl, loadApiWorkflowKey, saveApiWorkflowKey, getConfig, loadSession, loadProjectConfig, } from "../config/index.js";
9
- import { Header, StatusLine, Spinner, ErrorDisplay, Hint, } from "../ui/components/index.js";
10
- import { AddIntegrationResult } from "../ui/views/AddIntegrationView.js";
11
- // ─── Ink Rendering Helpers ───
12
- function log(node) {
13
- const { unmount } = render(node);
14
- unmount();
15
- }
16
- function startSpinner(label) {
17
- const inst = render(_jsx(Spinner, { label: label }));
18
- return {
19
- succeed(msg) {
20
- inst.unmount();
21
- log(_jsx(StatusLine, { kind: "success", label: msg }));
22
- },
23
- fail(msg) {
24
- inst.unmount();
25
- log(_jsx(StatusLine, { kind: "error", label: msg }));
26
- },
27
- stop() {
28
- inst.unmount();
29
- },
30
- };
31
- }
32
- /**
33
- * Scaffold an integration config file
34
- */
35
- export async function addIntegration(_options = {}) {
36
- log(_jsx(Header, { title: "Add Integration" }));
37
- const projectRoot = findProjectRoot() || process.cwd();
38
- // Step 1: Integration type
39
- const { integrationType } = await inquirer.prompt([
40
- {
41
- type: "list",
42
- name: "integrationType",
43
- message: "Integration type:",
44
- choices: [
45
- { name: "API — REST API endpoint", value: "API" },
46
- { name: "RAG — Knowledge base (files / URLs)", value: "RAG" },
47
- { name: "MCP — Model Context Protocol", value: "MCP" },
48
- ],
49
- },
50
- ]);
51
- // Step 2: Code
52
- const { code } = await inquirer.prompt([
53
- {
54
- type: "input",
55
- name: "code",
56
- message: "Integration code (kebab-case):",
57
- validate: (input) => /^[a-z][a-z0-9-]*$/.test(input) ||
58
- "Use lowercase letters, numbers, and hyphens",
59
- },
60
- ]);
61
- // Step 3: Build the integration based on type
62
- let integration;
63
- if (integrationType === "API") {
64
- integration = await scaffoldAPI(code);
65
- }
66
- else if (integrationType === "RAG") {
67
- integration = await scaffoldRAG(code);
68
- }
69
- else {
70
- integration = scaffoldMCP(code);
71
- }
72
- // Step 4: Save to integrations.aui.json
73
- await saveIntegration(integration, projectRoot);
74
- const filePath = path.join(projectRoot, "integrations.aui.json");
75
- log(_jsx(AddIntegrationResult, { integrationType: integrationType, code: code, filePath: filePath }));
76
- }
77
- // ─── Scaffolders ───
78
- async function scaffoldAPI(code) {
79
- const { goal } = await inquirer.prompt([
80
- {
81
- type: "input",
82
- name: "goal",
83
- message: "Integration goal (what does it do?):",
84
- validate: (input) => input.trim().length > 0 || "Goal is required",
85
- },
86
- ]);
87
- const { curlCommand } = await inquirer.prompt([
88
- {
89
- type: "input",
90
- name: "curlCommand",
91
- message: "Paste the curl command:",
92
- validate: (input) => input.trim().toLowerCase().startsWith("curl") ||
93
- "Must be a curl command",
94
- },
95
- ]);
96
- const { useGenerate } = await inquirer.prompt([
97
- {
98
- type: "confirm",
99
- name: "useGenerate",
100
- message: "Generate integration via API (auto-maps parameters)?",
101
- default: true,
102
- },
103
- ]);
104
- if (!useGenerate) {
105
- return {
106
- type: "API",
107
- code,
108
- description: goal,
109
- settings: {
110
- endpoint: { url: "", method: "GET" },
111
- request_schema: [],
112
- response_mapping: {},
113
- test_curl: curlCommand.trim(),
114
- },
115
- };
116
- }
117
- const config = getConfig();
118
- const session = loadSession();
119
- const projectConfig = loadProjectConfig();
120
- const networkId = projectConfig?.agent_id || session?.network_id || "";
121
- const accountId = projectConfig?.account_id || config.accountId || "";
122
- const orgId = projectConfig?.organization_id || config.organizationId || "";
123
- const categoryId = projectConfig?.network_category_id || "";
124
- const userId = session?.user_id || orgId;
125
- let apiWorkflowKey = loadApiWorkflowKey();
126
- if (!apiWorkflowKey) {
127
- log(_jsx(StatusLine, { kind: "warning", label: "API Workflow key not configured." }));
128
- log(_jsx(Hint, { message: "The key will be saved to ~/.aui/api-workflow-key for future use." }));
129
- const { key } = await inquirer.prompt([
130
- {
131
- type: "password",
132
- name: "key",
133
- message: "Paste the API Workflow key:",
134
- mask: "*",
135
- validate: (input) => input.trim().length > 0 || "Key is required",
136
- },
137
- ]);
138
- apiWorkflowKey = key.trim();
139
- if (!apiWorkflowKey) {
140
- log(_jsx(ErrorDisplay, { message: "No key provided. Cannot generate integration." }));
141
- return {
142
- type: "API",
143
- code,
144
- description: goal,
145
- settings: {
146
- endpoint: { url: "", method: "GET" },
147
- request_schema: [],
148
- response_mapping: {},
149
- test_curl: curlCommand.trim(),
150
- },
151
- };
152
- }
153
- saveApiWorkflowKey(apiWorkflowKey);
154
- log(_jsx(StatusLine, { kind: "success", label: "Key saved to ~/.aui/api-workflow-key" }));
155
- }
156
- const spinner = startSpinner("Generating integration via API...");
157
- try {
158
- const resp = await fetch(`${getApiWorkflowBaseUrl()}/v1/api-integration/generate`, {
159
- method: "POST",
160
- headers: {
161
- "Content-Type": "application/json",
162
- "api-key": apiWorkflowKey,
163
- },
164
- body: JSON.stringify({
165
- curl: curlCommand.trim(),
166
- scope: {
167
- networkId,
168
- accountId,
169
- seedId: orgId,
170
- networkCategoryId: categoryId,
171
- },
172
- variables: [],
173
- tool: {
174
- name: code.toUpperCase().replace(/-/g, "_"),
175
- goal: goal.trim(),
176
- },
177
- createdBy: userId,
178
- }),
179
- });
180
- if (!resp.ok) {
181
- const errBody = await resp.text();
182
- spinner.fail("Generation failed");
183
- log(_jsx(ErrorDisplay, { error: new Error(`${resp.status}: ${errBody}`), message: `${resp.status}: ${errBody}` }));
184
- return {
185
- type: "API",
186
- code,
187
- description: goal,
188
- settings: {
189
- endpoint: { url: "", method: "GET" },
190
- request_schema: [],
191
- response_mapping: {},
192
- test_curl: curlCommand.trim(),
193
- },
194
- };
195
- }
196
- const result = (await resp.json());
197
- const generated = result?.data?.integration;
198
- if (!generated) {
199
- spinner.fail("No integration data in response");
200
- return {
201
- type: "API",
202
- code,
203
- description: goal,
204
- settings: {
205
- endpoint: { url: "", method: "GET" },
206
- request_schema: [],
207
- response_mapping: {},
208
- test_curl: curlCommand.trim(),
209
- },
210
- };
211
- }
212
- spinner.succeed("Integration generated");
213
- return {
214
- type: "API",
215
- code: generated.code || code,
216
- description: generated.description || goal,
217
- settings: {
218
- endpoint: generated.endpoint || { url: "", method: "GET" },
219
- request_schema: [],
220
- response_mapping: generated.response_mapping || {},
221
- test_curl: generated.test_curl || curlCommand.trim(),
222
- },
223
- };
224
- }
225
- catch (error) {
226
- spinner.fail("Generation failed");
227
- log(_jsx(ErrorDisplay, { error: error }));
228
- return {
229
- type: "API",
230
- code,
231
- description: goal,
232
- settings: {
233
- endpoint: { url: "", method: "GET" },
234
- request_schema: [],
235
- response_mapping: {},
236
- test_curl: curlCommand.trim(),
237
- },
238
- };
239
- }
240
- }
241
- async function scaffoldRAG(code) {
242
- const { getConfig, loadSession } = await import("../config/index.js");
243
- const { RAGClient } = await import("../api-client/rag-client.js");
244
- const config = getConfig();
245
- const session = loadSession();
246
- const networkId = session?.network_id;
247
- let knowledgeBaseId = "";
248
- let knowledgeHubName = "";
249
- let knowledgeHubScope = "network";
250
- if (networkId && config.authToken) {
251
- const client = new RAGClient({
252
- authToken: config.authToken,
253
- organizationId: config.organizationId || "",
254
- environment: config.environment,
255
- });
256
- try {
257
- const kbs = await client.listKnowledgeBases({
258
- scopeType: "NETWORK",
259
- networkId,
260
- includeHierarchy: true,
261
- });
262
- if (kbs.length > 0) {
263
- const choices = [
264
- ...kbs.map((kb) => ({
265
- name: `${kb.name} ${chalk.gray(`(${kb.id})`)}`,
266
- value: {
267
- id: kb.id,
268
- name: kb.name,
269
- scope: kb.scope?.type?.toLowerCase() || "network",
270
- },
271
- })),
272
- new inquirer.Separator(),
273
- { name: chalk.cyan("+ Create a new knowledge base"), value: "new" },
274
- ];
275
- const { selected } = await inquirer.prompt([
276
- {
277
- type: "list",
278
- name: "selected",
279
- message: "Knowledge base:",
280
- choices,
281
- pageSize: 15,
282
- },
283
- ]);
284
- if (selected !== "new") {
285
- knowledgeBaseId = selected.id;
286
- knowledgeHubName = selected.name;
287
- knowledgeHubScope = selected.scope;
288
- }
289
- }
290
- }
291
- catch {
292
- // API unavailable, fall through to manual entry
293
- }
294
- }
295
- if (!knowledgeBaseId) {
296
- const khAnswers = await inquirer.prompt([
297
- {
298
- type: "input",
299
- name: "name",
300
- message: "Knowledge base name:",
301
- validate: (input) => input.trim().length > 0 || "Name is required",
302
- },
303
- {
304
- type: "list",
305
- name: "scope",
306
- message: "Scope:",
307
- choices: [
308
- { name: "Network — specific to this agent only", value: "network" },
309
- { name: "Account — shared within this account", value: "account" },
310
- {
311
- name: "Organization — shared across all accounts and agents",
312
- value: "organization",
313
- },
314
- ],
315
- },
316
- ]);
317
- knowledgeHubName = khAnswers.name.trim();
318
- knowledgeHubScope = khAnswers.scope;
319
- }
320
- const knowledgeHub = {
321
- name: knowledgeHubName,
322
- scope: knowledgeHubScope,
323
- files: [],
324
- ...(knowledgeBaseId ? { id: knowledgeBaseId } : {}),
325
- };
326
- return {
327
- type: "RAG",
328
- code,
329
- description: "",
330
- settings: {
331
- search_top_k: 7,
332
- ranker_top_k: 3,
333
- ranker_model: null,
334
- confidence_threshold: 0.3,
335
- knowledge_base_id: knowledgeBaseId || "",
336
- parent_knowledge_base_ids: [],
337
- allow_multiple_calls: false,
338
- placeholders: [],
339
- knowledge_hub: knowledgeHub,
340
- },
341
- };
342
- }
343
- function scaffoldMCP(code) {
344
- return {
345
- type: "MCP",
346
- code,
347
- description: "",
348
- settings: undefined,
349
- };
350
- }
351
- // ─── Save ───
352
- async function saveIntegration(integration, projectRoot) {
353
- const integrationsPath = path.join(projectRoot, "integrations.aui.json");
354
- let existingIntegrations = [];
355
- if (fs.existsSync(integrationsPath)) {
356
- try {
357
- const content = fs.readFileSync(integrationsPath, "utf-8");
358
- const parsed = JSON.parse(content);
359
- existingIntegrations = parsed.integrations || [];
360
- }
361
- catch {
362
- // Start fresh if file is invalid
363
- }
364
- }
365
- const existingIdx = existingIntegrations.findIndex((i) => i.code === integration.code);
366
- if (existingIdx >= 0) {
367
- const { action } = await inquirer.prompt([
368
- {
369
- type: "list",
370
- name: "action",
371
- message: `Integration "${integration.code}" already exists.`,
372
- choices: [
373
- { name: "Replace it", value: "replace" },
374
- { name: "Cancel", value: "cancel" },
375
- ],
376
- },
377
- ]);
378
- if (action === "cancel") {
379
- log(_jsx(StatusLine, { kind: "muted", label: "Cancelled." }));
380
- return;
381
- }
382
- existingIntegrations[existingIdx] = integration;
383
- }
384
- else {
385
- existingIntegrations.push(integration);
386
- }
387
- fs.writeFileSync(integrationsPath, JSON.stringify({ integrations: existingIntegrations }, null, 2) + "\n");
388
- }
389
- //# sourceMappingURL=add-integration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-integration.js","sourceRoot":"","sources":["../../src/commands/add-integration.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * add-tool command - Create a new tool definition
3
- *
4
- * Interactive wizard to create a new tool .aui.json file in the tools/ directory.
5
- *
6
- * Usage: aui add-tool
7
- * Options:
8
- * --code <code> Tool code (SCREAMING_SNAKE_CASE)
9
- */
10
- export interface AddToolOptions {
11
- code?: string;
12
- }
13
- /**
14
- * Create a new tool definition
15
- */
16
- export declare function addTool(options?: AddToolOptions): Promise<void>;
17
- //# sourceMappingURL=add-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-tool.d.ts","sourceRoot":"","sources":["../../src/commands/add-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmPzE"}
@@ -1,225 +0,0 @@
1
- /**
2
- * add-tool command - Create a new tool definition
3
- *
4
- * Interactive wizard to create a new tool .aui.json file in the tools/ directory.
5
- *
6
- * Usage: aui add-tool
7
- * Options:
8
- * --code <code> Tool code (SCREAMING_SNAKE_CASE)
9
- */
10
- import * as fs from "fs";
11
- import * as path from "path";
12
- import chalk from "chalk";
13
- import inquirer from "inquirer";
14
- import { findProjectRoot } from "../config/index.js";
15
- import { toScreamingSnakeCase } from "../utils/index.js";
16
- /**
17
- * Create a new tool definition
18
- */
19
- export async function addTool(options = {}) {
20
- console.log(chalk.blue("\n ┌─────────────────────────────────────────┐"));
21
- console.log(chalk.blue(" │ Create New Tool │"));
22
- console.log(chalk.blue(" └─────────────────────────────────────────┘\n"));
23
- const projectRoot = findProjectRoot() || process.cwd();
24
- // Collect tool info
25
- const answers = await inquirer.prompt([
26
- {
27
- type: "input",
28
- name: "name",
29
- message: 'Tool name (e.g. "Transaction Search"):',
30
- validate: (input) => input.length > 0 || "Tool name is required",
31
- },
32
- {
33
- type: "input",
34
- name: "when_to_use",
35
- message: "When should this tool activate? (natural language description):",
36
- validate: (input) => input.length > 0 || "When to use is required",
37
- },
38
- {
39
- type: "input",
40
- name: "goal",
41
- message: "What does this tool do? (natural language goal):",
42
- validate: (input) => input.length > 0 || "Goal is required",
43
- },
44
- {
45
- type: "confirm",
46
- name: "requiresConfirmation",
47
- message: "Require user confirmation before executing?",
48
- default: false,
49
- },
50
- {
51
- type: "list",
52
- name: "responseType",
53
- message: "Response type:",
54
- choices: [
55
- { name: "Text - Plain text response", value: "text" },
56
- {
57
- name: "Text + Widget - Text with UI component",
58
- value: "text_and_widget",
59
- },
60
- ],
61
- },
62
- ]);
63
- const toolCode = options.code || toScreamingSnakeCase(answers.name);
64
- // Ask about integrations
65
- const { hasIntegrations } = await inquirer.prompt([
66
- {
67
- type: "confirm",
68
- name: "hasIntegrations",
69
- message: "Does this tool call any integrations?",
70
- default: false,
71
- },
72
- ]);
73
- let integrations = [];
74
- if (hasIntegrations) {
75
- // Load existing integrations
76
- const integrationsPath = path.join(projectRoot, "integrations.aui.json");
77
- let availableIntegrations = [];
78
- if (fs.existsSync(integrationsPath)) {
79
- try {
80
- const content = JSON.parse(fs.readFileSync(integrationsPath, "utf-8"));
81
- availableIntegrations = (content.integrations || []).map((i) => i.code);
82
- }
83
- catch {
84
- // ignore
85
- }
86
- }
87
- if (availableIntegrations.length > 0) {
88
- const { selectedIntegrations } = await inquirer.prompt([
89
- {
90
- type: "checkbox",
91
- name: "selectedIntegrations",
92
- message: "Select integrations:",
93
- choices: availableIntegrations.map((code) => ({
94
- name: code,
95
- value: code,
96
- })),
97
- },
98
- ]);
99
- integrations = selectedIntegrations.map((code) => ({ code }));
100
- }
101
- else {
102
- console.log(chalk.gray(" No integrations found. Add integrations first with: aui add-integration"));
103
- }
104
- }
105
- // Ask about required parameters
106
- const { hasParams } = await inquirer.prompt([
107
- {
108
- type: "confirm",
109
- name: "hasParams",
110
- message: "Does this tool require any parameters?",
111
- default: false,
112
- },
113
- ]);
114
- let requiredParams = [];
115
- let optionalParams = [];
116
- if (hasParams) {
117
- // Load existing parameters
118
- const paramsPath = path.join(projectRoot, "parameters.aui.json");
119
- let availableParams = [];
120
- if (fs.existsSync(paramsPath)) {
121
- try {
122
- const content = JSON.parse(fs.readFileSync(paramsPath, "utf-8"));
123
- availableParams = (content.parameters || []).map((p) => p.code);
124
- }
125
- catch {
126
- // ignore
127
- }
128
- }
129
- if (availableParams.length > 0) {
130
- const { required } = await inquirer.prompt([
131
- {
132
- type: "checkbox",
133
- name: "required",
134
- message: "Select REQUIRED parameters:",
135
- choices: availableParams,
136
- },
137
- ]);
138
- requiredParams = required;
139
- const remaining = availableParams.filter((p) => !required.includes(p));
140
- if (remaining.length > 0) {
141
- const { optional } = await inquirer.prompt([
142
- {
143
- type: "checkbox",
144
- name: "optional",
145
- message: "Select OPTIONAL parameters:",
146
- choices: remaining,
147
- },
148
- ]);
149
- optionalParams = optional;
150
- }
151
- }
152
- else {
153
- console.log(chalk.gray(" No parameters found. Add parameters to parameters.aui.json first."));
154
- }
155
- }
156
- // Build tool definition
157
- const toolFile = {
158
- tool: {
159
- code: toolCode,
160
- when_to_use: answers.when_to_use,
161
- goal: answers.goal,
162
- status: true,
163
- main_tool: true,
164
- requires_confirmation: answers.requiresConfirmation,
165
- response_type: answers.responseType,
166
- brevity: "",
167
- tone_of_voice: "",
168
- config: {
169
- triggers: {
170
- when: {
171
- any: [],
172
- },
173
- },
174
- params: {
175
- required: requiredParams,
176
- optional: optionalParams,
177
- },
178
- },
179
- integrations,
180
- rules: {
181
- pre: {},
182
- summary: {
183
- success: [
184
- {
185
- description: null,
186
- when: null,
187
- then: {
188
- action: "TEXT",
189
- message: "",
190
- },
191
- },
192
- ],
193
- },
194
- },
195
- },
196
- };
197
- // Write tool file
198
- const toolsDir = path.join(projectRoot, "tools");
199
- if (!fs.existsSync(toolsDir)) {
200
- fs.mkdirSync(toolsDir, { recursive: true });
201
- }
202
- const fileName = `${toolCode.toLowerCase().replace(/_/g, "_")}.aui.json`;
203
- const filePath = path.join(toolsDir, fileName);
204
- if (fs.existsSync(filePath)) {
205
- const { overwrite } = await inquirer.prompt([
206
- {
207
- type: "confirm",
208
- name: "overwrite",
209
- message: `Tool file ${fileName} already exists. Overwrite?`,
210
- default: false,
211
- },
212
- ]);
213
- if (!overwrite) {
214
- console.log(chalk.gray("\n Cancelled.\n"));
215
- return;
216
- }
217
- }
218
- fs.writeFileSync(filePath, JSON.stringify(toolFile, null, 2) + "\n");
219
- console.log(chalk.green(`\n ✓ Tool "${toolCode}" created at tools/${fileName}`));
220
- console.log(chalk.gray(`\n Next steps:`));
221
- console.log(chalk.gray(` 1. Edit tools/${fileName} to refine trigger conditions`));
222
- console.log(chalk.gray(` 2. Add pre/post rules for execution logic`));
223
- console.log(chalk.gray(` 3. Run "aui validate" to verify configuration\n`));
224
- }
225
- //# sourceMappingURL=add-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-tool.js","sourceRoot":"","sources":["../../src/commands/add-tool.ts"],"names":[],"mappings":"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"}