atom-lite 0.4.1 → 0.6.2

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 (123) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +41 -108
  3. package/dist/agent/loop.d.ts +15 -0
  4. package/dist/agent/loop.js +277 -57
  5. package/dist/agent/loop.js.map +1 -1
  6. package/dist/agent/model-turn.d.ts +37 -0
  7. package/dist/agent/model-turn.js +53 -0
  8. package/dist/agent/model-turn.js.map +1 -0
  9. package/dist/agent/system-prompt.d.ts +1 -0
  10. package/dist/agent/system-prompt.js +23 -0
  11. package/dist/agent/system-prompt.js.map +1 -0
  12. package/dist/agent/turn-recorder.d.ts +33 -0
  13. package/dist/agent/turn-recorder.js +74 -0
  14. package/dist/agent/turn-recorder.js.map +1 -0
  15. package/dist/agent/types.d.ts +15 -0
  16. package/dist/cli/app.js +570 -68
  17. package/dist/cli/app.js.map +1 -1
  18. package/dist/cli/commands.d.ts +3 -0
  19. package/dist/cli/commands.js +20 -5
  20. package/dist/cli/commands.js.map +1 -1
  21. package/dist/cli/diff-view.d.ts +18 -0
  22. package/dist/cli/diff-view.js +66 -0
  23. package/dist/cli/diff-view.js.map +1 -0
  24. package/dist/cli/main.js +2 -2
  25. package/dist/cli/main.js.map +1 -1
  26. package/dist/cli/mouse.js +4 -1
  27. package/dist/cli/mouse.js.map +1 -1
  28. package/dist/cli/panel.js +8 -8
  29. package/dist/cli/panel.js.map +1 -1
  30. package/dist/cli/status-line.d.ts +2 -0
  31. package/dist/cli/status-line.js +9 -1
  32. package/dist/cli/status-line.js.map +1 -1
  33. package/dist/cli/stream-text.js +1 -0
  34. package/dist/cli/stream-text.js.map +1 -1
  35. package/dist/cli/theme.d.ts +1 -1
  36. package/dist/cli/theme.js +2 -0
  37. package/dist/cli/theme.js.map +1 -1
  38. package/dist/cli/tool-box.d.ts +1 -1
  39. package/dist/cli/tool-box.js +44 -39
  40. package/dist/cli/tool-box.js.map +1 -1
  41. package/dist/cli/transcript.d.ts +15 -1
  42. package/dist/cli/transcript.js +40 -1
  43. package/dist/cli/transcript.js.map +1 -1
  44. package/dist/cli/trust-prompt.d.ts +24 -0
  45. package/dist/cli/trust-prompt.js +89 -0
  46. package/dist/cli/trust-prompt.js.map +1 -0
  47. package/dist/config/defaults.d.ts +6 -5
  48. package/dist/config/defaults.js +8 -3
  49. package/dist/config/defaults.js.map +1 -1
  50. package/dist/config/load.js +33 -3
  51. package/dist/config/load.js.map +1 -1
  52. package/dist/config/paths.d.ts +2 -0
  53. package/dist/config/paths.js +12 -1
  54. package/dist/config/paths.js.map +1 -1
  55. package/dist/config/schema.d.ts +14 -14
  56. package/dist/config/schema.js +6 -5
  57. package/dist/config/schema.js.map +1 -1
  58. package/dist/context/manager.d.ts +17 -3
  59. package/dist/context/manager.js +129 -41
  60. package/dist/context/manager.js.map +1 -1
  61. package/dist/extensions/api.d.ts +51 -1
  62. package/dist/extensions/api.js +124 -6
  63. package/dist/extensions/api.js.map +1 -1
  64. package/dist/extensions/discovery.d.ts +16 -0
  65. package/dist/extensions/discovery.js +191 -108
  66. package/dist/extensions/discovery.js.map +1 -1
  67. package/dist/extensions/loader.d.ts +42 -1
  68. package/dist/extensions/loader.js +272 -32
  69. package/dist/extensions/loader.js.map +1 -1
  70. package/dist/extensions/session-manager.d.ts +44 -0
  71. package/dist/extensions/session-manager.js +137 -0
  72. package/dist/extensions/session-manager.js.map +1 -0
  73. package/dist/extensions/tool-adapter.d.ts +12 -0
  74. package/dist/extensions/tool-adapter.js +157 -0
  75. package/dist/extensions/tool-adapter.js.map +1 -0
  76. package/dist/extensions/trust.d.ts +2 -0
  77. package/dist/extensions/trust.js +32 -17
  78. package/dist/extensions/trust.js.map +1 -1
  79. package/dist/extensions/types.d.ts +45 -3
  80. package/dist/extensions/ui.d.ts +21 -0
  81. package/dist/extensions/ui.js +75 -0
  82. package/dist/extensions/ui.js.map +1 -0
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.js +1 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp/stdio-transport.js +3 -20
  87. package/dist/mcp/stdio-transport.js.map +1 -1
  88. package/dist/runtime/modes.d.ts +3 -0
  89. package/dist/runtime/modes.js +8 -0
  90. package/dist/runtime/modes.js.map +1 -0
  91. package/dist/runtime/scheduler.d.ts +4 -3
  92. package/dist/runtime/scheduler.js +7 -105
  93. package/dist/runtime/scheduler.js.map +1 -1
  94. package/dist/runtime/tool-executor.d.ts +18 -0
  95. package/dist/runtime/tool-executor.js +136 -0
  96. package/dist/runtime/tool-executor.js.map +1 -0
  97. package/dist/security/process.d.ts +10 -0
  98. package/dist/security/process.js +36 -0
  99. package/dist/security/process.js.map +1 -1
  100. package/dist/sessions/store.js +2 -3
  101. package/dist/sessions/store.js.map +1 -1
  102. package/dist/skills/registry.js +8 -1
  103. package/dist/skills/registry.js.map +1 -1
  104. package/dist/tools/bash.js +7 -4
  105. package/dist/tools/bash.js.map +1 -1
  106. package/dist/tools/glob.d.ts +2 -0
  107. package/dist/tools/glob.js +97 -0
  108. package/dist/tools/glob.js.map +1 -0
  109. package/dist/tools/grep.d.ts +2 -0
  110. package/dist/tools/grep.js +290 -0
  111. package/dist/tools/grep.js.map +1 -0
  112. package/dist/tools/index.d.ts +2 -0
  113. package/dist/tools/index.js +2 -0
  114. package/dist/tools/index.js.map +1 -1
  115. package/dist/tools/types.d.ts +8 -0
  116. package/dist/types.d.ts +0 -3
  117. package/dist/types.js +1 -4
  118. package/dist/types.js.map +1 -1
  119. package/package.json +5 -2
  120. package/skills/atom-lite-extensions/SKILL.md +240 -0
  121. package/skills/caveman/SKILL.md +89 -0
  122. package/skills/code-review/SKILL.md +46 -0
  123. package/skills/optimization/SKILL.md +51 -0
@@ -1,11 +1,18 @@
1
1
  import { DEFAULT_LIMITS } from "../types.js";
2
2
  import { executeToolBatch } from "../runtime/scheduler.js";
3
3
  import { ContextManager } from "../context/manager.js";
4
+ import { DEFAULT_SYSTEM_PROMPT } from "./system-prompt.js";
5
+ import { runModelTurn } from "./model-turn.js";
6
+ import { TurnRecorder } from "./turn-recorder.js";
4
7
  export class AgentRuntime {
5
8
  provider;
6
9
  model;
7
10
  workspace;
8
11
  approvals;
12
+ mode;
13
+ maxTokensPerSession;
14
+ maxTokensPerTurn;
15
+ totalTokensUsed;
9
16
  contextManager;
10
17
  onEvent;
11
18
  tools;
@@ -13,6 +20,8 @@ export class AgentRuntime {
13
20
  bashConcurrency;
14
21
  toolMap;
15
22
  limits;
23
+ extensionDispatch;
24
+ steeringQueue;
16
25
  systemPrompt;
17
26
  contextWindow;
18
27
  contextUsed;
@@ -21,6 +30,10 @@ export class AgentRuntime {
21
30
  this.model = options.model ?? "default";
22
31
  this.workspace = options.workspace ?? process.cwd();
23
32
  this.approvals = options.approvals;
33
+ this.mode = options.mode ?? "plan";
34
+ this.maxTokensPerSession = options.maxTokensPerSession ?? null;
35
+ this.maxTokensPerTurn = options.maxTokensPerTurn ?? null;
36
+ this.totalTokensUsed = 0;
24
37
  this.onEvent = options.onEvent;
25
38
  this.tools = options.tools;
26
39
  this.effort = options.effort ?? "medium";
@@ -28,7 +41,7 @@ export class AgentRuntime {
28
41
  this.contextManager =
29
42
  options.contextManager ??
30
43
  new ContextManager({
31
- systemPrompt: options.systemPrompt ?? "You are a coding assistant.",
44
+ systemPrompt: options.systemPrompt ?? DEFAULT_SYSTEM_PROMPT,
32
45
  maxInputTokens: null,
33
46
  reserveOutputTokens: 4096,
34
47
  compactAtPercent: 85,
@@ -38,7 +51,9 @@ export class AgentRuntime {
38
51
  });
39
52
  this.toolMap = new Map(options.tools.map((t) => [t.definition.name, t]));
40
53
  this.limits = { ...DEFAULT_LIMITS, ...(options.limits ?? {}) };
41
- this.systemPrompt = options.systemPrompt ?? "You are a coding assistant with tools: read, write, edit, bash, webfetch, websearch.";
54
+ this.extensionDispatch = options.extensionDispatch;
55
+ this.steeringQueue = options.steeringQueue;
56
+ this.systemPrompt = options.systemPrompt ?? DEFAULT_SYSTEM_PROMPT;
42
57
  this.contextWindow = options.contextWindow;
43
58
  this.contextManager.setModelContextWindow(options.contextWindow);
44
59
  }
@@ -76,6 +91,29 @@ export class AgentRuntime {
76
91
  setEffort(effort) {
77
92
  this.effort = effort;
78
93
  }
94
+ setMode(mode) {
95
+ this.mode = mode;
96
+ }
97
+ getMode() {
98
+ return this.mode;
99
+ }
100
+ setSteeringQueue(queue) {
101
+ this.steeringQueue = queue;
102
+ }
103
+ async compactSession(session, focus) {
104
+ const summary = await this.contextManager.compactHistory(this.workspace, session.messages, focus);
105
+ if (summary) {
106
+ this.contextManager.setSessionMemory(summary, this.contextManager.getLastCompactionCoveredCount());
107
+ if (typeof session.appendEvent === "function") {
108
+ session.appendEvent({
109
+ type: "context_compacted",
110
+ summary,
111
+ coveredCount: this.contextManager.getLastCompactionCoveredCount(),
112
+ });
113
+ }
114
+ }
115
+ return summary;
116
+ }
79
117
  /** Replace the toolset, e.g. after MCP discovery or a list_changed refresh. */
80
118
  setTools(tools) {
81
119
  this.tools = tools;
@@ -85,65 +123,89 @@ export class AgentRuntime {
85
123
  return this.effort;
86
124
  }
87
125
  async runAgentTurn(input, session, signal) {
126
+ // Restore any persisted session memory for resumed sessions.
127
+ const events = session.events;
128
+ if (Array.isArray(events)) {
129
+ const latest = [...events].reverse().find((e) => e?.type === "context_compacted");
130
+ this.contextManager.setSessionMemory(typeof latest?.summary === "string" ? latest.summary : null, typeof latest?.coveredCount === "number" ? latest.coveredCount : undefined);
131
+ }
88
132
  session.appendMessage({ role: "user", content: [{ type: "text", text: input }] });
89
- let totalToolCalls = 0;
133
+ await this.extensionDispatch?.("turn_start", { type: "turn_start" });
134
+ let forceContinue = false;
90
135
  const start = Date.now();
91
- for (let iteration = 0; iteration < this.limits.maxIterations; iteration++) {
136
+ while (true) {
137
+ forceContinue = false;
138
+ // Drain any steering messages into the session before the next model turn.
139
+ if (this.steeringQueue && this.steeringQueue.length > 0) {
140
+ while (this.steeringQueue.length > 0) {
141
+ const msg = this.steeringQueue.shift();
142
+ session.appendMessage({
143
+ role: "user",
144
+ content: [{ type: "text", text: msg }],
145
+ });
146
+ }
147
+ }
92
148
  if (signal.aborted) {
93
149
  throw new Error("USER_CANCELLED");
94
150
  }
95
- if (Date.now() - start > this.limits.maxExecutionMs) {
96
- return "TASK_BUDGET_REACHED";
97
- }
98
151
  const messages = await this.contextManager.build(this.workspace, session.messages);
99
152
  if (this.contextManager.consumeCompaction()) {
100
153
  // Peers treat usage as unknown after compaction until the next
101
154
  // assistant response reports fresh numbers.
102
155
  this.contextUsed = undefined;
103
156
  this.emitContextUsage();
157
+ const summary = this.contextManager.consumeCompactionSummary();
158
+ const coveredCount = this.contextManager.consumeCompactionCoveredCount();
159
+ if (summary && typeof session.appendEvent === "function") {
160
+ session.appendEvent({
161
+ type: "context_compacted",
162
+ summary,
163
+ coveredCount,
164
+ });
165
+ }
104
166
  }
105
- const request = {
167
+ let response;
168
+ let streamedText = "";
169
+ await this.extensionDispatch?.("before_provider_request", {
170
+ type: "before_provider_request",
171
+ messages,
172
+ tools: this.tools.map((t) => t.definition),
173
+ });
174
+ for await (const ev of runModelTurn({
175
+ provider: this.provider,
106
176
  model: this.model,
107
177
  messages,
108
178
  tools: this.tools.map((t) => t.definition),
179
+ effort: this.effort,
109
180
  signal,
110
- options: { effort: this.effort },
111
- };
112
- let response;
113
- let streamedText = "";
114
- if (typeof this.provider.stream === "function") {
115
- // Stream tokens as they arrive.
116
- for await (const ev of this.provider.stream(request)) {
117
- if (ev.type === "thinking") {
118
- this.onEvent?.({ type: "thinking_delta", text: ev.text });
119
- }
120
- else if (ev.type === "text") {
121
- streamedText += ev.text;
122
- this.onEvent?.({ type: "assistant_delta", text: ev.text });
123
- }
124
- else if (ev.type === "done") {
125
- response = ev.response;
126
- }
181
+ })) {
182
+ if (ev.type === "thinking_delta") {
183
+ this.onEvent?.({ type: "thinking_delta", text: ev.text });
127
184
  }
128
- if (!response) {
129
- // Fallback if stream ended without done
130
- response = {
131
- message: { role: "assistant", content: streamedText ? [{ type: "text", text: streamedText }] : undefined, toolCalls: undefined },
132
- toolCalls: [],
133
- finishReason: "stop",
134
- };
185
+ else if (ev.type === "assistant_delta") {
186
+ streamedText += ev.text;
187
+ this.onEvent?.({ type: "assistant_delta", text: ev.text });
188
+ }
189
+ else if (ev.type === "assistant_text") {
190
+ streamedText = ev.text;
191
+ this.onEvent?.({ type: "assistant_text", text: ev.text });
192
+ }
193
+ else if (ev.type === "final") {
194
+ response = ev.response;
195
+ streamedText = ev.streamedText;
135
196
  }
136
197
  }
137
- else {
138
- response = await this.provider.generate(request);
139
- const t = response.message.content?.map((p) => (p.type === "text" ? p.text : "")).join("") ?? "";
140
- if (t)
141
- this.onEvent?.({ type: "assistant_text", text: t });
142
- streamedText = t;
143
- }
144
- session.appendMessage(response.message);
198
+ await this.extensionDispatch?.("after_provider_response", {
199
+ type: "after_provider_response",
200
+ response,
201
+ });
202
+ const recorder = new TurnRecorder({
203
+ session,
204
+ onEvent: this.onEvent,
205
+ extensionDispatch: this.extensionDispatch,
206
+ });
207
+ const text = await recorder.recordAssistant(response, streamedText);
145
208
  if (response.usage) {
146
- this.onEvent?.({ type: "usage", input: response.usage.input, output: response.usage.output });
147
209
  const used = (response.usage.input ?? 0) + (response.usage.output ?? 0);
148
210
  if (used > 0) {
149
211
  // The latest assistant step's prompt + generated tokens is the
@@ -151,21 +213,91 @@ export class AgentRuntime {
151
213
  this.contextUsed = used;
152
214
  this.emitContextUsage();
153
215
  }
216
+ const turnTokens = used > 0 ? used : 0;
217
+ if (this.maxTokensPerTurn !== null &&
218
+ turnTokens > this.maxTokensPerTurn) {
219
+ this.onEvent?.({
220
+ type: "budget_warning",
221
+ scope: "turn",
222
+ used: turnTokens,
223
+ limit: this.maxTokensPerTurn,
224
+ });
225
+ }
226
+ if (turnTokens > 0) {
227
+ this.totalTokensUsed += turnTokens;
228
+ }
229
+ if (this.maxTokensPerSession !== null &&
230
+ this.totalTokensUsed > this.maxTokensPerSession) {
231
+ this.onEvent?.({
232
+ type: "budget_warning",
233
+ scope: "session",
234
+ used: this.totalTokensUsed,
235
+ limit: this.maxTokensPerSession,
236
+ });
237
+ await this.extensionDispatch?.("agent_settled", {
238
+ type: "agent_settled",
239
+ });
240
+ return "TOKEN_BUDGET_REACHED";
241
+ }
154
242
  }
155
- const text = streamedText || (response.message.content?.map((p) => (p.type === "text" ? p.text : "")).join("") ?? "");
156
243
  const toolCalls = response.toolCalls ?? [];
157
244
  if (toolCalls.length === 0) {
158
- this.onEvent?.({ type: "final", text });
245
+ // turn_end / agent_before_settle continuation handling.
246
+ let continued = false;
247
+ const turnResults = await this.extensionDispatch?.("turn_end", {
248
+ type: "turn_end",
249
+ });
250
+ for (const r of turnResults ?? []) {
251
+ if (r && r.continue)
252
+ continued = true;
253
+ }
254
+ if (continued) {
255
+ forceContinue = true;
256
+ continue;
257
+ }
258
+ const settleResults = await this.extensionDispatch?.("agent_before_settle", { type: "agent_before_settle" });
259
+ for (const r of settleResults ?? []) {
260
+ if (r && r.continue)
261
+ continued = true;
262
+ }
263
+ if (continued) {
264
+ forceContinue = true;
265
+ continue;
266
+ }
267
+ await this.extensionDispatch?.("agent_settled", {
268
+ type: "agent_settled",
269
+ });
159
270
  return text;
160
271
  }
161
- for (const c of toolCalls)
162
- this.onEvent?.({ type: "tool_call", id: c.id, name: c.name, args: c.arguments });
163
- totalToolCalls += toolCalls.length;
164
- if (totalToolCalls > this.limits.maxToolCalls) {
165
- return "TASK_BUDGET_REACHED";
272
+ // Emit tool_call events; allow mutation and block decisions.
273
+ const blocked = new Set();
274
+ let terminate = false;
275
+ for (const call of toolCalls) {
276
+ const payload = {
277
+ type: "tool_call",
278
+ toolCallId: call.id,
279
+ name: call.name,
280
+ input: call.arguments,
281
+ };
282
+ const results = await this.extensionDispatch?.("tool_call", payload);
283
+ // Apply in-place mutation.
284
+ if (payload.input && payload.input !== call.arguments) {
285
+ call.arguments = payload.input;
286
+ }
287
+ for (const r of results ?? []) {
288
+ if (r && typeof r === "object") {
289
+ if (r.block)
290
+ blocked.add(call.id);
291
+ if (r.terminate)
292
+ terminate = true;
293
+ if (r.input)
294
+ call.arguments = r.input;
295
+ }
296
+ }
166
297
  }
167
298
  const ctx = {
168
299
  workspace: this.workspace,
300
+ mode: this.mode,
169
301
  signal,
170
302
  maxBashTimeMs: this.limits.maxBashTimeMs,
171
303
  maxToolOutputBytes: this.limits.maxToolOutputBytes,
@@ -178,24 +310,112 @@ export class AgentRuntime {
178
310
  stream,
179
311
  text,
180
312
  });
313
+ void this.extensionDispatch?.("tool_execution_update", {
314
+ type: "tool_execution_update",
315
+ toolCallId: call.id,
316
+ name: call.name,
317
+ stream,
318
+ text,
319
+ });
181
320
  },
182
321
  };
183
- const results = await executeToolBatch(toolCalls, this.toolMap, ctx, this.limits.maxParallelToolCalls, signal, undefined, this.bashConcurrency);
184
- for (const r of results) {
185
- session.appendMessage({
186
- role: "tool",
187
- toolCallId: r.toolCallId,
188
- name: r.name,
189
- content: r.content,
322
+ // Wrapped tool map emits tool_execution_start/end.
323
+ const wrappedToolMap = new Map(this.toolMap);
324
+ for (const [name, tool] of this.toolMap) {
325
+ wrappedToolMap.set(name, {
326
+ ...tool,
327
+ execute: async (call, ctx2) => {
328
+ await this.extensionDispatch?.("tool_execution_start", {
329
+ type: "tool_execution_start",
330
+ toolCallId: call.id,
331
+ name: call.name,
332
+ args: call.arguments,
333
+ });
334
+ let result;
335
+ try {
336
+ result = await tool.execute(call, ctx2);
337
+ }
338
+ catch (err) {
339
+ result = {
340
+ toolCallId: call.id,
341
+ name: call.name,
342
+ content: `COMMAND_FAILED: ${err instanceof Error ? err.message : String(err)}`,
343
+ isError: true,
344
+ };
345
+ }
346
+ await this.extensionDispatch?.("tool_execution_end", {
347
+ type: "tool_execution_end",
348
+ toolCallId: call.id,
349
+ name: call.name,
350
+ result,
351
+ isError: result?.isError,
352
+ });
353
+ return result;
354
+ },
190
355
  });
191
- this.onEvent?.({
356
+ }
357
+ const blockedResults = new Map();
358
+ for (const call of toolCalls) {
359
+ if (!blocked.has(call.id))
360
+ continue;
361
+ const reason = "blocked by extension";
362
+ const r = {
363
+ toolCallId: call.id,
364
+ name: call.name,
365
+ content: reason,
366
+ isError: true,
367
+ };
368
+ blockedResults.set(call.id, r);
369
+ await this.extensionDispatch?.("tool_execution_start", {
370
+ type: "tool_execution_start",
371
+ toolCallId: call.id,
372
+ name: call.name,
373
+ args: call.arguments,
374
+ });
375
+ await this.extensionDispatch?.("tool_execution_end", {
376
+ type: "tool_execution_end",
377
+ toolCallId: call.id,
378
+ name: call.name,
379
+ result: r,
380
+ isError: true,
381
+ });
382
+ }
383
+ const execCalls = toolCalls.filter((c) => !blocked.has(c.id));
384
+ const execResults = await executeToolBatch(execCalls, wrappedToolMap, ctx, this.limits.maxParallelToolCalls, signal, undefined, this.bashConcurrency);
385
+ const resultMap = new Map();
386
+ for (const r of blockedResults.values())
387
+ resultMap.set(r.toolCallId, r);
388
+ for (const r of execResults) {
389
+ // Emit tool_result event and allow patches.
390
+ const payload = {
192
391
  type: "tool_result",
193
392
  toolCallId: r.toolCallId,
194
393
  name: r.name,
195
394
  content: r.content,
395
+ details: r.details,
396
+ structuredContent: r.structuredContent,
196
397
  isError: r.isError,
197
- diff: r.diff,
398
+ usage: r.usage,
399
+ };
400
+ await this.extensionDispatch?.("tool_result", payload);
401
+ r.content = payload.content ?? r.content;
402
+ r.details = payload.details ?? r.details;
403
+ r.structuredContent = payload.structuredContent ?? r.structuredContent;
404
+ r.isError = payload.isError ?? r.isError;
405
+ r.usage = payload.usage ?? r.usage;
406
+ resultMap.set(r.toolCallId, r);
407
+ }
408
+ const orderedResults = toolCalls
409
+ .map((c) => resultMap.get(c.id))
410
+ .filter(Boolean);
411
+ for (const r of orderedResults) {
412
+ recorder.recordToolResult(r);
413
+ }
414
+ if (terminate) {
415
+ await this.extensionDispatch?.("agent_settled", {
416
+ type: "agent_settled",
198
417
  });
418
+ return text;
199
419
  }
200
420
  }
201
421
  return "TASK_BUDGET_REACHED";
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Message, ModelRequest } from "../types.js";
2
+ import type { ProviderAdapter } from "../providers/types.js";
3
+ export interface ModelTurnRequest {
4
+ provider: ProviderAdapter;
5
+ model: string;
6
+ messages: Message[];
7
+ tools: ModelRequest["tools"];
8
+ effort: string;
9
+ signal: AbortSignal;
10
+ }
11
+ export type ModelTurnEvent = {
12
+ type: "thinking_delta";
13
+ text: string;
14
+ } | {
15
+ type: "assistant_delta";
16
+ text: string;
17
+ } | {
18
+ type: "assistant_text";
19
+ text: string;
20
+ } | {
21
+ type: "final";
22
+ response: {
23
+ message: Message;
24
+ toolCalls?: ModelRequest extends {
25
+ tools: infer T;
26
+ } ? unknown : unknown;
27
+ usage?: {
28
+ input?: number;
29
+ output?: number;
30
+ };
31
+ };
32
+ streamedText: string;
33
+ };
34
+ export declare class ModelTurn {
35
+ static run(request: ModelTurnRequest): AsyncGenerator<ModelTurnEvent, any, any>;
36
+ }
37
+ export declare function runModelTurn(request: ModelTurnRequest): AsyncGenerator<ModelTurnEvent>;
@@ -0,0 +1,53 @@
1
+ export class ModelTurn {
2
+ static run(request) {
3
+ return runModelTurn(request);
4
+ }
5
+ }
6
+ export async function* runModelTurn(request) {
7
+ const modelRequest = {
8
+ model: request.model,
9
+ messages: request.messages,
10
+ tools: request.tools,
11
+ signal: request.signal,
12
+ options: { effort: request.effort },
13
+ };
14
+ if (typeof request.provider.stream === "function") {
15
+ let response;
16
+ let streamedText = "";
17
+ for await (const ev of request.provider.stream(modelRequest)) {
18
+ if (ev.type === "thinking") {
19
+ yield { type: "thinking_delta", text: ev.text };
20
+ }
21
+ else if (ev.type === "text") {
22
+ streamedText += ev.text;
23
+ yield { type: "assistant_delta", text: ev.text };
24
+ }
25
+ else if (ev.type === "done") {
26
+ response = ev.response;
27
+ }
28
+ }
29
+ if (!response) {
30
+ response = {
31
+ message: {
32
+ role: "assistant",
33
+ content: streamedText
34
+ ? [{ type: "text", text: streamedText }]
35
+ : undefined,
36
+ },
37
+ toolCalls: [],
38
+ finishReason: "stop",
39
+ };
40
+ }
41
+ yield { type: "final", response, streamedText };
42
+ return;
43
+ }
44
+ const response = await request.provider.generate(modelRequest);
45
+ const text = response.message.content
46
+ ?.map((p) => (p.type === "text" ? p.text : ""))
47
+ .join("") ?? "";
48
+ if (text) {
49
+ yield { type: "assistant_text", text };
50
+ }
51
+ yield { type: "final", response, streamedText: text };
52
+ }
53
+ //# sourceMappingURL=model-turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-turn.js","sourceRoot":"","sources":["../../src/agent/model-turn.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,GAAG,CAAC,OAAyB;QAClC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,OAAyB;IAEzB,MAAM,YAAY,GAAiB;QACjC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;KACpC,CAAC;IAEF,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClD,IAAI,QAAa,CAAC;QAClB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAClD,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,YAAY;wBACnB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;wBACxC,CAAC,CAAC,SAAS;iBACd;gBACD,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,MAAM;aACrB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,IAAI,GACR,QAAQ,CAAC,OAAO,CAAC,OAAO;QACtB,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACpB,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_SYSTEM_PROMPT = "You are Atom-lite, an AI coding agent built by Beast-ofcourse[Bhavin bogam]\n\nYour goal is to understand the user's intent and accomplish tasks accurately with minimal overhead.\n\n- Explore the codebase before making changes.\n- Use tools proactively; never guess when you can verify.\n- Prefer simple, maintainable solutions over unnecessary complexity.\n- Execute independent tool calls in parallel when safe.\n- Read relevant context before editing.\n- Preserve existing conventions and avoid unrelated changes.\n- Verify changes with tests, builds, or other appropriate checks.\n- Recover intelligently from errors instead of repeating failed approaches.\n- Be honest about limitations, failures, and unverified results.\n- Manage context efficiently; retain important information during compaction.\n- Ask for clarification only when genuinely necessary.\n- Never claim to have performed an action you did not perform.\n\nYou are autonomous, but not reckless. Prioritize correctness, efficiency, and user intent.\n\nBe concise. Focus on execution, not narration.";
@@ -0,0 +1,23 @@
1
+ // Default system prompt for Atom-lite. Kept short: project instructions and
2
+ // the skill index are appended by ContextManager on top of this.
3
+ export const DEFAULT_SYSTEM_PROMPT = `You are Atom-lite, an AI coding agent built by Beast-ofcourse[Bhavin bogam]
4
+
5
+ Your goal is to understand the user's intent and accomplish tasks accurately with minimal overhead.
6
+
7
+ - Explore the codebase before making changes.
8
+ - Use tools proactively; never guess when you can verify.
9
+ - Prefer simple, maintainable solutions over unnecessary complexity.
10
+ - Execute independent tool calls in parallel when safe.
11
+ - Read relevant context before editing.
12
+ - Preserve existing conventions and avoid unrelated changes.
13
+ - Verify changes with tests, builds, or other appropriate checks.
14
+ - Recover intelligently from errors instead of repeating failed approaches.
15
+ - Be honest about limitations, failures, and unverified results.
16
+ - Manage context efficiently; retain important information during compaction.
17
+ - Ask for clarification only when genuinely necessary.
18
+ - Never claim to have performed an action you did not perform.
19
+
20
+ You are autonomous, but not reckless. Prioritize correctness, efficiency, and user intent.
21
+
22
+ Be concise. Focus on execution, not narration.`;
23
+ //# sourceMappingURL=system-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,iEAAiE;AAEjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;+CAmBU,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Message } from "../types.js";
2
+ export interface TurnRecorderOptions {
3
+ session: {
4
+ appendMessage(message: Message): void;
5
+ };
6
+ onEvent?: (event: unknown) => void;
7
+ extensionDispatch?: (event: string, payload: any) => Promise<any[]> | any[];
8
+ }
9
+ export declare class TurnRecorder {
10
+ private session;
11
+ private onEvent;
12
+ private extensionDispatch;
13
+ constructor(options: TurnRecorderOptions);
14
+ recordAssistant(response: {
15
+ message: Message;
16
+ toolCalls?: Array<{
17
+ id: string;
18
+ name: string;
19
+ arguments: Record<string, unknown>;
20
+ }>;
21
+ usage?: {
22
+ input?: number;
23
+ output?: number;
24
+ };
25
+ }, streamedText: string): Promise<string>;
26
+ recordToolResult(result: {
27
+ toolCallId: string;
28
+ name: string;
29
+ content: string;
30
+ isError?: boolean;
31
+ diff?: string[];
32
+ }): void;
33
+ }