@element47/ag 4.4.3 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/registry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/registry.test.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,17 @@ export declare class Agent implements SkillHost {
30
30
  private refreshCache;
31
31
  private getProjectListing;
32
32
  private get systemPrompt();
33
+ /** Build the JSON request body for chat completions, with prompt caching for supported models */
34
+ private buildRequestBody;
33
35
  activateSkill(name: string): Promise<string>;
34
36
  private compactConversation;
35
- chat(content: string): Promise<string>;
36
- chatStream(content: string): AsyncGenerator<StreamChunk>;
37
+ chat(content: string, signal?: AbortSignal): Promise<string>;
38
+ chatStream(content: string, signal?: AbortSignal): AsyncGenerator<StreamChunk>;
39
+ /** Return the char-size breakdown of every context component */
40
+ getContextBreakdown(): Array<{
41
+ label: string;
42
+ chars: number;
43
+ }>;
37
44
  getTools(): Array<{
38
45
  name: string;
39
46
  description: string;
@@ -84,5 +91,7 @@ export declare class Agent implements SkillHost {
84
91
  getContextDetails(): string;
85
92
  getContextTracker(): ContextTracker;
86
93
  getSystemPromptSize(): number;
94
+ /** Total estimated chars across all context components (system prompt + tools + messages) */
95
+ getTotalContextChars(): number;
87
96
  }
88
97
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,16 @@ export function truncateToolResult(result) {
118
118
  const omitted = lines.length - TRUNCATION_HEAD_LINES - TRUNCATION_TAIL_LINES;
119
119
  return [...head, `\n... [${omitted} lines truncated] ...\n`, ...tail].join('\n');
120
120
  }
121
+ /** Yield promise results as they resolve (like Promise.all but streaming) */
122
+ async function* raceAll(promises) {
123
+ const wrapped = promises.map((p, i) => p.then(v => ({ i, v })));
124
+ const settled = new Set();
125
+ while (settled.size < promises.length) {
126
+ const result = await Promise.race(wrapped.filter((_, idx) => !settled.has(idx)));
127
+ settled.add(result.i);
128
+ yield result.v;
129
+ }
130
+ }
121
131
  export class Agent {
122
132
  apiKey;
123
133
  model;
@@ -178,6 +188,7 @@ export class Agent {
178
188
  - Be concise. Short responses, no filler, no trailing summaries of what you just did.
179
189
  - When referencing code, include the file path and relevant context.
180
190
  - Only use markdown formatting when it aids clarity.
191
+ - Always follow instructions in <global-memory> — these are persistent user preferences that override defaults.
181
192
 
182
193
  # Verification
183
194
  - After making changes, verify they work: run tests, check for syntax errors, or start the dev server as appropriate.
@@ -282,6 +293,24 @@ export class Agent {
282
293
  }
283
294
  return parts.join('\n\n');
284
295
  }
296
+ /** Build the JSON request body for chat completions, with prompt caching for supported models */
297
+ buildRequestBody(stream) {
298
+ const body = {
299
+ model: this.model,
300
+ messages: [{ role: 'system', content: this.systemPrompt }, ...this.messages],
301
+ tools: Array.from(this.tools.values()).map(t => ({ type: t.type, function: t.function })),
302
+ tool_choice: 'auto',
303
+ };
304
+ if (stream) {
305
+ body.stream = true;
306
+ body.stream_options = { include_usage: true };
307
+ }
308
+ // Enable prompt caching for Anthropic models (top-level cache_control)
309
+ if (this.model.startsWith('anthropic/') || this.model.includes('claude')) {
310
+ body.cache_control = { type: 'ephemeral' };
311
+ }
312
+ return body;
313
+ }
285
314
  async activateSkill(name) {
286
315
  const skill = this.allSkills.find(s => s.name === name);
287
316
  if (!skill)
@@ -368,7 +397,7 @@ export class Agent {
368
397
  stopSpinner();
369
398
  }
370
399
  }
371
- async chat(content) {
400
+ async chat(content, signal) {
372
401
  const userMessage = { role: 'user', content };
373
402
  this.messages.push(userMessage);
374
403
  appendHistory(userMessage, this.cwd);
@@ -377,6 +406,10 @@ export class Agent {
377
406
  this.messages = this.messages.slice(-MAX_MESSAGES);
378
407
  }
379
408
  for (let i = 0; i < this.maxIterations; i++) {
409
+ if (signal?.aborted) {
410
+ this.messages.push({ role: 'assistant', content: '[interrupted by user]' });
411
+ return '[interrupted by user]';
412
+ }
380
413
  const iterLabel = this.maxIterations > 1 ? ` [${i + 1}/${this.maxIterations}]` : '';
381
414
  const stopSpinner = startSpinner(`thinking${iterLabel}`);
382
415
  let msg;
@@ -384,12 +417,8 @@ export class Agent {
384
417
  const res = await fetch(`${this.baseURL}/chat/completions`, {
385
418
  method: 'POST',
386
419
  headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${this.apiKey}` },
387
- body: JSON.stringify({
388
- model: this.model,
389
- messages: [{ role: 'system', content: this.systemPrompt }, ...this.messages],
390
- tools: Array.from(this.tools.values()).map(t => ({ type: t.type, function: t.function })),
391
- tool_choice: 'auto'
392
- })
420
+ body: JSON.stringify(this.buildRequestBody(false)),
421
+ signal
393
422
  });
394
423
  if (!res.ok)
395
424
  throw new Error(`API ${res.status}: ${await res.text()}`);
@@ -431,8 +460,8 @@ export class Agent {
431
460
  }
432
461
  }
433
462
  this.messages.push(msg);
463
+ appendHistory(msg, this.cwd);
434
464
  if (!msg.tool_calls?.length) {
435
- appendHistory({ role: 'assistant', content: msg.content || '' }, this.cwd);
436
465
  return msg.content || '';
437
466
  }
438
467
  // Execute tool calls in parallel
@@ -477,11 +506,12 @@ export class Agent {
477
506
  const results = await Promise.all(toolPromises);
478
507
  for (const { call, content } of results) {
479
508
  this.messages.push({ role: 'tool', tool_call_id: call.id, content });
509
+ appendHistory({ role: 'tool', tool_call_id: call.id, content }, this.cwd);
480
510
  }
481
511
  }
482
512
  return MAX_ITERATIONS_REACHED;
483
513
  }
484
- async *chatStream(content) {
514
+ async *chatStream(content, signal) {
485
515
  const userMessage = { role: 'user', content };
486
516
  this.messages.push(userMessage);
487
517
  appendHistory(userMessage, this.cwd);
@@ -489,6 +519,12 @@ export class Agent {
489
519
  this.messages = this.messages.slice(-MAX_MESSAGES);
490
520
  }
491
521
  for (let i = 0; i < this.maxIterations; i++) {
522
+ // ── Abort check: top of iteration ──
523
+ if (signal?.aborted) {
524
+ this.messages.push({ role: 'assistant', content: '[interrupted by user]' });
525
+ yield { type: 'interrupted' };
526
+ return;
527
+ }
492
528
  const iterLabel = this.maxIterations > 1 ? ` [${i + 1}/${this.maxIterations}]` : '';
493
529
  yield { type: 'thinking', content: `thinking${iterLabel}` };
494
530
  // Compact if needed
@@ -513,17 +549,24 @@ export class Agent {
513
549
  this.compactionInProgress = false;
514
550
  }
515
551
  }
516
- const res = await fetch(`${this.baseURL}/chat/completions`, {
517
- method: 'POST',
518
- headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${this.apiKey}` },
519
- body: JSON.stringify({
520
- model: this.model,
521
- messages: [{ role: 'system', content: this.systemPrompt }, ...this.messages],
522
- tools: Array.from(this.tools.values()).map(t => ({ type: t.type, function: t.function })),
523
- tool_choice: 'auto',
524
- stream: true
525
- })
526
- });
552
+ // ── API call with abort signal ──
553
+ let res;
554
+ try {
555
+ res = await fetch(`${this.baseURL}/chat/completions`, {
556
+ method: 'POST',
557
+ headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${this.apiKey}` },
558
+ body: JSON.stringify(this.buildRequestBody(true)),
559
+ signal
560
+ });
561
+ }
562
+ catch (e) {
563
+ if (e instanceof DOMException && e.name === 'AbortError') {
564
+ this.messages.push({ role: 'assistant', content: '[interrupted by user]' });
565
+ yield { type: 'interrupted' };
566
+ return;
567
+ }
568
+ throw e;
569
+ }
527
570
  if (!res.ok)
528
571
  throw new Error(`API ${res.status}: ${await res.text()}`);
529
572
  if (!res.body)
@@ -532,62 +575,89 @@ export class Agent {
532
575
  let assistantContent = '';
533
576
  const toolCalls = new Map();
534
577
  let usage = null;
578
+ let streamAborted = false;
535
579
  const reader = res.body.getReader();
536
580
  const decoder = new TextDecoder();
537
581
  let buffer = '';
538
- while (true) {
539
- const { done, value } = await reader.read();
540
- if (done)
541
- break;
542
- buffer += decoder.decode(value, { stream: true });
543
- const lines = buffer.split('\n');
544
- buffer = lines.pop() || '';
545
- for (const line of lines) {
546
- if (!line.startsWith('data: '))
547
- continue;
548
- const data = line.slice(6).trim();
549
- if (data === '[DONE]')
550
- continue;
551
- let parsed;
552
- try {
553
- parsed = JSON.parse(data);
554
- }
555
- catch {
556
- continue;
582
+ try {
583
+ while (true) {
584
+ if (signal?.aborted) {
585
+ streamAborted = true;
586
+ break;
557
587
  }
558
- const delta = parsed.choices?.[0]?.delta;
559
- if (!delta) {
588
+ const { done, value } = await reader.read();
589
+ if (done)
590
+ break;
591
+ buffer += decoder.decode(value, { stream: true });
592
+ const lines = buffer.split('\n');
593
+ buffer = lines.pop() || '';
594
+ for (const line of lines) {
595
+ if (!line.startsWith('data: '))
596
+ continue;
597
+ const data = line.slice(6).trim();
598
+ if (data === '[DONE]')
599
+ continue;
600
+ let parsed;
601
+ try {
602
+ parsed = JSON.parse(data);
603
+ }
604
+ catch {
605
+ continue;
606
+ }
607
+ // Capture usage from any chunk that has it (may coexist with delta)
560
608
  if (parsed.usage)
561
609
  usage = parsed.usage;
562
- continue;
563
- }
564
- // Text content
565
- if (delta.content) {
566
- assistantContent += delta.content;
567
- yield { type: 'text', content: delta.content };
568
- }
569
- // Tool calls (streamed incrementally)
570
- if (delta.tool_calls) {
571
- // Signal spinner on first tool_call delta so the user sees activity
572
- if (toolCalls.size === 0) {
573
- yield { type: 'thinking', content: 'running tools' };
610
+ const delta = parsed.choices?.[0]?.delta;
611
+ if (!delta)
612
+ continue;
613
+ // Text content
614
+ if (delta.content) {
615
+ assistantContent += delta.content;
616
+ yield { type: 'text', content: delta.content };
574
617
  }
575
- for (const tc of delta.tool_calls) {
576
- const idx = tc.index ?? 0;
577
- if (!toolCalls.has(idx)) {
578
- toolCalls.set(idx, { id: tc.id || '', name: tc.function?.name || '', arguments: '' });
618
+ // Tool calls (streamed incrementally)
619
+ if (delta.tool_calls) {
620
+ for (const tc of delta.tool_calls) {
621
+ const idx = tc.index ?? 0;
622
+ if (!toolCalls.has(idx)) {
623
+ toolCalls.set(idx, { id: tc.id || '', name: tc.function?.name || '', arguments: '' });
624
+ }
625
+ const entry = toolCalls.get(idx);
626
+ if (tc.id)
627
+ entry.id = tc.id;
628
+ if (tc.function?.name) {
629
+ entry.name = tc.function.name;
630
+ // Show tool names as they arrive (replaces spinner in real-time)
631
+ const names = [...toolCalls.values()].map(t => t.name).filter(Boolean);
632
+ yield { type: 'thinking', content: `preparing ${names.join(', ')}` };
633
+ }
634
+ if (tc.function?.arguments)
635
+ entry.arguments += tc.function.arguments;
579
636
  }
580
- const entry = toolCalls.get(idx);
581
- if (tc.id)
582
- entry.id = tc.id;
583
- if (tc.function?.name)
584
- entry.name = tc.function.name;
585
- if (tc.function?.arguments)
586
- entry.arguments += tc.function.arguments;
587
637
  }
588
638
  }
589
639
  }
590
640
  }
641
+ catch (e) {
642
+ if (e instanceof DOMException && e.name === 'AbortError') {
643
+ streamAborted = true;
644
+ }
645
+ else {
646
+ throw e;
647
+ }
648
+ }
649
+ finally {
650
+ try {
651
+ reader.cancel();
652
+ }
653
+ catch { /* already closed */ }
654
+ }
655
+ // If aborted during streaming, discard partial message
656
+ if (streamAborted) {
657
+ this.messages.push({ role: 'assistant', content: '[interrupted by user]' });
658
+ yield { type: 'interrupted' };
659
+ return;
660
+ }
591
661
  if (usage)
592
662
  this.contextTracker.update(usage);
593
663
  // Build assistant message
@@ -600,8 +670,8 @@ export class Agent {
600
670
  }));
601
671
  }
602
672
  this.messages.push(msg);
673
+ appendHistory(msg, this.cwd);
603
674
  if (!msg.tool_calls?.length) {
604
- appendHistory({ role: 'assistant', content: assistantContent }, this.cwd);
605
675
  yield { type: 'done', content: assistantContent };
606
676
  return;
607
677
  }
@@ -616,8 +686,10 @@ export class Agent {
616
686
  const summary = args.command ?? args.action ?? call.function.name;
617
687
  yield { type: 'tool_start', toolName: call.function.name, toolCallId: call.id, content: summary };
618
688
  }
619
- // Execute tool calls in parallel
689
+ // Execute tool calls yield results as they complete (not Promise.all)
620
690
  const execPromises = msg.tool_calls.map(async (call) => {
691
+ if (signal?.aborted)
692
+ return { call, content: '[cancelled by user]', isError: true };
621
693
  const tool = this.tools.get(call.function.name);
622
694
  if (!tool)
623
695
  return { call, content: `Error: unknown tool "${call.function.name}"`, isError: true };
@@ -645,15 +717,81 @@ export class Agent {
645
717
  return { call, content: `Tool error: ${error}`, isError: true };
646
718
  }
647
719
  });
648
- const execResults = await Promise.all(execPromises);
649
- for (const r of execResults) {
720
+ // Yield results as they resolve (not waiting for all)
721
+ const completedCallIds = new Set();
722
+ for await (const r of raceAll(execPromises)) {
723
+ completedCallIds.add(r.call.id);
650
724
  this.messages.push({ role: 'tool', tool_call_id: r.call.id, content: r.content });
725
+ appendHistory({ role: 'tool', tool_call_id: r.call.id, content: r.content }, this.cwd);
651
726
  yield { type: 'tool_end', toolName: r.call.function.name, toolCallId: r.call.id, content: r.content, success: !r.isError };
727
+ // Check abort after each tool completes
728
+ if (signal?.aborted)
729
+ break;
730
+ }
731
+ // Fill placeholders for any tool calls that didn't complete (API requires all tool_call_ids)
732
+ if (signal?.aborted && msg.tool_calls) {
733
+ for (const call of msg.tool_calls) {
734
+ if (!completedCallIds.has(call.id)) {
735
+ const placeholder = { role: 'tool', tool_call_id: call.id, content: '[cancelled by user]' };
736
+ this.messages.push(placeholder);
737
+ appendHistory(placeholder, this.cwd);
738
+ }
739
+ }
740
+ this.messages.push({ role: 'assistant', content: '[interrupted by user]' });
741
+ yield { type: 'interrupted', content: `${completedCallIds.size} completed, ${msg.tool_calls.length - completedCallIds.size} cancelled` };
742
+ return;
652
743
  }
653
744
  }
654
745
  yield { type: 'max_iterations' };
655
746
  }
656
747
  // ── Public API ─────────────────────────────────────────────────────────────
748
+ /** Return the char-size breakdown of every context component */
749
+ getContextBreakdown() {
750
+ const parts = [];
751
+ parts.push({ label: 'System prompt', chars: this.baseSystemPrompt.length });
752
+ parts.push({ label: 'Environment', chars: getEnvironmentContext(this.cwd).length });
753
+ const listing = this.getProjectListing();
754
+ if (listing)
755
+ parts.push({ label: 'Project files', chars: listing.length });
756
+ // cachedContext contains global memory + project memory + plan, but we want them separate
757
+ const globalMem = loadGlobalMemory(this.cwd);
758
+ const projectMem = loadProjectMemory(this.cwd);
759
+ const plan = loadPlan(this.cwd);
760
+ if (globalMem)
761
+ parts.push({ label: 'Global memory', chars: globalMem.length + '<global-memory>\n\n</global-memory>'.length });
762
+ if (projectMem)
763
+ parts.push({ label: 'Project memory', chars: projectMem.length + '<project-memory>\n\n</project-memory>'.length });
764
+ if (plan)
765
+ parts.push({ label: 'Plan', chars: plan.length + 50 /* tags + header */ });
766
+ if (this.cachedCatalog)
767
+ parts.push({ label: 'Skill catalog', chars: this.cachedCatalog.length });
768
+ if (this.cachedAlwaysOn)
769
+ parts.push({ label: 'Always-on skills', chars: this.cachedAlwaysOn.length });
770
+ if (this.activeSkillContent.length > 0) {
771
+ parts.push({ label: 'Active skills', chars: this.activeSkillContent.join('\n\n').length });
772
+ }
773
+ // Tool definitions (sent in every API call as the tools array)
774
+ const builtinChars = Array.from(this.tools.values())
775
+ .filter(t => this.builtinToolNames.has(t.function.name))
776
+ .reduce((sum, t) => sum + JSON.stringify({ type: t.type, function: t.function }).length, 0);
777
+ const customChars = Array.from(this.tools.values())
778
+ .filter(t => !this.builtinToolNames.has(t.function.name))
779
+ .reduce((sum, t) => sum + JSON.stringify({ type: t.type, function: t.function }).length, 0);
780
+ if (builtinChars > 0)
781
+ parts.push({ label: 'Tool definitions', chars: builtinChars });
782
+ if (customChars > 0)
783
+ parts.push({ label: 'Custom tools', chars: customChars });
784
+ // Messages (conversation history)
785
+ const msgChars = this.messages.reduce((sum, m) => {
786
+ let size = (m.content || '').length;
787
+ if (m.tool_calls)
788
+ size += JSON.stringify(m.tool_calls).length;
789
+ return sum + size;
790
+ }, 0);
791
+ if (msgChars > 0)
792
+ parts.push({ label: 'Messages', chars: msgChars });
793
+ return parts;
794
+ }
657
795
  getTools() {
658
796
  return Array.from(this.tools.values()).map(t => ({ name: t.function.name, description: t.function.description }));
659
797
  }
@@ -708,5 +846,9 @@ export class Agent {
708
846
  getContextDetails() { return this.contextTracker.formatDetailed(); }
709
847
  getContextTracker() { return this.contextTracker; }
710
848
  getSystemPromptSize() { return this.systemPrompt.length; }
849
+ /** Total estimated chars across all context components (system prompt + tools + messages) */
850
+ getTotalContextChars() {
851
+ return this.getContextBreakdown().reduce((sum, p) => sum + p.chars, 0);
852
+ }
711
853
  }
712
854
  //# sourceMappingURL=agent.js.map