@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 +29 -5
- package/package.json +1 -1
- package/skills/GenerateAndRunJsCode.js +4 -1
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 =
|
|
330
|
-
|
|
331
|
-
|
|
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:
|
|
453
|
+
content: s + " ",
|
|
430
454
|
},
|
|
431
455
|
);
|
|
432
456
|
},
|
package/package.json
CHANGED
|
@@ -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(
|
|
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;
|