overai 1.4.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 +248 -0
- package/dist/agent/context.d.ts +74 -0
- package/dist/agent/context.js +140 -0
- package/dist/agent/enhanced.d.ts +98 -0
- package/dist/agent/enhanced.js +293 -0
- package/dist/agent/handoff.d.ts +82 -0
- package/dist/agent/handoff.js +124 -0
- package/dist/agent/image.d.ts +57 -0
- package/dist/agent/image.js +116 -0
- package/dist/agent/index.d.ts +19 -0
- package/dist/agent/index.js +38 -0
- package/dist/agent/prompt-expander.d.ts +43 -0
- package/dist/agent/prompt-expander.js +99 -0
- package/dist/agent/proxy.d.ts +26 -0
- package/dist/agent/proxy.js +173 -0
- package/dist/agent/query-rewriter.d.ts +41 -0
- package/dist/agent/query-rewriter.js +94 -0
- package/dist/agent/research.d.ts +55 -0
- package/dist/agent/research.js +134 -0
- package/dist/agent/router.d.ts +141 -0
- package/dist/agent/router.js +209 -0
- package/dist/agent/simple.d.ts +289 -0
- package/dist/agent/simple.js +696 -0
- package/dist/agent/types.d.ts +56 -0
- package/dist/agent/types.js +165 -0
- package/dist/ai/agent-loop.d.ts +177 -0
- package/dist/ai/agent-loop.js +313 -0
- package/dist/ai/devtools.d.ts +74 -0
- package/dist/ai/devtools.js +216 -0
- package/dist/ai/embed.d.ts +71 -0
- package/dist/ai/embed.js +154 -0
- package/dist/ai/generate-image.d.ts +66 -0
- package/dist/ai/generate-image.js +138 -0
- package/dist/ai/generate-object.d.ts +132 -0
- package/dist/ai/generate-object.js +206 -0
- package/dist/ai/generate-text.d.ts +201 -0
- package/dist/ai/generate-text.js +253 -0
- package/dist/ai/index.d.ts +27 -0
- package/dist/ai/index.js +140 -0
- package/dist/ai/mcp.d.ts +181 -0
- package/dist/ai/mcp.js +234 -0
- package/dist/ai/middleware.d.ts +110 -0
- package/dist/ai/middleware.js +186 -0
- package/dist/ai/models.d.ts +67 -0
- package/dist/ai/models.js +249 -0
- package/dist/ai/multimodal.d.ts +125 -0
- package/dist/ai/multimodal.js +270 -0
- package/dist/ai/nextjs.d.ts +122 -0
- package/dist/ai/nextjs.js +218 -0
- package/dist/ai/server.d.ts +126 -0
- package/dist/ai/server.js +336 -0
- package/dist/ai/speech.d.ts +135 -0
- package/dist/ai/speech.js +296 -0
- package/dist/ai/telemetry.d.ts +162 -0
- package/dist/ai/telemetry.js +311 -0
- package/dist/ai/tool-approval.d.ts +225 -0
- package/dist/ai/tool-approval.js +407 -0
- package/dist/ai/tools.d.ts +93 -0
- package/dist/ai/tools.js +89 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/ui-message.d.ts +218 -0
- package/dist/ai/ui-message.js +291 -0
- package/dist/auto/index.d.ts +62 -0
- package/dist/auto/index.js +163 -0
- package/dist/cache/index.d.ts +78 -0
- package/dist/cache/index.js +235 -0
- package/dist/cli/commands/agent.d.ts +30 -0
- package/dist/cli/commands/agent.js +151 -0
- package/dist/cli/commands/agents.d.ts +24 -0
- package/dist/cli/commands/agents.js +166 -0
- package/dist/cli/commands/approval.d.ts +10 -0
- package/dist/cli/commands/approval.js +253 -0
- package/dist/cli/commands/auto.d.ts +12 -0
- package/dist/cli/commands/auto.js +109 -0
- package/dist/cli/commands/autonomy.d.ts +5 -0
- package/dist/cli/commands/autonomy.js +152 -0
- package/dist/cli/commands/benchmark.d.ts +19 -0
- package/dist/cli/commands/benchmark.js +484 -0
- package/dist/cli/commands/cache.d.ts +9 -0
- package/dist/cli/commands/cache.js +143 -0
- package/dist/cli/commands/chat.d.ts +14 -0
- package/dist/cli/commands/chat.js +127 -0
- package/dist/cli/commands/checkpoints.d.ts +5 -0
- package/dist/cli/commands/checkpoints.js +236 -0
- package/dist/cli/commands/context.d.ts +11 -0
- package/dist/cli/commands/context.js +182 -0
- package/dist/cli/commands/cost.d.ts +5 -0
- package/dist/cli/commands/cost.js +146 -0
- package/dist/cli/commands/db.d.ts +9 -0
- package/dist/cli/commands/db.js +149 -0
- package/dist/cli/commands/embed.d.ts +20 -0
- package/dist/cli/commands/embed.js +375 -0
- package/dist/cli/commands/eval.d.ts +17 -0
- package/dist/cli/commands/eval.js +247 -0
- package/dist/cli/commands/external-agents.d.ts +5 -0
- package/dist/cli/commands/external-agents.js +170 -0
- package/dist/cli/commands/fast-context.d.ts +5 -0
- package/dist/cli/commands/fast-context.js +126 -0
- package/dist/cli/commands/flow.d.ts +5 -0
- package/dist/cli/commands/flow.js +141 -0
- package/dist/cli/commands/git.d.ts +5 -0
- package/dist/cli/commands/git.js +178 -0
- package/dist/cli/commands/graph-rag.d.ts +9 -0
- package/dist/cli/commands/graph-rag.js +131 -0
- package/dist/cli/commands/guardrail.d.ts +11 -0
- package/dist/cli/commands/guardrail.js +156 -0
- package/dist/cli/commands/handoff.d.ts +9 -0
- package/dist/cli/commands/handoff.js +133 -0
- package/dist/cli/commands/help.d.ts +8 -0
- package/dist/cli/commands/help.js +139 -0
- package/dist/cli/commands/image.d.ts +13 -0
- package/dist/cli/commands/image.js +192 -0
- package/dist/cli/commands/interactive.d.ts +6 -0
- package/dist/cli/commands/interactive.js +79 -0
- package/dist/cli/commands/jobs.d.ts +5 -0
- package/dist/cli/commands/jobs.js +282 -0
- package/dist/cli/commands/knowledge.d.ts +9 -0
- package/dist/cli/commands/knowledge.js +226 -0
- package/dist/cli/commands/llm.d.ts +21 -0
- package/dist/cli/commands/llm.js +748 -0
- package/dist/cli/commands/mcp.d.ts +9 -0
- package/dist/cli/commands/mcp.js +243 -0
- package/dist/cli/commands/memory.d.ts +10 -0
- package/dist/cli/commands/memory.js +198 -0
- package/dist/cli/commands/n8n.d.ts +5 -0
- package/dist/cli/commands/n8n.js +137 -0
- package/dist/cli/commands/observability.d.ts +16 -0
- package/dist/cli/commands/observability.js +335 -0
- package/dist/cli/commands/planning.d.ts +9 -0
- package/dist/cli/commands/planning.js +167 -0
- package/dist/cli/commands/prompt-expand.d.ts +11 -0
- package/dist/cli/commands/prompt-expand.js +100 -0
- package/dist/cli/commands/providers.d.ts +17 -0
- package/dist/cli/commands/providers.js +386 -0
- package/dist/cli/commands/query-rewrite.d.ts +12 -0
- package/dist/cli/commands/query-rewrite.js +102 -0
- package/dist/cli/commands/repo-map.d.ts +5 -0
- package/dist/cli/commands/repo-map.js +151 -0
- package/dist/cli/commands/reranker.d.ts +10 -0
- package/dist/cli/commands/reranker.js +144 -0
- package/dist/cli/commands/research.d.ts +12 -0
- package/dist/cli/commands/research.js +108 -0
- package/dist/cli/commands/router.d.ts +11 -0
- package/dist/cli/commands/router.js +142 -0
- package/dist/cli/commands/run.d.ts +14 -0
- package/dist/cli/commands/run.js +111 -0
- package/dist/cli/commands/sandbox.d.ts +5 -0
- package/dist/cli/commands/sandbox.js +135 -0
- package/dist/cli/commands/scheduler.d.ts +5 -0
- package/dist/cli/commands/scheduler.js +260 -0
- package/dist/cli/commands/session.d.ts +9 -0
- package/dist/cli/commands/session.js +238 -0
- package/dist/cli/commands/skills.d.ts +9 -0
- package/dist/cli/commands/skills.js +256 -0
- package/dist/cli/commands/telemetry.d.ts +9 -0
- package/dist/cli/commands/telemetry.js +146 -0
- package/dist/cli/commands/tools.d.ts +19 -0
- package/dist/cli/commands/tools.js +576 -0
- package/dist/cli/commands/vector.d.ts +10 -0
- package/dist/cli/commands/vector.js +171 -0
- package/dist/cli/commands/version.d.ts +8 -0
- package/dist/cli/commands/version.js +40 -0
- package/dist/cli/commands/voice.d.ts +10 -0
- package/dist/cli/commands/voice.js +162 -0
- package/dist/cli/commands/workflow.d.ts +13 -0
- package/dist/cli/commands/workflow.js +184 -0
- package/dist/cli/config/index.d.ts +6 -0
- package/dist/cli/config/index.js +22 -0
- package/dist/cli/config/load.d.ts +20 -0
- package/dist/cli/config/load.js +229 -0
- package/dist/cli/config/resolve.d.ts +28 -0
- package/dist/cli/config/resolve.js +70 -0
- package/dist/cli/config/schema.d.ts +15 -0
- package/dist/cli/config/schema.js +65 -0
- package/dist/cli/features/autonomy-mode.d.ts +98 -0
- package/dist/cli/features/autonomy-mode.js +266 -0
- package/dist/cli/features/background-jobs.d.ts +155 -0
- package/dist/cli/features/background-jobs.js +416 -0
- package/dist/cli/features/checkpoints.d.ts +126 -0
- package/dist/cli/features/checkpoints.js +288 -0
- package/dist/cli/features/cost-tracker.d.ts +101 -0
- package/dist/cli/features/cost-tracker.js +212 -0
- package/dist/cli/features/external-agents.d.ts +117 -0
- package/dist/cli/features/external-agents.js +296 -0
- package/dist/cli/features/fast-context.d.ts +126 -0
- package/dist/cli/features/fast-context.js +310 -0
- package/dist/cli/features/flow-display.d.ts +100 -0
- package/dist/cli/features/flow-display.js +254 -0
- package/dist/cli/features/git-integration.d.ts +138 -0
- package/dist/cli/features/git-integration.js +374 -0
- package/dist/cli/features/index.d.ts +17 -0
- package/dist/cli/features/index.js +102 -0
- package/dist/cli/features/interactive-tui.d.ts +114 -0
- package/dist/cli/features/interactive-tui.js +326 -0
- package/dist/cli/features/n8n-integration.d.ts +111 -0
- package/dist/cli/features/n8n-integration.js +299 -0
- package/dist/cli/features/repo-map.d.ts +101 -0
- package/dist/cli/features/repo-map.js +350 -0
- package/dist/cli/features/sandbox-executor.d.ts +89 -0
- package/dist/cli/features/sandbox-executor.js +314 -0
- package/dist/cli/features/scheduler.d.ts +111 -0
- package/dist/cli/features/scheduler.js +298 -0
- package/dist/cli/features/slash-commands.d.ts +77 -0
- package/dist/cli/features/slash-commands.js +316 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.js +214 -0
- package/dist/cli/output/errors.d.ts +23 -0
- package/dist/cli/output/errors.js +36 -0
- package/dist/cli/output/json.d.ts +27 -0
- package/dist/cli/output/json.js +31 -0
- package/dist/cli/output/pretty.d.ts +13 -0
- package/dist/cli/output/pretty.js +31 -0
- package/dist/cli/runtime/env.d.ts +12 -0
- package/dist/cli/runtime/env.js +55 -0
- package/dist/cli/runtime/exit.d.ts +11 -0
- package/dist/cli/runtime/exit.js +49 -0
- package/dist/cli/runtime/index.d.ts +6 -0
- package/dist/cli/runtime/index.js +22 -0
- package/dist/cli/runtime/lazy.d.ts +18 -0
- package/dist/cli/runtime/lazy.js +85 -0
- package/dist/cli/spec/cli-spec.d.ts +87 -0
- package/dist/cli/spec/cli-spec.js +551 -0
- package/dist/cli/spec/index.d.ts +4 -0
- package/dist/cli/spec/index.js +20 -0
- package/dist/db/index.d.ts +6 -0
- package/dist/db/index.js +75 -0
- package/dist/db/types.d.ts +42 -0
- package/dist/db/types.js +2 -0
- package/dist/eval/index.d.ts +61 -0
- package/dist/eval/index.js +157 -0
- package/dist/events/index.d.ts +84 -0
- package/dist/events/index.js +153 -0
- package/dist/guardrails/index.d.ts +82 -0
- package/dist/guardrails/index.js +202 -0
- package/dist/guardrails/llm-guardrail.d.ts +46 -0
- package/dist/guardrails/llm-guardrail.js +112 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.js +608 -0
- package/dist/integrations/computer-use.d.ts +182 -0
- package/dist/integrations/computer-use.js +356 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.js +26 -0
- package/dist/integrations/observability/base.d.ts +123 -0
- package/dist/integrations/observability/base.js +183 -0
- package/dist/integrations/observability/index.d.ts +8 -0
- package/dist/integrations/observability/index.js +29 -0
- package/dist/integrations/observability/langfuse.d.ts +32 -0
- package/dist/integrations/observability/langfuse.js +174 -0
- package/dist/integrations/postgres.d.ts +162 -0
- package/dist/integrations/postgres.js +396 -0
- package/dist/integrations/slack.d.ts +145 -0
- package/dist/integrations/slack.js +270 -0
- package/dist/integrations/vector/base.d.ts +110 -0
- package/dist/integrations/vector/base.js +158 -0
- package/dist/integrations/vector/chroma.d.ts +25 -0
- package/dist/integrations/vector/chroma.js +143 -0
- package/dist/integrations/vector/index.d.ts +14 -0
- package/dist/integrations/vector/index.js +37 -0
- package/dist/integrations/vector/pinecone.d.ts +28 -0
- package/dist/integrations/vector/pinecone.js +172 -0
- package/dist/integrations/vector/qdrant.d.ts +25 -0
- package/dist/integrations/vector/qdrant.js +146 -0
- package/dist/integrations/vector/weaviate.d.ts +30 -0
- package/dist/integrations/vector/weaviate.js +206 -0
- package/dist/integrations/voice/base.d.ts +76 -0
- package/dist/integrations/voice/base.js +168 -0
- package/dist/integrations/voice/index.d.ts +6 -0
- package/dist/integrations/voice/index.js +26 -0
- package/dist/knowledge/chunking.d.ts +55 -0
- package/dist/knowledge/chunking.js +158 -0
- package/dist/knowledge/graph-rag.d.ts +125 -0
- package/dist/knowledge/graph-rag.js +289 -0
- package/dist/knowledge/index.d.ts +24 -0
- package/dist/knowledge/index.js +47 -0
- package/dist/knowledge/knowledge.d.ts +0 -0
- package/dist/knowledge/knowledge.js +1 -0
- package/dist/knowledge/rag.d.ts +80 -0
- package/dist/knowledge/rag.js +147 -0
- package/dist/knowledge/reranker.d.ts +86 -0
- package/dist/knowledge/reranker.js +196 -0
- package/dist/llm/backend-resolver.d.ts +77 -0
- package/dist/llm/backend-resolver.js +242 -0
- package/dist/llm/embeddings.d.ts +66 -0
- package/dist/llm/embeddings.js +294 -0
- package/dist/llm/index.d.ts +29 -0
- package/dist/llm/index.js +33 -0
- package/dist/llm/llm.d.ts +0 -0
- package/dist/llm/llm.js +1 -0
- package/dist/llm/openai.d.ts +39 -0
- package/dist/llm/openai.js +302 -0
- package/dist/llm/providers/ai-sdk/adapter.d.ts +121 -0
- package/dist/llm/providers/ai-sdk/adapter.js +399 -0
- package/dist/llm/providers/ai-sdk/backend.d.ts +49 -0
- package/dist/llm/providers/ai-sdk/backend.js +421 -0
- package/dist/llm/providers/ai-sdk/index.d.ts +69 -0
- package/dist/llm/providers/ai-sdk/index.js +200 -0
- package/dist/llm/providers/ai-sdk/middleware.d.ts +60 -0
- package/dist/llm/providers/ai-sdk/middleware.js +262 -0
- package/dist/llm/providers/ai-sdk/provider-map.d.ts +75 -0
- package/dist/llm/providers/ai-sdk/provider-map.js +258 -0
- package/dist/llm/providers/ai-sdk/types.d.ts +217 -0
- package/dist/llm/providers/ai-sdk/types.js +222 -0
- package/dist/llm/providers/anthropic.d.ts +33 -0
- package/dist/llm/providers/anthropic.js +291 -0
- package/dist/llm/providers/base.d.ts +25 -0
- package/dist/llm/providers/base.js +43 -0
- package/dist/llm/providers/google.d.ts +27 -0
- package/dist/llm/providers/google.js +275 -0
- package/dist/llm/providers/index.d.ts +107 -0
- package/dist/llm/providers/index.js +216 -0
- package/dist/llm/providers/openai.d.ts +18 -0
- package/dist/llm/providers/openai.js +203 -0
- package/dist/llm/providers/registry.d.ts +159 -0
- package/dist/llm/providers/registry.js +279 -0
- package/dist/llm/providers/types.d.ts +94 -0
- package/dist/llm/providers/types.js +5 -0
- package/dist/main.d.ts +0 -0
- package/dist/main.js +1 -0
- package/dist/memory/auto-memory.d.ts +136 -0
- package/dist/memory/auto-memory.js +301 -0
- package/dist/memory/file-memory.d.ts +88 -0
- package/dist/memory/file-memory.js +287 -0
- package/dist/memory/index.d.ts +26 -0
- package/dist/memory/index.js +41 -0
- package/dist/memory/memory.d.ts +92 -0
- package/dist/memory/memory.js +170 -0
- package/dist/observability/adapters/console.d.ts +33 -0
- package/dist/observability/adapters/console.js +71 -0
- package/dist/observability/adapters/external/arize.d.ts +20 -0
- package/dist/observability/adapters/external/arize.js +22 -0
- package/dist/observability/adapters/external/axiom.d.ts +20 -0
- package/dist/observability/adapters/external/axiom.js +22 -0
- package/dist/observability/adapters/external/braintrust.d.ts +20 -0
- package/dist/observability/adapters/external/braintrust.js +22 -0
- package/dist/observability/adapters/external/helicone.d.ts +20 -0
- package/dist/observability/adapters/external/helicone.js +22 -0
- package/dist/observability/adapters/external/laminar.d.ts +20 -0
- package/dist/observability/adapters/external/laminar.js +22 -0
- package/dist/observability/adapters/external/langfuse.d.ts +28 -0
- package/dist/observability/adapters/external/langfuse.js +186 -0
- package/dist/observability/adapters/external/langsmith.d.ts +21 -0
- package/dist/observability/adapters/external/langsmith.js +83 -0
- package/dist/observability/adapters/external/langwatch.d.ts +20 -0
- package/dist/observability/adapters/external/langwatch.js +22 -0
- package/dist/observability/adapters/external/maxim.d.ts +20 -0
- package/dist/observability/adapters/external/maxim.js +22 -0
- package/dist/observability/adapters/external/patronus.d.ts +20 -0
- package/dist/observability/adapters/external/patronus.js +22 -0
- package/dist/observability/adapters/external/scorecard.d.ts +20 -0
- package/dist/observability/adapters/external/scorecard.js +22 -0
- package/dist/observability/adapters/external/signoz.d.ts +20 -0
- package/dist/observability/adapters/external/signoz.js +22 -0
- package/dist/observability/adapters/external/traceloop.d.ts +20 -0
- package/dist/observability/adapters/external/traceloop.js +22 -0
- package/dist/observability/adapters/external/weave.d.ts +20 -0
- package/dist/observability/adapters/external/weave.js +22 -0
- package/dist/observability/adapters/index.d.ts +19 -0
- package/dist/observability/adapters/index.js +289 -0
- package/dist/observability/adapters/memory.d.ts +41 -0
- package/dist/observability/adapters/memory.js +190 -0
- package/dist/observability/adapters/noop.d.ts +25 -0
- package/dist/observability/adapters/noop.js +64 -0
- package/dist/observability/index.d.ts +47 -0
- package/dist/observability/index.js +115 -0
- package/dist/observability/types.d.ts +165 -0
- package/dist/observability/types.js +165 -0
- package/dist/planning/index.d.ts +253 -0
- package/dist/planning/index.js +475 -0
- package/dist/process/index.d.ts +25 -0
- package/dist/process/index.js +37 -0
- package/dist/process/process.d.ts +0 -0
- package/dist/process/process.js +1 -0
- package/dist/session/index.d.ts +111 -0
- package/dist/session/index.js +250 -0
- package/dist/skills/index.d.ts +70 -0
- package/dist/skills/index.js +233 -0
- package/dist/task/index.d.ts +25 -0
- package/dist/task/index.js +32 -0
- package/dist/task/task.d.ts +0 -0
- package/dist/task/task.js +1 -0
- package/dist/telemetry/index.d.ts +175 -0
- package/dist/telemetry/index.js +287 -0
- package/dist/tools/arxivTools.d.ts +32 -0
- package/dist/tools/arxivTools.js +81 -0
- package/dist/tools/base.d.ts +97 -0
- package/dist/tools/base.js +147 -0
- package/dist/tools/builtins/airweave.d.ts +32 -0
- package/dist/tools/builtins/airweave.js +119 -0
- package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
- package/dist/tools/builtins/bedrock-agentcore.js +233 -0
- package/dist/tools/builtins/code-execution.d.ts +36 -0
- package/dist/tools/builtins/code-execution.js +136 -0
- package/dist/tools/builtins/code-mode.d.ts +54 -0
- package/dist/tools/builtins/code-mode.js +167 -0
- package/dist/tools/builtins/custom.d.ts +42 -0
- package/dist/tools/builtins/custom.js +195 -0
- package/dist/tools/builtins/exa.d.ts +53 -0
- package/dist/tools/builtins/exa.js +112 -0
- package/dist/tools/builtins/firecrawl.d.ts +56 -0
- package/dist/tools/builtins/firecrawl.js +158 -0
- package/dist/tools/builtins/index.d.ts +45 -0
- package/dist/tools/builtins/index.js +180 -0
- package/dist/tools/builtins/parallel.d.ts +30 -0
- package/dist/tools/builtins/parallel.js +113 -0
- package/dist/tools/builtins/perplexity.d.ts +32 -0
- package/dist/tools/builtins/perplexity.js +113 -0
- package/dist/tools/builtins/superagent.d.ts +66 -0
- package/dist/tools/builtins/superagent.js +187 -0
- package/dist/tools/builtins/tavily.d.ts +99 -0
- package/dist/tools/builtins/tavily.js +285 -0
- package/dist/tools/builtins/valyu.d.ts +65 -0
- package/dist/tools/builtins/valyu.js +193 -0
- package/dist/tools/decorator.d.ts +91 -0
- package/dist/tools/decorator.js +165 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +36 -0
- package/dist/tools/mcpSse.d.ts +43 -0
- package/dist/tools/mcpSse.js +110 -0
- package/dist/tools/registry/index.d.ts +9 -0
- package/dist/tools/registry/index.js +28 -0
- package/dist/tools/registry/middleware.d.ts +43 -0
- package/dist/tools/registry/middleware.js +220 -0
- package/dist/tools/registry/registry.d.ts +92 -0
- package/dist/tools/registry/registry.js +280 -0
- package/dist/tools/registry/types.d.ts +217 -0
- package/dist/tools/registry/types.js +49 -0
- package/dist/tools/test.d.ts +0 -0
- package/dist/tools/test.js +1 -0
- package/dist/tools/tools.d.ts +74 -0
- package/dist/tools/tools.js +133 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.js +149 -0
- package/dist/utils/pretty-logger.d.ts +21 -0
- package/dist/utils/pretty-logger.js +248 -0
- package/dist/workflows/index.d.ts +118 -0
- package/dist/workflows/index.js +247 -0
- package/dist/workflows/loop.d.ts +0 -0
- package/dist/workflows/loop.js +1 -0
- package/dist/workflows/yaml-parser.d.ts +48 -0
- package/dist/workflows/yaml-parser.js +304 -0
- package/package.json +119 -0
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createDbAdapter = createDbAdapter;
|
|
18
|
+
exports.getDefaultDbAdapter = getDefaultDbAdapter;
|
|
19
|
+
exports.setDefaultDbAdapter = setDefaultDbAdapter;
|
|
20
|
+
exports.db = db;
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
|
+
// In-memory implementation as default/fallback
|
|
23
|
+
class MemoryDbAdapter {
|
|
24
|
+
constructor() {
|
|
25
|
+
this.messages = [];
|
|
26
|
+
this.runs = [];
|
|
27
|
+
this.traces = [];
|
|
28
|
+
}
|
|
29
|
+
async saveMessage(message) {
|
|
30
|
+
this.messages.push(message);
|
|
31
|
+
}
|
|
32
|
+
async getMessages(sessionId, limit) {
|
|
33
|
+
const sessionMessages = this.messages
|
|
34
|
+
.filter(m => m.sessionId === sessionId)
|
|
35
|
+
.sort((a, b) => a.createdAt - b.createdAt);
|
|
36
|
+
return limit ? sessionMessages.slice(-limit) : sessionMessages;
|
|
37
|
+
}
|
|
38
|
+
async deleteMessages(sessionId) {
|
|
39
|
+
this.messages = this.messages.filter(m => m.sessionId !== sessionId);
|
|
40
|
+
}
|
|
41
|
+
async saveRun(run) {
|
|
42
|
+
this.runs.push(run);
|
|
43
|
+
}
|
|
44
|
+
async updateRun(runId, updates) {
|
|
45
|
+
const run = this.runs.find(r => r.id === runId);
|
|
46
|
+
if (run) {
|
|
47
|
+
Object.assign(run, updates);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async saveTrace(trace) {
|
|
51
|
+
this.traces.push(trace);
|
|
52
|
+
}
|
|
53
|
+
async close() {
|
|
54
|
+
// No-op for memory
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
let defaultAdapter;
|
|
58
|
+
function createDbAdapter(config) {
|
|
59
|
+
// Placeholder: Real implementation would switch on config.type or connection string
|
|
60
|
+
// For now, return Memory adapter to satisfy types
|
|
61
|
+
console.warn("Using in-memory DB adapter (placeholder)");
|
|
62
|
+
return new MemoryDbAdapter();
|
|
63
|
+
}
|
|
64
|
+
function getDefaultDbAdapter() {
|
|
65
|
+
return defaultAdapter;
|
|
66
|
+
}
|
|
67
|
+
function setDefaultDbAdapter(adapter) {
|
|
68
|
+
defaultAdapter = adapter;
|
|
69
|
+
}
|
|
70
|
+
function db(connectionString) {
|
|
71
|
+
if (!connectionString && defaultAdapter) {
|
|
72
|
+
return defaultAdapter;
|
|
73
|
+
}
|
|
74
|
+
return createDbAdapter(connectionString || { type: 'memory' });
|
|
75
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface DbMessage {
|
|
2
|
+
id: string;
|
|
3
|
+
sessionId: string;
|
|
4
|
+
runId: string;
|
|
5
|
+
role: string;
|
|
6
|
+
content: string;
|
|
7
|
+
createdAt: number;
|
|
8
|
+
tool_calls?: any[];
|
|
9
|
+
tool_call_id?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface DbRun {
|
|
12
|
+
id: string;
|
|
13
|
+
agentName: string;
|
|
14
|
+
instructions: string;
|
|
15
|
+
startTime: number;
|
|
16
|
+
endTime?: number;
|
|
17
|
+
status: 'running' | 'completed' | 'failed';
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DbTrace {
|
|
21
|
+
id: string;
|
|
22
|
+
runId: string;
|
|
23
|
+
type: string;
|
|
24
|
+
input: any;
|
|
25
|
+
output: any;
|
|
26
|
+
startTime: number;
|
|
27
|
+
endTime: number;
|
|
28
|
+
}
|
|
29
|
+
export interface DbConfig {
|
|
30
|
+
url?: string;
|
|
31
|
+
type?: 'sqlite' | 'postgres' | 'redis' | 'memory';
|
|
32
|
+
path?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface DbAdapter {
|
|
35
|
+
saveMessage(message: DbMessage): Promise<void>;
|
|
36
|
+
getMessages(sessionId: string, limit?: number): Promise<DbMessage[]>;
|
|
37
|
+
deleteMessages(sessionId: string): Promise<void>;
|
|
38
|
+
saveRun(run: DbRun): Promise<void>;
|
|
39
|
+
updateRun(runId: string, updates: Partial<DbRun>): Promise<void>;
|
|
40
|
+
saveTrace(trace: DbTrace): Promise<void>;
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
}
|
package/dist/db/types.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluation Framework - Accuracy, Performance, and Reliability evaluation
|
|
3
|
+
*/
|
|
4
|
+
export interface EvalResult {
|
|
5
|
+
passed: boolean;
|
|
6
|
+
score: number;
|
|
7
|
+
message?: string;
|
|
8
|
+
details?: Record<string, any>;
|
|
9
|
+
duration: number;
|
|
10
|
+
}
|
|
11
|
+
export interface AccuracyEvalConfig {
|
|
12
|
+
input: string;
|
|
13
|
+
expectedOutput: string;
|
|
14
|
+
actualOutput: string;
|
|
15
|
+
threshold?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PerformanceEvalConfig {
|
|
18
|
+
func: () => Promise<any>;
|
|
19
|
+
iterations?: number;
|
|
20
|
+
warmupRuns?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface PerformanceResult extends EvalResult {
|
|
23
|
+
avgTime: number;
|
|
24
|
+
minTime: number;
|
|
25
|
+
maxTime: number;
|
|
26
|
+
p95Time: number;
|
|
27
|
+
times: number[];
|
|
28
|
+
}
|
|
29
|
+
export interface ReliabilityEvalConfig {
|
|
30
|
+
expectedToolCalls: string[];
|
|
31
|
+
actualToolCalls: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Accuracy Evaluation - Compare actual output to expected
|
|
35
|
+
*/
|
|
36
|
+
export declare function accuracyEval(config: AccuracyEvalConfig): Promise<EvalResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Performance Evaluation - Measure execution time
|
|
39
|
+
*/
|
|
40
|
+
export declare function performanceEval(config: PerformanceEvalConfig): Promise<PerformanceResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Reliability Evaluation - Check tool call accuracy
|
|
43
|
+
*/
|
|
44
|
+
export declare function reliabilityEval(config: ReliabilityEvalConfig): Promise<EvalResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Eval Suite - Run multiple evaluations
|
|
47
|
+
*/
|
|
48
|
+
export declare class EvalSuite {
|
|
49
|
+
private results;
|
|
50
|
+
runAccuracy(name: string, config: AccuracyEvalConfig): Promise<EvalResult>;
|
|
51
|
+
runPerformance(name: string, config: PerformanceEvalConfig): Promise<PerformanceResult>;
|
|
52
|
+
runReliability(name: string, config: ReliabilityEvalConfig): Promise<EvalResult>;
|
|
53
|
+
getResults(): Map<string, EvalResult>;
|
|
54
|
+
getSummary(): {
|
|
55
|
+
total: number;
|
|
56
|
+
passed: number;
|
|
57
|
+
failed: number;
|
|
58
|
+
avgScore: number;
|
|
59
|
+
};
|
|
60
|
+
printSummary(): void;
|
|
61
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Evaluation Framework - Accuracy, Performance, and Reliability evaluation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EvalSuite = void 0;
|
|
7
|
+
exports.accuracyEval = accuracyEval;
|
|
8
|
+
exports.performanceEval = performanceEval;
|
|
9
|
+
exports.reliabilityEval = reliabilityEval;
|
|
10
|
+
/**
|
|
11
|
+
* Accuracy Evaluation - Compare actual output to expected
|
|
12
|
+
*/
|
|
13
|
+
async function accuracyEval(config) {
|
|
14
|
+
const start = Date.now();
|
|
15
|
+
const threshold = config.threshold ?? 0.8;
|
|
16
|
+
const similarity = calculateSimilarity(config.expectedOutput, config.actualOutput);
|
|
17
|
+
const passed = similarity >= threshold;
|
|
18
|
+
return {
|
|
19
|
+
passed,
|
|
20
|
+
score: similarity,
|
|
21
|
+
message: passed ? 'Output matches expected' : 'Output does not match expected',
|
|
22
|
+
details: {
|
|
23
|
+
expected: config.expectedOutput,
|
|
24
|
+
actual: config.actualOutput,
|
|
25
|
+
threshold
|
|
26
|
+
},
|
|
27
|
+
duration: Date.now() - start
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Performance Evaluation - Measure execution time
|
|
32
|
+
*/
|
|
33
|
+
async function performanceEval(config) {
|
|
34
|
+
const iterations = config.iterations ?? 10;
|
|
35
|
+
const warmupRuns = config.warmupRuns ?? 2;
|
|
36
|
+
const times = [];
|
|
37
|
+
// Warmup runs
|
|
38
|
+
for (let i = 0; i < warmupRuns; i++) {
|
|
39
|
+
await config.func();
|
|
40
|
+
}
|
|
41
|
+
// Actual runs
|
|
42
|
+
const start = Date.now();
|
|
43
|
+
for (let i = 0; i < iterations; i++) {
|
|
44
|
+
const runStart = Date.now();
|
|
45
|
+
await config.func();
|
|
46
|
+
times.push(Date.now() - runStart);
|
|
47
|
+
}
|
|
48
|
+
const sortedTimes = [...times].sort((a, b) => a - b);
|
|
49
|
+
const avgTime = times.reduce((a, b) => a + b, 0) / times.length;
|
|
50
|
+
const minTime = sortedTimes[0];
|
|
51
|
+
const maxTime = sortedTimes[sortedTimes.length - 1];
|
|
52
|
+
const p95Index = Math.floor(sortedTimes.length * 0.95);
|
|
53
|
+
const p95Time = sortedTimes[p95Index] || maxTime;
|
|
54
|
+
return {
|
|
55
|
+
passed: true,
|
|
56
|
+
score: 1,
|
|
57
|
+
avgTime,
|
|
58
|
+
minTime,
|
|
59
|
+
maxTime,
|
|
60
|
+
p95Time,
|
|
61
|
+
times,
|
|
62
|
+
duration: Date.now() - start,
|
|
63
|
+
details: {
|
|
64
|
+
iterations,
|
|
65
|
+
warmupRuns
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reliability Evaluation - Check tool call accuracy
|
|
71
|
+
*/
|
|
72
|
+
async function reliabilityEval(config) {
|
|
73
|
+
const start = Date.now();
|
|
74
|
+
const expected = new Set(config.expectedToolCalls);
|
|
75
|
+
const actual = new Set(config.actualToolCalls);
|
|
76
|
+
const matched = config.expectedToolCalls.filter(t => actual.has(t));
|
|
77
|
+
const missing = config.expectedToolCalls.filter(t => !actual.has(t));
|
|
78
|
+
const extra = config.actualToolCalls.filter(t => !expected.has(t));
|
|
79
|
+
const score = expected.size > 0 ? matched.length / expected.size : 1;
|
|
80
|
+
const passed = missing.length === 0;
|
|
81
|
+
return {
|
|
82
|
+
passed,
|
|
83
|
+
score,
|
|
84
|
+
message: passed ? 'All expected tool calls made' : `Missing tool calls: ${missing.join(', ')}`,
|
|
85
|
+
details: {
|
|
86
|
+
matched,
|
|
87
|
+
missing,
|
|
88
|
+
extra,
|
|
89
|
+
expected: config.expectedToolCalls,
|
|
90
|
+
actual: config.actualToolCalls
|
|
91
|
+
},
|
|
92
|
+
duration: Date.now() - start
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Calculate text similarity (simple Jaccard similarity)
|
|
97
|
+
*/
|
|
98
|
+
function calculateSimilarity(a, b) {
|
|
99
|
+
const wordsA = new Set(a.toLowerCase().split(/\s+/));
|
|
100
|
+
const wordsB = new Set(b.toLowerCase().split(/\s+/));
|
|
101
|
+
const intersection = new Set([...wordsA].filter(x => wordsB.has(x)));
|
|
102
|
+
const union = new Set([...wordsA, ...wordsB]);
|
|
103
|
+
return union.size > 0 ? intersection.size / union.size : 0;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Eval Suite - Run multiple evaluations
|
|
107
|
+
*/
|
|
108
|
+
class EvalSuite {
|
|
109
|
+
constructor() {
|
|
110
|
+
this.results = new Map();
|
|
111
|
+
}
|
|
112
|
+
async runAccuracy(name, config) {
|
|
113
|
+
const result = await accuracyEval(config);
|
|
114
|
+
this.results.set(name, result);
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
async runPerformance(name, config) {
|
|
118
|
+
const result = await performanceEval(config);
|
|
119
|
+
this.results.set(name, result);
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
async runReliability(name, config) {
|
|
123
|
+
const result = await reliabilityEval(config);
|
|
124
|
+
this.results.set(name, result);
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
getResults() {
|
|
128
|
+
return new Map(this.results);
|
|
129
|
+
}
|
|
130
|
+
getSummary() {
|
|
131
|
+
const results = Array.from(this.results.values());
|
|
132
|
+
const passed = results.filter(r => r.passed).length;
|
|
133
|
+
const avgScore = results.length > 0
|
|
134
|
+
? results.reduce((a, b) => a + b.score, 0) / results.length
|
|
135
|
+
: 0;
|
|
136
|
+
return {
|
|
137
|
+
total: results.length,
|
|
138
|
+
passed,
|
|
139
|
+
failed: results.length - passed,
|
|
140
|
+
avgScore
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
printSummary() {
|
|
144
|
+
const summary = this.getSummary();
|
|
145
|
+
console.log('\n=== Evaluation Summary ===');
|
|
146
|
+
console.log(`Total: ${summary.total}`);
|
|
147
|
+
console.log(`Passed: ${summary.passed}`);
|
|
148
|
+
console.log(`Failed: ${summary.failed}`);
|
|
149
|
+
console.log(`Avg Score: ${(summary.avgScore * 100).toFixed(1)}%`);
|
|
150
|
+
console.log('\nResults:');
|
|
151
|
+
for (const [name, result] of this.results) {
|
|
152
|
+
const status = result.passed ? '✅' : '❌';
|
|
153
|
+
console.log(` ${status} ${name}: ${(result.score * 100).toFixed(1)}%`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.EvalSuite = EvalSuite;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event System - PubSub and Event Emitter for agent communication
|
|
3
|
+
* Inspired by mastra's events module
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
export interface Event {
|
|
7
|
+
id: string;
|
|
8
|
+
topic: string;
|
|
9
|
+
data: any;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
export type EventHandler = (event: Event, ack?: () => Promise<void>) => void | Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Abstract PubSub base class
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class PubSub {
|
|
18
|
+
abstract publish(topic: string, data: any, metadata?: Record<string, any>): Promise<void>;
|
|
19
|
+
abstract subscribe(topic: string, handler: EventHandler): Promise<void>;
|
|
20
|
+
abstract unsubscribe(topic: string, handler: EventHandler): Promise<void>;
|
|
21
|
+
abstract close(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* In-memory EventEmitter-based PubSub implementation
|
|
25
|
+
*/
|
|
26
|
+
export declare class EventEmitterPubSub extends PubSub {
|
|
27
|
+
private emitter;
|
|
28
|
+
private handlers;
|
|
29
|
+
constructor(existingEmitter?: EventEmitter);
|
|
30
|
+
publish(topic: string, data: any, metadata?: Record<string, any>): Promise<void>;
|
|
31
|
+
subscribe(topic: string, handler: EventHandler): Promise<void>;
|
|
32
|
+
unsubscribe(topic: string, handler: EventHandler): Promise<void>;
|
|
33
|
+
close(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Wait for a specific event with optional timeout
|
|
36
|
+
*/
|
|
37
|
+
waitFor(topic: string, timeout?: number): Promise<Event>;
|
|
38
|
+
/**
|
|
39
|
+
* Get the underlying EventEmitter
|
|
40
|
+
*/
|
|
41
|
+
getEmitter(): EventEmitter;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Agent Event Bus - Specialized event system for agent communication
|
|
45
|
+
*/
|
|
46
|
+
export declare class AgentEventBus {
|
|
47
|
+
private pubsub;
|
|
48
|
+
private agentId;
|
|
49
|
+
constructor(agentId: string, pubsub?: PubSub);
|
|
50
|
+
/**
|
|
51
|
+
* Emit an agent event
|
|
52
|
+
*/
|
|
53
|
+
emit(eventType: string, data: any): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Listen for agent events
|
|
56
|
+
*/
|
|
57
|
+
on(eventType: string, handler: (data: any) => void | Promise<void>): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Broadcast to all agents
|
|
60
|
+
*/
|
|
61
|
+
broadcast(eventType: string, data: any): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Listen for broadcast events
|
|
64
|
+
*/
|
|
65
|
+
onBroadcast(eventType: string, handler: (data: any, sourceAgentId: string) => void | Promise<void>): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Send message to specific agent
|
|
68
|
+
*/
|
|
69
|
+
sendTo(targetAgentId: string, eventType: string, data: any): Promise<void>;
|
|
70
|
+
close(): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
export declare const AgentEvents: {
|
|
73
|
+
readonly STARTED: "started";
|
|
74
|
+
readonly COMPLETED: "completed";
|
|
75
|
+
readonly ERROR: "error";
|
|
76
|
+
readonly TOOL_CALLED: "tool_called";
|
|
77
|
+
readonly TOOL_RESULT: "tool_result";
|
|
78
|
+
readonly MESSAGE_RECEIVED: "message_received";
|
|
79
|
+
readonly MESSAGE_SENT: "message_sent";
|
|
80
|
+
readonly HANDOFF_INITIATED: "handoff_initiated";
|
|
81
|
+
readonly HANDOFF_COMPLETED: "handoff_completed";
|
|
82
|
+
};
|
|
83
|
+
export declare function createEventBus(agentId: string): AgentEventBus;
|
|
84
|
+
export declare function createPubSub(): EventEmitterPubSub;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Event System - PubSub and Event Emitter for agent communication
|
|
4
|
+
* Inspired by mastra's events module
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AgentEvents = exports.AgentEventBus = exports.EventEmitterPubSub = exports.PubSub = void 0;
|
|
8
|
+
exports.createEventBus = createEventBus;
|
|
9
|
+
exports.createPubSub = createPubSub;
|
|
10
|
+
const events_1 = require("events");
|
|
11
|
+
/**
|
|
12
|
+
* Abstract PubSub base class
|
|
13
|
+
*/
|
|
14
|
+
class PubSub {
|
|
15
|
+
}
|
|
16
|
+
exports.PubSub = PubSub;
|
|
17
|
+
/**
|
|
18
|
+
* In-memory EventEmitter-based PubSub implementation
|
|
19
|
+
*/
|
|
20
|
+
class EventEmitterPubSub extends PubSub {
|
|
21
|
+
constructor(existingEmitter) {
|
|
22
|
+
super();
|
|
23
|
+
this.handlers = new Map();
|
|
24
|
+
this.emitter = existingEmitter ?? new events_1.EventEmitter();
|
|
25
|
+
this.emitter.setMaxListeners(100); // Allow many listeners
|
|
26
|
+
}
|
|
27
|
+
async publish(topic, data, metadata) {
|
|
28
|
+
const event = {
|
|
29
|
+
id: crypto.randomUUID(),
|
|
30
|
+
topic,
|
|
31
|
+
data,
|
|
32
|
+
createdAt: new Date(),
|
|
33
|
+
metadata
|
|
34
|
+
};
|
|
35
|
+
this.emitter.emit(topic, event);
|
|
36
|
+
}
|
|
37
|
+
async subscribe(topic, handler) {
|
|
38
|
+
if (!this.handlers.has(topic)) {
|
|
39
|
+
this.handlers.set(topic, new Set());
|
|
40
|
+
}
|
|
41
|
+
this.handlers.get(topic).add(handler);
|
|
42
|
+
this.emitter.on(topic, handler);
|
|
43
|
+
}
|
|
44
|
+
async unsubscribe(topic, handler) {
|
|
45
|
+
this.handlers.get(topic)?.delete(handler);
|
|
46
|
+
this.emitter.off(topic, handler);
|
|
47
|
+
}
|
|
48
|
+
async close() {
|
|
49
|
+
this.emitter.removeAllListeners();
|
|
50
|
+
this.handlers.clear();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Wait for a specific event with optional timeout
|
|
54
|
+
*/
|
|
55
|
+
async waitFor(topic, timeout) {
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
const timer = timeout ? setTimeout(() => {
|
|
58
|
+
this.emitter.off(topic, handler);
|
|
59
|
+
reject(new Error(`Timeout waiting for event: ${topic}`));
|
|
60
|
+
}, timeout) : null;
|
|
61
|
+
const handler = (event) => {
|
|
62
|
+
if (timer)
|
|
63
|
+
clearTimeout(timer);
|
|
64
|
+
this.emitter.off(topic, handler);
|
|
65
|
+
resolve(event);
|
|
66
|
+
};
|
|
67
|
+
this.emitter.once(topic, handler);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get the underlying EventEmitter
|
|
72
|
+
*/
|
|
73
|
+
getEmitter() {
|
|
74
|
+
return this.emitter;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.EventEmitterPubSub = EventEmitterPubSub;
|
|
78
|
+
/**
|
|
79
|
+
* Agent Event Bus - Specialized event system for agent communication
|
|
80
|
+
*/
|
|
81
|
+
class AgentEventBus {
|
|
82
|
+
constructor(agentId, pubsub) {
|
|
83
|
+
this.agentId = agentId;
|
|
84
|
+
this.pubsub = pubsub ?? new EventEmitterPubSub();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Emit an agent event
|
|
88
|
+
*/
|
|
89
|
+
async emit(eventType, data) {
|
|
90
|
+
await this.pubsub.publish(`agent:${this.agentId}:${eventType}`, data, {
|
|
91
|
+
agentId: this.agentId,
|
|
92
|
+
eventType
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Listen for agent events
|
|
97
|
+
*/
|
|
98
|
+
async on(eventType, handler) {
|
|
99
|
+
await this.pubsub.subscribe(`agent:${this.agentId}:${eventType}`, (event) => {
|
|
100
|
+
handler(event.data);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Broadcast to all agents
|
|
105
|
+
*/
|
|
106
|
+
async broadcast(eventType, data) {
|
|
107
|
+
await this.pubsub.publish(`broadcast:${eventType}`, data, {
|
|
108
|
+
sourceAgentId: this.agentId,
|
|
109
|
+
eventType
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Listen for broadcast events
|
|
114
|
+
*/
|
|
115
|
+
async onBroadcast(eventType, handler) {
|
|
116
|
+
await this.pubsub.subscribe(`broadcast:${eventType}`, (event) => {
|
|
117
|
+
handler(event.data, event.metadata?.sourceAgentId);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Send message to specific agent
|
|
122
|
+
*/
|
|
123
|
+
async sendTo(targetAgentId, eventType, data) {
|
|
124
|
+
await this.pubsub.publish(`agent:${targetAgentId}:${eventType}`, data, {
|
|
125
|
+
sourceAgentId: this.agentId,
|
|
126
|
+
targetAgentId,
|
|
127
|
+
eventType
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
async close() {
|
|
131
|
+
await this.pubsub.close();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.AgentEventBus = AgentEventBus;
|
|
135
|
+
// Standard event types
|
|
136
|
+
exports.AgentEvents = {
|
|
137
|
+
STARTED: 'started',
|
|
138
|
+
COMPLETED: 'completed',
|
|
139
|
+
ERROR: 'error',
|
|
140
|
+
TOOL_CALLED: 'tool_called',
|
|
141
|
+
TOOL_RESULT: 'tool_result',
|
|
142
|
+
MESSAGE_RECEIVED: 'message_received',
|
|
143
|
+
MESSAGE_SENT: 'message_sent',
|
|
144
|
+
HANDOFF_INITIATED: 'handoff_initiated',
|
|
145
|
+
HANDOFF_COMPLETED: 'handoff_completed'
|
|
146
|
+
};
|
|
147
|
+
// Factory functions
|
|
148
|
+
function createEventBus(agentId) {
|
|
149
|
+
return new AgentEventBus(agentId);
|
|
150
|
+
}
|
|
151
|
+
function createPubSub() {
|
|
152
|
+
return new EventEmitterPubSub();
|
|
153
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrails - Input/output validation and safety checks
|
|
3
|
+
*/
|
|
4
|
+
export type GuardrailStatus = 'passed' | 'failed' | 'warning';
|
|
5
|
+
export interface GuardrailResult {
|
|
6
|
+
status: GuardrailStatus;
|
|
7
|
+
message?: string;
|
|
8
|
+
details?: Record<string, any>;
|
|
9
|
+
modifiedContent?: string;
|
|
10
|
+
}
|
|
11
|
+
export type GuardrailFunction = (content: string, context?: GuardrailContext) => Promise<GuardrailResult> | GuardrailResult;
|
|
12
|
+
export interface GuardrailContext {
|
|
13
|
+
role: 'input' | 'output';
|
|
14
|
+
agentName?: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
metadata?: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
export interface GuardrailConfig {
|
|
19
|
+
name: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
check: GuardrailFunction;
|
|
22
|
+
onFail?: 'block' | 'warn' | 'modify';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Guardrail class
|
|
26
|
+
*/
|
|
27
|
+
export declare class Guardrail {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly description: string;
|
|
30
|
+
readonly check: GuardrailFunction;
|
|
31
|
+
readonly onFail: 'block' | 'warn' | 'modify';
|
|
32
|
+
constructor(config: GuardrailConfig);
|
|
33
|
+
run(content: string, context?: GuardrailContext): Promise<GuardrailResult>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a guardrail
|
|
37
|
+
*/
|
|
38
|
+
export declare function guardrail(config: GuardrailConfig): Guardrail;
|
|
39
|
+
/**
|
|
40
|
+
* Guardrail Manager - Run multiple guardrails
|
|
41
|
+
*/
|
|
42
|
+
export declare class GuardrailManager {
|
|
43
|
+
private guardrails;
|
|
44
|
+
add(g: Guardrail): this;
|
|
45
|
+
runAll(content: string, context?: GuardrailContext): Promise<{
|
|
46
|
+
passed: boolean;
|
|
47
|
+
results: Array<{
|
|
48
|
+
name: string;
|
|
49
|
+
result: GuardrailResult;
|
|
50
|
+
}>;
|
|
51
|
+
}>;
|
|
52
|
+
get count(): number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Built-in guardrails
|
|
56
|
+
*/
|
|
57
|
+
export declare const builtinGuardrails: {
|
|
58
|
+
/**
|
|
59
|
+
* Check for maximum length
|
|
60
|
+
*/
|
|
61
|
+
maxLength: (maxChars: number) => Guardrail;
|
|
62
|
+
/**
|
|
63
|
+
* Check for minimum length
|
|
64
|
+
*/
|
|
65
|
+
minLength: (minChars: number) => Guardrail;
|
|
66
|
+
/**
|
|
67
|
+
* Check for blocked words
|
|
68
|
+
*/
|
|
69
|
+
blockedWords: (words: string[]) => Guardrail;
|
|
70
|
+
/**
|
|
71
|
+
* Check for required words
|
|
72
|
+
*/
|
|
73
|
+
requiredWords: (words: string[]) => Guardrail;
|
|
74
|
+
/**
|
|
75
|
+
* Regex pattern check
|
|
76
|
+
*/
|
|
77
|
+
pattern: (regex: RegExp, mustMatch?: boolean) => Guardrail;
|
|
78
|
+
/**
|
|
79
|
+
* JSON validity check
|
|
80
|
+
*/
|
|
81
|
+
validJson: () => Guardrail;
|
|
82
|
+
};
|