@nestbox-ai/cli 1.0.39 → 1.0.40
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/commands/generate/project.js +2 -2
- package/dist/commands/generate/project.js.map +1 -1
- package/dist/utils/plopGenerator.d.ts +3 -1
- package/dist/utils/plopGenerator.js +34 -22
- package/dist/utils/plopGenerator.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/generate/project.ts +2 -2
- package/src/utils/plopGenerator.ts +55 -33
- package/templates/base-js/index.js.hbs +21 -8
- package/templates/base-js/nestbox-agents.yaml.hbs +12 -0
- package/templates/base-js/package.json +1 -1
- package/templates/base-ts/nestbox-agents.yaml.hbs +12 -0
- package/templates/base-ts/nestbox.config.json +9 -0
- package/templates/base-ts/package.json +1 -1
- package/templates/base-ts/src/index.ts.hbs +21 -8
- package/templates/chatbot-js/package.json +1 -1
- package/templates/chatbot-ts/package.json +1 -1
- package/sample-agents.yaml +0 -0
|
@@ -128,7 +128,7 @@ function registerProjectCommand(generateCommand) {
|
|
|
128
128
|
spinner.text = `Generating ${mappedTemplateType} project in ${folder}...`;
|
|
129
129
|
try {
|
|
130
130
|
// Generate project using plop
|
|
131
|
-
yield (0, plopGenerator_1.generateWithPlop)(selectedTemplate, selectedLang, folder, path_1.default.basename(folder), agentName);
|
|
131
|
+
const { agentNameInYaml } = yield (0, plopGenerator_1.generateWithPlop)(selectedTemplate, selectedLang, folder, path_1.default.basename(folder), agentName);
|
|
132
132
|
// Create nestbox.config.json for TypeScript projects
|
|
133
133
|
(0, agent_1.createNestboxConfig)(folder, selectedLang === "ts");
|
|
134
134
|
spinner.succeed(`Successfully generated ${mappedTemplateType} project in ${folder}`);
|
|
@@ -138,7 +138,7 @@ function registerProjectCommand(generateCommand) {
|
|
|
138
138
|
if (selectedLang === "ts") {
|
|
139
139
|
console.log(chalk_1.default.yellow(" npm run build"));
|
|
140
140
|
}
|
|
141
|
-
console.log(chalk_1.default.yellow(
|
|
141
|
+
console.log(chalk_1.default.yellow(` nestbox agent deploy --agent ${agentNameInYaml} --instance <instance-name>`));
|
|
142
142
|
}
|
|
143
143
|
catch (error) {
|
|
144
144
|
// Clean up on error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/commands/generate/project.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/commands/generate/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,9 @@ export interface TemplateConfig {
|
|
|
7
7
|
/**
|
|
8
8
|
* Generate project using plop.js templates
|
|
9
9
|
*/
|
|
10
|
-
export declare function generateWithPlop(templateType: string, language: string, targetFolder: string, projectName?: string, agentName?: string): Promise<
|
|
10
|
+
export declare function generateWithPlop(templateType: string, language: string, targetFolder: string, projectName?: string, agentName?: string): Promise<{
|
|
11
|
+
agentNameInYaml: string;
|
|
12
|
+
}>;
|
|
11
13
|
/**
|
|
12
14
|
* List available templates
|
|
13
15
|
*/
|
|
@@ -17,6 +17,7 @@ exports.listAvailableTemplates = listAvailableTemplates;
|
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
18
|
const fs_1 = __importDefault(require("fs"));
|
|
19
19
|
const node_plop_1 = __importDefault(require("node-plop"));
|
|
20
|
+
const kebabize = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase());
|
|
20
21
|
/**
|
|
21
22
|
* Generate project using plop.js templates
|
|
22
23
|
*/
|
|
@@ -27,14 +28,14 @@ function generateWithPlop(templateType, language, targetFolder, projectName, age
|
|
|
27
28
|
fs_1.default.mkdirSync(targetFolder, { recursive: true });
|
|
28
29
|
}
|
|
29
30
|
// Set up plop programmatically
|
|
30
|
-
const plop = yield (0, node_plop_1.default)(
|
|
31
|
+
const plop = yield (0, node_plop_1.default)("", {
|
|
31
32
|
destBasePath: targetFolder,
|
|
32
|
-
force: false
|
|
33
|
+
force: false,
|
|
33
34
|
});
|
|
34
35
|
// Template mapping
|
|
35
36
|
const templateMapping = {
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
agent: "base",
|
|
38
|
+
chatbot: "chatbot",
|
|
38
39
|
};
|
|
39
40
|
const mappedTemplateType = templateMapping[templateType] || templateType;
|
|
40
41
|
const templatePath = path_1.default.resolve(__dirname, `../../templates/${mappedTemplateType}-${language}`);
|
|
@@ -44,61 +45,72 @@ function generateWithPlop(templateType, language, targetFolder, projectName, age
|
|
|
44
45
|
// Configure the generator
|
|
45
46
|
const generatorName = `${mappedTemplateType}-${language}`;
|
|
46
47
|
// Get the main template file path and target name
|
|
47
|
-
const mainTemplateFile = language ===
|
|
48
|
-
const targetFileName = language ===
|
|
48
|
+
const mainTemplateFile = language === "ts" ? "src/index.ts.hbs" : "index.js.hbs";
|
|
49
|
+
const targetFileName = language === "ts" ? "src/index.ts" : "index.js";
|
|
49
50
|
plop.setGenerator(generatorName, {
|
|
50
51
|
description: `Generate a new ${mappedTemplateType} project in ${language}`,
|
|
51
52
|
prompts: [],
|
|
52
53
|
actions: [
|
|
53
54
|
// Copy all non-template files
|
|
54
55
|
{
|
|
55
|
-
type:
|
|
56
|
-
destination:
|
|
56
|
+
type: "addMany",
|
|
57
|
+
destination: ".",
|
|
57
58
|
base: templatePath,
|
|
58
59
|
templateFiles: `${templatePath}/**/*`,
|
|
59
60
|
globOptions: {
|
|
60
61
|
dot: true,
|
|
61
|
-
ignore: [
|
|
62
|
-
}
|
|
62
|
+
ignore: ["**/node_modules/**", "**/*.hbs"],
|
|
63
|
+
},
|
|
63
64
|
},
|
|
64
|
-
// Add the main template file with proper naming
|
|
65
65
|
{
|
|
66
|
-
type:
|
|
66
|
+
type: "add",
|
|
67
67
|
path: targetFileName,
|
|
68
|
-
templateFile: path_1.default.join(templatePath, mainTemplateFile)
|
|
69
|
-
}
|
|
70
|
-
|
|
68
|
+
templateFile: path_1.default.join(templatePath, mainTemplateFile),
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: "add",
|
|
72
|
+
path: "nestbox-agents.yaml",
|
|
73
|
+
templateFile: path_1.default.join(templatePath, "nestbox-agents.yaml.hbs"),
|
|
74
|
+
},
|
|
75
|
+
],
|
|
71
76
|
});
|
|
72
77
|
// Run the generator
|
|
73
78
|
const generator = plop.getGenerator(generatorName);
|
|
79
|
+
const agentNameFinal = agentName || (templateType === "agent" ? "myAgent" : "myChatbot");
|
|
80
|
+
const agentNameInYaml = kebabize(agentNameFinal);
|
|
74
81
|
yield generator.runActions({
|
|
75
82
|
name: projectName || path_1.default.basename(targetFolder),
|
|
76
|
-
agentName:
|
|
83
|
+
agentName: agentNameFinal,
|
|
84
|
+
agentNameInYaml,
|
|
77
85
|
});
|
|
78
86
|
// Update package.json with project name if provided
|
|
79
87
|
if (projectName) {
|
|
80
|
-
const packageJsonPath = path_1.default.join(targetFolder,
|
|
88
|
+
const packageJsonPath = path_1.default.join(targetFolder, "package.json");
|
|
81
89
|
if (fs_1.default.existsSync(packageJsonPath)) {
|
|
82
|
-
const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath,
|
|
90
|
+
const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, "utf8"));
|
|
83
91
|
packageJson.name = projectName;
|
|
84
92
|
fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
85
93
|
}
|
|
86
94
|
}
|
|
95
|
+
return {
|
|
96
|
+
agentNameInYaml,
|
|
97
|
+
};
|
|
87
98
|
});
|
|
88
99
|
}
|
|
89
100
|
/**
|
|
90
101
|
* List available templates
|
|
91
102
|
*/
|
|
92
103
|
function listAvailableTemplates() {
|
|
93
|
-
const templatesDir = path_1.default.resolve(__dirname,
|
|
104
|
+
const templatesDir = path_1.default.resolve(__dirname, "../../templates");
|
|
94
105
|
if (!fs_1.default.existsSync(templatesDir)) {
|
|
95
106
|
return [];
|
|
96
107
|
}
|
|
97
|
-
return fs_1.default
|
|
98
|
-
.
|
|
108
|
+
return fs_1.default
|
|
109
|
+
.readdirSync(templatesDir)
|
|
110
|
+
.filter((item) => {
|
|
99
111
|
const itemPath = path_1.default.join(templatesDir, item);
|
|
100
112
|
return fs_1.default.statSync(itemPath).isDirectory();
|
|
101
113
|
})
|
|
102
|
-
.map(item => item.replace(/\.(ts|js)$/,
|
|
114
|
+
.map((item) => item.replace(/\.(ts|js)$/, ""));
|
|
103
115
|
}
|
|
104
116
|
//# sourceMappingURL=plopGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plopGenerator.js","sourceRoot":"","sources":["../../src/utils/plopGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plopGenerator.js","sourceRoot":"","sources":["../../src/utils/plopGenerator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -147,7 +147,7 @@ export function registerProjectCommand(generateCommand: Command): void {
|
|
|
147
147
|
|
|
148
148
|
try {
|
|
149
149
|
// Generate project using plop
|
|
150
|
-
await generateWithPlop(
|
|
150
|
+
const { agentNameInYaml } = await generateWithPlop(
|
|
151
151
|
selectedTemplate,
|
|
152
152
|
selectedLang,
|
|
153
153
|
folder,
|
|
@@ -170,7 +170,7 @@ export function registerProjectCommand(generateCommand: Command): void {
|
|
|
170
170
|
}
|
|
171
171
|
console.log(
|
|
172
172
|
chalk.yellow(
|
|
173
|
-
|
|
173
|
+
` nestbox agent deploy --agent ${agentNameInYaml} --instance <instance-name>`
|
|
174
174
|
)
|
|
175
175
|
);
|
|
176
176
|
} catch (error) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import fs from
|
|
3
|
-
import
|
|
4
|
-
import nodePlop from 'node-plop';
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import nodePlop from "node-plop";
|
|
5
4
|
|
|
6
5
|
export interface TemplateConfig {
|
|
7
6
|
name: string;
|
|
@@ -10,102 +9,125 @@ export interface TemplateConfig {
|
|
|
10
9
|
actions: any[];
|
|
11
10
|
}
|
|
12
11
|
|
|
12
|
+
const kebabize = (str: string) =>
|
|
13
|
+
str.replace(
|
|
14
|
+
/[A-Z]+(?![a-z])|[A-Z]/g,
|
|
15
|
+
($, ofs) => (ofs ? "-" : "") + $.toLowerCase()
|
|
16
|
+
);
|
|
17
|
+
|
|
13
18
|
/**
|
|
14
19
|
* Generate project using plop.js templates
|
|
15
20
|
*/
|
|
16
21
|
export async function generateWithPlop(
|
|
17
|
-
templateType: string,
|
|
18
|
-
language: string,
|
|
22
|
+
templateType: string,
|
|
23
|
+
language: string,
|
|
19
24
|
targetFolder: string,
|
|
20
25
|
projectName?: string,
|
|
21
26
|
agentName?: string
|
|
22
|
-
): Promise<
|
|
27
|
+
): Promise<{ agentNameInYaml: string }> {
|
|
23
28
|
// Create the target directory
|
|
24
29
|
if (!fs.existsSync(targetFolder)) {
|
|
25
30
|
fs.mkdirSync(targetFolder, { recursive: true });
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
// Set up plop programmatically
|
|
29
|
-
const plop = await nodePlop(
|
|
34
|
+
const plop = await nodePlop("", {
|
|
30
35
|
destBasePath: targetFolder,
|
|
31
|
-
force: false
|
|
36
|
+
force: false,
|
|
32
37
|
});
|
|
33
38
|
|
|
34
39
|
// Template mapping
|
|
35
40
|
const templateMapping: Record<string, string> = {
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
agent: "base",
|
|
42
|
+
chatbot: "chatbot",
|
|
38
43
|
};
|
|
39
|
-
|
|
44
|
+
|
|
40
45
|
const mappedTemplateType = templateMapping[templateType] || templateType;
|
|
41
|
-
const templatePath = path.resolve(
|
|
42
|
-
|
|
46
|
+
const templatePath = path.resolve(
|
|
47
|
+
__dirname,
|
|
48
|
+
`../../templates/${mappedTemplateType}-${language}`
|
|
49
|
+
);
|
|
50
|
+
|
|
43
51
|
if (!fs.existsSync(templatePath)) {
|
|
44
52
|
throw new Error(`Template not found: ${templatePath}`);
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
// Configure the generator
|
|
48
56
|
const generatorName = `${mappedTemplateType}-${language}`;
|
|
49
|
-
|
|
57
|
+
|
|
50
58
|
// Get the main template file path and target name
|
|
51
|
-
const mainTemplateFile =
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
const mainTemplateFile =
|
|
60
|
+
language === "ts" ? "src/index.ts.hbs" : "index.js.hbs";
|
|
61
|
+
const targetFileName = language === "ts" ? "src/index.ts" : "index.js";
|
|
62
|
+
|
|
54
63
|
plop.setGenerator(generatorName, {
|
|
55
64
|
description: `Generate a new ${mappedTemplateType} project in ${language}`,
|
|
56
65
|
prompts: [],
|
|
57
66
|
actions: [
|
|
58
67
|
// Copy all non-template files
|
|
59
68
|
{
|
|
60
|
-
type:
|
|
61
|
-
destination:
|
|
69
|
+
type: "addMany",
|
|
70
|
+
destination: ".",
|
|
62
71
|
base: templatePath,
|
|
63
72
|
templateFiles: `${templatePath}/**/*`,
|
|
64
73
|
globOptions: {
|
|
65
74
|
dot: true,
|
|
66
|
-
ignore: [
|
|
67
|
-
}
|
|
75
|
+
ignore: ["**/node_modules/**", "**/*.hbs"],
|
|
76
|
+
},
|
|
68
77
|
},
|
|
69
|
-
// Add the main template file with proper naming
|
|
70
78
|
{
|
|
71
|
-
type:
|
|
79
|
+
type: "add",
|
|
72
80
|
path: targetFileName,
|
|
73
|
-
templateFile: path.join(templatePath, mainTemplateFile)
|
|
74
|
-
}
|
|
75
|
-
|
|
81
|
+
templateFile: path.join(templatePath, mainTemplateFile),
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: "add",
|
|
85
|
+
path: "nestbox-agents.yaml",
|
|
86
|
+
templateFile: path.join(templatePath, "nestbox-agents.yaml.hbs"),
|
|
87
|
+
},
|
|
88
|
+
],
|
|
76
89
|
});
|
|
77
90
|
|
|
78
91
|
// Run the generator
|
|
79
92
|
const generator = plop.getGenerator(generatorName);
|
|
93
|
+
const agentNameFinal =
|
|
94
|
+
agentName || (templateType === "agent" ? "myAgent" : "myChatbot");
|
|
95
|
+
const agentNameInYaml = kebabize(agentNameFinal);
|
|
80
96
|
await generator.runActions({
|
|
81
97
|
name: projectName || path.basename(targetFolder),
|
|
82
|
-
agentName:
|
|
98
|
+
agentName: agentNameFinal,
|
|
99
|
+
agentNameInYaml,
|
|
83
100
|
});
|
|
84
101
|
|
|
85
102
|
// Update package.json with project name if provided
|
|
86
103
|
if (projectName) {
|
|
87
|
-
const packageJsonPath = path.join(targetFolder,
|
|
104
|
+
const packageJsonPath = path.join(targetFolder, "package.json");
|
|
88
105
|
if (fs.existsSync(packageJsonPath)) {
|
|
89
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath,
|
|
106
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
90
107
|
packageJson.name = projectName;
|
|
91
108
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
92
109
|
}
|
|
93
110
|
}
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
agentNameInYaml,
|
|
114
|
+
}
|
|
94
115
|
}
|
|
95
116
|
|
|
96
117
|
/**
|
|
97
118
|
* List available templates
|
|
98
119
|
*/
|
|
99
120
|
export function listAvailableTemplates(): string[] {
|
|
100
|
-
const templatesDir = path.resolve(__dirname,
|
|
121
|
+
const templatesDir = path.resolve(__dirname, "../../templates");
|
|
101
122
|
if (!fs.existsSync(templatesDir)) {
|
|
102
123
|
return [];
|
|
103
124
|
}
|
|
104
125
|
|
|
105
|
-
return fs
|
|
106
|
-
.
|
|
126
|
+
return fs
|
|
127
|
+
.readdirSync(templatesDir)
|
|
128
|
+
.filter((item) => {
|
|
107
129
|
const itemPath = path.join(templatesDir, item);
|
|
108
130
|
return fs.statSync(itemPath).isDirectory();
|
|
109
131
|
})
|
|
110
|
-
.map(item => item.replace(/\.(ts|js)$/,
|
|
132
|
+
.map((item) => item.replace(/\.(ts|js)$/, ""));
|
|
111
133
|
}
|
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
var { useAgent } = require('@nestbox-ai/functions');
|
|
2
|
-
var {
|
|
2
|
+
var { OpenAI } = require('openai');
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const MODEL_NAME = 'openai/gpt-oss-20b';
|
|
5
|
+
|
|
6
|
+
const client = new OpenAI({
|
|
7
|
+
baseURL: 'http://localhost:8000/v1',
|
|
8
|
+
apiKey: 'sk-xxxxxx'
|
|
9
|
+
});
|
|
5
10
|
|
|
6
11
|
var {{agentName}} = useAgent(async (context, events) => {
|
|
7
12
|
|
|
8
|
-
const response = await
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
const response = await client.chat.completions.create({
|
|
14
|
+
model: MODEL_NAME,
|
|
15
|
+
messages: [
|
|
16
|
+
{
|
|
17
|
+
role: "user",
|
|
18
|
+
content: "Why is the sky blue?"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
11
21
|
});
|
|
12
|
-
const result = response.
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
const result = response.choices[0].message.content;
|
|
23
|
+
if (!result) {
|
|
24
|
+
events.emitQueryFailed({ data: { error: 'No response from model' } });
|
|
25
|
+
} else {
|
|
26
|
+
events.emitQueryCompleted({ data: result });
|
|
27
|
+
}
|
|
15
28
|
});
|
|
16
29
|
|
|
17
30
|
module.exports = { {{agentName}} };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
agents:
|
|
2
|
+
- name: {{ agentNameInYaml }}
|
|
3
|
+
description: Our new agent {{ agentNameInYaml }} that uses the nestbox API
|
|
4
|
+
entry: {{agentName}}
|
|
5
|
+
inputSchema:
|
|
6
|
+
type: object
|
|
7
|
+
properties:
|
|
8
|
+
content:
|
|
9
|
+
type: string
|
|
10
|
+
description: The content of the input as string
|
|
11
|
+
minLength: 10
|
|
12
|
+
maxLength: 5000
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
agents:
|
|
2
|
+
- name: {{ agentNameInYaml }}
|
|
3
|
+
description: Our new agent {{ agentNameInYaml }} that uses the nestbox API
|
|
4
|
+
entry: {{agentName}}
|
|
5
|
+
inputSchema:
|
|
6
|
+
type: object
|
|
7
|
+
properties:
|
|
8
|
+
content:
|
|
9
|
+
type: string
|
|
10
|
+
description: The content of the input as string
|
|
11
|
+
minLength: 10
|
|
12
|
+
maxLength: 5000
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import { AgentContext, AgentEvents, useAgent } from "@nestbox-ai/functions";
|
|
2
|
-
import
|
|
2
|
+
import OpenAI from 'openai';
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const MODEL_NAME = 'openai/gpt-oss-20b';
|
|
5
|
+
|
|
6
|
+
const client = new OpenAI({
|
|
7
|
+
baseURL: 'http://localhost:8000/v1',
|
|
8
|
+
apiKey: 'sk-xxxxxx'
|
|
9
|
+
});
|
|
5
10
|
|
|
6
11
|
export const {{agentName}} = useAgent(
|
|
7
12
|
async (context: AgentContext, events: AgentEvents) => {
|
|
8
|
-
const response = await
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
const response = await client.chat.completions.create({
|
|
14
|
+
model: MODEL_NAME,
|
|
15
|
+
messages: [
|
|
16
|
+
{
|
|
17
|
+
role: "user",
|
|
18
|
+
content: "Why is the sky blue?"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
11
21
|
});
|
|
12
|
-
const result = response.
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
const result = response.choices[0].message.content;
|
|
23
|
+
if (!result) {
|
|
24
|
+
events.emitQueryFailed({ data: { error: 'No response from model' } });
|
|
25
|
+
} else {
|
|
26
|
+
events.emitQueryCompleted({ data: result });
|
|
27
|
+
}
|
|
15
28
|
}
|
|
16
29
|
);
|
package/sample-agents.yaml
DELETED
|
File without changes
|