@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.
Files changed (56) hide show
  1. package/dist/agent/index.d.ts +11 -8
  2. package/dist/agent/index.js +10 -9
  3. package/dist/{agent-Bcpuodu2.d.ts → agent-BWF8_O8k.d.ts} +14 -5
  4. package/dist/{chunk-MLMXQ2OV.js → chunk-4AJJIIAQ.js} +9 -7
  5. package/dist/chunk-4AJJIIAQ.js.map +1 -0
  6. package/dist/{chunk-7CQAERL3.js → chunk-KTTIPWE7.js} +457 -107
  7. package/dist/chunk-KTTIPWE7.js.map +1 -0
  8. package/dist/{chunk-2GXGB6U5.js → chunk-MIJUAWHU.js} +4 -4
  9. package/dist/{chunk-5EDHXYH5.js → chunk-PGFYN5ZX.js} +12 -7
  10. package/dist/chunk-PGFYN5ZX.js.map +1 -0
  11. package/dist/{chunk-FV5B4SGK.js → chunk-R7F2JF7J.js} +6 -6
  12. package/dist/chunk-R7F2JF7J.js.map +1 -0
  13. package/dist/{chunk-NI637AGP.js → chunk-TIH4QM55.js} +12 -3
  14. package/dist/chunk-TIH4QM55.js.map +1 -0
  15. package/dist/chunk-YRERPIA5.js +451 -0
  16. package/dist/chunk-YRERPIA5.js.map +1 -0
  17. package/dist/{chunk-V3WTT7TE.js → chunk-ZGIE73BH.js} +2 -2
  18. package/dist/evals/index.d.ts +6 -5
  19. package/dist/evals/index.js +14 -13
  20. package/dist/evals/index.js.map +1 -1
  21. package/dist/extractor/index.d.ts +6 -5
  22. package/dist/extractor/index.js +11 -10
  23. package/dist/guardrails/index.d.ts +211 -0
  24. package/dist/guardrails/index.js +35 -0
  25. package/dist/guardrails/index.js.map +1 -0
  26. package/dist/{index-CD9jb9Or.d.ts → index-DsWWqP0Q.d.ts} +8 -1
  27. package/dist/index.d.ts +9 -8
  28. package/dist/index.js +34 -16
  29. package/dist/internal/agent.d.ts +6 -5
  30. package/dist/internal/agent.js +9 -8
  31. package/dist/mcp/index.d.ts +4 -3
  32. package/dist/{middleware-ByyL6Rj0.d.ts → middleware-BTR0eRtx.d.ts} +2 -2
  33. package/dist/observability/index.d.ts +3 -2
  34. package/dist/pipeline/index.d.ts +6 -5
  35. package/dist/pipeline/index.js +3 -3
  36. package/dist/request/index.d.ts +6 -5
  37. package/dist/request/index.js +8 -7
  38. package/dist/skills/index.d.ts +4 -3
  39. package/dist/skills/index.js +6 -6
  40. package/dist/{think-tool-B065hm73.d.ts → think-tool-Bn3HHu_z.d.ts} +4 -1
  41. package/dist/tool/index.d.ts +5 -4
  42. package/dist/tool/index.js +5 -5
  43. package/dist/{tool-B8K543oQ.d.ts → tool-DGELXD2z.d.ts} +3 -0
  44. package/dist/{types-Pl4PFQWL.d.ts → types-9VPKg7ih.d.ts} +1 -1
  45. package/dist/{types-BzUuhjKr.d.ts → types-Bx_ZtjPi.d.ts} +1 -1
  46. package/dist/{types-7F_IKQQW.d.ts → types-Dc83Qzch.d.ts} +1 -1
  47. package/dist/vector-store/index.d.ts +4 -3
  48. package/dist/vector-store/index.js +3 -3
  49. package/package.json +6 -2
  50. package/dist/chunk-5EDHXYH5.js.map +0 -1
  51. package/dist/chunk-7CQAERL3.js.map +0 -1
  52. package/dist/chunk-FV5B4SGK.js.map +0 -1
  53. package/dist/chunk-MLMXQ2OV.js.map +0 -1
  54. package/dist/chunk-NI637AGP.js.map +0 -1
  55. /package/dist/{chunk-2GXGB6U5.js.map → chunk-MIJUAWHU.js.map} +0 -0
  56. /package/dist/{chunk-V3WTT7TE.js.map → chunk-ZGIE73BH.js.map} +0 -0
@@ -1,10 +1,11 @@
1
- import { M as McpConnection, a as McpServer, b as McpStdioOptions, c as McpHttpOptions, d as McpSseOptions } from '../types-7F_IKQQW.js';
2
- export { e as McpClient, f as McpToolCallContent, g as McpToolCallResult, h as McpToolDefinition } from '../types-7F_IKQQW.js';
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-B8K543oQ.js';
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-B8K543oQ.js';
4
- import { a as VectorSearchIndex } from './types-Pl4PFQWL.js';
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-CD9jb9Or.js';
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 '../tool-B8K543oQ.js';
3
+ import '../guardrails/index.js';
4
+ import '../tool-DGELXD2z.js';
@@ -1,14 +1,15 @@
1
1
  import { z } from 'zod';
2
- import { A as Agent } from '../agent-Bcpuodu2.js';
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-CD9jb9Or.js';
8
- import '../tool-B8K543oQ.js';
9
- import '../middleware-ByyL6Rj0.js';
8
+ import '../index-DsWWqP0Q.js';
9
+ import '../tool-DGELXD2z.js';
10
+ import '../middleware-BTR0eRtx.js';
10
11
  import '../types-DHHZztGO.js';
11
- import '../types-Pl4PFQWL.js';
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. */
@@ -1,9 +1,9 @@
1
- import {
2
- mapWithConcurrency
3
- } from "../chunk-OIMLU4SF.js";
4
1
  import {
5
2
  compact
6
3
  } from "../chunk-MMHG7WAM.js";
4
+ import {
5
+ mapWithConcurrency
6
+ } from "../chunk-OIMLU4SF.js";
7
7
 
8
8
  // src/pipeline/builder.ts
9
9
  import { z } from "zod";
@@ -1,12 +1,13 @@
1
1
  import { M as Message } from '../types-q9G7Bvwl.js';
2
- import { d as ToolApprovalRequest } from '../tool-B8K543oQ.js';
3
- export { P as PromptRequest } from '../agent-Bcpuodu2.js';
4
- export { A as AgentChildStreamEvent, e as AgentDeltaEvent, a as AgentStreamEvent, P as PromptResponse } from '../index-CD9jb9Or.js';
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-ByyL6Rj0.js';
8
+ import '../middleware-BTR0eRtx.js';
8
9
  import '../types-DHHZztGO.js';
9
- import '../types-Pl4PFQWL.js';
10
+ import '../types-9VPKg7ih.js';
10
11
 
11
12
  declare class MaxTurnsError extends Error {
12
13
  readonly maxTurns: number;
@@ -3,17 +3,18 @@ import {
3
3
  PromptCancelledError,
4
4
  PromptRequest,
5
5
  ToolApprovalRequiredError
6
- } from "../chunk-7CQAERL3.js";
6
+ } from "../chunk-KTTIPWE7.js";
7
7
  import "../chunk-XUUY2L2D.js";
8
- import "../chunk-FV5B4SGK.js";
9
- import "../chunk-5EDHXYH5.js";
10
- import "../chunk-JS5MGVNM.js";
11
- import "../chunk-OIMLU4SF.js";
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-NPZDYOE6.js";
16
- import "../chunk-MMHG7WAM.js";
15
+ import "../chunk-JS5MGVNM.js";
16
+ import "../chunk-OIMLU4SF.js";
17
+ import "../chunk-YRERPIA5.js";
17
18
  export {
18
19
  MaxTurnsError,
19
20
  PromptCancelledError,
@@ -1,7 +1,8 @@
1
- import { b as SkillLoader, a as SkillSet } from '../types-BzUuhjKr.js';
2
- export { c as Skill, S as SkillValidationError, d as SkillValidationIssue } from '../types-BzUuhjKr.js';
3
- import '../tool-B8K543oQ.js';
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
 
@@ -2,15 +2,15 @@ import {
2
2
  SkillValidationError,
3
3
  loadSkills,
4
4
  skill
5
- } from "../chunk-V3WTT7TE.js";
5
+ } from "../chunk-ZGIE73BH.js";
6
6
  import "../chunk-YK4WAAS4.js";
7
- import "../chunk-FV5B4SGK.js";
8
- import "../chunk-5EDHXYH5.js";
9
- import "../chunk-JS5MGVNM.js";
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-MMHG7WAM.js";
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-B8K543oQ.js';
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> & {
@@ -1,11 +1,12 @@
1
- export { b as CreateThinkToolOptions, C as CreateToolOptions, c as createThinkTool, a as createTool } from '../think-tool-B065hm73.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-ByyL6Rj0.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-B8K543oQ.js';
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-Pl4PFQWL.js';
9
+ import '../types-9VPKg7ih.js';
9
10
 
10
11
  declare class ToolCallError extends Error {
11
12
  readonly cause?: unknown | undefined;
@@ -13,18 +13,18 @@ import {
13
13
  normalizeToolResultOutput,
14
14
  parseToolArgs,
15
15
  toolResultContentToText
16
- } from "../chunk-FV5B4SGK.js";
16
+ } from "../chunk-R7F2JF7J.js";
17
17
  import {
18
18
  createTool
19
- } from "../chunk-5EDHXYH5.js";
20
- import "../chunk-JS5MGVNM.js";
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-MMHG7WAM.js";
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;
@@ -1,5 +1,5 @@
1
1
  import { V as VectorMetadata, a as VectorMetadataValue } from './types-DHHZztGO.js';
2
- import { T as Tool } from './tool-B8K543oQ.js';
2
+ import { T as Tool } from './tool-DGELXD2z.js';
3
3
 
4
4
  type VectorFilter = {
5
5
  type: "eq";
@@ -1,4 +1,4 @@
1
- import { A as AnyTool } from './tool-B8K543oQ.js';
1
+ import { A as AnyTool } from './tool-DGELXD2z.js';
2
2
 
3
3
  type Skill = {
4
4
  readonly name: string;
@@ -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-B8K543oQ.js';
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-B8K543oQ.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-Pl4PFQWL.js';
4
- export { L as LshOptions, g as VectorInspectItem } from '../types-Pl4PFQWL.js';
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-5EDHXYH5.js";
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.11.3",
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":[]}