| |
| |
| |
| import { Context } from '@deepseek-ai/cordis' |
| import { AgentFrameCompactionEngine } from '../src/index.js' |
|
|
| async function main() { |
| const ctx = new Context() |
|
|
| |
| const engine = new AgentFrameCompactionEngine(ctx, { |
| semantic: true, |
| retainRatio: 0.2, |
| physical: true, |
| bytesPerToken: 7776, |
| auto: false, |
| }) |
|
|
| |
| const registered = ctx.get('compaction') |
| console.log('[smoke] ctx.compaction =', registered ? '✓ registered' : '× missing') |
|
|
| |
| console.log('[smoke] engine instanceof AgentFrameCompactionEngine =', |
| engine instanceof AgentFrameCompactionEngine ? '✓' : '×') |
|
|
| |
| console.log('[smoke] config =', JSON.stringify(engine.config)) |
|
|
| |
| const methods = ['compactIfNeeded', 'compactNow', 'compactRegion'] |
| for (const m of methods) { |
| console.log(`[smoke] ${m} =`, typeof (engine as any)[m] === 'function' ? '✓' : '×') |
| } |
|
|
| |
| const fakeSession = { |
| log: [ |
| { seq: 0, type: 'user/message', content: '帮我写一个 TCP 服务器' }, |
| { seq: 1, type: 'assistant/message', content: '好的,用 Python 的 socket 模块。先创建 socket: `s = socket.socket()`' }, |
| { seq: 2, type: 'user/message', content: '今天天气不错' }, |
| { seq: 3, type: 'assistant/message', content: '哈哈是啊。继续:绑定端口 8080,监听连接。' }, |
| { seq: 4, type: 'user/message', content: '那错误处理怎么做?' }, |
| { seq: 5, type: 'assistant/message', content: '用 try/except 捕获 ConnectionError,记录日志。这是关键点。' }, |
| { seq: 6, type: 'user/message', content: '好的明白了' }, |
| { seq: 7, type: 'assistant/message', content: '嗯嗯有问题随时问~' }, |
| ], |
| } |
|
|
| const span = (engine as any)._selectSpan(fakeSession) |
| console.log('\n[smoke] selected span =', span) |
|
|
| const summary = (engine as any)._condense(fakeSession, span.start, span.end) |
| console.log('[smoke] condensed summary:') |
| console.log('----------------------------------------') |
| console.log(summary) |
| console.log('----------------------------------------') |
|
|
| |
| const chatterDropped = !summary.includes('天气不错') |
| const codeKept = summary.includes('socket') |
| console.log('[smoke] 闲聊被剔除 =', chatterDropped ? '✓' : '×') |
| console.log('[smoke] 关键代码保留 =', codeKept ? '✓' : '×') |
|
|
| console.log('\n✓ smoke test complete') |
| } |
|
|
| main().catch((e) => { |
| console.error('× smoke test failed:', e) |
| process.exit(1) |
| }) |
|
|