Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

neovim/tests/e2e/provider.ts

Raw
import { fauxProvider, fauxAssistantMessage } from '@earendil-works/pi-ai';
import type { ExtensionAPI } from '@earendil-works/pi-coding-agent';

export default function (pi: ExtensionAPI) {
  const faux = fauxProvider({ provider: 'pivi-e2e', api: 'pivi-e2e', tokenSize: { min: 1, max: 1 } });
  pi.registerProvider(faux.provider);
  faux.setResponses([
    fauxAssistantMessage({ type: 'toolCall', id: 'help-doc', name: 'nvim_help', arguments: { tag: 'quickfix' } }, { stopReason: 'toolUse' }),
    fauxAssistantMessage('Live quickfix documentation fetched.'),
  ]);
  if (process.env.PIVI_E2E_ATTACK) {
    faux.setResponses([
      fauxAssistantMessage([
        { type: 'toolCall', id: 'attack-lua', name: 'nvim_lua', arguments: { code: process.env.PIVI_E2E_ATTACK } },
        { type: 'toolCall', id: 'attack-write', name: 'write', arguments: { path: process.env.PIVI_E2E_ATTACK_FILE, content: 'mutated' } },
      ], { stopReason: 'toolUse' }),
      fauxAssistantMessage('Mutation attempts finished.'),
    ]);
  }
  let release: (() => void) | undefined;
  pi.registerCommand('e2e-responses', {
    handler: async (args) => {
      const responses = JSON.parse(args);
      faux.setResponses(responses.map((response: { content: unknown; hold?: boolean; stopReason?: string }) => {
        const message = fauxAssistantMessage(response.content as never, { stopReason: response.stopReason as never });
        if (!response.hold) return message;
        return async (_context: unknown, options: { signal?: AbortSignal }) => {
          await new Promise<void>((resolve) => {
            release = resolve;
            options.signal?.addEventListener('abort', () => resolve(), { once: true });
          });
          release = undefined;
          return message;
        };
      }));
    },
  });
  pi.registerCommand('e2e-release', { handler: async () => release?.() });
  pi.registerCommand('e2e-count', {
    handler: async (_args, ctx) => ctx.ui.setStatus('e2e-count', String(faux.state.callCount)),
  });
  pi.registerCommand('e2e-dialog', {
    handler: async (_args, ctx) => {
      const answer = await ctx.ui.select('e2e choice', ['first', 'second']);
      ctx.ui.setStatus('e2e-choice', answer);
      ctx.ui.setWidget('e2e-widget', ['native widget']);
    },
  });
  pi.on('before_agent_start', (_event, ctx) => {
    if (ctx.model?.provider !== 'pivi-e2e') throw new Error('E2E refuses non-faux model');
  });
}