shennian 0.1.25 → 0.1.26

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,4 +1,5 @@
1
- // @arch docs/product/PRD_phase_2.md#四、CLI-内置基础-Agent(Pi-Agent)
1
+ // @arch docs/architecture/cli/agent-adapters.md#pi-agent-上下文管理
2
+ // @test src/__tests__/pi-context.test.ts
2
3
  import { randomUUID } from 'node:crypto';
3
4
  import fs from 'node:fs';
4
5
  import path from 'node:path';
@@ -33,7 +34,11 @@ const SYSTEM_PROMPT = `你是神念内置编程助手,运行在用户本地机
33
34
  // ── Context compression ──────────────────────────────────────────────────────
34
35
  const CONTEXT_TOKEN_THRESHOLD = 90_000;
35
36
  const KEEP_RECENT_MESSAGES = 6;
36
- const SUMMARY_DIR = path.join(os.homedir(), '.shennian', 'sessions');
37
+ const SESSIONS_DIR = path.join(os.homedir(), '.shennian', 'sessions');
38
+ const SUMMARY_FILENAME = 'summary.json';
39
+ const SNAPSHOT_FILENAME = 'snapshot.json';
40
+ const MESSAGES_FILENAME = 'messages.jsonl';
41
+ const LEGACY_SUMMARY_FILENAME = 'pi-context.json';
37
42
  function estimateTokens(messages) {
38
43
  let chars = 0;
39
44
  for (const msg of messages)
@@ -52,13 +57,125 @@ function messagesToText(messages) {
52
57
  lines.push(`[${role}] ${c.text.slice(0, 500)}`);
53
58
  }
54
59
  else if (c.type === 'toolCall') {
55
- lines.push(`[${role}] tool:${c.toolName}(${JSON.stringify(c.args).slice(0, 200)})`);
60
+ const name = typeof c.name === 'string'
61
+ ? c.name
62
+ : typeof c.toolName === 'string'
63
+ ? c.toolName
64
+ : 'tool';
65
+ const args = c.arguments ?? c.args ?? {};
66
+ lines.push(`[${role}] tool:${name}(${JSON.stringify(args).slice(0, 200)})`);
56
67
  }
57
68
  }
58
69
  }
59
70
  return lines.join('\n');
60
71
  }
72
+ function cloneMessages(messages) {
73
+ return JSON.parse(JSON.stringify(messages));
74
+ }
75
+ function getSessionDir(sessionId) {
76
+ return path.join(SESSIONS_DIR, sessionId);
77
+ }
78
+ function getMessageContentText(content) {
79
+ if (!content || typeof content !== 'object')
80
+ return null;
81
+ const chunk = content;
82
+ if (chunk.type === 'text' && typeof chunk.text === 'string')
83
+ return chunk.text;
84
+ if (chunk.type === 'thinking' && typeof chunk.thinking === 'string')
85
+ return `[thinking] ${chunk.thinking}`;
86
+ if (chunk.type === 'toolCall') {
87
+ const name = typeof chunk.name === 'string'
88
+ ? chunk.name
89
+ : typeof chunk.toolName === 'string'
90
+ ? chunk.toolName
91
+ : 'tool';
92
+ const args = chunk.arguments ?? chunk.args ?? {};
93
+ return `[toolCall] ${name}(${JSON.stringify(args).slice(0, 300)})`;
94
+ }
95
+ if (chunk.type === 'image' && typeof chunk.mimeType === 'string') {
96
+ return `[image] ${chunk.mimeType}`;
97
+ }
98
+ return null;
99
+ }
100
+ function buildRollingSummary(cachedSummary, messages) {
101
+ const recentLines = [];
102
+ for (const msg of messages) {
103
+ const role = String(msg.role ?? 'unknown');
104
+ const content = Array.isArray(msg.content)
105
+ ? msg.content
106
+ : [];
107
+ for (const chunk of content) {
108
+ const text = getMessageContentText(chunk);
109
+ if (text)
110
+ recentLines.push(`[${role}] ${text}`);
111
+ }
112
+ }
113
+ const recent = recentLines.slice(-8).join('\n').trim();
114
+ const summary = recent || cachedSummary?.trim() || null;
115
+ if (!summary)
116
+ return null;
117
+ return summary.length > 2000 ? summary.slice(summary.length - 2000) : summary;
118
+ }
119
+ function longestCommonPrefixLength(left, right) {
120
+ const max = Math.min(left.length, right.length);
121
+ for (let i = 0; i < max; i++) {
122
+ if (JSON.stringify(left[i]) !== JSON.stringify(right[i]))
123
+ return i;
124
+ }
125
+ return max;
126
+ }
127
+ async function requestProxySummary(proxyUrl, authToken, prompt) {
128
+ const response = await fetch(`${proxyUrl}/api/stream`, {
129
+ method: 'POST',
130
+ headers: {
131
+ 'Content-Type': 'application/json',
132
+ 'Authorization': `Bearer ${authToken}`,
133
+ },
134
+ body: JSON.stringify({
135
+ model: createPiModel('qwen-plus'),
136
+ context: {
137
+ messages: [
138
+ {
139
+ role: 'user',
140
+ content: [{ type: 'text', text: prompt }],
141
+ },
142
+ ],
143
+ },
144
+ options: {
145
+ temperature: 0.3,
146
+ maxTokens: 500,
147
+ },
148
+ }),
149
+ });
150
+ if (!response.ok || !response.body)
151
+ return null;
152
+ const reader = response.body.getReader();
153
+ const decoder = new TextDecoder();
154
+ const parts = [];
155
+ let buffer = '';
156
+ while (true) {
157
+ const { done, value } = await reader.read();
158
+ if (done)
159
+ break;
160
+ buffer += decoder.decode(value, { stream: true });
161
+ const lines = buffer.split('\n');
162
+ buffer = lines.pop() ?? '';
163
+ for (const line of lines) {
164
+ if (!line.startsWith('data: '))
165
+ continue;
166
+ const raw = line.slice(6).trim();
167
+ if (!raw)
168
+ continue;
169
+ const event = JSON.parse(raw);
170
+ if (event.type === 'text_delta' && typeof event.delta === 'string') {
171
+ parts.push(event.delta);
172
+ }
173
+ }
174
+ }
175
+ return parts.join('').trim() || null;
176
+ }
61
177
  // ── Local tools ───────────────────────────────────────────────────────────────
178
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
179
  function makeTools(workDir) {
63
180
  return [
64
181
  {
@@ -211,15 +328,25 @@ export class PiAdapter extends AgentAdapter {
211
328
  terminalState = 'open';
212
329
  authToken = null;
213
330
  proxyUrl = null;
331
+ sessionDir = null;
332
+ messagesPath = null;
333
+ snapshotPath = null;
214
334
  summaryPath = null;
215
335
  cachedSummary = null;
336
+ restoredMessages = [];
216
337
  compressing = false;
217
338
  lastSummaryMsgCount = 0;
339
+ pendingBaseMessages = [];
340
+ finalizePromise = Promise.resolve();
218
341
  async start(sessionId, workDir, _agentSessionId) {
219
342
  this.sessionId = sessionId;
220
343
  this.workDir = workDir;
221
344
  this.seq = 0;
222
- this.summaryPath = path.join(SUMMARY_DIR, sessionId, 'pi-context.json');
345
+ this.sessionDir = getSessionDir(sessionId);
346
+ this.messagesPath = path.join(this.sessionDir, MESSAGES_FILENAME);
347
+ this.snapshotPath = path.join(this.sessionDir, SNAPSHOT_FILENAME);
348
+ this.summaryPath = path.join(this.sessionDir, SUMMARY_FILENAME);
349
+ this.loadSnapshot();
223
350
  this.loadSummary();
224
351
  }
225
352
  async send(text, modelId) {
@@ -242,10 +369,13 @@ export class PiAdapter extends AgentAdapter {
242
369
  if (!this.agent) {
243
370
  this.initAgent();
244
371
  }
372
+ await this.finalizePromise.catch(() => { });
245
373
  this.agent?.setModel(createPiModel(modelId ?? PI_DEFAULT_MODEL_ID));
374
+ this.pendingBaseMessages = cloneMessages(this.agent?.state.messages ?? []);
246
375
  this.emit('agentEvent', { state: 'init', runId: this.runId, seq: ++this.seq });
247
376
  try {
248
377
  await this.agent.prompt(text);
378
+ await this.finalizePromise.catch(() => { });
249
379
  }
250
380
  catch (err) {
251
381
  if (this.terminalState !== 'open')
@@ -269,7 +399,6 @@ export class PiAdapter extends AgentAdapter {
269
399
  initAgent() {
270
400
  const workDir = this.workDir ?? process.cwd();
271
401
  const tools = makeTools(workDir);
272
- const self = this;
273
402
  const agent = new Agent({
274
403
  initialState: {
275
404
  systemPrompt: SYSTEM_PROMPT + `\n\n当前工作目录:${workDir}`,
@@ -278,13 +407,16 @@ export class PiAdapter extends AgentAdapter {
278
407
  },
279
408
  streamFn: (model, context, options) => streamProxy(model, context, {
280
409
  ...options,
281
- authToken: self.authToken,
282
- proxyUrl: self.proxyUrl,
410
+ authToken: this.authToken,
411
+ proxyUrl: this.proxyUrl,
283
412
  }),
284
- transformContext: (messages) => self.compressContext(messages),
413
+ transformContext: (messages) => this.compressContext(messages),
285
414
  });
286
415
  this.agent = agent;
287
- if (this.cachedSummary) {
416
+ if (this.restoredMessages.length > 0) {
417
+ agent.replaceMessages(cloneMessages(this.restoredMessages));
418
+ }
419
+ else if (this.cachedSummary) {
288
420
  agent.appendMessage({
289
421
  role: 'user',
290
422
  content: [{ type: 'text', text: `[之前的对话摘要]\n${this.cachedSummary}` }],
@@ -297,13 +429,13 @@ export class PiAdapter extends AgentAdapter {
297
429
  });
298
430
  }
299
431
  agent.subscribe((evt) => {
300
- if (self.terminalState !== 'open')
432
+ if (this.terminalState !== 'open')
301
433
  return;
302
- const seq = ++self.seq;
303
- const runId = self.runId;
434
+ const seq = ++this.seq;
435
+ const runId = this.runId;
304
436
  switch (evt.type) {
305
437
  case 'agent_start':
306
- self.emit('agentEvent', { state: 'start', runId, seq });
438
+ this.emit('agentEvent', { state: 'start', runId, seq });
307
439
  break;
308
440
  case 'message_update': {
309
441
  const msg = evt.message;
@@ -314,50 +446,54 @@ export class PiAdapter extends AgentAdapter {
314
446
  const c = content[i];
315
447
  if (c.type === 'text' && c.text) {
316
448
  const key = `text:${i}`;
317
- const prev = self.emittedLengths.get(key) ?? 0;
449
+ const prev = this.emittedLengths.get(key) ?? 0;
318
450
  if (c.text.length > prev) {
319
451
  const delta = c.text.slice(prev);
320
- self.emittedLengths.set(key, c.text.length);
321
- self.emit('agentEvent', { state: 'delta', runId, seq, text: delta });
452
+ this.emittedLengths.set(key, c.text.length);
453
+ this.emit('agentEvent', { state: 'delta', runId, seq, text: delta });
322
454
  }
323
455
  }
324
456
  else if (c.type === 'thinking' && c.thinking) {
325
457
  const key = `thinking:${i}`;
326
- const prev = self.emittedLengths.get(key) ?? 0;
458
+ const prev = this.emittedLengths.get(key) ?? 0;
327
459
  if (c.thinking.length > prev) {
328
460
  const delta = c.thinking.slice(prev);
329
- self.emittedLengths.set(key, c.thinking.length);
330
- self.emit('agentEvent', { state: 'delta', runId, seq, text: delta, thinking: true });
461
+ this.emittedLengths.set(key, c.thinking.length);
462
+ this.emit('agentEvent', { state: 'delta', runId, seq, text: delta, thinking: true });
331
463
  }
332
464
  }
333
465
  }
334
466
  break;
335
467
  }
336
468
  case 'tool_execution_start':
337
- self.emit('agentEvent', {
469
+ this.emit('agentEvent', {
338
470
  state: 'tool-call', runId, seq,
339
471
  name: evt.toolName,
340
472
  args: evt.args,
341
473
  });
342
474
  break;
343
475
  case 'tool_execution_end':
344
- self.emit('agentEvent', {
476
+ this.emit('agentEvent', {
345
477
  state: 'tool-result', runId, seq,
346
478
  name: evt.toolName,
347
479
  result: typeof evt.result === 'string' ? evt.result : JSON.stringify(evt.result),
348
480
  });
349
481
  break;
350
482
  case 'agent_end': {
351
- self.terminalState = 'final';
483
+ this.terminalState = 'final';
352
484
  const msgs = evt.messages;
353
485
  const lastAssistant = [...msgs].reverse().find((m) => m.role === 'assistant');
354
- self.emit('agentEvent', {
486
+ const usage = lastAssistant?.usage;
487
+ this.emit('agentEvent', {
355
488
  state: 'final', runId, seq,
356
- usage: lastAssistant?.usage
357
- ? { inputTokens: lastAssistant.usage.input ?? 0, outputTokens: lastAssistant.usage.output ?? 0 }
489
+ usage: usage
490
+ ? {
491
+ inputTokens: usage.input ?? 0,
492
+ outputTokens: usage.output ?? 0,
493
+ }
358
494
  : undefined,
359
495
  });
360
- self.compressAndReplace().catch(() => { });
496
+ this.finalizePromise = this.finalizeTurn(msgs);
361
497
  break;
362
498
  }
363
499
  }
@@ -383,7 +519,6 @@ export class PiAdapter extends AgentAdapter {
383
519
  return;
384
520
  this.cachedSummary = summary;
385
521
  this.lastSummaryMsgCount += split.toCompress.length;
386
- this.saveSummary();
387
522
  const replacement = [
388
523
  { role: 'user', content: [{ type: 'text', text: `[历史对话摘要]\n${summary}` }], timestamp: Date.now() },
389
524
  { role: 'assistant', content: [{ type: 'text', text: '好的,我已了解上下文。' }], timestamp: Date.now() },
@@ -431,26 +566,7 @@ export class PiAdapter extends AgentAdapter {
431
566
  if (text.length < 100)
432
567
  return null;
433
568
  const truncated = text.length > 10000 ? text.slice(0, 10000) + '\n...(已截断)' : text;
434
- const response = await fetch(`${this.proxyUrl}/v1/chat/completions`, {
435
- method: 'POST',
436
- headers: {
437
- 'Content-Type': 'application/json',
438
- 'Authorization': `Bearer ${this.authToken}`,
439
- },
440
- body: JSON.stringify({
441
- model: 'qwen-plus',
442
- messages: [{
443
- role: 'user',
444
- content: `请将以下对话历史压缩为简洁摘要,保留关键信息:讨论的文件和目录、做出的技术决定、当前任务进度、未完成的工作。摘要控制在 300 字以内。\n\n${truncated}`,
445
- }],
446
- max_tokens: 500,
447
- temperature: 0.3,
448
- }),
449
- });
450
- if (!response.ok)
451
- return this.cachedSummary;
452
- const data = await response.json();
453
- return data.choices?.[0]?.message?.content ?? null;
569
+ return await requestProxySummary(this.proxyUrl, this.authToken, `请将以下对话历史压缩为简洁摘要,保留关键信息:讨论的文件和目录、做出的技术决定、当前任务进度、未完成的工作。摘要控制在 300 字以内。\n\n${truncated}`);
454
570
  }
455
571
  catch {
456
572
  return this.cachedSummary;
@@ -460,6 +576,20 @@ export class PiAdapter extends AgentAdapter {
460
576
  }
461
577
  }
462
578
  // ── Summary persistence ────────────────────────────────────────────────────
579
+ loadSnapshot() {
580
+ if (!this.snapshotPath)
581
+ return;
582
+ try {
583
+ const raw = fs.readFileSync(this.snapshotPath, 'utf-8');
584
+ const data = JSON.parse(raw);
585
+ this.restoredMessages = Array.isArray(data.messages) ? data.messages : [];
586
+ this.cachedSummary = data.summary ?? this.cachedSummary;
587
+ this.lastSummaryMsgCount = data.summarizedCount ?? this.lastSummaryMsgCount;
588
+ }
589
+ catch {
590
+ this.restoredMessages = [];
591
+ }
592
+ }
463
593
  loadSummary() {
464
594
  if (!this.summaryPath)
465
595
  return;
@@ -470,28 +600,102 @@ export class PiAdapter extends AgentAdapter {
470
600
  this.lastSummaryMsgCount = data.summarizedCount ?? 0;
471
601
  }
472
602
  catch {
473
- // File doesn't exist or is corrupt — start fresh
603
+ if (!this.sessionDir)
604
+ return;
605
+ try {
606
+ const legacyPath = path.join(this.sessionDir, LEGACY_SUMMARY_FILENAME);
607
+ const raw = fs.readFileSync(legacyPath, 'utf-8');
608
+ const data = JSON.parse(raw);
609
+ this.cachedSummary = data.summary ?? null;
610
+ this.lastSummaryMsgCount = data.summarizedCount ?? 0;
611
+ }
612
+ catch {
613
+ // File doesn't exist or is corrupt — start fresh
614
+ }
474
615
  }
475
616
  }
476
- saveSummary() {
477
- if (!this.summaryPath || !this.cachedSummary)
617
+ saveSummary(messages) {
618
+ if (!this.summaryPath)
478
619
  return;
479
620
  try {
480
621
  fs.mkdirSync(path.dirname(this.summaryPath), { recursive: true });
622
+ const summary = buildRollingSummary(this.cachedSummary, messages);
623
+ this.cachedSummary = summary;
481
624
  fs.writeFileSync(this.summaryPath, JSON.stringify({
625
+ version: 1,
626
+ summary,
627
+ summarizedCount: this.lastSummaryMsgCount,
628
+ updatedAt: Date.now(),
629
+ }, null, 2));
630
+ }
631
+ catch {
632
+ // Best-effort persistence
633
+ }
634
+ }
635
+ saveSnapshot(messages) {
636
+ if (!this.snapshotPath || !this.sessionId || !this.workDir)
637
+ return;
638
+ try {
639
+ fs.mkdirSync(path.dirname(this.snapshotPath), { recursive: true });
640
+ fs.writeFileSync(this.snapshotPath, JSON.stringify({
641
+ version: 1,
642
+ sessionId: this.sessionId,
643
+ workDir: this.workDir,
482
644
  summary: this.cachedSummary,
483
645
  summarizedCount: this.lastSummaryMsgCount,
646
+ messages,
484
647
  updatedAt: Date.now(),
485
- }));
648
+ }, null, 2));
649
+ this.restoredMessages = cloneMessages(messages);
486
650
  }
487
651
  catch {
488
652
  // Best-effort persistence
489
653
  }
490
654
  }
655
+ appendMessagesLog(messages) {
656
+ if (!this.messagesPath || messages.length === 0)
657
+ return;
658
+ try {
659
+ fs.mkdirSync(path.dirname(this.messagesPath), { recursive: true });
660
+ const lines = messages.map((message) => JSON.stringify(message)).join('\n') + '\n';
661
+ fs.appendFileSync(this.messagesPath, lines, 'utf-8');
662
+ }
663
+ catch {
664
+ // Best-effort persistence
665
+ }
666
+ }
667
+ getTurnMessages(finalMessages) {
668
+ const prefixLength = longestCommonPrefixLength(this.pendingBaseMessages, finalMessages);
669
+ return cloneMessages(finalMessages.slice(prefixLength));
670
+ }
671
+ async finalizeTurn(finalMessages) {
672
+ const clonedFinalMessages = cloneMessages(finalMessages);
673
+ const newMessages = this.getTurnMessages(clonedFinalMessages);
674
+ this.appendMessagesLog(newMessages);
675
+ await this.compressAndReplace();
676
+ const currentMessages = this.agent
677
+ ? cloneMessages(this.agent.state.messages)
678
+ : clonedFinalMessages;
679
+ if (!this.cachedSummary) {
680
+ this.cachedSummary = buildRollingSummary(null, clonedFinalMessages);
681
+ }
682
+ this.saveSummary(currentMessages);
683
+ this.saveSnapshot(currentMessages);
684
+ }
491
685
  async resume(_agentSessionId) {
492
- // Context is restored from local summary file on next send()
686
+ this.loadSnapshot();
687
+ this.loadSummary();
688
+ if (this.agent && this.restoredMessages.length > 0) {
689
+ this.agent.replaceMessages(cloneMessages(this.restoredMessages));
690
+ }
493
691
  }
494
692
  async stop() {
693
+ await this.finalizePromise.catch(() => { });
694
+ if (this.agent) {
695
+ const currentMessages = cloneMessages(this.agent.state.messages ?? []);
696
+ this.saveSummary(currentMessages);
697
+ this.saveSnapshot(currentMessages);
698
+ }
495
699
  this.agent?.abort();
496
700
  this.agent = null;
497
701
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/agents/pi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/agents/pi.ts"],"names":[],"mappings":"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"}