@nestbox-ai/cli 1.0.39 → 1.0.41

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.
@@ -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(" nestbox agent deploy --agent <agent-name> --instance <instance-name>"));
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<void>;
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
- 'agent': 'base',
37
- 'chatbot': 'chatbot'
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 === 'ts' ? 'src/index.ts.hbs' : 'index.js.hbs';
48
- const targetFileName = language === 'ts' ? 'src/index.ts' : 'index.js';
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: 'addMany',
56
- destination: '.',
56
+ type: "addMany",
57
+ destination: ".",
57
58
  base: templatePath,
58
59
  templateFiles: `${templatePath}/**/*`,
59
60
  globOptions: {
60
61
  dot: true,
61
- ignore: ['**/node_modules/**', '**/*.hbs']
62
- }
62
+ ignore: ["**/node_modules/**", "**/*.hbs"],
63
+ },
63
64
  },
64
- // Add the main template file with proper naming
65
65
  {
66
- type: 'add',
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: agentName || (templateType === 'agent' ? 'myAgent' : 'myChatbot')
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, 'package.json');
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, 'utf8'));
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, '../../templates');
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.readdirSync(templatesDir)
98
- .filter(item => {
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":"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"}
1
+ {"version":3,"file":"plopGenerator.js","sourceRoot":"","sources":["../../src/utils/plopGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAoBA,4CA8FC;AAKD,wDAaC;AApID,gDAAwB;AACxB,4CAAoB;AACpB,0DAAiC;AASjC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAC/B,GAAG,CAAC,OAAO,CACT,wBAAwB,EACxB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAC/C,CAAC;AAEJ;;GAEG;AACH,SAAsB,gBAAgB,CACpC,YAAoB,EACpB,QAAgB,EAChB,YAAoB,EACpB,WAAoB,EACpB,SAAkB;;QAElB,8BAA8B;QAC9B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,EAAE,EAAE;YAC9B,YAAY,EAAE,YAAY;YAC1B,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAA2B;YAC9C,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;QACzE,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAC/B,SAAS,EACT,mBAAmB,kBAAkB,IAAI,QAAQ,EAAE,CACpD,CAAC;QAEF,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,0BAA0B;QAC1B,MAAM,aAAa,GAAG,GAAG,kBAAkB,IAAI,QAAQ,EAAE,CAAC;QAE1D,kDAAkD;QAClD,MAAM,gBAAgB,GACpB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC;QAC1D,MAAM,cAAc,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QAEvE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YAC/B,WAAW,EAAE,kBAAkB,kBAAkB,eAAe,QAAQ,EAAE;YAC1E,OAAO,EAAE,EAAE;YACX,OAAO,EAAE;gBACP,8BAA8B;gBAC9B;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,GAAG;oBAChB,IAAI,EAAE,YAAY;oBAClB,aAAa,EAAE,GAAG,YAAY,OAAO;oBACrC,WAAW,EAAE;wBACX,GAAG,EAAE,IAAI;wBACT,MAAM,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC;qBAC3C;iBACF;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,cAAc;oBACpB,YAAY,EAAE,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC;iBACxD;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,qBAAqB;oBAC3B,YAAY,EAAE,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,yBAAyB,CAAC;iBACjE;aACF;SACF,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,cAAc,GAClB,SAAS,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,UAAU,CAAC;YACzB,IAAI,EAAE,WAAW,IAAI,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAChD,SAAS,EAAE,cAAc;YACzB,eAAe;SAChB,CAAC,CAAC;QAEH,oDAAoD;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC;gBAC/B,YAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,OAAO;YACL,eAAe;SAChB,CAAA;IACH,CAAC;CAAA;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAChE,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,YAAE;SACN,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestbox-ai/cli",
3
- "version": "1.0.39",
3
+ "version": "1.0.41",
4
4
  "description": "The cli tools that helps developers to build agents",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -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
- " nestbox agent deploy --agent <agent-name> --instance <instance-name>"
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 'fs';
3
- import chalk from "chalk";
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<void> {
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
- 'agent': 'base',
37
- 'chatbot': 'chatbot'
41
+ agent: "base",
42
+ chatbot: "chatbot",
38
43
  };
39
-
44
+
40
45
  const mappedTemplateType = templateMapping[templateType] || templateType;
41
- const templatePath = path.resolve(__dirname, `../../templates/${mappedTemplateType}-${language}`);
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 = language === 'ts' ? 'src/index.ts.hbs' : 'index.js.hbs';
52
- const targetFileName = language === 'ts' ? 'src/index.ts' : 'index.js';
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: 'addMany',
61
- destination: '.',
69
+ type: "addMany",
70
+ destination: ".",
62
71
  base: templatePath,
63
72
  templateFiles: `${templatePath}/**/*`,
64
73
  globOptions: {
65
74
  dot: true,
66
- ignore: ['**/node_modules/**', '**/*.hbs']
67
- }
75
+ ignore: ["**/node_modules/**", "**/*.hbs"],
76
+ },
68
77
  },
69
- // Add the main template file with proper naming
70
78
  {
71
- type: 'add',
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: agentName || (templateType === 'agent' ? 'myAgent' : 'myChatbot')
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, 'package.json');
104
+ const packageJsonPath = path.join(targetFolder, "package.json");
88
105
  if (fs.existsSync(packageJsonPath)) {
89
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
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, '../../templates');
121
+ const templatesDir = path.resolve(__dirname, "../../templates");
101
122
  if (!fs.existsSync(templatesDir)) {
102
123
  return [];
103
124
  }
104
125
 
105
- return fs.readdirSync(templatesDir)
106
- .filter(item => {
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 { Ollama } = require('ollama');
2
+ var { OpenAI } = require('openai');
3
3
 
4
- const ollama = new Ollama()
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 ollama.generate({
9
- prompt: 'Why is the sky blue?',
10
- model: 'gemma3:27b',
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.response;
13
-
14
- events.emitQueryCompleted({ data: result });
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
@@ -9,7 +9,7 @@
9
9
  "license": "ISC",
10
10
  "description": "",
11
11
  "dependencies": {
12
- "@nestbox-ai/functions": "^1.0.0",
13
- "ollama": "^0.5.14"
12
+ "@nestbox-ai/functions": "^2.0.0",
13
+ "openai": "^6.5.0"
14
14
  }
15
15
  }
@@ -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,9 @@
1
+ {
2
+ "agents": {
3
+ "predeploy": [
4
+ "rm -rf dist",
5
+ "npm run lint",
6
+ "npm run build"
7
+ ]
8
+ }
9
+ }
@@ -12,8 +12,8 @@
12
12
  "license": "ISC",
13
13
  "description": "",
14
14
  "dependencies": {
15
- "@nestbox-ai/functions": "^1.0.16",
16
- "ollama": "^0.5.15"
15
+ "@nestbox-ai/functions": "^2.0.0",
16
+ "openai": "^6.5.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@typescript-eslint/eslint-plugin": "^8.31.0",
@@ -1,16 +1,29 @@
1
1
  import { AgentContext, AgentEvents, useAgent } from "@nestbox-ai/functions";
2
- import { Ollama } from "ollama";
2
+ import OpenAI from 'openai';
3
3
 
4
- const ollama = new Ollama();
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 ollama.generate({
9
- prompt: "Why is the sky blue?",
10
- model: "gemma3:27b",
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.response;
13
-
14
- events.emitQueryCompleted({ data: result });
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
  );
@@ -9,7 +9,7 @@
9
9
  "license": "ISC",
10
10
  "description": "",
11
11
  "dependencies": {
12
- "@nestbox-ai/functions": "^1.0.17",
12
+ "@nestbox-ai/functions": "^2.0.0",
13
13
  "ollama": "^0.5.14"
14
14
  }
15
15
  }
@@ -12,7 +12,7 @@
12
12
  "license": "ISC",
13
13
  "description": "",
14
14
  "dependencies": {
15
- "@nestbox-ai/functions": "^1.0.16",
15
+ "@nestbox-ai/functions": "^2.0.0",
16
16
  "ollama": "^0.5.15"
17
17
  },
18
18
  "devDependencies": {
File without changes