@easynet/agent-tool 1.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/README.md +103 -0
- package/dist/chunk-3YLVPZRJ.cjs +32 -0
- package/dist/chunk-3YLVPZRJ.cjs.map +1 -0
- package/dist/chunk-AXUNV4MK.js +28 -0
- package/dist/chunk-AXUNV4MK.js.map +1 -0
- package/dist/chunk-BM4EVYI5.js +1069 -0
- package/dist/chunk-BM4EVYI5.js.map +1 -0
- package/dist/chunk-P3UEAZHK.cjs +171 -0
- package/dist/chunk-P3UEAZHK.cjs.map +1 -0
- package/dist/chunk-RPAMQCFH.js +167 -0
- package/dist/chunk-RPAMQCFH.js.map +1 -0
- package/dist/chunk-Z7TGIG77.cjs +1108 -0
- package/dist/chunk-Z7TGIG77.cjs.map +1 -0
- package/dist/cli.cjs +154 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +147 -0
- package/dist/cli.js.map +1 -0
- package/dist/codegen/build.d.ts +23 -0
- package/dist/codegen/build.d.ts.map +1 -0
- package/dist/codegen/generator.d.ts +15 -0
- package/dist/codegen/generator.d.ts.map +1 -0
- package/dist/codegen/index.d.ts +21 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/init.d.ts +17 -0
- package/dist/codegen/init.d.ts.map +1 -0
- package/dist/codegen/run.d.ts +19 -0
- package/dist/codegen/run.d.ts.map +1 -0
- package/dist/codegen/scan/scanN8n.d.ts +17 -0
- package/dist/codegen/scan/scanN8n.d.ts.map +1 -0
- package/dist/codegen/scan/scanSkill.d.ts +17 -0
- package/dist/codegen/scan/scanSkill.d.ts.map +1 -0
- package/dist/codegen/scan/scanTools.d.ts +31 -0
- package/dist/codegen/scan/scanTools.d.ts.map +1 -0
- package/dist/codegen/scan/scanner.d.ts +26 -0
- package/dist/codegen/scan/scanner.d.ts.map +1 -0
- package/dist/codegen/scan/schemaFromTs.d.ts +16 -0
- package/dist/codegen/scan/schemaFromTs.d.ts.map +1 -0
- package/dist/codegen/types.d.ts +81 -0
- package/dist/codegen/types.d.ts.map +1 -0
- package/dist/core.cjs +20 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +8 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -0
- package/dist/discovery/MCPProcessManager.d.ts +57 -0
- package/dist/discovery/MCPProcessManager.d.ts.map +1 -0
- package/dist/discovery/errors.d.ts +13 -0
- package/dist/discovery/errors.d.ts.map +1 -0
- package/dist/discovery/load/LangChainLoader.d.ts +7 -0
- package/dist/discovery/load/LangChainLoader.d.ts.map +1 -0
- package/dist/discovery/load/MCPLoader.d.ts +8 -0
- package/dist/discovery/load/MCPLoader.d.ts.map +1 -0
- package/dist/discovery/load/N8nLoader.d.ts +25 -0
- package/dist/discovery/load/N8nLoader.d.ts.map +1 -0
- package/dist/discovery/load/SkillLoader.d.ts +20 -0
- package/dist/discovery/load/SkillLoader.d.ts.map +1 -0
- package/dist/discovery/load/SkillManifest.d.ts +79 -0
- package/dist/discovery/load/SkillManifest.d.ts.map +1 -0
- package/dist/discovery/load/SkillMdParser.d.ts +31 -0
- package/dist/discovery/load/SkillMdParser.d.ts.map +1 -0
- package/dist/discovery/load/index.d.ts +6 -0
- package/dist/discovery/load/index.d.ts.map +1 -0
- package/dist/discovery/load/resolveEntry.d.ts +7 -0
- package/dist/discovery/load/resolveEntry.d.ts.map +1 -0
- package/dist/discovery/scan/DirectoryScanner.d.ts +37 -0
- package/dist/discovery/scan/DirectoryScanner.d.ts.map +1 -0
- package/dist/discovery/scan/scanUtil.d.ts +16 -0
- package/dist/discovery/scan/scanUtil.d.ts.map +1 -0
- package/dist/discovery/types.d.ts +99 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/index.cjs +3014 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2778 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/AgentLLMAdapter.d.ts +27 -0
- package/dist/llm/AgentLLMAdapter.d.ts.map +1 -0
- package/dist/llm/LangChainToolsHub.d.ts +31 -0
- package/dist/llm/LangChainToolsHub.d.ts.map +1 -0
- package/dist/llm/OpenAICompatibleClient.d.ts +64 -0
- package/dist/llm/OpenAICompatibleClient.d.ts.map +1 -0
- package/dist/llm/ReActAgent.d.ts +35 -0
- package/dist/llm/ReActAgent.d.ts.map +1 -0
- package/dist/llm-export.cjs +20 -0
- package/dist/llm-export.cjs.map +1 -0
- package/dist/llm-export.d.ts +9 -0
- package/dist/llm-export.d.ts.map +1 -0
- package/dist/llm-export.js +3 -0
- package/dist/llm-export.js.map +1 -0
- package/dist/mcp/MCPClientAdapter.d.ts +34 -0
- package/dist/mcp/MCPClientAdapter.d.ts.map +1 -0
- package/dist/mcp/connectMCP.d.ts +47 -0
- package/dist/mcp/connectMCP.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/registerMCPTools.d.ts +24 -0
- package/dist/mcp/registerMCPTools.d.ts.map +1 -0
- package/dist/observability/EventLog.d.ts +60 -0
- package/dist/observability/EventLog.d.ts.map +1 -0
- package/dist/observability/Logger.d.ts +33 -0
- package/dist/observability/Logger.d.ts.map +1 -0
- package/dist/observability/Metrics.d.ts +70 -0
- package/dist/observability/Metrics.d.ts.map +1 -0
- package/dist/observability/Tracing.d.ts +69 -0
- package/dist/observability/Tracing.d.ts.map +1 -0
- package/dist/registry/ToolRegistry.d.ts +68 -0
- package/dist/registry/ToolRegistry.d.ts.map +1 -0
- package/dist/report/AgentReportGenerator.d.ts +53 -0
- package/dist/report/AgentReportGenerator.d.ts.map +1 -0
- package/dist/report/agent-report-template.html +362 -0
- package/dist/report/index.d.ts +3 -0
- package/dist/report/index.d.ts.map +1 -0
- package/dist/report/types.d.ts +101 -0
- package/dist/report/types.d.ts.map +1 -0
- package/dist/runAgent.d.ts +37 -0
- package/dist/runAgent.d.ts.map +1 -0
- package/dist/runtime/Budget.d.ts +63 -0
- package/dist/runtime/Budget.d.ts.map +1 -0
- package/dist/runtime/Evidence.d.ts +19 -0
- package/dist/runtime/Evidence.d.ts.map +1 -0
- package/dist/runtime/PTCRuntime.d.ts +115 -0
- package/dist/runtime/PTCRuntime.d.ts.map +1 -0
- package/dist/runtime/PTCRuntimeObservability.d.ts +26 -0
- package/dist/runtime/PTCRuntimeObservability.d.ts.map +1 -0
- package/dist/runtime/PTCRuntimePipeline.d.ts +62 -0
- package/dist/runtime/PTCRuntimePipeline.d.ts.map +1 -0
- package/dist/runtime/PolicyEngine.d.ts +67 -0
- package/dist/runtime/PolicyEngine.d.ts.map +1 -0
- package/dist/runtime/Retry.d.ts +33 -0
- package/dist/runtime/Retry.d.ts.map +1 -0
- package/dist/runtime/SchemaValidator.d.ts +42 -0
- package/dist/runtime/SchemaValidator.d.ts.map +1 -0
- package/dist/templates/mcp-server.js +48 -0
- package/dist/templates/n8n-invoker.js +11 -0
- package/dist/templates/skill-invoker.js +11 -0
- package/dist/templates/tool-index.js +9 -0
- package/dist/toolDescriptor.d.ts +38 -0
- package/dist/toolDescriptor.d.ts.map +1 -0
- package/dist/types/Events.d.ts +99 -0
- package/dist/types/Events.d.ts.map +1 -0
- package/dist/types/ToolIntent.d.ts +40 -0
- package/dist/types/ToolIntent.d.ts.map +1 -0
- package/dist/types/ToolResult.d.ts +30 -0
- package/dist/types/ToolResult.d.ts.map +1 -0
- package/dist/types/ToolSpec.d.ts +99 -0
- package/dist/types/ToolSpec.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/extensions/examples/README.md +40 -0
- package/extensions/examples/scripts/agent-tool-react-stock.mjs +30 -0
- package/extensions/examples/tools/instruction-only/skill/SKILL.md +26 -0
- package/extensions/examples/tools/web-search/mcp/mcp.json +8 -0
- package/package.json +122 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exposes all tools from a ToolRegistry + PTCRuntime as LangChain tools
|
|
3
|
+
* for local agent use (e.g. with createReactAgent, AgentExecutor).
|
|
4
|
+
*
|
|
5
|
+
* Use: new LangChainToolsHub(runtime, ctxFactory).getLangChainTools()
|
|
6
|
+
*/
|
|
7
|
+
import { DynamicTool } from "@langchain/core/tools";
|
|
8
|
+
import type { PTCRuntime } from "../runtime/PTCRuntime.js";
|
|
9
|
+
import type { ExecContext } from "../types/ToolIntent.js";
|
|
10
|
+
export type ExecContextFactory = () => ExecContext;
|
|
11
|
+
/**
|
|
12
|
+
* Hub that wraps PTCRuntime and exposes every registered tool as a LangChain
|
|
13
|
+
* DynamicTool, so local agents (LangChain AgentExecutor, createReactAgent, etc.)
|
|
14
|
+
* can use the same tools as MCP and the ReAct agent.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LangChainToolsHub {
|
|
17
|
+
private readonly runtime;
|
|
18
|
+
private readonly ctxFactory;
|
|
19
|
+
constructor(runtime: PTCRuntime, ctxFactory?: ExecContextFactory);
|
|
20
|
+
/**
|
|
21
|
+
* Returns all registered tools as LangChain tools (DynamicTool[]).
|
|
22
|
+
* Each tool invokes the runtime through the full pipeline (policy, HITL, etc.).
|
|
23
|
+
*/
|
|
24
|
+
getLangChainTools(): DynamicTool[];
|
|
25
|
+
/**
|
|
26
|
+
* Returns LangChain tools for a subset of tools (by name or query).
|
|
27
|
+
*/
|
|
28
|
+
getLangChainToolsForNames(toolNames: string[]): DynamicTool[];
|
|
29
|
+
private specToLangChainTool;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=LangChainToolsHub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LangChainToolsHub.d.ts","sourceRoot":"","sources":["../../src/llm/LangChainToolsHub.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC;AAiBnD;;;;GAIG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,OAAO,EAAE,UAAU,EACnB,UAAU,GAAE,kBAAwC;IAGvE;;;OAGG;IACH,iBAAiB,IAAI,WAAW,EAAE;IAOlC;;OAEG;IACH,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAO7D,OAAO,CAAC,mBAAmB;CAgC5B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal client for OpenAI-compatible chat completions API.
|
|
3
|
+
* Use createOpenAICompatibleClient(baseUrl, model, apiKey?) and then .chat(messages) or .chatWithTools(messages, tools).
|
|
4
|
+
*/
|
|
5
|
+
export interface ChatMessage {
|
|
6
|
+
role: "system" | "user" | "assistant";
|
|
7
|
+
content: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ChatOptions {
|
|
10
|
+
/** Request timeout in milliseconds. Default 60000. */
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ChatResult {
|
|
14
|
+
content: string;
|
|
15
|
+
raw: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface OpenAIToolDefinition {
|
|
18
|
+
type: "function";
|
|
19
|
+
function: {
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
parameters?: object;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface AssistantMessageWithToolCalls {
|
|
26
|
+
role: "assistant";
|
|
27
|
+
content?: string | null;
|
|
28
|
+
tool_calls?: Array<{
|
|
29
|
+
id: string;
|
|
30
|
+
type: "function";
|
|
31
|
+
function: {
|
|
32
|
+
name: string;
|
|
33
|
+
arguments: string;
|
|
34
|
+
};
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
export interface ChatWithToolsResult {
|
|
38
|
+
message: AssistantMessageWithToolCalls;
|
|
39
|
+
raw: unknown;
|
|
40
|
+
}
|
|
41
|
+
export interface OpenAICompatibleClientConfig {
|
|
42
|
+
baseUrl: string;
|
|
43
|
+
model: string;
|
|
44
|
+
apiKey?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function createOpenAICompatibleClient(baseUrl: string, model: string, apiKey?: string): OpenAICompatibleClient;
|
|
47
|
+
export declare class OpenAICompatibleClient {
|
|
48
|
+
private readonly baseUrl;
|
|
49
|
+
private readonly model;
|
|
50
|
+
private readonly apiKey?;
|
|
51
|
+
constructor(config: OpenAICompatibleClientConfig);
|
|
52
|
+
chat(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResult>;
|
|
53
|
+
chatWithTools(messages: Array<ChatMessage | {
|
|
54
|
+
role: "tool";
|
|
55
|
+
content: string;
|
|
56
|
+
tool_call_id: string;
|
|
57
|
+
} | (Omit<AssistantMessageWithToolCalls, "role"> & {
|
|
58
|
+
role: "assistant";
|
|
59
|
+
})>, tools: OpenAIToolDefinition[], options?: ChatOptions): Promise<ChatWithToolsResult>;
|
|
60
|
+
private buildHeaders;
|
|
61
|
+
private serializeMessage;
|
|
62
|
+
private request;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=OpenAICompatibleClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleClient.d.ts","sourceRoot":"","sources":["../../src/llm/OpenAICompatibleClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,6BAA6B,CAAC;IACvC,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAExB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,MAAM,EAAE,4BAA4B;IAM1C,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC;IAiBhB,aAAa,CACjB,QAAQ,EAAE,KAAK,CACX,WAAW,GACX;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACvD,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CACxE,EACD,KAAK,EAAE,oBAAoB,EAAE,EAC7B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,mBAAmB,CAAC;IA6B/B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,gBAAgB;YAaV,OAAO;CA+BtB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReAct agent: LLM + tool hub, Thought–Action–Observation loop.
|
|
3
|
+
* Use: new ReActAgent(llm, toolHub).run(instruction).
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolRegistry } from "../registry/ToolRegistry.js";
|
|
6
|
+
import type { ToolResult } from "../types/ToolResult.js";
|
|
7
|
+
import type { OpenAICompatibleClient } from "./OpenAICompatibleClient.js";
|
|
8
|
+
export interface ReActAgentToolHub {
|
|
9
|
+
getRegistry(): ToolRegistry;
|
|
10
|
+
invokeTool(toolName: string, args: unknown): Promise<ToolResult>;
|
|
11
|
+
}
|
|
12
|
+
export interface ReActAgentRunOptions {
|
|
13
|
+
systemPrompt?: string;
|
|
14
|
+
maxSteps?: number;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
/** When set, only these tool names are exposed to the LLM (e.g. from agent.yaml tools list). */
|
|
17
|
+
toolNames?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface ReActAgentRunResult {
|
|
20
|
+
content: string;
|
|
21
|
+
steps: number;
|
|
22
|
+
}
|
|
23
|
+
export declare class ReActAgent {
|
|
24
|
+
private readonly llm;
|
|
25
|
+
private readonly toolHub;
|
|
26
|
+
constructor(llm: OpenAICompatibleClient, toolHub: ReActAgentToolHub);
|
|
27
|
+
run(instruction: string, options?: ReActAgentRunOptions): Promise<ReActAgentRunResult>;
|
|
28
|
+
private getTools;
|
|
29
|
+
/**
|
|
30
|
+
* Parse tool-call arguments. Handles models that send text + JSON
|
|
31
|
+
* (e.g. "Let's fetch.{\"symbol\":\"GOOGL\"}") by extracting the last {...} and parsing.
|
|
32
|
+
*/
|
|
33
|
+
private parseArgs;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ReActAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReActAgent.d.ts","sourceRoot":"","sources":["../../src/llm/ReActAgent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,WAAW,IAAI,YAAY,CAAC;IAC5B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAUD,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,iBAAiB;IAGvC,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC;IAkC/B,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAqBlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkP3UEAZHK_cjs = require('./chunk-P3UEAZHK.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "OpenAICompatibleClient", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkP3UEAZHK_cjs.OpenAICompatibleClient; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "ReActAgent", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkP3UEAZHK_cjs.ReActAgent; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "createOpenAICompatibleClient", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkP3UEAZHK_cjs.createOpenAICompatibleClient; }
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=llm-export.cjs.map
|
|
20
|
+
//# sourceMappingURL=llm-export.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"llm-export.cjs"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slim entry: LLM client + ReActAgent only (no ToolHub/n8n/MCP).
|
|
3
|
+
* Use for examples or apps that only need OpenAICompatibleClient and ReActAgent.
|
|
4
|
+
*/
|
|
5
|
+
export { createOpenAICompatibleClient, OpenAICompatibleClient, } from "./llm/OpenAICompatibleClient.js";
|
|
6
|
+
export type { ChatMessage, ChatOptions, ChatResult, OpenAICompatibleClientConfig, OpenAIToolDefinition, AssistantMessageWithToolCalls, ChatWithToolsResult, } from "./llm/OpenAICompatibleClient.js";
|
|
7
|
+
export { ReActAgent } from "./llm/ReActAgent.js";
|
|
8
|
+
export type { ReActAgentToolHub, ReActAgentRunOptions, ReActAgentRunResult, } from "./llm/ReActAgent.js";
|
|
9
|
+
//# sourceMappingURL=llm-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-export.d.ts","sourceRoot":"","sources":["../src/llm-export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"llm-export.js"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolAdapter for MCP tools: holds SDK Client reference, invoke() calls client.callTool.
|
|
3
|
+
* Framework-level support so scripts use registerMCPToolsFromConfig instead of inline MCP logic.
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolAdapter, ToolSpec } from "../types/ToolSpec.js";
|
|
6
|
+
import type { ExecContext } from "../types/ToolIntent.js";
|
|
7
|
+
/** SDK Client type (avoid hard typing on @modelcontextprotocol/sdk in this file for optional dep). */
|
|
8
|
+
export interface MCPClientLike {
|
|
9
|
+
callTool(params: {
|
|
10
|
+
name: string;
|
|
11
|
+
arguments: Record<string, unknown>;
|
|
12
|
+
}): Promise<CallToolResult>;
|
|
13
|
+
}
|
|
14
|
+
export interface CallToolResult {
|
|
15
|
+
content?: Array<{
|
|
16
|
+
type: string;
|
|
17
|
+
text?: string;
|
|
18
|
+
}>;
|
|
19
|
+
toolResult?: unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Adapter that invokes MCP tools via the SDK Client (callTool).
|
|
23
|
+
* Register with runtime after connecting and listing tools; specs must have kind "mcp".
|
|
24
|
+
*/
|
|
25
|
+
export declare class MCPClientAdapter implements ToolAdapter {
|
|
26
|
+
private readonly client;
|
|
27
|
+
readonly kind: "mcp";
|
|
28
|
+
constructor(client: MCPClientLike);
|
|
29
|
+
invoke(spec: ToolSpec, args: unknown, _ctx: ExecContext): Promise<{
|
|
30
|
+
result: unknown;
|
|
31
|
+
raw?: unknown;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=MCPClientAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPClientAdapter.d.ts","sourceRoot":"","sources":["../../src/mcp/MCPClientAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACjG;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAaD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAGtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;gBAEF,MAAM,EAAE,aAAa;IAE5C,MAAM,CACV,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAc/C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connect to an MCP server via stdio using MCPConnectionInfo.
|
|
3
|
+
* Framework-level: uses @modelcontextprotocol/sdk Client + StdioClientTransport.
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPConnectionInfo } from "../discovery/MCPProcessManager.js";
|
|
6
|
+
import type { ToolSpec } from "../types/ToolSpec.js";
|
|
7
|
+
export interface MCPConnectResult {
|
|
8
|
+
/** SDK Client; use listTools() and callTool(). */
|
|
9
|
+
client: MCPClientLike;
|
|
10
|
+
/** Transport; call close() when done. */
|
|
11
|
+
transport: MCPTransportLike;
|
|
12
|
+
}
|
|
13
|
+
export interface MCPClientLike {
|
|
14
|
+
connect(transport: MCPTransportLike): Promise<void>;
|
|
15
|
+
listTools(params?: unknown): Promise<{
|
|
16
|
+
tools: MCPToolDef[];
|
|
17
|
+
}>;
|
|
18
|
+
callTool(params: {
|
|
19
|
+
name: string;
|
|
20
|
+
arguments: Record<string, unknown>;
|
|
21
|
+
}): Promise<CallToolResult>;
|
|
22
|
+
}
|
|
23
|
+
export interface MCPTransportLike {
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export interface MCPToolDef {
|
|
27
|
+
name: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
inputSchema?: object;
|
|
30
|
+
}
|
|
31
|
+
export interface CallToolResult {
|
|
32
|
+
content?: Array<{
|
|
33
|
+
type: string;
|
|
34
|
+
text?: string;
|
|
35
|
+
}>;
|
|
36
|
+
toolResult?: unknown;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Connect to MCP server via stdio. Only stdio is supported; url/SSE not implemented here.
|
|
40
|
+
* Requires @modelcontextprotocol/sdk. Returns client and transport; caller must call transport.close() when done.
|
|
41
|
+
*/
|
|
42
|
+
export declare function connectMCP(connectionInfo: MCPConnectionInfo): Promise<MCPConnectResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Convert MCP listTools() result to ToolSpec[] (kind "mcp") for registry.
|
|
45
|
+
*/
|
|
46
|
+
export declare function mcpToolsToSpecs(tools: MCPToolDef[]): ToolSpec[];
|
|
47
|
+
//# sourceMappingURL=connectMCP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectMCP.d.ts","sourceRoot":"","sources":["../../src/mcp/connectMCP.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,MAAM,EAAE,aAAa,CAAC;IACtB,yCAAyC;IACzC,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACjG;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyB7F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAU/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-level MCP support: connect to MCP server (stdio), list tools, register with runtime.
|
|
3
|
+
*/
|
|
4
|
+
export { MCPClientAdapter } from "./MCPClientAdapter.js";
|
|
5
|
+
export type { MCPClientLike } from "./MCPClientAdapter.js";
|
|
6
|
+
export { connectMCP, mcpToolsToSpecs } from "./connectMCP.js";
|
|
7
|
+
export type { MCPConnectResult, MCPToolDef, CallToolResult as MCPCallToolResult, } from "./connectMCP.js";
|
|
8
|
+
export { registerMCPToolsFromConfig } from "./registerMCPTools.js";
|
|
9
|
+
export type { RegisterMCPToolsOptions, RegisterMCPToolsResult } from "./registerMCPTools.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,IAAI,iBAAiB,GACpC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level API: load mcp.json, connect to MCP server, register tools with runtime.
|
|
3
|
+
* Framework-level so scripts call registerMCPToolsFromConfig() instead of inline MCP logic.
|
|
4
|
+
*/
|
|
5
|
+
import type { PTCRuntime } from "../runtime/PTCRuntime.js";
|
|
6
|
+
import type { ToolRegistry } from "../registry/ToolRegistry.js";
|
|
7
|
+
export interface RegisterMCPToolsOptions {
|
|
8
|
+
/** Path to mcp.json (or dir containing it). Default: process.env.MCP_CONFIG_PATH or "mcp.json" in cwd. */
|
|
9
|
+
configPath?: string;
|
|
10
|
+
/** Tool name for getConnectionInfo (default "mcp"). */
|
|
11
|
+
toolName?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RegisterMCPToolsResult {
|
|
14
|
+
/** Transport; caller must call transport.close() when done. */
|
|
15
|
+
transport: {
|
|
16
|
+
close(): Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Load mcp config (from configPath or MCP_CONFIG_PATH), connect via stdio, list tools,
|
|
21
|
+
* register ToolSpec[] with registry and MCPClientAdapter with runtime. Returns transport for cleanup.
|
|
22
|
+
*/
|
|
23
|
+
export declare function registerMCPToolsFromConfig(runtime: PTCRuntime, registry: ToolRegistry, options?: RegisterMCPToolsOptions): Promise<RegisterMCPToolsResult>;
|
|
24
|
+
//# sourceMappingURL=registerMCPTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerMCPTools.d.ts","sourceRoot":"","sources":["../../src/mcp/registerMCPTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,WAAW,uBAAuB;IACtC,0GAA0G;IAC1G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,SAAS,EAAE;QAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAoBjC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { AnyToolEvent, ToolEventType } from "../types/Events.js";
|
|
2
|
+
/**
|
|
3
|
+
* Event log entry with sequence number.
|
|
4
|
+
*/
|
|
5
|
+
export interface LogEntry {
|
|
6
|
+
seq: number;
|
|
7
|
+
event: AnyToolEvent;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Event log listener type.
|
|
11
|
+
*/
|
|
12
|
+
export type EventListener = (entry: LogEntry) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Append-only event log for tool invocations.
|
|
15
|
+
* Supports in-memory storage with configurable max size and event subscriptions.
|
|
16
|
+
*/
|
|
17
|
+
export declare class EventLog {
|
|
18
|
+
private readonly entries;
|
|
19
|
+
private seq;
|
|
20
|
+
private readonly maxEntries;
|
|
21
|
+
private readonly emitter;
|
|
22
|
+
constructor(options?: {
|
|
23
|
+
maxEntries?: number;
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Append an event to the log.
|
|
27
|
+
*/
|
|
28
|
+
append(event: AnyToolEvent): LogEntry;
|
|
29
|
+
/**
|
|
30
|
+
* Subscribe to all events.
|
|
31
|
+
*/
|
|
32
|
+
on(listener: EventListener): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* Subscribe to events of a specific type.
|
|
35
|
+
*/
|
|
36
|
+
onType(type: ToolEventType, listener: EventListener): () => void;
|
|
37
|
+
/**
|
|
38
|
+
* Query events by filter.
|
|
39
|
+
*/
|
|
40
|
+
query(filter: {
|
|
41
|
+
type?: ToolEventType;
|
|
42
|
+
toolName?: string;
|
|
43
|
+
requestId?: string;
|
|
44
|
+
since?: number;
|
|
45
|
+
limit?: number;
|
|
46
|
+
}): LogEntry[];
|
|
47
|
+
/**
|
|
48
|
+
* Get all entries.
|
|
49
|
+
*/
|
|
50
|
+
getAll(): readonly LogEntry[];
|
|
51
|
+
/**
|
|
52
|
+
* Get entry count.
|
|
53
|
+
*/
|
|
54
|
+
get size(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Clear all entries (for testing).
|
|
57
|
+
*/
|
|
58
|
+
clear(): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=EventLog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventLog.d.ts","sourceRoot":"","sources":["../../src/observability/EventLog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEtD;;;GAGG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAIjD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ;IAiBrC;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IAKvC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IAKhE;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE;QACZ,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,QAAQ,EAAE;IAsBd;;OAEG;IACH,MAAM,IAAI,SAAS,QAAQ,EAAE;IAI7B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type LogLevel = "silent" | "error" | "warn" | "info" | "debug" | "trace";
|
|
2
|
+
export interface DebugOptions {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
level?: LogLevel;
|
|
5
|
+
includeArgs?: boolean;
|
|
6
|
+
includeResults?: boolean;
|
|
7
|
+
includeRaw?: boolean;
|
|
8
|
+
logEvents?: boolean;
|
|
9
|
+
prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ResolvedDebugOptions {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
level: LogLevel;
|
|
14
|
+
includeArgs: boolean;
|
|
15
|
+
includeResults: boolean;
|
|
16
|
+
includeRaw: boolean;
|
|
17
|
+
logEvents: boolean;
|
|
18
|
+
prefix: string;
|
|
19
|
+
}
|
|
20
|
+
export interface Logger {
|
|
21
|
+
options: ResolvedDebugOptions;
|
|
22
|
+
isEnabled(level: LogLevel): boolean;
|
|
23
|
+
error(message: string, meta?: Record<string, unknown>): void;
|
|
24
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
25
|
+
info(message: string, meta?: Record<string, unknown>): void;
|
|
26
|
+
debug(message: string, meta?: Record<string, unknown>): void;
|
|
27
|
+
trace(message: string, meta?: Record<string, unknown>): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function createLogger(options?: DebugOptions): Logger;
|
|
30
|
+
export declare function resolveDebugOptions(options?: DebugOptions): ResolvedDebugOptions;
|
|
31
|
+
export declare function sanitizeForLog(value: unknown, maxLen?: number): string;
|
|
32
|
+
export declare function summarizeForLog(value: unknown, maxLen?: number): string;
|
|
33
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/observability/Logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAWD,wBAAgB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM,CAoC/D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,YAAiB,GAAG,oBAAoB,CAgBpF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,MAAM,CAkBpE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple counter metric.
|
|
3
|
+
*/
|
|
4
|
+
export interface CounterValue {
|
|
5
|
+
name: string;
|
|
6
|
+
labels: Record<string, string>;
|
|
7
|
+
value: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Histogram bucket.
|
|
11
|
+
*/
|
|
12
|
+
export interface HistogramValue {
|
|
13
|
+
name: string;
|
|
14
|
+
labels: Record<string, string>;
|
|
15
|
+
count: number;
|
|
16
|
+
sum: number;
|
|
17
|
+
buckets: Map<number, number>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Lightweight metrics collector for tool invocations.
|
|
21
|
+
* Provides counters and histograms with label support.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Metrics {
|
|
24
|
+
private readonly counters;
|
|
25
|
+
private readonly histograms;
|
|
26
|
+
private readonly defaultBuckets;
|
|
27
|
+
/**
|
|
28
|
+
* Increment a counter.
|
|
29
|
+
*/
|
|
30
|
+
increment(name: string, labels?: Record<string, string>, value?: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Record a value in a histogram.
|
|
33
|
+
*/
|
|
34
|
+
observe(name: string, labels: Record<string, string>, value: number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get a counter value.
|
|
37
|
+
*/
|
|
38
|
+
getCounter(name: string, labels?: Record<string, string>): number;
|
|
39
|
+
/**
|
|
40
|
+
* Get histogram stats.
|
|
41
|
+
*/
|
|
42
|
+
getHistogram(name: string, labels: Record<string, string>): HistogramValue | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get all counter values.
|
|
45
|
+
*/
|
|
46
|
+
getAllCounters(): CounterValue[];
|
|
47
|
+
/**
|
|
48
|
+
* Get all histogram values.
|
|
49
|
+
*/
|
|
50
|
+
getAllHistograms(): HistogramValue[];
|
|
51
|
+
/**
|
|
52
|
+
* Record standard tool invocation metrics.
|
|
53
|
+
*/
|
|
54
|
+
recordInvocation(toolName: string, ok: boolean, durationMs: number): void;
|
|
55
|
+
/**
|
|
56
|
+
* Record a retry event.
|
|
57
|
+
*/
|
|
58
|
+
recordRetry(toolName: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Record a policy denial.
|
|
61
|
+
*/
|
|
62
|
+
recordPolicyDenied(toolName: string, reason: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* Reset all metrics (for testing).
|
|
65
|
+
*/
|
|
66
|
+
reset(): void;
|
|
67
|
+
private makeKey;
|
|
68
|
+
private parseKey;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=Metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../../src/observability/Metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IAEJ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,KAAK,SAAI,GAAG,IAAI;IAK7E;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAY1E;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;IAIrE;;OAEG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,cAAc,GAAG,SAAS;IAa7B;;OAEG;IACH,cAAc,IAAI,YAAY,EAAE;IAShC;;OAEG;IACH,gBAAgB,IAAI,cAAc,EAAE;IAapC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQzE;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,QAAQ;CAejB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trace span representing a unit of work.
|
|
3
|
+
*/
|
|
4
|
+
export interface Span {
|
|
5
|
+
spanId: string;
|
|
6
|
+
traceId: string;
|
|
7
|
+
parentSpanId?: string;
|
|
8
|
+
name: string;
|
|
9
|
+
startTime: number;
|
|
10
|
+
endTime?: number;
|
|
11
|
+
durationMs?: number;
|
|
12
|
+
status: "ok" | "error" | "in_progress";
|
|
13
|
+
attributes: Record<string, string | number | boolean>;
|
|
14
|
+
events: SpanEvent[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* An event within a span.
|
|
18
|
+
*/
|
|
19
|
+
export interface SpanEvent {
|
|
20
|
+
name: string;
|
|
21
|
+
timestamp: number;
|
|
22
|
+
attributes?: Record<string, string | number | boolean>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Lightweight tracing system for tool invocation spans.
|
|
26
|
+
* Compatible with OpenTelemetry trace/span ID format.
|
|
27
|
+
*/
|
|
28
|
+
export declare class Tracing {
|
|
29
|
+
private readonly spans;
|
|
30
|
+
private readonly traceSpans;
|
|
31
|
+
/**
|
|
32
|
+
* Start a new span.
|
|
33
|
+
*/
|
|
34
|
+
startSpan(options: {
|
|
35
|
+
name: string;
|
|
36
|
+
traceId?: string;
|
|
37
|
+
parentSpanId?: string;
|
|
38
|
+
attributes?: Record<string, string | number | boolean>;
|
|
39
|
+
}): Span;
|
|
40
|
+
/**
|
|
41
|
+
* End a span and calculate duration.
|
|
42
|
+
*/
|
|
43
|
+
endSpan(spanId: string, status?: "ok" | "error"): Span | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Add an event to a span.
|
|
46
|
+
*/
|
|
47
|
+
addEvent(spanId: string, name: string, attributes?: Record<string, string | number | boolean>): void;
|
|
48
|
+
/**
|
|
49
|
+
* Set attributes on a span.
|
|
50
|
+
*/
|
|
51
|
+
setAttributes(spanId: string, attributes: Record<string, string | number | boolean>): void;
|
|
52
|
+
/**
|
|
53
|
+
* Get a span by ID.
|
|
54
|
+
*/
|
|
55
|
+
getSpan(spanId: string): Span | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Get all spans for a trace.
|
|
58
|
+
*/
|
|
59
|
+
getTrace(traceId: string): Span[];
|
|
60
|
+
/**
|
|
61
|
+
* Create a child span from a parent.
|
|
62
|
+
*/
|
|
63
|
+
createChildSpan(parentSpanId: string, name: string, attributes?: Record<string, string | number | boolean>): Span | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Clear all traces (for testing).
|
|
66
|
+
*/
|
|
67
|
+
clear(): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=Tracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tracing.d.ts","sourceRoot":"","sources":["../../src/observability/Tracing.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,aAAa,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE1D;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACxD,GAAG,IAAI;IAqBR;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,GAAG,OAAc,GAAG,IAAI,GAAG,SAAS;IAUxE;;OAEG;IACH,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,IAAI;IAMP;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI;IAMP;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIzC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE;IAOjC;;OAEG;IACH,eAAe,CACb,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,IAAI,GAAG,SAAS;IAWnB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Capability, ToolKind, ToolSpec } from "../types/ToolSpec.js";
|
|
2
|
+
/**
|
|
3
|
+
* Search query for tools.
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolSearchQuery {
|
|
6
|
+
/** Text search in name/description/tags */
|
|
7
|
+
text?: string;
|
|
8
|
+
/** Filter by tool kind */
|
|
9
|
+
kind?: ToolKind;
|
|
10
|
+
/** Filter by required capabilities */
|
|
11
|
+
capabilities?: Capability[];
|
|
12
|
+
/** Filter by tags */
|
|
13
|
+
tags?: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Tool Registry: manages tool registration, lookup, and search.
|
|
17
|
+
* Supports both static registration and dynamic discovery via adapters.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ToolRegistry {
|
|
20
|
+
private readonly tools;
|
|
21
|
+
private readonly tagIndex;
|
|
22
|
+
private readonly kindIndex;
|
|
23
|
+
/**
|
|
24
|
+
* Register a single tool spec.
|
|
25
|
+
* Overwrites if same name already exists.
|
|
26
|
+
*/
|
|
27
|
+
register(spec: ToolSpec): void;
|
|
28
|
+
/**
|
|
29
|
+
* Register multiple tool specs at once.
|
|
30
|
+
*/
|
|
31
|
+
bulkRegister(specs: ToolSpec[]): void;
|
|
32
|
+
/**
|
|
33
|
+
* Unregister a tool by name.
|
|
34
|
+
*/
|
|
35
|
+
unregister(name: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Get a tool spec by name.
|
|
38
|
+
*/
|
|
39
|
+
get(name: string): ToolSpec | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a tool exists.
|
|
42
|
+
*/
|
|
43
|
+
has(name: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Search tools by query.
|
|
46
|
+
*/
|
|
47
|
+
search(query: ToolSearchQuery): ToolSpec[];
|
|
48
|
+
/**
|
|
49
|
+
* List all registered tool names.
|
|
50
|
+
*/
|
|
51
|
+
list(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Get count of registered tools.
|
|
54
|
+
*/
|
|
55
|
+
get size(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Export a snapshot of all registered tools (for debugging/routing).
|
|
58
|
+
*/
|
|
59
|
+
snapshot(): ToolSpec[];
|
|
60
|
+
/**
|
|
61
|
+
* Clear all registered tools.
|
|
62
|
+
*/
|
|
63
|
+
clear(): void;
|
|
64
|
+
private validateSpec;
|
|
65
|
+
private indexTool;
|
|
66
|
+
private deindexTool;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ToolRegistry.d.ts.map
|