@peers-app/peers-device 0.16.1 → 0.16.3
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/agent-functional.d.ts +37 -0
- package/dist/agent-functional.js +177 -0
- package/dist/agent-functional.js.map +1 -0
- package/dist/agent-functional.test.d.ts +1 -0
- package/dist/agent-functional.test.js +458 -0
- package/dist/agent-functional.test.js.map +1 -0
- package/dist/default-assistant-runner.d.ts +21 -0
- package/dist/default-assistant-runner.js +256 -0
- package/dist/default-assistant-runner.js.map +1 -0
- package/dist/default-assistant-runner.test.d.ts +1 -0
- package/dist/default-assistant-runner.test.js +199 -0
- package/dist/default-assistant-runner.test.js.map +1 -0
- package/dist/embeddings-client.d.ts +25 -0
- package/dist/embeddings-client.js +96 -0
- package/dist/embeddings-client.js.map +1 -0
- package/dist/embeddings-client.test.d.ts +1 -0
- package/dist/embeddings-client.test.js +124 -0
- package/dist/embeddings-client.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/similar-tools.d.ts +10 -0
- package/dist/similar-tools.js +25 -0
- package/dist/similar-tools.js.map +1 -0
- package/dist/similar-tools.test.d.ts +1 -0
- package/dist/similar-tools.test.js +101 -0
- package/dist/similar-tools.test.js.map +1 -0
- package/dist/tool-loader.d.ts +14 -18
- package/dist/tool-loader.js +34 -90
- package/dist/tool-loader.js.map +1 -1
- package/dist/tool-search.d.ts +1 -0
- package/dist/tool-search.js +43 -0
- package/dist/tool-search.js.map +1 -0
- package/dist/tracked-data-source.test.js +1 -1
- package/dist/tracked-data-source.test.js.map +1 -1
- package/dist/workflow-processor.d.ts +1 -15
- package/dist/workflow-processor.js +14 -14
- package/dist/workflow-processor.js.map +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultAssistantRunnerTool = void 0;
|
|
4
|
+
exports.defaultAssistantRunner = defaultAssistantRunner;
|
|
5
|
+
exports.buildChatHistory = buildChatHistory;
|
|
6
|
+
exports.formatMessagePrefix = formatMessagePrefix;
|
|
7
|
+
const peers_sdk_1 = require("@peers-app/peers-sdk");
|
|
8
|
+
const agent_functional_1 = require("./agent-functional");
|
|
9
|
+
const system_tools_1 = require("./system-tools");
|
|
10
|
+
const tool_loader_1 = require("./tool-loader");
|
|
11
|
+
const DEFAULT_SERVICES_URL = "https://peers-services.azurewebsites.net";
|
|
12
|
+
function calendarFormat(date) {
|
|
13
|
+
const d = typeof date === "string" ? new Date(date) : date;
|
|
14
|
+
const now = new Date();
|
|
15
|
+
const diffDays = Math.floor((now.getTime() - d.getTime()) / 86_400_000);
|
|
16
|
+
const time = d.toLocaleTimeString(undefined, { hour: "numeric", minute: "2-digit" });
|
|
17
|
+
if (diffDays === 0)
|
|
18
|
+
return `Today at ${time}`;
|
|
19
|
+
if (diffDays === 1)
|
|
20
|
+
return `Yesterday at ${time}`;
|
|
21
|
+
if (diffDays < 7) {
|
|
22
|
+
const day = d.toLocaleDateString(undefined, { weekday: "long" });
|
|
23
|
+
return `Last ${day} at ${time}`;
|
|
24
|
+
}
|
|
25
|
+
return d.toLocaleDateString();
|
|
26
|
+
}
|
|
27
|
+
const inputSchema = peers_sdk_1.z.object({
|
|
28
|
+
workflowRunId: peers_sdk_1.z.string(),
|
|
29
|
+
assistantId: peers_sdk_1.z.string(),
|
|
30
|
+
messageContent: peers_sdk_1.z
|
|
31
|
+
.string()
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("The content that the assistant will be processing if different from the message that the workflow run is based on."),
|
|
34
|
+
});
|
|
35
|
+
async function defaultAssistantRunner(_args, context) {
|
|
36
|
+
const { assistantId, workflowRunId, messageContent } = _args;
|
|
37
|
+
const workflowRun = await (0, peers_sdk_1.WorkflowRuns)().get(workflowRunId);
|
|
38
|
+
if (!workflowRun) {
|
|
39
|
+
throw new Error(`Workflow run with id ${workflowRunId} not found`);
|
|
40
|
+
}
|
|
41
|
+
const args = await context.getAssistantRunnerArgs(assistantId);
|
|
42
|
+
const { assistant, message } = args;
|
|
43
|
+
const chatHistory = await buildChatHistory(args);
|
|
44
|
+
const toolConfig = assistant.assistantRunnerConfig || {};
|
|
45
|
+
const promptPrefix = toolConfig.promptPrefix || "";
|
|
46
|
+
let messagePrefix = toolConfig.messagePrefix || "";
|
|
47
|
+
const messageSuffix = toolConfig.messageSuffix || "";
|
|
48
|
+
if (promptPrefix) {
|
|
49
|
+
chatHistory.unshift({ role: "system", content: promptPrefix });
|
|
50
|
+
}
|
|
51
|
+
if (messageContent) {
|
|
52
|
+
messagePrefix += `\n\nThe work you're doing is related to the last message received which is:\n\n${message.message}`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
messagePrefix += `\n\n${await formatMessagePrefix(message, assistant)} (now) has sent you a new message.`;
|
|
56
|
+
}
|
|
57
|
+
messagePrefix = messagePrefix.trimStart();
|
|
58
|
+
chatHistory.push({ role: "system", content: messagePrefix });
|
|
59
|
+
let input = messageContent || message.message;
|
|
60
|
+
if (messageSuffix) {
|
|
61
|
+
input += `\n${messageSuffix}`;
|
|
62
|
+
input = input.trim();
|
|
63
|
+
}
|
|
64
|
+
const vars = workflowRun.vars || {};
|
|
65
|
+
const allVars = {
|
|
66
|
+
...vars,
|
|
67
|
+
workflowRunId,
|
|
68
|
+
messageId: message.messageId,
|
|
69
|
+
assistantId,
|
|
70
|
+
};
|
|
71
|
+
chatHistory.push({
|
|
72
|
+
role: "system",
|
|
73
|
+
content: `The variables that are available to you are:\n\n${JSON.stringify(allVars, null, 2)}`,
|
|
74
|
+
});
|
|
75
|
+
const tools = await loadAgentTools(args, context, input);
|
|
76
|
+
const token = await context.getVariable("PEERS_SERVICES_TOKEN");
|
|
77
|
+
const response = await (0, agent_functional_1.invokeAgent)(input, chatHistory, tools, {
|
|
78
|
+
provider: toolConfig.provider || "openai",
|
|
79
|
+
model: toolConfig.model || "gpt-5.4-mini",
|
|
80
|
+
temperature: toolConfig.temperature != null ? toolConfig.temperature : undefined,
|
|
81
|
+
servicesUrl: DEFAULT_SERVICES_URL,
|
|
82
|
+
token,
|
|
83
|
+
});
|
|
84
|
+
return response;
|
|
85
|
+
}
|
|
86
|
+
async function buildChatHistory(args) {
|
|
87
|
+
const { assistant, message } = args;
|
|
88
|
+
const threadHistory = args.threadHistory.filter((m) => m.createdAt?.getTime() < message.createdAt?.getTime());
|
|
89
|
+
let threadHistoryStr = "";
|
|
90
|
+
if (threadHistory.length === 0) {
|
|
91
|
+
threadHistoryStr = "";
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
threadHistoryStr = "The chat history:\n";
|
|
95
|
+
}
|
|
96
|
+
for (const message of threadHistory) {
|
|
97
|
+
const messagePrefix = await formatMessagePrefix(message, assistant);
|
|
98
|
+
threadHistoryStr += `\n${messagePrefix}\n${message.message}\n\n`;
|
|
99
|
+
}
|
|
100
|
+
let logsStr = "";
|
|
101
|
+
if (args.messageLogs.length > 1) {
|
|
102
|
+
const logs = args.messageLogs.slice(0, -1);
|
|
103
|
+
logsStr = "The logs from the work done so far:\n";
|
|
104
|
+
for (const log of logs) {
|
|
105
|
+
logsStr += `${[
|
|
106
|
+
log.logText,
|
|
107
|
+
log.instruction &&
|
|
108
|
+
`Instruction that was being worked on: ${JSON.stringify(log.instruction, null, 2)}`,
|
|
109
|
+
log.toolId && `Tool: ${log.toolId}`,
|
|
110
|
+
log.toolArgs && `Tool Args: ${JSON.stringify(log.toolArgs, null, 2)}`,
|
|
111
|
+
log.isError && `The result is an Error!`,
|
|
112
|
+
log.resultObject && `Result Object: ${JSON.stringify(log.resultObject, null, 2)}`,
|
|
113
|
+
log.result && `Result: ${log.result}`,
|
|
114
|
+
]
|
|
115
|
+
// biome-ignore lint/complexity/useOptionalChain: type guard needs explicit check
|
|
116
|
+
.filter((s) => Boolean(s && s.trim()))
|
|
117
|
+
.map((s) => s.trim())
|
|
118
|
+
.join("\n")}\n\n`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const chatEntries = [];
|
|
122
|
+
if (threadHistoryStr) {
|
|
123
|
+
chatEntries.push({
|
|
124
|
+
role: "system",
|
|
125
|
+
content: threadHistoryStr,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (logsStr) {
|
|
129
|
+
chatEntries.push({
|
|
130
|
+
role: "system",
|
|
131
|
+
content: logsStr,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return chatEntries;
|
|
135
|
+
}
|
|
136
|
+
async function formatMessagePrefix(message, assistant) {
|
|
137
|
+
let messagePrefix = "";
|
|
138
|
+
let mention = "";
|
|
139
|
+
if (message.assistantId) {
|
|
140
|
+
const assistant = await (0, peers_sdk_1.Assistants)().get(message.assistantId, { useCache: true });
|
|
141
|
+
if (assistant) {
|
|
142
|
+
mention = (0, peers_sdk_1.formatMention)({
|
|
143
|
+
kind: "assistant",
|
|
144
|
+
name: assistant.name,
|
|
145
|
+
id: assistant.assistantId,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
const user = await (0, peers_sdk_1.Users)().get(message.userId, { useCache: true });
|
|
151
|
+
if (user) {
|
|
152
|
+
mention = (0, peers_sdk_1.formatMention)({ kind: "user", name: user.name, id: user.userId });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (message.assistantId === assistant.assistantId) {
|
|
156
|
+
messagePrefix = `${mention} (you) ${calendarFormat(message.createdAt)}:`;
|
|
157
|
+
}
|
|
158
|
+
else if (message.assistantId) {
|
|
159
|
+
messagePrefix = `${mention} (another assistant) ${calendarFormat(message.createdAt)}:`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
messagePrefix = `${mention} (user) ${calendarFormat(message.createdAt)}:`;
|
|
163
|
+
}
|
|
164
|
+
return messagePrefix;
|
|
165
|
+
}
|
|
166
|
+
async function loadAgentTools(args, context, input) {
|
|
167
|
+
const toolInstances = await context.getAvailableTools(args, input);
|
|
168
|
+
const agentTools = await Promise.all(toolInstances.map((toolInstance) => (0, tool_loader_1.toAgentTool)(toolInstance.tool, context)));
|
|
169
|
+
return agentTools;
|
|
170
|
+
}
|
|
171
|
+
exports.defaultAssistantRunnerTool = {
|
|
172
|
+
toolId: peers_sdk_1.defaultAssistantRunnerToolId,
|
|
173
|
+
name: "default_assistant_runner",
|
|
174
|
+
usageDescription: "This is the default tool used for running Assistants().",
|
|
175
|
+
detailedDescription: "",
|
|
176
|
+
configSchema: {
|
|
177
|
+
type: peers_sdk_1.IOSchemaType.complex,
|
|
178
|
+
fields: [
|
|
179
|
+
{
|
|
180
|
+
name: "provider",
|
|
181
|
+
description: "The inference provider (openai, anthropic, google, groq)",
|
|
182
|
+
type: peers_sdk_1.FieldType.string,
|
|
183
|
+
optional: true,
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: "model",
|
|
187
|
+
description: "The model name to use for inference (e.g. gpt-5.4-mini, claude-haiku-4-5)",
|
|
188
|
+
type: peers_sdk_1.FieldType.string,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "temperature",
|
|
192
|
+
description: "The temperature the LLM will use when generating responses. Value should be between 0 (very predictable) and 2 (very creative)",
|
|
193
|
+
type: peers_sdk_1.FieldType.number,
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: "promptPrefix",
|
|
197
|
+
description: "Prompt part that will come before anything else",
|
|
198
|
+
type: peers_sdk_1.FieldType.string,
|
|
199
|
+
optional: true,
|
|
200
|
+
subType: "markdown",
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "messagePrefix",
|
|
204
|
+
description: "Prompt part that will be after the chat history and before the current message",
|
|
205
|
+
type: peers_sdk_1.FieldType.string,
|
|
206
|
+
optional: true,
|
|
207
|
+
subType: "markdown",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: "messageSuffix",
|
|
211
|
+
description: "Prompt part that will be appended to the current message",
|
|
212
|
+
type: peers_sdk_1.FieldType.string,
|
|
213
|
+
optional: true,
|
|
214
|
+
subType: "markdown",
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
inputSchema: {
|
|
219
|
+
type: peers_sdk_1.IOSchemaType.complex,
|
|
220
|
+
fields: [
|
|
221
|
+
{
|
|
222
|
+
name: "workflowRunId",
|
|
223
|
+
description: "The id of the workflow run that this assistant run is associated with",
|
|
224
|
+
type: peers_sdk_1.FieldType.string,
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "assistantId",
|
|
228
|
+
description: "The id of the assistant that is being run",
|
|
229
|
+
type: peers_sdk_1.FieldType.string,
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: "messageContent",
|
|
233
|
+
description: "The content that the assistant will be processing. Only pass this in if the content is different from the message that the workflow run is based on.",
|
|
234
|
+
type: peers_sdk_1.FieldType.string,
|
|
235
|
+
optional: true,
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
},
|
|
239
|
+
outputSchema: {
|
|
240
|
+
type: peers_sdk_1.IOSchemaType.simple,
|
|
241
|
+
fields: [
|
|
242
|
+
{
|
|
243
|
+
name: "response",
|
|
244
|
+
description: "The response from the agent",
|
|
245
|
+
type: peers_sdk_1.FieldType.string,
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
},
|
|
249
|
+
code: "",
|
|
250
|
+
isAssistantRunner: true,
|
|
251
|
+
};
|
|
252
|
+
(0, system_tools_1.registerSystemTool)(exports.defaultAssistantRunnerTool, {
|
|
253
|
+
inputSchema,
|
|
254
|
+
toolFn: defaultAssistantRunner,
|
|
255
|
+
});
|
|
256
|
+
//# sourceMappingURL=default-assistant-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-assistant-runner.js","sourceRoot":"","sources":["../src/default-assistant-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const default_assistant_runner_1 = require("./default-assistant-runner");
|
|
4
|
+
// Mock the SDK table accessors
|
|
5
|
+
jest.mock("@peers-app/peers-sdk", () => {
|
|
6
|
+
const actual = jest.requireActual("@peers-app/peers-sdk");
|
|
7
|
+
return {
|
|
8
|
+
...actual,
|
|
9
|
+
Assistants: () => ({
|
|
10
|
+
get: jest.fn(async (id) => ({
|
|
11
|
+
assistantId: id,
|
|
12
|
+
name: `Assistant-${id.slice(-5)}`,
|
|
13
|
+
})),
|
|
14
|
+
}),
|
|
15
|
+
Users: () => ({
|
|
16
|
+
get: jest.fn(async (id) => ({
|
|
17
|
+
userId: id,
|
|
18
|
+
name: `User-${id.slice(-5)}`,
|
|
19
|
+
})),
|
|
20
|
+
}),
|
|
21
|
+
WorkflowRuns: () => ({
|
|
22
|
+
get: jest.fn(),
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
// Mock system-tools to prevent side-effect registration
|
|
27
|
+
jest.mock("./system-tools", () => ({
|
|
28
|
+
registerSystemTool: jest.fn(),
|
|
29
|
+
}));
|
|
30
|
+
// Mock agent-functional since we're testing the runner logic, not the agent
|
|
31
|
+
jest.mock("./agent-functional", () => ({
|
|
32
|
+
invokeAgent: jest.fn(async () => "mocked response"),
|
|
33
|
+
}));
|
|
34
|
+
// Mock tool-loader
|
|
35
|
+
jest.mock("./tool-loader", () => ({
|
|
36
|
+
toAgentTool: jest.fn(),
|
|
37
|
+
}));
|
|
38
|
+
// ── calendarFormat (tested via formatMessagePrefix) ──────────────────────────
|
|
39
|
+
describe("formatMessagePrefix", () => {
|
|
40
|
+
const baseAssistant = {
|
|
41
|
+
assistantId: "00test_assistant_id_12345",
|
|
42
|
+
name: "TestBot",
|
|
43
|
+
};
|
|
44
|
+
function makeMessage(overrides = {}) {
|
|
45
|
+
return {
|
|
46
|
+
messageId: "00test_message_id_1234567",
|
|
47
|
+
message: "Hello",
|
|
48
|
+
createdAt: new Date(),
|
|
49
|
+
userId: "00test_user_id_123456789",
|
|
50
|
+
assistantId: undefined,
|
|
51
|
+
...overrides,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
it("should format a user message with (user) label", async () => {
|
|
55
|
+
const msg = makeMessage({ assistantId: undefined });
|
|
56
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
57
|
+
expect(result).toContain("(user)");
|
|
58
|
+
expect(result).toContain("Today at");
|
|
59
|
+
expect(result).toContain("@user:");
|
|
60
|
+
});
|
|
61
|
+
it("should format own assistant message with (you) label", async () => {
|
|
62
|
+
const msg = makeMessage({ assistantId: "00test_assistant_id_12345" });
|
|
63
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
64
|
+
expect(result).toContain("(you)");
|
|
65
|
+
expect(result).toContain("Today at");
|
|
66
|
+
expect(result).toContain("@assistant:");
|
|
67
|
+
});
|
|
68
|
+
it("should format another assistant's message with (another assistant) label", async () => {
|
|
69
|
+
const msg = makeMessage({ assistantId: "00other_assistant_id_9999" });
|
|
70
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
71
|
+
expect(result).toContain("(another assistant)");
|
|
72
|
+
expect(result).toContain("@assistant:");
|
|
73
|
+
});
|
|
74
|
+
it("should format yesterday's date correctly", async () => {
|
|
75
|
+
const yesterday = new Date(Date.now() - 86_400_000);
|
|
76
|
+
const msg = makeMessage({ createdAt: yesterday });
|
|
77
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
78
|
+
expect(result).toContain("Yesterday at");
|
|
79
|
+
});
|
|
80
|
+
it("should format a date within the last week with day name", async () => {
|
|
81
|
+
const threeDaysAgo = new Date(Date.now() - 3 * 86_400_000);
|
|
82
|
+
const msg = makeMessage({ createdAt: threeDaysAgo });
|
|
83
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
84
|
+
expect(result).toContain("Last ");
|
|
85
|
+
expect(result).toMatch(/Last \w+day at/);
|
|
86
|
+
});
|
|
87
|
+
it("should format an old date with just the date string", async () => {
|
|
88
|
+
const twoWeeksAgo = new Date(Date.now() - 14 * 86_400_000);
|
|
89
|
+
const msg = makeMessage({ createdAt: twoWeeksAgo });
|
|
90
|
+
const result = await (0, default_assistant_runner_1.formatMessagePrefix)(msg, baseAssistant);
|
|
91
|
+
expect(result).not.toContain("Today");
|
|
92
|
+
expect(result).not.toContain("Yesterday");
|
|
93
|
+
expect(result).not.toContain("Last ");
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
// ── buildChatHistory ─────────────────────────────────────────────────────────
|
|
97
|
+
describe("buildChatHistory", () => {
|
|
98
|
+
const baseAssistant = {
|
|
99
|
+
assistantId: "00test_assistant_id_12345",
|
|
100
|
+
name: "TestBot",
|
|
101
|
+
};
|
|
102
|
+
const now = new Date();
|
|
103
|
+
function makeArgs(overrides = {}) {
|
|
104
|
+
return {
|
|
105
|
+
assistant: baseAssistant,
|
|
106
|
+
message: {
|
|
107
|
+
messageId: "msg_current",
|
|
108
|
+
message: "Current message",
|
|
109
|
+
createdAt: now,
|
|
110
|
+
userId: "user_1",
|
|
111
|
+
},
|
|
112
|
+
threadHistory: [],
|
|
113
|
+
messageLogs: [],
|
|
114
|
+
...overrides,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
it("should return empty array when no history and no logs", async () => {
|
|
118
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs());
|
|
119
|
+
expect(result).toEqual([]);
|
|
120
|
+
});
|
|
121
|
+
it("should include thread history as a system message", async () => {
|
|
122
|
+
const history = [
|
|
123
|
+
{
|
|
124
|
+
messageId: "msg_1",
|
|
125
|
+
message: "Hi there",
|
|
126
|
+
createdAt: new Date(now.getTime() - 60_000),
|
|
127
|
+
userId: "user_1",
|
|
128
|
+
},
|
|
129
|
+
];
|
|
130
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ threadHistory: history }));
|
|
131
|
+
expect(result).toHaveLength(1);
|
|
132
|
+
expect(result[0].role).toBe("system");
|
|
133
|
+
expect(result[0].content).toContain("The chat history:");
|
|
134
|
+
expect(result[0].content).toContain("Hi there");
|
|
135
|
+
});
|
|
136
|
+
it("should exclude messages that are newer than the current message", async () => {
|
|
137
|
+
const history = [
|
|
138
|
+
{
|
|
139
|
+
messageId: "msg_old",
|
|
140
|
+
message: "Old message",
|
|
141
|
+
createdAt: new Date(now.getTime() - 60_000),
|
|
142
|
+
userId: "user_1",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
messageId: "msg_future",
|
|
146
|
+
message: "Future message",
|
|
147
|
+
createdAt: new Date(now.getTime() + 60_000),
|
|
148
|
+
userId: "user_1",
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ threadHistory: history }));
|
|
152
|
+
expect(result).toHaveLength(1);
|
|
153
|
+
expect(result[0].content).toContain("Old message");
|
|
154
|
+
expect(result[0].content).not.toContain("Future message");
|
|
155
|
+
});
|
|
156
|
+
it("should include workflow logs when there are multiple log entries", async () => {
|
|
157
|
+
const logs = [
|
|
158
|
+
{ logText: "Did something", toolId: "tool_1", result: "Success" },
|
|
159
|
+
{ logText: "Current step" },
|
|
160
|
+
];
|
|
161
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ messageLogs: logs }));
|
|
162
|
+
expect(result).toHaveLength(1);
|
|
163
|
+
expect(result[0].role).toBe("system");
|
|
164
|
+
expect(result[0].content).toContain("The logs from the work done so far:");
|
|
165
|
+
expect(result[0].content).toContain("Did something");
|
|
166
|
+
expect(result[0].content).toContain("Tool: tool_1");
|
|
167
|
+
expect(result[0].content).toContain("Result: Success");
|
|
168
|
+
});
|
|
169
|
+
it("should not include logs when only one log entry exists (the current one)", async () => {
|
|
170
|
+
const logs = [{ logText: "Current step" }];
|
|
171
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ messageLogs: logs }));
|
|
172
|
+
expect(result).toEqual([]);
|
|
173
|
+
});
|
|
174
|
+
it("should include both history and logs when both exist", async () => {
|
|
175
|
+
const history = [
|
|
176
|
+
{
|
|
177
|
+
messageId: "msg_1",
|
|
178
|
+
message: "Previous message",
|
|
179
|
+
createdAt: new Date(now.getTime() - 60_000),
|
|
180
|
+
userId: "user_1",
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
const logs = [{ logText: "Step 1", result: "Done" }, { logText: "Current" }];
|
|
184
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ threadHistory: history, messageLogs: logs }));
|
|
185
|
+
expect(result).toHaveLength(2);
|
|
186
|
+
expect(result[0].content).toContain("The chat history:");
|
|
187
|
+
expect(result[1].content).toContain("The logs from the work done so far:");
|
|
188
|
+
});
|
|
189
|
+
it("should include error flag in logs when present", async () => {
|
|
190
|
+
const logs = [
|
|
191
|
+
{ logText: "Failed step", isError: true, result: "Error: something broke" },
|
|
192
|
+
{ logText: "Current" },
|
|
193
|
+
];
|
|
194
|
+
const result = await (0, default_assistant_runner_1.buildChatHistory)(makeArgs({ messageLogs: logs }));
|
|
195
|
+
expect(result[0].content).toContain("The result is an Error!");
|
|
196
|
+
expect(result[0].content).toContain("Error: something broke");
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
//# sourceMappingURL=default-assistant-runner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-assistant-runner.test.js","sourceRoot":"","sources":["../src/default-assistant-runner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type IEmbedding, type IWorkflowRunContext } from "@peers-app/peers-sdk";
|
|
2
|
+
export interface IGetEmbeddingsOpts {
|
|
3
|
+
provider?: string;
|
|
4
|
+
model?: string;
|
|
5
|
+
dimensions?: number;
|
|
6
|
+
/** Override the default services URL. */
|
|
7
|
+
servicesUrl?: string;
|
|
8
|
+
/** Pre-existing embedding ID to upsert into the cache. */
|
|
9
|
+
id?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Retrieve (or generate) an embedding for the given text.
|
|
13
|
+
*
|
|
14
|
+
* Results are cached locally in the `Embeddings` table keyed by
|
|
15
|
+
* `hash(text + model)`. On a cache miss the peers-services
|
|
16
|
+
* `/api/v1/embeddings/embed` endpoint is called.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getEmbeddings(context: IWorkflowRunContext, text: string, opts?: IGetEmbeddingsOpts): Promise<IEmbedding>;
|
|
19
|
+
/**
|
|
20
|
+
* Calculates the cosine similarity between two vectors.
|
|
21
|
+
* @param vec1 - The first vector.
|
|
22
|
+
* @param vec2 - The second vector.
|
|
23
|
+
* @returns The cosine similarity between vec1 and vec2.
|
|
24
|
+
*/
|
|
25
|
+
export declare function cosineSimilarity(vec1: number[], vec2: number[]): number;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEmbeddings = getEmbeddings;
|
|
4
|
+
exports.cosineSimilarity = cosineSimilarity;
|
|
5
|
+
const peers_sdk_1 = require("@peers-app/peers-sdk");
|
|
6
|
+
const DEFAULT_SERVICES_URL = "https://peers-services.azurewebsites.net";
|
|
7
|
+
const DEFAULT_PROVIDER = "openai";
|
|
8
|
+
const DEFAULT_MODEL = "text-embedding-3-large";
|
|
9
|
+
const inflightPromises = {};
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve (or generate) an embedding for the given text.
|
|
12
|
+
*
|
|
13
|
+
* Results are cached locally in the `Embeddings` table keyed by
|
|
14
|
+
* `hash(text + model)`. On a cache miss the peers-services
|
|
15
|
+
* `/api/v1/embeddings/embed` endpoint is called.
|
|
16
|
+
*/
|
|
17
|
+
async function getEmbeddings(context, text, opts = {}) {
|
|
18
|
+
const { provider = DEFAULT_PROVIDER, model = DEFAULT_MODEL, dimensions, servicesUrl = DEFAULT_SERVICES_URL, id, } = opts;
|
|
19
|
+
const embeddingType = dimensions ? `${model}:${dimensions}` : model;
|
|
20
|
+
const textHash = (0, peers_sdk_1.hashValue)(text + embeddingType);
|
|
21
|
+
if (!inflightPromises[textHash]) {
|
|
22
|
+
inflightPromises[textHash] = (async () => {
|
|
23
|
+
try {
|
|
24
|
+
const cached = await (0, peers_sdk_1.Embeddings)().findOne({ textHash, embeddingType });
|
|
25
|
+
if (cached)
|
|
26
|
+
return cached;
|
|
27
|
+
const token = await context.getVariable("PEERS_SERVICES_TOKEN");
|
|
28
|
+
if (!token) {
|
|
29
|
+
throw new Error("PEERS_SERVICES_TOKEN not set. Register with Peers Services to use embeddings.");
|
|
30
|
+
}
|
|
31
|
+
const body = { provider, model, input: text };
|
|
32
|
+
if (dimensions != null)
|
|
33
|
+
body.dimensions = dimensions;
|
|
34
|
+
const res = await fetch(`${servicesUrl}/api/v1/embeddings/embed`, {
|
|
35
|
+
method: "POST",
|
|
36
|
+
headers: {
|
|
37
|
+
"Content-Type": "application/json",
|
|
38
|
+
Authorization: `Bearer ${token}`,
|
|
39
|
+
},
|
|
40
|
+
body: JSON.stringify(body),
|
|
41
|
+
});
|
|
42
|
+
if (!res.ok) {
|
|
43
|
+
const errBody = await res.text().catch(() => "");
|
|
44
|
+
if (res.status === 402) {
|
|
45
|
+
throw new Error("Insufficient Peers Services balance. Please add funds to continue.");
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`Embeddings API error (${res.status}): ${errBody || res.statusText}`);
|
|
48
|
+
}
|
|
49
|
+
const json = await res.json();
|
|
50
|
+
const embedding = json.data?.[0]?.embedding;
|
|
51
|
+
if (!embedding) {
|
|
52
|
+
throw new Error("No embedding returned from Peers Services");
|
|
53
|
+
}
|
|
54
|
+
const saved = await (0, peers_sdk_1.Embeddings)().save({
|
|
55
|
+
embeddingId: id ?? (0, peers_sdk_1.newid)(),
|
|
56
|
+
textHash,
|
|
57
|
+
embedding,
|
|
58
|
+
embeddingType,
|
|
59
|
+
metadata: {},
|
|
60
|
+
});
|
|
61
|
+
return saved;
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
delete inflightPromises[textHash];
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
})();
|
|
68
|
+
}
|
|
69
|
+
return inflightPromises[textHash];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Calculates the cosine similarity between two vectors.
|
|
73
|
+
* @param vec1 - The first vector.
|
|
74
|
+
* @param vec2 - The second vector.
|
|
75
|
+
* @returns The cosine similarity between vec1 and vec2.
|
|
76
|
+
*/
|
|
77
|
+
function cosineSimilarity(vec1, vec2) {
|
|
78
|
+
if (vec1.length !== vec2.length) {
|
|
79
|
+
throw new Error("Vectors must have the same length");
|
|
80
|
+
}
|
|
81
|
+
let dotProduct = 0;
|
|
82
|
+
let magnitude1 = 0;
|
|
83
|
+
let magnitude2 = 0;
|
|
84
|
+
for (let i = 0; i < vec1.length; i++) {
|
|
85
|
+
dotProduct += vec1[i] * vec2[i];
|
|
86
|
+
magnitude1 += vec1[i] * vec1[i];
|
|
87
|
+
magnitude2 += vec2[i] * vec2[i];
|
|
88
|
+
}
|
|
89
|
+
magnitude1 = Math.sqrt(magnitude1);
|
|
90
|
+
magnitude2 = Math.sqrt(magnitude2);
|
|
91
|
+
if (magnitude1 === 0 || magnitude2 === 0) {
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
return dotProduct / (magnitude1 * magnitude2);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=embeddings-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings-client.js","sourceRoot":"","sources":["../src/embeddings-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|