kernl 0.2.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-check-types.log +4 -0
- package/CHANGELOG.md +138 -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 +32 -9
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +101 -14
- 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/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- 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 +22 -6
- package/dist/kernl.d.ts.map +1 -1
- package/dist/kernl.js +73 -10
- package/dist/lib/env.d.ts +3 -3
- package/dist/lib/env.js +1 -1
- package/dist/mcp/__tests__/integration.test.js +8 -8
- package/dist/mcp/__tests__/utils.test.js +6 -6
- package/dist/mcp/http.d.ts +1 -1
- package/dist/mcp/http.d.ts.map +1 -1
- package/dist/mcp/http.js +9 -9
- package/dist/mcp/sse.d.ts +1 -1
- package/dist/mcp/sse.d.ts.map +1 -1
- package/dist/mcp/sse.js +7 -7
- package/dist/mcp/utils.d.ts +1 -1
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +4 -5
- 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 +5 -3
- 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 +6 -6
- 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 +49 -51
- package/dist/thread/thread.d.ts +70 -18
- package/dist/thread/thread.d.ts.map +1 -1
- package/dist/thread/thread.js +211 -73
- package/dist/thread/utils.d.ts +36 -8
- package/dist/thread/utils.d.ts.map +1 -1
- package/dist/thread/utils.js +52 -8
- package/dist/tool/__tests__/fixtures.js +1 -1
- package/dist/tool/__tests__/toolkit.test.js +15 -12
- package/dist/tool/tool.js +3 -3
- package/dist/types/kernl.d.ts +42 -0
- package/dist/types/kernl.d.ts.map +1 -0
- package/dist/types/thread.d.ts +108 -22
- package/dist/types/thread.d.ts.map +1 -1
- package/dist/types/thread.js +12 -0
- package/package.json +11 -7
- 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/lib/serde/thread.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { z } from "zod";
|
|
3
|
-
// import * as events from "../../types/thread";
|
|
4
|
-
// /**
|
|
5
|
-
// * Utilities and schemas for serializing the run-state so that it can be paused / resumed later.
|
|
6
|
-
// *
|
|
7
|
-
// * (TODO): should be able to define this as a codec for the ThreadState schema
|
|
8
|
-
// */
|
|
9
|
-
// /**
|
|
10
|
-
// * The schema version of the serialized run state. This is used to ensure that the serialized
|
|
11
|
-
// * run state is compatible with the current version of the SDK.
|
|
12
|
-
// * If anything in this schema changes, the version will have to be incremented.
|
|
13
|
-
// */
|
|
14
|
-
// export const CURRENT_SCHEMA_VERSION = "1.0" as const;
|
|
15
|
-
// const $schemaVersion = z.literal(CURRENT_SCHEMA_VERSION);
|
|
16
|
-
// const serializedAgentSchema = z.object({
|
|
17
|
-
// id: z.string(),
|
|
18
|
-
// name: z.string().optional(),
|
|
19
|
-
// });
|
|
20
|
-
// const serializedSpanBase = z.object({
|
|
21
|
-
// object: z.literal("trace.span"),
|
|
22
|
-
// id: z.string(),
|
|
23
|
-
// trace_id: z.string(),
|
|
24
|
-
// parent_id: z.string().nullable(),
|
|
25
|
-
// started_at: z.string().nullable(),
|
|
26
|
-
// ended_at: z.string().nullable(),
|
|
27
|
-
// error: z
|
|
28
|
-
// .object({
|
|
29
|
-
// message: z.string(),
|
|
30
|
-
// data: z.record(z.string(), z.any()).optional(),
|
|
31
|
-
// })
|
|
32
|
-
// .nullable(),
|
|
33
|
-
// span_data: z.record(z.string(), z.any()),
|
|
34
|
-
// });
|
|
35
|
-
// type SerializedSpanType = z.infer<typeof serializedSpanBase> & {
|
|
36
|
-
// previous_span?: SerializedSpanType;
|
|
37
|
-
// };
|
|
38
|
-
// const SerializedSpan: z.ZodType<SerializedSpanType> = serializedSpanBase.extend(
|
|
39
|
-
// {
|
|
40
|
-
// previous_span: z.lazy(() => SerializedSpan).optional(),
|
|
41
|
-
// },
|
|
42
|
-
// );
|
|
43
|
-
// const usageSchema = z.object({
|
|
44
|
-
// requests: z.number(),
|
|
45
|
-
// inputTokens: z.number(),
|
|
46
|
-
// outputTokens: z.number(),
|
|
47
|
-
// totalTokens: z.number(),
|
|
48
|
-
// });
|
|
49
|
-
// const modelResponseSchema = z.object({
|
|
50
|
-
// usage: usageSchema,
|
|
51
|
-
// events: z.array(events.ThreadEvent),
|
|
52
|
-
// responseId: z.string().optional(),
|
|
53
|
-
// providerData: z.record(z.string(), z.any()).optional(),
|
|
54
|
-
// });
|
|
55
|
-
// const itemSchema = z.discriminatedUnion("kind", [
|
|
56
|
-
// z.object({
|
|
57
|
-
// kind: z.literal("message"),
|
|
58
|
-
// rawItem: events.AssistantMessage,
|
|
59
|
-
// agent: serializedAgentSchema,
|
|
60
|
-
// }),
|
|
61
|
-
// z.object({
|
|
62
|
-
// kind: z.literal("tool-call"),
|
|
63
|
-
// // rawItem: events.ToolCall.or(events.HostedToolCall),
|
|
64
|
-
// rawItem: events.ToolCall,
|
|
65
|
-
// agent: serializedAgentSchema,
|
|
66
|
-
// }),
|
|
67
|
-
// z.object({
|
|
68
|
-
// kind: z.literal("tool-result"),
|
|
69
|
-
// rawItem: events.ToolResultEvent,
|
|
70
|
-
// agent: serializedAgentSchema,
|
|
71
|
-
// output: z.string(),
|
|
72
|
-
// }),
|
|
73
|
-
// z.object({
|
|
74
|
-
// kind: z.literal("reasoning"),
|
|
75
|
-
// rawItem: events.Reasoning,
|
|
76
|
-
// agent: serializedAgentSchema,
|
|
77
|
-
// }),
|
|
78
|
-
// ]);
|
|
79
|
-
// const serializedTraceSchema = z.object({
|
|
80
|
-
// object: z.literal("trace"),
|
|
81
|
-
// id: z.string(),
|
|
82
|
-
// workflow_name: z.string(),
|
|
83
|
-
// group_id: z.string().nullable(),
|
|
84
|
-
// metadata: z.record(z.string(), z.any()),
|
|
85
|
-
// });
|
|
86
|
-
// const serializedProcessedResponseSchema = z.object({
|
|
87
|
-
// newItems: z.array(itemSchema),
|
|
88
|
-
// toolsUsed: z.array(z.string()),
|
|
89
|
-
// functions: z.array(
|
|
90
|
-
// z.object({
|
|
91
|
-
// toolCall: z.any(),
|
|
92
|
-
// tool: z.any(),
|
|
93
|
-
// }),
|
|
94
|
-
// ),
|
|
95
|
-
// mcpApprovalRequests: z
|
|
96
|
-
// .array(
|
|
97
|
-
// z.object({
|
|
98
|
-
// requestItem: z.object({
|
|
99
|
-
// // protocol.HostedToolCallItem
|
|
100
|
-
// rawItem: z.object({
|
|
101
|
-
// type: z.literal("hosted_tool_call"),
|
|
102
|
-
// name: z.string(),
|
|
103
|
-
// arguments: z.string().optional(),
|
|
104
|
-
// status: z.string().optional(),
|
|
105
|
-
// output: z.string().optional(),
|
|
106
|
-
// // this always exists but marked as optional for early version compatibility; when releasing 1.0, we can remove the nullable and optional
|
|
107
|
-
// providerData: z.record(z.string(), z.any()).nullable().optional(),
|
|
108
|
-
// }),
|
|
109
|
-
// }),
|
|
110
|
-
// // HostedMCPTool
|
|
111
|
-
// mcpTool: z.object({
|
|
112
|
-
// type: z.literal("hosted_tool"),
|
|
113
|
-
// name: z.literal("hosted_mcp"),
|
|
114
|
-
// providerData: z.record(z.string(), z.any()),
|
|
115
|
-
// }),
|
|
116
|
-
// }),
|
|
117
|
-
// )
|
|
118
|
-
// .optional(),
|
|
119
|
-
// });
|
|
120
|
-
// const guardrailFunctionOutputSchema = z.object({
|
|
121
|
-
// tripwireTriggered: z.boolean(),
|
|
122
|
-
// outputInfo: z.any(),
|
|
123
|
-
// });
|
|
124
|
-
// const inputGuardrailResultSchema = z.object({
|
|
125
|
-
// guardrail: z.object({
|
|
126
|
-
// type: z.literal("input"),
|
|
127
|
-
// name: z.string(),
|
|
128
|
-
// }),
|
|
129
|
-
// output: guardrailFunctionOutputSchema,
|
|
130
|
-
// });
|
|
131
|
-
// const outputGuardrailResultSchema = z.object({
|
|
132
|
-
// guardrail: z.object({
|
|
133
|
-
// type: z.literal("output"),
|
|
134
|
-
// name: z.string(),
|
|
135
|
-
// }),
|
|
136
|
-
// agentOutput: z.any(),
|
|
137
|
-
// agent: serializedAgentSchema,
|
|
138
|
-
// output: guardrailFunctionOutputSchema,
|
|
139
|
-
// });
|
|
140
|
-
// // (TODO): define z.codec
|
|
141
|
-
// export const SerializedThread = z.object({
|
|
142
|
-
// $schemaVersion,
|
|
143
|
-
// currentTurn: z.number(),
|
|
144
|
-
// currentAgent: serializedAgentSchema, // (TODO): in our case we probably don't need to serialize the whole agent - an ID would suffice
|
|
145
|
-
// originalInput: z.string().or(z.array(events.ThreadEvent)),
|
|
146
|
-
// modelResponses: z.array(modelResponseSchema),
|
|
147
|
-
// context: z.object({
|
|
148
|
-
// usage: usageSchema, // (TODO): move to stats
|
|
149
|
-
// // (TODO): belongs elsewhere
|
|
150
|
-
// approvals: z.record(
|
|
151
|
-
// z.string(),
|
|
152
|
-
// z.object({
|
|
153
|
-
// approved: z.array(z.string()).or(z.boolean()),
|
|
154
|
-
// rejected: z.array(z.string()).or(z.boolean()),
|
|
155
|
-
// }),
|
|
156
|
-
// ),
|
|
157
|
-
// context: z.record(z.string(), z.any()),
|
|
158
|
-
// }),
|
|
159
|
-
// toolUseTracker: z.record(z.string(), z.array(z.string())),
|
|
160
|
-
// maxTurns: z.number(),
|
|
161
|
-
// currentAgentSpan: SerializedSpan.nullable().optional(),
|
|
162
|
-
// noActiveAgentRun: z.boolean(),
|
|
163
|
-
// inputGuardrailResults: z.array(inputGuardrailResultSchema),
|
|
164
|
-
// outputGuardrailResults: z.array(outputGuardrailResultSchema),
|
|
165
|
-
// // (TODO): currentStep: nextStepSchema.optional(),
|
|
166
|
-
// lastModelResponse: modelResponseSchema.optional(),
|
|
167
|
-
// generatedItems: z.array(itemSchema),
|
|
168
|
-
// lastProcessedResponse: serializedProcessedResponseSchema.optional(),
|
|
169
|
-
// currentTurnPersistedItemCount: z.number().int().min(0).optional(),
|
|
170
|
-
// trace: serializedTraceSchema.nullable(),
|
|
171
|
-
// });
|
|
172
|
-
// export type SerializedThread = z.infer<typeof SerializedThread>;
|
package/dist/lib/serde/tool.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { ToolInputParameters } from "../../tool/types";
|
|
2
|
-
/**
|
|
3
|
-
* Serialized function tool for model requests
|
|
4
|
-
*/
|
|
5
|
-
export type SerializedFunctionTool = {
|
|
6
|
-
/**
|
|
7
|
-
* The type of the tool.
|
|
8
|
-
*/
|
|
9
|
-
type: "function";
|
|
10
|
-
/**
|
|
11
|
-
* The name of the tool.
|
|
12
|
-
*/
|
|
13
|
-
name?: string;
|
|
14
|
-
/**
|
|
15
|
-
* The description of the tool that helps the model to understand when to use the tool
|
|
16
|
-
*/
|
|
17
|
-
description: string;
|
|
18
|
-
/**
|
|
19
|
-
* A JSON schema describing the parameters of the tool.
|
|
20
|
-
*/
|
|
21
|
-
parameters: ToolInputParameters;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Serialized hosted tool for model requests
|
|
25
|
-
*/
|
|
26
|
-
export type SerializedHostedTool = {
|
|
27
|
-
type: "hosted-tool";
|
|
28
|
-
id: string;
|
|
29
|
-
name?: string;
|
|
30
|
-
providerData?: Record<string, any>;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Union of all serialized tool types
|
|
34
|
-
*/
|
|
35
|
-
export type SerializedTool = SerializedFunctionTool | SerializedHostedTool;
|
|
36
|
-
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/lib/serde/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,oBAAoB,CAAC"}
|
package/dist/lib/utils.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Async version of Array.filter() that works with async predicates.
|
|
3
|
-
* Runs all predicates in parallel and filters based on results.
|
|
4
|
-
*/
|
|
5
|
-
export declare function filter<T>(array: T[], predicate: (item: T) => Promise<boolean>): Promise<T[]>;
|
|
6
|
-
/**
|
|
7
|
-
* Generate an ISO 8601 timestamp of the current time.
|
|
8
|
-
* @returns An ISO 8601 timestamp.
|
|
9
|
-
*/
|
|
10
|
-
export declare function timeISO(): string;
|
|
11
|
-
/**
|
|
12
|
-
* Generate a random ID with the specified number of bytes.
|
|
13
|
-
* @param bytes - Number of bytes to generate (e.g., 8 for 64-bit, 16 for 128-bit)
|
|
14
|
-
* @returns A hex string representation of the random bytes
|
|
15
|
-
*/
|
|
16
|
-
export declare function randomID(bytes?: number): string;
|
|
17
|
-
export type SafeExecuteResult<T> = [Error | unknown | null, T | null];
|
|
18
|
-
export declare function safeExecute<T>(fn: () => T): Promise<SafeExecuteResult<T>>;
|
|
19
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/lib/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GACvC,OAAO,CAAC,CAAC,EAAE,CAAC,CAGd;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,CAanD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AAEtE,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,CAAC,GACV,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAM/B"}
|
package/dist/lib/utils.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Async version of Array.filter() that works with async predicates.
|
|
3
|
-
* Runs all predicates in parallel and filters based on results.
|
|
4
|
-
*/
|
|
5
|
-
export async function filter(array, predicate) {
|
|
6
|
-
const results = await Promise.all(array.map(predicate));
|
|
7
|
-
return array.filter((_, index) => results[index]);
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Generate an ISO 8601 timestamp of the current time.
|
|
11
|
-
* @returns An ISO 8601 timestamp.
|
|
12
|
-
*/
|
|
13
|
-
export function timeISO() {
|
|
14
|
-
return new Date().toISOString();
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Generate a random ID with the specified number of bytes.
|
|
18
|
-
* @param bytes - Number of bytes to generate (e.g., 8 for 64-bit, 16 for 128-bit)
|
|
19
|
-
* @returns A hex string representation of the random bytes
|
|
20
|
-
*/
|
|
21
|
-
export function randomID(bytes = 12) {
|
|
22
|
-
const byteArray = new Uint8Array(bytes);
|
|
23
|
-
if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
|
24
|
-
crypto.getRandomValues(byteArray);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
// Fallback for environments without crypto.getRandomValues
|
|
28
|
-
for (let i = 0; i < bytes; i++) {
|
|
29
|
-
byteArray[i] = Math.floor(Math.random() * 256);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return Array.from(byteArray, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
33
|
-
}
|
|
34
|
-
export async function safeExecute(fn) {
|
|
35
|
-
try {
|
|
36
|
-
return [null, await fn()];
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
return [error, null];
|
|
40
|
-
}
|
|
41
|
-
}
|
package/dist/logger.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A logger instance with namespace support and sensitive data flags.
|
|
3
|
-
*/
|
|
4
|
-
export type Logger = {
|
|
5
|
-
/**
|
|
6
|
-
* The namespace used for the logger.
|
|
7
|
-
*/
|
|
8
|
-
namespace: string;
|
|
9
|
-
trace: (message: any, ...args: any[]) => void;
|
|
10
|
-
debug: (message: any, ...args: any[]) => void;
|
|
11
|
-
info: (message: any, ...args: any[]) => void;
|
|
12
|
-
warn: (message: any, ...args: any[]) => void;
|
|
13
|
-
error: (message: any, ...args: any[]) => void;
|
|
14
|
-
fatal: (message: any, ...args: any[]) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Whether to log model data.
|
|
17
|
-
*/
|
|
18
|
-
dontLogModelData: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Whether to log tool data.
|
|
21
|
-
*/
|
|
22
|
-
dontLogToolData: boolean;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Get a logger for a given namespace.
|
|
26
|
-
*
|
|
27
|
-
* @param namespace - the namespace to use for the logger (e.g., 'kernl:core', 'kernl:agent').
|
|
28
|
-
* @returns A logger object with all pino log levels and sensitive data flags.
|
|
29
|
-
*/
|
|
30
|
-
export declare function getLogger(namespace?: string): Logger;
|
|
31
|
-
/**
|
|
32
|
-
* Default logger instance for the core library.
|
|
33
|
-
*/
|
|
34
|
-
export declare const logger: Logger;
|
|
35
|
-
export default logger;
|
|
36
|
-
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9C,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9C,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9C,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,GAAE,MAAgB,GAAG,MAAM,CAc7D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAA0B,CAAC;AAE9C,eAAe,MAAM,CAAC"}
|
package/dist/logger.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import pino from "pino";
|
|
2
|
-
import { env } from "./env";
|
|
3
|
-
/**
|
|
4
|
-
* By default we don't log LLM inputs/outputs, to prevent exposing sensitive data.
|
|
5
|
-
* Set KERNL_LOG_MODEL_DATA=true to enable.
|
|
6
|
-
*/
|
|
7
|
-
const dontLogModelData = !env.KERNL_LOG_MODEL_DATA;
|
|
8
|
-
/**
|
|
9
|
-
* By default we don't log tool inputs/outputs, to prevent exposing sensitive data.
|
|
10
|
-
* Set KERNL_LOG_TOOL_DATA=true to enable.
|
|
11
|
-
*/
|
|
12
|
-
const dontLogToolData = !env.KERNL_LOG_TOOL_DATA;
|
|
13
|
-
/**
|
|
14
|
-
* Base pino logger instance
|
|
15
|
-
*/
|
|
16
|
-
const base = pino({
|
|
17
|
-
level: env.LOG_LEVEL,
|
|
18
|
-
});
|
|
19
|
-
/**
|
|
20
|
-
* Get a logger for a given namespace.
|
|
21
|
-
*
|
|
22
|
-
* @param namespace - the namespace to use for the logger (e.g., 'kernl:core', 'kernl:agent').
|
|
23
|
-
* @returns A logger object with all pino log levels and sensitive data flags.
|
|
24
|
-
*/
|
|
25
|
-
export function getLogger(namespace = "kernl") {
|
|
26
|
-
const child = base.child({ namespace });
|
|
27
|
-
return {
|
|
28
|
-
namespace,
|
|
29
|
-
trace: child.trace.bind(child),
|
|
30
|
-
debug: child.debug.bind(child),
|
|
31
|
-
info: child.info.bind(child),
|
|
32
|
-
warn: child.warn.bind(child),
|
|
33
|
-
error: child.error.bind(child),
|
|
34
|
-
fatal: child.fatal.bind(child),
|
|
35
|
-
dontLogModelData,
|
|
36
|
-
dontLogToolData,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Default logger instance for the core library.
|
|
41
|
-
*/
|
|
42
|
-
export const logger = getLogger("kernl:core");
|
|
43
|
-
export default logger;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"echo-server.d.ts","sourceRoot":"","sources":["../../../../src/mcp/__tests__/fixtures/echo-server.ts"],"names":[],"mappings":""}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Simple echo/string manipulation server for testing MCP stdio transport.
|
|
4
|
-
*
|
|
5
|
-
* Provides deterministic string transformations.
|
|
6
|
-
*/
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
const server = new Server({
|
|
10
|
-
name: "echo-server",
|
|
11
|
-
version: "1.0.0",
|
|
12
|
-
}, {
|
|
13
|
-
capabilities: {
|
|
14
|
-
tools: {},
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
// List available tools
|
|
18
|
-
server.setRequestHandler("tools/list", async () => ({
|
|
19
|
-
tools: [
|
|
20
|
-
{
|
|
21
|
-
name: "echo",
|
|
22
|
-
description: "Echo back the input text",
|
|
23
|
-
inputSchema: {
|
|
24
|
-
type: "object",
|
|
25
|
-
properties: {
|
|
26
|
-
text: { type: "string", description: "Text to echo" },
|
|
27
|
-
},
|
|
28
|
-
required: ["text"],
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "uppercase",
|
|
33
|
-
description: "Convert text to uppercase",
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: "object",
|
|
36
|
-
properties: {
|
|
37
|
-
text: { type: "string", description: "Text to convert" },
|
|
38
|
-
},
|
|
39
|
-
required: ["text"],
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "reverse",
|
|
44
|
-
description: "Reverse the text",
|
|
45
|
-
inputSchema: {
|
|
46
|
-
type: "object",
|
|
47
|
-
properties: {
|
|
48
|
-
text: { type: "string", description: "Text to reverse" },
|
|
49
|
-
},
|
|
50
|
-
required: ["text"],
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
}));
|
|
55
|
-
// Handle tool calls
|
|
56
|
-
server.setRequestHandler("tools/call", async (request) => {
|
|
57
|
-
const { name, arguments: args } = request.params;
|
|
58
|
-
switch (name) {
|
|
59
|
-
case "echo":
|
|
60
|
-
return {
|
|
61
|
-
content: [
|
|
62
|
-
{
|
|
63
|
-
type: "text",
|
|
64
|
-
text: args.text,
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
};
|
|
68
|
-
case "uppercase":
|
|
69
|
-
return {
|
|
70
|
-
content: [
|
|
71
|
-
{
|
|
72
|
-
type: "text",
|
|
73
|
-
text: args.text.toUpperCase(),
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
};
|
|
77
|
-
case "reverse":
|
|
78
|
-
return {
|
|
79
|
-
content: [
|
|
80
|
-
{
|
|
81
|
-
type: "text",
|
|
82
|
-
text: args.text.split("").reverse().join(""),
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
};
|
|
86
|
-
default:
|
|
87
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
// Start the server
|
|
91
|
-
const transport = new StdioServerTransport();
|
|
92
|
-
await server.connect(transport);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"math-server.d.ts","sourceRoot":"","sources":["../../../../src/mcp/__tests__/fixtures/math-server.ts"],"names":[],"mappings":""}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Simple deterministic math server for testing MCP stdio transport.
|
|
4
|
-
*
|
|
5
|
-
* Provides basic arithmetic operations with predictable results.
|
|
6
|
-
*/
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
const server = new Server({
|
|
10
|
-
name: "math-server",
|
|
11
|
-
version: "1.0.0",
|
|
12
|
-
}, {
|
|
13
|
-
capabilities: {
|
|
14
|
-
tools: {},
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
// List available tools
|
|
18
|
-
server.setRequestHandler("tools/list", async () => ({
|
|
19
|
-
tools: [
|
|
20
|
-
{
|
|
21
|
-
name: "add",
|
|
22
|
-
description: "Add two numbers",
|
|
23
|
-
inputSchema: {
|
|
24
|
-
type: "object",
|
|
25
|
-
properties: {
|
|
26
|
-
a: { type: "number", description: "First number" },
|
|
27
|
-
b: { type: "number", description: "Second number" },
|
|
28
|
-
},
|
|
29
|
-
required: ["a", "b"],
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "multiply",
|
|
34
|
-
description: "Multiply two numbers",
|
|
35
|
-
inputSchema: {
|
|
36
|
-
type: "object",
|
|
37
|
-
properties: {
|
|
38
|
-
a: { type: "number", description: "First number" },
|
|
39
|
-
b: { type: "number", description: "Second number" },
|
|
40
|
-
},
|
|
41
|
-
required: ["a", "b"],
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "divide",
|
|
46
|
-
description: "Divide two numbers",
|
|
47
|
-
inputSchema: {
|
|
48
|
-
type: "object",
|
|
49
|
-
properties: {
|
|
50
|
-
a: { type: "number", description: "Numerator" },
|
|
51
|
-
b: { type: "number", description: "Denominator" },
|
|
52
|
-
},
|
|
53
|
-
required: ["a", "b"],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
}));
|
|
58
|
-
// Handle tool calls
|
|
59
|
-
server.setRequestHandler("tools/call", async (request) => {
|
|
60
|
-
const { name, arguments: args } = request.params;
|
|
61
|
-
switch (name) {
|
|
62
|
-
case "add":
|
|
63
|
-
return {
|
|
64
|
-
content: [
|
|
65
|
-
{
|
|
66
|
-
type: "text",
|
|
67
|
-
text: String(args.a + args.b),
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
};
|
|
71
|
-
case "multiply":
|
|
72
|
-
return {
|
|
73
|
-
content: [
|
|
74
|
-
{
|
|
75
|
-
type: "text",
|
|
76
|
-
text: String(args.a * args.b),
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
};
|
|
80
|
-
case "divide":
|
|
81
|
-
if (args.b === 0) {
|
|
82
|
-
throw new Error("Division by zero");
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
content: [
|
|
86
|
-
{
|
|
87
|
-
type: "text",
|
|
88
|
-
text: String(args.a / args.b),
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
};
|
|
92
|
-
default:
|
|
93
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
// Start the server
|
|
97
|
-
const transport = new StdioServerTransport();
|
|
98
|
-
await server.connect(transport);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-server.d.ts","sourceRoot":"","sources":["../../../../src/mcp/__tests__/fixtures/test-server.ts"],"names":[],"mappings":""}
|