@4djs/assistant 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/chat-history.d.ts.map +1 -1
- package/dist/core/create-assistant-store.d.ts +2 -0
- package/dist/core/create-assistant-store.d.ts.map +1 -1
- package/dist/core/index.d.ts +5 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +715 -28
- package/dist/core/llm-chat.d.ts +13 -0
- package/dist/core/llm-chat.d.ts.map +1 -1
- package/dist/core/llm-context-breakdown.d.ts +39 -0
- package/dist/core/llm-context-breakdown.d.ts.map +1 -0
- package/dist/core/llm-settings-storage.d.ts +3 -0
- package/dist/core/llm-settings-storage.d.ts.map +1 -1
- package/dist/core/llm-sse.d.ts +2 -0
- package/dist/core/llm-sse.d.ts.map +1 -1
- package/dist/core/llm-usage.d.ts +52 -0
- package/dist/core/llm-usage.d.ts.map +1 -0
- package/dist/core/types.d.ts +5 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +353 -353
- package/dist/labels.d.ts +27 -1
- package/dist/labels.d.ts.map +1 -1
- package/dist/react/Assistant.d.ts.map +1 -1
- package/dist/react/components/chat/ChatComposer.d.ts +10 -2
- package/dist/react/components/chat/ChatComposer.d.ts.map +1 -1
- package/dist/react/components/chat/ContextUsageStrip.d.ts +14 -0
- package/dist/react/components/chat/ContextUsageStrip.d.ts.map +1 -0
- package/dist/react/components/chat/LlmSettingsStrip.d.ts.map +1 -1
- package/dist/react/components/chat/UsageToolbarButton.d.ts +24 -0
- package/dist/react/components/chat/UsageToolbarButton.d.ts.map +1 -0
- package/dist/react/components/chat/context-usage-utils.d.ts +34 -0
- package/dist/react/components/chat/context-usage-utils.d.ts.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/types.d.ts +2 -0
- package/dist/react/types.d.ts.map +1 -1
- package/dist/styles.css +216 -5
- package/package.json +1 -1
package/dist/core/llm-chat.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ReplySuggestions } from "./interactive-tools/index.js";
|
|
2
|
+
import type { ContextUsageBreakdown } from "./llm-context-breakdown.js";
|
|
2
3
|
import type { ClientToolDefinition, LlmChatMessage, OpenAiToolCall } from "./llm-types.js";
|
|
4
|
+
import { type LlmUsageRecord } from "./llm-usage.js";
|
|
3
5
|
import type { AssistantToolDefinition, AssistantToolResult } from "./types.js";
|
|
4
6
|
export declare class LlmNotConfiguredError extends Error {
|
|
5
7
|
readonly code = "LLM_DISABLED";
|
|
@@ -21,6 +23,7 @@ export declare class ChatAbortedError extends Error {
|
|
|
21
23
|
export interface StreamHandlers {
|
|
22
24
|
turnId: string;
|
|
23
25
|
onUpdate: (content: string) => void;
|
|
26
|
+
onUsage?: (usage: LlmUsageRecord) => void;
|
|
24
27
|
}
|
|
25
28
|
export interface ToolHandlers {
|
|
26
29
|
onStart: (step: {
|
|
@@ -48,6 +51,9 @@ export interface AgentStepResult {
|
|
|
48
51
|
}>;
|
|
49
52
|
apiMessages: LlmChatMessage[];
|
|
50
53
|
lastToolResult?: AssistantToolResult;
|
|
54
|
+
usages: LlmUsageRecord[];
|
|
55
|
+
model: string | null;
|
|
56
|
+
contextBreakdown: ContextUsageBreakdown | null;
|
|
51
57
|
}
|
|
52
58
|
export declare function fetchLlmStatus(): Promise<LlmChatStatus>;
|
|
53
59
|
export declare function requestLlmCompletion(input: {
|
|
@@ -64,7 +70,13 @@ export declare function requestLlmCompletion(input: {
|
|
|
64
70
|
content: string | null;
|
|
65
71
|
toolCalls: OpenAiToolCall[];
|
|
66
72
|
model: string;
|
|
73
|
+
usage: LlmUsageRecord | null;
|
|
67
74
|
}>;
|
|
75
|
+
export declare function computeBaselineContextBreakdown(input: {
|
|
76
|
+
tools: AssistantToolDefinition[];
|
|
77
|
+
model: string;
|
|
78
|
+
modelContextWindows?: Record<string, number>;
|
|
79
|
+
}): Promise<ContextUsageBreakdown>;
|
|
68
80
|
export declare function runLlmAgent(input: {
|
|
69
81
|
userMessage: string;
|
|
70
82
|
history: LlmChatMessage[];
|
|
@@ -75,6 +87,7 @@ export declare function runLlmAgent(input: {
|
|
|
75
87
|
toolHandlers?: ToolHandlers;
|
|
76
88
|
invokeTool: (name: string, args: Record<string, unknown>) => Promise<AssistantToolResult>;
|
|
77
89
|
onPostResponseTool?: (suggestions: ReplySuggestions) => void;
|
|
90
|
+
modelContextWindows?: Record<string, number>;
|
|
78
91
|
}): Promise<AgentStepResult>;
|
|
79
92
|
/** Drop tool messages that are not preceded by a matching assistant tool_calls entry. */
|
|
80
93
|
export declare function sanitizeLlmMessages(messages: LlmChatMessage[]): LlmChatMessage[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-chat.d.ts","sourceRoot":"","sources":["../../src/core/llm-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAwBrE,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-chat.d.ts","sourceRoot":"","sources":["../../src/core/llm-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ClientToolDefinition, LlmChatMessage } from "./llm-types.js";
|
|
2
|
+
import type { LlmUsageRecord } from "./llm-usage.js";
|
|
3
|
+
export type ContextUsageCategory = "systemPrompt" | "toolDefinitions" | "conversation" | "completion" | "cached" | "reasoning";
|
|
4
|
+
export interface ContextCategorySegment {
|
|
5
|
+
id: ContextUsageCategory;
|
|
6
|
+
tokens: number;
|
|
7
|
+
/** True when scaled from character estimates rather than provider-reported splits */
|
|
8
|
+
estimated?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ContextUsageBreakdown {
|
|
11
|
+
segments: ContextCategorySegment[];
|
|
12
|
+
promptTokens: number;
|
|
13
|
+
completionTokens: number;
|
|
14
|
+
totalTokens: number;
|
|
15
|
+
contextWindow: number | null;
|
|
16
|
+
contextUsedPercent: number | null;
|
|
17
|
+
}
|
|
18
|
+
/** Rough token estimate (~4 chars/token) — suitable for UI proportions, not billing. */
|
|
19
|
+
export declare function estimateTokenCount(text: string): number;
|
|
20
|
+
export declare function estimatePromptParts(input: {
|
|
21
|
+
systemPrompt: string;
|
|
22
|
+
tools: ClientToolDefinition[];
|
|
23
|
+
messages: LlmChatMessage[];
|
|
24
|
+
}): {
|
|
25
|
+
systemPrompt: number;
|
|
26
|
+
toolDefinitions: number;
|
|
27
|
+
conversation: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function buildContextBreakdown(input: {
|
|
30
|
+
systemPrompt: string;
|
|
31
|
+
tools: ClientToolDefinition[];
|
|
32
|
+
messages: LlmChatMessage[];
|
|
33
|
+
usage: LlmUsageRecord | null;
|
|
34
|
+
model: string;
|
|
35
|
+
modelContextWindows?: Record<string, number>;
|
|
36
|
+
}): ContextUsageBreakdown;
|
|
37
|
+
export declare function mergeBreakdownSegments(target: ContextUsageBreakdown, source: ContextUsageBreakdown): ContextUsageBreakdown;
|
|
38
|
+
export declare function formatApproxTokens(value: number): string;
|
|
39
|
+
//# sourceMappingURL=llm-context-breakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-context-breakdown.d.ts","sourceRoot":"","sources":["../../src/core/llm-context-breakdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,oBAAoB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAuCD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAMA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C,GAAG,qBAAqB,CAuExB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,qBAAqB,CAgCvB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD"}
|
|
@@ -41,6 +41,9 @@ export declare function createLlmSettingsStorage(storageKey: string): {
|
|
|
41
41
|
clear(): void;
|
|
42
42
|
hasStored(): boolean;
|
|
43
43
|
};
|
|
44
|
+
export declare function maskApiKey(apiKey: string, visibleHead?: number, visibleTail?: number): string;
|
|
45
|
+
export declare function isUnchangedApiKeyInput(input: string, existingApiKey: string | null): boolean;
|
|
46
|
+
export declare function apiKeyFormDisplayValue(apiKey: string | null): string;
|
|
44
47
|
export declare function toStoredSettings(values: LlmSettingsFormValues, existingApiKey: string | null): StoredLlmUserSettings;
|
|
45
48
|
export declare function createLlmSettingsFormState(settings: AssistantLlmSettings, hasStoredApiKey: boolean, defaultSystemPrompt?: string): LlmSettingsFormState;
|
|
46
49
|
export declare function createLlmSettingsFormStateFromStored(stored: StoredLlmUserSettings, defaultSystemPrompt?: string): LlmSettingsFormState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-settings-storage.d.ts","sourceRoot":"","sources":["../../src/core/llm-settings-storage.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,oBAAoB,GAC7B,qBAAqB,CAQvB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,qBAAqB,GAC5B,oBAAoB,CAiBtB;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,oBAAoB,GACzB,qBAAqB,GAAG,IAAI,CAgC9B;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,oBAAoB,GACzB,MAAM,CAKR;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,oBAAoB,GACzB,qBAAqB,CAQvB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAST;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,qBAAqB,GAAG,IAAI,GACnC,oBAAoB,CAQtB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAQT;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EAAE,GACxB,MAAM,CAKR;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,IAAI,CAgBN;AAOD,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,IAAI,EAAE,oBAAoB,GACzB,IAAI,CAgBN;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAStD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAErE;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM;eAE5C,oBAAoB,GAAG,qBAAqB,GAAG,IAAI;mBAU/C,qBAAqB;;iBAQvB,OAAO;EAIvB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"llm-settings-storage.d.ts","sourceRoot":"","sources":["../../src/core/llm-settings-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/core/llm-sse.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { OpenAiToolCall } from "./llm-types.js";
|
|
2
|
+
import { type LlmUsageRecord } from "./llm-usage.js";
|
|
2
3
|
export interface ParsedStreamChunk {
|
|
3
4
|
contentDelta: string;
|
|
4
5
|
content: string;
|
|
5
6
|
toolCalls: OpenAiToolCall[];
|
|
6
7
|
model: string | null;
|
|
8
|
+
usage: LlmUsageRecord | null;
|
|
7
9
|
done: boolean;
|
|
8
10
|
}
|
|
9
11
|
export declare function createStreamParser(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-sse.d.ts","sourceRoot":"","sources":["../../src/core/llm-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-sse.d.ts","sourceRoot":"","sources":["../../src/core/llm-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAQjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,kBAAkB;uBAkBN,MAAM,KAAG,iBAAiB,GAAG,IAAI;EA4E5D;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,EAC3C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAwD5B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ContextUsageBreakdown } from "./llm-context-breakdown.js";
|
|
2
|
+
/** Token usage from a single LLM completion response. */
|
|
3
|
+
export interface LlmUsageRecord {
|
|
4
|
+
promptTokens: number;
|
|
5
|
+
completionTokens: number;
|
|
6
|
+
totalTokens: number;
|
|
7
|
+
cachedTokens?: number;
|
|
8
|
+
reasoningTokens?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Aggregated usage for one user turn (may include multiple LLM requests). */
|
|
11
|
+
export interface LlmTurnUsage extends LlmUsageRecord {
|
|
12
|
+
model: string;
|
|
13
|
+
durationMs: number;
|
|
14
|
+
tokensPerSecond: number | null;
|
|
15
|
+
contextWindow: number | null;
|
|
16
|
+
contextUsedPercent: number | null;
|
|
17
|
+
requestCount: number;
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
/** Prompt split by category (system, tools, conversation, completion, …) */
|
|
20
|
+
contextBreakdown?: ContextUsageBreakdown;
|
|
21
|
+
}
|
|
22
|
+
export interface LlmSessionUsage {
|
|
23
|
+
session: {
|
|
24
|
+
promptTokens: number;
|
|
25
|
+
completionTokens: number;
|
|
26
|
+
totalTokens: number;
|
|
27
|
+
requestCount: number;
|
|
28
|
+
};
|
|
29
|
+
currentTurn: LlmTurnUsage | null;
|
|
30
|
+
/** Estimated context for system prompt + tools before any conversation */
|
|
31
|
+
baselineBreakdown: ContextUsageBreakdown | null;
|
|
32
|
+
}
|
|
33
|
+
export declare function parseUsage(raw: unknown): LlmUsageRecord | null;
|
|
34
|
+
export declare function aggregateUsage(usages: LlmUsageRecord[]): LlmUsageRecord;
|
|
35
|
+
export declare function resolveContextWindow(model: string, overrides?: Record<string, number>): number | null;
|
|
36
|
+
export declare function computeTokensPerSecond(completionTokens: number, durationMs: number): number | null;
|
|
37
|
+
export declare function buildTurnUsage(input: {
|
|
38
|
+
usages: LlmUsageRecord[];
|
|
39
|
+
model: string;
|
|
40
|
+
durationMs: number;
|
|
41
|
+
modelContextWindows?: Record<string, number>;
|
|
42
|
+
streaming?: boolean;
|
|
43
|
+
}): LlmTurnUsage;
|
|
44
|
+
export declare function appendSessionUsage(previous: LlmSessionUsage | null, turn: LlmTurnUsage): LlmSessionUsage;
|
|
45
|
+
export declare function createEmptySessionUsage(): LlmSessionUsage;
|
|
46
|
+
export declare function isStoredLlmTurnUsage(value: unknown): value is LlmTurnUsage;
|
|
47
|
+
export declare function rebuildSessionUsageFromMessages(messages: Array<{
|
|
48
|
+
role: string;
|
|
49
|
+
llmUsage?: LlmTurnUsage;
|
|
50
|
+
}>): LlmSessionUsage | null;
|
|
51
|
+
export declare function formatTokenCount(value: number): string;
|
|
52
|
+
//# sourceMappingURL=llm-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-usage.d.ts","sourceRoot":"","sources":["../../src/core/llm-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,0EAA0E;IAC1E,iBAAiB,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACjD;AA2RD,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CA6B9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,CAkBvE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,GAAG,IAAI,CAoBf;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,YAAY,CAwBf;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,IAAI,EAAE,YAAY,GACjB,eAAe,CAkBjB;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAWzD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAgB1E;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,GACzD,eAAe,GAAG,IAAI,CAUxB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtD"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ChatActivityStep } from "./chat-activity.js";
|
|
2
2
|
import type { ReplySuggestions } from "./interactive-tools/index.js";
|
|
3
|
+
import type { LlmTurnUsage } from "./llm-usage.js";
|
|
3
4
|
import type { AssistantToolRegistry } from "./tool-registry.js";
|
|
4
5
|
export type JsonSchema = Record<string, unknown>;
|
|
5
6
|
export interface AssistantToolDefinition {
|
|
@@ -29,6 +30,8 @@ export interface AssistantMessage {
|
|
|
29
30
|
isError?: boolean;
|
|
30
31
|
llmSetupRequired?: boolean;
|
|
31
32
|
streaming?: boolean;
|
|
33
|
+
/** LLM usage metrics for this assistant turn */
|
|
34
|
+
llmUsage?: LlmTurnUsage;
|
|
32
35
|
timestamp: number;
|
|
33
36
|
}
|
|
34
37
|
export interface AssistantSuggestedPrompt {
|
|
@@ -73,5 +76,7 @@ export interface AssistantStoreDependencies {
|
|
|
73
76
|
message: string;
|
|
74
77
|
tools: AssistantToolDefinition[];
|
|
75
78
|
}) => Promise<AssistantMessage | null>;
|
|
79
|
+
/** Optional model id → context window (tokens). Merged with built-in defaults. */
|
|
80
|
+
modelContextWindows?: Record<string, number>;
|
|
76
81
|
}
|
|
77
82
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|