@jussmor/sdk-ai 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/conversation-kIkMQdYK.d.cts +105 -0
  2. package/dist/conversation-kIkMQdYK.d.ts +105 -0
  3. package/dist/conversation-store-CAyPuBjk.d.ts +10 -0
  4. package/dist/conversation-store-Cl42jpsA.d.cts +10 -0
  5. package/dist/index.cjs +1630 -0
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/index.d.cts +251 -0
  8. package/dist/index.d.ts +251 -0
  9. package/dist/index.js +1536 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/memory-uBLqrQRY.d.cts +28 -0
  12. package/dist/memory-uBLqrQRY.d.ts +28 -0
  13. package/dist/providers/llm/anthropic.cjs +275 -0
  14. package/dist/providers/llm/anthropic.cjs.map +1 -0
  15. package/dist/providers/llm/anthropic.d.cts +22 -0
  16. package/dist/providers/llm/anthropic.d.ts +22 -0
  17. package/dist/providers/llm/anthropic.js +240 -0
  18. package/dist/providers/llm/anthropic.js.map +1 -0
  19. package/dist/providers/llm/ollama.cjs +195 -0
  20. package/dist/providers/llm/ollama.cjs.map +1 -0
  21. package/dist/providers/llm/ollama.d.cts +23 -0
  22. package/dist/providers/llm/ollama.d.ts +23 -0
  23. package/dist/providers/llm/ollama.js +170 -0
  24. package/dist/providers/llm/ollama.js.map +1 -0
  25. package/dist/providers/llm/openai.cjs +213 -0
  26. package/dist/providers/llm/openai.cjs.map +1 -0
  27. package/dist/providers/llm/openai.d.cts +22 -0
  28. package/dist/providers/llm/openai.d.ts +22 -0
  29. package/dist/providers/llm/openai.js +178 -0
  30. package/dist/providers/llm/openai.js.map +1 -0
  31. package/dist/providers/memory/filesystem.cjs +112 -0
  32. package/dist/providers/memory/filesystem.cjs.map +1 -0
  33. package/dist/providers/memory/filesystem.d.cts +17 -0
  34. package/dist/providers/memory/filesystem.d.ts +17 -0
  35. package/dist/providers/memory/filesystem.js +87 -0
  36. package/dist/providers/memory/filesystem.js.map +1 -0
  37. package/dist/providers/store/filesystem.cjs +87 -0
  38. package/dist/providers/store/filesystem.cjs.map +1 -0
  39. package/dist/providers/store/filesystem.d.cts +14 -0
  40. package/dist/providers/store/filesystem.d.ts +14 -0
  41. package/dist/providers/store/filesystem.js +62 -0
  42. package/dist/providers/store/filesystem.js.map +1 -0
  43. package/dist/providers/thread/memory.cjs +81 -0
  44. package/dist/providers/thread/memory.cjs.map +1 -0
  45. package/dist/providers/thread/memory.d.cts +14 -0
  46. package/dist/providers/thread/memory.d.ts +14 -0
  47. package/dist/providers/thread/memory.js +56 -0
  48. package/dist/providers/thread/memory.js.map +1 -0
  49. package/dist/providers/thread/sqlite.cjs +917 -0
  50. package/dist/providers/thread/sqlite.cjs.map +1 -0
  51. package/dist/providers/thread/sqlite.d.cts +17 -0
  52. package/dist/providers/thread/sqlite.d.ts +17 -0
  53. package/dist/providers/thread/sqlite.js +911 -0
  54. package/dist/providers/thread/sqlite.js.map +1 -0
  55. package/dist/providers/tokenizers/auto.cjs +136 -0
  56. package/dist/providers/tokenizers/auto.cjs.map +1 -0
  57. package/dist/providers/tokenizers/auto.d.cts +24 -0
  58. package/dist/providers/tokenizers/auto.d.ts +24 -0
  59. package/dist/providers/tokenizers/auto.js +107 -0
  60. package/dist/providers/tokenizers/auto.js.map +1 -0
  61. package/dist/streaming-B-P6Fw_k.d.cts +372 -0
  62. package/dist/streaming-BtD23BE0.d.ts +372 -0
  63. package/dist/thread-C2b9xRMJ.d.cts +30 -0
  64. package/dist/thread-C2b9xRMJ.d.ts +30 -0
  65. package/dist/tokenizer-BhG_RGUk.d.cts +13 -0
  66. package/dist/tokenizer-BhG_RGUk.d.ts +13 -0
  67. package/package.json +84 -0
  68. package/src/agent-loop.ts +311 -0
  69. package/src/agent-source.ts +12 -0
  70. package/src/artifact.ts +31 -0
  71. package/src/compaction.ts +75 -0
  72. package/src/context-budget.ts +65 -0
  73. package/src/conversation-store.ts +8 -0
  74. package/src/conversation.ts +42 -0
  75. package/src/dispatch.ts +207 -0
  76. package/src/engine.ts +53 -0
  77. package/src/execution-context.ts +31 -0
  78. package/src/index.ts +37 -0
  79. package/src/interrupt-store.ts +25 -0
  80. package/src/interrupt.ts +55 -0
  81. package/src/llm-router.ts +34 -0
  82. package/src/llm.ts +100 -0
  83. package/src/memory-selector.ts +38 -0
  84. package/src/memory.ts +34 -0
  85. package/src/mode.ts +81 -0
  86. package/src/permissions.ts +104 -0
  87. package/src/protocol.ts +1 -0
  88. package/src/providers/llm/anthropic.ts +298 -0
  89. package/src/providers/llm/ollama.ts +219 -0
  90. package/src/providers/llm/openai.ts +215 -0
  91. package/src/providers/memory/filesystem.ts +99 -0
  92. package/src/providers/store/filesystem.ts +64 -0
  93. package/src/providers/thread/memory.ts +67 -0
  94. package/src/providers/thread/sqlite.ts +147 -0
  95. package/src/providers/tokenizers/auto.ts +26 -0
  96. package/src/providers/tokenizers/byte.ts +27 -0
  97. package/src/providers/tokenizers/tiktoken.ts +91 -0
  98. package/src/reasoning.ts +7 -0
  99. package/src/rule-matcher.ts +32 -0
  100. package/src/runtime.ts +416 -0
  101. package/src/safety.ts +56 -0
  102. package/src/sandbox.ts +23 -0
  103. package/src/session-context.ts +33 -0
  104. package/src/skill-source.ts +21 -0
  105. package/src/streaming.ts +124 -0
  106. package/src/system-prompt.ts +71 -0
  107. package/src/system-reminder.ts +9 -0
  108. package/src/thread.ts +33 -0
  109. package/src/tokenizer.ts +31 -0
  110. package/src/tool.ts +175 -0
  111. package/src/tracing.ts +63 -0
@@ -0,0 +1,251 @@
1
+ import { T as ToolCallEntry, C as ChatMessage, L as LLMProvider, a as Conversation, b as ChatRequest, c as ChatResponse } from './conversation-kIkMQdYK.js';
2
+ export { D as DocumentContent, I as ImageContent, M as ModelRouter, R as Role, d as TokenUsage, e as ToolChoice, f as ToolDef, g as ToolFuncParams, h as ToolParam, i as appendAssistant, j as appendUser, k as incrementTurn, l as isCold, m as messageCount, n as newConversation } from './conversation-kIkMQdYK.js';
3
+ import { E as EnforcementResult, C as ContextBudget, I as InterruptRequest, a as Engine, P as PermissionEngine, b as InterruptGate, S as StreamEvent } from './streaming-BtD23BE0.js';
4
+ export { A as AgentLoopConfig, c as AgentLoopResult, d as AgentResult, e as Artifact, f as ArtifactContext, g as ArtifactEmitter, h as ArtifactType, B as BaseMode, i as CompactionEvent, F as FormField, j as InterruptApprover, k as InterruptKind, l as InterruptRequester, m as InterruptResponse, M as Mode, n as ModeMeta, o as ModeProvider, p as ModelSettings, q as PermissionApprover, r as PermissionBehavior, s as PermissionDecision, t as PermissionDecisionResult, u as PermissionResult, v as PermissionRule, w as PlanModeEvent, R as ReasoningStep, x as SandboxDriver, y as SandboxExecResult, z as StaticModeProvider, D as StreamEventType, G as StreamingLLMProvider, H as SystemPromptBuilder, J as SystemPromptLayer, T as Tool, K as ToolCategory, L as ToolDispatcher, N as ToolExecuteFunc, O as ToolMatch, Q as ToolPermissionFn, U as ToolPredicate, V as ToolRegistry, W as ToolReminderFn, X as ToolResult, Y as ToolValidator, Z as ToolsMode, _ as areIndependent, $ as collectStream, a0 as defaultContextBudget, a1 as emitArtifact, a2 as enforceContextBudget, a3 as fanOutStream, a4 as hasBudget, a5 as hasLLM, a6 as hasMemory, a7 as hasModes, a8 as hasPrompt, a9 as hasSandbox, aa as hasThreads, ab as hasTools, ac as isToolAllowed, ad as newEngine, ae as newEngineWithDefaults, af as runAgentLoop, ag as runAgentLoopWithEngine, ah as toToolDef, ai as toolResultsToMessages, aj as withArtifactEmitter, ak as withBudget, al as withLLM, am as withMemory, an as withModes, ao as withPrompt, ap as withSandbox, aq as withThreads, ar as withTools } from './streaming-BtD23BE0.js';
5
+ import { C as ConversationStore } from './conversation-store-CAyPuBjk.js';
6
+ import { M as MemoryRoot } from './memory-uBLqrQRY.js';
7
+ export { D as DEFAULT_MEMORY_ROOTS, a as MemoryEntry, b as MemoryProvider, c as MemorySearchResult, S as Scope } from './memory-uBLqrQRY.js';
8
+ export { E as ErrThreadAccessDenied, M as Message, a as MultiUserThreadProvider, T as Thread, b as ThreadProvider, c as ThreadStatus } from './thread-C2b9xRMJ.js';
9
+ import { T as Tokenizer } from './tokenizer-BhG_RGUk.js';
10
+ export { H as HeuristicTokenizer, t as truncateToTokens } from './tokenizer-BhG_RGUk.js';
11
+
12
+ declare const PROTOCOL_VERSION: "1";
13
+
14
+ type SafetyDecision = "allow" | "block" | "transform";
15
+ interface SafetyVerdict {
16
+ decision: SafetyDecision;
17
+ reason?: string;
18
+ newArgs?: string;
19
+ }
20
+ interface SafetyFilter {
21
+ inspect(call: ToolCallEntry, signal?: AbortSignal): SafetyVerdict;
22
+ }
23
+ declare class DefaultSafetyFilter implements SafetyFilter {
24
+ inspect(call: ToolCallEntry): SafetyVerdict;
25
+ }
26
+
27
+ interface Span {
28
+ traceId: string;
29
+ spanId: string;
30
+ parentId?: string;
31
+ name: string;
32
+ startedAt: Date;
33
+ finishedAt?: Date;
34
+ attrs?: Record<string, unknown>;
35
+ error?: string;
36
+ }
37
+ declare class Tracer {
38
+ private readonly _traceId;
39
+ private spans;
40
+ private stack;
41
+ constructor();
42
+ traceId(): string;
43
+ startSpan(name: string, attrs?: Record<string, unknown>): Span;
44
+ finishSpan(span: Span, error?: Error): void;
45
+ allSpans(): Span[];
46
+ }
47
+ interface TracedContext {
48
+ __tracer?: Tracer;
49
+ }
50
+ declare function withTracer<T extends TracedContext>(ctx: T, tracer: Tracer): T;
51
+ declare function tracerFromContext(ctx: TracedContext): Tracer | undefined;
52
+
53
+ declare function systemReminder(content: string): string;
54
+ declare function joinSystemReminders(...reminders: string[]): string;
55
+
56
+ interface CompactionResult {
57
+ enforcementResult: EnforcementResult;
58
+ summary: string;
59
+ }
60
+ interface Compactor {
61
+ summarize(messages: ChatMessage[], signal?: AbortSignal): Promise<string>;
62
+ }
63
+ declare class LLMCompactor implements Compactor {
64
+ private llm;
65
+ constructor(llm: LLMProvider);
66
+ summarize(messages: ChatMessage[], signal?: AbortSignal): Promise<string>;
67
+ }
68
+ declare class BulletCompactor implements Compactor {
69
+ summarize(messages: ChatMessage[]): Promise<string>;
70
+ }
71
+ declare function enforceWithCompaction(budget: ContextBudget, compactor: Compactor | undefined, conv: Conversation, memoryTokens: number, tok?: Tokenizer, signal?: AbortSignal): Promise<CompactionResult>;
72
+
73
+ interface SessionContext {
74
+ currentTime?: Date;
75
+ timezone?: string;
76
+ userId?: string;
77
+ username?: string;
78
+ projectId?: string;
79
+ activeArtifactId?: string;
80
+ extras?: Record<string, string>;
81
+ }
82
+ declare function formatSessionContext(sc: SessionContext): string;
83
+ interface SessionContextProvider {
84
+ get(conv: Conversation, signal?: AbortSignal): Promise<SessionContext | undefined>;
85
+ }
86
+
87
+ type TodoStatus = "pending" | "in_progress" | "completed";
88
+ interface Todo {
89
+ id: string;
90
+ content: string;
91
+ activeForm?: string;
92
+ status: TodoStatus;
93
+ }
94
+ interface ExecutionContext {
95
+ todos(): Todo[];
96
+ setTodos(todos: Todo[]): void;
97
+ markDone(id: string): void;
98
+ }
99
+ declare class InMemoryExecutionContext implements ExecutionContext {
100
+ private _todos;
101
+ todos(): Todo[];
102
+ setTodos(todos: Todo[]): void;
103
+ markDone(id: string): void;
104
+ }
105
+
106
+ interface InterruptStore {
107
+ put(req: InterruptRequest, signal?: AbortSignal): Promise<void>;
108
+ get(id: string, signal?: AbortSignal): Promise<{
109
+ req: InterruptRequest;
110
+ ok: true;
111
+ } | {
112
+ ok: false;
113
+ }>;
114
+ delete(id: string, signal?: AbortSignal): Promise<void>;
115
+ }
116
+ declare class InMemoryInterruptStore implements InterruptStore {
117
+ private store;
118
+ put(req: InterruptRequest): Promise<void>;
119
+ get(id: string): Promise<{
120
+ req: InterruptRequest;
121
+ ok: true;
122
+ } | {
123
+ ok: false;
124
+ }>;
125
+ delete(id: string): Promise<void>;
126
+ }
127
+
128
+ interface Agent {
129
+ id: string;
130
+ name: string;
131
+ description?: string;
132
+ promptContent?: string;
133
+ sourceKind?: string;
134
+ }
135
+ interface AgentSource {
136
+ sourceName(): string;
137
+ list(signal?: AbortSignal): Promise<Agent[]>;
138
+ }
139
+
140
+ interface MemoryHeader {
141
+ path: string;
142
+ title?: string;
143
+ description?: string;
144
+ type?: string;
145
+ }
146
+ interface MemorySelector {
147
+ select(query: string, headers: MemoryHeader[], limit: number, signal?: AbortSignal): Promise<MemoryHeader[]>;
148
+ }
149
+ declare class KeywordMemorySelector implements MemorySelector {
150
+ select(query: string, headers: MemoryHeader[], limit: number): Promise<MemoryHeader[]>;
151
+ }
152
+
153
+ interface RuleMatcher {
154
+ match(ruleContent: string, input: Record<string, unknown>): boolean;
155
+ }
156
+ type RuleMatcherFunc = (ruleContent: string, input: Record<string, unknown>) => boolean;
157
+ declare function ruleMatcherFromFn(fn: RuleMatcherFunc): RuleMatcher;
158
+ declare function prefixMatcher(argKey: string): RuleMatcher;
159
+ declare function exactMatcher(): RuleMatcher;
160
+
161
+ interface Skill {
162
+ id: string;
163
+ name: string;
164
+ description?: string;
165
+ promptContent?: string;
166
+ sourceKind?: string;
167
+ allowedTools?: string[];
168
+ }
169
+ interface SkillSource {
170
+ sourceName(): string;
171
+ list(signal?: AbortSignal): Promise<Skill[]>;
172
+ }
173
+ interface SkillBashExecutor {
174
+ execute(command: string, allowedTools: string[], signal?: AbortSignal): Promise<string>;
175
+ }
176
+
177
+ declare function parseModelRef(ref: string): [string, string];
178
+ declare class RoutedLLMProvider implements LLMProvider {
179
+ private routes;
180
+ private fallback?;
181
+ register(provider: string, llm: LLMProvider): this;
182
+ withFallback(llm: LLMProvider): this;
183
+ route(model: string): LLMProvider;
184
+ chat(req: ChatRequest, signal?: AbortSignal): Promise<ChatResponse>;
185
+ }
186
+
187
+ interface RuntimeResult {
188
+ response: string;
189
+ turns: number;
190
+ usage: {
191
+ promptTokens: number;
192
+ completionTokens: number;
193
+ totalTokens: number;
194
+ };
195
+ stopReason: string;
196
+ trace: Span[];
197
+ traceId: string;
198
+ memoryRead: boolean;
199
+ memoryWritten: string[];
200
+ warnings: string[];
201
+ startedAt: Date;
202
+ completedAt?: Date;
203
+ }
204
+ interface PlanController {
205
+ onStateChanged?: (ev: {
206
+ state: string;
207
+ plan?: string;
208
+ reason?: string;
209
+ }) => void;
210
+ }
211
+ declare class Runtime {
212
+ private engine;
213
+ private mode;
214
+ private model;
215
+ private safety?;
216
+ private tokenizer;
217
+ private store?;
218
+ private sessionContext?;
219
+ private compactor?;
220
+ private maxMemoryTokens;
221
+ private memoryRoots;
222
+ private thinkingBudget;
223
+ private interruptGate?;
224
+ private permissions?;
225
+ private planController?;
226
+ private _emit?;
227
+ constructor(engine: Engine);
228
+ withMode(modeId: string): this;
229
+ withModel(model: string): this;
230
+ withSafety(s: SafetyFilter): this;
231
+ withPermissions(e: PermissionEngine): this;
232
+ withTokenizer(t: Tokenizer): this;
233
+ withConversationStore(s: ConversationStore): this;
234
+ withSessionContext(p: SessionContextProvider): this;
235
+ withCompactor(c: Compactor): this;
236
+ withMaxMemoryTokens(n: number): this;
237
+ withMemoryRoots(...roots: MemoryRoot[]): this;
238
+ withThinkingBudget(tokens: number): this;
239
+ withInterruptGate(gate: InterruptGate): this;
240
+ withPlanController(pc: PlanController): this;
241
+ run(conv: Conversation, userMessage: string, signal?: AbortSignal): Promise<RuntimeResult>;
242
+ runStream(conv: Conversation, userMessage: string, signal?: AbortSignal): AsyncGenerator<StreamEvent>;
243
+ private orientation;
244
+ private warmRefresh;
245
+ private buildSessionLayer;
246
+ private preparation;
247
+ private execution;
248
+ }
249
+ declare function newRuntime(engine: Engine): Runtime;
250
+
251
+ export { type Agent, type AgentSource, BulletCompactor, ChatMessage, ChatRequest, ChatResponse, type CompactionResult, type Compactor, ContextBudget, Conversation, ConversationStore, DefaultSafetyFilter, EnforcementResult, Engine, type ExecutionContext, InMemoryExecutionContext, InMemoryInterruptStore, InterruptGate, InterruptRequest, type InterruptStore, KeywordMemorySelector, LLMCompactor, LLMProvider, type MemoryHeader, MemoryRoot, type MemorySelector, PROTOCOL_VERSION, PermissionEngine, type PlanController, RoutedLLMProvider, type RuleMatcher, type RuleMatcherFunc, Runtime, type RuntimeResult, type SafetyDecision, type SafetyFilter, type SafetyVerdict, type SessionContext, type SessionContextProvider, type Skill, type SkillBashExecutor, type SkillSource, type Span, StreamEvent, type Todo, type TodoStatus, Tokenizer, ToolCallEntry, type TracedContext, Tracer, enforceWithCompaction, exactMatcher, formatSessionContext, joinSystemReminders, newRuntime, parseModelRef, prefixMatcher, ruleMatcherFromFn, systemReminder, tracerFromContext, withTracer };