katanakit-js 6.4.3 → 6.7.1
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 +4 -3
- package/dist/adapters/express/server.d.ts +133 -1
- package/dist/adapters/express/server.d.ts.map +1 -1
- package/dist/adapters/express/server.js +199 -97
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/insforge/insforge.service.d.ts +139 -4
- package/dist/adapters/insforge/insforge.service.d.ts.map +1 -1
- package/dist/adapters/insforge/insforge.service.js +383 -213
- package/dist/adapters/insforge/insforge.service.js.map +1 -1
- package/dist/adapters/notion/notion.service.d.ts +130 -144
- package/dist/adapters/notion/notion.service.d.ts.map +1 -1
- package/dist/adapters/notion/notion.service.js +330 -341
- package/dist/adapters/notion/notion.service.js.map +1 -1
- package/dist/adapters/telegram/telegram.service.d.ts +82 -13
- package/dist/adapters/telegram/telegram.service.d.ts.map +1 -1
- package/dist/adapters/telegram/telegram.service.js +133 -55
- package/dist/adapters/telegram/telegram.service.js.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.d.ts +181 -110
- package/dist/adapters/wordpress/wordpress.service.d.ts.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.js +556 -465
- package/dist/adapters/wordpress/wordpress.service.js.map +1 -1
- package/dist/core/services/access.service.d.ts +167 -4
- package/dist/core/services/access.service.d.ts.map +1 -1
- package/dist/core/services/access.service.js +241 -31
- package/dist/core/services/access.service.js.map +1 -1
- package/dist/core/services/agent.service.d.ts +182 -27
- package/dist/core/services/agent.service.d.ts.map +1 -1
- package/dist/core/services/agent.service.js +296 -164
- package/dist/core/services/agent.service.js.map +1 -1
- package/dist/core/services/assistant.service.d.ts +96 -5
- package/dist/core/services/assistant.service.d.ts.map +1 -1
- package/dist/core/services/assistant.service.js +171 -66
- package/dist/core/services/assistant.service.js.map +1 -1
- package/dist/core/services/dates.service.d.ts +183 -11
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +256 -57
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/http.service.d.ts +172 -133
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +381 -310
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +96 -34
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +128 -41
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/query.service.d.ts +101 -0
- package/dist/core/services/query.service.d.ts.map +1 -1
- package/dist/core/services/query.service.js +131 -14
- package/dist/core/services/query.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts +286 -131
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +417 -227
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/core/services/validation.service.d.ts +48 -3
- package/dist/core/services/validation.service.d.ts.map +1 -1
- package/dist/core/services/validation.service.js +75 -23
- package/dist/core/services/validation.service.js.map +1 -1
- package/dist/infrastructure/decorators/cache.decorator.d.ts +53 -0
- package/dist/infrastructure/decorators/cache.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/cache.decorator.js +47 -0
- package/dist/infrastructure/decorators/cache.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/index.d.ts +4 -0
- package/dist/infrastructure/decorators/index.d.ts.map +1 -0
- package/dist/infrastructure/decorators/index.js +4 -0
- package/dist/infrastructure/decorators/index.js.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts +38 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.js +66 -0
- package/dist/infrastructure/decorators/logger.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts +37 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.js +54 -0
- package/dist/infrastructure/decorators/retry.decorator.js.map +1 -0
- package/dist/infrastructure/dom/dom.service.d.ts +11 -5
- package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
- package/dist/infrastructure/dom/dom.service.js +20 -6
- package/dist/infrastructure/dom/dom.service.js.map +1 -1
- package/dist/infrastructure/index.d.ts +1 -0
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +1 -0
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/prisma/schema.json +17 -13
- package/dist/styles.css +2 -0
- package/package.json +32 -38
- package/scss/_flags.scss +179 -0
- package/scss/_functions.scss +168 -0
- package/scss/_mixins.scss +658 -0
- package/scss/_reset.scss +275 -0
- package/scss/_utilities.scss +449 -0
- package/scss/_variables.scss +539 -0
- package/scss/components/_index.scss +50 -0
- package/scss/demo.scss +12 -0
- package/scss/main.scss +56 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentResult, AgentRunOptions, AiChatOptions, AiMessage, AiProviderConfig, AiResult } from "../../types/index.js";
|
|
1
|
+
import type { AgentResult, AgentRunOptions, AiChatOptions, AiMessage, AiProviderConfig, AiResult, AiTool, AiToolCall } from "../../types/index.js";
|
|
2
2
|
/** Default endpoint for Alibaba Cloud Model Studio (DashScope) compatible mode. */
|
|
3
3
|
export declare const KITT_BASE_URL = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1";
|
|
4
4
|
/** Default model for the Kitt assistant preset. */
|
|
@@ -7,11 +7,183 @@ export declare const KITT_DEFAULT_MODEL = "qwen3.8-max";
|
|
|
7
7
|
export declare const KITT_SYSTEM_PROMPT = "You are Kitt, a helpful assistant. Answer clearly and concisely.";
|
|
8
8
|
/** Reusable preset (base URL + model) for the Kitt assistant. */
|
|
9
9
|
export declare const kittPreset: Pick<AiProviderConfig, "baseUrl" | "model">;
|
|
10
|
+
/** Shape of a `/chat/completions` response. */
|
|
11
|
+
interface ChatCompletionResponse {
|
|
12
|
+
choices?: Array<{
|
|
13
|
+
message?: {
|
|
14
|
+
content?: string | null;
|
|
15
|
+
tool_calls?: AiToolCall[];
|
|
16
|
+
};
|
|
17
|
+
finish_reason?: string | null;
|
|
18
|
+
}>;
|
|
19
|
+
error?: {
|
|
20
|
+
message?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** Request options shared by chat and agent calls. */
|
|
24
|
+
interface RequestOptions {
|
|
25
|
+
temperature?: number;
|
|
26
|
+
maxTokens?: number;
|
|
27
|
+
topP?: number;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
tools?: AiTool[];
|
|
30
|
+
}
|
|
10
31
|
/**
|
|
11
|
-
*
|
|
32
|
+
* Estrategia de proveedor AI - Strategy Pattern.
|
|
33
|
+
*
|
|
34
|
+
* Define el contrato que toda implementación de proveedor de completions debe
|
|
35
|
+
* cumplir. El {@link AgentService} delega la llamada HTTP en una estrategia
|
|
36
|
+
* concreta, permitiendo intercambiar proveedores (DashScope, OpenAI,
|
|
37
|
+
* self-hosted, mock en tests) sin tocar el bucle del agente.
|
|
38
|
+
*/
|
|
39
|
+
export interface IAiProviderStrategy {
|
|
40
|
+
/**
|
|
41
|
+
* Performs a single `chat/completions` request against the provider.
|
|
42
|
+
*
|
|
43
|
+
* @param config - Provider configuration (baseUrl, model, apiKey).
|
|
44
|
+
* @param messages - Conversation messages.
|
|
45
|
+
* @param options - Sampling options, tools and abort signal.
|
|
46
|
+
* @returns The parsed provider response.
|
|
47
|
+
* @throws On non-2xx responses or transport failures.
|
|
48
|
+
*/
|
|
49
|
+
requestCompletion(config: AiProviderConfig, messages: AiMessage[], options: RequestOptions): Promise<ChatCompletionResponse>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Estrategia por defecto: proveedor compatible con OpenAI
|
|
53
|
+
* (`POST /chat/completions` con Bearer token). Cubre DashScope en modo
|
|
54
|
+
* compatible, OpenAI, Azure OpenAI y la mayoría de endpoints self-hosted.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const strategy = new OpenAiCompatibleStrategy();
|
|
59
|
+
* const response = await strategy.requestCompletion(config, messages, {});
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class OpenAiCompatibleStrategy implements IAiProviderStrategy {
|
|
63
|
+
/**
|
|
64
|
+
* Performs a raw `chat/completions` request against the provider.
|
|
65
|
+
* Throws {@link AiHttpError} on non-2xx responses.
|
|
66
|
+
*/
|
|
67
|
+
requestCompletion(config: AiProviderConfig, messages: AiMessage[], options: RequestOptions): Promise<ChatCompletionResponse>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* AgentService - Singleton facade con Strategy Pattern.
|
|
12
71
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
72
|
+
* Centraliza el registro del proveedor AI y el bucle de completions,
|
|
73
|
+
* delegando la llamada HTTP en una {@link IAiProviderStrategy}
|
|
74
|
+
* intercambiable. Por defecto usa {@link OpenAiCompatibleStrategy}.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* // Configurar el proveedor
|
|
79
|
+
* AgentService.getInstance().useInitAgent({ apiKey: process.env.DASHSCOPE_API_KEY });
|
|
80
|
+
*
|
|
81
|
+
* // Cambiar de estrategia en runtime (p. ej. un mock en tests)
|
|
82
|
+
* AgentService.getInstance().useSetStrategy(new OpenAiCompatibleStrategy());
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare class AgentService {
|
|
86
|
+
private static instance;
|
|
87
|
+
private provider;
|
|
88
|
+
private strategy;
|
|
89
|
+
/**
|
|
90
|
+
* Constructor privado - enforce singleton.
|
|
91
|
+
* @param strategy - Estrategia de proveedor a inyectar (opcional).
|
|
92
|
+
*/
|
|
93
|
+
private constructor();
|
|
94
|
+
/**
|
|
95
|
+
* Obtiene la instancia única del AgentService (Singleton).
|
|
96
|
+
*
|
|
97
|
+
* @returns La instancia única de {@link AgentService}.
|
|
98
|
+
*/
|
|
99
|
+
static getInstance(): AgentService;
|
|
100
|
+
/**
|
|
101
|
+
* Crea una instancia NO-singleton con una estrategia específica.
|
|
102
|
+
* Útil para tests o para aislar varios proveedores.
|
|
103
|
+
*
|
|
104
|
+
* @param strategy - Estrategia a inyectar.
|
|
105
|
+
* @returns Una nueva instancia de {@link AgentService}.
|
|
106
|
+
*/
|
|
107
|
+
static create(strategy?: IAiProviderStrategy): AgentService;
|
|
108
|
+
/**
|
|
109
|
+
* Intercambia la estrategia de proveedor en runtime (Strategy Pattern).
|
|
110
|
+
*
|
|
111
|
+
* @param strategy - La nueva estrategia a utilizar.
|
|
112
|
+
*/
|
|
113
|
+
useSetStrategy(strategy: IAiProviderStrategy): void;
|
|
114
|
+
/** Returns the currently active provider strategy. */
|
|
115
|
+
useGetStrategy(): IAiProviderStrategy;
|
|
116
|
+
/** Retrieves the configured provider or throws. */
|
|
117
|
+
private useGetProvider;
|
|
118
|
+
/**
|
|
119
|
+
* Registers the AI provider for the Kitt assistant.
|
|
120
|
+
*
|
|
121
|
+
* `apiKey` falls back to `process.env.DASHSCOPE_API_KEY`; `baseUrl`, `model`
|
|
122
|
+
* and `systemPrompt` fall back to the {@link kittPreset} defaults.
|
|
123
|
+
*
|
|
124
|
+
* @param config - Partial provider configuration.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* import { useInitAgent } from "katanakit-js";
|
|
129
|
+
*
|
|
130
|
+
* useInitAgent({
|
|
131
|
+
* apiKey: process.env.DASHSCOPE_API_KEY,
|
|
132
|
+
* model: "qwen3.8-max",
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
useInitAgent(config?: Partial<AiProviderConfig>): void;
|
|
137
|
+
/**
|
|
138
|
+
* Sends a single chat completion and returns the assistant text as a Safe Result.
|
|
139
|
+
*
|
|
140
|
+
* Use this for review / questioning (single-shot). For autonomous multi-step
|
|
141
|
+
* work with tools, use {@link useRunAgent}.
|
|
142
|
+
*
|
|
143
|
+
* @param messages - Conversation messages (a system prompt is prepended if absent).
|
|
144
|
+
* @param options - Optional completion options.
|
|
145
|
+
* @returns A `AiResult` with the assistant text.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```ts
|
|
149
|
+
* import { useChat } from "katanakit-js";
|
|
150
|
+
*
|
|
151
|
+
* const result = await useChat([
|
|
152
|
+
* { role: "user", content: "Summarize the benefits of solar energy in three bullet points." },
|
|
153
|
+
* ]);
|
|
154
|
+
* if (result.ok) console.log(result.data);
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
useChat(messages: AiMessage[], options?: AiChatOptions): Promise<AiResult<string>>;
|
|
158
|
+
/**
|
|
159
|
+
* Runs the tool-calling agent loop against a goal until it emits a final
|
|
160
|
+
* answer or exhausts `maxSteps`.
|
|
161
|
+
*
|
|
162
|
+
* @param goal - The natural-language objective.
|
|
163
|
+
* @param options - Tools, step budget and completion options.
|
|
164
|
+
* @returns An `AgentResult` with the final message and executed steps.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```ts
|
|
168
|
+
* import { useRunAgent } from "katanakit-js";
|
|
169
|
+
*
|
|
170
|
+
* const result = await useRunAgent("Fix the type errors reported by tsc", {
|
|
171
|
+
* tools: [
|
|
172
|
+
* {
|
|
173
|
+
* name: "runCommand",
|
|
174
|
+
* description: "Runs a shell command and returns its output",
|
|
175
|
+
* parameters: { type: "object", properties: { command: { type: "string" } } },
|
|
176
|
+
* execute: (input) => shell.run(input.command),
|
|
177
|
+
* },
|
|
178
|
+
* ],
|
|
179
|
+
* maxSteps: 12,
|
|
180
|
+
* });
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
useRunAgent(goal: string, options?: AgentRunOptions): Promise<AgentResult>;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Registers the AI provider for the Kitt assistant.
|
|
15
187
|
*
|
|
16
188
|
* @param config - Partial provider configuration.
|
|
17
189
|
*
|
|
@@ -19,30 +191,22 @@ export declare const kittPreset: Pick<AiProviderConfig, "baseUrl" | "model">;
|
|
|
19
191
|
* ```ts
|
|
20
192
|
* import { useInitAgent } from "katanakit-js";
|
|
21
193
|
*
|
|
22
|
-
* useInitAgent({
|
|
23
|
-
* apiKey: process.env.DASHSCOPE_API_KEY,
|
|
24
|
-
* model: "qwen3.8-max",
|
|
25
|
-
* });
|
|
194
|
+
* useInitAgent({ apiKey: process.env.DASHSCOPE_API_KEY });
|
|
26
195
|
* ```
|
|
27
196
|
*/
|
|
28
197
|
export declare function useInitAgent(config?: Partial<AiProviderConfig>): void;
|
|
29
198
|
/**
|
|
30
199
|
* Sends a single chat completion and returns the assistant text as a Safe Result.
|
|
31
200
|
*
|
|
32
|
-
* Use this for review / questioning (single-shot). For autonomous multi-step
|
|
33
|
-
* work with tools, use {@link useRunAgent}.
|
|
34
|
-
*
|
|
35
201
|
* @param messages - Conversation messages (a system prompt is prepended if absent).
|
|
36
202
|
* @param options - Optional completion options.
|
|
37
|
-
* @returns
|
|
203
|
+
* @returns An `AiResult` with the assistant text.
|
|
38
204
|
*
|
|
39
205
|
* @example
|
|
40
206
|
* ```ts
|
|
41
207
|
* import { useChat } from "katanakit-js";
|
|
42
208
|
*
|
|
43
|
-
* const result = await useChat([
|
|
44
|
-
* { role: "user", content: "Summarize the benefits of solar energy in three bullet points." },
|
|
45
|
-
* ]);
|
|
209
|
+
* const result = await useChat([{ role: "user", content: "Hello" }]);
|
|
46
210
|
* if (result.ok) console.log(result.data);
|
|
47
211
|
* ```
|
|
48
212
|
*/
|
|
@@ -53,24 +217,15 @@ export declare function useChat(messages: AiMessage[], options?: AiChatOptions):
|
|
|
53
217
|
*
|
|
54
218
|
* @param goal - The natural-language objective.
|
|
55
219
|
* @param options - Tools, step budget and completion options.
|
|
56
|
-
* @returns An
|
|
220
|
+
* @returns An `AgentResult` with the final message and executed steps.
|
|
57
221
|
*
|
|
58
222
|
* @example
|
|
59
223
|
* ```ts
|
|
60
224
|
* import { useRunAgent } from "katanakit-js";
|
|
61
225
|
*
|
|
62
|
-
* const result = await useRunAgent("Fix the type errors reported by tsc"
|
|
63
|
-
* tools: [
|
|
64
|
-
* {
|
|
65
|
-
* name: "runCommand",
|
|
66
|
-
* description: "Runs a shell command and returns its output",
|
|
67
|
-
* parameters: { type: "object", properties: { command: { type: "string" } } },
|
|
68
|
-
* execute: (input) => shell.run(input.command),
|
|
69
|
-
* },
|
|
70
|
-
* ],
|
|
71
|
-
* maxSteps: 12,
|
|
72
|
-
* });
|
|
226
|
+
* const result = await useRunAgent("Fix the type errors reported by tsc");
|
|
73
227
|
* ```
|
|
74
228
|
*/
|
|
75
229
|
export declare function useRunAgent(goal: string, options?: AgentRunOptions): Promise<AgentResult>;
|
|
230
|
+
export {};
|
|
76
231
|
//# sourceMappingURL=agent.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/agent.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EAEf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,QAAQ,
|
|
1
|
+
{"version":3,"file":"agent.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/agent.service.ts"],"names":[],"mappings":"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"}
|