@saltcorn/agents 0.6.11 → 0.6.12

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/common.js CHANGED
@@ -95,6 +95,24 @@ const get_initial_interactions = async (config, user, triggering_row) => {
95
95
  return interacts;
96
96
  };
97
97
 
98
+ const getSystemPrompt = async (config, user, triggering_row, formbody) => {
99
+ let sysPrompts = [
100
+ interpolate(config.sys_prompt, triggering_row || {}, user, "System prompt"),
101
+ ];
102
+
103
+ const skills = get_skill_instances(config);
104
+ for (const skill of skills) {
105
+ const sysPr = await skill.systemPrompt?.({
106
+ ...(formbody || {}),
107
+ user,
108
+ triggering_row,
109
+ });
110
+ if (sysPr) sysPrompts.push(sysPr);
111
+ }
112
+
113
+ return sysPrompts.join("\n\n");
114
+ };
115
+
98
116
  const getCompletionArguments = async (
99
117
  config,
100
118
  user,
@@ -326,10 +344,9 @@ const process_interaction = async (
326
344
  let stop = false,
327
345
  myHasResult = false;
328
346
  if (stream && viewname) {
329
- let content = span(
330
- { class: "badge text-bg-secondary me-1" },
331
- tool.skill.skill_label || tool.skill.constructor.skill_name,
332
- );
347
+ let content =
348
+ (tool.skill.skill_label || tool.skill.constructor.skill_name) +
349
+ " ";
333
350
  const view = View.findOne({ name: viewname });
334
351
  const pageLoadTag = req.body.page_load_tag;
335
352
  view.emitRealTimeEvent(
@@ -406,6 +423,12 @@ const process_interaction = async (
406
423
  if (tool.tool.postProcess && !stop) {
407
424
  const chat = run.context.interactions;
408
425
  let generateUsed = false;
426
+ const systemPrompt = await getSystemPrompt(
427
+ config,
428
+ req.user,
429
+ triggering_row,
430
+ req.body,
431
+ );
409
432
  const postprocres = await tool.tool.postProcess({
410
433
  tool_call,
411
434
  result,
@@ -416,6 +439,7 @@ const process_interaction = async (
416
439
  return await sysState.functions.llm_generate.run(prompt, {
417
440
  chat,
418
441
  appendToChat: true,
442
+ systemPrompt,
419
443
  ...opts,
420
444
  });
421
445
  },
@@ -426,7 +450,7 @@ const process_interaction = async (
426
450
  view.emitRealTimeEvent(
427
451
  `STREAM_CHUNK?page_load_tag=${pageLoadTag}`,
428
452
  {
429
- content: span({ class: "badge text-bg-secondary me-1" }, s),
453
+ content: s + " ",
430
454
  },
431
455
  );
432
456
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saltcorn/agents",
3
- "version": "0.6.11",
3
+ "version": "0.6.12",
4
4
  "description": "AI agents for Saltcorn",
5
5
  "main": "index.js",
6
6
  "dependencies": {
@@ -146,7 +146,10 @@ The code you write can use await at the top level, and should return
146
146
 
147
147
  Now generate the JavaScript code required by the user.`,
148
148
  );
149
- getState().log(6, "Generated code: \n" + str);
149
+ getState().log(
150
+ 6,
151
+ "Generated code:\n--BEGIN CODE--\n" + str + "\n--END CODE--\n",
152
+ );
150
153
  const js_code = str.includes("```javascript")
151
154
  ? str.split("```javascript")[1].split("```")[0]
152
155
  : str;