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.
Files changed (267) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-check-types.log +4 -0
  3. package/CHANGELOG.md +138 -0
  4. package/LICENSE +1 -1
  5. package/dist/agent/__tests__/concurrency.test.d.ts +2 -0
  6. package/dist/agent/__tests__/concurrency.test.d.ts.map +1 -0
  7. package/dist/agent/__tests__/concurrency.test.js +152 -0
  8. package/dist/agent/__tests__/run.test.d.ts +2 -0
  9. package/dist/agent/__tests__/run.test.d.ts.map +1 -0
  10. package/dist/agent/__tests__/run.test.js +357 -0
  11. package/dist/agent/index.d.ts +1 -0
  12. package/dist/agent/index.d.ts.map +1 -0
  13. package/dist/agent.d.ts +32 -9
  14. package/dist/agent.d.ts.map +1 -1
  15. package/dist/agent.js +101 -14
  16. package/dist/api/__tests__/cursor-page.test.d.ts +2 -0
  17. package/dist/api/__tests__/cursor-page.test.d.ts.map +1 -0
  18. package/dist/api/__tests__/cursor-page.test.js +414 -0
  19. package/dist/api/__tests__/offset-page.test.d.ts +2 -0
  20. package/dist/api/__tests__/offset-page.test.d.ts.map +1 -0
  21. package/dist/api/__tests__/offset-page.test.js +510 -0
  22. package/dist/api/__tests__/threads.test.d.ts +2 -0
  23. package/dist/api/__tests__/threads.test.d.ts.map +1 -0
  24. package/dist/api/__tests__/threads.test.js +338 -0
  25. package/dist/api/models/index.d.ts +2 -0
  26. package/dist/api/models/index.d.ts.map +1 -0
  27. package/dist/api/models/thread.d.ts +120 -0
  28. package/dist/api/models/thread.d.ts.map +1 -0
  29. package/dist/api/pagination/base.d.ts +48 -0
  30. package/dist/api/pagination/base.d.ts.map +1 -0
  31. package/dist/api/pagination/base.js +45 -0
  32. package/dist/api/pagination/cursor.d.ts +44 -0
  33. package/dist/api/pagination/cursor.d.ts.map +1 -0
  34. package/dist/api/pagination/cursor.js +52 -0
  35. package/dist/api/pagination/offset.d.ts +42 -0
  36. package/dist/api/pagination/offset.d.ts.map +1 -0
  37. package/dist/api/pagination/offset.js +55 -0
  38. package/dist/api/resources/threads/events.d.ts +21 -0
  39. package/dist/api/resources/threads/events.d.ts.map +1 -0
  40. package/dist/api/resources/threads/events.js +24 -0
  41. package/dist/api/resources/threads/index.d.ts +4 -0
  42. package/dist/api/resources/threads/index.d.ts.map +1 -0
  43. package/dist/api/resources/threads/index.js +2 -0
  44. package/dist/api/resources/threads/threads.d.ts +57 -0
  45. package/dist/api/resources/threads/threads.d.ts.map +1 -0
  46. package/dist/api/resources/threads/threads.js +199 -0
  47. package/dist/api/resources/threads/types.d.ts +123 -0
  48. package/dist/api/resources/threads/types.d.ts.map +1 -0
  49. package/dist/api/resources/threads/utils.d.ts +18 -0
  50. package/dist/api/resources/threads/utils.d.ts.map +1 -0
  51. package/dist/api/resources/threads/utils.js +78 -0
  52. package/dist/context.d.ts +5 -1
  53. package/dist/context.d.ts.map +1 -1
  54. package/dist/context.js +6 -1
  55. package/dist/index.d.ts +9 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +7 -0
  58. package/dist/internal.d.ts +4 -0
  59. package/dist/internal.d.ts.map +1 -0
  60. package/dist/internal.js +2 -0
  61. package/dist/kernl/index.d.ts +3 -0
  62. package/dist/kernl/index.d.ts.map +1 -0
  63. package/dist/kernl/index.js +2 -0
  64. package/dist/kernl/kernl.d.ts +64 -0
  65. package/dist/kernl/kernl.d.ts.map +1 -0
  66. package/dist/kernl/kernl.js +116 -0
  67. package/dist/kernl/threads.d.ts +110 -0
  68. package/dist/kernl/threads.d.ts.map +1 -0
  69. package/dist/kernl/threads.js +126 -0
  70. package/dist/kernl.d.ts +22 -6
  71. package/dist/kernl.d.ts.map +1 -1
  72. package/dist/kernl.js +73 -10
  73. package/dist/lib/env.d.ts +3 -3
  74. package/dist/lib/env.js +1 -1
  75. package/dist/mcp/__tests__/integration.test.js +8 -8
  76. package/dist/mcp/__tests__/utils.test.js +6 -6
  77. package/dist/mcp/http.d.ts +1 -1
  78. package/dist/mcp/http.d.ts.map +1 -1
  79. package/dist/mcp/http.js +9 -9
  80. package/dist/mcp/sse.d.ts +1 -1
  81. package/dist/mcp/sse.d.ts.map +1 -1
  82. package/dist/mcp/sse.js +7 -7
  83. package/dist/mcp/utils.d.ts +1 -1
  84. package/dist/mcp/utils.d.ts.map +1 -1
  85. package/dist/mcp/utils.js +4 -5
  86. package/dist/storage/__tests__/in-memory.test.d.ts +2 -0
  87. package/dist/storage/__tests__/in-memory.test.d.ts.map +1 -0
  88. package/dist/storage/__tests__/in-memory.test.js +455 -0
  89. package/dist/storage/base.d.ts +64 -0
  90. package/dist/storage/base.d.ts.map +1 -0
  91. package/dist/storage/base.js +4 -0
  92. package/dist/storage/in-memory.d.ts +62 -0
  93. package/dist/storage/in-memory.d.ts.map +1 -0
  94. package/dist/storage/in-memory.js +283 -0
  95. package/dist/storage/index.d.ts +10 -0
  96. package/dist/storage/index.d.ts.map +1 -0
  97. package/dist/storage/index.js +7 -0
  98. package/dist/storage/thread.d.ts +123 -0
  99. package/dist/storage/thread.d.ts.map +1 -0
  100. package/dist/storage/thread.js +4 -0
  101. package/dist/task.d.ts +5 -3
  102. package/dist/task.d.ts.map +1 -1
  103. package/dist/task.js +10 -8
  104. package/dist/thread/__tests__/fixtures/mock-model.d.ts +1 -2
  105. package/dist/thread/__tests__/fixtures/mock-model.d.ts.map +1 -1
  106. package/dist/thread/__tests__/integration.test.js +6 -6
  107. package/dist/thread/__tests__/namespace.test.d.ts +2 -0
  108. package/dist/thread/__tests__/namespace.test.d.ts.map +1 -0
  109. package/dist/thread/__tests__/namespace.test.js +131 -0
  110. package/dist/thread/__tests__/thread-persistence.test.d.ts +2 -0
  111. package/dist/thread/__tests__/thread-persistence.test.d.ts.map +1 -0
  112. package/dist/thread/__tests__/thread-persistence.test.js +351 -0
  113. package/dist/thread/__tests__/thread.test.js +49 -51
  114. package/dist/thread/thread.d.ts +70 -18
  115. package/dist/thread/thread.d.ts.map +1 -1
  116. package/dist/thread/thread.js +211 -73
  117. package/dist/thread/utils.d.ts +36 -8
  118. package/dist/thread/utils.d.ts.map +1 -1
  119. package/dist/thread/utils.js +52 -8
  120. package/dist/tool/__tests__/fixtures.js +1 -1
  121. package/dist/tool/__tests__/toolkit.test.js +15 -12
  122. package/dist/tool/tool.js +3 -3
  123. package/dist/types/kernl.d.ts +42 -0
  124. package/dist/types/kernl.d.ts.map +1 -0
  125. package/dist/types/thread.d.ts +108 -22
  126. package/dist/types/thread.d.ts.map +1 -1
  127. package/dist/types/thread.js +12 -0
  128. package/package.json +11 -7
  129. package/src/agent/__tests__/concurrency.test.ts +194 -0
  130. package/src/agent/__tests__/run.test.ts +441 -0
  131. package/src/agent/index.ts +0 -0
  132. package/src/agent.ts +139 -24
  133. package/src/api/__tests__/cursor-page.test.ts +512 -0
  134. package/src/api/__tests__/offset-page.test.ts +624 -0
  135. package/src/api/__tests__/threads.test.ts +415 -0
  136. package/src/api/models/index.ts +6 -0
  137. package/src/api/models/thread.ts +138 -0
  138. package/src/api/pagination/base.ts +79 -0
  139. package/src/api/pagination/cursor.ts +86 -0
  140. package/src/api/pagination/offset.ts +89 -0
  141. package/src/api/resources/threads/events.ts +26 -0
  142. package/src/api/resources/threads/index.ts +9 -0
  143. package/src/api/resources/threads/threads.ts +256 -0
  144. package/src/api/resources/threads/types.ts +143 -0
  145. package/src/api/resources/threads/utils.ts +104 -0
  146. package/src/context.ts +10 -1
  147. package/src/index.ts +49 -1
  148. package/src/internal.ts +15 -0
  149. package/src/kernl.ts +86 -17
  150. package/src/mcp/__tests__/integration.test.ts +8 -9
  151. package/src/mcp/__tests__/utils.test.ts +6 -6
  152. package/src/mcp/http.ts +9 -9
  153. package/src/mcp/sse.ts +7 -7
  154. package/src/mcp/utils.ts +6 -5
  155. package/src/storage/__tests__/in-memory.test.ts +534 -0
  156. package/src/storage/base.ts +77 -0
  157. package/src/storage/in-memory.ts +372 -0
  158. package/src/storage/index.ts +21 -0
  159. package/src/storage/thread.ts +141 -0
  160. package/src/task.ts +12 -10
  161. package/src/thread/__tests__/fixtures/mock-model.ts +2 -4
  162. package/src/thread/__tests__/integration.test.ts +13 -12
  163. package/src/thread/__tests__/namespace.test.ts +158 -0
  164. package/src/thread/__tests__/thread-persistence.test.ts +367 -0
  165. package/src/thread/__tests__/thread.test.ts +52 -54
  166. package/src/thread/thread.ts +247 -96
  167. package/src/thread/utils.ts +76 -13
  168. package/src/tool/__tests__/fixtures.ts +1 -1
  169. package/src/tool/__tests__/toolkit.test.ts +15 -12
  170. package/src/tool/tool.ts +3 -3
  171. package/src/types/kernl.ts +51 -0
  172. package/src/types/thread.ts +139 -25
  173. package/vitest.config.ts +1 -0
  174. package/dist/env.d.ts +0 -45
  175. package/dist/env.d.ts.map +0 -1
  176. package/dist/env.js +0 -31
  177. package/dist/error.d.ts +0 -1
  178. package/dist/error.d.ts.map +0 -1
  179. package/dist/kernel.d.ts +0 -7
  180. package/dist/kernel.d.ts.map +0 -1
  181. package/dist/kernel.js +0 -7
  182. package/dist/lib/serde/__tests__/codec.test.d.ts +0 -2
  183. package/dist/lib/serde/__tests__/codec.test.d.ts.map +0 -1
  184. package/dist/lib/serde/__tests__/codec.test.js +0 -75
  185. package/dist/lib/serde/codec.d.ts +0 -12
  186. package/dist/lib/serde/codec.d.ts.map +0 -1
  187. package/dist/lib/serde/codec.js +0 -54
  188. package/dist/lib/serde/thread.d.ts +0 -1
  189. package/dist/lib/serde/thread.d.ts.map +0 -1
  190. package/dist/lib/serde/thread.js +0 -172
  191. package/dist/lib/serde/tool.d.ts +0 -36
  192. package/dist/lib/serde/tool.d.ts.map +0 -1
  193. package/dist/lib/utils.d.ts +0 -19
  194. package/dist/lib/utils.d.ts.map +0 -1
  195. package/dist/lib/utils.js +0 -41
  196. package/dist/logger.d.ts +0 -36
  197. package/dist/logger.d.ts.map +0 -1
  198. package/dist/logger.js +0 -43
  199. package/dist/mcp/__tests__/fixtures/echo-server.d.ts +0 -3
  200. package/dist/mcp/__tests__/fixtures/echo-server.d.ts.map +0 -1
  201. package/dist/mcp/__tests__/fixtures/echo-server.js +0 -92
  202. package/dist/mcp/__tests__/fixtures/math-server.d.ts +0 -3
  203. package/dist/mcp/__tests__/fixtures/math-server.d.ts.map +0 -1
  204. package/dist/mcp/__tests__/fixtures/math-server.js +0 -98
  205. package/dist/mcp/__tests__/fixtures/test-server.d.ts +0 -3
  206. package/dist/mcp/__tests__/fixtures/test-server.d.ts.map +0 -1
  207. package/dist/mcp/__tests__/fixtures/test-server.js +0 -163
  208. package/dist/mcp/__tests__/test-utils.d.ts +0 -17
  209. package/dist/mcp/__tests__/test-utils.d.ts.map +0 -1
  210. package/dist/mcp/__tests__/test-utils.js +0 -42
  211. package/dist/mcp/node.d.ts +0 -60
  212. package/dist/mcp/node.d.ts.map +0 -1
  213. package/dist/mcp/node.js +0 -297
  214. package/dist/model.d.ts +0 -175
  215. package/dist/model.d.ts.map +0 -1
  216. package/dist/providers/ai.d.ts +0 -1
  217. package/dist/providers/ai.d.ts.map +0 -1
  218. package/dist/providers/ai.js +0 -1
  219. package/dist/providers/default.d.ts +0 -16
  220. package/dist/providers/default.d.ts.map +0 -1
  221. package/dist/providers/default.js +0 -17
  222. package/dist/providers/registry.d.ts +0 -1
  223. package/dist/providers/registry.d.ts.map +0 -1
  224. package/dist/providers/registry.js +0 -1
  225. package/dist/sched/scheduler.d.ts +0 -20
  226. package/dist/sched/scheduler.d.ts.map +0 -1
  227. package/dist/sched/task.d.ts +0 -92
  228. package/dist/sched/task.d.ts.map +0 -1
  229. package/dist/sched/task.js +0 -102
  230. package/dist/serde/__tests__/codec.test.d.ts +0 -2
  231. package/dist/serde/__tests__/codec.test.d.ts.map +0 -1
  232. package/dist/serde/__tests__/codec.test.js +0 -75
  233. package/dist/serde/codec.d.ts +0 -12
  234. package/dist/serde/codec.d.ts.map +0 -1
  235. package/dist/serde/codec.js +0 -54
  236. package/dist/serde/json.d.ts +0 -8
  237. package/dist/serde/json.d.ts.map +0 -1
  238. package/dist/serde/json.js +0 -13
  239. package/dist/serde/thread.d.ts +0 -687
  240. package/dist/serde/thread.d.ts.map +0 -1
  241. package/dist/serde/thread.js +0 -158
  242. package/dist/serde/tool.d.ts +0 -36
  243. package/dist/serde/tool.d.ts.map +0 -1
  244. package/dist/session.d.ts +0 -1
  245. package/dist/session.d.ts.map +0 -1
  246. package/dist/session.js +0 -1
  247. package/dist/thread/__tests__/stream.test.d.ts +0 -2
  248. package/dist/thread/__tests__/stream.test.d.ts.map +0 -1
  249. package/dist/thread/__tests__/stream.test.js +0 -244
  250. package/dist/tool/mcp.d.ts +0 -75
  251. package/dist/tool/mcp.d.ts.map +0 -1
  252. package/dist/tool/mcp.js +0 -111
  253. package/dist/tools.d.ts +0 -362
  254. package/dist/tools.d.ts.map +0 -1
  255. package/dist/tools.js +0 -220
  256. package/dist/types/proto.d.ts +0 -1551
  257. package/dist/types/proto.d.ts.map +0 -1
  258. package/dist/types/proto.js +0 -531
  259. package/dist/usage.d.ts +0 -43
  260. package/dist/usage.d.ts.map +0 -1
  261. package/dist/usage.js +0 -61
  262. package/src/lib/serde/thread.ts +0 -188
  263. /package/dist/{error.js → agent/index.js} +0 -0
  264. /package/dist/{lib/serde/tool.js → api/models/index.js} +0 -0
  265. /package/dist/{model.js → api/models/thread.js} +0 -0
  266. /package/dist/{sched/scheduler.js → api/resources/threads/types.js} +0 -0
  267. /package/dist/{serde/tool.js → types/kernl.js} +0 -0
@@ -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>;
@@ -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"}
@@ -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
@@ -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
@@ -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,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=echo-server.d.ts.map
@@ -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,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=math-server.d.ts.map
@@ -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,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=test-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-server.d.ts","sourceRoot":"","sources":["../../../../src/mcp/__tests__/fixtures/test-server.ts"],"names":[],"mappings":""}