@anvia/core 0.11.3 → 0.12.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/index.d.ts +11 -8
- package/dist/agent/index.js +10 -9
- package/dist/{agent-Bcpuodu2.d.ts → agent-BWF8_O8k.d.ts} +14 -5
- package/dist/{chunk-MLMXQ2OV.js → chunk-4AJJIIAQ.js} +9 -7
- package/dist/chunk-4AJJIIAQ.js.map +1 -0
- package/dist/{chunk-7CQAERL3.js → chunk-KTTIPWE7.js} +457 -107
- package/dist/chunk-KTTIPWE7.js.map +1 -0
- package/dist/{chunk-2GXGB6U5.js → chunk-MIJUAWHU.js} +4 -4
- package/dist/{chunk-5EDHXYH5.js → chunk-PGFYN5ZX.js} +12 -7
- package/dist/chunk-PGFYN5ZX.js.map +1 -0
- package/dist/{chunk-FV5B4SGK.js → chunk-R7F2JF7J.js} +6 -6
- package/dist/chunk-R7F2JF7J.js.map +1 -0
- package/dist/{chunk-NI637AGP.js → chunk-TIH4QM55.js} +12 -3
- package/dist/chunk-TIH4QM55.js.map +1 -0
- package/dist/chunk-YRERPIA5.js +451 -0
- package/dist/chunk-YRERPIA5.js.map +1 -0
- package/dist/{chunk-V3WTT7TE.js → chunk-ZGIE73BH.js} +2 -2
- package/dist/evals/index.d.ts +6 -5
- package/dist/evals/index.js +14 -13
- package/dist/evals/index.js.map +1 -1
- package/dist/extractor/index.d.ts +6 -5
- package/dist/extractor/index.js +11 -10
- package/dist/guardrails/index.d.ts +211 -0
- package/dist/guardrails/index.js +35 -0
- package/dist/guardrails/index.js.map +1 -0
- package/dist/{index-CD9jb9Or.d.ts → index-DsWWqP0Q.d.ts} +8 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +34 -16
- package/dist/internal/agent.d.ts +6 -5
- package/dist/internal/agent.js +9 -8
- package/dist/mcp/index.d.ts +4 -3
- package/dist/{middleware-ByyL6Rj0.d.ts → middleware-BTR0eRtx.d.ts} +2 -2
- package/dist/observability/index.d.ts +3 -2
- package/dist/pipeline/index.d.ts +6 -5
- package/dist/pipeline/index.js +3 -3
- package/dist/request/index.d.ts +6 -5
- package/dist/request/index.js +8 -7
- package/dist/skills/index.d.ts +4 -3
- package/dist/skills/index.js +6 -6
- package/dist/{think-tool-B065hm73.d.ts → think-tool-Bn3HHu_z.d.ts} +4 -1
- package/dist/tool/index.d.ts +5 -4
- package/dist/tool/index.js +5 -5
- package/dist/{tool-B8K543oQ.d.ts → tool-DGELXD2z.d.ts} +3 -0
- package/dist/{types-Pl4PFQWL.d.ts → types-9VPKg7ih.d.ts} +1 -1
- package/dist/{types-BzUuhjKr.d.ts → types-Bx_ZtjPi.d.ts} +1 -1
- package/dist/{types-7F_IKQQW.d.ts → types-Dc83Qzch.d.ts} +1 -1
- package/dist/vector-store/index.d.ts +4 -3
- package/dist/vector-store/index.js +3 -3
- package/package.json +6 -2
- package/dist/chunk-5EDHXYH5.js.map +0 -1
- package/dist/chunk-7CQAERL3.js.map +0 -1
- package/dist/chunk-FV5B4SGK.js.map +0 -1
- package/dist/chunk-MLMXQ2OV.js.map +0 -1
- package/dist/chunk-NI637AGP.js.map +0 -1
- /package/dist/{chunk-2GXGB6U5.js.map → chunk-MIJUAWHU.js.map} +0 -0
- /package/dist/{chunk-V3WTT7TE.js.map → chunk-ZGIE73BH.js.map} +0 -0
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { M as McpConnection, a as McpServer, b as McpStdioOptions, c as McpHttpOptions, d as McpSseOptions } from '../types-
|
|
2
|
-
export { e as McpClient, f as McpToolCallContent, g as McpToolCallResult, h as McpToolDefinition } from '../types-
|
|
1
|
+
import { M as McpConnection, a as McpServer, b as McpStdioOptions, c as McpHttpOptions, d as McpSseOptions } from '../types-Dc83Qzch.js';
|
|
2
|
+
export { e as McpClient, f as McpToolCallContent, g as McpToolCallResult, h as McpToolDefinition } from '../types-Dc83Qzch.js';
|
|
3
3
|
import '@modelcontextprotocol/sdk/client/sse.js';
|
|
4
4
|
import '@modelcontextprotocol/sdk/client/stdio.js';
|
|
5
5
|
import '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
6
6
|
import '../types-q9G7Bvwl.js';
|
|
7
|
-
import '../tool-
|
|
7
|
+
import '../tool-DGELXD2z.js';
|
|
8
|
+
import '../guardrails/index.js';
|
|
8
9
|
|
|
9
10
|
declare function connectMcp(connection: McpConnection): Promise<McpServer>;
|
|
10
11
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h as ToolDefinition, b as CompletionRequest, c as CompletionResponse, e as JsonValue, k as ToolResultContent } from './types-q9G7Bvwl.js';
|
|
2
2
|
import { V as VectorMetadata, E as EmbeddingModel, c as EmbeddedDocument } from './types-DHHZztGO.js';
|
|
3
|
-
import { A as AnyTool, f as ToolCallContext, N as NormalizedToolOutput } from './tool-
|
|
4
|
-
import { a as VectorSearchIndex } from './types-
|
|
3
|
+
import { A as AnyTool, f as ToolCallContext, N as NormalizedToolOutput } from './tool-DGELXD2z.js';
|
|
4
|
+
import { a as VectorSearchIndex } from './types-9VPKg7ih.js';
|
|
5
5
|
|
|
6
6
|
declare class ToolSet {
|
|
7
7
|
private readonly tools;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { f as AgentGenerationEndArgs, g as AgentGenerationErrorArgs, h as AgentGenerationObserver, i as AgentGenerationStartArgs, j as AgentGenerationUpdateArgs, b as AgentObserver, d as AgentObserverRegistration, k as AgentRunEndArgs, l as AgentRunErrorArgs, m as AgentRunEventArgs, n as AgentRunObserver, o as AgentRunPromptRef, p as AgentRunStartArgs, q as AgentToolEndArgs, r as AgentToolErrorArgs, s as AgentToolObserver, t as AgentToolStartArgs, u as AgentToolStreamEventArgs, v as AgentTraceInfo, c as AgentTraceOptions, O as ObserveOptions, w as createObserver } from '../index-
|
|
1
|
+
export { f as AgentGenerationEndArgs, g as AgentGenerationErrorArgs, h as AgentGenerationObserver, i as AgentGenerationStartArgs, j as AgentGenerationUpdateArgs, b as AgentObserver, d as AgentObserverRegistration, k as AgentRunEndArgs, l as AgentRunErrorArgs, m as AgentRunEventArgs, n as AgentRunObserver, o as AgentRunPromptRef, p as AgentRunStartArgs, q as AgentToolEndArgs, r as AgentToolErrorArgs, s as AgentToolObserver, t as AgentToolStartArgs, u as AgentToolStreamEventArgs, v as AgentTraceInfo, c as AgentTraceOptions, O as ObserveOptions, w as createObserver } from '../index-DsWWqP0Q.js';
|
|
2
2
|
import '../types-q9G7Bvwl.js';
|
|
3
|
-
import '../
|
|
3
|
+
import '../guardrails/index.js';
|
|
4
|
+
import '../tool-DGELXD2z.js';
|
package/dist/pipeline/index.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { A as Agent } from '../agent-
|
|
2
|
+
import { A as Agent } from '../agent-BWF8_O8k.js';
|
|
3
3
|
import { J as JsonObject, C as CompletionModel } from '../types-q9G7Bvwl.js';
|
|
4
4
|
import { Extractor } from '../extractor/index.js';
|
|
5
|
+
import '../guardrails/index.js';
|
|
5
6
|
import '../types-CGML74sE.js';
|
|
6
7
|
import '../types-CqG6d7Ce.js';
|
|
7
|
-
import '../index-
|
|
8
|
-
import '../tool-
|
|
9
|
-
import '../middleware-
|
|
8
|
+
import '../index-DsWWqP0Q.js';
|
|
9
|
+
import '../tool-DGELXD2z.js';
|
|
10
|
+
import '../middleware-BTR0eRtx.js';
|
|
10
11
|
import '../types-DHHZztGO.js';
|
|
11
|
-
import '../types-
|
|
12
|
+
import '../types-9VPKg7ih.js';
|
|
12
13
|
import '../zod-schema-C7F4clpm.js';
|
|
13
14
|
|
|
14
15
|
/** Minimal interface for anything that can run as a pipeline stage. */
|
package/dist/pipeline/index.js
CHANGED
package/dist/request/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { M as Message } from '../types-q9G7Bvwl.js';
|
|
2
|
-
import { d as ToolApprovalRequest } from '../tool-
|
|
3
|
-
export { P as PromptRequest } from '../agent-
|
|
4
|
-
export { A as AgentChildStreamEvent, e as AgentDeltaEvent, a as AgentStreamEvent, P as PromptResponse } from '../index-
|
|
2
|
+
import { d as ToolApprovalRequest } from '../tool-DGELXD2z.js';
|
|
3
|
+
export { P as PromptRequest } from '../agent-BWF8_O8k.js';
|
|
4
|
+
export { A as AgentChildStreamEvent, e as AgentDeltaEvent, a as AgentStreamEvent, P as PromptResponse } from '../index-DsWWqP0Q.js';
|
|
5
|
+
import '../guardrails/index.js';
|
|
5
6
|
import '../types-CGML74sE.js';
|
|
6
7
|
import '../types-CqG6d7Ce.js';
|
|
7
|
-
import '../middleware-
|
|
8
|
+
import '../middleware-BTR0eRtx.js';
|
|
8
9
|
import '../types-DHHZztGO.js';
|
|
9
|
-
import '../types-
|
|
10
|
+
import '../types-9VPKg7ih.js';
|
|
10
11
|
|
|
11
12
|
declare class MaxTurnsError extends Error {
|
|
12
13
|
readonly maxTurns: number;
|
package/dist/request/index.js
CHANGED
|
@@ -3,17 +3,18 @@ import {
|
|
|
3
3
|
PromptCancelledError,
|
|
4
4
|
PromptRequest,
|
|
5
5
|
ToolApprovalRequiredError
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-KTTIPWE7.js";
|
|
7
7
|
import "../chunk-XUUY2L2D.js";
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-R7F2JF7J.js";
|
|
9
|
+
import "../chunk-PGFYN5ZX.js";
|
|
10
|
+
import "../chunk-NPZDYOE6.js";
|
|
11
|
+
import "../chunk-MMHG7WAM.js";
|
|
12
12
|
import "../chunk-SRBW3LD7.js";
|
|
13
13
|
import "../chunk-5LFGEMIW.js";
|
|
14
14
|
import "../chunk-WQKHFADH.js";
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-JS5MGVNM.js";
|
|
16
|
+
import "../chunk-OIMLU4SF.js";
|
|
17
|
+
import "../chunk-YRERPIA5.js";
|
|
17
18
|
export {
|
|
18
19
|
MaxTurnsError,
|
|
19
20
|
PromptCancelledError,
|
package/dist/skills/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { b as SkillLoader, a as SkillSet } from '../types-
|
|
2
|
-
export { c as Skill, S as SkillValidationError, d as SkillValidationIssue } from '../types-
|
|
3
|
-
import '../tool-
|
|
1
|
+
import { b as SkillLoader, a as SkillSet } from '../types-Bx_ZtjPi.js';
|
|
2
|
+
export { c as Skill, S as SkillValidationError, d as SkillValidationIssue } from '../types-Bx_ZtjPi.js';
|
|
3
|
+
import '../tool-DGELXD2z.js';
|
|
4
4
|
import '../types-q9G7Bvwl.js';
|
|
5
|
+
import '../guardrails/index.js';
|
|
5
6
|
|
|
6
7
|
declare function loadSkills(loaders: SkillLoader | SkillLoader[]): Promise<SkillSet>;
|
|
7
8
|
|
package/dist/skills/index.js
CHANGED
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
SkillValidationError,
|
|
3
3
|
loadSkills,
|
|
4
4
|
skill
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-ZGIE73BH.js";
|
|
6
6
|
import "../chunk-YK4WAAS4.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-OIMLU4SF.js";
|
|
7
|
+
import "../chunk-R7F2JF7J.js";
|
|
8
|
+
import "../chunk-PGFYN5ZX.js";
|
|
9
|
+
import "../chunk-MMHG7WAM.js";
|
|
11
10
|
import "../chunk-5LFGEMIW.js";
|
|
12
11
|
import "../chunk-WQKHFADH.js";
|
|
13
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-JS5MGVNM.js";
|
|
13
|
+
import "../chunk-OIMLU4SF.js";
|
|
14
14
|
export {
|
|
15
15
|
SkillValidationError,
|
|
16
16
|
loadSkills,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { ToolGuardrail, ToolResultGuardrail } from './guardrails/index.js';
|
|
2
3
|
import { Z as ZodSchema } from './zod-schema-C7F4clpm.js';
|
|
3
|
-
import { c as ToolApprovalPolicy, f as ToolCallContext, T as Tool } from './tool-
|
|
4
|
+
import { c as ToolApprovalPolicy, f as ToolCallContext, T as Tool } from './tool-DGELXD2z.js';
|
|
4
5
|
|
|
5
6
|
type CreateToolOptions<InputSchema extends ZodSchema, OutputSchema extends ZodSchema | undefined = undefined, Output = unknown> = {
|
|
6
7
|
name: string;
|
|
@@ -8,6 +9,8 @@ type CreateToolOptions<InputSchema extends ZodSchema, OutputSchema extends ZodSc
|
|
|
8
9
|
input: InputSchema;
|
|
9
10
|
output?: OutputSchema;
|
|
10
11
|
approval?: ToolApprovalPolicy<z.output<InputSchema>>;
|
|
12
|
+
inputGuardrails?: ToolGuardrail<z.output<InputSchema>>[] | undefined;
|
|
13
|
+
outputGuardrails?: ToolResultGuardrail<z.output<InputSchema>>[] | undefined;
|
|
11
14
|
execute(args: z.output<InputSchema>, context: ToolCallContext): OutputSchema extends ZodSchema ? z.input<OutputSchema> | Promise<z.input<OutputSchema>> : Output | Promise<Output>;
|
|
12
15
|
};
|
|
13
16
|
declare function createTool<InputSchema extends ZodSchema, Output = unknown>(options: CreateToolOptions<InputSchema, undefined, Output> & {
|
package/dist/tool/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export { b as CreateThinkToolOptions, C as CreateToolOptions, c as createThinkTool, a as createTool } from '../think-tool-
|
|
2
|
-
export { A as AgentMiddleware, C as CompletionRequestMiddlewareArgs, a as CompletionRequestMiddlewareResult, b as CompletionResponseMiddlewareArgs, c as CompletionResponseMiddlewareResult, D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolInputMiddlewareArgs, d as ToolInputMiddlewareResult, e as ToolMiddleware, f as ToolOutputMiddlewareArgs, g as ToolOutputMiddlewareResult, h as ToolResultMiddlewareArgs, k as ToolSearchDocument, l as ToolSet, i as createMiddleware, m as createToolIndex, j as createToolMiddleware, n as embedTools, o as isDynamicToolIndex } from '../middleware-
|
|
3
|
-
export { A as AnyTool, N as NormalizedToolOutput, T as Tool, a as ToolApprovalContext, b as ToolApprovalDecision, c as ToolApprovalPolicy, d as ToolApprovalRequest, h as ToolApprovalRunContext, e as ToolApprovalsOptions, f as ToolCallContext, g as ToolCallStreamEvent, i as ToolOutput, n as normalizeToolResultOutput, p as parseToolArgs, t as toolResultContentToText } from '../tool-
|
|
1
|
+
export { b as CreateThinkToolOptions, C as CreateToolOptions, c as createThinkTool, a as createTool } from '../think-tool-Bn3HHu_z.js';
|
|
2
|
+
export { A as AgentMiddleware, C as CompletionRequestMiddlewareArgs, a as CompletionRequestMiddlewareResult, b as CompletionResponseMiddlewareArgs, c as CompletionResponseMiddlewareResult, D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolInputMiddlewareArgs, d as ToolInputMiddlewareResult, e as ToolMiddleware, f as ToolOutputMiddlewareArgs, g as ToolOutputMiddlewareResult, h as ToolResultMiddlewareArgs, k as ToolSearchDocument, l as ToolSet, i as createMiddleware, m as createToolIndex, j as createToolMiddleware, n as embedTools, o as isDynamicToolIndex } from '../middleware-BTR0eRtx.js';
|
|
3
|
+
export { A as AnyTool, N as NormalizedToolOutput, T as Tool, a as ToolApprovalContext, b as ToolApprovalDecision, c as ToolApprovalPolicy, d as ToolApprovalRequest, h as ToolApprovalRunContext, e as ToolApprovalsOptions, f as ToolCallContext, g as ToolCallStreamEvent, i as ToolOutput, n as normalizeToolResultOutput, p as parseToolArgs, t as toolResultContentToText } from '../tool-DGELXD2z.js';
|
|
4
4
|
export { q as isToolResultContentArray, s as serializeToolOutput } from '../types-q9G7Bvwl.js';
|
|
5
5
|
import 'zod';
|
|
6
|
+
import '../guardrails/index.js';
|
|
6
7
|
import '../zod-schema-C7F4clpm.js';
|
|
7
8
|
import '../types-DHHZztGO.js';
|
|
8
|
-
import '../types-
|
|
9
|
+
import '../types-9VPKg7ih.js';
|
|
9
10
|
|
|
10
11
|
declare class ToolCallError extends Error {
|
|
11
12
|
readonly cause?: unknown | undefined;
|
package/dist/tool/index.js
CHANGED
|
@@ -13,18 +13,18 @@ import {
|
|
|
13
13
|
normalizeToolResultOutput,
|
|
14
14
|
parseToolArgs,
|
|
15
15
|
toolResultContentToText
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-R7F2JF7J.js";
|
|
17
17
|
import {
|
|
18
18
|
createTool
|
|
19
|
-
} from "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-OIMLU4SF.js";
|
|
19
|
+
} from "../chunk-PGFYN5ZX.js";
|
|
20
|
+
import "../chunk-MMHG7WAM.js";
|
|
22
21
|
import {
|
|
23
22
|
isToolResultContentArray,
|
|
24
23
|
serializeToolResultOutput
|
|
25
24
|
} from "../chunk-5LFGEMIW.js";
|
|
26
25
|
import "../chunk-WQKHFADH.js";
|
|
27
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-JS5MGVNM.js";
|
|
27
|
+
import "../chunk-OIMLU4SF.js";
|
|
28
28
|
export {
|
|
29
29
|
ToolCallError,
|
|
30
30
|
ToolJsonError,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { J as JsonObject, h as ToolDefinition, k as ToolResultContent, e as JsonValue } from './types-q9G7Bvwl.js';
|
|
2
|
+
import { ToolGuardrail, ToolResultGuardrail } from './guardrails/index.js';
|
|
2
3
|
|
|
3
4
|
type ToolApprovalRunContext = {
|
|
4
5
|
agentId: string;
|
|
@@ -45,6 +46,8 @@ type ToolCallContext = {
|
|
|
45
46
|
interface Tool<Args = unknown, Output = unknown> {
|
|
46
47
|
readonly name: string;
|
|
47
48
|
readonly approval?: ToolApprovalPolicy<Args>;
|
|
49
|
+
readonly inputGuardrails?: ToolGuardrail<Args>[] | undefined;
|
|
50
|
+
readonly outputGuardrails?: ToolResultGuardrail<Args>[] | undefined;
|
|
48
51
|
definition(prompt: string): ToolDefinition | Promise<ToolDefinition>;
|
|
49
52
|
call(args: Args, context?: ToolCallContext): Output | Promise<Output>;
|
|
50
53
|
parseApprovalArgs?(args: unknown): Args;
|
|
@@ -2,7 +2,7 @@ import { SSEClientTransportOptions } from '@modelcontextprotocol/sdk/client/sse.
|
|
|
2
2
|
import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
3
|
import { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
4
|
import { J as JsonObject } from './types-q9G7Bvwl.js';
|
|
5
|
-
import { A as AnyTool } from './tool-
|
|
5
|
+
import { A as AnyTool } from './tool-DGELXD2z.js';
|
|
6
6
|
|
|
7
7
|
type McpToolDefinition = {
|
|
8
8
|
name: string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { a as VectorMetadataValue, V as VectorMetadata, E as EmbeddingModel, c as EmbeddedDocument, d as Embedding } from '../types-DHHZztGO.js';
|
|
2
|
-
import { T as Tool } from '../tool-
|
|
3
|
-
import { V as VectorFilter, a as VectorSearchIndex, I as IndexStrategy, b as VectorSearchRequest, c as VectorSearchResult, d as VectorInspectRequest, e as VectorInspectPage, f as VectorSearchToolOptions } from '../types-
|
|
4
|
-
export { L as LshOptions, g as VectorInspectItem } from '../types-
|
|
2
|
+
import { T as Tool } from '../tool-DGELXD2z.js';
|
|
3
|
+
import { V as VectorFilter, a as VectorSearchIndex, I as IndexStrategy, b as VectorSearchRequest, c as VectorSearchResult, d as VectorInspectRequest, e as VectorInspectPage, f as VectorSearchToolOptions } from '../types-9VPKg7ih.js';
|
|
4
|
+
export { L as LshOptions, g as VectorInspectItem } from '../types-9VPKg7ih.js';
|
|
5
5
|
import '../types-q9G7Bvwl.js';
|
|
6
|
+
import '../guardrails/index.js';
|
|
6
7
|
|
|
7
8
|
declare const vectorFilter: {
|
|
8
9
|
eq(key: string, value: VectorMetadataValue): VectorFilter;
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
InMemoryVectorStore,
|
|
4
4
|
createVectorSearchTool,
|
|
5
5
|
vectorFilter
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-PGFYN5ZX.js";
|
|
7
|
+
import "../chunk-MMHG7WAM.js";
|
|
8
|
+
import "../chunk-WQKHFADH.js";
|
|
7
9
|
import "../chunk-JS5MGVNM.js";
|
|
8
10
|
import "../chunk-OIMLU4SF.js";
|
|
9
|
-
import "../chunk-WQKHFADH.js";
|
|
10
|
-
import "../chunk-MMHG7WAM.js";
|
|
11
11
|
export {
|
|
12
12
|
InMemoryVectorIndex,
|
|
13
13
|
InMemoryVectorStore,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anvia/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Core runtime primitives for context-aware Anvia agents.",
|
|
5
5
|
"author": "anvia",
|
|
6
6
|
"maintainer": "Indra Zulfi",
|
|
@@ -56,6 +56,10 @@
|
|
|
56
56
|
"types": "./dist/extractor/index.d.ts",
|
|
57
57
|
"import": "./dist/extractor/index.js"
|
|
58
58
|
},
|
|
59
|
+
"./guardrails": {
|
|
60
|
+
"types": "./dist/guardrails/index.d.ts",
|
|
61
|
+
"import": "./dist/guardrails/index.js"
|
|
62
|
+
},
|
|
59
63
|
"./mcp": {
|
|
60
64
|
"types": "./dist/mcp/index.d.ts",
|
|
61
65
|
"import": "./dist/mcp/index.js"
|
|
@@ -127,7 +131,7 @@
|
|
|
127
131
|
"vitest": "^4.0.8"
|
|
128
132
|
},
|
|
129
133
|
"scripts": {
|
|
130
|
-
"build": "tsup src/index.ts src/agent/index.ts src/hooks/index.ts src/request/index.ts src/internal/agent.ts src/audio-generation/index.ts src/completion/index.ts src/embeddings/index.ts src/evals/index.ts src/image-generation/index.ts src/loaders/index.ts src/extractor/index.ts src/mcp/index.ts src/memory/index.ts src/model-listing/index.ts src/observability/index.ts src/pipeline/index.ts src/skills/index.ts src/streaming/index.ts src/tool/index.ts src/ui/index.ts src/transcription/index.ts src/vector-store/index.ts --format esm --dts --sourcemap --clean",
|
|
134
|
+
"build": "tsup src/index.ts src/agent/index.ts src/hooks/index.ts src/request/index.ts src/internal/agent.ts src/audio-generation/index.ts src/completion/index.ts src/embeddings/index.ts src/evals/index.ts src/image-generation/index.ts src/loaders/index.ts src/extractor/index.ts src/guardrails/index.ts src/mcp/index.ts src/memory/index.ts src/model-listing/index.ts src/observability/index.ts src/pipeline/index.ts src/skills/index.ts src/streaming/index.ts src/tool/index.ts src/ui/index.ts src/transcription/index.ts src/vector-store/index.ts --format esm --dts --sourcemap --clean",
|
|
131
135
|
"test": "vitest run",
|
|
132
136
|
"typecheck": "tsc --noEmit"
|
|
133
137
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vector-store/index.ts","../src/tool/create-tool.ts","../src/vector-store/filter.ts","../src/vector-store/lsh.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n cosineSimilarity,\n type EmbeddedDocument,\n type Embedding,\n type EmbeddingModel,\n embedText,\n type VectorMetadata,\n} from \"../embeddings\";\nimport { createTool } from \"../tool/create-tool\";\nimport type { Tool } from \"../tool/tool\";\nimport { matchesVectorFilter } from \"./filter\";\nimport { LshIndex } from \"./lsh\";\nimport type {\n IndexStrategy,\n VectorInspectPage,\n VectorInspectRequest,\n VectorSearchIndex,\n VectorSearchRequest,\n VectorSearchResult,\n VectorSearchToolOptions,\n} from \"./types\";\n\nexport { vectorFilter } from \"./filter\";\nexport type * from \"./types\";\n\ntype StoredDocument<T, Metadata extends VectorMetadata> = EmbeddedDocument<T, Metadata>;\n\nexport class InMemoryVectorStore<T, Metadata extends VectorMetadata = VectorMetadata> {\n private readonly documents = new Map<string, StoredDocument<T, Metadata>>();\n private indexStrategy: IndexStrategy;\n private lshIndex: LshIndex | undefined;\n private embeddingDimension: number | undefined;\n\n constructor(options: { index?: IndexStrategy } = {}) {\n this.indexStrategy = options.index ?? { type: \"bruteForce\" };\n }\n\n static fromDocuments<T, Metadata extends VectorMetadata = VectorMetadata>(\n documents: Array<EmbeddedDocument<T, Metadata>>,\n options: { index?: IndexStrategy } = {},\n ): InMemoryVectorStore<T, Metadata> {\n const store = new InMemoryVectorStore<T, Metadata>(options);\n store.addDocuments(documents);\n return store;\n }\n\n addDocuments(documents: Array<EmbeddedDocument<T, Metadata>>): this {\n this.validateDocumentDimensions(documents);\n for (const document of documents) {\n this.documents.set(document.id, document);\n }\n this.rebuildLshIndex();\n return this;\n }\n\n get(id: string): StoredDocument<T, Metadata> | undefined {\n return this.documents.get(id);\n }\n\n values(): Array<StoredDocument<T, Metadata>> {\n return [...this.documents.values()];\n }\n\n len(): number {\n return this.documents.size;\n }\n\n isEmpty(): boolean {\n return this.documents.size === 0;\n }\n\n index(model: EmbeddingModel): InMemoryVectorIndex<T, Metadata> {\n return new InMemoryVectorIndex(model, this);\n }\n\n candidates(queryEmbedding: Embedding): Array<StoredDocument<T, Metadata>> {\n this.validateQueryDimension(queryEmbedding);\n if (this.indexStrategy.type !== \"lsh\" || this.lshIndex === undefined) {\n return this.values();\n }\n\n const candidateIds = this.lshIndex.query(queryEmbedding.vector);\n if (candidateIds.size === 0) {\n return this.values();\n }\n\n return [...candidateIds].flatMap((id) => {\n const document = this.documents.get(id);\n return document === undefined ? [] : [document];\n });\n }\n\n private rebuildLshIndex(): void {\n if (this.indexStrategy.type !== \"lsh\") {\n this.lshIndex = undefined;\n return;\n }\n\n const firstEmbedding = this.values().flatMap((document) => document.embeddings)[0];\n if (firstEmbedding === undefined) {\n this.lshIndex = undefined;\n return;\n }\n\n const index = new LshIndex(firstEmbedding.vector.length, this.indexStrategy);\n for (const document of this.documents.values()) {\n for (const embedding of document.embeddings) {\n index.insert(document.id, embedding.vector);\n }\n }\n this.lshIndex = index;\n }\n\n private validateDocumentDimensions(documents: Array<EmbeddedDocument<T, Metadata>>): void {\n let dimension = this.embeddingDimension;\n for (const document of documents) {\n for (const embedding of document.embeddings) {\n dimension = validateEmbeddingDimension(dimension, embedding, document.id);\n }\n }\n this.embeddingDimension = dimension;\n }\n\n private validateQueryDimension(queryEmbedding: Embedding): void {\n if (this.embeddingDimension === undefined) {\n return;\n }\n validateEmbeddingDimension(this.embeddingDimension, queryEmbedding, \"query\");\n }\n}\n\nexport class InMemoryVectorIndex<T, Metadata extends VectorMetadata = VectorMetadata>\n implements VectorSearchIndex<T, Metadata>\n{\n constructor(\n private readonly model: EmbeddingModel,\n private readonly store: InMemoryVectorStore<T, Metadata>,\n ) {}\n\n async search(request: VectorSearchRequest): Promise<Array<VectorSearchResult<T, Metadata>>> {\n const queryEmbedding = await embedText(this.model, request.query);\n return this.store\n .candidates(queryEmbedding)\n .filter((document) => matchesVectorFilter(document.metadata, request.filter))\n .flatMap((document) => {\n const score = bestScore(queryEmbedding, document.embeddings);\n if (score === undefined) {\n return [];\n }\n if (request.threshold !== undefined && score < request.threshold) {\n return [];\n }\n return [\n {\n score,\n id: document.id,\n document: document.document,\n ...(document.metadata !== undefined && { metadata: document.metadata }),\n },\n ];\n })\n .sort((left, right) => right.score - left.score)\n .slice(0, Math.max(0, Math.trunc(request.topK)));\n }\n\n async searchIds(request: VectorSearchRequest): Promise<Array<{ score: number; id: string }>> {\n return (await this.search(request)).map(({ score, id }) => ({ score, id }));\n }\n\n async inspect(request: VectorInspectRequest): Promise<VectorInspectPage<T, Metadata>> {\n const limit = Math.max(0, Math.trunc(request.limit));\n const start = Math.max(0, Math.trunc(Number(request.cursor ?? \"0\")));\n const documents = this.store\n .values()\n .filter((document) => matchesVectorFilter(document.metadata, request.filter));\n const page = documents.slice(start, start + limit);\n const nextOffset = start + page.length;\n return {\n items: page.map((document) => ({\n id: document.id,\n document: document.document,\n ...(document.metadata !== undefined && { metadata: document.metadata }),\n })),\n ...(nextOffset < documents.length ? { nextCursor: String(nextOffset) } : {}),\n totalCount: documents.length,\n };\n }\n\n asTool(options: VectorSearchToolOptions): Tool<{ query: string; topK?: number }, unknown> {\n return createVectorSearchTool(this, options);\n }\n}\n\nexport function createVectorSearchTool<T, Metadata extends VectorMetadata>(\n index: VectorSearchIndex<T, Metadata>,\n options: VectorSearchToolOptions,\n): Tool<{ query: string; topK?: number }, Array<VectorSearchResult<T, Metadata>>> {\n return createTool({\n name: options.name,\n description:\n options.description ?? \"Search a vector store for documents relevant to the provided query.\",\n input: z.object({\n query: z.string().describe(\"The query string to search for relevant documents.\"),\n topK: z.number().int().positive().optional().describe(\"The maximum number of results.\"),\n }),\n output: z.array(\n z.object({\n score: z.number(),\n id: z.string(),\n document: z.any(),\n metadata: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()]))\n .optional(),\n }),\n ),\n execute: ({ query, topK }) =>\n index.search({\n query,\n topK: topK ?? options.topK ?? 5,\n threshold: options.threshold,\n filter: options.filter,\n }),\n }) as Tool<{ query: string; topK?: number }, Array<VectorSearchResult<T, Metadata>>>;\n}\n\nfunction bestScore(queryEmbedding: Embedding, embeddings: Embedding[]): number | undefined {\n let best: number | undefined;\n for (const embedding of embeddings) {\n const score = cosineSimilarity(queryEmbedding.vector, embedding.vector);\n best = best === undefined ? score : Math.max(best, score);\n }\n return best;\n}\n\nfunction validateEmbeddingDimension(\n expectedDimension: number | undefined,\n embedding: Embedding,\n id: string,\n): number {\n if (expectedDimension === undefined) {\n return embedding.vector.length;\n }\n if (embedding.vector.length !== expectedDimension) {\n throw new Error(\n `Vector dimension mismatch: expected ${expectedDimension} dimensions but received ${embedding.vector.length} for ${id}`,\n );\n }\n return expectedDimension;\n}\n","import type { z } from \"zod\";\nimport { compact } from \"../internal/compact\";\nimport { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type { Tool, ToolApprovalPolicy, ToolCallContext } from \"./tool\";\n\nexport type CreateToolOptions<\n InputSchema extends ZodSchema,\n OutputSchema extends ZodSchema | undefined = undefined,\n Output = unknown,\n> = {\n name: string;\n description: string;\n input: InputSchema;\n output?: OutputSchema;\n approval?: ToolApprovalPolicy<z.output<InputSchema>>;\n execute(\n args: z.output<InputSchema>,\n context: ToolCallContext,\n ): OutputSchema extends ZodSchema\n ? z.input<OutputSchema> | Promise<z.input<OutputSchema>>\n : Output | Promise<Output>;\n};\n\ntype CreateToolOutput<\n OutputSchema extends ZodSchema | undefined,\n Output,\n> = OutputSchema extends ZodSchema ? z.output<OutputSchema> : Output;\n\nexport function createTool<InputSchema extends ZodSchema, Output = unknown>(\n options: CreateToolOptions<InputSchema, undefined, Output> & { output?: undefined },\n): Tool<z.output<InputSchema>, Output>;\n\nexport function createTool<InputSchema extends ZodSchema, OutputSchema extends ZodSchema>(\n options: CreateToolOptions<InputSchema, OutputSchema>,\n): Tool<z.output<InputSchema>, z.output<OutputSchema>>;\n\nexport function createTool<\n InputSchema extends ZodSchema,\n OutputSchema extends ZodSchema | undefined = undefined,\n Output = unknown,\n>(\n options: CreateToolOptions<InputSchema, OutputSchema, Output>,\n): Tool<z.output<InputSchema>, CreateToolOutput<OutputSchema, Output>> {\n const parameters = toProviderJsonSchema(options.input);\n\n return {\n ...compact({ name: options.name, approval: options.approval }),\n definition() {\n return {\n name: options.name,\n description: options.description,\n parameters,\n };\n },\n async call(args, context = {}): Promise<CreateToolOutput<OutputSchema, Output>> {\n const parsedArgs = options.input.parse(args);\n const result = await options.execute(parsedArgs, context);\n return (\n options.output === undefined ? result : options.output.parse(result)\n ) as CreateToolOutput<OutputSchema, Output>;\n },\n parseApprovalArgs(args): z.output<InputSchema> {\n return options.input.parse(args);\n },\n };\n}\n","import type { VectorMetadata, VectorMetadataValue } from \"../embeddings\";\nimport type { VectorFilter } from \"./types\";\n\nexport type { VectorFilter } from \"./types\";\n\nexport const vectorFilter = {\n eq(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"eq\", key, value };\n },\n gt(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"gt\", key, value };\n },\n lt(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"lt\", key, value };\n },\n and(left: VectorFilter, right: VectorFilter): VectorFilter {\n return { type: \"and\", filters: [left, right] };\n },\n or(left: VectorFilter, right: VectorFilter): VectorFilter {\n return { type: \"or\", filters: [left, right] };\n },\n};\n\nexport function matchesVectorFilter(\n metadata: VectorMetadata | undefined,\n filter: VectorFilter | undefined,\n): boolean {\n if (filter === undefined) {\n return true;\n }\n if (metadata === undefined) {\n return false;\n }\n\n switch (filter.type) {\n case \"eq\":\n return metadata[filter.key] === filter.value;\n case \"gt\":\n return compare(metadata[filter.key], filter.value) > 0;\n case \"lt\":\n return compare(metadata[filter.key], filter.value) < 0;\n case \"and\":\n return (\n matchesVectorFilter(metadata, filter.filters[0]) &&\n matchesVectorFilter(metadata, filter.filters[1])\n );\n case \"or\":\n return (\n matchesVectorFilter(metadata, filter.filters[0]) ||\n matchesVectorFilter(metadata, filter.filters[1])\n );\n }\n}\n\nfunction compare(left: VectorMetadataValue | undefined, right: VectorMetadataValue): number {\n if (typeof left === \"number\" && typeof right === \"number\") {\n return left - right;\n }\n if (typeof left === \"string\" && typeof right === \"string\") {\n return left.localeCompare(right);\n }\n if (typeof left === \"boolean\" && typeof right === \"boolean\") {\n return Number(left) - Number(right);\n }\n return 0;\n}\n","import type { LshOptions } from \"./types\";\n\nexport type { LshOptions } from \"./types\";\n\nexport class LshIndex {\n private readonly hyperplanes: number[][];\n private readonly tables: Array<Map<string, Set<string>>>;\n\n constructor(\n dimensions: number,\n private readonly options: LshOptions,\n ) {\n const rng = seededRandom(options.seed ?? 42);\n this.hyperplanes = [];\n for (let index = 0; index < options.numTables * options.numHyperplanes; index += 1) {\n const plane = Array.from({ length: dimensions }, () => rng() * 2 - 1);\n const norm = Math.sqrt(plane.reduce((sum, value) => sum + value ** 2, 0));\n this.hyperplanes.push(norm === 0 ? plane : plane.map((value) => value / norm));\n }\n this.tables = Array.from({ length: options.numTables }, () => new Map());\n }\n\n insert(id: string, vector: number[]): void {\n for (let table = 0; table < this.options.numTables; table += 1) {\n const hash = this.hash(vector, table);\n const bucket = this.tables[table]?.get(hash) ?? new Set<string>();\n bucket.add(id);\n this.tables[table]?.set(hash, bucket);\n }\n }\n\n query(vector: number[]): Set<string> {\n const candidates = new Set<string>();\n for (let table = 0; table < this.options.numTables; table += 1) {\n const hash = this.hash(vector, table);\n for (const id of this.tables[table]?.get(hash) ?? []) {\n candidates.add(id);\n }\n }\n return candidates;\n }\n\n private hash(vector: number[], table: number): string {\n let hash = \"\";\n const start = table * this.options.numHyperplanes;\n for (let offset = 0; offset < this.options.numHyperplanes; offset += 1) {\n const plane = this.hyperplanes[start + offset] as number[];\n const dot = vector.reduce((sum, value, index) => sum + value * (plane[index] ?? 0), 0);\n hash += dot >= 0 ? \"1\" : \"0\";\n }\n return hash;\n }\n}\n\nfunction seededRandom(seed: number): () => number {\n let state = seed >>> 0;\n return () => {\n state = (state * 1664525 + 1013904223) >>> 0;\n return state / 0x100000000;\n };\n}\n"],"mappings":"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","names":[]}
|