aui-agent-builder 0.3.134 → 0.3.135
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/api-client/kb-view-client.d.ts +11 -0
- package/dist/api-client/kb-view-client.d.ts.map +1 -1
- package/dist/api-client/kb-view-client.js.map +1 -1
- package/dist/api-client/rag-client.d.ts +22 -0
- package/dist/api-client/rag-client.d.ts.map +1 -1
- package/dist/api-client/rag-client.js +26 -0
- package/dist/api-client/rag-client.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/push.js +6 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/rag.d.ts +1 -0
- package/dist/commands/rag.d.ts.map +1 -1
- package/dist/commands/rag.js +62 -5
- package/dist/commands/rag.js.map +1 -1
- package/dist/commands/version-snapshot.d.ts.map +1 -1
- package/dist/commands/version-snapshot.js +75 -0
- package/dist/commands/version-snapshot.js.map +1 -1
- package/dist/index.js +1 -14
- package/dist/index.js.map +1 -1
- package/dist/services/kb-view.service.d.ts +2 -1
- package/dist/services/kb-view.service.d.ts.map +1 -1
- package/dist/services/kb-view.service.js +22 -9
- package/dist/services/kb-view.service.js.map +1 -1
- package/dist/services/rag.service.d.ts +18 -0
- package/dist/services/rag.service.d.ts.map +1 -1
- package/dist/services/rag.service.js +27 -2
- package/dist/services/rag.service.js.map +1 -1
- package/dist/ui/views/RagView.d.ts +6 -1
- package/dist/ui/views/RagView.d.ts.map +1 -1
- package/dist/ui/views/RagView.js +23 -0
- package/dist/ui/views/RagView.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/add-integration.d.ts +0 -20
- package/dist/commands/add-integration.d.ts.map +0 -1
- package/dist/commands/add-integration.js +0 -389
- package/dist/commands/add-integration.js.map +0 -1
- package/dist/commands/add-tool.d.ts +0 -17
- package/dist/commands/add-tool.d.ts.map +0 -1
- package/dist/commands/add-tool.js +0 -225
- package/dist/commands/add-tool.js.map +0 -1
|
@@ -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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"}
|