aura-code 0.3.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/LICENSE +21 -0
- package/README.md +137 -0
- package/dist/agent/context.d.ts +13 -0
- package/dist/agent/context.js +183 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/loop.d.ts +60 -0
- package/dist/agent/loop.js +228 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/session-store.d.ts +30 -0
- package/dist/agent/session-store.js +178 -0
- package/dist/agent/session-store.js.map +1 -0
- package/dist/agent/spawner.d.ts +57 -0
- package/dist/agent/spawner.js +112 -0
- package/dist/agent/spawner.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +3 -0
- package/dist/agent/system-prompt.js +100 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/architect/engine.d.ts +47 -0
- package/dist/architect/engine.js +217 -0
- package/dist/architect/engine.js.map +1 -0
- package/dist/architect/types.d.ts +61 -0
- package/dist/architect/types.js +6 -0
- package/dist/architect/types.js.map +1 -0
- package/dist/cli/diamond.d.ts +1 -0
- package/dist/cli/diamond.js +23 -0
- package/dist/cli/diamond.js.map +1 -0
- package/dist/cli/display.d.ts +44 -0
- package/dist/cli/display.js +234 -0
- package/dist/cli/display.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +1734 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/defaults.d.ts +46 -0
- package/dist/config/defaults.js +106 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/project-config.d.ts +90 -0
- package/dist/config/project-config.js +141 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/harness/proposer.d.ts +26 -0
- package/dist/harness/proposer.js +204 -0
- package/dist/harness/proposer.js.map +1 -0
- package/dist/harness/weakness-miner.d.ts +28 -0
- package/dist/harness/weakness-miner.js +359 -0
- package/dist/harness/weakness-miner.js.map +1 -0
- package/dist/integrations/harnesses.d.ts +23 -0
- package/dist/integrations/harnesses.js +161 -0
- package/dist/integrations/harnesses.js.map +1 -0
- package/dist/orchestration/competence.d.ts +53 -0
- package/dist/orchestration/competence.js +181 -0
- package/dist/orchestration/competence.js.map +1 -0
- package/dist/orchestration/executor.d.ts +42 -0
- package/dist/orchestration/executor.js +206 -0
- package/dist/orchestration/executor.js.map +1 -0
- package/dist/orchestration/index.d.ts +20 -0
- package/dist/orchestration/index.js +39 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/orchestrator-prompts.d.ts +11 -0
- package/dist/orchestration/orchestrator-prompts.js +153 -0
- package/dist/orchestration/orchestrator-prompts.js.map +1 -0
- package/dist/orchestration/orchestrator.d.ts +27 -0
- package/dist/orchestration/orchestrator.js +169 -0
- package/dist/orchestration/orchestrator.js.map +1 -0
- package/dist/orchestration/plan-store.d.ts +53 -0
- package/dist/orchestration/plan-store.js +176 -0
- package/dist/orchestration/plan-store.js.map +1 -0
- package/dist/orchestration/router-prompts.d.ts +6 -0
- package/dist/orchestration/router-prompts.js +55 -0
- package/dist/orchestration/router-prompts.js.map +1 -0
- package/dist/orchestration/router.d.ts +23 -0
- package/dist/orchestration/router.js +70 -0
- package/dist/orchestration/router.js.map +1 -0
- package/dist/orchestration/ruby-detect.d.ts +6 -0
- package/dist/orchestration/ruby-detect.js +130 -0
- package/dist/orchestration/ruby-detect.js.map +1 -0
- package/dist/orchestration/ruby-types.d.ts +44 -0
- package/dist/orchestration/ruby-types.js +6 -0
- package/dist/orchestration/ruby-types.js.map +1 -0
- package/dist/orchestration/specialist-prompts.d.ts +19 -0
- package/dist/orchestration/specialist-prompts.js +143 -0
- package/dist/orchestration/specialist-prompts.js.map +1 -0
- package/dist/orchestration/specialists.d.ts +66 -0
- package/dist/orchestration/specialists.js +175 -0
- package/dist/orchestration/specialists.js.map +1 -0
- package/dist/orchestration/types.d.ts +82 -0
- package/dist/orchestration/types.js +6 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/perception/extractor.d.ts +7 -0
- package/dist/perception/extractor.js +521 -0
- package/dist/perception/extractor.js.map +1 -0
- package/dist/perception/graph-store.d.ts +25 -0
- package/dist/perception/graph-store.js +117 -0
- package/dist/perception/graph-store.js.map +1 -0
- package/dist/perception/index.d.ts +4 -0
- package/dist/perception/index.js +18 -0
- package/dist/perception/index.js.map +1 -0
- package/dist/perception/queries.d.ts +29 -0
- package/dist/perception/queries.js +354 -0
- package/dist/perception/queries.js.map +1 -0
- package/dist/perception/types.d.ts +103 -0
- package/dist/perception/types.js +6 -0
- package/dist/perception/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts +11 -0
- package/dist/providers/anthropic.js +172 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/factory.d.ts +58 -0
- package/dist/providers/factory.js +354 -0
- package/dist/providers/factory.js.map +1 -0
- package/dist/providers/fallback.d.ts +24 -0
- package/dist/providers/fallback.js +72 -0
- package/dist/providers/fallback.js.map +1 -0
- package/dist/providers/google.d.ts +11 -0
- package/dist/providers/google.js +129 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +24 -0
- package/dist/providers/openai-compatible.js +216 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/providers/resilient-factory.d.ts +24 -0
- package/dist/providers/resilient-factory.js +57 -0
- package/dist/providers/resilient-factory.js.map +1 -0
- package/dist/providers/resilient.d.ts +63 -0
- package/dist/providers/resilient.js +145 -0
- package/dist/providers/resilient.js.map +1 -0
- package/dist/providers/types.d.ts +84 -0
- package/dist/providers/types.js +6 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/ruby/alternator.d.ts +40 -0
- package/dist/ruby/alternator.js +233 -0
- package/dist/ruby/alternator.js.map +1 -0
- package/dist/ruby/competence.d.ts +34 -0
- package/dist/ruby/competence.js +264 -0
- package/dist/ruby/competence.js.map +1 -0
- package/dist/ruby/episode-capture.d.ts +56 -0
- package/dist/ruby/episode-capture.js +193 -0
- package/dist/ruby/episode-capture.js.map +1 -0
- package/dist/ruby/fine-tune.d.ts +16 -0
- package/dist/ruby/fine-tune.js +253 -0
- package/dist/ruby/fine-tune.js.map +1 -0
- package/dist/ruby/index.d.ts +10 -0
- package/dist/ruby/index.js +26 -0
- package/dist/ruby/index.js.map +1 -0
- package/dist/ruby/ruby-model.d.ts +36 -0
- package/dist/ruby/ruby-model.js +81 -0
- package/dist/ruby/ruby-model.js.map +1 -0
- package/dist/ruby/training-data.d.ts +11 -0
- package/dist/ruby/training-data.js +107 -0
- package/dist/ruby/training-data.js.map +1 -0
- package/dist/ruby/types.d.ts +136 -0
- package/dist/ruby/types.js +20 -0
- package/dist/ruby/types.js.map +1 -0
- package/dist/safety/permissions.d.ts +32 -0
- package/dist/safety/permissions.js +304 -0
- package/dist/safety/permissions.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +342 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/session.d.ts +22 -0
- package/dist/server/session.js +16 -0
- package/dist/server/session.js.map +1 -0
- package/dist/setup/first-run.d.ts +41 -0
- package/dist/setup/first-run.js +386 -0
- package/dist/setup/first-run.js.map +1 -0
- package/dist/setup/global-config.d.ts +19 -0
- package/dist/setup/global-config.js +97 -0
- package/dist/setup/global-config.js.map +1 -0
- package/dist/tools/audio-transcribe.d.ts +8 -0
- package/dist/tools/audio-transcribe.js +156 -0
- package/dist/tools/audio-transcribe.js.map +1 -0
- package/dist/tools/browser.d.ts +15 -0
- package/dist/tools/browser.js +241 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/calendar.d.ts +12 -0
- package/dist/tools/calendar.js +196 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/clipboard.d.ts +7 -0
- package/dist/tools/clipboard.js +90 -0
- package/dist/tools/clipboard.js.map +1 -0
- package/dist/tools/cron.d.ts +10 -0
- package/dist/tools/cron.js +167 -0
- package/dist/tools/cron.js.map +1 -0
- package/dist/tools/edit-file.d.ts +6 -0
- package/dist/tools/edit-file.js +98 -0
- package/dist/tools/edit-file.js.map +1 -0
- package/dist/tools/email.d.ts +11 -0
- package/dist/tools/email.js +153 -0
- package/dist/tools/email.js.map +1 -0
- package/dist/tools/git.d.ts +1 -0
- package/dist/tools/git.js +7 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/http-request.d.ts +12 -0
- package/dist/tools/http-request.js +91 -0
- package/dist/tools/http-request.js.map +1 -0
- package/dist/tools/image-read.d.ts +7 -0
- package/dist/tools/image-read.js +125 -0
- package/dist/tools/image-read.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +201 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-dir.d.ts +1 -0
- package/dist/tools/list-dir.js +6 -0
- package/dist/tools/list-dir.js.map +1 -0
- package/dist/tools/mcp.d.ts +11 -0
- package/dist/tools/mcp.js +356 -0
- package/dist/tools/mcp.js.map +1 -0
- package/dist/tools/memory.d.ts +9 -0
- package/dist/tools/memory.js +124 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/notify.d.ts +9 -0
- package/dist/tools/notify.js +40 -0
- package/dist/tools/notify.js.map +1 -0
- package/dist/tools/read-file.d.ts +6 -0
- package/dist/tools/read-file.js +76 -0
- package/dist/tools/read-file.js.map +1 -0
- package/dist/tools/run-shell.d.ts +1 -0
- package/dist/tools/run-shell.js +6 -0
- package/dist/tools/run-shell.js.map +1 -0
- package/dist/tools/run-tests.d.ts +1 -0
- package/dist/tools/run-tests.js +6 -0
- package/dist/tools/run-tests.js.map +1 -0
- package/dist/tools/search-code.d.ts +1 -0
- package/dist/tools/search-code.js +6 -0
- package/dist/tools/search-code.js.map +1 -0
- package/dist/tools/telegram-bot.d.ts +2 -0
- package/dist/tools/telegram-bot.js +693 -0
- package/dist/tools/telegram-bot.js.map +1 -0
- package/dist/tools/telegram-safety.d.ts +52 -0
- package/dist/tools/telegram-safety.js +189 -0
- package/dist/tools/telegram-safety.js.map +1 -0
- package/dist/tools/telegram.d.ts +16 -0
- package/dist/tools/telegram.js +227 -0
- package/dist/tools/telegram.js.map +1 -0
- package/dist/tools/tools.d.ts +48 -0
- package/dist/tools/tools.js +328 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +11 -0
- package/dist/tools/web-fetch.js +119 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +8 -0
- package/dist/tools/web-search.js +81 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/whatsapp.d.ts +10 -0
- package/dist/tools/whatsapp.js +222 -0
- package/dist/tools/whatsapp.js.map +1 -0
- package/dist/tools/write-file.d.ts +1 -0
- package/dist/tools/write-file.js +6 -0
- package/dist/tools/write-file.js.map +1 -0
- package/dist/tools/youtube-transcript.d.ts +9 -0
- package/dist/tools/youtube-transcript.js +200 -0
- package/dist/tools/youtube-transcript.js.map +1 -0
- package/dist/util/circuit-breaker.d.ts +44 -0
- package/dist/util/circuit-breaker.js +78 -0
- package/dist/util/circuit-breaker.js.map +1 -0
- package/dist/util/env.d.ts +18 -0
- package/dist/util/env.js +39 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/errors.d.ts +42 -0
- package/dist/util/errors.js +121 -0
- package/dist/util/errors.js.map +1 -0
- package/dist/util/rate-limiter.d.ts +71 -0
- package/dist/util/rate-limiter.js +141 -0
- package/dist/util/rate-limiter.js.map +1 -0
- package/dist/util/retry.d.ts +30 -0
- package/dist/util/retry.js +57 -0
- package/dist/util/retry.js.map +1 -0
- package/dist/util/sanitize.d.ts +16 -0
- package/dist/util/sanitize.js +255 -0
- package/dist/util/sanitize.js.map +1 -0
- package/dist/verify/checks.d.ts +21 -0
- package/dist/verify/checks.js +311 -0
- package/dist/verify/checks.js.map +1 -0
- package/dist/verify/index.d.ts +33 -0
- package/dist/verify/index.js +127 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/types.d.ts +20 -0
- package/dist/verify/types.js +3 -0
- package/dist/verify/types.js.map +1 -0
- package/dist/versioncheck.d.ts +22 -0
- package/dist/versioncheck.js +203 -0
- package/dist/versioncheck.js.map +1 -0
- package/dist/viz/index.d.ts +2 -0
- package/dist/viz/index.js +733 -0
- package/dist/viz/index.js.map +1 -0
- package/dist/workflows/engine.d.ts +46 -0
- package/dist/workflows/engine.js +320 -0
- package/dist/workflows/engine.js.map +1 -0
- package/dist/workflows/types.d.ts +92 -0
- package/dist/workflows/types.js +6 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** Structural element in the project knowledge graph. */
|
|
2
|
+
export interface ArchitectureNode {
|
|
3
|
+
/** Unique stable identifier for this node (e.g. "src/agent/context.ts"). */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Coarse classification that drives how the node is visualised and queried. */
|
|
6
|
+
type: 'module' | 'file' | 'concept' | 'constraint' | 'decision' | 'trajectory';
|
|
7
|
+
/** Short human-readable label (shown in graph views and summaries). */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Longer explanation of what this node represents or why it matters. */
|
|
10
|
+
description: string;
|
|
11
|
+
/** Arbitrary extra data — provider-specific or tool-specific fields live here. */
|
|
12
|
+
metadata: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
/** Directed relationship between two nodes in the knowledge graph. */
|
|
15
|
+
export interface ArchitectureEdge {
|
|
16
|
+
/** id of the source node. */
|
|
17
|
+
from: string;
|
|
18
|
+
/** id of the target node. */
|
|
19
|
+
to: string;
|
|
20
|
+
/**
|
|
21
|
+
* Semantic type of the relationship.
|
|
22
|
+
* - `depends_on` — runtime or compile-time dependency
|
|
23
|
+
* - `implements` — concrete realisation of an abstraction
|
|
24
|
+
* - `deprecated_by` — this edge marks a replacement path
|
|
25
|
+
* - `extends` — inheritance or mixin
|
|
26
|
+
* - `violates` — known constraint breach (used with riskAreas)
|
|
27
|
+
* - `aligns_with` — supports or reinforces a constraint / decision
|
|
28
|
+
* - `owned_by` — ownership / responsibility link
|
|
29
|
+
* - `tests` — test file → production target
|
|
30
|
+
*/
|
|
31
|
+
relationship: 'depends_on' | 'implements' | 'deprecated_by' | 'extends' | 'violates' | 'aligns_with' | 'owned_by' | 'tests';
|
|
32
|
+
/** Confidence / strength of the relationship in [0, 1]. */
|
|
33
|
+
weight: number;
|
|
34
|
+
/** Arbitrary extra data — tracing source, timestamps, tool annotations. */
|
|
35
|
+
metadata: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/** Full knowledge-graph snapshot for a single project root. */
|
|
38
|
+
export interface ProjectPerception {
|
|
39
|
+
/** Absolute path to the project root this snapshot was built from. */
|
|
40
|
+
projectRoot: string;
|
|
41
|
+
/** All nodes in the architecture graph. */
|
|
42
|
+
nodes: ArchitectureNode[];
|
|
43
|
+
/** All directed edges in the architecture graph. */
|
|
44
|
+
edges: ArchitectureEdge[];
|
|
45
|
+
/** High-level trajectory: where the project came from and where it is going. */
|
|
46
|
+
trajectory: {
|
|
47
|
+
/** One-sentence statement of long-term project intent. */
|
|
48
|
+
vision: string;
|
|
49
|
+
/** Node ids (or labels) of things actively being removed or replaced. */
|
|
50
|
+
deprecated: string[];
|
|
51
|
+
/** Node ids (or labels) of work currently in flight. */
|
|
52
|
+
inProgress: string[];
|
|
53
|
+
/** Node ids (or labels) of work not yet started. */
|
|
54
|
+
planned: string[];
|
|
55
|
+
};
|
|
56
|
+
/** Structural constraints extracted from docs, ADRs, and conventions. */
|
|
57
|
+
constraints: {
|
|
58
|
+
/** Paths that must never be modified by automated agents. */
|
|
59
|
+
readOnly: string[];
|
|
60
|
+
/** Rules that must always hold (e.g. "no circular deps in core/"). */
|
|
61
|
+
strictRules: string[];
|
|
62
|
+
/** Areas with known fragility, high change frequency, or tech debt. */
|
|
63
|
+
riskAreas: string[];
|
|
64
|
+
/** Per-module test coverage classification. */
|
|
65
|
+
testCoverage: {
|
|
66
|
+
/** Module name or path prefix. */
|
|
67
|
+
module: string;
|
|
68
|
+
/** Rough coverage level; used to prioritise test generation. */
|
|
69
|
+
coverage: 'high' | 'medium' | 'low';
|
|
70
|
+
}[];
|
|
71
|
+
};
|
|
72
|
+
/** Unix timestamp (ms) when this snapshot was extracted. */
|
|
73
|
+
extractedAt: number;
|
|
74
|
+
/** Semver string of the perception schema used to produce this snapshot. */
|
|
75
|
+
version: string;
|
|
76
|
+
}
|
|
77
|
+
/** Parameters for a focused graph query. */
|
|
78
|
+
export interface PerceptionQuery {
|
|
79
|
+
/**
|
|
80
|
+
* Kind of information being requested.
|
|
81
|
+
* - `dependencies` — what does `target` depend on (or what depends on it)?
|
|
82
|
+
* - `impact` — which nodes are affected if `target` changes?
|
|
83
|
+
* - `constraints` — which rules / risk areas apply to `target`?
|
|
84
|
+
* - `trajectory` — is `target` deprecated, in-progress, or planned?
|
|
85
|
+
* - `risk` — aggregated risk score and reasons for `target`
|
|
86
|
+
*/
|
|
87
|
+
type: 'dependencies' | 'impact' | 'constraints' | 'trajectory' | 'risk' | 'related';
|
|
88
|
+
/** Node id or label to query against. */
|
|
89
|
+
target: string;
|
|
90
|
+
/** How many hops to traverse from `target` (defaults to 1 when omitted). */
|
|
91
|
+
depth?: number;
|
|
92
|
+
}
|
|
93
|
+
/** Result returned by a perception query. */
|
|
94
|
+
export interface PerceptionQueryResult {
|
|
95
|
+
/** The original query that produced this result. */
|
|
96
|
+
query: PerceptionQuery;
|
|
97
|
+
/** Nodes included in the answer subgraph. */
|
|
98
|
+
nodes: ArchitectureNode[];
|
|
99
|
+
/** Edges included in the answer subgraph. */
|
|
100
|
+
edges: ArchitectureEdge[];
|
|
101
|
+
/** Human-readable explanation of the result, suitable for agent context. */
|
|
102
|
+
summary: string;
|
|
103
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
// Architecture graph nodes
|
|
4
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/perception/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LLMProvider, ProviderConfig, ToolDefinition, HistoryMessage, LLMResponse, StreamChunk } from './types.js';
|
|
2
|
+
export declare class AnthropicProvider implements LLMProvider {
|
|
3
|
+
name: string;
|
|
4
|
+
supportsTools: boolean;
|
|
5
|
+
model: string;
|
|
6
|
+
private client;
|
|
7
|
+
private maxTokens;
|
|
8
|
+
constructor(config: ProviderConfig);
|
|
9
|
+
complete(system: string, history: HistoryMessage[], tools: ToolDefinition[]): Promise<LLMResponse>;
|
|
10
|
+
stream(system: string, history: HistoryMessage[], tools: ToolDefinition[]): AsyncGenerator<StreamChunk>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AnthropicProvider = void 0;
|
|
7
|
+
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
8
|
+
const env_js_1 = require("../util/env.js");
|
|
9
|
+
class AnthropicProvider {
|
|
10
|
+
name = 'Anthropic';
|
|
11
|
+
supportsTools = true;
|
|
12
|
+
model;
|
|
13
|
+
client;
|
|
14
|
+
maxTokens;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
this.model = config.model;
|
|
17
|
+
this.maxTokens = config.maxTokens ?? 8096;
|
|
18
|
+
this.client = new sdk_1.default({
|
|
19
|
+
apiKey: config.apiKey ?? (0, env_js_1.getApiKey)('ANTHROPIC_API_KEY'),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async complete(system, history, tools) {
|
|
23
|
+
const messages = toAnthropicMessages(history);
|
|
24
|
+
const response = await this.client.messages.create({
|
|
25
|
+
model: this.model,
|
|
26
|
+
max_tokens: this.maxTokens,
|
|
27
|
+
system,
|
|
28
|
+
tools: tools.map(toAnthropicTool),
|
|
29
|
+
messages,
|
|
30
|
+
});
|
|
31
|
+
return fromAnthropicResponse(response);
|
|
32
|
+
}
|
|
33
|
+
async *stream(system, history, tools) {
|
|
34
|
+
const messages = toAnthropicMessages(history);
|
|
35
|
+
const stream = this.client.messages.stream({
|
|
36
|
+
model: this.model,
|
|
37
|
+
max_tokens: this.maxTokens,
|
|
38
|
+
system,
|
|
39
|
+
tools: tools.map(toAnthropicTool),
|
|
40
|
+
messages,
|
|
41
|
+
});
|
|
42
|
+
const pending = [];
|
|
43
|
+
const completed = [];
|
|
44
|
+
let currentToolId = null;
|
|
45
|
+
let textBuffer = '';
|
|
46
|
+
let stopReason = 'done';
|
|
47
|
+
let inputTokens = 0;
|
|
48
|
+
let outputTokens = 0;
|
|
49
|
+
for await (const event of stream) {
|
|
50
|
+
if (event.type === 'content_block_start') {
|
|
51
|
+
if (event.content_block.type === 'tool_use') {
|
|
52
|
+
const { id, name } = event.content_block;
|
|
53
|
+
currentToolId = id;
|
|
54
|
+
pending.push({ id, name, inputBuffer: '', input: {}, parsed: false });
|
|
55
|
+
yield { type: 'tool_start', id, name };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (event.type === 'content_block_delta') {
|
|
59
|
+
const delta = event.delta;
|
|
60
|
+
if (delta.type === 'text_delta') {
|
|
61
|
+
textBuffer += delta.text;
|
|
62
|
+
yield { type: 'text', text: delta.text };
|
|
63
|
+
}
|
|
64
|
+
else if (delta.type === 'input_json_delta' && currentToolId) {
|
|
65
|
+
const tool = pending.find(t => t.id === currentToolId);
|
|
66
|
+
if (tool)
|
|
67
|
+
tool.inputBuffer += delta.partial_json;
|
|
68
|
+
yield { type: 'tool_input', id: currentToolId, partial: delta.partial_json };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (event.type === 'content_block_stop') {
|
|
72
|
+
if (currentToolId) {
|
|
73
|
+
const tool = pending.find(t => t.id === currentToolId);
|
|
74
|
+
if (tool && !tool.parsed) {
|
|
75
|
+
try {
|
|
76
|
+
tool.input = JSON.parse(tool.inputBuffer);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
tool.input = { _raw: tool.inputBuffer };
|
|
80
|
+
}
|
|
81
|
+
tool.parsed = true;
|
|
82
|
+
const call = { id: tool.id, name: tool.name, input: tool.input };
|
|
83
|
+
completed.push(call);
|
|
84
|
+
yield { type: 'tool_end', call };
|
|
85
|
+
}
|
|
86
|
+
currentToolId = null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (event.type === 'message_delta') {
|
|
90
|
+
if (event.delta.stop_reason === 'max_tokens')
|
|
91
|
+
stopReason = 'limit';
|
|
92
|
+
else if (event.delta.stop_reason === 'tool_use')
|
|
93
|
+
stopReason = 'tools';
|
|
94
|
+
if (event.usage?.output_tokens !== undefined)
|
|
95
|
+
outputTokens = event.usage.output_tokens;
|
|
96
|
+
}
|
|
97
|
+
else if (event.type === 'message_start') {
|
|
98
|
+
if (event.message?.usage?.input_tokens !== undefined)
|
|
99
|
+
inputTokens = event.message.usage.input_tokens;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
yield {
|
|
103
|
+
type: 'done',
|
|
104
|
+
response: {
|
|
105
|
+
text: textBuffer,
|
|
106
|
+
toolCalls: completed,
|
|
107
|
+
stopReason,
|
|
108
|
+
usage: { inputTokens, outputTokens },
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.AnthropicProvider = AnthropicProvider;
|
|
114
|
+
// ── Conversion helpers ──────────────────────────────────────────────────────
|
|
115
|
+
function toAnthropicTool(t) {
|
|
116
|
+
return {
|
|
117
|
+
name: t.name,
|
|
118
|
+
description: t.description,
|
|
119
|
+
input_schema: t.parameters,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function toAnthropicMessages(history) {
|
|
123
|
+
const out = [];
|
|
124
|
+
for (const msg of history) {
|
|
125
|
+
if (msg.role === 'user') {
|
|
126
|
+
out.push({ role: 'user', content: msg.content });
|
|
127
|
+
}
|
|
128
|
+
else if (msg.role === 'assistant') {
|
|
129
|
+
const content = [];
|
|
130
|
+
if (msg.content) {
|
|
131
|
+
content.push({ type: 'text', text: msg.content });
|
|
132
|
+
}
|
|
133
|
+
for (const tc of msg.toolCalls ?? []) {
|
|
134
|
+
content.push({ type: 'tool_use', id: tc.id, name: tc.name, input: tc.input });
|
|
135
|
+
}
|
|
136
|
+
out.push({ role: 'assistant', content });
|
|
137
|
+
}
|
|
138
|
+
else if (msg.role === 'tool_result') {
|
|
139
|
+
out.push({
|
|
140
|
+
role: 'user',
|
|
141
|
+
content: msg.results.map(r => ({
|
|
142
|
+
type: 'tool_result',
|
|
143
|
+
tool_use_id: r.id,
|
|
144
|
+
content: r.content,
|
|
145
|
+
is_error: r.isError,
|
|
146
|
+
})),
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
function fromAnthropicResponse(response) {
|
|
153
|
+
let text = '';
|
|
154
|
+
const toolCalls = [];
|
|
155
|
+
for (const block of response.content) {
|
|
156
|
+
if (block.type === 'text')
|
|
157
|
+
text += block.text;
|
|
158
|
+
if (block.type === 'tool_use') {
|
|
159
|
+
toolCalls.push({ id: block.id, name: block.name, input: block.input });
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const stopReason = response.stop_reason === 'tool_use' ? 'tools' :
|
|
163
|
+
response.stop_reason === 'max_tokens' ? 'limit' : 'done';
|
|
164
|
+
return {
|
|
165
|
+
text, toolCalls, stopReason,
|
|
166
|
+
usage: {
|
|
167
|
+
inputTokens: response.usage.input_tokens,
|
|
168
|
+
outputTokens: response.usage.output_tokens,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAC1C,2CAA2C;AAM3C,MAAa,iBAAiB;IAC5B,IAAI,GAAG,WAAW,CAAC;IACnB,aAAa,GAAG,IAAI,CAAC;IACrB,KAAK,CAAS;IAEN,MAAM,CAAY;IAClB,SAAS,CAAS;IAE1B,YAAY,MAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,mBAAmB,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,OAAyB,EACzB,KAAuB;QAEvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YACjC,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CACX,MAAc,EACd,OAAyB,EACzB,KAAuB;QAEvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YACjC,QAAQ;SACT,CAAC,CAAC;QASH,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,GAA+B,MAAM,CAAC;QACpD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC5C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;oBACzC,aAAa,GAAG,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;oBACzB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC3C,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,aAAa,EAAE,CAAC;oBAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;oBACvD,IAAI,IAAI;wBAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC;oBACjD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC/E,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;oBACvD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACzB,IAAI,CAAC;4BAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAAC,CAAC;wBAClD,MAAM,CAAC;4BAAC,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;wBAAC,CAAC;wBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,MAAM,IAAI,GAAa,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC3E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBACnC,CAAC;oBACD,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,YAAY;oBAAE,UAAU,GAAG,OAAO,CAAC;qBAC9D,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU;oBAAE,UAAU,GAAG,OAAO,CAAC;gBACtE,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS;oBAAE,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;YACzF,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,SAAS;oBAAE,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YACvG,CAAC;QACH,CAAC;QAED,MAAM;YACJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;gBACpB,UAAU;gBACV,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aACrC;SACF,CAAC;IACJ,CAAC;CACF;AA/GD,8CA+GC;AAED,+EAA+E;AAE/E,SAAS,eAAe,CAAC,CAAiB;IACxC,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,UAAwC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAyB;IACpD,MAAM,GAAG,GAA6B,EAAE,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,aAAsB;oBAC5B,WAAW,EAAE,CAAC,CAAC,EAAE;oBACjB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,OAAO;iBACpB,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B;IACxD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAgC,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GACd,QAAQ,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3D,OAAO;QACL,IAAI,EAAE,SAAS,EAAE,UAAU;QAC3B,KAAK,EAAE;YACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;YACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;SAC3C;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { LLMProvider, ProviderConfig } from './types.js';
|
|
2
|
+
import type { ProviderDef } from '../config/project-config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Register custom providers from .aura.json or any other source.
|
|
5
|
+
* These are checked before built-in routing in createProvider().
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerCustomProviders(providers: ProviderDef[]): void;
|
|
8
|
+
/** Get currently registered custom providers. */
|
|
9
|
+
export declare function getCustomProviders(): ProviderDef[];
|
|
10
|
+
/**
|
|
11
|
+
* Detect which provider class would handle a given model name.
|
|
12
|
+
* Exported so the resilience layer can pre-build the right class.
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectProviderKind(model: string): 'anthropic' | 'google' | 'openai-compatible';
|
|
15
|
+
/**
|
|
16
|
+
* Auto-detect the right provider from the model name, then instantiate it.
|
|
17
|
+
*
|
|
18
|
+
* Model naming conventions:
|
|
19
|
+
* claude-* → Anthropic
|
|
20
|
+
* gpt-*, o1-*, o3-* → OpenAI
|
|
21
|
+
* gemini-* → Google
|
|
22
|
+
* grok-* → xAI (OpenAI-compatible at api.x.ai)
|
|
23
|
+
* openrouter/* → OpenRouter (OpenAI-compatible)
|
|
24
|
+
* ollama/* → Ollama (OpenAI-compatible at localhost:11434)
|
|
25
|
+
* local/* → Local OpenAI-compatible (localhost:1234)
|
|
26
|
+
* anything else → OpenAI-compatible (uses baseUrl from config)
|
|
27
|
+
*/
|
|
28
|
+
export declare function createProvider(config: ProviderConfig): LLMProvider;
|
|
29
|
+
/**
|
|
30
|
+
* List of well-known model shortcuts for quick selection.
|
|
31
|
+
* Used by `:models` in the REPL and by `--models` on the CLI.
|
|
32
|
+
*/
|
|
33
|
+
export declare const KNOWN_MODELS: {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
provider: string;
|
|
37
|
+
speed: string;
|
|
38
|
+
}[];
|
|
39
|
+
/**
|
|
40
|
+
* Get all available models — built-in + custom providers from .aura.json.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getAllModels(): {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
provider: string;
|
|
46
|
+
speed: string;
|
|
47
|
+
}[];
|
|
48
|
+
export declare const CONTEXT_WINDOWS: Record<string, number>;
|
|
49
|
+
/**
|
|
50
|
+
* Look up the context window for a model id.
|
|
51
|
+
* Returns undefined for unknown models (caller should suppress the bar).
|
|
52
|
+
*/
|
|
53
|
+
export declare function getContextWindow(modelId: string): number | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Check if Ollama is reachable at the given base URL.
|
|
56
|
+
* Returns true if the server responds, false otherwise.
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkOllamaHealth(baseUrl?: string): Promise<boolean>;
|