kernl 0.2.1 → 0.6.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/.turbo/turbo-build.log +5 -4
- package/.turbo/turbo-check-types.log +4 -0
- package/CHANGELOG.md +147 -0
- package/LICENSE +1 -1
- package/dist/agent/__tests__/concurrency.test.d.ts +2 -0
- package/dist/agent/__tests__/concurrency.test.d.ts.map +1 -0
- package/dist/agent/__tests__/concurrency.test.js +152 -0
- package/dist/agent/__tests__/run.test.d.ts +2 -0
- package/dist/agent/__tests__/run.test.d.ts.map +1 -0
- package/dist/agent/__tests__/run.test.js +357 -0
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent.d.ts +35 -12
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +102 -15
- package/dist/api/__tests__/cursor-page.test.d.ts +2 -0
- package/dist/api/__tests__/cursor-page.test.d.ts.map +1 -0
- package/dist/api/__tests__/cursor-page.test.js +414 -0
- package/dist/api/__tests__/offset-page.test.d.ts +2 -0
- package/dist/api/__tests__/offset-page.test.d.ts.map +1 -0
- package/dist/api/__tests__/offset-page.test.js +510 -0
- package/dist/api/__tests__/threads.test.d.ts +2 -0
- package/dist/api/__tests__/threads.test.d.ts.map +1 -0
- package/dist/api/__tests__/threads.test.js +338 -0
- package/dist/api/models/index.d.ts +2 -0
- package/dist/api/models/index.d.ts.map +1 -0
- package/dist/api/models/thread.d.ts +120 -0
- package/dist/api/models/thread.d.ts.map +1 -0
- package/dist/api/pagination/base.d.ts +48 -0
- package/dist/api/pagination/base.d.ts.map +1 -0
- package/dist/api/pagination/base.js +45 -0
- package/dist/api/pagination/cursor.d.ts +44 -0
- package/dist/api/pagination/cursor.d.ts.map +1 -0
- package/dist/api/pagination/cursor.js +52 -0
- package/dist/api/pagination/offset.d.ts +42 -0
- package/dist/api/pagination/offset.d.ts.map +1 -0
- package/dist/api/pagination/offset.js +55 -0
- package/dist/api/resources/threads/events.d.ts +21 -0
- package/dist/api/resources/threads/events.d.ts.map +1 -0
- package/dist/api/resources/threads/events.js +24 -0
- package/dist/api/resources/threads/index.d.ts +4 -0
- package/dist/api/resources/threads/index.d.ts.map +1 -0
- package/dist/api/resources/threads/index.js +2 -0
- package/dist/api/resources/threads/threads.d.ts +57 -0
- package/dist/api/resources/threads/threads.d.ts.map +1 -0
- package/dist/api/resources/threads/threads.js +199 -0
- package/dist/api/resources/threads/types.d.ts +123 -0
- package/dist/api/resources/threads/types.d.ts.map +1 -0
- package/dist/api/resources/threads/utils.d.ts +18 -0
- package/dist/api/resources/threads/utils.d.ts.map +1 -0
- package/dist/api/resources/threads/utils.js +78 -0
- package/dist/context.d.ts +5 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +6 -1
- package/dist/guardrail.d.ts +4 -4
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/internal.d.ts +4 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +2 -0
- package/dist/kernl/index.d.ts +3 -0
- package/dist/kernl/index.d.ts.map +1 -0
- package/dist/kernl/index.js +2 -0
- package/dist/kernl/kernl.d.ts +64 -0
- package/dist/kernl/kernl.d.ts.map +1 -0
- package/dist/kernl/kernl.js +116 -0
- package/dist/kernl/threads.d.ts +110 -0
- package/dist/kernl/threads.d.ts.map +1 -0
- package/dist/kernl/threads.js +126 -0
- package/dist/kernl.d.ts +27 -11
- package/dist/kernl.d.ts.map +1 -1
- package/dist/kernl.js +74 -11
- package/dist/lib/env.d.ts +3 -3
- package/dist/lib/env.js +1 -1
- package/dist/lib/error.d.ts +3 -3
- package/dist/lib/logger.js +1 -1
- package/dist/lifecycle.d.ts +5 -5
- package/dist/mcp/__tests__/base.test.js +2 -2
- package/dist/mcp/__tests__/fixtures/utils.d.ts +1 -1
- package/dist/mcp/__tests__/fixtures/utils.js +1 -1
- package/dist/mcp/__tests__/integration.test.js +16 -16
- package/dist/mcp/__tests__/stdio.test.js +2 -2
- package/dist/mcp/__tests__/utils.test.js +8 -8
- package/dist/mcp/base.d.ts +2 -2
- package/dist/mcp/http.d.ts +3 -3
- package/dist/mcp/http.d.ts.map +1 -1
- package/dist/mcp/http.js +11 -11
- package/dist/mcp/sse.d.ts +3 -3
- package/dist/mcp/sse.d.ts.map +1 -1
- package/dist/mcp/sse.js +9 -9
- package/dist/mcp/stdio.d.ts +2 -2
- package/dist/mcp/stdio.js +2 -2
- package/dist/mcp/types.d.ts +3 -3
- package/dist/mcp/utils.d.ts +4 -4
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +5 -6
- package/dist/storage/__tests__/in-memory.test.d.ts +2 -0
- package/dist/storage/__tests__/in-memory.test.d.ts.map +1 -0
- package/dist/storage/__tests__/in-memory.test.js +455 -0
- package/dist/storage/base.d.ts +64 -0
- package/dist/storage/base.d.ts.map +1 -0
- package/dist/storage/base.js +4 -0
- package/dist/storage/in-memory.d.ts +62 -0
- package/dist/storage/in-memory.d.ts.map +1 -0
- package/dist/storage/in-memory.js +283 -0
- package/dist/storage/index.d.ts +10 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/thread.d.ts +123 -0
- package/dist/storage/thread.d.ts.map +1 -0
- package/dist/storage/thread.js +4 -0
- package/dist/task.d.ts +8 -6
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +10 -8
- package/dist/thread/__tests__/fixtures/mock-model.d.ts +1 -2
- package/dist/thread/__tests__/fixtures/mock-model.d.ts.map +1 -1
- package/dist/thread/__tests__/integration.test.js +10 -10
- package/dist/thread/__tests__/mock.d.ts +1 -1
- package/dist/thread/__tests__/namespace.test.d.ts +2 -0
- package/dist/thread/__tests__/namespace.test.d.ts.map +1 -0
- package/dist/thread/__tests__/namespace.test.js +131 -0
- package/dist/thread/__tests__/thread-persistence.test.d.ts +2 -0
- package/dist/thread/__tests__/thread-persistence.test.d.ts.map +1 -0
- package/dist/thread/__tests__/thread-persistence.test.js +351 -0
- package/dist/thread/__tests__/thread.test.js +55 -57
- package/dist/thread/index.d.ts +1 -1
- package/dist/thread/index.js +1 -1
- package/dist/thread/thread.d.ts +74 -22
- package/dist/thread/thread.d.ts.map +1 -1
- package/dist/thread/thread.js +212 -74
- package/dist/thread/utils.d.ts +38 -10
- package/dist/thread/utils.d.ts.map +1 -1
- package/dist/thread/utils.js +53 -9
- package/dist/tool/__tests__/fixtures.d.ts +8 -8
- package/dist/tool/__tests__/fixtures.js +3 -3
- package/dist/tool/__tests__/tool.test.js +2 -2
- package/dist/tool/__tests__/toolkit.test.js +17 -14
- package/dist/tool/index.d.ts +3 -3
- package/dist/tool/index.js +2 -2
- package/dist/tool/tool.d.ts +2 -2
- package/dist/tool/tool.js +5 -5
- package/dist/tool/toolkit.d.ts +4 -4
- package/dist/tool/toolkit.js +1 -1
- package/dist/tool/types.d.ts +4 -4
- package/dist/trace/traces.js +2 -2
- package/dist/types/agent.d.ts +4 -4
- package/dist/types/kernl.d.ts +42 -0
- package/dist/types/kernl.d.ts.map +1 -0
- package/dist/types/thread.d.ts +110 -24
- package/dist/types/thread.d.ts.map +1 -1
- package/dist/types/thread.js +12 -0
- package/package.json +12 -8
- package/src/agent/__tests__/concurrency.test.ts +194 -0
- package/src/agent/__tests__/run.test.ts +441 -0
- package/src/agent/index.ts +0 -0
- package/src/agent.ts +139 -24
- package/src/api/__tests__/cursor-page.test.ts +512 -0
- package/src/api/__tests__/offset-page.test.ts +624 -0
- package/src/api/__tests__/threads.test.ts +415 -0
- package/src/api/models/index.ts +6 -0
- package/src/api/models/thread.ts +138 -0
- package/src/api/pagination/base.ts +79 -0
- package/src/api/pagination/cursor.ts +86 -0
- package/src/api/pagination/offset.ts +89 -0
- package/src/api/resources/threads/events.ts +26 -0
- package/src/api/resources/threads/index.ts +9 -0
- package/src/api/resources/threads/threads.ts +256 -0
- package/src/api/resources/threads/types.ts +143 -0
- package/src/api/resources/threads/utils.ts +104 -0
- package/src/context.ts +10 -1
- package/src/index.ts +49 -1
- package/src/internal.ts +15 -0
- package/src/kernl.ts +86 -17
- package/src/mcp/__tests__/integration.test.ts +8 -9
- package/src/mcp/__tests__/utils.test.ts +6 -6
- package/src/mcp/http.ts +9 -9
- package/src/mcp/sse.ts +7 -7
- package/src/mcp/utils.ts +6 -5
- package/src/storage/__tests__/in-memory.test.ts +534 -0
- package/src/storage/base.ts +77 -0
- package/src/storage/in-memory.ts +372 -0
- package/src/storage/index.ts +21 -0
- package/src/storage/thread.ts +141 -0
- package/src/task.ts +12 -10
- package/src/thread/__tests__/fixtures/mock-model.ts +2 -4
- package/src/thread/__tests__/integration.test.ts +13 -12
- package/src/thread/__tests__/namespace.test.ts +158 -0
- package/src/thread/__tests__/thread-persistence.test.ts +367 -0
- package/src/thread/__tests__/thread.test.ts +52 -54
- package/src/thread/thread.ts +247 -96
- package/src/thread/utils.ts +76 -13
- package/src/tool/__tests__/fixtures.ts +1 -1
- package/src/tool/__tests__/toolkit.test.ts +15 -12
- package/src/tool/tool.ts +3 -3
- package/src/types/kernl.ts +51 -0
- package/src/types/thread.ts +139 -25
- package/vitest.config.ts +1 -0
- package/dist/env.d.ts +0 -45
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -31
- package/dist/error.d.ts +0 -1
- package/dist/error.d.ts.map +0 -1
- package/dist/kernel.d.ts +0 -7
- package/dist/kernel.d.ts.map +0 -1
- package/dist/kernel.js +0 -7
- package/dist/lib/serde/__tests__/codec.test.d.ts +0 -2
- package/dist/lib/serde/__tests__/codec.test.d.ts.map +0 -1
- package/dist/lib/serde/__tests__/codec.test.js +0 -75
- package/dist/lib/serde/codec.d.ts +0 -12
- package/dist/lib/serde/codec.d.ts.map +0 -1
- package/dist/lib/serde/codec.js +0 -54
- package/dist/lib/serde/thread.d.ts +0 -1
- package/dist/lib/serde/thread.d.ts.map +0 -1
- package/dist/lib/serde/thread.js +0 -172
- package/dist/lib/serde/tool.d.ts +0 -36
- package/dist/lib/serde/tool.d.ts.map +0 -1
- package/dist/lib/utils.d.ts +0 -19
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -41
- package/dist/logger.d.ts +0 -36
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -43
- package/dist/mcp/__tests__/fixtures/echo-server.d.ts +0 -3
- package/dist/mcp/__tests__/fixtures/echo-server.d.ts.map +0 -1
- package/dist/mcp/__tests__/fixtures/echo-server.js +0 -92
- package/dist/mcp/__tests__/fixtures/math-server.d.ts +0 -3
- package/dist/mcp/__tests__/fixtures/math-server.d.ts.map +0 -1
- package/dist/mcp/__tests__/fixtures/math-server.js +0 -98
- package/dist/mcp/__tests__/fixtures/test-server.d.ts +0 -3
- package/dist/mcp/__tests__/fixtures/test-server.d.ts.map +0 -1
- package/dist/mcp/__tests__/fixtures/test-server.js +0 -163
- package/dist/mcp/__tests__/test-utils.d.ts +0 -17
- package/dist/mcp/__tests__/test-utils.d.ts.map +0 -1
- package/dist/mcp/__tests__/test-utils.js +0 -42
- package/dist/mcp/node.d.ts +0 -60
- package/dist/mcp/node.d.ts.map +0 -1
- package/dist/mcp/node.js +0 -297
- package/dist/model.d.ts +0 -175
- package/dist/model.d.ts.map +0 -1
- package/dist/providers/ai.d.ts +0 -1
- package/dist/providers/ai.d.ts.map +0 -1
- package/dist/providers/ai.js +0 -1
- package/dist/providers/default.d.ts +0 -16
- package/dist/providers/default.d.ts.map +0 -1
- package/dist/providers/default.js +0 -17
- package/dist/providers/registry.d.ts +0 -1
- package/dist/providers/registry.d.ts.map +0 -1
- package/dist/providers/registry.js +0 -1
- package/dist/sched/scheduler.d.ts +0 -20
- package/dist/sched/scheduler.d.ts.map +0 -1
- package/dist/sched/task.d.ts +0 -92
- package/dist/sched/task.d.ts.map +0 -1
- package/dist/sched/task.js +0 -102
- package/dist/serde/__tests__/codec.test.d.ts +0 -2
- package/dist/serde/__tests__/codec.test.d.ts.map +0 -1
- package/dist/serde/__tests__/codec.test.js +0 -75
- package/dist/serde/codec.d.ts +0 -12
- package/dist/serde/codec.d.ts.map +0 -1
- package/dist/serde/codec.js +0 -54
- package/dist/serde/json.d.ts +0 -8
- package/dist/serde/json.d.ts.map +0 -1
- package/dist/serde/json.js +0 -13
- package/dist/serde/thread.d.ts +0 -687
- package/dist/serde/thread.d.ts.map +0 -1
- package/dist/serde/thread.js +0 -158
- package/dist/serde/tool.d.ts +0 -36
- package/dist/serde/tool.d.ts.map +0 -1
- package/dist/session.d.ts +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -1
- package/dist/thread/__tests__/stream.test.d.ts +0 -2
- package/dist/thread/__tests__/stream.test.d.ts.map +0 -1
- package/dist/thread/__tests__/stream.test.js +0 -244
- package/dist/tool/mcp.d.ts +0 -75
- package/dist/tool/mcp.d.ts.map +0 -1
- package/dist/tool/mcp.js +0 -111
- package/dist/tools.d.ts +0 -362
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -220
- package/dist/types/proto.d.ts +0 -1551
- package/dist/types/proto.d.ts.map +0 -1
- package/dist/types/proto.js +0 -531
- package/dist/usage.d.ts +0 -43
- package/dist/usage.d.ts.map +0 -1
- package/dist/usage.js +0 -61
- package/src/lib/serde/thread.ts +0 -188
- /package/dist/{error.js → agent/index.js} +0 -0
- /package/dist/{lib/serde/tool.js → api/models/index.js} +0 -0
- /package/dist/{model.js → api/models/thread.js} +0 -0
- /package/dist/{sched/scheduler.js → api/resources/threads/types.js} +0 -0
- /package/dist/{serde/tool.js → types/kernl.js} +0 -0
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE;;;GAGG;AACH,qBAAa,OAAO,CAAC,QAAQ,GAAG,cAAc;IAC5C;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAMlB;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE;;;GAGG;AACH,qBAAa,OAAO,CAAC,QAAQ,GAAG,cAAc;IAC5C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAMlB;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;gBAyB1B,SAAS,GAAE,MAAgB,EAC3B,OAAO,GAAE,QAAyB;IAUpC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM;IAevC;;;;;;;;;;;;;;OAcG;IACH,EAAE,IAAI,MAAM;IAIZ;;;;;;;;;;OAUG;IACH,IAAI,IAAI,MAAM;IAId,MAAM,IAAI;QACR,OAAO,EAAE,GAAG,CAAC;KAGd;CAsIF;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
package/dist/context.js
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* execution units.
|
|
4
4
|
*/
|
|
5
5
|
export class Context {
|
|
6
|
+
/**
|
|
7
|
+
* The namespace that this context belongs to.
|
|
8
|
+
*/
|
|
9
|
+
namespace;
|
|
6
10
|
/**
|
|
7
11
|
* The inner context object.
|
|
8
12
|
*/
|
|
@@ -45,7 +49,8 @@ export class Context {
|
|
|
45
49
|
// * A map of tool names to whether they have been approved.
|
|
46
50
|
// */
|
|
47
51
|
// #approvals: Map<string, ApprovalRecord>;
|
|
48
|
-
constructor(context = {}) {
|
|
52
|
+
constructor(namespace = "kernl", context = {}) {
|
|
53
|
+
this.namespace = namespace;
|
|
49
54
|
this.context = context;
|
|
50
55
|
this.approvals = new Map();
|
|
51
56
|
// this.format = format; // (TODO): configure()
|
package/dist/guardrail.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z, type ZodType } from "zod";
|
|
2
2
|
import { LanguageModelResponse } from "@kernl-sdk/protocol";
|
|
3
|
-
import { Agent } from "./agent";
|
|
4
|
-
import { Context, UnknownContext } from "./context";
|
|
5
|
-
import type { AgentResponseType } from "./types/agent";
|
|
6
|
-
import type { TextResponse, ThreadEvent } from "./types/thread";
|
|
3
|
+
import { Agent } from "./agent.js";
|
|
4
|
+
import { Context, UnknownContext } from "./context.js";
|
|
5
|
+
import type { AgentResponseType } from "./types/agent.js";
|
|
6
|
+
import type { TextResponse, ThreadEvent } from "./types/thread.js";
|
|
7
7
|
/**
|
|
8
8
|
* Resolves the agent output type based on the response type.
|
|
9
9
|
* - If TResponse is "text" → output is string
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
export { Kernl } from "./kernl";
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
4
|
-
export {
|
|
1
|
+
export { Kernl } from "./kernl.js";
|
|
2
|
+
export type { KernlOptions, StorageOptions, AgentRegistry, ModelRegistry, } from "./types/kernl.js";
|
|
3
|
+
export { Agent } from "./agent.js";
|
|
4
|
+
export { Context } from "./context.js";
|
|
5
|
+
export { tool, Toolkit, FunctionToolkit, MCPToolkit } from "./tool/index.js";
|
|
6
|
+
export { MCPServerSSE } from "./mcp/sse.js";
|
|
7
|
+
export { MCPServerStdio } from "./mcp/stdio.js";
|
|
8
|
+
export { MCPServerStreamableHttp } from "./mcp/http.js";
|
|
9
|
+
export type { MThread as Thread, MThreadEvent as ThreadEvent, MThreadEventBase as ThreadEventBase, } from "./api/models/index.js";
|
|
10
|
+
export type { RThreadsListParams as ThreadsListParams, RThreadGetOptions as ThreadGetOptions, RThreadHistoryParams as ThreadHistoryParams, RThreadCreateParams as ThreadCreateParams, RThreadUpdateParams as ThreadUpdateParams, } from "./api/resources/threads/index.js";
|
|
11
|
+
export { THREAD_STATES, type ThreadState, type PublicThreadEvent, } from "./types/thread.js";
|
|
12
|
+
export type { ThreadStore, NewThread, ThreadUpdate, ThreadFilter, ThreadHistoryOptions, ThreadInclude, ThreadListOptions, SortOrder, KernlStorage, Transaction, } from "./storage/index.js";
|
|
5
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGrD,YAAY,EACV,OAAO,IAAI,MAAM,EACjB,YAAY,IAAI,WAAW,EAC3B,gBAAgB,IAAI,eAAe,GACpC,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,kBAAkB,IAAI,iBAAiB,EACvC,iBAAiB,IAAI,gBAAgB,EACrC,oBAAoB,IAAI,mBAAmB,EAC3C,mBAAmB,IAAI,kBAAkB,EACzC,mBAAmB,IAAI,kBAAkB,GAC1C,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,WAAW,GACZ,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
export { Kernl } from "./kernl";
|
|
2
|
-
export { Agent } from "./agent";
|
|
3
|
-
export {
|
|
1
|
+
export { Kernl } from "./kernl.js";
|
|
2
|
+
export { Agent } from "./agent.js";
|
|
3
|
+
export { Context } from "./context.js";
|
|
4
|
+
// --- tools --
|
|
5
|
+
export { tool, Toolkit, FunctionToolkit, MCPToolkit } from "./tool/index.js";
|
|
6
|
+
export { MCPServerSSE } from "./mcp/sse.js";
|
|
7
|
+
export { MCPServerStdio } from "./mcp/stdio.js";
|
|
8
|
+
export { MCPServerStreamableHttp } from "./mcp/http.js";
|
|
9
|
+
// --- thread state enums ---
|
|
10
|
+
export { THREAD_STATES, } from "./types/thread.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Thread } from "./thread/thread.js";
|
|
2
|
+
export type { IThread, ThreadEvent, ThreadEventBase, ThreadEventInner, ThreadSystemEvent, ThreadState, PublicThreadEvent, } from "./types/thread.js";
|
|
3
|
+
export { THREAD_STATES } from "./types/thread.js";
|
|
4
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,YAAY,EACV,OAAO,EACP,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Agent } from "../agent.js";
|
|
2
|
+
import { UnknownContext } from "../context.js";
|
|
3
|
+
import { KernlHooks } from "../lifecycle.js";
|
|
4
|
+
import type { Thread } from "../thread/index.js";
|
|
5
|
+
import type { ResolvedAgentResponse } from "../guardrail.js";
|
|
6
|
+
import { type KernlStorage } from "../storage/index.js";
|
|
7
|
+
import type { KernlOptions } from "../types/kernl.js";
|
|
8
|
+
import type { ThreadExecuteResult, ThreadStreamEvent } from "../types/thread.js";
|
|
9
|
+
import type { AgentResponseType } from "../types/agent.js";
|
|
10
|
+
import { ThreadsResource } from "./threads.js";
|
|
11
|
+
/**
|
|
12
|
+
* The kernl - manages agent processes, scheduling, and task lifecycle.
|
|
13
|
+
*
|
|
14
|
+
* Orchestrates agent execution, including guardrails, tool calls, session persistence, and
|
|
15
|
+
* tracing.
|
|
16
|
+
*/
|
|
17
|
+
export declare class Kernl extends KernlHooks<UnknownContext, AgentResponseType> {
|
|
18
|
+
private agents;
|
|
19
|
+
private models;
|
|
20
|
+
readonly storage: KernlStorage;
|
|
21
|
+
athreads: Map<string, Thread<any, any>>;
|
|
22
|
+
private initPromise;
|
|
23
|
+
/**
|
|
24
|
+
* Thread management API.
|
|
25
|
+
* Provides methods to get, list, and delete threads.
|
|
26
|
+
*/
|
|
27
|
+
readonly threads: ThreadsResource;
|
|
28
|
+
constructor(options?: KernlOptions);
|
|
29
|
+
/**
|
|
30
|
+
* Registers a new agent with the kernl instance.
|
|
31
|
+
*/
|
|
32
|
+
register(agent: Agent): void;
|
|
33
|
+
/**
|
|
34
|
+
* Spawn a new thread - blocking execution
|
|
35
|
+
*/
|
|
36
|
+
spawn<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): Promise<ThreadExecuteResult<ResolvedAgentResponse<TResponse>>>;
|
|
37
|
+
/**
|
|
38
|
+
* Schedule an existing thread - blocking execution
|
|
39
|
+
*
|
|
40
|
+
* NOTE: just blocks for now
|
|
41
|
+
*/
|
|
42
|
+
schedule<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): Promise<ThreadExecuteResult<ResolvedAgentResponse<TResponse>>>;
|
|
43
|
+
/**
|
|
44
|
+
* (TMP) - won't make sense in async scheduling contexts
|
|
45
|
+
*
|
|
46
|
+
* Spawn a new thread - streaming execution
|
|
47
|
+
*/
|
|
48
|
+
spawnStream<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): AsyncIterable<ThreadStreamEvent>;
|
|
49
|
+
/**
|
|
50
|
+
* (TMP) - won't make sense with async scheduling contexts
|
|
51
|
+
*
|
|
52
|
+
* Schedule an existing thread - streaming execution
|
|
53
|
+
*/
|
|
54
|
+
scheduleStream<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): AsyncIterable<ThreadStreamEvent>;
|
|
55
|
+
/**
|
|
56
|
+
* Ensure the underlying storage backend has been initialized.
|
|
57
|
+
*
|
|
58
|
+
* This is called lazily on first use so that callers do not need to worry
|
|
59
|
+
* about calling storage.init() themselves. Safe and idempotent to call
|
|
60
|
+
* multiple times; concurrent calls share the same initialization promise.
|
|
61
|
+
*/
|
|
62
|
+
private ensureInitialized;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=kernl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernl.d.ts","sourceRoot":"","sources":["../../src/kernl/kernl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACtE,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,MAAM,CAAyC;IAEvD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAa;IAEpD,OAAO,CAAC,WAAW,CAA8B;IAEjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;gBAEtB,OAAO,GAAE,YAAiB;IAOtC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAa5B;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EACvD,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IAUjE;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EAC1D,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IAUjE;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EAC9D,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,aAAa,CAAC,iBAAiB,CAAC;IAUnC;;;;OAIG;IACI,cAAc,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EACjE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,aAAa,CAAC,iBAAiB,CAAC;IAUnC;;;;;;OAMG;YACW,iBAAiB;CAWhC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { KernlHooks } from "../lifecycle.js";
|
|
2
|
+
import { InMemoryStorage } from "../storage/index.js";
|
|
3
|
+
import { ThreadsResource } from "./threads.js";
|
|
4
|
+
/**
|
|
5
|
+
* The kernl - manages agent processes, scheduling, and task lifecycle.
|
|
6
|
+
*
|
|
7
|
+
* Orchestrates agent execution, including guardrails, tool calls, session persistence, and
|
|
8
|
+
* tracing.
|
|
9
|
+
*/
|
|
10
|
+
export class Kernl extends KernlHooks {
|
|
11
|
+
agents = new Map();
|
|
12
|
+
models = new Map();
|
|
13
|
+
storage;
|
|
14
|
+
athreads = new Map(); /* active threads */
|
|
15
|
+
initPromise = null;
|
|
16
|
+
/**
|
|
17
|
+
* Thread management API.
|
|
18
|
+
* Provides methods to get, list, and delete threads.
|
|
19
|
+
*/
|
|
20
|
+
threads;
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
super();
|
|
23
|
+
this.storage = options.storage?.db ?? new InMemoryStorage();
|
|
24
|
+
this.storage.bind({ agents: this.agents, models: this.models });
|
|
25
|
+
this.threads = new ThreadsResource(this.storage.threads);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Registers a new agent with the kernl instance.
|
|
29
|
+
*/
|
|
30
|
+
register(agent) {
|
|
31
|
+
this.agents.set(agent.id, agent);
|
|
32
|
+
agent.bind(this);
|
|
33
|
+
// (TODO): implement exhaustive model registry in protocol/ package
|
|
34
|
+
//
|
|
35
|
+
// auto-populate model registry for storage hydration
|
|
36
|
+
const key = `${agent.model.provider}/${agent.model.modelId}`;
|
|
37
|
+
if (!this.models.has(key)) {
|
|
38
|
+
this.models.set(key, agent.model);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Spawn a new thread - blocking execution
|
|
43
|
+
*/
|
|
44
|
+
async spawn(thread) {
|
|
45
|
+
await this.ensureInitialized();
|
|
46
|
+
this.athreads.set(thread.tid, thread);
|
|
47
|
+
try {
|
|
48
|
+
return await thread.execute();
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.athreads.delete(thread.tid);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Schedule an existing thread - blocking execution
|
|
56
|
+
*
|
|
57
|
+
* NOTE: just blocks for now
|
|
58
|
+
*/
|
|
59
|
+
async schedule(thread) {
|
|
60
|
+
await this.ensureInitialized();
|
|
61
|
+
this.athreads.set(thread.tid, thread);
|
|
62
|
+
try {
|
|
63
|
+
return await thread.execute();
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
this.athreads.delete(thread.tid);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* (TMP) - won't make sense in async scheduling contexts
|
|
71
|
+
*
|
|
72
|
+
* Spawn a new thread - streaming execution
|
|
73
|
+
*/
|
|
74
|
+
async *spawnStream(thread) {
|
|
75
|
+
await this.ensureInitialized();
|
|
76
|
+
this.athreads.set(thread.tid, thread);
|
|
77
|
+
try {
|
|
78
|
+
yield* thread.stream();
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
this.athreads.delete(thread.tid);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* (TMP) - won't make sense with async scheduling contexts
|
|
86
|
+
*
|
|
87
|
+
* Schedule an existing thread - streaming execution
|
|
88
|
+
*/
|
|
89
|
+
async *scheduleStream(thread) {
|
|
90
|
+
await this.ensureInitialized();
|
|
91
|
+
this.athreads.set(thread.tid, thread);
|
|
92
|
+
try {
|
|
93
|
+
yield* thread.stream();
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
this.athreads.delete(thread.tid);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Ensure the underlying storage backend has been initialized.
|
|
101
|
+
*
|
|
102
|
+
* This is called lazily on first use so that callers do not need to worry
|
|
103
|
+
* about calling storage.init() themselves. Safe and idempotent to call
|
|
104
|
+
* multiple times; concurrent calls share the same initialization promise.
|
|
105
|
+
*/
|
|
106
|
+
async ensureInitialized() {
|
|
107
|
+
if (!this.initPromise) {
|
|
108
|
+
this.initPromise = this.storage.init().catch((error) => {
|
|
109
|
+
// Allow a retry if initialization fails.
|
|
110
|
+
this.initPromise = null;
|
|
111
|
+
throw error;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
await this.initPromise;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { ThreadStore } from "../storage/index.js";
|
|
2
|
+
import type { ThreadResource, PublicThreadEvent } from "../types/thread.js";
|
|
3
|
+
/**
|
|
4
|
+
* Threads resource - provides a clean API for managing threads.
|
|
5
|
+
*
|
|
6
|
+
* Returns public ThreadResource types, not internal Thread class instances.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ThreadsResource {
|
|
9
|
+
private store;
|
|
10
|
+
constructor(store: ThreadStore);
|
|
11
|
+
/**
|
|
12
|
+
* Get a thread by ID.
|
|
13
|
+
*
|
|
14
|
+
* @param id - Thread ID
|
|
15
|
+
* @param options - Include options (history included by default)
|
|
16
|
+
* @returns Thread resource, or null if not found
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* // With history (default)
|
|
21
|
+
* const thread = await kernl.threads.get("thread_123");
|
|
22
|
+
* console.log(thread?.history); // Array of ThreadEvents
|
|
23
|
+
*
|
|
24
|
+
* // Without history
|
|
25
|
+
* const thread = await kernl.threads.get("thread_123", { includeHistory: false });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
get(id: string, options?: ThreadGetOptions): Promise<ThreadResource | null>;
|
|
29
|
+
/**
|
|
30
|
+
* List threads with optional filtering and pagination.
|
|
31
|
+
*
|
|
32
|
+
* Returns thread metadata only (no event history).
|
|
33
|
+
* Use get() with includeHistory to retrieve full thread details.
|
|
34
|
+
*
|
|
35
|
+
* @param params - List parameters
|
|
36
|
+
* @returns Array of thread resources (metadata only)
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* // List recent threads for a specific agent
|
|
41
|
+
* const threads = await kernl.threads.list({
|
|
42
|
+
* agentId: "jarvis",
|
|
43
|
+
* limit: 20
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
list(params?: ThreadsListParams): Promise<ThreadResource[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Delete a thread and all its events.
|
|
50
|
+
*
|
|
51
|
+
* @param id - Thread ID
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* await kernl.threads.delete("thread_123");
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
delete(id: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Get the event history for a thread.
|
|
61
|
+
*
|
|
62
|
+
* Returns only public/client-facing events (excludes internal system events).
|
|
63
|
+
*
|
|
64
|
+
* @param id - Thread ID
|
|
65
|
+
* @returns Array of public thread events
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const events = await kernl.threads.history("thread_123");
|
|
70
|
+
* console.log(events.length); // Number of events in thread
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
history(id: string): Promise<PublicThreadEvent[]>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parameters for listing threads.
|
|
77
|
+
*/
|
|
78
|
+
export interface ThreadsListParams {
|
|
79
|
+
/**
|
|
80
|
+
* Maximum number of threads to return.
|
|
81
|
+
*/
|
|
82
|
+
limit?: number;
|
|
83
|
+
/**
|
|
84
|
+
* Return threads created before this cursor.
|
|
85
|
+
*/
|
|
86
|
+
before?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Return threads created after this cursor.
|
|
89
|
+
*/
|
|
90
|
+
after?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Filter by namespace.
|
|
93
|
+
*/
|
|
94
|
+
namespace?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Filter by agent ID.
|
|
97
|
+
*/
|
|
98
|
+
agentId?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Options for getting a thread.
|
|
102
|
+
*/
|
|
103
|
+
export interface ThreadGetOptions {
|
|
104
|
+
/**
|
|
105
|
+
* Include full event history in the response.
|
|
106
|
+
* @default true
|
|
107
|
+
*/
|
|
108
|
+
includeHistory?: boolean;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/kernl/threads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,WAAW,CAAC;AAChE,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAEtC;;;;;;;;;;;;;;;;OAgBG;IACG,GAAG,CACP,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAYjC;;;;;;;;;;;;;;;;;OAiBG;IACG,IAAI,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAerE;;;;;;;;;OASG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAIxD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { isPublicEvent } from "../thread/utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Threads resource - provides a clean API for managing threads.
|
|
4
|
+
*
|
|
5
|
+
* Returns public ThreadResource types, not internal Thread class instances.
|
|
6
|
+
*/
|
|
7
|
+
export class ThreadsResource {
|
|
8
|
+
store;
|
|
9
|
+
constructor(store) {
|
|
10
|
+
this.store = store;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get a thread by ID.
|
|
14
|
+
*
|
|
15
|
+
* @param id - Thread ID
|
|
16
|
+
* @param options - Include options (history included by default)
|
|
17
|
+
* @returns Thread resource, or null if not found
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* // With history (default)
|
|
22
|
+
* const thread = await kernl.threads.get("thread_123");
|
|
23
|
+
* console.log(thread?.history); // Array of ThreadEvents
|
|
24
|
+
*
|
|
25
|
+
* // Without history
|
|
26
|
+
* const thread = await kernl.threads.get("thread_123", { includeHistory: false });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
async get(id, options) {
|
|
30
|
+
const includeHistory = options?.includeHistory ?? true; // include history by default
|
|
31
|
+
const thread = await this.store.get(id, { history: includeHistory });
|
|
32
|
+
if (!thread) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const history = includeHistory ? await this.store.history(id) : undefined;
|
|
36
|
+
return ThreadResourceCodec.decode(thread, history);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* List threads with optional filtering and pagination.
|
|
40
|
+
*
|
|
41
|
+
* Returns thread metadata only (no event history).
|
|
42
|
+
* Use get() with includeHistory to retrieve full thread details.
|
|
43
|
+
*
|
|
44
|
+
* @param params - List parameters
|
|
45
|
+
* @returns Array of thread resources (metadata only)
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* // List recent threads for a specific agent
|
|
50
|
+
* const threads = await kernl.threads.list({
|
|
51
|
+
* agentId: "jarvis",
|
|
52
|
+
* limit: 20
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
async list(params = {}) {
|
|
57
|
+
const options = {
|
|
58
|
+
limit: params.limit,
|
|
59
|
+
filter: {
|
|
60
|
+
agentId: params.agentId,
|
|
61
|
+
namespace: params.namespace,
|
|
62
|
+
},
|
|
63
|
+
order: { createdAt: "desc" },
|
|
64
|
+
};
|
|
65
|
+
// TODO: Implement cursor-based pagination with before/after
|
|
66
|
+
const threads = await this.store.list(options);
|
|
67
|
+
return threads.map((t) => ThreadResourceCodec.decode(t));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Delete a thread and all its events.
|
|
71
|
+
*
|
|
72
|
+
* @param id - Thread ID
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* await kernl.threads.delete("thread_123");
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
async delete(id) {
|
|
80
|
+
return this.store.delete(id);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the event history for a thread.
|
|
84
|
+
*
|
|
85
|
+
* Returns only public/client-facing events (excludes internal system events).
|
|
86
|
+
*
|
|
87
|
+
* @param id - Thread ID
|
|
88
|
+
* @returns Array of public thread events
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const events = await kernl.threads.history("thread_123");
|
|
93
|
+
* console.log(events.length); // Number of events in thread
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
async history(id) {
|
|
97
|
+
const events = await this.store.history(id);
|
|
98
|
+
return events.filter(isPublicEvent);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Codec: Convert internal Thread instance to public ThreadResource.
|
|
103
|
+
*/
|
|
104
|
+
const ThreadResourceCodec = {
|
|
105
|
+
decode(thread, history) {
|
|
106
|
+
const resource = {
|
|
107
|
+
tid: thread.tid,
|
|
108
|
+
namespace: thread.namespace,
|
|
109
|
+
agentId: thread.agent.id,
|
|
110
|
+
model: {
|
|
111
|
+
provider: thread.model.provider,
|
|
112
|
+
modelId: thread.model.modelId,
|
|
113
|
+
},
|
|
114
|
+
context: thread.context.context,
|
|
115
|
+
parentTaskId: thread.parent?.id ?? null,
|
|
116
|
+
state: thread.state,
|
|
117
|
+
createdAt: thread.createdAt,
|
|
118
|
+
updatedAt: thread.updatedAt,
|
|
119
|
+
};
|
|
120
|
+
if (history !== undefined) {
|
|
121
|
+
// Filter to only public events (exclude internal system events)
|
|
122
|
+
resource.history = history.filter(isPublicEvent);
|
|
123
|
+
}
|
|
124
|
+
return resource;
|
|
125
|
+
},
|
|
126
|
+
};
|
package/dist/kernl.d.ts
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import { Agent } from "./agent";
|
|
2
|
-
import { UnknownContext } from "./context";
|
|
3
|
-
import { KernlHooks } from "./lifecycle";
|
|
4
|
-
import type { Thread } from "./thread";
|
|
5
|
-
import type {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
1
|
+
import { Agent } from "./agent.js";
|
|
2
|
+
import { UnknownContext } from "./context.js";
|
|
3
|
+
import { KernlHooks } from "./lifecycle.js";
|
|
4
|
+
import type { Thread } from "./thread/index.js";
|
|
5
|
+
import type { ResolvedAgentResponse } from "./guardrail.js";
|
|
6
|
+
import { type KernlStorage } from "./storage/index.js";
|
|
7
|
+
import { RThreads } from "./api/resources/threads/index.js";
|
|
8
|
+
import type { KernlOptions } from "./types/kernl.js";
|
|
9
|
+
import type { ThreadExecuteResult, ThreadStreamEvent } from "./types/thread.js";
|
|
10
|
+
import type { AgentResponseType } from "./types/agent.js";
|
|
8
11
|
/**
|
|
9
|
-
* The kernl - manages agent processes, scheduling, and task lifecycle
|
|
12
|
+
* The kernl - manages agent processes, scheduling, and task lifecycle.
|
|
10
13
|
*
|
|
11
14
|
* Orchestrates agent execution, including guardrails, tool calls, session persistence, and
|
|
12
15
|
* tracing.
|
|
13
16
|
*/
|
|
14
17
|
export declare class Kernl extends KernlHooks<UnknownContext, AgentResponseType> {
|
|
15
18
|
private agents;
|
|
16
|
-
|
|
19
|
+
private models;
|
|
20
|
+
readonly storage: KernlStorage;
|
|
21
|
+
athreads: Map<string, Thread<any, any>>;
|
|
22
|
+
private initPromise;
|
|
23
|
+
readonly threads: RThreads;
|
|
24
|
+
constructor(options?: KernlOptions);
|
|
17
25
|
/**
|
|
18
26
|
* Registers a new agent with the kernl instance.
|
|
19
27
|
*/
|
|
@@ -29,16 +37,24 @@ export declare class Kernl extends KernlHooks<UnknownContext, AgentResponseType>
|
|
|
29
37
|
*/
|
|
30
38
|
schedule<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): Promise<ThreadExecuteResult<ResolvedAgentResponse<TResponse>>>;
|
|
31
39
|
/**
|
|
32
|
-
* (TMP) -
|
|
40
|
+
* (TMP) - won't make sense in async scheduling contexts
|
|
33
41
|
*
|
|
34
42
|
* Spawn a new thread - streaming execution
|
|
35
43
|
*/
|
|
36
44
|
spawnStream<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): AsyncIterable<ThreadStreamEvent>;
|
|
37
45
|
/**
|
|
38
|
-
* (TMP) -
|
|
46
|
+
* (TMP) - won't make sense with async scheduling contexts
|
|
39
47
|
*
|
|
40
48
|
* Schedule an existing thread - streaming execution
|
|
41
49
|
*/
|
|
42
50
|
scheduleStream<TContext, TResponse extends AgentResponseType>(thread: Thread<TContext, TResponse>): AsyncIterable<ThreadStreamEvent>;
|
|
51
|
+
/**
|
|
52
|
+
* Ensure the underlying storage backend has been initialized.
|
|
53
|
+
*
|
|
54
|
+
* This is called lazily on first use so that callers do not need to worry
|
|
55
|
+
* about calling storage.init() themselves. Safe and idempotent to call
|
|
56
|
+
* multiple times; concurrent calls share the same initialization promise.
|
|
57
|
+
*/
|
|
58
|
+
private ensureInitialized;
|
|
43
59
|
}
|
|
44
60
|
//# sourceMappingURL=kernl.d.ts.map
|
package/dist/kernl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernl.d.ts","sourceRoot":"","sources":["../src/kernl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kernl.d.ts","sourceRoot":"","sources":["../src/kernl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACtE,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,MAAM,CAAyC;IAEvD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAa;IAEpD,OAAO,CAAC,WAAW,CAA8B;IAGjD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAEf,OAAO,GAAE,YAAiB;IAOtC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAa5B;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EACvD,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IAUjE;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EAC1D,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IAUjE;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EAC9D,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,aAAa,CAAC,iBAAiB,CAAC;IAUnC;;;;OAIG;IACI,cAAc,CAAC,QAAQ,EAAE,SAAS,SAAS,iBAAiB,EACjE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,aAAa,CAAC,iBAAiB,CAAC;IAUnC;;;;;;OAMG;YACW,iBAAiB;CAWhC"}
|