kern-ai 0.15.0 → 0.17.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 (96) hide show
  1. package/README.md +20 -12
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +134 -14
  4. package/dist/app.js.map +1 -1
  5. package/dist/config.d.ts +4 -5
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +43 -7
  8. package/dist/config.js.map +1 -1
  9. package/dist/context.d.ts +13 -2
  10. package/dist/context.d.ts.map +1 -1
  11. package/dist/context.js +66 -27
  12. package/dist/context.js.map +1 -1
  13. package/dist/daemon.d.ts.map +1 -1
  14. package/dist/daemon.js +9 -0
  15. package/dist/daemon.js.map +1 -1
  16. package/dist/index.js +124 -11
  17. package/dist/index.js.map +1 -1
  18. package/dist/init.js +1 -2
  19. package/dist/init.js.map +1 -1
  20. package/dist/install.d.ts +7 -0
  21. package/dist/install.d.ts.map +1 -0
  22. package/dist/install.js +268 -0
  23. package/dist/install.js.map +1 -0
  24. package/dist/interfaces/telegram.js +3 -3
  25. package/dist/interfaces/telegram.js.map +1 -1
  26. package/dist/kernel.d.ts.map +1 -1
  27. package/dist/kernel.js +4 -3
  28. package/dist/kernel.js.map +1 -1
  29. package/dist/log.d.ts +5 -0
  30. package/dist/log.d.ts.map +1 -1
  31. package/dist/log.js +22 -2
  32. package/dist/log.js.map +1 -1
  33. package/dist/memory.d.ts.map +1 -1
  34. package/dist/memory.js +50 -1
  35. package/dist/memory.js.map +1 -1
  36. package/dist/notes.d.ts +1 -0
  37. package/dist/notes.d.ts.map +1 -1
  38. package/dist/notes.js +7 -7
  39. package/dist/notes.js.map +1 -1
  40. package/dist/queue.js +1 -1
  41. package/dist/queue.js.map +1 -1
  42. package/dist/recall.js +3 -3
  43. package/dist/recall.js.map +1 -1
  44. package/dist/runtime.d.ts +10 -0
  45. package/dist/runtime.d.ts.map +1 -1
  46. package/dist/runtime.js +40 -10
  47. package/dist/runtime.js.map +1 -1
  48. package/dist/segments.d.ts +96 -0
  49. package/dist/segments.d.ts.map +1 -0
  50. package/dist/segments.js +707 -0
  51. package/dist/segments.js.map +1 -0
  52. package/dist/server.d.ts +16 -0
  53. package/dist/server.d.ts.map +1 -1
  54. package/dist/server.js +128 -0
  55. package/dist/server.js.map +1 -1
  56. package/dist/status.d.ts.map +1 -1
  57. package/dist/status.js +51 -19
  58. package/dist/status.js.map +1 -1
  59. package/dist/tools/bash.d.ts.map +1 -1
  60. package/dist/tools/bash.js +3 -15
  61. package/dist/tools/bash.js.map +1 -1
  62. package/dist/tools/grep.d.ts.map +1 -1
  63. package/dist/tools/grep.js +16 -15
  64. package/dist/tools/grep.js.map +1 -1
  65. package/dist/tools/index.d.ts +59 -3
  66. package/dist/tools/index.d.ts.map +1 -1
  67. package/dist/tools/index.js +4 -1
  68. package/dist/tools/index.js.map +1 -1
  69. package/dist/tools/kern.d.ts +10 -1
  70. package/dist/tools/kern.d.ts.map +1 -1
  71. package/dist/tools/kern.js +70 -5
  72. package/dist/tools/kern.js.map +1 -1
  73. package/dist/tools/pwsh.d.ts +5 -0
  74. package/dist/tools/pwsh.d.ts.map +1 -0
  75. package/dist/tools/pwsh.js +33 -0
  76. package/dist/tools/pwsh.js.map +1 -0
  77. package/dist/tools/recall.d.ts +1 -1
  78. package/dist/tools/shell.d.ts +20 -0
  79. package/dist/tools/shell.d.ts.map +1 -0
  80. package/dist/tools/shell.js +69 -0
  81. package/dist/tools/shell.js.map +1 -0
  82. package/dist/web-daemon.d.ts.map +1 -1
  83. package/dist/web-daemon.js +9 -3
  84. package/dist/web-daemon.js.map +1 -1
  85. package/dist/web.d.ts +2 -0
  86. package/dist/web.d.ts.map +1 -1
  87. package/dist/web.js +7 -2
  88. package/dist/web.js.map +1 -1
  89. package/docs/commands.md +50 -8
  90. package/docs/config.md +7 -5
  91. package/docs/interfaces.md +14 -0
  92. package/docs/memory.md +61 -1
  93. package/docs/tools.md +19 -3
  94. package/package.json +1 -1
  95. package/templates/KERN.md +2 -0
  96. package/templates/web/index.html +865 -15
package/README.md CHANGED
@@ -11,7 +11,7 @@ Most agent frameworks give you sessions that reset, memory that's a black box, o
11
11
  - **One brain** — a single continuous session across every interface. Message from Telegram, pick up in the terminal, continue in the browser. The agent always knows what happened.
12
12
  - **Context-aware** — the agent knows who's talking and where. It sees the user, the channel, and the interface — so it can adjust tone, filter context, and keep track of different conversations within the same session.
13
13
  - **A folder is the agent** — AGENTS.md defines behavior, IDENTITY.md defines who it is, knowledge/ and notes/ are its memory. Everything is plain text, git-tracked, and inspectable.
14
- - **No infra** — no server, no database, no vector store. A folder, an API key, and `npm install -g kern-ai`.
14
+ - **No external infra** — no hosted server or managed database required. Runs locally with a folder, SQLite, an API key, and `npm install -g kern-ai`.
15
15
 
16
16
  kern pairs with [agent-kernel](https://github.com/oguzbilgic/agent-kernel) — the kernel defines how an agent remembers, kern runs it.
17
17
 
@@ -67,17 +67,19 @@ kern init <name> # create or configure an agent
67
67
  kern start [name|path] # start agents in background
68
68
  kern stop [name] # stop agents
69
69
  kern restart [name] # restart agents
70
+ kern install [name|--web] # install systemd services (auto-restart, boot persistence)
71
+ kern uninstall [name] # remove systemd services
70
72
  kern tui [name] # interactive chat
71
73
  kern web <start|stop|status|token> # web UI server
72
- kern logs [name] # tail agent logs
73
- kern list # show all agents
74
+ kern logs [name] # follow agent logs
75
+ kern list # show all agents and web status
74
76
  kern remove <name> # unregister an agent
75
77
  kern backup <name> # backup agent to .tar.gz
76
78
  kern restore <file> # restore agent from backup
77
- kern import opencode # import session from OpenCode
79
+ kern import opencode # import session from OpenCode
78
80
  ```
79
81
 
80
- Agents auto-register when you init, start, or run them. `kern list` shows every agent with its running state.
82
+ Agents auto-register when you init, start, or run them. `kern list` shows every agent and the web daemon with running state and mode (systemd/daemon).
81
83
 
82
84
  ### Web UI
83
85
 
@@ -131,14 +133,16 @@ Invite the bot to channels where it should listen.
131
133
 
132
134
  ## Memory
133
135
 
134
- Agents remember across sessions through two mechanisms:
136
+ Agents remember across sessions through three mechanisms:
135
137
 
136
138
  - **Files** — `knowledge/` for mutable state, `notes/` for daily logs. The agent reads and writes these through tools. Git-tracked, inspectable, portable.
137
139
  - **Recall** — semantic search over all past conversations. Messages are embedded and stored in a local SQLite database (`recall.db`). The agent uses the `recall` tool to search by query with optional date filters, or load raw messages from a specific session.
140
+ - **Segments** — messages are automatically grouped into topic-coherent segments, summarized, and rolled up into a hierarchy (L0 → L1 → L2). When old messages are trimmed from context, compressed summaries are injected in their place — the agent sees its full conversation history at decreasing resolution.
138
141
 
139
142
  On startup, the agent's system prompt is automatically injected with:
140
143
  - The latest daily note (full content)
141
144
  - An LLM-generated summary of the previous 5 daily notes
145
+ - Compressed conversation history from segments (when messages have been trimmed)
142
146
 
143
147
  This means the agent boots with recent context — no manual reading required. Summaries are cached in SQLite and regenerated in the background on day rollover.
144
148
 
@@ -157,10 +161,12 @@ Interval in minutes. Default 60 (1 hour). Set to 0 to disable.
157
161
  ## Logging
158
162
 
159
163
  ```bash
160
- kern logs [name] # tail agent logs
164
+ kern logs [name] # follow logs (default)
165
+ kern logs [name] -n 50 # last 50 lines, exit
166
+ kern logs [name] --level warn # warnings and errors only
161
167
  ```
162
168
 
163
- Structured, colored logs for queue, runtime, interfaces, and server. Logs stored in `.kern/logs/kern.log`.
169
+ Structured, leveled logs with colored labels. Stored in `.kern/logs/kern.log`. All levels written, filter on read.
164
170
 
165
171
  ## Configuration
166
172
 
@@ -171,13 +177,13 @@ Structured, colored logs for queue, runtime, interfaces, and server. Logs stored
171
177
  "model": "anthropic/claude-opus-4.6",
172
178
  "provider": "openrouter",
173
179
  "toolScope": "full",
174
- "maxSteps": 30,
175
180
  "maxContextTokens": 50000,
176
- "maxToolResultChars": 20000
181
+ "maxToolResultChars": 20000,
182
+ "historyBudget": 0.2
177
183
  }
178
184
  ```
179
185
 
180
- `maxContextTokens` controls the sliding context window — older messages are trimmed to stay within budget. `maxToolResultChars` caps individual tool results in context (full results stay in session JSONL and are searchable via recall). Set to `0` to disable.
186
+ `maxContextTokens` controls the sliding context window — older messages are trimmed to stay within budget. `maxToolResultChars` caps individual tool results in context (full results stay in session JSONL and are searchable via recall). `historyBudget` controls what fraction of the context window is reserved for compressed segment summaries when old messages are trimmed (default 20%). Set to `0` to disable.
181
187
 
182
188
  Agent auth tokens are auto-generated on first start and stored in `.kern/.env`. The web proxy injects them automatically — no manual setup needed.
183
189
 
@@ -194,10 +200,12 @@ Controls the `kern web` server. Optional — defaults apply if the file doesn't
194
200
 
195
201
  ### Tool scopes
196
202
 
197
- - **full** — bash, read, write, edit, glob, grep, webfetch, kern, message, recall
203
+ - **full** — shell (bash/pwsh), read, write, edit, glob, grep, webfetch, kern, message, recall
198
204
  - **write** — read, write, edit, glob, grep, webfetch, kern, message, recall
199
205
  - **read** — read, glob, grep, webfetch, kern, recall
200
206
 
207
+ Shell tool is platform-specific: `bash` on Unix/Linux, `pwsh` on Windows. Selected automatically.
208
+
201
209
  ### Providers
202
210
 
203
211
  - **openrouter** — any model via OpenRouter (default)
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAiDA,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ShF"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AA8DA,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuZhF"}
package/dist/app.js CHANGED
@@ -7,25 +7,35 @@ import { loadConfig } from "./config.js";
7
7
  import { readFile, appendFile } from "fs/promises";
8
8
  import { join, basename } from "path";
9
9
  import { randomBytes } from "crypto";
10
- import { registerAgent, setPortAndToken } from "./registry.js";
10
+ import { registerAgent, setPortAndToken, setPid } from "./registry.js";
11
11
  import { AgentServer } from "./server.js";
12
12
  import { PairingManager } from "./pairing.js";
13
13
  import { setMessageSender } from "./tools/message.js";
14
14
  import { setRecallIndex } from "./tools/recall.js";
15
15
  import { RecallIndex } from "./recall.js";
16
+ import { SegmentIndex } from "./segments.js";
16
17
  import { MemoryDB } from "./memory.js";
17
18
  import { MessageQueue } from "./queue.js";
18
- import { getStatusData as getStatusDataFn, setQueueStatusFn, setInterfaceStatusFn, setRecallStatsFn } from "./tools/kern.js";
19
+ import { getStatusData as getStatusDataFn, setQueueStatusFn, setInterfaceStatusFn, setRecallStatsFn, setSegmentStatsFn } from "./tools/kern.js";
19
20
  import { log } from "./log.js";
20
21
  async function handleSlashCommand(cmd, userId, iface, agentName) {
21
22
  switch (cmd) {
22
23
  case "/restart": {
23
24
  log("kern", `restart requested by ${userId} via ${iface}`);
24
- setTimeout(async () => {
25
- const { spawn } = await import("child_process");
26
- spawn("kern", ["restart", agentName], { detached: true, stdio: "ignore" }).unref();
27
- }, 2000);
28
- return "Restarting in 2 seconds...";
25
+ const { spawn } = await import("child_process");
26
+ const child = spawn("kern", ["restart", agentName], { stdio: "pipe" });
27
+ const result = await new Promise((resolve) => {
28
+ let stderr = "";
29
+ child.stderr.on("data", (chunk) => {
30
+ stderr += chunk.toString();
31
+ });
32
+ child.on("close", (code) => resolve({ code, stderr: stderr.trim() }));
33
+ child.on("error", (err) => resolve({ code: 1, stderr: err.message }));
34
+ });
35
+ if (result.code === 0) {
36
+ return "Restart initiated.";
37
+ }
38
+ return `Restart failed: ${result.stderr || `exit code ${result.code}`}`;
29
39
  }
30
40
  case "/status": {
31
41
  const { formatStatus } = await import("./tools/kern.js");
@@ -96,12 +106,25 @@ export async function startApp(agentDir, forceCli = false) {
96
106
  }
97
107
  }).catch((err) => {
98
108
  recallBuilding = false;
99
- log("recall", `backfill failed: ${err.message}`);
109
+ log.error("recall", `backfill failed: ${err.message}`);
100
110
  });
101
111
  }
102
112
  }
103
113
  catch (err) {
104
- log("recall", `init failed: ${err.message} — recall disabled`);
114
+ log.error("recall", `init failed: ${err.message} — recall disabled`);
115
+ }
116
+ }
117
+ // Initialize semantic segments (uses same embedding infra as recall)
118
+ let segmentIndex = null;
119
+ let segmentRunning = false;
120
+ if (config.recall !== false) {
121
+ try {
122
+ segmentIndex = new SegmentIndex(memoryDB, config.provider);
123
+ runtime.setSegmentIndex(segmentIndex);
124
+ setSegmentStatsFn(() => segmentIndex ? segmentIndex.getStats() : null);
125
+ }
126
+ catch (err) {
127
+ log.error("segments", `init failed: ${err.message} — segments disabled`);
105
128
  }
106
129
  }
107
130
  const agentName = basename(agentDir);
@@ -155,12 +178,17 @@ export async function startApp(agentDir, forceCli = false) {
155
178
  server.broadcast(event);
156
179
  msg.onEvent?.(event);
157
180
  });
158
- // Index new messages for recall (async, non-blocking)
159
- if (recallIndex) {
160
- const sessionId = runtime.getSessionId();
161
- if (sessionId) {
181
+ // Index new messages for recall + segments (async, non-blocking)
182
+ const sessionId = runtime.getSessionId();
183
+ if (sessionId) {
184
+ if (recallIndex) {
162
185
  recallIndex.indexSession(sessionId).catch((err) => {
163
- log("recall", `indexing failed: ${err.message}`);
186
+ log.error("recall", `indexing failed: ${err.message}`);
187
+ });
188
+ }
189
+ if (segmentIndex) {
190
+ segmentIndex.indexSession(sessionId).catch((err) => {
191
+ log.error("segments", `indexing failed: ${err.message}`);
164
192
  });
165
193
  }
166
194
  }
@@ -199,8 +227,100 @@ export async function startApp(agentDir, forceCli = false) {
199
227
  ...m,
200
228
  }));
201
229
  });
230
+ server.setSystemPromptFn(async () => {
231
+ const latestSystem = await runtime.getSystemPrompt();
232
+ const built = runtime.buildPromptContext();
233
+ return { system: built.system || latestSystem };
234
+ });
235
+ server.setContextSegmentsFn(() => {
236
+ if (!segmentIndex)
237
+ return { segments: [], tokenCount: 0 };
238
+ const sessionId = runtime.getSessionId();
239
+ if (!sessionId)
240
+ return { segments: [], tokenCount: 0 };
241
+ const messages = runtime.getMessages();
242
+ const built = runtime.buildPromptContext();
243
+ const historyBudget = Math.round(config.maxContextTokens * (config.historyBudget || 0));
244
+ const trimmedCount = Math.max(0, messages.length - (built.messages?.length || messages.length));
245
+ if (trimmedCount <= 0 || historyBudget <= 0)
246
+ return { segments: [], tokenCount: 0 };
247
+ const history = segmentIndex.composeHistory(sessionId, trimmedCount, historyBudget);
248
+ if (!history)
249
+ return { segments: [], tokenCount: 0 };
250
+ return {
251
+ tokenCount: history.tokens,
252
+ segments: history.segments.map((seg) => ({
253
+ id: seg.id,
254
+ level: seg.level,
255
+ msg_start: seg.msg_start,
256
+ msg_end: seg.msg_end,
257
+ })),
258
+ };
259
+ });
260
+ server.setSegmentsFn((sessionId) => {
261
+ if (!segmentIndex)
262
+ return { segments: [], stats: { segments: 0, level0: 0 } };
263
+ return segmentIndex.getSegments(sessionId);
264
+ });
265
+ server.setSegmentsRebuildFn(async () => {
266
+ if (!segmentIndex)
267
+ throw new Error("segments not enabled");
268
+ if (segmentRunning) {
269
+ log("segments", "rebuild already running");
270
+ return { status: "already running" };
271
+ }
272
+ const sessionId = runtime.getSessionId();
273
+ if (!sessionId)
274
+ throw new Error("no session");
275
+ segmentRunning = true;
276
+ try {
277
+ segmentIndex.clear();
278
+ log("segments", "cleared — starting rebuild");
279
+ const created = await segmentIndex.indexSession(sessionId);
280
+ log("segments", `rebuild complete: ${created} segments`);
281
+ return { status: "done", segments: created };
282
+ }
283
+ finally {
284
+ segmentRunning = false;
285
+ }
286
+ });
287
+ server.setSegmentsStopFn(() => {
288
+ if (!segmentIndex)
289
+ return;
290
+ segmentIndex.stop();
291
+ segmentRunning = false;
292
+ });
293
+ server.setSegmentsCleanFn(() => {
294
+ if (!segmentIndex)
295
+ return;
296
+ segmentIndex.clear();
297
+ });
298
+ server.setSegmentsStartFn(async () => {
299
+ if (!segmentIndex)
300
+ throw new Error("segments not enabled");
301
+ if (segmentRunning)
302
+ return { status: "already running" };
303
+ const sessionId = runtime.getSessionId();
304
+ if (!sessionId)
305
+ throw new Error("no session");
306
+ segmentRunning = true;
307
+ try {
308
+ const created = await segmentIndex.indexSession(sessionId);
309
+ log("segments", `indexed ${created} new segments`);
310
+ return { status: "done", segments: created };
311
+ }
312
+ finally {
313
+ segmentRunning = false;
314
+ }
315
+ });
316
+ server.setSegmentResummarizeFn(async (id) => {
317
+ if (!segmentIndex)
318
+ throw new Error("segments not enabled");
319
+ return segmentIndex.resummarizeSegment(id);
320
+ });
202
321
  const port = await server.start("127.0.0.1");
203
322
  await setPortAndToken(agentName, port, process.env.KERN_AUTH_TOKEN || null);
323
+ await setPid(agentName, process.pid);
204
324
  // Start Telegram if configured
205
325
  const telegramToken = process.env.TELEGRAM_BOT_TOKEN;
206
326
  let telegramBot = null;
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -6,13 +6,12 @@ export interface KernConfig {
6
6
  maxSteps: number;
7
7
  maxContextTokens: number;
8
8
  maxToolResultChars: number;
9
+ historyBudget: number;
10
+ recall: boolean;
11
+ autoRecall: boolean;
9
12
  heartbeatInterval: number;
10
- autoRecall?: boolean;
11
- telegram?: {
12
- allowedUsers?: number[];
13
- showTools?: boolean;
14
- };
15
13
  }
14
+ export declare const configDefaults: KernConfig;
16
15
  export declare function getToolsForScope(scope: ToolScope): string[];
17
16
  export declare function loadConfig(agentDir: string): Promise<KernConfig>;
18
17
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAkBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAE3D;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAsBtE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,UAAU;IAEzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IAGpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAUD,eAAO,MAAM,cAAc,EAAE,UAW5B,CAAC;AA6BF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAE3D;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BtE"}
package/dist/config.js CHANGED
@@ -2,20 +2,50 @@ import { readFile } from "fs/promises";
2
2
  import { join } from "path";
3
3
  import { existsSync } from "fs";
4
4
  import { config as loadDotenv } from "dotenv";
5
+ import { log } from "./log.js";
6
+ const shell = process.platform === "win32" ? "pwsh" : "bash";
5
7
  const TOOL_SCOPES = {
6
- full: ["bash", "read", "write", "edit", "glob", "grep", "webfetch", "kern", "message", "recall"],
8
+ full: [shell, "read", "write", "edit", "glob", "grep", "webfetch", "kern", "message", "recall"],
7
9
  write: ["read", "write", "edit", "glob", "grep", "webfetch", "kern", "message", "recall"],
8
10
  read: ["read", "glob", "grep", "webfetch", "kern", "recall"],
9
11
  };
10
- const defaults = {
12
+ export const configDefaults = {
11
13
  model: "anthropic/claude-opus-4.6",
12
14
  provider: "openrouter",
13
15
  toolScope: "full",
14
16
  maxSteps: 30,
15
17
  maxContextTokens: 50000,
16
18
  maxToolResultChars: 20000,
19
+ historyBudget: 0.2,
20
+ recall: true,
21
+ autoRecall: false,
17
22
  heartbeatInterval: 60,
18
23
  };
24
+ const FIELD_TYPES = {
25
+ model: "string",
26
+ provider: "string",
27
+ toolScope: "string",
28
+ maxSteps: "number",
29
+ maxContextTokens: "number",
30
+ maxToolResultChars: "number",
31
+ historyBudget: "number",
32
+ recall: "boolean",
33
+ autoRecall: "boolean",
34
+ heartbeatInterval: "number",
35
+ };
36
+ function validateConfig(userConfig) {
37
+ for (const key of Object.keys(userConfig)) {
38
+ if (!(key in FIELD_TYPES)) {
39
+ log.warn("config", `unknown field "${key}" — ignored`);
40
+ continue;
41
+ }
42
+ const expected = FIELD_TYPES[key];
43
+ const actual = typeof userConfig[key];
44
+ if (actual !== expected) {
45
+ log.warn("config", `"${key}" should be ${expected}, got ${actual} — using default`);
46
+ }
47
+ }
48
+ }
19
49
  export function getToolsForScope(scope) {
20
50
  return TOOL_SCOPES[scope] || TOOL_SCOPES.full;
21
51
  }
@@ -28,17 +58,23 @@ export async function loadConfig(agentDir) {
28
58
  // Load .kern/config.json
29
59
  const configPath = join(agentDir, ".kern", "config.json");
30
60
  if (!existsSync(configPath)) {
31
- return defaults;
61
+ return configDefaults;
32
62
  }
33
63
  try {
34
64
  const raw = await readFile(configPath, "utf-8");
35
65
  const userConfig = JSON.parse(raw);
36
- // Support legacy "tools" array — ignore it, use toolScope
37
- const { tools, ...rest } = userConfig;
38
- return { ...defaults, ...rest };
66
+ validateConfig(userConfig);
67
+ // Filter out unknown and wrong-type fields
68
+ const cleaned = {};
69
+ for (const [key, value] of Object.entries(userConfig)) {
70
+ if (key in FIELD_TYPES && typeof value === FIELD_TYPES[key]) {
71
+ cleaned[key] = value;
72
+ }
73
+ }
74
+ return { ...configDefaults, ...cleaned };
39
75
  }
40
76
  catch {
41
- return defaults;
77
+ return configDefaults;
42
78
  }
43
79
  }
44
80
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAmB9C,MAAM,WAAW,GAAgC;IAC/C,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAChG,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACzF,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7D,CAAC;AAEF,MAAM,QAAQ,GAAe;IAC3B,KAAK,EAAE,2BAA2B;IAClC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,0DAA0D;QAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;QACtC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAwB/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAE7D,MAAM,WAAW,GAAgC;IAC/C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC/F,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACzF,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,KAAK,EAAE,2BAA2B;IAClC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,KAAK;IACjB,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,WAAW,GAA2B;IAC1C,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,QAAQ;IAC1B,kBAAkB,EAAE,QAAQ;IAC5B,aAAa,EAAE,QAAQ;IACvB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,QAAQ;CAC5B,CAAC;AAEF,SAAS,cAAc,CAAC,UAAmC;IACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,eAAe,QAAQ,SAAS,MAAM,kBAAkB,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE3B,2CAA2C;QAC3C,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,IAAI,WAAW,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC"}
package/dist/context.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { ModelMessage } from "ai";
2
2
  import { type KernConfig } from "./config.js";
3
3
  import type { RecallIndex } from "./recall.js";
4
4
  import type { MemoryDB } from "./memory.js";
5
+ import type { SegmentIndex } from "./segments.js";
5
6
  export declare function loadSystemPrompt(agentDir: string, config: KernConfig, memoryDB?: MemoryDB | null): Promise<string>;
6
7
  export interface SessionStats {
7
8
  totalMessages: number;
@@ -9,11 +10,21 @@ export interface SessionStats {
9
10
  windowTokens: number;
10
11
  windowMessages: number;
11
12
  truncatedCount: number;
13
+ historyTokens: number;
14
+ historyLevelCounts: Record<number, number>;
12
15
  }
13
- export declare function prepareContext(messages: ModelMessage[], config: KernConfig): {
16
+ export interface PrepareContextOptions {
17
+ messages: ModelMessage[];
18
+ config: KernConfig;
19
+ sessionId?: string;
20
+ segmentIndex?: SegmentIndex | null;
21
+ }
22
+ export interface PreparedContext {
23
+ systemAdditions: string[];
14
24
  messages: ModelMessage[];
15
25
  stats: SessionStats;
16
- };
26
+ }
27
+ export declare function prepareContext({ messages, config, sessionId, segmentIndex }: PrepareContextOptions): PreparedContext;
17
28
  export interface RecallResult {
18
29
  query: string;
19
30
  chunks: number;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,IAAI,CAAC;AAKvD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAkExH;AAiHD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAyB9H;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAGD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC,CAyCpE"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,IAAI,CAAC;AAKvD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAiBlD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAmExH;AAyHD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;CACrB;AAGD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,qBAAqB,GAAG,eAAe,CA+CpH;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAGD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC,CAyCpE"}