@meetploy/agent-sdk 0.0.0
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-sdk.spec.d.ts +1 -0
- package/dist/agent-sdk.spec.js +314 -0
- package/dist/agent-sdk.spec.js.map +1 -0
- package/dist/commands.d.ts +2 -0
- package/dist/commands.js +83 -0
- package/dist/commands.js.map +1 -0
- package/dist/create-agent.d.ts +2 -0
- package/dist/create-agent.js +70 -0
- package/dist/create-agent.js.map +1 -0
- package/dist/define-tool.d.ts +7 -0
- package/dist/define-tool.js +4 -0
- package/dist/define-tool.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/state-manager.d.ts +3 -0
- package/dist/state-manager.js +24 -0
- package/dist/state-manager.js.map +1 -0
- package/dist/tools.d.ts +16 -0
- package/dist/tools.js +328 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +184 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/workflow.d.ts +3 -0
- package/dist/workflow.js +171 -0
- package/dist/workflow.js.map +1 -0
- package/dist/workspace.d.ts +6 -0
- package/dist/workspace.js +40 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +33 -0
package/dist/workflow.js
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { createStateManager } from "./state-manager.js";
|
|
2
|
+
import { buildOpenAITools, executeTool } from "./tools.js";
|
|
3
|
+
import { buildMemoryBlock, createDefaultWorkspace, loadWorkspace, saveWorkspace, } from "./workspace.js";
|
|
4
|
+
async function resolveSystemPrompt(config, userId) {
|
|
5
|
+
if (typeof config.systemPrompt === "function") {
|
|
6
|
+
return await config.systemPrompt(userId);
|
|
7
|
+
}
|
|
8
|
+
return config.systemPrompt;
|
|
9
|
+
}
|
|
10
|
+
export function createAgentWorkflow(config) {
|
|
11
|
+
return async function agentRun(ctx) {
|
|
12
|
+
const { input, env, step } = ctx;
|
|
13
|
+
const { userId, chatId, platform, text } = input;
|
|
14
|
+
const state = createStateManager(env.STATE);
|
|
15
|
+
const maxSteps = config.maxSteps ?? 30;
|
|
16
|
+
const model = config.model ?? "auto";
|
|
17
|
+
const workspace = await step.run("load_workspace", async () => {
|
|
18
|
+
const ws = (await loadWorkspace(state, userId)) ??
|
|
19
|
+
createDefaultWorkspace(userId, chatId, platform);
|
|
20
|
+
ws.chatId = chatId;
|
|
21
|
+
ws.platform = platform;
|
|
22
|
+
ws.messages.push({ role: "user", content: text });
|
|
23
|
+
if (ws.messages.length > 50) {
|
|
24
|
+
ws.messages = ws.messages.slice(-50);
|
|
25
|
+
}
|
|
26
|
+
await saveWorkspace(state, ws);
|
|
27
|
+
return ws;
|
|
28
|
+
});
|
|
29
|
+
const systemPrompt = await step.run("build_prompt", async () => {
|
|
30
|
+
const base = await resolveSystemPrompt(config, userId);
|
|
31
|
+
const memoryBlock = buildMemoryBlock(workspace);
|
|
32
|
+
return base + memoryBlock;
|
|
33
|
+
});
|
|
34
|
+
let currentWorkspace = workspace;
|
|
35
|
+
function buildInternalCtx() {
|
|
36
|
+
return {
|
|
37
|
+
workspace: currentWorkspace,
|
|
38
|
+
state,
|
|
39
|
+
messenger: createNoopMessenger(),
|
|
40
|
+
hooks: config.hooks,
|
|
41
|
+
env,
|
|
42
|
+
customTools: config.tools ?? [],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function buildHookContext() {
|
|
46
|
+
const internalCtx = buildInternalCtx();
|
|
47
|
+
return {
|
|
48
|
+
userId,
|
|
49
|
+
chatId: currentWorkspace.chatId,
|
|
50
|
+
env,
|
|
51
|
+
state,
|
|
52
|
+
execute: async (name, args) => {
|
|
53
|
+
const result = await executeTool(name, args, internalCtx);
|
|
54
|
+
return result.output;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
let stepCount = 0;
|
|
59
|
+
while (stepCount < maxSteps) {
|
|
60
|
+
stepCount++;
|
|
61
|
+
const features = config.features ?? {};
|
|
62
|
+
const tools = buildOpenAITools(config, features, currentWorkspace.mcpServers);
|
|
63
|
+
const aiResponse = await step.run(`ai_call_${String(stepCount)}`, async () => {
|
|
64
|
+
const messages = [
|
|
65
|
+
{ role: "system", content: systemPrompt },
|
|
66
|
+
...currentWorkspace.messages,
|
|
67
|
+
];
|
|
68
|
+
const response = await fetch(`${env.AI_URL}/chat/completions`, {
|
|
69
|
+
method: "POST",
|
|
70
|
+
headers: {
|
|
71
|
+
"Content-Type": "application/json",
|
|
72
|
+
Authorization: `Bearer ${env.AI_TOKEN}`,
|
|
73
|
+
},
|
|
74
|
+
body: JSON.stringify({
|
|
75
|
+
model,
|
|
76
|
+
messages,
|
|
77
|
+
tools: tools.length > 0 ? tools : undefined,
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
const errorText = await response.text();
|
|
82
|
+
throw new Error(`AI call failed: ${String(response.status)} ${errorText}`);
|
|
83
|
+
}
|
|
84
|
+
return (await response.json());
|
|
85
|
+
});
|
|
86
|
+
const choice = aiResponse.choices[0];
|
|
87
|
+
if (!choice) {
|
|
88
|
+
throw new Error("No response from AI");
|
|
89
|
+
}
|
|
90
|
+
const assistantMessage = {
|
|
91
|
+
role: "assistant",
|
|
92
|
+
content: choice.message.content,
|
|
93
|
+
tool_calls: choice.message.tool_calls,
|
|
94
|
+
};
|
|
95
|
+
currentWorkspace.messages.push(assistantMessage);
|
|
96
|
+
if (!choice.message.tool_calls ||
|
|
97
|
+
choice.message.tool_calls.length === 0) {
|
|
98
|
+
await step.run(`save_final_${String(stepCount)}`, async () => {
|
|
99
|
+
currentWorkspace.activeRunId = null;
|
|
100
|
+
await saveWorkspace(state, currentWorkspace);
|
|
101
|
+
});
|
|
102
|
+
if (choice.message.content) {
|
|
103
|
+
await step.run(`send_response_${String(stepCount)}`, async () => {
|
|
104
|
+
await state.set(`agent:response:${userId}:${currentWorkspace.chatId}`, choice.message.content ?? "");
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (config.hooks?.onRunComplete && choice.message.content) {
|
|
108
|
+
await config.hooks.onRunComplete(buildHookContext(), choice.message.content);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
const toolCalls = choice.message.tool_calls;
|
|
113
|
+
const toolResults = await step.run(`tools_${String(stepCount)}`, async () => {
|
|
114
|
+
const results = [];
|
|
115
|
+
for (const toolCall of toolCalls) {
|
|
116
|
+
let parsedArgs;
|
|
117
|
+
try {
|
|
118
|
+
parsedArgs = JSON.parse(toolCall.function.arguments);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
parsedArgs = {};
|
|
122
|
+
}
|
|
123
|
+
const { output, workspace: updatedWorkspace } = await executeTool(toolCall.function.name, parsedArgs, buildInternalCtx());
|
|
124
|
+
currentWorkspace = updatedWorkspace;
|
|
125
|
+
results.push({
|
|
126
|
+
role: "tool",
|
|
127
|
+
content: output,
|
|
128
|
+
tool_call_id: toolCall.id,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return results;
|
|
132
|
+
});
|
|
133
|
+
for (const result of toolResults) {
|
|
134
|
+
currentWorkspace.messages.push(result);
|
|
135
|
+
}
|
|
136
|
+
await step.run(`save_step_${String(stepCount)}`, async () => {
|
|
137
|
+
await saveWorkspace(state, currentWorkspace);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
await step.run("check_queue", async () => {
|
|
141
|
+
const ws = await loadWorkspace(state, userId);
|
|
142
|
+
if (!ws) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (ws.queue.length > 0) {
|
|
146
|
+
const queued = ws.queue[0];
|
|
147
|
+
ws.queue.splice(0, 1);
|
|
148
|
+
ws.activeRunId = `run_${String(Date.now())}`;
|
|
149
|
+
await saveWorkspace(state, ws);
|
|
150
|
+
await env.AGENT_WORKFLOW.trigger({
|
|
151
|
+
userId,
|
|
152
|
+
chatId: ws.chatId,
|
|
153
|
+
platform: ws.platform,
|
|
154
|
+
text: queued.text,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
ws.activeRunId = null;
|
|
159
|
+
await saveWorkspace(state, ws);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function createNoopMessenger() {
|
|
165
|
+
return {
|
|
166
|
+
sendMessage: () => Promise.resolve(),
|
|
167
|
+
sendDocument: () => Promise.resolve(),
|
|
168
|
+
sendTypingIndicator: () => Promise.resolve(),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { StateManager, Workspace } from "./types.js";
|
|
2
|
+
export declare function createDefaultWorkspace(userId: string, chatId: string, platform: string): Workspace;
|
|
3
|
+
export declare function loadWorkspace(state: StateManager, userId: string): Promise<Workspace | null>;
|
|
4
|
+
export declare function saveWorkspace(state: StateManager, workspace: Workspace): Promise<void>;
|
|
5
|
+
export declare function deleteWorkspace(state: StateManager, userId: string): Promise<void>;
|
|
6
|
+
export declare function buildMemoryBlock(workspace: Workspace): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const WORKSPACE_PREFIX = "agent:workspace:";
|
|
2
|
+
function workspaceKey(userId) {
|
|
3
|
+
return `${WORKSPACE_PREFIX}${userId}`;
|
|
4
|
+
}
|
|
5
|
+
export function createDefaultWorkspace(userId, chatId, platform) {
|
|
6
|
+
return {
|
|
7
|
+
userId,
|
|
8
|
+
chatId,
|
|
9
|
+
platform,
|
|
10
|
+
messages: [],
|
|
11
|
+
memory: {},
|
|
12
|
+
mcpServers: [],
|
|
13
|
+
debugMode: false,
|
|
14
|
+
activeRunId: null,
|
|
15
|
+
queue: [],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function loadWorkspace(state, userId) {
|
|
19
|
+
return await state.getJSON(workspaceKey(userId));
|
|
20
|
+
}
|
|
21
|
+
export async function saveWorkspace(state, workspace) {
|
|
22
|
+
await state.setJSON(workspaceKey(workspace.userId), workspace);
|
|
23
|
+
}
|
|
24
|
+
export async function deleteWorkspace(state, userId) {
|
|
25
|
+
await state.delete(workspaceKey(userId));
|
|
26
|
+
}
|
|
27
|
+
export function buildMemoryBlock(workspace) {
|
|
28
|
+
const entries = Object.entries(workspace.memory);
|
|
29
|
+
if (entries.length === 0) {
|
|
30
|
+
return "";
|
|
31
|
+
}
|
|
32
|
+
const lines = entries.map(([key, entry]) => {
|
|
33
|
+
if (entry.secret) {
|
|
34
|
+
return `- ${key}: [SECRET]`;
|
|
35
|
+
}
|
|
36
|
+
return `- ${key}: ${entry.value}`;
|
|
37
|
+
});
|
|
38
|
+
return `\n\nUser memories:\n${lines.join("\n")}`;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,SAAS,YAAY,CAAC,MAAc;IACnC,OAAO,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,MAAc,EACd,MAAc,EACd,QAAgB;IAEhB,OAAO;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,EAAE;KACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,KAAmB,EACnB,MAAc;IAEd,OAAO,MAAM,KAAK,CAAC,OAAO,CAAY,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,KAAmB,EACnB,SAAoB;IAEpB,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,KAAmB,EACnB,MAAc;IAEd,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC;AAKD,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,KAAK,GAAG,YAAY,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meetploy/agent-sdk",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/polarlightsllc/ploy.git",
|
|
8
|
+
"directory": "packages/agent-sdk"
|
|
9
|
+
},
|
|
10
|
+
"license": "SEE LICENSE IN ../../LICENSE",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"module": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc && resolve-tspaths",
|
|
25
|
+
"dev": "tsc-watch --onSuccess 'resolve-tspaths'",
|
|
26
|
+
"format": "eslint --fix . && prettier --write .",
|
|
27
|
+
"lint": "eslint . && prettier --check ."
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@meetploy/cli": "workspace:*",
|
|
31
|
+
"@meetploy/types": "workspace:*"
|
|
32
|
+
}
|
|
33
|
+
}
|