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
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Image command - Image generation and analysis
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.execute = execute;
|
|
40
|
+
const image_1 = require("../../agent/image");
|
|
41
|
+
const resolve_1 = require("../config/resolve");
|
|
42
|
+
const json_1 = require("../output/json");
|
|
43
|
+
const pretty = __importStar(require("../output/pretty"));
|
|
44
|
+
const cli_spec_1 = require("../spec/cli-spec");
|
|
45
|
+
const errors_1 = require("../output/errors");
|
|
46
|
+
async function execute(args, options) {
|
|
47
|
+
const action = args[0] || 'help';
|
|
48
|
+
const actionArgs = args.slice(1);
|
|
49
|
+
const outputFormat = options.json ? 'json' : (options.output || 'pretty');
|
|
50
|
+
const config = (0, resolve_1.resolveConfig)(options);
|
|
51
|
+
try {
|
|
52
|
+
switch (action) {
|
|
53
|
+
case 'generate':
|
|
54
|
+
await generateImage(actionArgs, options, config, outputFormat);
|
|
55
|
+
break;
|
|
56
|
+
case 'analyze':
|
|
57
|
+
await analyzeImage(actionArgs, options, config, outputFormat);
|
|
58
|
+
break;
|
|
59
|
+
case 'help':
|
|
60
|
+
default:
|
|
61
|
+
await showHelp(outputFormat);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (outputFormat === 'json') {
|
|
67
|
+
(0, json_1.outputJson)((0, json_1.formatError)(errors_1.ERROR_CODES.UNKNOWN, error instanceof Error ? error.message : String(error)));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
await pretty.error(error instanceof Error ? error.message : String(error));
|
|
71
|
+
}
|
|
72
|
+
process.exit(cli_spec_1.EXIT_CODES.RUNTIME_ERROR);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function generateImage(args, options, config, outputFormat) {
|
|
76
|
+
const prompt = args.join(' ');
|
|
77
|
+
if (!prompt) {
|
|
78
|
+
if (outputFormat === 'json') {
|
|
79
|
+
(0, json_1.outputJson)((0, json_1.formatError)(errors_1.ERROR_CODES.MISSING_ARG, 'Please provide a prompt for image generation'));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
await pretty.error('Please provide a prompt for image generation');
|
|
83
|
+
}
|
|
84
|
+
process.exit(cli_spec_1.EXIT_CODES.INVALID_ARGUMENTS);
|
|
85
|
+
}
|
|
86
|
+
const startTime = Date.now();
|
|
87
|
+
if (outputFormat !== 'json') {
|
|
88
|
+
await pretty.info(`Generating image: "${prompt}"`);
|
|
89
|
+
}
|
|
90
|
+
const agent = (0, image_1.createImageAgent)({
|
|
91
|
+
llm: config.model,
|
|
92
|
+
verbose: options.verbose
|
|
93
|
+
});
|
|
94
|
+
const result = await agent.generate({
|
|
95
|
+
prompt,
|
|
96
|
+
size: options.size,
|
|
97
|
+
quality: options.quality,
|
|
98
|
+
style: options.style
|
|
99
|
+
});
|
|
100
|
+
const duration = Date.now() - startTime;
|
|
101
|
+
const urls = Array.isArray(result) ? result : [result];
|
|
102
|
+
if (outputFormat === 'json') {
|
|
103
|
+
(0, json_1.outputJson)((0, json_1.formatSuccess)({
|
|
104
|
+
prompt,
|
|
105
|
+
urls
|
|
106
|
+
}, {
|
|
107
|
+
duration_ms: duration,
|
|
108
|
+
model: config.model
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
await pretty.heading('Generated Image');
|
|
113
|
+
for (const url of urls) {
|
|
114
|
+
await pretty.plain(`URL: ${url}`);
|
|
115
|
+
}
|
|
116
|
+
await pretty.newline();
|
|
117
|
+
await pretty.success(`Generated in ${duration}ms`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async function analyzeImage(args, options, config, outputFormat) {
|
|
121
|
+
const imageUrl = args[0];
|
|
122
|
+
const prompt = args.slice(1).join(' ') || 'Describe this image';
|
|
123
|
+
if (!imageUrl) {
|
|
124
|
+
if (outputFormat === 'json') {
|
|
125
|
+
(0, json_1.outputJson)((0, json_1.formatError)(errors_1.ERROR_CODES.MISSING_ARG, 'Please provide an image URL'));
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
await pretty.error('Please provide an image URL');
|
|
129
|
+
}
|
|
130
|
+
process.exit(cli_spec_1.EXIT_CODES.INVALID_ARGUMENTS);
|
|
131
|
+
}
|
|
132
|
+
const startTime = Date.now();
|
|
133
|
+
if (outputFormat !== 'json') {
|
|
134
|
+
await pretty.info(`Analyzing image: ${imageUrl}`);
|
|
135
|
+
}
|
|
136
|
+
const agent = (0, image_1.createImageAgent)({
|
|
137
|
+
llm: config.model,
|
|
138
|
+
verbose: options.verbose
|
|
139
|
+
});
|
|
140
|
+
const result = await agent.analyze({
|
|
141
|
+
imageUrl,
|
|
142
|
+
prompt
|
|
143
|
+
});
|
|
144
|
+
const duration = Date.now() - startTime;
|
|
145
|
+
if (outputFormat === 'json') {
|
|
146
|
+
(0, json_1.outputJson)((0, json_1.formatSuccess)({
|
|
147
|
+
imageUrl,
|
|
148
|
+
prompt,
|
|
149
|
+
analysis: result
|
|
150
|
+
}, {
|
|
151
|
+
duration_ms: duration,
|
|
152
|
+
model: config.model
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
await pretty.heading('Image Analysis');
|
|
157
|
+
await pretty.plain(result);
|
|
158
|
+
await pretty.newline();
|
|
159
|
+
await pretty.success(`Analyzed in ${duration}ms`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async function showHelp(outputFormat) {
|
|
163
|
+
const help = {
|
|
164
|
+
command: 'image',
|
|
165
|
+
subcommands: [
|
|
166
|
+
{ name: 'generate <prompt>', description: 'Generate an image from text' },
|
|
167
|
+
{ name: 'analyze <url> [question]', description: 'Analyze an image' },
|
|
168
|
+
{ name: 'help', description: 'Show this help' }
|
|
169
|
+
],
|
|
170
|
+
flags: [
|
|
171
|
+
{ name: '--size', description: 'Image size (1024x1024, 1792x1024, 1024x1792)' },
|
|
172
|
+
{ name: '--quality', description: 'Image quality (standard, hd)' },
|
|
173
|
+
{ name: '--style', description: 'Image style (vivid, natural)' }
|
|
174
|
+
]
|
|
175
|
+
};
|
|
176
|
+
if (outputFormat === 'json') {
|
|
177
|
+
(0, json_1.outputJson)((0, json_1.formatSuccess)(help));
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
await pretty.heading('Image Command');
|
|
181
|
+
await pretty.plain('Generate and analyze images\n');
|
|
182
|
+
await pretty.plain('Subcommands:');
|
|
183
|
+
for (const cmd of help.subcommands) {
|
|
184
|
+
await pretty.plain(` ${cmd.name.padEnd(30)} ${cmd.description}`);
|
|
185
|
+
}
|
|
186
|
+
await pretty.newline();
|
|
187
|
+
await pretty.plain('Flags:');
|
|
188
|
+
for (const flag of help.flags) {
|
|
189
|
+
await pretty.plain(` ${flag.name.padEnd(20)} ${flag.description}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI command: interactive
|
|
4
|
+
* Interactive TUI mode with slash commands
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.execute = execute;
|
|
8
|
+
exports.showHelp = showHelp;
|
|
9
|
+
const interactive_tui_1 = require("../features/interactive-tui");
|
|
10
|
+
async function execute(args, options) {
|
|
11
|
+
const isJson = Boolean(options.output === 'json' || options.json);
|
|
12
|
+
if (isJson) {
|
|
13
|
+
console.log(JSON.stringify({
|
|
14
|
+
success: false,
|
|
15
|
+
error: 'Interactive mode does not support JSON output'
|
|
16
|
+
}));
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const historyFile = options.history;
|
|
20
|
+
const model = options.model;
|
|
21
|
+
console.log('Starting interactive mode...');
|
|
22
|
+
console.log('Type /help for available commands, /exit to quit.\n');
|
|
23
|
+
const tui = (0, interactive_tui_1.createInteractiveTUI)({
|
|
24
|
+
prompt: options.prompt || '> ',
|
|
25
|
+
historyFile,
|
|
26
|
+
welcomeMessage: `OverAI Interactive Mode
|
|
27
|
+
Model: ${model || 'default'}
|
|
28
|
+
Type /help for commands, /exit to quit.`,
|
|
29
|
+
onMessage: async (message) => {
|
|
30
|
+
// Simple echo for now - in real usage this would call the agent
|
|
31
|
+
return `You said: ${message}`;
|
|
32
|
+
},
|
|
33
|
+
onExit: () => {
|
|
34
|
+
console.log('\nGoodbye!');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
// Update context with model if provided
|
|
38
|
+
if (model) {
|
|
39
|
+
tui.updateContext({ model });
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
await tui.start();
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(`Error: ${error.message}`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function showHelp() {
|
|
50
|
+
console.log(`Interactive - Interactive TUI mode
|
|
51
|
+
|
|
52
|
+
Usage:
|
|
53
|
+
overai interactive [options]
|
|
54
|
+
|
|
55
|
+
Options:
|
|
56
|
+
--model, -m Model to use
|
|
57
|
+
--prompt Custom prompt string (default: "> ")
|
|
58
|
+
--history Path to history file
|
|
59
|
+
|
|
60
|
+
Slash Commands (in interactive mode):
|
|
61
|
+
/help Show available commands
|
|
62
|
+
/cost Show token usage and cost
|
|
63
|
+
/clear Clear conversation history
|
|
64
|
+
/model [name] Show or change model
|
|
65
|
+
/tokens Show token count
|
|
66
|
+
/plan Manage task plan
|
|
67
|
+
/undo Undo last action
|
|
68
|
+
/diff Show pending changes
|
|
69
|
+
/commit Commit pending changes
|
|
70
|
+
/settings Show or modify settings
|
|
71
|
+
/map Show repository map
|
|
72
|
+
/exit Exit interactive mode
|
|
73
|
+
|
|
74
|
+
Examples:
|
|
75
|
+
overai interactive
|
|
76
|
+
overai interactive --model gpt-4o
|
|
77
|
+
overai interactive --history ~/.overai_history
|
|
78
|
+
`);
|
|
79
|
+
}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI command: jobs
|
|
4
|
+
* Background job queue management
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.execute = execute;
|
|
8
|
+
const background_jobs_1 = require("../features/background-jobs");
|
|
9
|
+
let globalQueue = null;
|
|
10
|
+
function getQueue(storagePath) {
|
|
11
|
+
if (!globalQueue) {
|
|
12
|
+
const storage = storagePath ? (0, background_jobs_1.createFileJobStorage)(storagePath) : undefined;
|
|
13
|
+
globalQueue = (0, background_jobs_1.createJobQueue)({ storage });
|
|
14
|
+
}
|
|
15
|
+
return globalQueue;
|
|
16
|
+
}
|
|
17
|
+
async function execute(args, options) {
|
|
18
|
+
const subcommand = args[0] || 'help';
|
|
19
|
+
const isJson = Boolean(options.output === 'json' || options.json);
|
|
20
|
+
const storagePath = options.storage;
|
|
21
|
+
switch (subcommand) {
|
|
22
|
+
case 'add':
|
|
23
|
+
await handleAdd(args.slice(1), options, isJson, storagePath);
|
|
24
|
+
break;
|
|
25
|
+
case 'list':
|
|
26
|
+
await handleList(options, isJson, storagePath);
|
|
27
|
+
break;
|
|
28
|
+
case 'get':
|
|
29
|
+
await handleGet(args.slice(1), isJson, storagePath);
|
|
30
|
+
break;
|
|
31
|
+
case 'cancel':
|
|
32
|
+
await handleCancel(args.slice(1), isJson, storagePath);
|
|
33
|
+
break;
|
|
34
|
+
case 'retry':
|
|
35
|
+
await handleRetry(args.slice(1), isJson, storagePath);
|
|
36
|
+
break;
|
|
37
|
+
case 'process':
|
|
38
|
+
await handleProcess(args.slice(1), isJson, storagePath);
|
|
39
|
+
break;
|
|
40
|
+
case 'stats':
|
|
41
|
+
await handleStats(isJson, storagePath);
|
|
42
|
+
break;
|
|
43
|
+
case 'cleanup':
|
|
44
|
+
await handleCleanup(options, isJson, storagePath);
|
|
45
|
+
break;
|
|
46
|
+
case 'help':
|
|
47
|
+
default:
|
|
48
|
+
showHelp(isJson);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function handleAdd(args, options, isJson, storagePath) {
|
|
52
|
+
const name = args[0];
|
|
53
|
+
const dataStr = args[1] || '{}';
|
|
54
|
+
if (!name) {
|
|
55
|
+
console.error('Error: Job name is required');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
let data;
|
|
59
|
+
try {
|
|
60
|
+
data = JSON.parse(dataStr);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
data = { input: dataStr };
|
|
64
|
+
}
|
|
65
|
+
const priority = options.priority || 'normal';
|
|
66
|
+
const queue = getQueue(storagePath);
|
|
67
|
+
const job = await queue.add(name, data, {
|
|
68
|
+
priority: priority
|
|
69
|
+
});
|
|
70
|
+
if (isJson) {
|
|
71
|
+
console.log(JSON.stringify({ success: true, job }, null, 2));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(`✓ Job created: ${job.id}`);
|
|
75
|
+
console.log(` Name: ${job.name}`);
|
|
76
|
+
console.log(` Priority: ${job.priority}`);
|
|
77
|
+
console.log(` Status: ${job.status}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function handleList(options, isJson, storagePath) {
|
|
81
|
+
const queue = getQueue(storagePath);
|
|
82
|
+
const status = options.status;
|
|
83
|
+
let jobs = await queue.getAll();
|
|
84
|
+
if (status) {
|
|
85
|
+
jobs = jobs.filter(j => j.status === status);
|
|
86
|
+
}
|
|
87
|
+
if (isJson) {
|
|
88
|
+
console.log(JSON.stringify({ success: true, jobs }, null, 2));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (jobs.length === 0) {
|
|
92
|
+
console.log('No jobs found');
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log('Jobs:');
|
|
96
|
+
for (const job of jobs) {
|
|
97
|
+
console.log(` ${job.id}`);
|
|
98
|
+
console.log(` Name: ${job.name}`);
|
|
99
|
+
console.log(` Status: ${job.status}`);
|
|
100
|
+
console.log(` Priority: ${job.priority}`);
|
|
101
|
+
console.log(` Attempts: ${job.attempts}/${job.maxAttempts}`);
|
|
102
|
+
if (job.error)
|
|
103
|
+
console.log(` Error: ${job.error}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function handleGet(args, isJson, storagePath) {
|
|
109
|
+
const id = args[0];
|
|
110
|
+
if (!id) {
|
|
111
|
+
console.error('Error: Job ID is required');
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const queue = getQueue(storagePath);
|
|
115
|
+
const job = await queue.get(id);
|
|
116
|
+
if (!job) {
|
|
117
|
+
if (isJson) {
|
|
118
|
+
console.log(JSON.stringify({ success: false, error: 'Job not found' }));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
console.error(`Job ${id} not found`);
|
|
122
|
+
}
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
if (isJson) {
|
|
126
|
+
console.log(JSON.stringify({ success: true, job }, null, 2));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
console.log(`Job: ${job.id}`);
|
|
130
|
+
console.log(` Name: ${job.name}`);
|
|
131
|
+
console.log(` Status: ${job.status}`);
|
|
132
|
+
console.log(` Priority: ${job.priority}`);
|
|
133
|
+
console.log(` Attempts: ${job.attempts}/${job.maxAttempts}`);
|
|
134
|
+
console.log(` Created: ${job.createdAt}`);
|
|
135
|
+
if (job.startedAt)
|
|
136
|
+
console.log(` Started: ${job.startedAt}`);
|
|
137
|
+
if (job.completedAt)
|
|
138
|
+
console.log(` Completed: ${job.completedAt}`);
|
|
139
|
+
if (job.error)
|
|
140
|
+
console.log(` Error: ${job.error}`);
|
|
141
|
+
if (job.result)
|
|
142
|
+
console.log(` Result: ${JSON.stringify(job.result)}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async function handleCancel(args, isJson, storagePath) {
|
|
146
|
+
const id = args[0];
|
|
147
|
+
if (!id) {
|
|
148
|
+
console.error('Error: Job ID is required');
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
const queue = getQueue(storagePath);
|
|
152
|
+
const cancelled = await queue.cancel(id);
|
|
153
|
+
if (isJson) {
|
|
154
|
+
console.log(JSON.stringify({ success: cancelled, id }));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(cancelled ? `✓ Job ${id} cancelled` : `Could not cancel job ${id}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
async function handleRetry(args, isJson, storagePath) {
|
|
161
|
+
const id = args[0];
|
|
162
|
+
if (!id) {
|
|
163
|
+
console.error('Error: Job ID is required');
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
166
|
+
const queue = getQueue(storagePath);
|
|
167
|
+
const retried = await queue.retry(id);
|
|
168
|
+
if (isJson) {
|
|
169
|
+
console.log(JSON.stringify({ success: retried, id }));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
console.log(retried ? `✓ Job ${id} queued for retry` : `Could not retry job ${id}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function handleProcess(args, isJson, storagePath) {
|
|
176
|
+
const id = args[0];
|
|
177
|
+
if (!id) {
|
|
178
|
+
console.error('Error: Job ID is required');
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
const queue = getQueue(storagePath);
|
|
182
|
+
// Register a simple handler
|
|
183
|
+
queue.register('default', async (job) => {
|
|
184
|
+
return { processed: true, data: job.data };
|
|
185
|
+
});
|
|
186
|
+
try {
|
|
187
|
+
const result = await queue.processNow(id);
|
|
188
|
+
if (isJson) {
|
|
189
|
+
console.log(JSON.stringify({ success: true, result }, null, 2));
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
console.log(`✓ Job ${id} processed`);
|
|
193
|
+
console.log(` Result: ${JSON.stringify(result)}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
if (isJson) {
|
|
198
|
+
console.log(JSON.stringify({ success: false, error: error.message }));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
console.error(`Error: ${error.message}`);
|
|
202
|
+
}
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
async function handleStats(isJson, storagePath) {
|
|
207
|
+
const queue = getQueue(storagePath);
|
|
208
|
+
const stats = await queue.getStats();
|
|
209
|
+
if (isJson) {
|
|
210
|
+
console.log(JSON.stringify({ success: true, stats }, null, 2));
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
console.log('Job Queue Stats:');
|
|
214
|
+
console.log(` Pending: ${stats.pending}`);
|
|
215
|
+
console.log(` Running: ${stats.running}`);
|
|
216
|
+
console.log(` Completed: ${stats.completed}`);
|
|
217
|
+
console.log(` Failed: ${stats.failed}`);
|
|
218
|
+
console.log(` Cancelled: ${stats.cancelled}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function handleCleanup(options, isJson, storagePath) {
|
|
222
|
+
const queue = getQueue(storagePath);
|
|
223
|
+
const days = options.days || 7;
|
|
224
|
+
const olderThan = new Date(Date.now() - days * 24 * 60 * 60 * 1000);
|
|
225
|
+
const count = await queue.cleanup(olderThan);
|
|
226
|
+
if (isJson) {
|
|
227
|
+
console.log(JSON.stringify({ success: true, cleaned: count }));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
console.log(`✓ Cleaned up ${count} jobs older than ${days} days`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
function showHelp(isJson) {
|
|
234
|
+
const help = {
|
|
235
|
+
command: 'jobs',
|
|
236
|
+
description: 'Background job queue management',
|
|
237
|
+
subcommands: {
|
|
238
|
+
add: 'Add a new job to the queue',
|
|
239
|
+
list: 'List all jobs',
|
|
240
|
+
get: 'Get job details',
|
|
241
|
+
cancel: 'Cancel a pending job',
|
|
242
|
+
retry: 'Retry a failed job',
|
|
243
|
+
process: 'Process a job immediately',
|
|
244
|
+
stats: 'Show queue statistics',
|
|
245
|
+
cleanup: 'Clean up old completed/failed jobs'
|
|
246
|
+
},
|
|
247
|
+
flags: {
|
|
248
|
+
'--storage': 'Path to job storage file',
|
|
249
|
+
'--priority': 'Job priority (low, normal, high, critical)',
|
|
250
|
+
'--status': 'Filter by status',
|
|
251
|
+
'--days': 'Days for cleanup threshold',
|
|
252
|
+
'--json': 'Output in JSON format'
|
|
253
|
+
},
|
|
254
|
+
examples: [
|
|
255
|
+
'overai jobs add my-job \'{"input": "data"}\'',
|
|
256
|
+
'overai jobs add task --priority high',
|
|
257
|
+
'overai jobs list --status pending',
|
|
258
|
+
'overai jobs get <job-id>',
|
|
259
|
+
'overai jobs cancel <job-id>',
|
|
260
|
+
'overai jobs stats',
|
|
261
|
+
'overai jobs cleanup --days 30'
|
|
262
|
+
]
|
|
263
|
+
};
|
|
264
|
+
if (isJson) {
|
|
265
|
+
console.log(JSON.stringify(help, null, 2));
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
console.log('Jobs - Background job queue management\n');
|
|
269
|
+
console.log('Subcommands:');
|
|
270
|
+
for (const [cmd, desc] of Object.entries(help.subcommands)) {
|
|
271
|
+
console.log(` ${cmd.padEnd(12)} ${desc}`);
|
|
272
|
+
}
|
|
273
|
+
console.log('\nFlags:');
|
|
274
|
+
for (const [flag, desc] of Object.entries(help.flags)) {
|
|
275
|
+
console.log(` ${flag.padEnd(12)} ${desc}`);
|
|
276
|
+
}
|
|
277
|
+
console.log('\nExamples:');
|
|
278
|
+
for (const ex of help.examples) {
|
|
279
|
+
console.log(` ${ex}`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge command - Manage knowledge base
|
|
3
|
+
*/
|
|
4
|
+
export interface KnowledgeOptions {
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
output?: 'json' | 'text' | 'pretty';
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function execute(args: string[], options: KnowledgeOptions): Promise<void>;
|