orkajs 1.4.0 → 1.4.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/dist/adapters/index.cjs +48 -0
- package/dist/adapters/index.cjs.map +1 -0
- package/dist/adapters/index.d.cts +9 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.js +11 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/agent/hitl.cjs +3 -3
- package/dist/agent/hitl.js +1 -1
- package/dist/agent/index.cjs +3 -3
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-BW7QJF67.cjs → chunk-63TEGFF5.cjs} +2 -2
- package/dist/chunk-63TEGFF5.cjs.map +1 -0
- package/dist/chunk-6O3SGRJD.js +3 -0
- package/dist/chunk-6O3SGRJD.js.map +1 -0
- package/dist/{chunk-YHRCEYN3.js → chunk-KU4GDIRA.js} +2 -2
- package/dist/chunk-KU4GDIRA.js.map +1 -0
- package/dist/{chunk-QDXZUIBC.cjs → chunk-MKE26MIX.cjs} +5 -5
- package/dist/{chunk-QDXZUIBC.cjs.map → chunk-MKE26MIX.cjs.map} +1 -1
- package/dist/chunk-RZWLJNUN.cjs +4 -0
- package/dist/chunk-RZWLJNUN.cjs.map +1 -0
- package/dist/{chunk-5DZJHA4Q.cjs → chunk-VO5LID5M.cjs} +3 -3
- package/dist/{chunk-5DZJHA4Q.cjs.map → chunk-VO5LID5M.cjs.map} +1 -1
- package/dist/{chunk-3XELDGJA.js → chunk-YS3FWRRV.js} +3 -3
- package/dist/{chunk-3XELDGJA.js.map → chunk-YS3FWRRV.js.map} +1 -1
- package/dist/{chunk-CNXNVDEM.js → chunk-ZH26JQ5G.js} +4 -4
- package/dist/{chunk-CNXNVDEM.js.map → chunk-ZH26JQ5G.js.map} +1 -1
- package/dist/core/index.cjs +42 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +18 -0
- package/dist/core/index.d.ts +18 -0
- package/dist/core/index.js +17 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/orka.cjs +6 -6
- package/dist/core/orka.js +4 -4
- package/dist/evaluation/test-runner.cjs +3 -3
- package/dist/evaluation/test-runner.js +2 -2
- package/dist/index.cjs +44 -43
- package/dist/index.js +9 -8
- package/package.json +1 -1
- package/dist/chunk-BW7QJF67.cjs.map +0 -1
- package/dist/chunk-YHRCEYN3.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('../chunk-RZWLJNUN.cjs');
|
|
4
|
+
var chunk3A7BCCAI_cjs = require('../chunk-3A7BCCAI.cjs');
|
|
5
|
+
var chunkRDA76ELY_cjs = require('../chunk-RDA76ELY.cjs');
|
|
6
|
+
var chunkWS6ZI7WT_cjs = require('../chunk-WS6ZI7WT.cjs');
|
|
7
|
+
var chunkH6XXZYT7_cjs = require('../chunk-H6XXZYT7.cjs');
|
|
8
|
+
var chunk7CS4NTB4_cjs = require('../chunk-7CS4NTB4.cjs');
|
|
9
|
+
var chunkNWRGL5BX_cjs = require('../chunk-NWRGL5BX.cjs');
|
|
10
|
+
var chunkJCUAZYXS_cjs = require('../chunk-JCUAZYXS.cjs');
|
|
11
|
+
var chunkKXVNH7ZX_cjs = require('../chunk-KXVNH7ZX.cjs');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Object.defineProperty(exports, "AnthropicAdapter", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunk3A7BCCAI_cjs.AnthropicAdapter; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "PineconeAdapter", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkRDA76ELY_cjs.PineconeAdapter; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "QdrantAdapter", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkWS6ZI7WT_cjs.QdrantAdapter; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "MemoryVectorAdapter", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkH6XXZYT7_cjs.MemoryVectorAdapter; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "MistralAdapter", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunk7CS4NTB4_cjs.MistralAdapter; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "OllamaAdapter", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return chunkNWRGL5BX_cjs.OllamaAdapter; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "ChromaAdapter", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return chunkJCUAZYXS_cjs.ChromaAdapter; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "OpenAIAdapter", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return chunkKXVNH7ZX_cjs.OpenAIAdapter; }
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=index.cjs.map
|
|
48
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { OpenAIAdapter, OpenAIAdapterConfig } from './openai.cjs';
|
|
2
|
+
export { AnthropicAdapter, AnthropicAdapterConfig } from './anthropic.cjs';
|
|
3
|
+
export { MistralAdapter, MistralAdapterConfig } from './mistral.cjs';
|
|
4
|
+
export { OllamaAdapter, OllamaAdapterConfig } from './ollama.cjs';
|
|
5
|
+
export { MemoryVectorAdapter } from './memory.cjs';
|
|
6
|
+
export { PineconeAdapter, PineconeAdapterConfig } from './pinecone.cjs';
|
|
7
|
+
export { QdrantAdapter, QdrantAdapterConfig } from './qdrant.cjs';
|
|
8
|
+
export { ChromaAdapter, ChromaAdapterConfig } from './chroma.cjs';
|
|
9
|
+
import '../types/index.cjs';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { OpenAIAdapter, OpenAIAdapterConfig } from './openai.js';
|
|
2
|
+
export { AnthropicAdapter, AnthropicAdapterConfig } from './anthropic.js';
|
|
3
|
+
export { MistralAdapter, MistralAdapterConfig } from './mistral.js';
|
|
4
|
+
export { OllamaAdapter, OllamaAdapterConfig } from './ollama.js';
|
|
5
|
+
export { MemoryVectorAdapter } from './memory.js';
|
|
6
|
+
export { PineconeAdapter, PineconeAdapterConfig } from './pinecone.js';
|
|
7
|
+
export { QdrantAdapter, QdrantAdapterConfig } from './qdrant.js';
|
|
8
|
+
export { ChromaAdapter, ChromaAdapterConfig } from './chroma.js';
|
|
9
|
+
import '../types/index.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import '../chunk-6O3SGRJD.js';
|
|
2
|
+
export { AnthropicAdapter } from '../chunk-UJLSWZZJ.js';
|
|
3
|
+
export { PineconeAdapter } from '../chunk-5HKDN5OM.js';
|
|
4
|
+
export { QdrantAdapter } from '../chunk-JRNGDZZB.js';
|
|
5
|
+
export { MemoryVectorAdapter } from '../chunk-P3SJRGOA.js';
|
|
6
|
+
export { MistralAdapter } from '../chunk-Z67QS23K.js';
|
|
7
|
+
export { OllamaAdapter } from '../chunk-NXJHLGFP.js';
|
|
8
|
+
export { ChromaAdapter } from '../chunk-HK6VWJ6T.js';
|
|
9
|
+
export { OpenAIAdapter } from '../chunk-CFJ5UTGH.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/agent/hitl.cjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk63TEGFF5_cjs = require('../chunk-63TEGFF5.cjs');
|
|
4
4
|
require('../chunk-HW4O3SWN.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "HITLAgent", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunk63TEGFF5_cjs.HITLAgent; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "MemoryCheckpointStore", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunk63TEGFF5_cjs.MemoryCheckpointStore; }
|
|
15
15
|
});
|
|
16
16
|
//# sourceMappingURL=hitl.cjs.map
|
|
17
17
|
//# sourceMappingURL=hitl.cjs.map
|
package/dist/agent/hitl.js
CHANGED
package/dist/agent/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk63TEGFF5_cjs = require('../chunk-63TEGFF5.cjs');
|
|
4
4
|
var chunkYTFRKPLP_cjs = require('../chunk-YTFRKPLP.cjs');
|
|
5
5
|
var chunkY5EM3P55_cjs = require('../chunk-Y5EM3P55.cjs');
|
|
6
6
|
var chunk5PY2DAI6_cjs = require('../chunk-5PY2DAI6.cjs');
|
|
@@ -14,11 +14,11 @@ var chunkHW4O3SWN_cjs = require('../chunk-HW4O3SWN.cjs');
|
|
|
14
14
|
|
|
15
15
|
Object.defineProperty(exports, "HITLAgent", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunk63TEGFF5_cjs.HITLAgent; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "MemoryCheckpointStore", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunk63TEGFF5_cjs.MemoryCheckpointStore; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "Agent", {
|
|
24
24
|
enumerable: true,
|
package/dist/agent/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { HITLAgent, MemoryCheckpointStore } from '../chunk-
|
|
1
|
+
export { HITLAgent, MemoryCheckpointStore } from '../chunk-KU4GDIRA.js';
|
|
2
2
|
export { Agent } from '../chunk-37ZKQRCK.js';
|
|
3
3
|
export { SQLToolkit } from '../chunk-EHRXFND7.js';
|
|
4
4
|
export { CSVToolkit } from '../chunk-XENO7X2J.js';
|
|
@@ -331,5 +331,5 @@ Question: ${input}
|
|
|
331
331
|
|
|
332
332
|
exports.HITLAgent = HITLAgent;
|
|
333
333
|
exports.MemoryCheckpointStore = MemoryCheckpointStore;
|
|
334
|
-
//# sourceMappingURL=chunk-
|
|
335
|
-
//# sourceMappingURL=chunk-
|
|
334
|
+
//# sourceMappingURL=chunk-63TEGFF5.cjs.map
|
|
335
|
+
//# sourceMappingURL=chunk-63TEGFF5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent/hitl/memory-checkpoint-store.ts","../src/agent/hitl/hitl-agent.ts"],"names":["BaseAgent","crypto"],"mappings":"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","file":"chunk-63TEGFF5.cjs","sourcesContent":["import type { Checkpoint, CheckpointStore } from './types.js';\n\nexport class MemoryCheckpointStore implements CheckpointStore {\n private checkpoints: Map<string, Checkpoint> = new Map();\n private agentCheckpoints: Map<string, string[]> = new Map();\n\n async save(checkpoint: Checkpoint): Promise<void> {\n this.checkpoints.set(checkpoint.id, checkpoint);\n\n const agentList = this.agentCheckpoints.get(checkpoint.agentId) ?? [];\n if (!agentList.includes(checkpoint.id)) {\n agentList.push(checkpoint.id);\n this.agentCheckpoints.set(checkpoint.agentId, agentList);\n }\n }\n\n async load(checkpointId: string): Promise<Checkpoint | null> {\n return this.checkpoints.get(checkpointId) ?? null;\n }\n\n async loadLatest(agentId: string): Promise<Checkpoint | null> {\n const agentList = this.agentCheckpoints.get(agentId);\n if (!agentList || agentList.length === 0) return null;\n\n const latestId = agentList[agentList.length - 1];\n return this.checkpoints.get(latestId) ?? null;\n }\n\n async list(agentId: string): Promise<Checkpoint[]> {\n const agentList = this.agentCheckpoints.get(agentId) ?? [];\n return agentList\n .map(id => this.checkpoints.get(id))\n .filter((cp): cp is Checkpoint => cp !== undefined);\n }\n\n async delete(checkpointId: string): Promise<void> {\n const checkpoint = this.checkpoints.get(checkpointId);\n if (checkpoint) {\n this.checkpoints.delete(checkpointId);\n const agentList = this.agentCheckpoints.get(checkpoint.agentId);\n if (agentList) {\n const idx = agentList.indexOf(checkpointId);\n if (idx !== -1) agentList.splice(idx, 1);\n }\n }\n }\n\n clear(): void {\n this.checkpoints.clear();\n this.agentCheckpoints.clear();\n }\n}\n","import crypto from 'crypto';\nimport type { LLMAdapter } from '../../types/index.js';\nimport type { Memory } from '../../memory/memory.js';\nimport type { AgentStepResult } from '../types.js';\nimport { BaseAgent } from '../base-agent.js';\nimport type {\n HITLAgentConfig,\n HITLAgentResult,\n HITLConfig,\n InterruptRequest,\n InterruptResponse,\n InterruptData,\n InterruptReason,\n Checkpoint,\n CheckpointState,\n CheckpointStep,\n} from './types.js';\nimport { MemoryCheckpointStore } from './memory-checkpoint-store.js';\n\nexport class HITLAgent extends BaseAgent {\n private verbose: boolean;\n private hitlConfig: HITLConfig;\n private agentId: string;\n private interrupts: InterruptResponse[] = [];\n private checkpointIds: string[] = [];\n\n constructor(config: HITLAgentConfig, llm: LLMAdapter, memory?: Memory) {\n super(config, llm, memory, 'hitl');\n this.verbose = config.verbose ?? false;\n this.hitlConfig = config.hitl;\n this.agentId = config.name ?? this.generateId();\n \n if (!this.hitlConfig.checkpointStore) {\n this.hitlConfig.checkpointStore = new MemoryCheckpointStore();\n }\n }\n\n async run(input: string, resumeFromCheckpoint?: string): Promise<HITLAgentResult> {\n const startTime = Date.now();\n let steps: AgentStepResult[] = [];\n let startStep = 0;\n let resumedFromCheckpoint: string | undefined;\n\n if (resumeFromCheckpoint) {\n const checkpoint = await this.hitlConfig.checkpointStore?.load(resumeFromCheckpoint);\n if (checkpoint) {\n steps = checkpoint.state.steps.map(s => ({\n ...s,\n latencyMs: 0,\n }));\n startStep = checkpoint.stepNumber;\n resumedFromCheckpoint = checkpoint.id;\n if (this.verbose) {\n console.log(`[HITL] Resumed from checkpoint ${checkpoint.id} at step ${startStep}`);\n }\n }\n }\n\n this.interrupts = [];\n this.checkpointIds = [];\n const memoryContext = this.getMemoryContext();\n\n this.emit({ type: 'step:start', agentType: this.agentType, input });\n\n for (let step = startStep; step < this.maxSteps; step++) {\n const stepStart = Date.now();\n const prompt = this.buildPrompt(input, steps, memoryContext);\n\n const result = await this.llm.generate(prompt, {\n temperature: this.temperature,\n maxTokens: 2048,\n systemPrompt: this.buildSystemPrompt(),\n });\n\n const parsed = this.parseResponse(result.content);\n\n if (this.verbose) {\n console.log(`[HITL Step ${step + 1}]`);\n console.log(` Thought: ${parsed.thought}`);\n console.log(` Action: ${parsed.action}`);\n console.log(` Action Input: ${JSON.stringify(parsed.actionInput)}`);\n }\n\n if (parsed.action === 'finish') {\n const finalAnswer = (parsed.actionInput.answer as string) ?? parsed.thought;\n this.saveToMemory(input, finalAnswer);\n this.emit({ type: 'complete', agentType: this.agentType, output: finalAnswer });\n\n return this.buildHITLResult(input, finalAnswer, steps, startTime, resumedFromCheckpoint);\n }\n\n const shouldCheckpoint = this.hitlConfig.checkpointEvery && \n (step + 1) % this.hitlConfig.checkpointEvery === 0;\n\n if (shouldCheckpoint) {\n await this.createCheckpoint(input, steps, step);\n }\n\n const approvalResult = await this.handleToolApproval(parsed.action, parsed.actionInput, step, parsed.thought);\n \n if (approvalResult.status === 'rejected') {\n const rejectionMessage = `Tool \"${parsed.action}\" was rejected by human reviewer. Feedback: ${approvalResult.feedback ?? 'No feedback provided'}`;\n \n steps.push({\n thought: parsed.thought,\n action: parsed.action,\n actionInput: parsed.actionInput,\n observation: rejectionMessage,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: rejectionMessage });\n continue;\n }\n\n const toolName = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolName\n ? approvalResult.modifiedData.toolName\n : parsed.action;\n \n const toolInput = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolInput\n ? approvalResult.modifiedData.toolInput\n : parsed.actionInput;\n\n const observation = await this.executeTool(toolName, toolInput);\n\n if (this.verbose) {\n console.log(` Observation: ${observation.slice(0, 200)}`);\n }\n\n steps.push({\n thought: parsed.thought,\n action: toolName,\n actionInput: toolInput,\n observation,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: observation });\n }\n\n const fallback = steps.length > 0\n ? `Reached max steps (${this.maxSteps}). Last observations:\\n${steps.slice(-3).map(s => s.observation).join('\\n')}`\n : 'Unable to process request.';\n\n this.saveToMemory(input, fallback);\n return this.buildHITLResult(input, fallback, steps, startTime, resumedFromCheckpoint, true);\n }\n\n async interrupt(\n reason: InterruptReason,\n message: string,\n data: InterruptData = {},\n ): Promise<InterruptResponse> {\n if (!this.hitlConfig.onInterrupt) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const request: InterruptRequest = {\n id: this.generateId(),\n agentId: this.agentId,\n reason,\n message,\n data,\n createdAt: new Date(),\n timeoutMs: this.hitlConfig.defaultTimeoutMs,\n };\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt requested: ${reason} - ${message}`);\n }\n\n const response = await this.hitlConfig.onInterrupt(request);\n this.interrupts.push(response);\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt response: ${response.status}`);\n }\n\n return response;\n }\n\n async requestConfirmation(message: string, context?: Record<string, unknown>): Promise<InterruptResponse> {\n return this.interrupt('confirmation', message, { context });\n }\n\n async requestReview(message: string, stepNumber: number, thought: string): Promise<InterruptResponse> {\n return this.interrupt('review', message, { stepNumber, thought });\n }\n\n private async handleToolApproval(\n toolName: string,\n toolInput: Record<string, unknown>,\n stepNumber: number,\n thought: string,\n ): Promise<InterruptResponse> {\n if (this.hitlConfig.autoApproveTools?.includes(toolName)) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const requiresApproval = this.hitlConfig.requireApprovalFor?.includes(toolName) ||\n (this.hitlConfig.requireApprovalFor?.includes('*') && !this.hitlConfig.autoApproveTools?.includes(toolName));\n\n if (!requiresApproval) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n return this.interrupt('tool_approval', `Approve tool \"${toolName}\"?`, {\n toolName,\n toolInput,\n stepNumber,\n thought,\n });\n }\n\n private async createCheckpoint(input: string, steps: AgentStepResult[], stepNumber: number): Promise<void> {\n const checkpointSteps: CheckpointStep[] = steps.map(s => ({\n thought: s.thought,\n action: s.action,\n actionInput: s.actionInput,\n observation: s.observation,\n }));\n\n const state: CheckpointState = {\n input,\n steps: checkpointSteps,\n context: {},\n };\n\n const checkpoint: Checkpoint = {\n id: this.generateId(),\n agentId: this.agentId,\n stepNumber,\n state,\n createdAt: new Date(),\n };\n\n await this.hitlConfig.checkpointStore?.save(checkpoint);\n this.checkpointIds.push(checkpoint.id);\n\n if (this.verbose) {\n console.log(`[HITL] Checkpoint created: ${checkpoint.id} at step ${stepNumber}`);\n }\n\n await this.interrupt('checkpoint', `Checkpoint created at step ${stepNumber}`, {\n stepNumber,\n context: { checkpointId: checkpoint.id },\n });\n }\n\n async getCheckpoints(): Promise<Checkpoint[]> {\n return this.hitlConfig.checkpointStore?.list(this.agentId) ?? [];\n }\n\n async loadCheckpoint(checkpointId: string): Promise<Checkpoint | null> {\n return this.hitlConfig.checkpointStore?.load(checkpointId) ?? null;\n }\n\n private buildHITLResult(\n input: string,\n output: string,\n steps: AgentStepResult[],\n startTime: number,\n resumedFromCheckpoint?: string,\n maxStepsReached = false,\n ): HITLAgentResult {\n const baseResult = this.buildResult(input, output, steps, startTime, { maxStepsReached });\n \n return {\n ...baseResult,\n interrupts: this.interrupts,\n checkpoints: this.checkpointIds,\n wasInterrupted: this.interrupts.length > 0,\n resumedFromCheckpoint,\n };\n }\n\n private buildSystemPrompt(): string {\n const toolDescriptions = this.getToolDescriptions();\n const rules = this.getRulesString();\n\n return `You are an AI agent with human-in-the-loop capabilities. Your goal: ${this.goal}\n\nYou follow a structured reasoning pattern:\n1. THINK about what you need to do\n2. ACT by using a tool (some tools may require human approval)\n3. OBSERVE the result\n4. REPEAT until you can provide a final answer\n\nAvailable tools:\n${toolDescriptions}\n\n${rules ? `Rules:\\n${rules}\\n` : ''}\nYou MUST respond in this EXACT format:\n\nThought: <your step-by-step reasoning about what to do next>\nAction: <tool_name>\nAction Input: <JSON object with tool parameters>\n\nWhen you have enough information to answer, use:\nThought: <your final reasoning>\nAction: finish\nAction Input: {\"answer\": \"<your comprehensive final answer>\"}\n\n${this.systemPrompt ?? ''}`;\n }\n\n private buildPrompt(input: string, steps: AgentStepResult[], memoryContext: string): string {\n let prompt = `${memoryContext}\\nQuestion: ${input}\\n`;\n\n if (steps.length > 0) {\n prompt += '\\n';\n for (const step of steps) {\n prompt += `Thought: ${step.thought}\\n`;\n prompt += `Action: ${step.action}\\n`;\n prompt += `Action Input: ${JSON.stringify(step.actionInput)}\\n`;\n prompt += `Observation: ${step.observation}\\n\\n`;\n }\n }\n\n return prompt;\n }\n\n private parseResponse(content: string): { thought: string; action: string; actionInput: Record<string, unknown> } {\n const thoughtMatch = content.match(/Thought:\\s*(.*?)(?=\\nAction:)/s);\n const actionMatch = content.match(/Action:\\s*(.*?)(?=\\nAction Input:)/s);\n const actionInputMatch = content.match(/Action Input:\\s*(.*)/s);\n\n const thought = thoughtMatch?.[1]?.trim() ?? content;\n const action = actionMatch?.[1]?.trim() ?? 'finish';\n\n let actionInput: Record<string, unknown> = {};\n if (actionInputMatch?.[1]) {\n actionInput = this.parseJsonFromText(actionInputMatch[1]);\n }\n\n if (action === 'finish' && !actionInput.answer) {\n actionInput.answer = thought;\n }\n\n return { thought, action, actionInput };\n }\n\n private generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = crypto.randomBytes(4).toString('hex');\n return `${timestamp}-${random}`;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-6O3SGRJD.js"}
|
|
@@ -324,5 +324,5 @@ Question: ${input}
|
|
|
324
324
|
};
|
|
325
325
|
|
|
326
326
|
export { HITLAgent, MemoryCheckpointStore };
|
|
327
|
-
//# sourceMappingURL=chunk-
|
|
328
|
-
//# sourceMappingURL=chunk-
|
|
327
|
+
//# sourceMappingURL=chunk-KU4GDIRA.js.map
|
|
328
|
+
//# sourceMappingURL=chunk-KU4GDIRA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent/hitl/memory-checkpoint-store.ts","../src/agent/hitl/hitl-agent.ts"],"names":[],"mappings":"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","file":"chunk-KU4GDIRA.js","sourcesContent":["import type { Checkpoint, CheckpointStore } from './types.js';\n\nexport class MemoryCheckpointStore implements CheckpointStore {\n private checkpoints: Map<string, Checkpoint> = new Map();\n private agentCheckpoints: Map<string, string[]> = new Map();\n\n async save(checkpoint: Checkpoint): Promise<void> {\n this.checkpoints.set(checkpoint.id, checkpoint);\n\n const agentList = this.agentCheckpoints.get(checkpoint.agentId) ?? [];\n if (!agentList.includes(checkpoint.id)) {\n agentList.push(checkpoint.id);\n this.agentCheckpoints.set(checkpoint.agentId, agentList);\n }\n }\n\n async load(checkpointId: string): Promise<Checkpoint | null> {\n return this.checkpoints.get(checkpointId) ?? null;\n }\n\n async loadLatest(agentId: string): Promise<Checkpoint | null> {\n const agentList = this.agentCheckpoints.get(agentId);\n if (!agentList || agentList.length === 0) return null;\n\n const latestId = agentList[agentList.length - 1];\n return this.checkpoints.get(latestId) ?? null;\n }\n\n async list(agentId: string): Promise<Checkpoint[]> {\n const agentList = this.agentCheckpoints.get(agentId) ?? [];\n return agentList\n .map(id => this.checkpoints.get(id))\n .filter((cp): cp is Checkpoint => cp !== undefined);\n }\n\n async delete(checkpointId: string): Promise<void> {\n const checkpoint = this.checkpoints.get(checkpointId);\n if (checkpoint) {\n this.checkpoints.delete(checkpointId);\n const agentList = this.agentCheckpoints.get(checkpoint.agentId);\n if (agentList) {\n const idx = agentList.indexOf(checkpointId);\n if (idx !== -1) agentList.splice(idx, 1);\n }\n }\n }\n\n clear(): void {\n this.checkpoints.clear();\n this.agentCheckpoints.clear();\n }\n}\n","import crypto from 'crypto';\nimport type { LLMAdapter } from '../../types/index.js';\nimport type { Memory } from '../../memory/memory.js';\nimport type { AgentStepResult } from '../types.js';\nimport { BaseAgent } from '../base-agent.js';\nimport type {\n HITLAgentConfig,\n HITLAgentResult,\n HITLConfig,\n InterruptRequest,\n InterruptResponse,\n InterruptData,\n InterruptReason,\n Checkpoint,\n CheckpointState,\n CheckpointStep,\n} from './types.js';\nimport { MemoryCheckpointStore } from './memory-checkpoint-store.js';\n\nexport class HITLAgent extends BaseAgent {\n private verbose: boolean;\n private hitlConfig: HITLConfig;\n private agentId: string;\n private interrupts: InterruptResponse[] = [];\n private checkpointIds: string[] = [];\n\n constructor(config: HITLAgentConfig, llm: LLMAdapter, memory?: Memory) {\n super(config, llm, memory, 'hitl');\n this.verbose = config.verbose ?? false;\n this.hitlConfig = config.hitl;\n this.agentId = config.name ?? this.generateId();\n \n if (!this.hitlConfig.checkpointStore) {\n this.hitlConfig.checkpointStore = new MemoryCheckpointStore();\n }\n }\n\n async run(input: string, resumeFromCheckpoint?: string): Promise<HITLAgentResult> {\n const startTime = Date.now();\n let steps: AgentStepResult[] = [];\n let startStep = 0;\n let resumedFromCheckpoint: string | undefined;\n\n if (resumeFromCheckpoint) {\n const checkpoint = await this.hitlConfig.checkpointStore?.load(resumeFromCheckpoint);\n if (checkpoint) {\n steps = checkpoint.state.steps.map(s => ({\n ...s,\n latencyMs: 0,\n }));\n startStep = checkpoint.stepNumber;\n resumedFromCheckpoint = checkpoint.id;\n if (this.verbose) {\n console.log(`[HITL] Resumed from checkpoint ${checkpoint.id} at step ${startStep}`);\n }\n }\n }\n\n this.interrupts = [];\n this.checkpointIds = [];\n const memoryContext = this.getMemoryContext();\n\n this.emit({ type: 'step:start', agentType: this.agentType, input });\n\n for (let step = startStep; step < this.maxSteps; step++) {\n const stepStart = Date.now();\n const prompt = this.buildPrompt(input, steps, memoryContext);\n\n const result = await this.llm.generate(prompt, {\n temperature: this.temperature,\n maxTokens: 2048,\n systemPrompt: this.buildSystemPrompt(),\n });\n\n const parsed = this.parseResponse(result.content);\n\n if (this.verbose) {\n console.log(`[HITL Step ${step + 1}]`);\n console.log(` Thought: ${parsed.thought}`);\n console.log(` Action: ${parsed.action}`);\n console.log(` Action Input: ${JSON.stringify(parsed.actionInput)}`);\n }\n\n if (parsed.action === 'finish') {\n const finalAnswer = (parsed.actionInput.answer as string) ?? parsed.thought;\n this.saveToMemory(input, finalAnswer);\n this.emit({ type: 'complete', agentType: this.agentType, output: finalAnswer });\n\n return this.buildHITLResult(input, finalAnswer, steps, startTime, resumedFromCheckpoint);\n }\n\n const shouldCheckpoint = this.hitlConfig.checkpointEvery && \n (step + 1) % this.hitlConfig.checkpointEvery === 0;\n\n if (shouldCheckpoint) {\n await this.createCheckpoint(input, steps, step);\n }\n\n const approvalResult = await this.handleToolApproval(parsed.action, parsed.actionInput, step, parsed.thought);\n \n if (approvalResult.status === 'rejected') {\n const rejectionMessage = `Tool \"${parsed.action}\" was rejected by human reviewer. Feedback: ${approvalResult.feedback ?? 'No feedback provided'}`;\n \n steps.push({\n thought: parsed.thought,\n action: parsed.action,\n actionInput: parsed.actionInput,\n observation: rejectionMessage,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: rejectionMessage });\n continue;\n }\n\n const toolName = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolName\n ? approvalResult.modifiedData.toolName\n : parsed.action;\n \n const toolInput = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolInput\n ? approvalResult.modifiedData.toolInput\n : parsed.actionInput;\n\n const observation = await this.executeTool(toolName, toolInput);\n\n if (this.verbose) {\n console.log(` Observation: ${observation.slice(0, 200)}`);\n }\n\n steps.push({\n thought: parsed.thought,\n action: toolName,\n actionInput: toolInput,\n observation,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: observation });\n }\n\n const fallback = steps.length > 0\n ? `Reached max steps (${this.maxSteps}). Last observations:\\n${steps.slice(-3).map(s => s.observation).join('\\n')}`\n : 'Unable to process request.';\n\n this.saveToMemory(input, fallback);\n return this.buildHITLResult(input, fallback, steps, startTime, resumedFromCheckpoint, true);\n }\n\n async interrupt(\n reason: InterruptReason,\n message: string,\n data: InterruptData = {},\n ): Promise<InterruptResponse> {\n if (!this.hitlConfig.onInterrupt) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const request: InterruptRequest = {\n id: this.generateId(),\n agentId: this.agentId,\n reason,\n message,\n data,\n createdAt: new Date(),\n timeoutMs: this.hitlConfig.defaultTimeoutMs,\n };\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt requested: ${reason} - ${message}`);\n }\n\n const response = await this.hitlConfig.onInterrupt(request);\n this.interrupts.push(response);\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt response: ${response.status}`);\n }\n\n return response;\n }\n\n async requestConfirmation(message: string, context?: Record<string, unknown>): Promise<InterruptResponse> {\n return this.interrupt('confirmation', message, { context });\n }\n\n async requestReview(message: string, stepNumber: number, thought: string): Promise<InterruptResponse> {\n return this.interrupt('review', message, { stepNumber, thought });\n }\n\n private async handleToolApproval(\n toolName: string,\n toolInput: Record<string, unknown>,\n stepNumber: number,\n thought: string,\n ): Promise<InterruptResponse> {\n if (this.hitlConfig.autoApproveTools?.includes(toolName)) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const requiresApproval = this.hitlConfig.requireApprovalFor?.includes(toolName) ||\n (this.hitlConfig.requireApprovalFor?.includes('*') && !this.hitlConfig.autoApproveTools?.includes(toolName));\n\n if (!requiresApproval) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n return this.interrupt('tool_approval', `Approve tool \"${toolName}\"?`, {\n toolName,\n toolInput,\n stepNumber,\n thought,\n });\n }\n\n private async createCheckpoint(input: string, steps: AgentStepResult[], stepNumber: number): Promise<void> {\n const checkpointSteps: CheckpointStep[] = steps.map(s => ({\n thought: s.thought,\n action: s.action,\n actionInput: s.actionInput,\n observation: s.observation,\n }));\n\n const state: CheckpointState = {\n input,\n steps: checkpointSteps,\n context: {},\n };\n\n const checkpoint: Checkpoint = {\n id: this.generateId(),\n agentId: this.agentId,\n stepNumber,\n state,\n createdAt: new Date(),\n };\n\n await this.hitlConfig.checkpointStore?.save(checkpoint);\n this.checkpointIds.push(checkpoint.id);\n\n if (this.verbose) {\n console.log(`[HITL] Checkpoint created: ${checkpoint.id} at step ${stepNumber}`);\n }\n\n await this.interrupt('checkpoint', `Checkpoint created at step ${stepNumber}`, {\n stepNumber,\n context: { checkpointId: checkpoint.id },\n });\n }\n\n async getCheckpoints(): Promise<Checkpoint[]> {\n return this.hitlConfig.checkpointStore?.list(this.agentId) ?? [];\n }\n\n async loadCheckpoint(checkpointId: string): Promise<Checkpoint | null> {\n return this.hitlConfig.checkpointStore?.load(checkpointId) ?? null;\n }\n\n private buildHITLResult(\n input: string,\n output: string,\n steps: AgentStepResult[],\n startTime: number,\n resumedFromCheckpoint?: string,\n maxStepsReached = false,\n ): HITLAgentResult {\n const baseResult = this.buildResult(input, output, steps, startTime, { maxStepsReached });\n \n return {\n ...baseResult,\n interrupts: this.interrupts,\n checkpoints: this.checkpointIds,\n wasInterrupted: this.interrupts.length > 0,\n resumedFromCheckpoint,\n };\n }\n\n private buildSystemPrompt(): string {\n const toolDescriptions = this.getToolDescriptions();\n const rules = this.getRulesString();\n\n return `You are an AI agent with human-in-the-loop capabilities. Your goal: ${this.goal}\n\nYou follow a structured reasoning pattern:\n1. THINK about what you need to do\n2. ACT by using a tool (some tools may require human approval)\n3. OBSERVE the result\n4. REPEAT until you can provide a final answer\n\nAvailable tools:\n${toolDescriptions}\n\n${rules ? `Rules:\\n${rules}\\n` : ''}\nYou MUST respond in this EXACT format:\n\nThought: <your step-by-step reasoning about what to do next>\nAction: <tool_name>\nAction Input: <JSON object with tool parameters>\n\nWhen you have enough information to answer, use:\nThought: <your final reasoning>\nAction: finish\nAction Input: {\"answer\": \"<your comprehensive final answer>\"}\n\n${this.systemPrompt ?? ''}`;\n }\n\n private buildPrompt(input: string, steps: AgentStepResult[], memoryContext: string): string {\n let prompt = `${memoryContext}\\nQuestion: ${input}\\n`;\n\n if (steps.length > 0) {\n prompt += '\\n';\n for (const step of steps) {\n prompt += `Thought: ${step.thought}\\n`;\n prompt += `Action: ${step.action}\\n`;\n prompt += `Action Input: ${JSON.stringify(step.actionInput)}\\n`;\n prompt += `Observation: ${step.observation}\\n\\n`;\n }\n }\n\n return prompt;\n }\n\n private parseResponse(content: string): { thought: string; action: string; actionInput: Record<string, unknown> } {\n const thoughtMatch = content.match(/Thought:\\s*(.*?)(?=\\nAction:)/s);\n const actionMatch = content.match(/Action:\\s*(.*?)(?=\\nAction Input:)/s);\n const actionInputMatch = content.match(/Action Input:\\s*(.*)/s);\n\n const thought = thoughtMatch?.[1]?.trim() ?? content;\n const action = actionMatch?.[1]?.trim() ?? 'finish';\n\n let actionInput: Record<string, unknown> = {};\n if (actionInputMatch?.[1]) {\n actionInput = this.parseJsonFromText(actionInputMatch[1]);\n }\n\n if (action === 'finish' && !actionInput.answer) {\n actionInput.answer = thought;\n }\n\n return { thought, action, actionInput };\n }\n\n private generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = crypto.randomBytes(4).toString('hex');\n return `${timestamp}-${random}`;\n }\n}\n"]}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var chunk2UTXL4UI_cjs = require('./chunk-2UTXL4UI.cjs');
|
|
4
4
|
var chunkQBAICRFT_cjs = require('./chunk-QBAICRFT.cjs');
|
|
5
|
-
var chunk5DZJHA4Q_cjs = require('./chunk-5DZJHA4Q.cjs');
|
|
6
|
-
var chunk4NMX7YMQ_cjs = require('./chunk-4NMX7YMQ.cjs');
|
|
7
5
|
var chunkSNXMGG75_cjs = require('./chunk-SNXMGG75.cjs');
|
|
6
|
+
var chunkVO5LID5M_cjs = require('./chunk-VO5LID5M.cjs');
|
|
7
|
+
var chunk4NMX7YMQ_cjs = require('./chunk-4NMX7YMQ.cjs');
|
|
8
8
|
var chunkJOLXQZLP_cjs = require('./chunk-JOLXQZLP.cjs');
|
|
9
9
|
var chunkG5C7KNJX_cjs = require('./chunk-G5C7KNJX.cjs');
|
|
10
10
|
var chunkXAKPLGNG_cjs = require('./chunk-XAKPLGNG.cjs');
|
|
@@ -174,7 +174,7 @@ var Orka = class {
|
|
|
174
174
|
* @returns Test suite report
|
|
175
175
|
*/
|
|
176
176
|
async test(config) {
|
|
177
|
-
const runner = new
|
|
177
|
+
const runner = new chunkVO5LID5M_cjs.TestRunner(this);
|
|
178
178
|
return runner.run(config);
|
|
179
179
|
}
|
|
180
180
|
/**
|
|
@@ -221,5 +221,5 @@ function createOrka(config) {
|
|
|
221
221
|
|
|
222
222
|
exports.Orka = Orka;
|
|
223
223
|
exports.createOrka = createOrka;
|
|
224
|
-
//# sourceMappingURL=chunk-
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
224
|
+
//# sourceMappingURL=chunk-MKE26MIX.cjs.map
|
|
225
|
+
//# sourceMappingURL=chunk-MKE26MIX.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/orka.ts"],"names":["Knowledge","Tracer","PromptRegistry","Memory","Workflow","Agent","Evaluator","SessionMemory","GraphWorkflow","TestRunner"],"mappings":"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","file":"chunk-QDXZUIBC.cjs","sourcesContent":["import type { \n OrkaConfig, \n AskOptions, \n AskResult,\n RetrievedContext,\n LLMAdapter,\n VectorDBAdapter,\n DatabaseAdapter,\n OrkaDefaults\n} from '../types/index.js';\nimport { Knowledge } from './knowledge.js';\nimport { Workflow } from '../workflow/workflow.js';\nimport type { WorkflowConfig } from '../workflow/types.js';\nimport { Evaluator } from '../evaluation/evaluator.js';\nimport type { EvaluateOptions } from '../evaluation/evaluator.js';\nimport type { EvalSummary } from '../evaluation/metrics.js';\nimport { Agent } from '../agent/agent.js';\nimport type { AgentConfig } from '../agent/types.js';\nimport { Memory, type MemoryConfig } from '../memory/memory.js';\nimport { SessionMemory } from '../memory/session-memory.js';\nimport { Tracer } from '../observability/tracer.js';\nimport type { ObservabilityHook, LogLevel } from '../observability/types.js';\nimport { GraphWorkflow } from '../graph/graph-workflow.js';\nimport type { GraphConfig } from '../graph/types.js';\nimport { PromptRegistry } from '../prompts/registry.js';\nimport type { PromptRegistryConfig } from '../prompts/types.js';\nimport { TestRunner } from '../evaluation/test-runner.js';\nimport type { TestSuiteConfig } from '../evaluation/test-runner.js';\nimport type { TestSuiteReport } from '../evaluation/reporters.js';\n\nexport interface OrkaFullConfig extends OrkaConfig {\n observability?: {\n logLevel?: LogLevel;\n hooks?: ObservabilityHook[];\n };\n memory?: MemoryConfig;\n prompts?: PromptRegistryConfig;\n}\n\nexport class Orka {\n private llm: LLMAdapter;\n private vectorDB?: VectorDBAdapter;\n private database?: DatabaseAdapter;\n private defaults: OrkaDefaults;\n \n public readonly knowledge: Knowledge;\n public readonly tracer: Tracer;\n public readonly prompts: PromptRegistry;\n private _memory?: Memory;\n private _sessionMemory?: SessionMemory;\n\n constructor(config: OrkaFullConfig) {\n this.llm = config.llm;\n this.vectorDB = config.vectorDB;\n this.database = config.database;\n this.defaults = config.defaults ?? {};\n\n if (!this.vectorDB) {\n throw new Error('VectorDB adapter is required. Use MemoryVectorAdapter for quick start.');\n }\n\n this.knowledge = new Knowledge(this.llm, this.vectorDB, this.defaults);\n this.tracer = new Tracer(config.observability);\n\n this.prompts = new PromptRegistry(config.prompts);\n\n if (config.memory) {\n this._memory = new Memory(config.memory);\n }\n }\n\n /**\n * Ask a question using the knowledge base\n * @param options - Ask options\n * @returns Ask result\n */\n async ask(options: AskOptions): Promise<AskResult> {\n const startTime = Date.now();\n const {\n knowledge,\n question,\n systemPrompt,\n topK = this.defaults.topK ?? 5,\n temperature = this.defaults.temperature ?? 0.7,\n maxTokens = this.defaults.maxTokens ?? 1024,\n includeContext = false,\n } = options;\n\n let context: RetrievedContext[] = [];\n let contextText = '';\n\n if (knowledge) {\n const results = await this.knowledge.search(knowledge, question, { topK });\n context = results.map(r => ({\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata,\n }));\n contextText = context.map(c => c.content).join('\\n\\n---\\n\\n');\n }\n\n const prompt = this.buildPrompt(question, contextText, systemPrompt);\n \n const result = await this.llm.generate(prompt, {\n temperature,\n maxTokens,\n systemPrompt: systemPrompt ?? this.getDefaultSystemPrompt(!!knowledge),\n });\n\n const latencyMs = Date.now() - startTime;\n\n const askResult: AskResult = {\n answer: result.content,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n latencyMs,\n };\n\n if (includeContext) {\n askResult.context = context;\n }\n\n return askResult;\n }\n\n /**\n * Generate a response using the LLM\n * @param prompt - The prompt to generate a response for\n * @param options - Generation options\n * @returns Generated response\n */\n async generate(prompt: string, options?: { temperature?: number; maxTokens?: number; systemPrompt?: string }): Promise<string> {\n const result = await this.llm.generate(prompt, {\n temperature: options?.temperature ?? this.defaults.temperature ?? 0.7,\n maxTokens: options?.maxTokens ?? this.defaults.maxTokens ?? 1024,\n systemPrompt: options?.systemPrompt,\n });\n return result.content;\n }\n\n /**\n * Embed text using the LLM\n * @param text - The text to embed\n * @returns Embeddings\n */\n async embed(text: string | string[]): Promise<number[][]> {\n const texts = Array.isArray(text) ? text : [text];\n return this.llm.embed(texts);\n }\n\n /**\n * Create a new workflow\n * @param config - Workflow configuration \n * @returns Workflow instance\n */\n workflow(config: WorkflowConfig): Workflow {\n return new Workflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Create a new agent\n * @param config - Agent configuration\n * @returns Agent instance\n */\n agent(config: AgentConfig): Agent {\n return new Agent(config, this.llm, this.vectorDB, this.knowledge, this._memory);\n }\n\n /**\n * Evaluate a workflow or agent\n * @param options - Evaluation options\n * @returns Evaluation summary\n */\n async evaluate(options: EvaluateOptions): Promise<EvalSummary> {\n const evaluator = new Evaluator(this, this.llm);\n return evaluator.evaluate(options);\n }\n\n /**\n * Get or create memory instance\n * @returns Memory instance\n */\n memory(): Memory {\n if (!this._memory) {\n this._memory = new Memory();\n }\n return this._memory;\n }\n\n /**\n * Get or create session memory instance\n * @returns SessionMemory instance\n */\n sessions(): SessionMemory {\n if (!this._sessionMemory) {\n this._sessionMemory = new SessionMemory();\n }\n return this._sessionMemory;\n }\n\n /**\n * Get database adapter\n * @returns Database adapter or undefined\n */\n getDatabase(): DatabaseAdapter | undefined {\n return this.database;\n }\n\n /**\n * Create a new graph workflow\n * @param config - Graph configuration\n * @returns GraphWorkflow instance\n */\n graph(config: GraphConfig): GraphWorkflow {\n return new GraphWorkflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Run a test suite\n * @param config - Test suite configuration\n * @returns Test suite report\n */\n async test(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const runner = new TestRunner(this);\n return runner.run(config);\n }\n\n /**\n * Get the LLM adapter\n * @returns LLM adapter\n */\n getLLM(): LLMAdapter {\n return this.llm;\n }\n\n /**\n * Build a prompt from question and context\n * @param question - The question to answer\n * @param context - The context to use\n * @param _systemPrompt - The system prompt to use (unused)\n * @returns The built prompt\n */\n private buildPrompt(question: string, context: string, _systemPrompt?: string): string {\n if (!context) {\n return question;\n }\n\n return `Context information:\n---\n${context}\n---\n\nBased on the context above, please answer the following question:\n${question}`;\n }\n\n /**\n * Get the default system prompt\n * @param hasContext - Whether context is available\n * @returns The default system prompt\n */\n private getDefaultSystemPrompt(hasContext: boolean): string {\n if (hasContext) {\n return `You are a helpful assistant. Answer questions based on the provided context. If the context doesn't contain enough information to answer the question, say so clearly. Do not make up information.`;\n }\n return `You are a helpful assistant.`;\n }\n}\n\n/**\n * Create a new Orka instance\n * @param config - Orka configuration\n * @returns Orka instance\n */\nexport function createOrka(config: OrkaFullConfig): Orka {\n return new Orka(config);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/orka.ts"],"names":["Knowledge","Tracer","PromptRegistry","Memory","Workflow","Agent","Evaluator","SessionMemory","GraphWorkflow","TestRunner"],"mappings":"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","file":"chunk-MKE26MIX.cjs","sourcesContent":["import type { \n OrkaConfig, \n AskOptions, \n AskResult,\n RetrievedContext,\n LLMAdapter,\n VectorDBAdapter,\n DatabaseAdapter,\n OrkaDefaults\n} from '../types/index.js';\nimport { Knowledge } from './knowledge.js';\nimport { Workflow } from '../workflow/workflow.js';\nimport type { WorkflowConfig } from '../workflow/types.js';\nimport { Evaluator } from '../evaluation/evaluator.js';\nimport type { EvaluateOptions } from '../evaluation/evaluator.js';\nimport type { EvalSummary } from '../evaluation/metrics.js';\nimport { Agent } from '../agent/agent.js';\nimport type { AgentConfig } from '../agent/types.js';\nimport { Memory, type MemoryConfig } from '../memory/memory.js';\nimport { SessionMemory } from '../memory/session-memory.js';\nimport { Tracer } from '../observability/tracer.js';\nimport type { ObservabilityHook, LogLevel } from '../observability/types.js';\nimport { GraphWorkflow } from '../graph/graph-workflow.js';\nimport type { GraphConfig } from '../graph/types.js';\nimport { PromptRegistry } from '../prompts/registry.js';\nimport type { PromptRegistryConfig } from '../prompts/types.js';\nimport { TestRunner } from '../evaluation/test-runner.js';\nimport type { TestSuiteConfig } from '../evaluation/test-runner.js';\nimport type { TestSuiteReport } from '../evaluation/reporters.js';\n\nexport interface OrkaFullConfig extends OrkaConfig {\n observability?: {\n logLevel?: LogLevel;\n hooks?: ObservabilityHook[];\n };\n memory?: MemoryConfig;\n prompts?: PromptRegistryConfig;\n}\n\nexport class Orka {\n private llm: LLMAdapter;\n private vectorDB?: VectorDBAdapter;\n private database?: DatabaseAdapter;\n private defaults: OrkaDefaults;\n \n public readonly knowledge: Knowledge;\n public readonly tracer: Tracer;\n public readonly prompts: PromptRegistry;\n private _memory?: Memory;\n private _sessionMemory?: SessionMemory;\n\n constructor(config: OrkaFullConfig) {\n this.llm = config.llm;\n this.vectorDB = config.vectorDB;\n this.database = config.database;\n this.defaults = config.defaults ?? {};\n\n if (!this.vectorDB) {\n throw new Error('VectorDB adapter is required. Use MemoryVectorAdapter for quick start.');\n }\n\n this.knowledge = new Knowledge(this.llm, this.vectorDB, this.defaults);\n this.tracer = new Tracer(config.observability);\n\n this.prompts = new PromptRegistry(config.prompts);\n\n if (config.memory) {\n this._memory = new Memory(config.memory);\n }\n }\n\n /**\n * Ask a question using the knowledge base\n * @param options - Ask options\n * @returns Ask result\n */\n async ask(options: AskOptions): Promise<AskResult> {\n const startTime = Date.now();\n const {\n knowledge,\n question,\n systemPrompt,\n topK = this.defaults.topK ?? 5,\n temperature = this.defaults.temperature ?? 0.7,\n maxTokens = this.defaults.maxTokens ?? 1024,\n includeContext = false,\n } = options;\n\n let context: RetrievedContext[] = [];\n let contextText = '';\n\n if (knowledge) {\n const results = await this.knowledge.search(knowledge, question, { topK });\n context = results.map(r => ({\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata,\n }));\n contextText = context.map(c => c.content).join('\\n\\n---\\n\\n');\n }\n\n const prompt = this.buildPrompt(question, contextText, systemPrompt);\n \n const result = await this.llm.generate(prompt, {\n temperature,\n maxTokens,\n systemPrompt: systemPrompt ?? this.getDefaultSystemPrompt(!!knowledge),\n });\n\n const latencyMs = Date.now() - startTime;\n\n const askResult: AskResult = {\n answer: result.content,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n latencyMs,\n };\n\n if (includeContext) {\n askResult.context = context;\n }\n\n return askResult;\n }\n\n /**\n * Generate a response using the LLM\n * @param prompt - The prompt to generate a response for\n * @param options - Generation options\n * @returns Generated response\n */\n async generate(prompt: string, options?: { temperature?: number; maxTokens?: number; systemPrompt?: string }): Promise<string> {\n const result = await this.llm.generate(prompt, {\n temperature: options?.temperature ?? this.defaults.temperature ?? 0.7,\n maxTokens: options?.maxTokens ?? this.defaults.maxTokens ?? 1024,\n systemPrompt: options?.systemPrompt,\n });\n return result.content;\n }\n\n /**\n * Embed text using the LLM\n * @param text - The text to embed\n * @returns Embeddings\n */\n async embed(text: string | string[]): Promise<number[][]> {\n const texts = Array.isArray(text) ? text : [text];\n return this.llm.embed(texts);\n }\n\n /**\n * Create a new workflow\n * @param config - Workflow configuration \n * @returns Workflow instance\n */\n workflow(config: WorkflowConfig): Workflow {\n return new Workflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Create a new agent\n * @param config - Agent configuration\n * @returns Agent instance\n */\n agent(config: AgentConfig): Agent {\n return new Agent(config, this.llm, this.vectorDB, this.knowledge, this._memory);\n }\n\n /**\n * Evaluate a workflow or agent\n * @param options - Evaluation options\n * @returns Evaluation summary\n */\n async evaluate(options: EvaluateOptions): Promise<EvalSummary> {\n const evaluator = new Evaluator(this, this.llm);\n return evaluator.evaluate(options);\n }\n\n /**\n * Get or create memory instance\n * @returns Memory instance\n */\n memory(): Memory {\n if (!this._memory) {\n this._memory = new Memory();\n }\n return this._memory;\n }\n\n /**\n * Get or create session memory instance\n * @returns SessionMemory instance\n */\n sessions(): SessionMemory {\n if (!this._sessionMemory) {\n this._sessionMemory = new SessionMemory();\n }\n return this._sessionMemory;\n }\n\n /**\n * Get database adapter\n * @returns Database adapter or undefined\n */\n getDatabase(): DatabaseAdapter | undefined {\n return this.database;\n }\n\n /**\n * Create a new graph workflow\n * @param config - Graph configuration\n * @returns GraphWorkflow instance\n */\n graph(config: GraphConfig): GraphWorkflow {\n return new GraphWorkflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Run a test suite\n * @param config - Test suite configuration\n * @returns Test suite report\n */\n async test(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const runner = new TestRunner(this);\n return runner.run(config);\n }\n\n /**\n * Get the LLM adapter\n * @returns LLM adapter\n */\n getLLM(): LLMAdapter {\n return this.llm;\n }\n\n /**\n * Build a prompt from question and context\n * @param question - The question to answer\n * @param context - The context to use\n * @param _systemPrompt - The system prompt to use (unused)\n * @returns The built prompt\n */\n private buildPrompt(question: string, context: string, _systemPrompt?: string): string {\n if (!context) {\n return question;\n }\n\n return `Context information:\n---\n${context}\n---\n\nBased on the context above, please answer the following question:\n${question}`;\n }\n\n /**\n * Get the default system prompt\n * @param hasContext - Whether context is available\n * @returns The default system prompt\n */\n private getDefaultSystemPrompt(hasContext: boolean): string {\n if (hasContext) {\n return `You are a helpful assistant. Answer questions based on the provided context. If the context doesn't contain enough information to answer the question, say so clearly. Do not make up information.`;\n }\n return `You are a helpful assistant.`;\n }\n}\n\n/**\n * Create a new Orka instance\n * @param config - Orka configuration\n * @returns Orka instance\n */\nexport function createOrka(config: OrkaFullConfig): Orka {\n return new Orka(config);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-RZWLJNUN.cjs"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkQ4UAHOZ4_cjs = require('./chunk-Q4UAHOZ4.cjs');
|
|
4
3
|
var chunkHDOI5I46_cjs = require('./chunk-HDOI5I46.cjs');
|
|
4
|
+
var chunkQ4UAHOZ4_cjs = require('./chunk-Q4UAHOZ4.cjs');
|
|
5
5
|
|
|
6
6
|
// src/evaluation/test-runner.ts
|
|
7
7
|
var TestRunner = class {
|
|
@@ -135,5 +135,5 @@ var TestRunner = class {
|
|
|
135
135
|
};
|
|
136
136
|
|
|
137
137
|
exports.TestRunner = TestRunner;
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
138
|
+
//# sourceMappingURL=chunk-VO5LID5M.cjs.map
|
|
139
|
+
//# sourceMappingURL=chunk-VO5LID5M.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/evaluation/test-runner.ts"],"names":["ConsoleReporter","builtinMetrics"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/evaluation/test-runner.ts"],"names":["ConsoleReporter","builtinMetrics"],"mappings":"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","file":"chunk-VO5LID5M.cjs","sourcesContent":["import type { Orka } from '../core/orka.js';\nimport type { EvalCase, MetricFn } from './metrics.js';\nimport type { Assertion, AssertionResult } from './assertions.js';\nimport type { Reporter, TestCaseReport, TestSuiteReport } from './reporters.js';\nimport { builtinMetrics } from './metrics.js';\nimport { ConsoleReporter } from './reporters.js';\n\nexport interface TestSuiteConfig {\n name: string;\n dataset: EvalCase[];\n metrics?: (string | MetricFn)[];\n assertions?: Assertion[];\n reporters?: Reporter[];\n concurrency?: number;\n bail?: boolean;\n}\n\nexport class TestRunner {\n private orka: Orka;\n\n constructor(orka: Orka) {\n this.orka = orka;\n }\n\n async run(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const startTime = Date.now();\n const {\n name,\n dataset,\n metrics = ['relevance', 'faithfulness'],\n assertions = [],\n reporters = [new ConsoleReporter()],\n concurrency = 1,\n bail = false,\n } = config;\n\n const resolvedMetrics = this.resolveMetrics(metrics);\n const cases: TestCaseReport[] = [];\n\n const batches = this.chunk(dataset, concurrency);\n\n for (const batch of batches) {\n const batchResults = await Promise.all(\n batch.map(async (evalCase) => this.runCase(evalCase, resolvedMetrics, assertions))\n );\n\n for (const result of batchResults) {\n cases.push(result);\n if (bail && !result.passed) {\n break;\n }\n }\n\n if (bail && cases.some(c => !c.passed)) {\n break;\n }\n }\n\n const report = this.buildReport(name, cases, Date.now() - startTime);\n\n for (const reporter of reporters) {\n await reporter.report(report);\n }\n\n return report;\n }\n\n private async runCase(\n evalCase: EvalCase,\n metrics: MetricFn[],\n assertions: Assertion[],\n ): Promise<TestCaseReport> {\n const askResult = await this.orka.ask({\n knowledge: evalCase.knowledge,\n question: evalCase.input,\n includeContext: true,\n });\n\n const contextTexts = askResult.context?.map(c => c.content) ?? evalCase.context ?? [];\n const llm = this.orka.getLLM();\n\n const metricResults: Record<string, number> = {};\n for (const metricFn of metrics) {\n const result = await metricFn({\n input: evalCase.input,\n output: askResult.answer,\n expectedOutput: evalCase.expectedOutput,\n context: contextTexts,\n llm,\n });\n metricResults[result.name] = result.score;\n }\n\n const assertionResults: AssertionResult[] = assertions.map(assertion =>\n assertion.check({\n input: evalCase.input,\n output: askResult.answer,\n expectedOutput: evalCase.expectedOutput,\n metrics: metricResults,\n latencyMs: askResult.latencyMs,\n totalTokens: askResult.usage.totalTokens,\n })\n );\n\n const allPassed = assertionResults.length === 0 || assertionResults.every(a => a.passed);\n\n return {\n input: evalCase.input,\n output: askResult.answer,\n passed: allPassed,\n assertions: assertionResults,\n metrics: metricResults,\n latencyMs: askResult.latencyMs,\n totalTokens: askResult.usage.totalTokens,\n };\n }\n\n private buildReport(name: string, cases: TestCaseReport[], duration: number): TestSuiteReport {\n const passed = cases.filter(c => c.passed).length;\n const failed = cases.length - passed;\n\n const metricsMap: Record<string, number[]> = {};\n for (const c of cases) {\n for (const [metricName, score] of Object.entries(c.metrics)) {\n if (!metricsMap[metricName]) metricsMap[metricName] = [];\n metricsMap[metricName].push(score);\n }\n }\n\n const metricsSummary: Record<string, { average: number; min: number; max: number }> = {};\n for (const [metricName, scores] of Object.entries(metricsMap)) {\n metricsSummary[metricName] = {\n average: scores.reduce((a, b) => a + b, 0) / scores.length,\n min: Math.min(...scores),\n max: Math.max(...scores),\n };\n }\n\n return {\n name,\n timestamp: new Date().toISOString(),\n duration,\n totalCases: cases.length,\n passed,\n failed,\n passRate: cases.length > 0 ? passed / cases.length : 0,\n cases,\n summary: {\n averageLatencyMs: cases.reduce((a, b) => a + b.latencyMs, 0) / (cases.length || 1),\n totalTokens: cases.reduce((a, b) => a + b.totalTokens, 0),\n metrics: metricsSummary,\n },\n };\n }\n\n private resolveMetrics(metrics: (string | MetricFn)[]): MetricFn[] {\n return metrics.map(m => {\n if (typeof m === 'function') return m;\n const builtin = builtinMetrics[m];\n if (!builtin) throw new Error(`Unknown metric: \"${m}\"`);\n return builtin;\n });\n }\n\n private chunk<T>(arr: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size));\n }\n return chunks;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConsoleReporter } from './chunk-4CLTJN6H.js';
|
|
2
1
|
import { builtinMetrics } from './chunk-GZQAPKRD.js';
|
|
2
|
+
import { ConsoleReporter } from './chunk-4CLTJN6H.js';
|
|
3
3
|
|
|
4
4
|
// src/evaluation/test-runner.ts
|
|
5
5
|
var TestRunner = class {
|
|
@@ -133,5 +133,5 @@ var TestRunner = class {
|
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
export { TestRunner };
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-YS3FWRRV.js.map
|
|
137
|
+
//# sourceMappingURL=chunk-YS3FWRRV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/evaluation/test-runner.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/evaluation/test-runner.ts"],"names":[],"mappings":"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","file":"chunk-YS3FWRRV.js","sourcesContent":["import type { Orka } from '../core/orka.js';\nimport type { EvalCase, MetricFn } from './metrics.js';\nimport type { Assertion, AssertionResult } from './assertions.js';\nimport type { Reporter, TestCaseReport, TestSuiteReport } from './reporters.js';\nimport { builtinMetrics } from './metrics.js';\nimport { ConsoleReporter } from './reporters.js';\n\nexport interface TestSuiteConfig {\n name: string;\n dataset: EvalCase[];\n metrics?: (string | MetricFn)[];\n assertions?: Assertion[];\n reporters?: Reporter[];\n concurrency?: number;\n bail?: boolean;\n}\n\nexport class TestRunner {\n private orka: Orka;\n\n constructor(orka: Orka) {\n this.orka = orka;\n }\n\n async run(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const startTime = Date.now();\n const {\n name,\n dataset,\n metrics = ['relevance', 'faithfulness'],\n assertions = [],\n reporters = [new ConsoleReporter()],\n concurrency = 1,\n bail = false,\n } = config;\n\n const resolvedMetrics = this.resolveMetrics(metrics);\n const cases: TestCaseReport[] = [];\n\n const batches = this.chunk(dataset, concurrency);\n\n for (const batch of batches) {\n const batchResults = await Promise.all(\n batch.map(async (evalCase) => this.runCase(evalCase, resolvedMetrics, assertions))\n );\n\n for (const result of batchResults) {\n cases.push(result);\n if (bail && !result.passed) {\n break;\n }\n }\n\n if (bail && cases.some(c => !c.passed)) {\n break;\n }\n }\n\n const report = this.buildReport(name, cases, Date.now() - startTime);\n\n for (const reporter of reporters) {\n await reporter.report(report);\n }\n\n return report;\n }\n\n private async runCase(\n evalCase: EvalCase,\n metrics: MetricFn[],\n assertions: Assertion[],\n ): Promise<TestCaseReport> {\n const askResult = await this.orka.ask({\n knowledge: evalCase.knowledge,\n question: evalCase.input,\n includeContext: true,\n });\n\n const contextTexts = askResult.context?.map(c => c.content) ?? evalCase.context ?? [];\n const llm = this.orka.getLLM();\n\n const metricResults: Record<string, number> = {};\n for (const metricFn of metrics) {\n const result = await metricFn({\n input: evalCase.input,\n output: askResult.answer,\n expectedOutput: evalCase.expectedOutput,\n context: contextTexts,\n llm,\n });\n metricResults[result.name] = result.score;\n }\n\n const assertionResults: AssertionResult[] = assertions.map(assertion =>\n assertion.check({\n input: evalCase.input,\n output: askResult.answer,\n expectedOutput: evalCase.expectedOutput,\n metrics: metricResults,\n latencyMs: askResult.latencyMs,\n totalTokens: askResult.usage.totalTokens,\n })\n );\n\n const allPassed = assertionResults.length === 0 || assertionResults.every(a => a.passed);\n\n return {\n input: evalCase.input,\n output: askResult.answer,\n passed: allPassed,\n assertions: assertionResults,\n metrics: metricResults,\n latencyMs: askResult.latencyMs,\n totalTokens: askResult.usage.totalTokens,\n };\n }\n\n private buildReport(name: string, cases: TestCaseReport[], duration: number): TestSuiteReport {\n const passed = cases.filter(c => c.passed).length;\n const failed = cases.length - passed;\n\n const metricsMap: Record<string, number[]> = {};\n for (const c of cases) {\n for (const [metricName, score] of Object.entries(c.metrics)) {\n if (!metricsMap[metricName]) metricsMap[metricName] = [];\n metricsMap[metricName].push(score);\n }\n }\n\n const metricsSummary: Record<string, { average: number; min: number; max: number }> = {};\n for (const [metricName, scores] of Object.entries(metricsMap)) {\n metricsSummary[metricName] = {\n average: scores.reduce((a, b) => a + b, 0) / scores.length,\n min: Math.min(...scores),\n max: Math.max(...scores),\n };\n }\n\n return {\n name,\n timestamp: new Date().toISOString(),\n duration,\n totalCases: cases.length,\n passed,\n failed,\n passRate: cases.length > 0 ? passed / cases.length : 0,\n cases,\n summary: {\n averageLatencyMs: cases.reduce((a, b) => a + b.latencyMs, 0) / (cases.length || 1),\n totalTokens: cases.reduce((a, b) => a + b.totalTokens, 0),\n metrics: metricsSummary,\n },\n };\n }\n\n private resolveMetrics(metrics: (string | MetricFn)[]): MetricFn[] {\n return metrics.map(m => {\n if (typeof m === 'function') return m;\n const builtin = builtinMetrics[m];\n if (!builtin) throw new Error(`Unknown metric: \"${m}\"`);\n return builtin;\n });\n }\n\n private chunk<T>(arr: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let i = 0; i < arr.length; i += size) {\n chunks.push(arr.slice(i, i + size));\n }\n return chunks;\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PromptRegistry } from './chunk-BYWWYIMI.js';
|
|
2
2
|
import { Workflow } from './chunk-EZPMQMSN.js';
|
|
3
|
-
import { TestRunner } from './chunk-3XELDGJA.js';
|
|
4
|
-
import { Knowledge } from './chunk-MEX4HRX3.js';
|
|
5
3
|
import { Evaluator } from './chunk-EAMPIWJ6.js';
|
|
4
|
+
import { TestRunner } from './chunk-YS3FWRRV.js';
|
|
5
|
+
import { Knowledge } from './chunk-MEX4HRX3.js';
|
|
6
6
|
import { SessionMemory } from './chunk-YHXXZIW5.js';
|
|
7
7
|
import { Memory } from './chunk-4SX4Q35P.js';
|
|
8
8
|
import { GraphWorkflow } from './chunk-DI2UCZBJ.js';
|
|
@@ -218,5 +218,5 @@ function createOrka(config) {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
export { Orka, createOrka };
|
|
221
|
-
//# sourceMappingURL=chunk-
|
|
222
|
-
//# sourceMappingURL=chunk-
|
|
221
|
+
//# sourceMappingURL=chunk-ZH26JQ5G.js.map
|
|
222
|
+
//# sourceMappingURL=chunk-ZH26JQ5G.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/orka.ts"],"names":[],"mappings":"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","file":"chunk-CNXNVDEM.js","sourcesContent":["import type { \n OrkaConfig, \n AskOptions, \n AskResult,\n RetrievedContext,\n LLMAdapter,\n VectorDBAdapter,\n DatabaseAdapter,\n OrkaDefaults\n} from '../types/index.js';\nimport { Knowledge } from './knowledge.js';\nimport { Workflow } from '../workflow/workflow.js';\nimport type { WorkflowConfig } from '../workflow/types.js';\nimport { Evaluator } from '../evaluation/evaluator.js';\nimport type { EvaluateOptions } from '../evaluation/evaluator.js';\nimport type { EvalSummary } from '../evaluation/metrics.js';\nimport { Agent } from '../agent/agent.js';\nimport type { AgentConfig } from '../agent/types.js';\nimport { Memory, type MemoryConfig } from '../memory/memory.js';\nimport { SessionMemory } from '../memory/session-memory.js';\nimport { Tracer } from '../observability/tracer.js';\nimport type { ObservabilityHook, LogLevel } from '../observability/types.js';\nimport { GraphWorkflow } from '../graph/graph-workflow.js';\nimport type { GraphConfig } from '../graph/types.js';\nimport { PromptRegistry } from '../prompts/registry.js';\nimport type { PromptRegistryConfig } from '../prompts/types.js';\nimport { TestRunner } from '../evaluation/test-runner.js';\nimport type { TestSuiteConfig } from '../evaluation/test-runner.js';\nimport type { TestSuiteReport } from '../evaluation/reporters.js';\n\nexport interface OrkaFullConfig extends OrkaConfig {\n observability?: {\n logLevel?: LogLevel;\n hooks?: ObservabilityHook[];\n };\n memory?: MemoryConfig;\n prompts?: PromptRegistryConfig;\n}\n\nexport class Orka {\n private llm: LLMAdapter;\n private vectorDB?: VectorDBAdapter;\n private database?: DatabaseAdapter;\n private defaults: OrkaDefaults;\n \n public readonly knowledge: Knowledge;\n public readonly tracer: Tracer;\n public readonly prompts: PromptRegistry;\n private _memory?: Memory;\n private _sessionMemory?: SessionMemory;\n\n constructor(config: OrkaFullConfig) {\n this.llm = config.llm;\n this.vectorDB = config.vectorDB;\n this.database = config.database;\n this.defaults = config.defaults ?? {};\n\n if (!this.vectorDB) {\n throw new Error('VectorDB adapter is required. Use MemoryVectorAdapter for quick start.');\n }\n\n this.knowledge = new Knowledge(this.llm, this.vectorDB, this.defaults);\n this.tracer = new Tracer(config.observability);\n\n this.prompts = new PromptRegistry(config.prompts);\n\n if (config.memory) {\n this._memory = new Memory(config.memory);\n }\n }\n\n /**\n * Ask a question using the knowledge base\n * @param options - Ask options\n * @returns Ask result\n */\n async ask(options: AskOptions): Promise<AskResult> {\n const startTime = Date.now();\n const {\n knowledge,\n question,\n systemPrompt,\n topK = this.defaults.topK ?? 5,\n temperature = this.defaults.temperature ?? 0.7,\n maxTokens = this.defaults.maxTokens ?? 1024,\n includeContext = false,\n } = options;\n\n let context: RetrievedContext[] = [];\n let contextText = '';\n\n if (knowledge) {\n const results = await this.knowledge.search(knowledge, question, { topK });\n context = results.map(r => ({\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata,\n }));\n contextText = context.map(c => c.content).join('\\n\\n---\\n\\n');\n }\n\n const prompt = this.buildPrompt(question, contextText, systemPrompt);\n \n const result = await this.llm.generate(prompt, {\n temperature,\n maxTokens,\n systemPrompt: systemPrompt ?? this.getDefaultSystemPrompt(!!knowledge),\n });\n\n const latencyMs = Date.now() - startTime;\n\n const askResult: AskResult = {\n answer: result.content,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n latencyMs,\n };\n\n if (includeContext) {\n askResult.context = context;\n }\n\n return askResult;\n }\n\n /**\n * Generate a response using the LLM\n * @param prompt - The prompt to generate a response for\n * @param options - Generation options\n * @returns Generated response\n */\n async generate(prompt: string, options?: { temperature?: number; maxTokens?: number; systemPrompt?: string }): Promise<string> {\n const result = await this.llm.generate(prompt, {\n temperature: options?.temperature ?? this.defaults.temperature ?? 0.7,\n maxTokens: options?.maxTokens ?? this.defaults.maxTokens ?? 1024,\n systemPrompt: options?.systemPrompt,\n });\n return result.content;\n }\n\n /**\n * Embed text using the LLM\n * @param text - The text to embed\n * @returns Embeddings\n */\n async embed(text: string | string[]): Promise<number[][]> {\n const texts = Array.isArray(text) ? text : [text];\n return this.llm.embed(texts);\n }\n\n /**\n * Create a new workflow\n * @param config - Workflow configuration \n * @returns Workflow instance\n */\n workflow(config: WorkflowConfig): Workflow {\n return new Workflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Create a new agent\n * @param config - Agent configuration\n * @returns Agent instance\n */\n agent(config: AgentConfig): Agent {\n return new Agent(config, this.llm, this.vectorDB, this.knowledge, this._memory);\n }\n\n /**\n * Evaluate a workflow or agent\n * @param options - Evaluation options\n * @returns Evaluation summary\n */\n async evaluate(options: EvaluateOptions): Promise<EvalSummary> {\n const evaluator = new Evaluator(this, this.llm);\n return evaluator.evaluate(options);\n }\n\n /**\n * Get or create memory instance\n * @returns Memory instance\n */\n memory(): Memory {\n if (!this._memory) {\n this._memory = new Memory();\n }\n return this._memory;\n }\n\n /**\n * Get or create session memory instance\n * @returns SessionMemory instance\n */\n sessions(): SessionMemory {\n if (!this._sessionMemory) {\n this._sessionMemory = new SessionMemory();\n }\n return this._sessionMemory;\n }\n\n /**\n * Get database adapter\n * @returns Database adapter or undefined\n */\n getDatabase(): DatabaseAdapter | undefined {\n return this.database;\n }\n\n /**\n * Create a new graph workflow\n * @param config - Graph configuration\n * @returns GraphWorkflow instance\n */\n graph(config: GraphConfig): GraphWorkflow {\n return new GraphWorkflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Run a test suite\n * @param config - Test suite configuration\n * @returns Test suite report\n */\n async test(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const runner = new TestRunner(this);\n return runner.run(config);\n }\n\n /**\n * Get the LLM adapter\n * @returns LLM adapter\n */\n getLLM(): LLMAdapter {\n return this.llm;\n }\n\n /**\n * Build a prompt from question and context\n * @param question - The question to answer\n * @param context - The context to use\n * @param _systemPrompt - The system prompt to use (unused)\n * @returns The built prompt\n */\n private buildPrompt(question: string, context: string, _systemPrompt?: string): string {\n if (!context) {\n return question;\n }\n\n return `Context information:\n---\n${context}\n---\n\nBased on the context above, please answer the following question:\n${question}`;\n }\n\n /**\n * Get the default system prompt\n * @param hasContext - Whether context is available\n * @returns The default system prompt\n */\n private getDefaultSystemPrompt(hasContext: boolean): string {\n if (hasContext) {\n return `You are a helpful assistant. Answer questions based on the provided context. If the context doesn't contain enough information to answer the question, say so clearly. Do not make up information.`;\n }\n return `You are a helpful assistant.`;\n }\n}\n\n/**\n * Create a new Orka instance\n * @param config - Orka configuration\n * @returns Orka instance\n */\nexport function createOrka(config: OrkaFullConfig): Orka {\n return new Orka(config);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/orka.ts"],"names":[],"mappings":"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","file":"chunk-ZH26JQ5G.js","sourcesContent":["import type { \n OrkaConfig, \n AskOptions, \n AskResult,\n RetrievedContext,\n LLMAdapter,\n VectorDBAdapter,\n DatabaseAdapter,\n OrkaDefaults\n} from '../types/index.js';\nimport { Knowledge } from './knowledge.js';\nimport { Workflow } from '../workflow/workflow.js';\nimport type { WorkflowConfig } from '../workflow/types.js';\nimport { Evaluator } from '../evaluation/evaluator.js';\nimport type { EvaluateOptions } from '../evaluation/evaluator.js';\nimport type { EvalSummary } from '../evaluation/metrics.js';\nimport { Agent } from '../agent/agent.js';\nimport type { AgentConfig } from '../agent/types.js';\nimport { Memory, type MemoryConfig } from '../memory/memory.js';\nimport { SessionMemory } from '../memory/session-memory.js';\nimport { Tracer } from '../observability/tracer.js';\nimport type { ObservabilityHook, LogLevel } from '../observability/types.js';\nimport { GraphWorkflow } from '../graph/graph-workflow.js';\nimport type { GraphConfig } from '../graph/types.js';\nimport { PromptRegistry } from '../prompts/registry.js';\nimport type { PromptRegistryConfig } from '../prompts/types.js';\nimport { TestRunner } from '../evaluation/test-runner.js';\nimport type { TestSuiteConfig } from '../evaluation/test-runner.js';\nimport type { TestSuiteReport } from '../evaluation/reporters.js';\n\nexport interface OrkaFullConfig extends OrkaConfig {\n observability?: {\n logLevel?: LogLevel;\n hooks?: ObservabilityHook[];\n };\n memory?: MemoryConfig;\n prompts?: PromptRegistryConfig;\n}\n\nexport class Orka {\n private llm: LLMAdapter;\n private vectorDB?: VectorDBAdapter;\n private database?: DatabaseAdapter;\n private defaults: OrkaDefaults;\n \n public readonly knowledge: Knowledge;\n public readonly tracer: Tracer;\n public readonly prompts: PromptRegistry;\n private _memory?: Memory;\n private _sessionMemory?: SessionMemory;\n\n constructor(config: OrkaFullConfig) {\n this.llm = config.llm;\n this.vectorDB = config.vectorDB;\n this.database = config.database;\n this.defaults = config.defaults ?? {};\n\n if (!this.vectorDB) {\n throw new Error('VectorDB adapter is required. Use MemoryVectorAdapter for quick start.');\n }\n\n this.knowledge = new Knowledge(this.llm, this.vectorDB, this.defaults);\n this.tracer = new Tracer(config.observability);\n\n this.prompts = new PromptRegistry(config.prompts);\n\n if (config.memory) {\n this._memory = new Memory(config.memory);\n }\n }\n\n /**\n * Ask a question using the knowledge base\n * @param options - Ask options\n * @returns Ask result\n */\n async ask(options: AskOptions): Promise<AskResult> {\n const startTime = Date.now();\n const {\n knowledge,\n question,\n systemPrompt,\n topK = this.defaults.topK ?? 5,\n temperature = this.defaults.temperature ?? 0.7,\n maxTokens = this.defaults.maxTokens ?? 1024,\n includeContext = false,\n } = options;\n\n let context: RetrievedContext[] = [];\n let contextText = '';\n\n if (knowledge) {\n const results = await this.knowledge.search(knowledge, question, { topK });\n context = results.map(r => ({\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata,\n }));\n contextText = context.map(c => c.content).join('\\n\\n---\\n\\n');\n }\n\n const prompt = this.buildPrompt(question, contextText, systemPrompt);\n \n const result = await this.llm.generate(prompt, {\n temperature,\n maxTokens,\n systemPrompt: systemPrompt ?? this.getDefaultSystemPrompt(!!knowledge),\n });\n\n const latencyMs = Date.now() - startTime;\n\n const askResult: AskResult = {\n answer: result.content,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n latencyMs,\n };\n\n if (includeContext) {\n askResult.context = context;\n }\n\n return askResult;\n }\n\n /**\n * Generate a response using the LLM\n * @param prompt - The prompt to generate a response for\n * @param options - Generation options\n * @returns Generated response\n */\n async generate(prompt: string, options?: { temperature?: number; maxTokens?: number; systemPrompt?: string }): Promise<string> {\n const result = await this.llm.generate(prompt, {\n temperature: options?.temperature ?? this.defaults.temperature ?? 0.7,\n maxTokens: options?.maxTokens ?? this.defaults.maxTokens ?? 1024,\n systemPrompt: options?.systemPrompt,\n });\n return result.content;\n }\n\n /**\n * Embed text using the LLM\n * @param text - The text to embed\n * @returns Embeddings\n */\n async embed(text: string | string[]): Promise<number[][]> {\n const texts = Array.isArray(text) ? text : [text];\n return this.llm.embed(texts);\n }\n\n /**\n * Create a new workflow\n * @param config - Workflow configuration \n * @returns Workflow instance\n */\n workflow(config: WorkflowConfig): Workflow {\n return new Workflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Create a new agent\n * @param config - Agent configuration\n * @returns Agent instance\n */\n agent(config: AgentConfig): Agent {\n return new Agent(config, this.llm, this.vectorDB, this.knowledge, this._memory);\n }\n\n /**\n * Evaluate a workflow or agent\n * @param options - Evaluation options\n * @returns Evaluation summary\n */\n async evaluate(options: EvaluateOptions): Promise<EvalSummary> {\n const evaluator = new Evaluator(this, this.llm);\n return evaluator.evaluate(options);\n }\n\n /**\n * Get or create memory instance\n * @returns Memory instance\n */\n memory(): Memory {\n if (!this._memory) {\n this._memory = new Memory();\n }\n return this._memory;\n }\n\n /**\n * Get or create session memory instance\n * @returns SessionMemory instance\n */\n sessions(): SessionMemory {\n if (!this._sessionMemory) {\n this._sessionMemory = new SessionMemory();\n }\n return this._sessionMemory;\n }\n\n /**\n * Get database adapter\n * @returns Database adapter or undefined\n */\n getDatabase(): DatabaseAdapter | undefined {\n return this.database;\n }\n\n /**\n * Create a new graph workflow\n * @param config - Graph configuration\n * @returns GraphWorkflow instance\n */\n graph(config: GraphConfig): GraphWorkflow {\n return new GraphWorkflow(config, this.llm, this.vectorDB, this.knowledge);\n }\n\n /**\n * Run a test suite\n * @param config - Test suite configuration\n * @returns Test suite report\n */\n async test(config: TestSuiteConfig): Promise<TestSuiteReport> {\n const runner = new TestRunner(this);\n return runner.run(config);\n }\n\n /**\n * Get the LLM adapter\n * @returns LLM adapter\n */\n getLLM(): LLMAdapter {\n return this.llm;\n }\n\n /**\n * Build a prompt from question and context\n * @param question - The question to answer\n * @param context - The context to use\n * @param _systemPrompt - The system prompt to use (unused)\n * @returns The built prompt\n */\n private buildPrompt(question: string, context: string, _systemPrompt?: string): string {\n if (!context) {\n return question;\n }\n\n return `Context information:\n---\n${context}\n---\n\nBased on the context above, please answer the following question:\n${question}`;\n }\n\n /**\n * Get the default system prompt\n * @param hasContext - Whether context is available\n * @returns The default system prompt\n */\n private getDefaultSystemPrompt(hasContext: boolean): string {\n if (hasContext) {\n return `You are a helpful assistant. Answer questions based on the provided context. If the context doesn't contain enough information to answer the question, say so clearly. Do not make up information.`;\n }\n return `You are a helpful assistant.`;\n }\n}\n\n/**\n * Create a new Orka instance\n * @param config - Orka configuration\n * @returns Orka instance\n */\nexport function createOrka(config: OrkaFullConfig): Orka {\n return new Orka(config);\n}\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkMKE26MIX_cjs = require('../chunk-MKE26MIX.cjs');
|
|
4
|
+
require('../chunk-2UTXL4UI.cjs');
|
|
5
|
+
require('../chunk-QBAICRFT.cjs');
|
|
6
|
+
require('../chunk-SNXMGG75.cjs');
|
|
7
|
+
require('../chunk-VO5LID5M.cjs');
|
|
8
|
+
require('../chunk-HDOI5I46.cjs');
|
|
9
|
+
require('../chunk-Q4UAHOZ4.cjs');
|
|
10
|
+
var chunk4NMX7YMQ_cjs = require('../chunk-4NMX7YMQ.cjs');
|
|
11
|
+
var chunkSTW4N4DQ_cjs = require('../chunk-STW4N4DQ.cjs');
|
|
12
|
+
require('../chunk-JOLXQZLP.cjs');
|
|
13
|
+
require('../chunk-G5C7KNJX.cjs');
|
|
14
|
+
require('../chunk-XAKPLGNG.cjs');
|
|
15
|
+
require('../chunk-XD4CTIN2.cjs');
|
|
16
|
+
require('../chunk-YTFRKPLP.cjs');
|
|
17
|
+
require('../chunk-BBUZ6P5S.cjs');
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Object.defineProperty(exports, "Orka", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunkMKE26MIX_cjs.Orka; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "createOrka", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return chunkMKE26MIX_cjs.createOrka; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "Knowledge", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return chunk4NMX7YMQ_cjs.Knowledge; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "chunkDocument", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return chunkSTW4N4DQ_cjs.chunkDocument; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "chunkDocuments", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return chunkSTW4N4DQ_cjs.chunkDocuments; }
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=index.cjs.map
|
|
42
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { O as Orka, d as createOrka } from '../index-HyHJwtzW.cjs';
|
|
2
|
+
export { Knowledge } from './knowledge.cjs';
|
|
3
|
+
export { chunkDocument, chunkDocuments } from './chunker.cjs';
|
|
4
|
+
import '../types/index.cjs';
|
|
5
|
+
import '../workflow/workflow.cjs';
|
|
6
|
+
import '../types-D_0MABWj.cjs';
|
|
7
|
+
import '../evaluation/metrics.cjs';
|
|
8
|
+
import '../agent-CEhm_T9r.cjs';
|
|
9
|
+
import '../memory/memory.cjs';
|
|
10
|
+
import '../types-ZpM642VC.cjs';
|
|
11
|
+
import '../memory/session-memory.cjs';
|
|
12
|
+
import '../observability/index.cjs';
|
|
13
|
+
import '../graph/graph-workflow.cjs';
|
|
14
|
+
import '../types-B4UAH86O.cjs';
|
|
15
|
+
import '../prompts/registry.cjs';
|
|
16
|
+
import '../types-0sTm-82H.cjs';
|
|
17
|
+
import '../evaluation/assertions.cjs';
|
|
18
|
+
import '../evaluation/reporters.cjs';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { O as Orka, d as createOrka } from '../index-8bLog_oR.js';
|
|
2
|
+
export { Knowledge } from './knowledge.js';
|
|
3
|
+
export { chunkDocument, chunkDocuments } from './chunker.js';
|
|
4
|
+
import '../types/index.js';
|
|
5
|
+
import '../workflow/workflow.js';
|
|
6
|
+
import '../types-DxUxY78w.js';
|
|
7
|
+
import '../evaluation/metrics.js';
|
|
8
|
+
import '../agent-w0NX6-Li.js';
|
|
9
|
+
import '../memory/memory.js';
|
|
10
|
+
import '../types-q1PSyGEh.js';
|
|
11
|
+
import '../memory/session-memory.js';
|
|
12
|
+
import '../observability/index.js';
|
|
13
|
+
import '../graph/graph-workflow.js';
|
|
14
|
+
import '../types-DsOo4p3H.js';
|
|
15
|
+
import '../prompts/registry.js';
|
|
16
|
+
import '../types-0sTm-82H.js';
|
|
17
|
+
import '../evaluation/assertions.js';
|
|
18
|
+
import '../evaluation/reporters.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { Orka, createOrka } from '../chunk-ZH26JQ5G.js';
|
|
2
|
+
import '../chunk-BYWWYIMI.js';
|
|
3
|
+
import '../chunk-EZPMQMSN.js';
|
|
4
|
+
import '../chunk-EAMPIWJ6.js';
|
|
5
|
+
import '../chunk-YS3FWRRV.js';
|
|
6
|
+
import '../chunk-GZQAPKRD.js';
|
|
7
|
+
import '../chunk-4CLTJN6H.js';
|
|
8
|
+
export { Knowledge } from '../chunk-MEX4HRX3.js';
|
|
9
|
+
export { chunkDocument, chunkDocuments } from '../chunk-H7RWKHQR.js';
|
|
10
|
+
import '../chunk-YHXXZIW5.js';
|
|
11
|
+
import '../chunk-4SX4Q35P.js';
|
|
12
|
+
import '../chunk-DI2UCZBJ.js';
|
|
13
|
+
import '../chunk-TR3GHYQX.js';
|
|
14
|
+
import '../chunk-37ZKQRCK.js';
|
|
15
|
+
import '../chunk-T3WBONBO.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/core/orka.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMKE26MIX_cjs = require('../chunk-MKE26MIX.cjs');
|
|
4
4
|
require('../chunk-2UTXL4UI.cjs');
|
|
5
5
|
require('../chunk-QBAICRFT.cjs');
|
|
6
|
-
require('../chunk-
|
|
6
|
+
require('../chunk-SNXMGG75.cjs');
|
|
7
|
+
require('../chunk-VO5LID5M.cjs');
|
|
8
|
+
require('../chunk-HDOI5I46.cjs');
|
|
7
9
|
require('../chunk-Q4UAHOZ4.cjs');
|
|
8
10
|
require('../chunk-4NMX7YMQ.cjs');
|
|
9
11
|
require('../chunk-STW4N4DQ.cjs');
|
|
10
|
-
require('../chunk-SNXMGG75.cjs');
|
|
11
|
-
require('../chunk-HDOI5I46.cjs');
|
|
12
12
|
require('../chunk-JOLXQZLP.cjs');
|
|
13
13
|
require('../chunk-G5C7KNJX.cjs');
|
|
14
14
|
require('../chunk-XAKPLGNG.cjs');
|
|
@@ -20,11 +20,11 @@ require('../chunk-BBUZ6P5S.cjs');
|
|
|
20
20
|
|
|
21
21
|
Object.defineProperty(exports, "Orka", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkMKE26MIX_cjs.Orka; }
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "createOrka", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkMKE26MIX_cjs.createOrka; }
|
|
28
28
|
});
|
|
29
29
|
//# sourceMappingURL=orka.cjs.map
|
|
30
30
|
//# sourceMappingURL=orka.cjs.map
|
package/dist/core/orka.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { Orka, createOrka } from '../chunk-
|
|
1
|
+
export { Orka, createOrka } from '../chunk-ZH26JQ5G.js';
|
|
2
2
|
import '../chunk-BYWWYIMI.js';
|
|
3
3
|
import '../chunk-EZPMQMSN.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-EAMPIWJ6.js';
|
|
5
|
+
import '../chunk-YS3FWRRV.js';
|
|
6
|
+
import '../chunk-GZQAPKRD.js';
|
|
5
7
|
import '../chunk-4CLTJN6H.js';
|
|
6
8
|
import '../chunk-MEX4HRX3.js';
|
|
7
9
|
import '../chunk-H7RWKHQR.js';
|
|
8
|
-
import '../chunk-EAMPIWJ6.js';
|
|
9
|
-
import '../chunk-GZQAPKRD.js';
|
|
10
10
|
import '../chunk-YHXXZIW5.js';
|
|
11
11
|
import '../chunk-4SX4Q35P.js';
|
|
12
12
|
import '../chunk-DI2UCZBJ.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-Q4UAHOZ4.cjs');
|
|
3
|
+
var chunkVO5LID5M_cjs = require('../chunk-VO5LID5M.cjs');
|
|
5
4
|
require('../chunk-HDOI5I46.cjs');
|
|
5
|
+
require('../chunk-Q4UAHOZ4.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "TestRunner", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunkVO5LID5M_cjs.TestRunner; }
|
|
12
12
|
});
|
|
13
13
|
//# sourceMappingURL=test-runner.cjs.map
|
|
14
14
|
//# sourceMappingURL=test-runner.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { TestRunner } from '../chunk-
|
|
2
|
-
import '../chunk-4CLTJN6H.js';
|
|
1
|
+
export { TestRunner } from '../chunk-YS3FWRRV.js';
|
|
3
2
|
import '../chunk-GZQAPKRD.js';
|
|
3
|
+
import '../chunk-4CLTJN6H.js';
|
|
4
4
|
//# sourceMappingURL=test-runner.js.map
|
|
5
5
|
//# sourceMappingURL=test-runner.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkZPGQ5AP3_cjs = require('./chunk-ZPGQ5AP3.cjs');
|
|
4
|
+
var chunkKFPQL35S_cjs = require('./chunk-KFPQL35S.cjs');
|
|
5
|
+
var chunkWCA6OGSB_cjs = require('./chunk-WCA6OGSB.cjs');
|
|
6
|
+
require('./chunk-RZWLJNUN.cjs');
|
|
7
|
+
var chunk3A7BCCAI_cjs = require('./chunk-3A7BCCAI.cjs');
|
|
8
|
+
var chunkRDA76ELY_cjs = require('./chunk-RDA76ELY.cjs');
|
|
4
9
|
var chunkWS6ZI7WT_cjs = require('./chunk-WS6ZI7WT.cjs');
|
|
5
10
|
var chunkH6XXZYT7_cjs = require('./chunk-H6XXZYT7.cjs');
|
|
6
11
|
var chunk7CS4NTB4_cjs = require('./chunk-7CS4NTB4.cjs');
|
|
7
12
|
var chunkNWRGL5BX_cjs = require('./chunk-NWRGL5BX.cjs');
|
|
8
13
|
var chunkJCUAZYXS_cjs = require('./chunk-JCUAZYXS.cjs');
|
|
9
|
-
var chunkKFPQL35S_cjs = require('./chunk-KFPQL35S.cjs');
|
|
10
|
-
var chunkWCA6OGSB_cjs = require('./chunk-WCA6OGSB.cjs');
|
|
11
14
|
var chunkKXVNH7ZX_cjs = require('./chunk-KXVNH7ZX.cjs');
|
|
12
|
-
var
|
|
13
|
-
var chunkRDA76ELY_cjs = require('./chunk-RDA76ELY.cjs');
|
|
14
|
-
var chunkQDXZUIBC_cjs = require('./chunk-QDXZUIBC.cjs');
|
|
15
|
+
var chunkMKE26MIX_cjs = require('./chunk-MKE26MIX.cjs');
|
|
15
16
|
var chunk2UTXL4UI_cjs = require('./chunk-2UTXL4UI.cjs');
|
|
16
17
|
var chunkQBAICRFT_cjs = require('./chunk-QBAICRFT.cjs');
|
|
17
|
-
var
|
|
18
|
+
var chunkSNXMGG75_cjs = require('./chunk-SNXMGG75.cjs');
|
|
19
|
+
var chunkVO5LID5M_cjs = require('./chunk-VO5LID5M.cjs');
|
|
20
|
+
var chunkHDOI5I46_cjs = require('./chunk-HDOI5I46.cjs');
|
|
18
21
|
var chunkQ4UAHOZ4_cjs = require('./chunk-Q4UAHOZ4.cjs');
|
|
19
22
|
var chunk4NMX7YMQ_cjs = require('./chunk-4NMX7YMQ.cjs');
|
|
20
23
|
require('./chunk-STW4N4DQ.cjs');
|
|
21
|
-
var chunkSNXMGG75_cjs = require('./chunk-SNXMGG75.cjs');
|
|
22
|
-
var chunkHDOI5I46_cjs = require('./chunk-HDOI5I46.cjs');
|
|
23
24
|
var chunkJOLXQZLP_cjs = require('./chunk-JOLXQZLP.cjs');
|
|
24
25
|
var chunkG5C7KNJX_cjs = require('./chunk-G5C7KNJX.cjs');
|
|
25
26
|
var chunkXPMSMFRX_cjs = require('./chunk-XPMSMFRX.cjs');
|
|
@@ -82,26 +83,6 @@ Object.defineProperty(exports, "FilePromptPersistence", {
|
|
|
82
83
|
enumerable: true,
|
|
83
84
|
get: function () { return chunkZPGQ5AP3_cjs.FilePromptPersistence; }
|
|
84
85
|
});
|
|
85
|
-
Object.defineProperty(exports, "QdrantAdapter", {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
get: function () { return chunkWS6ZI7WT_cjs.QdrantAdapter; }
|
|
88
|
-
});
|
|
89
|
-
Object.defineProperty(exports, "MemoryVectorAdapter", {
|
|
90
|
-
enumerable: true,
|
|
91
|
-
get: function () { return chunkH6XXZYT7_cjs.MemoryVectorAdapter; }
|
|
92
|
-
});
|
|
93
|
-
Object.defineProperty(exports, "MistralAdapter", {
|
|
94
|
-
enumerable: true,
|
|
95
|
-
get: function () { return chunk7CS4NTB4_cjs.MistralAdapter; }
|
|
96
|
-
});
|
|
97
|
-
Object.defineProperty(exports, "OllamaAdapter", {
|
|
98
|
-
enumerable: true,
|
|
99
|
-
get: function () { return chunkNWRGL5BX_cjs.OllamaAdapter; }
|
|
100
|
-
});
|
|
101
|
-
Object.defineProperty(exports, "ChromaAdapter", {
|
|
102
|
-
enumerable: true,
|
|
103
|
-
get: function () { return chunkJCUAZYXS_cjs.ChromaAdapter; }
|
|
104
|
-
});
|
|
105
86
|
Object.defineProperty(exports, "custom", {
|
|
106
87
|
enumerable: true,
|
|
107
88
|
get: function () { return chunkKFPQL35S_cjs.custom; }
|
|
@@ -158,10 +139,6 @@ Object.defineProperty(exports, "notContains", {
|
|
|
158
139
|
enumerable: true,
|
|
159
140
|
get: function () { return chunkWCA6OGSB_cjs.notContains; }
|
|
160
141
|
});
|
|
161
|
-
Object.defineProperty(exports, "OpenAIAdapter", {
|
|
162
|
-
enumerable: true,
|
|
163
|
-
get: function () { return chunkKXVNH7ZX_cjs.OpenAIAdapter; }
|
|
164
|
-
});
|
|
165
142
|
Object.defineProperty(exports, "AnthropicAdapter", {
|
|
166
143
|
enumerable: true,
|
|
167
144
|
get: function () { return chunk3A7BCCAI_cjs.AnthropicAdapter; }
|
|
@@ -170,13 +147,37 @@ Object.defineProperty(exports, "PineconeAdapter", {
|
|
|
170
147
|
enumerable: true,
|
|
171
148
|
get: function () { return chunkRDA76ELY_cjs.PineconeAdapter; }
|
|
172
149
|
});
|
|
150
|
+
Object.defineProperty(exports, "QdrantAdapter", {
|
|
151
|
+
enumerable: true,
|
|
152
|
+
get: function () { return chunkWS6ZI7WT_cjs.QdrantAdapter; }
|
|
153
|
+
});
|
|
154
|
+
Object.defineProperty(exports, "MemoryVectorAdapter", {
|
|
155
|
+
enumerable: true,
|
|
156
|
+
get: function () { return chunkH6XXZYT7_cjs.MemoryVectorAdapter; }
|
|
157
|
+
});
|
|
158
|
+
Object.defineProperty(exports, "MistralAdapter", {
|
|
159
|
+
enumerable: true,
|
|
160
|
+
get: function () { return chunk7CS4NTB4_cjs.MistralAdapter; }
|
|
161
|
+
});
|
|
162
|
+
Object.defineProperty(exports, "OllamaAdapter", {
|
|
163
|
+
enumerable: true,
|
|
164
|
+
get: function () { return chunkNWRGL5BX_cjs.OllamaAdapter; }
|
|
165
|
+
});
|
|
166
|
+
Object.defineProperty(exports, "ChromaAdapter", {
|
|
167
|
+
enumerable: true,
|
|
168
|
+
get: function () { return chunkJCUAZYXS_cjs.ChromaAdapter; }
|
|
169
|
+
});
|
|
170
|
+
Object.defineProperty(exports, "OpenAIAdapter", {
|
|
171
|
+
enumerable: true,
|
|
172
|
+
get: function () { return chunkKXVNH7ZX_cjs.OpenAIAdapter; }
|
|
173
|
+
});
|
|
173
174
|
Object.defineProperty(exports, "Orka", {
|
|
174
175
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
176
|
+
get: function () { return chunkMKE26MIX_cjs.Orka; }
|
|
176
177
|
});
|
|
177
178
|
Object.defineProperty(exports, "createOrka", {
|
|
178
179
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
180
|
+
get: function () { return chunkMKE26MIX_cjs.createOrka; }
|
|
180
181
|
});
|
|
181
182
|
Object.defineProperty(exports, "PromptRegistry", {
|
|
182
183
|
enumerable: true,
|
|
@@ -186,9 +187,17 @@ Object.defineProperty(exports, "Workflow", {
|
|
|
186
187
|
enumerable: true,
|
|
187
188
|
get: function () { return chunkQBAICRFT_cjs.Workflow; }
|
|
188
189
|
});
|
|
190
|
+
Object.defineProperty(exports, "Evaluator", {
|
|
191
|
+
enumerable: true,
|
|
192
|
+
get: function () { return chunkSNXMGG75_cjs.Evaluator; }
|
|
193
|
+
});
|
|
189
194
|
Object.defineProperty(exports, "TestRunner", {
|
|
190
195
|
enumerable: true,
|
|
191
|
-
get: function () { return
|
|
196
|
+
get: function () { return chunkVO5LID5M_cjs.TestRunner; }
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "builtinMetrics", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function () { return chunkHDOI5I46_cjs.builtinMetrics; }
|
|
192
201
|
});
|
|
193
202
|
Object.defineProperty(exports, "ConsoleReporter", {
|
|
194
203
|
enumerable: true,
|
|
@@ -206,14 +215,6 @@ Object.defineProperty(exports, "Knowledge", {
|
|
|
206
215
|
enumerable: true,
|
|
207
216
|
get: function () { return chunk4NMX7YMQ_cjs.Knowledge; }
|
|
208
217
|
});
|
|
209
|
-
Object.defineProperty(exports, "Evaluator", {
|
|
210
|
-
enumerable: true,
|
|
211
|
-
get: function () { return chunkSNXMGG75_cjs.Evaluator; }
|
|
212
|
-
});
|
|
213
|
-
Object.defineProperty(exports, "builtinMetrics", {
|
|
214
|
-
enumerable: true,
|
|
215
|
-
get: function () { return chunkHDOI5I46_cjs.builtinMetrics; }
|
|
216
|
-
});
|
|
217
218
|
Object.defineProperty(exports, "SessionMemory", {
|
|
218
219
|
enumerable: true,
|
|
219
220
|
get: function () { return chunkJOLXQZLP_cjs.SessionMemory; }
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
export { FilePromptPersistence } from './chunk-EIOBOUO4.js';
|
|
2
|
+
export { custom, generate, improve, plan, retrieve, verify } from './chunk-DWFNM3KU.js';
|
|
3
|
+
export { contains, customAssertion, matchesRegex, maxLatency, maxScore, maxTokens, minScore, notContains } from './chunk-6OFW3LCS.js';
|
|
4
|
+
import './chunk-6O3SGRJD.js';
|
|
5
|
+
export { AnthropicAdapter } from './chunk-UJLSWZZJ.js';
|
|
6
|
+
export { PineconeAdapter } from './chunk-5HKDN5OM.js';
|
|
2
7
|
export { QdrantAdapter } from './chunk-JRNGDZZB.js';
|
|
3
8
|
export { MemoryVectorAdapter } from './chunk-P3SJRGOA.js';
|
|
4
9
|
export { MistralAdapter } from './chunk-Z67QS23K.js';
|
|
5
10
|
export { OllamaAdapter } from './chunk-NXJHLGFP.js';
|
|
6
11
|
export { ChromaAdapter } from './chunk-HK6VWJ6T.js';
|
|
7
|
-
export { custom, generate, improve, plan, retrieve, verify } from './chunk-DWFNM3KU.js';
|
|
8
|
-
export { contains, customAssertion, matchesRegex, maxLatency, maxScore, maxTokens, minScore, notContains } from './chunk-6OFW3LCS.js';
|
|
9
12
|
export { OpenAIAdapter } from './chunk-CFJ5UTGH.js';
|
|
10
|
-
export {
|
|
11
|
-
export { PineconeAdapter } from './chunk-5HKDN5OM.js';
|
|
12
|
-
export { Orka, createOrka } from './chunk-CNXNVDEM.js';
|
|
13
|
+
export { Orka, createOrka } from './chunk-ZH26JQ5G.js';
|
|
13
14
|
export { PromptRegistry } from './chunk-BYWWYIMI.js';
|
|
14
15
|
export { Workflow } from './chunk-EZPMQMSN.js';
|
|
15
|
-
export {
|
|
16
|
+
export { Evaluator } from './chunk-EAMPIWJ6.js';
|
|
17
|
+
export { TestRunner } from './chunk-YS3FWRRV.js';
|
|
18
|
+
export { builtinMetrics } from './chunk-GZQAPKRD.js';
|
|
16
19
|
export { ConsoleReporter, JUnitReporter, JsonReporter } from './chunk-4CLTJN6H.js';
|
|
17
20
|
export { Knowledge } from './chunk-MEX4HRX3.js';
|
|
18
21
|
import './chunk-H7RWKHQR.js';
|
|
19
|
-
export { Evaluator } from './chunk-EAMPIWJ6.js';
|
|
20
|
-
export { builtinMetrics } from './chunk-GZQAPKRD.js';
|
|
21
22
|
export { SessionMemory } from './chunk-YHXXZIW5.js';
|
|
22
23
|
export { Memory } from './chunk-4SX4Q35P.js';
|
|
23
24
|
export { actionNode, conditionNode, edge, endNode, llmNode, parallelNode, retrieveNode, startNode } from './chunk-4EBSDFBS.js';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agent/hitl/memory-checkpoint-store.ts","../src/agent/hitl/hitl-agent.ts"],"names":["BaseAgent","crypto"],"mappings":"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","file":"chunk-BW7QJF67.cjs","sourcesContent":["import type { Checkpoint, CheckpointStore } from './types.js';\n\nexport class MemoryCheckpointStore implements CheckpointStore {\n private checkpoints: Map<string, Checkpoint> = new Map();\n private agentCheckpoints: Map<string, string[]> = new Map();\n\n async save(checkpoint: Checkpoint): Promise<void> {\n this.checkpoints.set(checkpoint.id, checkpoint);\n \n const agentList = this.agentCheckpoints.get(checkpoint.agentId) ?? [];\n if (!agentList.includes(checkpoint.id)) {\n agentList.push(checkpoint.id);\n this.agentCheckpoints.set(checkpoint.agentId, agentList);\n }\n }\n\n async load(checkpointId: string): Promise<Checkpoint | null> {\n return this.checkpoints.get(checkpointId) ?? null;\n }\n\n async loadLatest(agentId: string): Promise<Checkpoint | null> {\n const agentList = this.agentCheckpoints.get(agentId);\n if (!agentList || agentList.length === 0) return null;\n \n const latestId = agentList[agentList.length - 1];\n return this.checkpoints.get(latestId) ?? null;\n }\n\n async list(agentId: string): Promise<Checkpoint[]> {\n const agentList = this.agentCheckpoints.get(agentId) ?? [];\n return agentList\n .map(id => this.checkpoints.get(id))\n .filter((cp): cp is Checkpoint => cp !== undefined);\n }\n\n async delete(checkpointId: string): Promise<void> {\n const checkpoint = this.checkpoints.get(checkpointId);\n if (checkpoint) {\n this.checkpoints.delete(checkpointId);\n const agentList = this.agentCheckpoints.get(checkpoint.agentId);\n if (agentList) {\n const idx = agentList.indexOf(checkpointId);\n if (idx !== -1) agentList.splice(idx, 1);\n }\n }\n }\n\n clear(): void {\n this.checkpoints.clear();\n this.agentCheckpoints.clear();\n }\n}\n","import crypto from 'crypto';\nimport type { LLMAdapter } from '../../types/index.js';\nimport type { Memory } from '../../memory/memory.js';\nimport type { AgentStepResult } from '../types.js';\nimport { BaseAgent } from '../base-agent.js';\nimport type {\n HITLAgentConfig,\n HITLAgentResult,\n HITLConfig,\n InterruptRequest,\n InterruptResponse,\n InterruptData,\n InterruptReason,\n Checkpoint,\n CheckpointState,\n CheckpointStep,\n} from './types.js';\nimport { MemoryCheckpointStore } from './memory-checkpoint-store.js';\n\nexport class HITLAgent extends BaseAgent {\n private verbose: boolean;\n private hitlConfig: HITLConfig;\n private agentId: string;\n private interrupts: InterruptResponse[] = [];\n private checkpointIds: string[] = [];\n\n constructor(config: HITLAgentConfig, llm: LLMAdapter, memory?: Memory) {\n super(config, llm, memory, 'hitl');\n this.verbose = config.verbose ?? false;\n this.hitlConfig = config.hitl;\n this.agentId = config.name ?? this.generateId();\n \n if (!this.hitlConfig.checkpointStore) {\n this.hitlConfig.checkpointStore = new MemoryCheckpointStore();\n }\n }\n\n async run(input: string, resumeFromCheckpoint?: string): Promise<HITLAgentResult> {\n const startTime = Date.now();\n let steps: AgentStepResult[] = [];\n let startStep = 0;\n let resumedFromCheckpoint: string | undefined;\n\n if (resumeFromCheckpoint) {\n const checkpoint = await this.hitlConfig.checkpointStore?.load(resumeFromCheckpoint);\n if (checkpoint) {\n steps = checkpoint.state.steps.map(s => ({\n ...s,\n latencyMs: 0,\n }));\n startStep = checkpoint.stepNumber;\n resumedFromCheckpoint = checkpoint.id;\n if (this.verbose) {\n console.log(`[HITL] Resumed from checkpoint ${checkpoint.id} at step ${startStep}`);\n }\n }\n }\n\n this.interrupts = [];\n this.checkpointIds = [];\n const memoryContext = this.getMemoryContext();\n\n this.emit({ type: 'step:start', agentType: this.agentType, input });\n\n for (let step = startStep; step < this.maxSteps; step++) {\n const stepStart = Date.now();\n const prompt = this.buildPrompt(input, steps, memoryContext);\n\n const result = await this.llm.generate(prompt, {\n temperature: this.temperature,\n maxTokens: 2048,\n systemPrompt: this.buildSystemPrompt(),\n });\n\n const parsed = this.parseResponse(result.content);\n\n if (this.verbose) {\n console.log(`[HITL Step ${step + 1}]`);\n console.log(` Thought: ${parsed.thought}`);\n console.log(` Action: ${parsed.action}`);\n console.log(` Action Input: ${JSON.stringify(parsed.actionInput)}`);\n }\n\n if (parsed.action === 'finish') {\n const finalAnswer = (parsed.actionInput.answer as string) ?? parsed.thought;\n this.saveToMemory(input, finalAnswer);\n this.emit({ type: 'complete', agentType: this.agentType, output: finalAnswer });\n\n return this.buildHITLResult(input, finalAnswer, steps, startTime, resumedFromCheckpoint);\n }\n\n const shouldCheckpoint = this.hitlConfig.checkpointEvery && \n (step + 1) % this.hitlConfig.checkpointEvery === 0;\n\n if (shouldCheckpoint) {\n await this.createCheckpoint(input, steps, step);\n }\n\n const approvalResult = await this.handleToolApproval(parsed.action, parsed.actionInput, step, parsed.thought);\n \n if (approvalResult.status === 'rejected') {\n const rejectionMessage = `Tool \"${parsed.action}\" was rejected by human reviewer. Feedback: ${approvalResult.feedback ?? 'No feedback provided'}`;\n \n steps.push({\n thought: parsed.thought,\n action: parsed.action,\n actionInput: parsed.actionInput,\n observation: rejectionMessage,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: rejectionMessage });\n continue;\n }\n\n const toolName = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolName\n ? approvalResult.modifiedData.toolName\n : parsed.action;\n \n const toolInput = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolInput\n ? approvalResult.modifiedData.toolInput\n : parsed.actionInput;\n\n const observation = await this.executeTool(toolName, toolInput);\n\n if (this.verbose) {\n console.log(` Observation: ${observation.slice(0, 200)}`);\n }\n\n steps.push({\n thought: parsed.thought,\n action: toolName,\n actionInput: toolInput,\n observation,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: observation });\n }\n\n const fallback = steps.length > 0\n ? `Reached max steps (${this.maxSteps}). Last observations:\\n${steps.slice(-3).map(s => s.observation).join('\\n')}`\n : 'Unable to process request.';\n\n this.saveToMemory(input, fallback);\n return this.buildHITLResult(input, fallback, steps, startTime, resumedFromCheckpoint, true);\n }\n\n async interrupt(\n reason: InterruptReason,\n message: string,\n data: InterruptData = {},\n ): Promise<InterruptResponse> {\n if (!this.hitlConfig.onInterrupt) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const request: InterruptRequest = {\n id: this.generateId(),\n agentId: this.agentId,\n reason,\n message,\n data,\n createdAt: new Date(),\n timeoutMs: this.hitlConfig.defaultTimeoutMs,\n };\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt requested: ${reason} - ${message}`);\n }\n\n const response = await this.hitlConfig.onInterrupt(request);\n this.interrupts.push(response);\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt response: ${response.status}`);\n }\n\n return response;\n }\n\n async requestConfirmation(message: string, context?: Record<string, unknown>): Promise<InterruptResponse> {\n return this.interrupt('confirmation', message, { context });\n }\n\n async requestReview(message: string, stepNumber: number, thought: string): Promise<InterruptResponse> {\n return this.interrupt('review', message, { stepNumber, thought });\n }\n\n private async handleToolApproval(\n toolName: string,\n toolInput: Record<string, unknown>,\n stepNumber: number,\n thought: string,\n ): Promise<InterruptResponse> {\n if (this.hitlConfig.autoApproveTools?.includes(toolName)) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const requiresApproval = this.hitlConfig.requireApprovalFor?.includes(toolName) ||\n (this.hitlConfig.requireApprovalFor?.includes('*') && !this.hitlConfig.autoApproveTools?.includes(toolName));\n\n if (!requiresApproval) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n return this.interrupt('tool_approval', `Approve tool \"${toolName}\"?`, {\n toolName,\n toolInput,\n stepNumber,\n thought,\n });\n }\n\n private async createCheckpoint(input: string, steps: AgentStepResult[], stepNumber: number): Promise<void> {\n const checkpointSteps: CheckpointStep[] = steps.map(s => ({\n thought: s.thought,\n action: s.action,\n actionInput: s.actionInput,\n observation: s.observation,\n }));\n\n const state: CheckpointState = {\n input,\n steps: checkpointSteps,\n context: {},\n };\n\n const checkpoint: Checkpoint = {\n id: this.generateId(),\n agentId: this.agentId,\n stepNumber,\n state,\n createdAt: new Date(),\n };\n\n await this.hitlConfig.checkpointStore?.save(checkpoint);\n this.checkpointIds.push(checkpoint.id);\n\n if (this.verbose) {\n console.log(`[HITL] Checkpoint created: ${checkpoint.id} at step ${stepNumber}`);\n }\n\n await this.interrupt('checkpoint', `Checkpoint created at step ${stepNumber}`, {\n stepNumber,\n context: { checkpointId: checkpoint.id },\n });\n }\n\n async getCheckpoints(): Promise<Checkpoint[]> {\n return this.hitlConfig.checkpointStore?.list(this.agentId) ?? [];\n }\n\n async loadCheckpoint(checkpointId: string): Promise<Checkpoint | null> {\n return this.hitlConfig.checkpointStore?.load(checkpointId) ?? null;\n }\n\n private buildHITLResult(\n input: string,\n output: string,\n steps: AgentStepResult[],\n startTime: number,\n resumedFromCheckpoint?: string,\n maxStepsReached = false,\n ): HITLAgentResult {\n const baseResult = this.buildResult(input, output, steps, startTime, { maxStepsReached });\n \n return {\n ...baseResult,\n interrupts: this.interrupts,\n checkpoints: this.checkpointIds,\n wasInterrupted: this.interrupts.length > 0,\n resumedFromCheckpoint,\n };\n }\n\n private buildSystemPrompt(): string {\n const toolDescriptions = this.getToolDescriptions();\n const rules = this.getRulesString();\n\n return `You are an AI agent with human-in-the-loop capabilities. Your goal: ${this.goal}\n\nYou follow a structured reasoning pattern:\n1. THINK about what you need to do\n2. ACT by using a tool (some tools may require human approval)\n3. OBSERVE the result\n4. REPEAT until you can provide a final answer\n\nAvailable tools:\n${toolDescriptions}\n\n${rules ? `Rules:\\n${rules}\\n` : ''}\nYou MUST respond in this EXACT format:\n\nThought: <your step-by-step reasoning about what to do next>\nAction: <tool_name>\nAction Input: <JSON object with tool parameters>\n\nWhen you have enough information to answer, use:\nThought: <your final reasoning>\nAction: finish\nAction Input: {\"answer\": \"<your comprehensive final answer>\"}\n\n${this.systemPrompt ?? ''}`;\n }\n\n private buildPrompt(input: string, steps: AgentStepResult[], memoryContext: string): string {\n let prompt = `${memoryContext}\\nQuestion: ${input}\\n`;\n\n if (steps.length > 0) {\n prompt += '\\n';\n for (const step of steps) {\n prompt += `Thought: ${step.thought}\\n`;\n prompt += `Action: ${step.action}\\n`;\n prompt += `Action Input: ${JSON.stringify(step.actionInput)}\\n`;\n prompt += `Observation: ${step.observation}\\n\\n`;\n }\n }\n\n return prompt;\n }\n\n private parseResponse(content: string): { thought: string; action: string; actionInput: Record<string, unknown> } {\n const thoughtMatch = content.match(/Thought:\\s*(.*?)(?=\\nAction:)/s);\n const actionMatch = content.match(/Action:\\s*(.*?)(?=\\nAction Input:)/s);\n const actionInputMatch = content.match(/Action Input:\\s*(.*)/s);\n\n const thought = thoughtMatch?.[1]?.trim() ?? content;\n const action = actionMatch?.[1]?.trim() ?? 'finish';\n\n let actionInput: Record<string, unknown> = {};\n if (actionInputMatch?.[1]) {\n actionInput = this.parseJsonFromText(actionInputMatch[1]);\n }\n\n if (action === 'finish' && !actionInput.answer) {\n actionInput.answer = thought;\n }\n\n return { thought, action, actionInput };\n }\n\n private generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = crypto.randomBytes(4).toString('hex');\n return `${timestamp}-${random}`;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agent/hitl/memory-checkpoint-store.ts","../src/agent/hitl/hitl-agent.ts"],"names":[],"mappings":"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","file":"chunk-YHRCEYN3.js","sourcesContent":["import type { Checkpoint, CheckpointStore } from './types.js';\n\nexport class MemoryCheckpointStore implements CheckpointStore {\n private checkpoints: Map<string, Checkpoint> = new Map();\n private agentCheckpoints: Map<string, string[]> = new Map();\n\n async save(checkpoint: Checkpoint): Promise<void> {\n this.checkpoints.set(checkpoint.id, checkpoint);\n \n const agentList = this.agentCheckpoints.get(checkpoint.agentId) ?? [];\n if (!agentList.includes(checkpoint.id)) {\n agentList.push(checkpoint.id);\n this.agentCheckpoints.set(checkpoint.agentId, agentList);\n }\n }\n\n async load(checkpointId: string): Promise<Checkpoint | null> {\n return this.checkpoints.get(checkpointId) ?? null;\n }\n\n async loadLatest(agentId: string): Promise<Checkpoint | null> {\n const agentList = this.agentCheckpoints.get(agentId);\n if (!agentList || agentList.length === 0) return null;\n \n const latestId = agentList[agentList.length - 1];\n return this.checkpoints.get(latestId) ?? null;\n }\n\n async list(agentId: string): Promise<Checkpoint[]> {\n const agentList = this.agentCheckpoints.get(agentId) ?? [];\n return agentList\n .map(id => this.checkpoints.get(id))\n .filter((cp): cp is Checkpoint => cp !== undefined);\n }\n\n async delete(checkpointId: string): Promise<void> {\n const checkpoint = this.checkpoints.get(checkpointId);\n if (checkpoint) {\n this.checkpoints.delete(checkpointId);\n const agentList = this.agentCheckpoints.get(checkpoint.agentId);\n if (agentList) {\n const idx = agentList.indexOf(checkpointId);\n if (idx !== -1) agentList.splice(idx, 1);\n }\n }\n }\n\n clear(): void {\n this.checkpoints.clear();\n this.agentCheckpoints.clear();\n }\n}\n","import crypto from 'crypto';\nimport type { LLMAdapter } from '../../types/index.js';\nimport type { Memory } from '../../memory/memory.js';\nimport type { AgentStepResult } from '../types.js';\nimport { BaseAgent } from '../base-agent.js';\nimport type {\n HITLAgentConfig,\n HITLAgentResult,\n HITLConfig,\n InterruptRequest,\n InterruptResponse,\n InterruptData,\n InterruptReason,\n Checkpoint,\n CheckpointState,\n CheckpointStep,\n} from './types.js';\nimport { MemoryCheckpointStore } from './memory-checkpoint-store.js';\n\nexport class HITLAgent extends BaseAgent {\n private verbose: boolean;\n private hitlConfig: HITLConfig;\n private agentId: string;\n private interrupts: InterruptResponse[] = [];\n private checkpointIds: string[] = [];\n\n constructor(config: HITLAgentConfig, llm: LLMAdapter, memory?: Memory) {\n super(config, llm, memory, 'hitl');\n this.verbose = config.verbose ?? false;\n this.hitlConfig = config.hitl;\n this.agentId = config.name ?? this.generateId();\n \n if (!this.hitlConfig.checkpointStore) {\n this.hitlConfig.checkpointStore = new MemoryCheckpointStore();\n }\n }\n\n async run(input: string, resumeFromCheckpoint?: string): Promise<HITLAgentResult> {\n const startTime = Date.now();\n let steps: AgentStepResult[] = [];\n let startStep = 0;\n let resumedFromCheckpoint: string | undefined;\n\n if (resumeFromCheckpoint) {\n const checkpoint = await this.hitlConfig.checkpointStore?.load(resumeFromCheckpoint);\n if (checkpoint) {\n steps = checkpoint.state.steps.map(s => ({\n ...s,\n latencyMs: 0,\n }));\n startStep = checkpoint.stepNumber;\n resumedFromCheckpoint = checkpoint.id;\n if (this.verbose) {\n console.log(`[HITL] Resumed from checkpoint ${checkpoint.id} at step ${startStep}`);\n }\n }\n }\n\n this.interrupts = [];\n this.checkpointIds = [];\n const memoryContext = this.getMemoryContext();\n\n this.emit({ type: 'step:start', agentType: this.agentType, input });\n\n for (let step = startStep; step < this.maxSteps; step++) {\n const stepStart = Date.now();\n const prompt = this.buildPrompt(input, steps, memoryContext);\n\n const result = await this.llm.generate(prompt, {\n temperature: this.temperature,\n maxTokens: 2048,\n systemPrompt: this.buildSystemPrompt(),\n });\n\n const parsed = this.parseResponse(result.content);\n\n if (this.verbose) {\n console.log(`[HITL Step ${step + 1}]`);\n console.log(` Thought: ${parsed.thought}`);\n console.log(` Action: ${parsed.action}`);\n console.log(` Action Input: ${JSON.stringify(parsed.actionInput)}`);\n }\n\n if (parsed.action === 'finish') {\n const finalAnswer = (parsed.actionInput.answer as string) ?? parsed.thought;\n this.saveToMemory(input, finalAnswer);\n this.emit({ type: 'complete', agentType: this.agentType, output: finalAnswer });\n\n return this.buildHITLResult(input, finalAnswer, steps, startTime, resumedFromCheckpoint);\n }\n\n const shouldCheckpoint = this.hitlConfig.checkpointEvery && \n (step + 1) % this.hitlConfig.checkpointEvery === 0;\n\n if (shouldCheckpoint) {\n await this.createCheckpoint(input, steps, step);\n }\n\n const approvalResult = await this.handleToolApproval(parsed.action, parsed.actionInput, step, parsed.thought);\n \n if (approvalResult.status === 'rejected') {\n const rejectionMessage = `Tool \"${parsed.action}\" was rejected by human reviewer. Feedback: ${approvalResult.feedback ?? 'No feedback provided'}`;\n \n steps.push({\n thought: parsed.thought,\n action: parsed.action,\n actionInput: parsed.actionInput,\n observation: rejectionMessage,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: rejectionMessage });\n continue;\n }\n\n const toolName = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolName\n ? approvalResult.modifiedData.toolName\n : parsed.action;\n \n const toolInput = approvalResult.status === 'modified' && approvalResult.modifiedData?.toolInput\n ? approvalResult.modifiedData.toolInput\n : parsed.actionInput;\n\n const observation = await this.executeTool(toolName, toolInput);\n\n if (this.verbose) {\n console.log(` Observation: ${observation.slice(0, 200)}`);\n }\n\n steps.push({\n thought: parsed.thought,\n action: toolName,\n actionInput: toolInput,\n observation,\n latencyMs: Date.now() - stepStart,\n usage: {\n promptTokens: result.usage.promptTokens,\n completionTokens: result.usage.completionTokens,\n totalTokens: result.usage.totalTokens,\n },\n });\n\n this.emit({ type: 'step:end', agentType: this.agentType, step, output: observation });\n }\n\n const fallback = steps.length > 0\n ? `Reached max steps (${this.maxSteps}). Last observations:\\n${steps.slice(-3).map(s => s.observation).join('\\n')}`\n : 'Unable to process request.';\n\n this.saveToMemory(input, fallback);\n return this.buildHITLResult(input, fallback, steps, startTime, resumedFromCheckpoint, true);\n }\n\n async interrupt(\n reason: InterruptReason,\n message: string,\n data: InterruptData = {},\n ): Promise<InterruptResponse> {\n if (!this.hitlConfig.onInterrupt) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const request: InterruptRequest = {\n id: this.generateId(),\n agentId: this.agentId,\n reason,\n message,\n data,\n createdAt: new Date(),\n timeoutMs: this.hitlConfig.defaultTimeoutMs,\n };\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt requested: ${reason} - ${message}`);\n }\n\n const response = await this.hitlConfig.onInterrupt(request);\n this.interrupts.push(response);\n\n if (this.verbose) {\n console.log(`[HITL] Interrupt response: ${response.status}`);\n }\n\n return response;\n }\n\n async requestConfirmation(message: string, context?: Record<string, unknown>): Promise<InterruptResponse> {\n return this.interrupt('confirmation', message, { context });\n }\n\n async requestReview(message: string, stepNumber: number, thought: string): Promise<InterruptResponse> {\n return this.interrupt('review', message, { stepNumber, thought });\n }\n\n private async handleToolApproval(\n toolName: string,\n toolInput: Record<string, unknown>,\n stepNumber: number,\n thought: string,\n ): Promise<InterruptResponse> {\n if (this.hitlConfig.autoApproveTools?.includes(toolName)) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n const requiresApproval = this.hitlConfig.requireApprovalFor?.includes(toolName) ||\n (this.hitlConfig.requireApprovalFor?.includes('*') && !this.hitlConfig.autoApproveTools?.includes(toolName));\n\n if (!requiresApproval) {\n return {\n id: this.generateId(),\n status: 'approved',\n respondedAt: new Date(),\n };\n }\n\n return this.interrupt('tool_approval', `Approve tool \"${toolName}\"?`, {\n toolName,\n toolInput,\n stepNumber,\n thought,\n });\n }\n\n private async createCheckpoint(input: string, steps: AgentStepResult[], stepNumber: number): Promise<void> {\n const checkpointSteps: CheckpointStep[] = steps.map(s => ({\n thought: s.thought,\n action: s.action,\n actionInput: s.actionInput,\n observation: s.observation,\n }));\n\n const state: CheckpointState = {\n input,\n steps: checkpointSteps,\n context: {},\n };\n\n const checkpoint: Checkpoint = {\n id: this.generateId(),\n agentId: this.agentId,\n stepNumber,\n state,\n createdAt: new Date(),\n };\n\n await this.hitlConfig.checkpointStore?.save(checkpoint);\n this.checkpointIds.push(checkpoint.id);\n\n if (this.verbose) {\n console.log(`[HITL] Checkpoint created: ${checkpoint.id} at step ${stepNumber}`);\n }\n\n await this.interrupt('checkpoint', `Checkpoint created at step ${stepNumber}`, {\n stepNumber,\n context: { checkpointId: checkpoint.id },\n });\n }\n\n async getCheckpoints(): Promise<Checkpoint[]> {\n return this.hitlConfig.checkpointStore?.list(this.agentId) ?? [];\n }\n\n async loadCheckpoint(checkpointId: string): Promise<Checkpoint | null> {\n return this.hitlConfig.checkpointStore?.load(checkpointId) ?? null;\n }\n\n private buildHITLResult(\n input: string,\n output: string,\n steps: AgentStepResult[],\n startTime: number,\n resumedFromCheckpoint?: string,\n maxStepsReached = false,\n ): HITLAgentResult {\n const baseResult = this.buildResult(input, output, steps, startTime, { maxStepsReached });\n \n return {\n ...baseResult,\n interrupts: this.interrupts,\n checkpoints: this.checkpointIds,\n wasInterrupted: this.interrupts.length > 0,\n resumedFromCheckpoint,\n };\n }\n\n private buildSystemPrompt(): string {\n const toolDescriptions = this.getToolDescriptions();\n const rules = this.getRulesString();\n\n return `You are an AI agent with human-in-the-loop capabilities. Your goal: ${this.goal}\n\nYou follow a structured reasoning pattern:\n1. THINK about what you need to do\n2. ACT by using a tool (some tools may require human approval)\n3. OBSERVE the result\n4. REPEAT until you can provide a final answer\n\nAvailable tools:\n${toolDescriptions}\n\n${rules ? `Rules:\\n${rules}\\n` : ''}\nYou MUST respond in this EXACT format:\n\nThought: <your step-by-step reasoning about what to do next>\nAction: <tool_name>\nAction Input: <JSON object with tool parameters>\n\nWhen you have enough information to answer, use:\nThought: <your final reasoning>\nAction: finish\nAction Input: {\"answer\": \"<your comprehensive final answer>\"}\n\n${this.systemPrompt ?? ''}`;\n }\n\n private buildPrompt(input: string, steps: AgentStepResult[], memoryContext: string): string {\n let prompt = `${memoryContext}\\nQuestion: ${input}\\n`;\n\n if (steps.length > 0) {\n prompt += '\\n';\n for (const step of steps) {\n prompt += `Thought: ${step.thought}\\n`;\n prompt += `Action: ${step.action}\\n`;\n prompt += `Action Input: ${JSON.stringify(step.actionInput)}\\n`;\n prompt += `Observation: ${step.observation}\\n\\n`;\n }\n }\n\n return prompt;\n }\n\n private parseResponse(content: string): { thought: string; action: string; actionInput: Record<string, unknown> } {\n const thoughtMatch = content.match(/Thought:\\s*(.*?)(?=\\nAction:)/s);\n const actionMatch = content.match(/Action:\\s*(.*?)(?=\\nAction Input:)/s);\n const actionInputMatch = content.match(/Action Input:\\s*(.*)/s);\n\n const thought = thoughtMatch?.[1]?.trim() ?? content;\n const action = actionMatch?.[1]?.trim() ?? 'finish';\n\n let actionInput: Record<string, unknown> = {};\n if (actionInputMatch?.[1]) {\n actionInput = this.parseJsonFromText(actionInputMatch[1]);\n }\n\n if (action === 'finish' && !actionInput.answer) {\n actionInput.answer = thought;\n }\n\n return { thought, action, actionInput };\n }\n\n private generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = crypto.randomBytes(4).toString('hex');\n return `${timestamp}-${random}`;\n }\n}\n"]}
|