@better-agent/core 0.1.0-canary.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/README.md +3 -0
- package/dist/agent/constants.mjs +6 -0
- package/dist/agent/constants.mjs.map +1 -0
- package/dist/agent/define-agent.d.mts +29 -0
- package/dist/agent/define-agent.d.mts.map +1 -0
- package/dist/agent/define-agent.mjs +27 -0
- package/dist/agent/define-agent.mjs.map +1 -0
- package/dist/agent/index.d.mts +2 -0
- package/dist/agent/types.d.mts +216 -0
- package/dist/agent/types.d.mts.map +1 -0
- package/dist/agent/validation.mjs +64 -0
- package/dist/agent/validation.mjs.map +1 -0
- package/dist/api.d.mts +8 -0
- package/dist/api.d.mts.map +1 -0
- package/dist/api.mjs +63 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app/config.mjs +43 -0
- package/dist/app/config.mjs.map +1 -0
- package/dist/app/create-app.d.mts +36 -0
- package/dist/app/create-app.d.mts.map +1 -0
- package/dist/app/create-app.mjs +132 -0
- package/dist/app/create-app.mjs.map +1 -0
- package/dist/app/registry.mjs +43 -0
- package/dist/app/registry.mjs.map +1 -0
- package/dist/app/types.d.mts +142 -0
- package/dist/app/types.d.mts.map +1 -0
- package/dist/events/constants.d.mts +49 -0
- package/dist/events/constants.d.mts.map +1 -0
- package/dist/events/constants.mjs +46 -0
- package/dist/events/constants.mjs.map +1 -0
- package/dist/events/index.d.mts +4 -0
- package/dist/events/index.mjs +3 -0
- package/dist/events/types.d.mts +289 -0
- package/dist/events/types.d.mts.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.mjs +14 -0
- package/dist/internal/id.mjs +21 -0
- package/dist/internal/id.mjs.map +1 -0
- package/dist/internal/types.d.mts +11 -0
- package/dist/internal/types.d.mts.map +1 -0
- package/dist/mcp/error/mcp-client-error.d.mts +36 -0
- package/dist/mcp/error/mcp-client-error.d.mts.map +1 -0
- package/dist/mcp/error/mcp-client-error.mjs +33 -0
- package/dist/mcp/error/mcp-client-error.mjs.map +1 -0
- package/dist/mcp/index.d.mts +8 -0
- package/dist/mcp/index.mjs +9 -0
- package/dist/mcp/tool/json-rpc-message.d.mts +50 -0
- package/dist/mcp/tool/json-rpc-message.d.mts.map +1 -0
- package/dist/mcp/tool/json-rpc-message.mjs +84 -0
- package/dist/mcp/tool/json-rpc-message.mjs.map +1 -0
- package/dist/mcp/tool/mcp-client.d.mts +71 -0
- package/dist/mcp/tool/mcp-client.d.mts.map +1 -0
- package/dist/mcp/tool/mcp-client.mjs +304 -0
- package/dist/mcp/tool/mcp-client.mjs.map +1 -0
- package/dist/mcp/tool/mcp-http-transport.d.mts +62 -0
- package/dist/mcp/tool/mcp-http-transport.d.mts.map +1 -0
- package/dist/mcp/tool/mcp-http-transport.mjs +307 -0
- package/dist/mcp/tool/mcp-http-transport.mjs.map +1 -0
- package/dist/mcp/tool/mcp-tools.d.mts +20 -0
- package/dist/mcp/tool/mcp-tools.d.mts.map +1 -0
- package/dist/mcp/tool/mcp-tools.mjs +73 -0
- package/dist/mcp/tool/mcp-tools.mjs.map +1 -0
- package/dist/mcp/tool/mcp-transport.d.mts +81 -0
- package/dist/mcp/tool/mcp-transport.d.mts.map +1 -0
- package/dist/mcp/tool/mcp-transport.mjs +11 -0
- package/dist/mcp/tool/mcp-transport.mjs.map +1 -0
- package/dist/mcp/tool/types.d.mts +230 -0
- package/dist/mcp/tool/types.d.mts.map +1 -0
- package/dist/mcp/tool/types.mjs +19 -0
- package/dist/mcp/tool/types.mjs.map +1 -0
- package/dist/persistence/index.d.mts +3 -0
- package/dist/persistence/index.mjs +3 -0
- package/dist/persistence/memory.d.mts +21 -0
- package/dist/persistence/memory.d.mts.map +1 -0
- package/dist/persistence/memory.mjs +107 -0
- package/dist/persistence/memory.mjs.map +1 -0
- package/dist/persistence/types.d.mts +124 -0
- package/dist/persistence/types.d.mts.map +1 -0
- package/dist/plugins/index.d.mts +2 -0
- package/dist/plugins/runtime.d.mts +17 -0
- package/dist/plugins/runtime.d.mts.map +1 -0
- package/dist/plugins/runtime.mjs +456 -0
- package/dist/plugins/runtime.mjs.map +1 -0
- package/dist/plugins/types.d.mts +344 -0
- package/dist/plugins/types.d.mts.map +1 -0
- package/dist/providers/index.d.mts +9 -0
- package/dist/providers/index.mjs +0 -0
- package/dist/providers/types/capabilities.d.mts +153 -0
- package/dist/providers/types/capabilities.d.mts.map +1 -0
- package/dist/providers/types/content.d.mts +125 -0
- package/dist/providers/types/content.d.mts.map +1 -0
- package/dist/providers/types/conversation.d.mts +32 -0
- package/dist/providers/types/conversation.d.mts.map +1 -0
- package/dist/providers/types/index.d.mts +8 -0
- package/dist/providers/types/input.d.mts +74 -0
- package/dist/providers/types/input.d.mts.map +1 -0
- package/dist/providers/types/model.d.mts +68 -0
- package/dist/providers/types/model.d.mts.map +1 -0
- package/dist/providers/types/output.d.mts +29 -0
- package/dist/providers/types/output.d.mts.map +1 -0
- package/dist/providers/types/response.d.mts +35 -0
- package/dist/providers/types/response.d.mts.map +1 -0
- package/dist/providers/types/tool-calls.d.mts +51 -0
- package/dist/providers/types/tool-calls.d.mts.map +1 -0
- package/dist/run/agent-loop.mjs +231 -0
- package/dist/run/agent-loop.mjs.map +1 -0
- package/dist/run/event-queue.mjs +67 -0
- package/dist/run/event-queue.mjs.map +1 -0
- package/dist/run/execute-tool-calls.mjs +550 -0
- package/dist/run/execute-tool-calls.mjs.map +1 -0
- package/dist/run/execution.mjs +93 -0
- package/dist/run/execution.mjs.map +1 -0
- package/dist/run/helpers.mjs +466 -0
- package/dist/run/helpers.mjs.map +1 -0
- package/dist/run/hooks.mjs +124 -0
- package/dist/run/hooks.mjs.map +1 -0
- package/dist/run/index.d.mts +4 -0
- package/dist/run/messages.d.mts +8 -0
- package/dist/run/messages.d.mts.map +1 -0
- package/dist/run/messages.mjs +83 -0
- package/dist/run/messages.mjs.map +1 -0
- package/dist/run/model-strategy.mjs +105 -0
- package/dist/run/model-strategy.mjs.map +1 -0
- package/dist/run/output-errors.d.mts +75 -0
- package/dist/run/output-errors.d.mts.map +1 -0
- package/dist/run/pending-tools.d.mts +1 -0
- package/dist/run/pending-tools.mjs +185 -0
- package/dist/run/pending-tools.mjs.map +1 -0
- package/dist/run/registry.mjs +22 -0
- package/dist/run/registry.mjs.map +1 -0
- package/dist/run/runtime.d.mts +19 -0
- package/dist/run/runtime.d.mts.map +1 -0
- package/dist/run/runtime.mjs +491 -0
- package/dist/run/runtime.mjs.map +1 -0
- package/dist/run/stop-conditions.mjs +41 -0
- package/dist/run/stop-conditions.mjs.map +1 -0
- package/dist/run/types.d.mts +348 -0
- package/dist/run/types.d.mts.map +1 -0
- package/dist/schema/index.d.mts +2 -0
- package/dist/schema/resolve-json-schema.d.mts +12 -0
- package/dist/schema/resolve-json-schema.d.mts.map +1 -0
- package/dist/schema/resolve-json-schema.mjs +167 -0
- package/dist/schema/resolve-json-schema.mjs.map +1 -0
- package/dist/schema/types.d.mts +27 -0
- package/dist/schema/types.d.mts.map +1 -0
- package/dist/server/create-server.d.mts +21 -0
- package/dist/server/create-server.d.mts.map +1 -0
- package/dist/server/create-server.mjs +107 -0
- package/dist/server/create-server.mjs.map +1 -0
- package/dist/server/http.mjs +182 -0
- package/dist/server/http.mjs.map +1 -0
- package/dist/server/index.d.mts +3 -0
- package/dist/server/index.mjs +3 -0
- package/dist/server/routes.mjs +399 -0
- package/dist/server/routes.mjs.map +1 -0
- package/dist/server/types.d.mts +31 -0
- package/dist/server/types.d.mts.map +1 -0
- package/dist/tools/constants.d.mts +12 -0
- package/dist/tools/constants.d.mts.map +1 -0
- package/dist/tools/constants.mjs +13 -0
- package/dist/tools/constants.mjs.map +1 -0
- package/dist/tools/define-tool.d.mts +25 -0
- package/dist/tools/define-tool.d.mts.map +1 -0
- package/dist/tools/define-tool.mjs +76 -0
- package/dist/tools/define-tool.mjs.map +1 -0
- package/dist/tools/index.d.mts +5 -0
- package/dist/tools/lazy-tools.d.mts +49 -0
- package/dist/tools/lazy-tools.d.mts.map +1 -0
- package/dist/tools/lazy-tools.mjs +87 -0
- package/dist/tools/lazy-tools.mjs.map +1 -0
- package/dist/tools/resolve-tools.d.mts +12 -0
- package/dist/tools/resolve-tools.d.mts.map +1 -0
- package/dist/tools/resolve-tools.mjs +86 -0
- package/dist/tools/resolve-tools.mjs.map +1 -0
- package/dist/tools/types.d.mts +318 -0
- package/dist/tools/types.d.mts.map +1 -0
- package/dist/tools/validation.mjs +23 -0
- package/dist/tools/validation.mjs.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { validateAgentDefinition } from "../agent/validation.mjs";
|
|
2
|
+
import { createPluginRuntime } from "../plugins/runtime.mjs";
|
|
3
|
+
import { createRuntime } from "../run/runtime.mjs";
|
|
4
|
+
import { createServer } from "../server/create-server.mjs";
|
|
5
|
+
import { validateConfig } from "./config.mjs";
|
|
6
|
+
import { buildRegistryFromConfig } from "./registry.mjs";
|
|
7
|
+
import { BetterAgentError } from "@better-agent/shared/errors";
|
|
8
|
+
|
|
9
|
+
//#region src/app/create-app.ts
|
|
10
|
+
/**
|
|
11
|
+
* Creates a Better Agent app.
|
|
12
|
+
*
|
|
13
|
+
* Register agents, shared tools, plugins, and optional advanced settings.
|
|
14
|
+
*
|
|
15
|
+
* @param config App configuration.
|
|
16
|
+
* @returns An app with `run`, `stream`, and `handler`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const app = betterAgent({
|
|
21
|
+
* agents: [supportAgent],
|
|
22
|
+
* secret: "dev-secret",
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* const result = await app.run("support", {
|
|
26
|
+
* input: "Hello!",
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
function betterAgent(config) {
|
|
31
|
+
const normalizedConfig = validateConfig(config);
|
|
32
|
+
const advanced = normalizedConfig.advanced;
|
|
33
|
+
for (const agent of normalizedConfig.agents) validateAgentDefinition(agent);
|
|
34
|
+
const registry = buildRegistryFromConfig({
|
|
35
|
+
agents: normalizedConfig.agents,
|
|
36
|
+
tools: normalizedConfig.tools,
|
|
37
|
+
plugins: normalizedConfig.plugins
|
|
38
|
+
});
|
|
39
|
+
const pluginRuntime = normalizedConfig.plugins ? createPluginRuntime(normalizedConfig.plugins) : null;
|
|
40
|
+
let cachedRuntime = null;
|
|
41
|
+
let cachedServerRuntime = null;
|
|
42
|
+
let cachedServer = null;
|
|
43
|
+
const getRuntime = () => {
|
|
44
|
+
if (!cachedRuntime) cachedRuntime = createRuntime({
|
|
45
|
+
agents: normalizedConfig.agents,
|
|
46
|
+
pluginRuntime,
|
|
47
|
+
stream: normalizedConfig.persistence?.stream,
|
|
48
|
+
conversations: normalizedConfig.persistence?.conversations,
|
|
49
|
+
runtimeState: normalizedConfig.persistence?.runtimeState,
|
|
50
|
+
advanced
|
|
51
|
+
});
|
|
52
|
+
return cachedRuntime;
|
|
53
|
+
};
|
|
54
|
+
const getServerRuntime = () => {
|
|
55
|
+
if (!cachedServerRuntime) cachedServerRuntime = createRuntime({
|
|
56
|
+
agents: normalizedConfig.agents,
|
|
57
|
+
pluginRuntime,
|
|
58
|
+
stream: normalizedConfig.persistence?.stream,
|
|
59
|
+
conversations: normalizedConfig.persistence?.conversations,
|
|
60
|
+
runtimeState: normalizedConfig.persistence?.runtimeState,
|
|
61
|
+
streamLifecycle: advanced?.onRequestDisconnect === "continue" ? "detached" : void 0,
|
|
62
|
+
advanced
|
|
63
|
+
});
|
|
64
|
+
return cachedServerRuntime;
|
|
65
|
+
};
|
|
66
|
+
const normalizeBasePath = (baseURL) => {
|
|
67
|
+
try {
|
|
68
|
+
return new URL(baseURL).pathname;
|
|
69
|
+
} catch {
|
|
70
|
+
return new URL(baseURL, "http://better-agent.local").pathname;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const getServer = () => {
|
|
74
|
+
if (!cachedServer) cachedServer = createServer({
|
|
75
|
+
runtime: getServerRuntime(),
|
|
76
|
+
pluginRuntime,
|
|
77
|
+
secret: normalizedConfig.secret,
|
|
78
|
+
basePath: normalizedConfig.baseURL !== void 0 ? normalizeBasePath(normalizedConfig.baseURL) : void 0,
|
|
79
|
+
advanced
|
|
80
|
+
});
|
|
81
|
+
return cachedServer;
|
|
82
|
+
};
|
|
83
|
+
const getRegisteredAgent = (agentName, traceAt) => {
|
|
84
|
+
const agent = normalizedConfig.agents.find((candidate) => candidate.name === agentName);
|
|
85
|
+
if (!agent) throw BetterAgentError.fromCode("NOT_FOUND", `Agent '${agentName}' not found in app registry.`, {
|
|
86
|
+
context: {
|
|
87
|
+
agentName,
|
|
88
|
+
availableAgents: Array.from(registry.agents.keys())
|
|
89
|
+
},
|
|
90
|
+
trace: [{ at: traceAt }]
|
|
91
|
+
});
|
|
92
|
+
return agent;
|
|
93
|
+
};
|
|
94
|
+
return {
|
|
95
|
+
config: normalizedConfig,
|
|
96
|
+
run: (agentName, input) => {
|
|
97
|
+
getRegisteredAgent(agentName, "core.app.betterAgent.run");
|
|
98
|
+
return getRuntime().run(agentName, input);
|
|
99
|
+
},
|
|
100
|
+
stream: (agentName, input) => {
|
|
101
|
+
getRegisteredAgent(agentName, "core.app.betterAgent.stream");
|
|
102
|
+
return getRuntime().stream(agentName, input);
|
|
103
|
+
},
|
|
104
|
+
resumeStream: async (params) => {
|
|
105
|
+
return getRuntime().resumeStream(params);
|
|
106
|
+
},
|
|
107
|
+
resumeConversation: async (agentName, params) => {
|
|
108
|
+
getRegisteredAgent(agentName, "core.app.betterAgent.resumeConversation");
|
|
109
|
+
return getRuntime().resumeConversation(agentName, params);
|
|
110
|
+
},
|
|
111
|
+
abortRun: async (runId) => {
|
|
112
|
+
return getRuntime().abortRun(runId);
|
|
113
|
+
},
|
|
114
|
+
loadConversation: async (agentName, conversationId) => {
|
|
115
|
+
getRegisteredAgent(agentName, "core.app.betterAgent.loadConversation");
|
|
116
|
+
return getRuntime().loadConversation(agentName, conversationId);
|
|
117
|
+
},
|
|
118
|
+
submitToolResult: async (params) => {
|
|
119
|
+
return getRuntime().submitToolResult(params);
|
|
120
|
+
},
|
|
121
|
+
submitToolApproval: async (params) => {
|
|
122
|
+
return getRuntime().submitToolApproval(params);
|
|
123
|
+
},
|
|
124
|
+
handler: (request) => {
|
|
125
|
+
return getServer().handle(request);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
//#endregion
|
|
131
|
+
export { betterAgent };
|
|
132
|
+
//# sourceMappingURL=create-app.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-app.mjs","names":[],"sources":["../../src/app/create-app.ts"],"sourcesContent":["import { BetterAgentError } from \"@better-agent/shared/errors\";\nimport type { AnyAgentDefinition } from \"../agent\";\nimport { validateAgentDefinition } from \"../agent/validation\";\nimport type { Plugin } from \"../plugins\";\nimport { createPluginRuntime } from \"../plugins\";\nimport { type BetterAgentRuntime, createRuntime } from \"../run\";\nimport { createServer } from \"../server\";\nimport type { AgentToolDefinition } from \"../tools\";\nimport { validateConfig } from \"./config\";\nimport { buildRegistryFromConfig } from \"./registry\";\nimport type { AgentByName, BetterAgentApp, BetterAgentConfig, BetterAgentHandler } from \"./types\";\n\n/**\n * Creates a Better Agent app.\n *\n * Register agents, shared tools, plugins, and optional advanced settings.\n *\n * @param config App configuration.\n * @returns An app with `run`, `stream`, and `handler`.\n *\n * @example\n * ```ts\n * const app = betterAgent({\n * agents: [supportAgent],\n * secret: \"dev-secret\",\n * });\n *\n * const result = await app.run(\"support\", {\n * input: \"Hello!\",\n * });\n * ```\n */\nexport function betterAgent<\n const TAgents extends readonly AnyAgentDefinition[],\n const TPlugins extends readonly Plugin[] = readonly Plugin[],\n const TTools extends readonly AgentToolDefinition[] = readonly AgentToolDefinition[],\n>(\n config: BetterAgentConfig<TAgents, TPlugins, TTools>,\n): BetterAgentApp<TAgents, TPlugins> & {\n handler: BetterAgentHandler;\n readonly __appTypes?: {\n readonly agents: TAgents;\n readonly tools: TTools;\n };\n} {\n // Validate once up front so runtime and server setup can assume a stable config shape.\n const normalizedConfig = validateConfig(config);\n const advanced = normalizedConfig.advanced;\n for (const agent of normalizedConfig.agents) {\n validateAgentDefinition(agent);\n }\n\n // Build a registry used for duplicate checks and agent lookup errors.\n const registry = buildRegistryFromConfig({\n agents: normalizedConfig.agents,\n tools: normalizedConfig.tools,\n plugins: normalizedConfig.plugins,\n });\n\n // Plugin runtime is shared by both the direct runtime and the HTTP server runtime.\n const pluginRuntime = normalizedConfig.plugins\n ? createPluginRuntime(normalizedConfig.plugins)\n : null;\n\n let cachedRuntime: BetterAgentRuntime<TAgents> | null = null;\n let cachedServerRuntime: BetterAgentRuntime<TAgents> | null = null;\n let cachedServer: ReturnType<typeof createServer> | null = null;\n\n const getRuntime = () => {\n if (!cachedRuntime) {\n const runtimeOptions = {\n agents: normalizedConfig.agents,\n pluginRuntime,\n stream: normalizedConfig.persistence?.stream,\n conversations: normalizedConfig.persistence?.conversations,\n runtimeState: normalizedConfig.persistence?.runtimeState,\n advanced,\n };\n\n cachedRuntime = createRuntime(runtimeOptions);\n }\n return cachedRuntime;\n };\n\n const getServerRuntime = () => {\n if (!cachedServerRuntime) {\n const runtimeOptions = {\n agents: normalizedConfig.agents,\n pluginRuntime,\n stream: normalizedConfig.persistence?.stream,\n conversations: normalizedConfig.persistence?.conversations,\n runtimeState: normalizedConfig.persistence?.runtimeState,\n streamLifecycle:\n advanced?.onRequestDisconnect === \"continue\"\n ? (\"detached\" as const)\n : undefined,\n advanced,\n };\n\n cachedServerRuntime = createRuntime(runtimeOptions);\n }\n return cachedServerRuntime;\n };\n\n const normalizeBasePath = (baseURL: string): string => {\n try {\n return new URL(baseURL).pathname;\n } catch {\n return new URL(baseURL, \"http://better-agent.local\").pathname;\n }\n };\n\n const getServer = () => {\n if (!cachedServer) {\n const runtime = getServerRuntime();\n const serverOptions: Parameters<typeof createServer>[0] = {\n runtime,\n pluginRuntime,\n secret: normalizedConfig.secret,\n basePath:\n normalizedConfig.baseURL !== undefined\n ? normalizeBasePath(normalizedConfig.baseURL)\n : undefined,\n advanced,\n };\n\n cachedServer = createServer(serverOptions);\n }\n return cachedServer;\n };\n\n const getRegisteredAgent = <TName extends TAgents[number][\"name\"]>(\n agentName: TName,\n traceAt: string,\n ): AgentByName<TAgents, TName> => {\n const agent = normalizedConfig.agents.find((candidate) => candidate.name === agentName);\n if (!agent) {\n throw BetterAgentError.fromCode(\n \"NOT_FOUND\",\n `Agent '${agentName}' not found in app registry.`,\n {\n context: { agentName, availableAgents: Array.from(registry.agents.keys()) },\n trace: [{ at: traceAt }],\n },\n );\n }\n\n return agent as AgentByName<TAgents, TName>;\n };\n\n const base: BetterAgentApp<TAgents, TPlugins> & { handler: BetterAgentHandler } = {\n config: normalizedConfig,\n run: (agentName, input) => {\n getRegisteredAgent(agentName, \"core.app.betterAgent.run\");\n const runtime = getRuntime();\n return runtime.run(agentName, input);\n },\n stream: (agentName, input) => {\n getRegisteredAgent(agentName, \"core.app.betterAgent.stream\");\n const runtime = getRuntime();\n return runtime.stream(agentName, input);\n },\n resumeStream: async (params) => {\n const runtime = getRuntime();\n return runtime.resumeStream(params);\n },\n resumeConversation: async (agentName, params) => {\n getRegisteredAgent(agentName, \"core.app.betterAgent.resumeConversation\");\n const runtime = getRuntime();\n return runtime.resumeConversation(agentName, params);\n },\n abortRun: async (runId: string) => {\n const runtime = getRuntime();\n return runtime.abortRun(runId);\n },\n loadConversation: async (agentName, conversationId) => {\n getRegisteredAgent(agentName, \"core.app.betterAgent.loadConversation\");\n const runtime = getRuntime();\n return runtime.loadConversation(agentName, conversationId);\n },\n submitToolResult: async (params) => {\n const runtime = getRuntime();\n return runtime.submitToolResult(params);\n },\n submitToolApproval: async (params) => {\n const runtime = getRuntime();\n return runtime.submitToolApproval(params);\n },\n handler: (request) => {\n const server = getServer();\n return server.handle(request);\n },\n };\n\n return base as typeof base & {\n readonly __appTypes?: {\n readonly agents: TAgents;\n readonly tools: TTools;\n };\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgB,YAKZ,QAOF;CAEE,MAAM,mBAAmB,eAAe,OAAO;CAC/C,MAAM,WAAW,iBAAiB;AAClC,MAAK,MAAM,SAAS,iBAAiB,OACjC,yBAAwB,MAAM;CAIlC,MAAM,WAAW,wBAAwB;EACrC,QAAQ,iBAAiB;EACzB,OAAO,iBAAiB;EACxB,SAAS,iBAAiB;EAC7B,CAAC;CAGF,MAAM,gBAAgB,iBAAiB,UACjC,oBAAoB,iBAAiB,QAAQ,GAC7C;CAEN,IAAI,gBAAoD;CACxD,IAAI,sBAA0D;CAC9D,IAAI,eAAuD;CAE3D,MAAM,mBAAmB;AACrB,MAAI,CAAC,cAUD,iBAAgB,cATO;GACnB,QAAQ,iBAAiB;GACzB;GACA,QAAQ,iBAAiB,aAAa;GACtC,eAAe,iBAAiB,aAAa;GAC7C,cAAc,iBAAiB,aAAa;GAC5C;GACH,CAE4C;AAEjD,SAAO;;CAGX,MAAM,yBAAyB;AAC3B,MAAI,CAAC,oBAcD,uBAAsB,cAbC;GACnB,QAAQ,iBAAiB;GACzB;GACA,QAAQ,iBAAiB,aAAa;GACtC,eAAe,iBAAiB,aAAa;GAC7C,cAAc,iBAAiB,aAAa;GAC5C,iBACI,UAAU,wBAAwB,aAC3B,aACD;GACV;GACH,CAEkD;AAEvD,SAAO;;CAGX,MAAM,qBAAqB,YAA4B;AACnD,MAAI;AACA,UAAO,IAAI,IAAI,QAAQ,CAAC;UACpB;AACJ,UAAO,IAAI,IAAI,SAAS,4BAA4B,CAAC;;;CAI7D,MAAM,kBAAkB;AACpB,MAAI,CAAC,aAaD,gBAAe,aAX2C;GACtD,SAFY,kBAAkB;GAG9B;GACA,QAAQ,iBAAiB;GACzB,UACI,iBAAiB,YAAY,SACvB,kBAAkB,iBAAiB,QAAQ,GAC3C;GACV;GACH,CAEyC;AAE9C,SAAO;;CAGX,MAAM,sBACF,WACA,YAC8B;EAC9B,MAAM,QAAQ,iBAAiB,OAAO,MAAM,cAAc,UAAU,SAAS,UAAU;AACvF,MAAI,CAAC,MACD,OAAM,iBAAiB,SACnB,aACA,UAAU,UAAU,+BACpB;GACI,SAAS;IAAE;IAAW,iBAAiB,MAAM,KAAK,SAAS,OAAO,MAAM,CAAC;IAAE;GAC3E,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC;GAC3B,CACJ;AAGL,SAAO;;AA+CX,QA5CkF;EAC9E,QAAQ;EACR,MAAM,WAAW,UAAU;AACvB,sBAAmB,WAAW,2BAA2B;AAEzD,UADgB,YAAY,CACb,IAAI,WAAW,MAAM;;EAExC,SAAS,WAAW,UAAU;AAC1B,sBAAmB,WAAW,8BAA8B;AAE5D,UADgB,YAAY,CACb,OAAO,WAAW,MAAM;;EAE3C,cAAc,OAAO,WAAW;AAE5B,UADgB,YAAY,CACb,aAAa,OAAO;;EAEvC,oBAAoB,OAAO,WAAW,WAAW;AAC7C,sBAAmB,WAAW,0CAA0C;AAExE,UADgB,YAAY,CACb,mBAAmB,WAAW,OAAO;;EAExD,UAAU,OAAO,UAAkB;AAE/B,UADgB,YAAY,CACb,SAAS,MAAM;;EAElC,kBAAkB,OAAO,WAAW,mBAAmB;AACnD,sBAAmB,WAAW,wCAAwC;AAEtE,UADgB,YAAY,CACb,iBAAiB,WAAW,eAAe;;EAE9D,kBAAkB,OAAO,WAAW;AAEhC,UADgB,YAAY,CACb,iBAAiB,OAAO;;EAE3C,oBAAoB,OAAO,WAAW;AAElC,UADgB,YAAY,CACb,mBAAmB,OAAO;;EAE7C,UAAU,YAAY;AAElB,UADe,WAAW,CACZ,OAAO,QAAQ;;EAEpC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//#region src/app/registry.ts
|
|
2
|
+
/**
|
|
3
|
+
* Builds an app registry from config.
|
|
4
|
+
*/
|
|
5
|
+
function buildRegistryFromConfig(config) {
|
|
6
|
+
const registry = createAppRegistry();
|
|
7
|
+
for (const agent of config.agents) registerAgent(registry, agent);
|
|
8
|
+
if (config.tools !== void 0) registerTools(registry, config.tools);
|
|
9
|
+
if (config.plugins !== void 0 && config.plugins.length > 0) registerPlugins(registry, config.plugins);
|
|
10
|
+
return registry;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates an empty app registry.
|
|
14
|
+
*/
|
|
15
|
+
function createAppRegistry() {
|
|
16
|
+
return {
|
|
17
|
+
agents: /* @__PURE__ */ new Map(),
|
|
18
|
+
tools: void 0,
|
|
19
|
+
plugins: []
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Registers an agent.
|
|
24
|
+
*/
|
|
25
|
+
function registerAgent(registry, agent) {
|
|
26
|
+
registry.agents.set(agent.name, agent);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Registers shared tools.
|
|
30
|
+
*/
|
|
31
|
+
function registerTools(registry, tools) {
|
|
32
|
+
registry.tools = tools;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Registers multiple plugins.
|
|
36
|
+
*/
|
|
37
|
+
function registerPlugins(registry, plugins) {
|
|
38
|
+
registry.plugins.push(...plugins);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
export { buildRegistryFromConfig };
|
|
43
|
+
//# sourceMappingURL=registry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.mjs","names":[],"sources":["../../src/app/registry.ts"],"sourcesContent":["import type { AgentTools, AnyAgentDefinition } from \"../agent\";\nimport type { Plugin } from \"../plugins\";\n\n/**\n * Builds an app registry from config.\n */\nexport function buildRegistryFromConfig(config: {\n agents: readonly AnyAgentDefinition[];\n tools?: AgentTools<unknown> | undefined;\n plugins?: readonly Plugin[] | undefined;\n}): AppRegistry {\n const registry = createAppRegistry();\n\n for (const agent of config.agents) {\n registerAgent(registry, agent);\n }\n\n if (config.tools !== undefined) {\n registerTools(registry, config.tools);\n }\n\n if (config.plugins !== undefined && config.plugins.length > 0) {\n registerPlugins(registry, config.plugins);\n }\n\n return registry;\n}\n\n/**\n * Registry for app components.\n */\nexport interface AppRegistry {\n /** Agents by name. */\n agents: Map<string, AnyAgentDefinition>;\n /** Shared tools available to all agents. */\n tools: AgentTools<unknown> | undefined;\n /** Registered plugins. */\n plugins: Plugin[];\n}\n\n/**\n * Creates an empty app registry.\n */\nexport function createAppRegistry(): AppRegistry {\n return {\n agents: new Map(),\n tools: undefined,\n plugins: [],\n };\n}\n\n/**\n * Registers an agent.\n */\nexport function registerAgent(registry: AppRegistry, agent: AnyAgentDefinition): void {\n registry.agents.set(agent.name, agent);\n}\n\n/**\n * Looks up an agent by name.\n */\nexport function lookupAgent(registry: AppRegistry, name: string): AnyAgentDefinition | undefined {\n return registry.agents.get(name);\n}\n\n/**\n * Registers shared tools.\n */\nexport function registerTools(registry: AppRegistry, tools: AgentTools<unknown>): void {\n registry.tools = tools;\n}\n\n/**\n * Registers a plugin.\n */\nexport function registerPlugin(registry: AppRegistry, plugin: Plugin): void {\n registry.plugins.push(plugin);\n}\n\n/**\n * Registers multiple plugins.\n */\nexport function registerPlugins(registry: AppRegistry, plugins: readonly Plugin[]): void {\n registry.plugins.push(...plugins);\n}\n"],"mappings":";;;;AAMA,SAAgB,wBAAwB,QAIxB;CACZ,MAAM,WAAW,mBAAmB;AAEpC,MAAK,MAAM,SAAS,OAAO,OACvB,eAAc,UAAU,MAAM;AAGlC,KAAI,OAAO,UAAU,OACjB,eAAc,UAAU,OAAO,MAAM;AAGzC,KAAI,OAAO,YAAY,UAAa,OAAO,QAAQ,SAAS,EACxD,iBAAgB,UAAU,OAAO,QAAQ;AAG7C,QAAO;;;;;AAkBX,SAAgB,oBAAiC;AAC7C,QAAO;EACH,wBAAQ,IAAI,KAAK;EACjB,OAAO;EACP,SAAS,EAAE;EACd;;;;;AAML,SAAgB,cAAc,UAAuB,OAAiC;AAClF,UAAS,OAAO,IAAI,MAAM,MAAM,MAAM;;;;;AAa1C,SAAgB,cAAc,UAAuB,OAAkC;AACnF,UAAS,QAAQ;;;;;AAarB,SAAgB,gBAAgB,UAAuB,SAAkC;AACrF,UAAS,QAAQ,KAAK,GAAG,QAAQ"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { AgentToolDefinition } from "../tools/types.mjs";
|
|
2
|
+
import { ConversationItem } from "../providers/types/conversation.mjs";
|
|
3
|
+
import { AnyAgentDefinition } from "../agent/types.mjs";
|
|
4
|
+
import { ConversationRuntimeStateStore, ConversationStore, StreamEvent, StreamStore } from "../persistence/types.mjs";
|
|
5
|
+
import { Plugin } from "../plugins/types.mjs";
|
|
6
|
+
import { ResumeConversationOptions, ResumeStreamOptions, RunOptionsForAgent, RunOutputOverrideForAgent, RunResultForAgent, StreamResultForAgent, SubmitToolApprovalParams, SubmitToolResultParams } from "../run/types.mjs";
|
|
7
|
+
//#region src/app/types.d.ts
|
|
8
|
+
interface BetterAgentAdvancedConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Default timeout for waiting on client tool results.
|
|
11
|
+
*/
|
|
12
|
+
clientToolResultTimeoutMs?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Default timeout for waiting on tool approvals.
|
|
15
|
+
*/
|
|
16
|
+
toolApprovalTimeoutMs?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Controls what the built-in HTTP handler does when the original request disconnects.
|
|
19
|
+
*
|
|
20
|
+
* - `abort`: abort the run with the request.
|
|
21
|
+
* - `continue`: keep the run executing on the server and only stop the disconnected reader.
|
|
22
|
+
*
|
|
23
|
+
* This only affects Better Agent's built-in HTTP/server layer.
|
|
24
|
+
*/
|
|
25
|
+
onRequestDisconnect?: "abort" | "continue";
|
|
26
|
+
/** Heartbeat interval for built-in SSE responses.
|
|
27
|
+
*
|
|
28
|
+
* This only affects Better Agent's built-in HTTP/server layer.
|
|
29
|
+
*/
|
|
30
|
+
sseHeartbeatMs?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* App configuration.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam TAgents Agents bundled into the app.
|
|
36
|
+
* @typeParam TPlugins Plugins registered on the app.
|
|
37
|
+
* @typeParam TTools Shared tools available to agents.
|
|
38
|
+
*/
|
|
39
|
+
interface BetterAgentConfig<TAgents extends readonly AnyAgentDefinition[] = readonly AnyAgentDefinition[], TPlugins extends readonly Plugin[] = readonly Plugin[], TTools extends readonly AgentToolDefinition[] = readonly AgentToolDefinition[]> {
|
|
40
|
+
/** Built-in runtime and HTTP behavior. */
|
|
41
|
+
readonly advanced?: BetterAgentAdvancedConfig;
|
|
42
|
+
/** Agents included in the app. */
|
|
43
|
+
readonly agents: TAgents;
|
|
44
|
+
/**
|
|
45
|
+
* Shared tools available to agents in this app.
|
|
46
|
+
*
|
|
47
|
+
* Agents can still declare their own tools.
|
|
48
|
+
*/
|
|
49
|
+
readonly tools?: TTools;
|
|
50
|
+
/**
|
|
51
|
+
* Plugins applied to the app.
|
|
52
|
+
*
|
|
53
|
+
* Use plugins for cross-cutting behavior such as logging, auth, or rate limiting.
|
|
54
|
+
*/
|
|
55
|
+
readonly plugins?: TPlugins;
|
|
56
|
+
/** Persistence configuration for runs and streams. */
|
|
57
|
+
readonly persistence?: {
|
|
58
|
+
/** Stream store for event resumption. */stream?: StreamStore; /** Conversation store. */
|
|
59
|
+
conversations?: ConversationStore; /** Optional conversation runtime-state store for conversation-based stream resume. */
|
|
60
|
+
runtimeState?: ConversationRuntimeStateStore;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Optional bearer secret for the built-in HTTP server.
|
|
64
|
+
* When set, built-in server routes require `Authorization: Bearer <secret>`
|
|
65
|
+
* unless a plugin endpoint is marked `public: true`.
|
|
66
|
+
*/
|
|
67
|
+
readonly secret?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Optional base URL for the app's API, used by clients and framework integrations.
|
|
70
|
+
*
|
|
71
|
+
* If set, the URL pathname is also used as the built-in server `basePath`.
|
|
72
|
+
* For example, `https://example.com/api` makes the built-in server available under `/api`.
|
|
73
|
+
*/
|
|
74
|
+
readonly baseURL?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* HTTP request handler used by framework integrations.
|
|
78
|
+
*/
|
|
79
|
+
type BetterAgentHandler = (request: Request) => Promise<Response>;
|
|
80
|
+
/**
|
|
81
|
+
* Looks up one agent type by its name.
|
|
82
|
+
*/
|
|
83
|
+
type AgentByName<TAgents extends readonly AnyAgentDefinition[], TName extends TAgents[number]["name"]> = Extract<TAgents[number], {
|
|
84
|
+
name: TName;
|
|
85
|
+
}>;
|
|
86
|
+
/** Shared app-level input for `run()` and `stream()`. */
|
|
87
|
+
type AppRunInput<TAgent extends AnyAgentDefinition = AnyAgentDefinition, TOutput extends RunOutputOverrideForAgent<TAgent> | undefined = undefined> = RunOptionsForAgent<TAgent, TOutput>;
|
|
88
|
+
/** Run options for `app.run()`. */
|
|
89
|
+
type AppRunOptions<TAgent extends AnyAgentDefinition = AnyAgentDefinition, TOutput extends RunOutputOverrideForAgent<TAgent> | undefined = undefined> = AppRunInput<TAgent, TOutput>;
|
|
90
|
+
/** Stream options for `app.stream()`. */
|
|
91
|
+
type AppStreamOptions<TAgent extends AnyAgentDefinition = AnyAgentDefinition, TOutput extends RunOutputOverrideForAgent<TAgent> | undefined = undefined> = AppRunInput<TAgent, TOutput>;
|
|
92
|
+
/**
|
|
93
|
+
* Better Agent app bundle.
|
|
94
|
+
*
|
|
95
|
+
* @typeParam TAgents Agents bundled into the app.
|
|
96
|
+
* @typeParam TPlugins Plugins registered on the app.
|
|
97
|
+
*/
|
|
98
|
+
interface BetterAgentApp<TAgents extends readonly AnyAgentDefinition[] = readonly AnyAgentDefinition[], TPlugins extends readonly Plugin[] = readonly Plugin[]> {
|
|
99
|
+
/** App configuration used to construct this instance. */
|
|
100
|
+
readonly config: BetterAgentConfig<TAgents, TPlugins>;
|
|
101
|
+
/**
|
|
102
|
+
* Runs an agent and waits for the final result.
|
|
103
|
+
*/
|
|
104
|
+
run: <TName extends TAgents[number]["name"], TOutput extends RunOutputOverrideForAgent<AgentByName<TAgents, TName>> | undefined = undefined>(agentName: TName, options: AppRunOptions<AgentByName<TAgents, TName>, TOutput>) => Promise<RunResultForAgent<AgentByName<TAgents, TName>, TOutput>>;
|
|
105
|
+
/**
|
|
106
|
+
* Streams agent execution events.
|
|
107
|
+
*/
|
|
108
|
+
stream: <TName extends TAgents[number]["name"], TOutput extends RunOutputOverrideForAgent<AgentByName<TAgents, TName>> | undefined = undefined>(agentName: TName, options: AppStreamOptions<AgentByName<TAgents, TName>, TOutput>) => StreamResultForAgent<AgentByName<TAgents, TName>, TOutput>;
|
|
109
|
+
/**
|
|
110
|
+
* Resumes a stored stream by stream id.
|
|
111
|
+
*/
|
|
112
|
+
resumeStream: (params: ResumeStreamOptions) => Promise<AsyncIterable<StreamEvent> | null>;
|
|
113
|
+
/**
|
|
114
|
+
* Resumes the active stream for a conversation.
|
|
115
|
+
*/
|
|
116
|
+
resumeConversation: <TName extends TAgents[number]["name"]>(agentName: TName, params: ResumeConversationOptions) => Promise<AsyncIterable<StreamEvent> | null>;
|
|
117
|
+
/** Aborts an active run by id. */
|
|
118
|
+
abortRun: (runId: string) => Promise<boolean>;
|
|
119
|
+
/**
|
|
120
|
+
* Load the persisted durable history for one conversation.
|
|
121
|
+
*
|
|
122
|
+
* Returns `null` when no stored conversation exists.
|
|
123
|
+
*/
|
|
124
|
+
loadConversation: <TName extends TAgents[number]["name"]>(agentName: TName, conversationId: string) => Promise<{
|
|
125
|
+
items: ConversationItem[];
|
|
126
|
+
} | null>;
|
|
127
|
+
/**
|
|
128
|
+
* Submits a result for a pending client tool call.
|
|
129
|
+
*/
|
|
130
|
+
submitToolResult: (params: SubmitToolResultParams) => Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* Submits a tool approval decision.
|
|
133
|
+
*/
|
|
134
|
+
submitToolApproval: (params: SubmitToolApprovalParams) => Promise<boolean>;
|
|
135
|
+
/**
|
|
136
|
+
* HTTP handler for framework integration.
|
|
137
|
+
*/
|
|
138
|
+
handler: BetterAgentHandler;
|
|
139
|
+
}
|
|
140
|
+
//#endregion
|
|
141
|
+
export { AppRunInput, AppRunOptions, AppStreamOptions, BetterAgentAdvancedConfig, BetterAgentApp, BetterAgentConfig, BetterAgentHandler };
|
|
142
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/app/types.ts"],"mappings":";;;;;;;UAsBiB,yBAAA;;;;EAIb,yBAAA;;;;EAIA,qBAAA;EARsC;;;;;;;;EAiBtC,mBAAA;EAea;;;;EAVb,cAAA;AAAA;;;;;;;;UAUa,iBAAA,0BACY,kBAAA,cAAgC,kBAAA,8BAC/B,MAAA,cAAoB,MAAA,4BACtB,mBAAA,cAAiC,mBAAA;EA2BrC;EAAA,SAxBX,QAAA,GAAW,yBAAA;EA0B4B;EAAA,SAvBvC,MAAA,EAAQ,OAAA;EARjB;;;;;EAAA,SAeS,KAAA,GAAQ,MAAA;EAbjB;;;;;EAAA,SAoBS,OAAA,GAAU,QAAA;EAdF;EAAA,SAiBR,WAAA;IAVQ,yCAYb,MAAA,GAAS,WAAA,EALM;IAOf,aAAA,GAAgB,iBAAA,EAFhB;IAIA,YAAA,GAAe,6BAAA;EAAA;EAFC;;;;;EAAA,SAUX,MAAA;EAQO;AAepB;;;;;EAfoB,SAAP,OAAA;AAAA;;;;KAeD,kBAAA,IAAsB,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA;;;;KAKnD,WAAA,0BACiB,kBAAA,kBACX,OAAA,oBACd,OAAA,CAAQ,OAAA;EAAmB,IAAA,EAAM,KAAA;AAAA;;KAgEzB,WAAA,gBACO,kBAAA,GAAqB,kBAAA,kBACpB,yBAAA,CAA0B,MAAA,6BAC1C,kBAAA,CAAmB,MAAA,EAAQ,OAAA;;KAGnB,aAAA,gBACO,kBAAA,GAAqB,kBAAA,kBACpB,yBAAA,CAA0B,MAAA,6BAC1C,WAAA,CAAY,MAAA,EAAQ,OAAA;;KAGZ,gBAAA,gBACO,kBAAA,GAAqB,kBAAA,kBACpB,yBAAA,CAA0B,MAAA,6BAC1C,WAAA,CAAY,MAAA,EAAQ,OAAA;;;;;;;UAQP,cAAA,0BACY,kBAAA,cAAgC,kBAAA,8BAC/B,MAAA,cAAoB,MAAA;EAlBV;EAAA,SAqB3B,MAAA,EAAQ,iBAAA,CAAkB,OAAA,EAAS,QAAA;EApB5B;;;EAyBhB,GAAA,iBACkB,OAAA,kCAER,yBAAA,CAA0B,WAAA,CAAY,OAAA,EAAS,KAAA,4BAGrD,SAAA,EAAW,KAAA,EACX,OAAA,EAAS,aAAA,CAAc,WAAA,CAAY,OAAA,EAAS,KAAA,GAAQ,OAAA,MACnD,OAAA,CAAQ,iBAAA,CAAkB,WAAA,CAAY,OAAA,EAAS,KAAA,GAAQ,OAAA;EAhCxC;;;EAqCpB,MAAA,iBACkB,OAAA,kCAER,yBAAA,CAA0B,WAAA,CAAY,OAAA,EAAS,KAAA,4BAGrD,SAAA,EAAW,KAAA,EACX,OAAA,EAAS,gBAAA,CAAiB,WAAA,CAAY,OAAA,EAAS,KAAA,GAAQ,OAAA,MACtD,oBAAA,CAAqB,WAAA,CAAY,OAAA,EAAS,KAAA,GAAQ,OAAA;EA1C/B;;;EA+CxB,YAAA,GAAe,MAAA,EAAQ,mBAAA,KAAwB,OAAA,CAAQ,aAAA,CAAc,WAAA;EA7C3B;;;EAkD1C,kBAAA,iBAAmC,OAAA,kBAC/B,SAAA,EAAW,KAAA,EACX,MAAA,EAAQ,yBAAA,KACP,OAAA,CAAQ,aAAA,CAAc,WAAA;EApD3B;EAuDA,QAAA,GAAW,KAAA,aAAkB,OAAA;EAvDlB;;;;;EA8DX,gBAAA,iBAAiC,OAAA,kBAC7B,SAAA,EAAW,KAAA,EACX,cAAA,aACC,OAAA;IAAU,KAAA,EAAO,gBAAA;EAAA;EAjEV;;;EAsEZ,gBAAA,GAAmB,MAAA,EAAQ,sBAAA,KAA2B,OAAA;EA9DzC;;;EAmEb,kBAAA,GAAqB,MAAA,EAAQ,wBAAA,KAA6B,OAAA;EAlED;;;EAuEzD,OAAA,EAAS,kBAAA;AAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
//#region src/events/constants.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Event name constants emitted by the runtime.
|
|
4
|
+
*/
|
|
5
|
+
declare const Events: {
|
|
6
|
+
readonly RUN_STARTED: "RUN_STARTED";
|
|
7
|
+
readonly RUN_FINISHED: "RUN_FINISHED";
|
|
8
|
+
readonly RUN_ERROR: "RUN_ERROR";
|
|
9
|
+
readonly RUN_ABORTED: "RUN_ABORTED";
|
|
10
|
+
readonly DATA_PART: "DATA_PART";
|
|
11
|
+
readonly STEP_START: "STEP_START";
|
|
12
|
+
readonly STEP_FINISH: "STEP_FINISH";
|
|
13
|
+
readonly STEP_ERROR: "STEP_ERROR";
|
|
14
|
+
readonly TOOL_CALL_START: "TOOL_CALL_START";
|
|
15
|
+
readonly TOOL_CALL_ARGS: "TOOL_CALL_ARGS";
|
|
16
|
+
readonly TOOL_CALL_END: "TOOL_CALL_END";
|
|
17
|
+
readonly TOOL_CALL_RESULT: "TOOL_CALL_RESULT";
|
|
18
|
+
readonly TOOL_APPROVAL_REQUIRED: "TOOL_APPROVAL_REQUIRED";
|
|
19
|
+
readonly TOOL_APPROVAL_UPDATED: "TOOL_APPROVAL_UPDATED";
|
|
20
|
+
readonly TEXT_MESSAGE_START: "TEXT_MESSAGE_START";
|
|
21
|
+
readonly TEXT_MESSAGE_CONTENT: "TEXT_MESSAGE_CONTENT";
|
|
22
|
+
readonly TEXT_MESSAGE_END: "TEXT_MESSAGE_END";
|
|
23
|
+
readonly IMAGE_MESSAGE_START: "IMAGE_MESSAGE_START";
|
|
24
|
+
readonly IMAGE_MESSAGE_CONTENT: "IMAGE_MESSAGE_CONTENT";
|
|
25
|
+
readonly IMAGE_MESSAGE_END: "IMAGE_MESSAGE_END";
|
|
26
|
+
readonly VIDEO_MESSAGE_START: "VIDEO_MESSAGE_START";
|
|
27
|
+
readonly VIDEO_MESSAGE_CONTENT: "VIDEO_MESSAGE_CONTENT";
|
|
28
|
+
readonly VIDEO_MESSAGE_END: "VIDEO_MESSAGE_END";
|
|
29
|
+
readonly AUDIO_MESSAGE_START: "AUDIO_MESSAGE_START";
|
|
30
|
+
readonly AUDIO_MESSAGE_CONTENT: "AUDIO_MESSAGE_CONTENT";
|
|
31
|
+
readonly AUDIO_MESSAGE_END: "AUDIO_MESSAGE_END";
|
|
32
|
+
readonly TRANSCRIPT_MESSAGE_START: "TRANSCRIPT_MESSAGE_START";
|
|
33
|
+
readonly TRANSCRIPT_MESSAGE_CONTENT: "TRANSCRIPT_MESSAGE_CONTENT";
|
|
34
|
+
readonly TRANSCRIPT_MESSAGE_SEGMENT: "TRANSCRIPT_MESSAGE_SEGMENT";
|
|
35
|
+
readonly TRANSCRIPT_MESSAGE_END: "TRANSCRIPT_MESSAGE_END";
|
|
36
|
+
readonly REASONING_MESSAGE_START: "REASONING_MESSAGE_START";
|
|
37
|
+
readonly REASONING_MESSAGE_CONTENT: "REASONING_MESSAGE_CONTENT";
|
|
38
|
+
readonly REASONING_MESSAGE_END: "REASONING_MESSAGE_END";
|
|
39
|
+
readonly EMBEDDING_MESSAGE_START: "EMBEDDING_MESSAGE_START";
|
|
40
|
+
readonly EMBEDDING_MESSAGE_CONTENT: "EMBEDDING_MESSAGE_CONTENT";
|
|
41
|
+
readonly EMBEDDING_MESSAGE_END: "EMBEDDING_MESSAGE_END";
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Union of all event names.
|
|
45
|
+
*/
|
|
46
|
+
type EventName = (typeof Events)[keyof typeof Events];
|
|
47
|
+
//#endregion
|
|
48
|
+
export { EventName, Events };
|
|
49
|
+
//# sourceMappingURL=constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/events/constants.ts"],"mappings":";;AAGA;;cAAa,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDb;KAAY,SAAA,WAAoB,MAAA,eAAqB,MAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/events/constants.ts
|
|
2
|
+
/**
|
|
3
|
+
* Event name constants emitted by the runtime.
|
|
4
|
+
*/
|
|
5
|
+
const Events = {
|
|
6
|
+
RUN_STARTED: "RUN_STARTED",
|
|
7
|
+
RUN_FINISHED: "RUN_FINISHED",
|
|
8
|
+
RUN_ERROR: "RUN_ERROR",
|
|
9
|
+
RUN_ABORTED: "RUN_ABORTED",
|
|
10
|
+
DATA_PART: "DATA_PART",
|
|
11
|
+
STEP_START: "STEP_START",
|
|
12
|
+
STEP_FINISH: "STEP_FINISH",
|
|
13
|
+
STEP_ERROR: "STEP_ERROR",
|
|
14
|
+
TOOL_CALL_START: "TOOL_CALL_START",
|
|
15
|
+
TOOL_CALL_ARGS: "TOOL_CALL_ARGS",
|
|
16
|
+
TOOL_CALL_END: "TOOL_CALL_END",
|
|
17
|
+
TOOL_CALL_RESULT: "TOOL_CALL_RESULT",
|
|
18
|
+
TOOL_APPROVAL_REQUIRED: "TOOL_APPROVAL_REQUIRED",
|
|
19
|
+
TOOL_APPROVAL_UPDATED: "TOOL_APPROVAL_UPDATED",
|
|
20
|
+
TEXT_MESSAGE_START: "TEXT_MESSAGE_START",
|
|
21
|
+
TEXT_MESSAGE_CONTENT: "TEXT_MESSAGE_CONTENT",
|
|
22
|
+
TEXT_MESSAGE_END: "TEXT_MESSAGE_END",
|
|
23
|
+
IMAGE_MESSAGE_START: "IMAGE_MESSAGE_START",
|
|
24
|
+
IMAGE_MESSAGE_CONTENT: "IMAGE_MESSAGE_CONTENT",
|
|
25
|
+
IMAGE_MESSAGE_END: "IMAGE_MESSAGE_END",
|
|
26
|
+
VIDEO_MESSAGE_START: "VIDEO_MESSAGE_START",
|
|
27
|
+
VIDEO_MESSAGE_CONTENT: "VIDEO_MESSAGE_CONTENT",
|
|
28
|
+
VIDEO_MESSAGE_END: "VIDEO_MESSAGE_END",
|
|
29
|
+
AUDIO_MESSAGE_START: "AUDIO_MESSAGE_START",
|
|
30
|
+
AUDIO_MESSAGE_CONTENT: "AUDIO_MESSAGE_CONTENT",
|
|
31
|
+
AUDIO_MESSAGE_END: "AUDIO_MESSAGE_END",
|
|
32
|
+
TRANSCRIPT_MESSAGE_START: "TRANSCRIPT_MESSAGE_START",
|
|
33
|
+
TRANSCRIPT_MESSAGE_CONTENT: "TRANSCRIPT_MESSAGE_CONTENT",
|
|
34
|
+
TRANSCRIPT_MESSAGE_SEGMENT: "TRANSCRIPT_MESSAGE_SEGMENT",
|
|
35
|
+
TRANSCRIPT_MESSAGE_END: "TRANSCRIPT_MESSAGE_END",
|
|
36
|
+
REASONING_MESSAGE_START: "REASONING_MESSAGE_START",
|
|
37
|
+
REASONING_MESSAGE_CONTENT: "REASONING_MESSAGE_CONTENT",
|
|
38
|
+
REASONING_MESSAGE_END: "REASONING_MESSAGE_END",
|
|
39
|
+
EMBEDDING_MESSAGE_START: "EMBEDDING_MESSAGE_START",
|
|
40
|
+
EMBEDDING_MESSAGE_CONTENT: "EMBEDDING_MESSAGE_CONTENT",
|
|
41
|
+
EMBEDDING_MESSAGE_END: "EMBEDDING_MESSAGE_END"
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Events };
|
|
46
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../../src/events/constants.ts"],"sourcesContent":["/**\n * Event name constants emitted by the runtime.\n */\nexport const Events = {\n RUN_STARTED: \"RUN_STARTED\",\n RUN_FINISHED: \"RUN_FINISHED\",\n RUN_ERROR: \"RUN_ERROR\",\n RUN_ABORTED: \"RUN_ABORTED\",\n\n // User-defined runtime data payload.\n DATA_PART: \"DATA_PART\",\n\n STEP_START: \"STEP_START\",\n STEP_FINISH: \"STEP_FINISH\",\n STEP_ERROR: \"STEP_ERROR\",\n\n TOOL_CALL_START: \"TOOL_CALL_START\",\n TOOL_CALL_ARGS: \"TOOL_CALL_ARGS\",\n TOOL_CALL_END: \"TOOL_CALL_END\",\n TOOL_CALL_RESULT: \"TOOL_CALL_RESULT\",\n\n TOOL_APPROVAL_REQUIRED: \"TOOL_APPROVAL_REQUIRED\",\n TOOL_APPROVAL_UPDATED: \"TOOL_APPROVAL_UPDATED\",\n\n TEXT_MESSAGE_START: \"TEXT_MESSAGE_START\",\n TEXT_MESSAGE_CONTENT: \"TEXT_MESSAGE_CONTENT\",\n TEXT_MESSAGE_END: \"TEXT_MESSAGE_END\",\n\n IMAGE_MESSAGE_START: \"IMAGE_MESSAGE_START\",\n IMAGE_MESSAGE_CONTENT: \"IMAGE_MESSAGE_CONTENT\",\n IMAGE_MESSAGE_END: \"IMAGE_MESSAGE_END\",\n\n VIDEO_MESSAGE_START: \"VIDEO_MESSAGE_START\",\n VIDEO_MESSAGE_CONTENT: \"VIDEO_MESSAGE_CONTENT\",\n VIDEO_MESSAGE_END: \"VIDEO_MESSAGE_END\",\n\n AUDIO_MESSAGE_START: \"AUDIO_MESSAGE_START\",\n AUDIO_MESSAGE_CONTENT: \"AUDIO_MESSAGE_CONTENT\",\n AUDIO_MESSAGE_END: \"AUDIO_MESSAGE_END\",\n\n TRANSCRIPT_MESSAGE_START: \"TRANSCRIPT_MESSAGE_START\",\n TRANSCRIPT_MESSAGE_CONTENT: \"TRANSCRIPT_MESSAGE_CONTENT\",\n // Finalized transcript segment.\n TRANSCRIPT_MESSAGE_SEGMENT: \"TRANSCRIPT_MESSAGE_SEGMENT\",\n TRANSCRIPT_MESSAGE_END: \"TRANSCRIPT_MESSAGE_END\",\n\n REASONING_MESSAGE_START: \"REASONING_MESSAGE_START\",\n REASONING_MESSAGE_CONTENT: \"REASONING_MESSAGE_CONTENT\",\n REASONING_MESSAGE_END: \"REASONING_MESSAGE_END\",\n\n EMBEDDING_MESSAGE_START: \"EMBEDDING_MESSAGE_START\",\n EMBEDDING_MESSAGE_CONTENT: \"EMBEDDING_MESSAGE_CONTENT\",\n EMBEDDING_MESSAGE_END: \"EMBEDDING_MESSAGE_END\",\n} as const;\n\n/**\n * Union of all event names.\n */\nexport type EventName = (typeof Events)[keyof typeof Events];\n"],"mappings":";;;;AAGA,MAAa,SAAS;CAClB,aAAa;CACb,cAAc;CACd,WAAW;CACX,aAAa;CAGb,WAAW;CAEX,YAAY;CACZ,aAAa;CACb,YAAY;CAEZ,iBAAiB;CACjB,gBAAgB;CAChB,eAAe;CACf,kBAAkB;CAElB,wBAAwB;CACxB,uBAAuB;CAEvB,oBAAoB;CACpB,sBAAsB;CACtB,kBAAkB;CAElB,qBAAqB;CACrB,uBAAuB;CACvB,mBAAmB;CAEnB,qBAAqB;CACrB,uBAAuB;CACvB,mBAAmB;CAEnB,qBAAqB;CACrB,uBAAuB;CACvB,mBAAmB;CAEnB,0BAA0B;CAC1B,4BAA4B;CAE5B,4BAA4B;CAC5B,wBAAwB;CAExB,yBAAyB;CACzB,2BAA2B;CAC3B,uBAAuB;CAEvB,yBAAyB;CACzB,2BAA2B;CAC3B,uBAAuB;CAC1B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EventName, Events } from "./constants.mjs";
|
|
2
|
+
import { ToolApprovalState, ToolTarget } from "../tools/types.mjs";
|
|
3
|
+
import { AudioMessageContentEvent, AudioMessageEndEvent, AudioMessageStartEvent, BaseEvent, BetterAgentErrorLike, DataPartEvent, EmbeddingMessageContentEvent, EmbeddingMessageEndEvent, EmbeddingMessageStartEvent, Event, ImageMessageContentEvent, ImageMessageEndEvent, ImageMessageStartEvent, ModelEvent, ReasoningMessageContentEvent, ReasoningMessageEndEvent, ReasoningMessageStartEvent, ReasoningVisibility, Role, RunAbortedEvent, RunErrorEvent, RunFinishedEvent, RunStartedEvent, StepErrorEvent, StepFinishEvent, StepStartEvent, StepTerminationReason, TextMessageContentEvent, TextMessageEndEvent, TextMessageStartEvent, ToolApprovalRequiredEvent, ToolApprovalUpdatedEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, ToolCallStartEvent, TranscriptMessageContentEvent, TranscriptMessageEndEvent, TranscriptMessageSegmentEvent, TranscriptMessageStartEvent, VideoMessageContentEvent, VideoMessageEndEvent, VideoMessageStartEvent } from "./types.mjs";
|
|
4
|
+
export { AudioMessageContentEvent, AudioMessageEndEvent, AudioMessageStartEvent, BaseEvent, BetterAgentErrorLike, DataPartEvent, EmbeddingMessageContentEvent, EmbeddingMessageEndEvent, EmbeddingMessageStartEvent, Event, type EventName, Events, ImageMessageContentEvent, ImageMessageEndEvent, ImageMessageStartEvent, ModelEvent, ReasoningMessageContentEvent, ReasoningMessageEndEvent, ReasoningMessageStartEvent, ReasoningVisibility, Role, RunAbortedEvent, RunErrorEvent, RunFinishedEvent, RunStartedEvent, StepErrorEvent, StepFinishEvent, StepStartEvent, StepTerminationReason, TextMessageContentEvent, TextMessageEndEvent, TextMessageStartEvent, ToolApprovalRequiredEvent, ToolApprovalState, ToolApprovalUpdatedEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, ToolCallStartEvent, ToolTarget, TranscriptMessageContentEvent, TranscriptMessageEndEvent, TranscriptMessageSegmentEvent, TranscriptMessageStartEvent, VideoMessageContentEvent, VideoMessageEndEvent, VideoMessageStartEvent };
|