CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
dream.test.ts93 linesDownload Raw Back to memory
1/**2 * @license3 * Copyright 2025 Google LLC4 * SPDX-License-Identifier: Apache-2.05 */6 7import * as fs from 'node:fs/promises';8import * as os from 'node:os';9import * as path from 'node:path';10import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';11import type { Config } from '../config/config.js';12import { runManagedAutoMemoryDream } from './dream.js';13import { ensureAutoMemoryScaffold } from './store.js';14 15vi.mock('./dreamAgentPlanner.js', () => ({16  planManagedAutoMemoryDreamByAgent: vi.fn(),17}));18 19import { planManagedAutoMemoryDreamByAgent } from './dreamAgentPlanner.js';20 21describe('managed auto-memory dream', () => {22  let tempDir: string;23  let projectRoot: string;24  let mockConfig: Config;25 26  beforeEach(async () => {27    tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'auto-memory-dream-'));28    projectRoot = path.join(tempDir, 'project');29    await fs.mkdir(projectRoot, { recursive: true });30    await ensureAutoMemoryScaffold(projectRoot);31    vi.mocked(planManagedAutoMemoryDreamByAgent).mockReset();32    mockConfig = {33      getSessionId: vi.fn().mockReturnValue('session-1'),34      getModel: vi.fn().mockReturnValue('qwen-test'),35      getApprovalMode: vi.fn(),36    } as unknown as Config;37  });38 39  afterEach(async () => {40    await fs.rm(tempDir, {41      recursive: true,42      force: true,43      maxRetries: 3,44      retryDelay: 10,45    });46  });47 48  it('throws when config is missing', async () => {49    await expect(runManagedAutoMemoryDream(projectRoot)).rejects.toThrow(50      'Managed auto-memory dream requires config',51    );52  });53 54  it('returns touched topics derived from files touched by the dream agent', async () => {55    vi.mocked(planManagedAutoMemoryDreamByAgent).mockResolvedValue({56      status: 'completed',57      finalText: 'Merged duplicate user memories.',58      filesTouched: [59        path.join(projectRoot, '.qwen', 'memory', 'user', 'prefs.md'),60        path.join(projectRoot, '.qwen', 'memory', 'reference', 'dash.md'),61      ],62    });63 64    const result = await runManagedAutoMemoryDream(65      projectRoot,66      new Date('2026-04-02T00:00:00.000Z'),67      mockConfig,68    );69 70    expect(result.touchedTopics).toEqual(71      expect.arrayContaining(['user', 'reference']),72    );73    expect(result.dedupedEntries).toBe(0);74    expect(result.systemMessage).toContain(75      'Managed auto-memory dream (agent):',76    );77  });78 79  it('propagates planner failures', async () => {80    vi.mocked(planManagedAutoMemoryDreamByAgent).mockRejectedValue(81      new Error('agent failed'),82    );83 84    await expect(85      runManagedAutoMemoryDream(86        projectRoot,87        new Date('2026-04-02T00:00:00.000Z'),88        mockConfig,89      ),90    ).rejects.toThrow('agent failed');91  });92});93 
basant307/AI_Governance_Project · CoolFace