Skip to content

Tracer serving invalid JS code? #166

Description

@asousa-link

I am trying to setup a tracer using the play.tsx prompt from the examples folder in microsoft/vscode-extension-samples:

async function renderUserPrompt<P extends BasePromptElementProps>(
  ctor: PromptElementCtor<P, any>,
  props: P,
  endpoint: IChatEndpointInfo,
  stream: vscode.ChatResponseStream | undefined,
  model: vscode.LanguageModelChat,
  serveTrace: boolean
) {
  const renderer = new PromptRenderer(
    endpoint,
    ctor,
    props,
    new AnyTokenizer(model.countTokens)
  );
  const tracer = new HTMLTracer();
  renderer.tracer = tracer;
  const result = await renderer.render();
  if (serveTrace) {
    const server = await tracer.serveHTML();
    if (stream) {
      const md = new vscode.MarkdownString(
        "$(info) [View prompt trace](" + server.address + ")"
      );
      md.supportThemeIcons = true;
      stream.markdown(md);
    } else {
      console.log("Prompt trace address:", server.address);
    }
  }

  return {
    messages: toVsCodeChatMessages(
      result.messages
    ) as vscode.LanguageModelChatMessage[],
    references: result.references,
  };
}

// ...

const participant = vscode.chat.createChatParticipant(
    "...",
    async (
      request: vscode.ChatRequest,
      context: vscode.ChatContext,
      stream: vscode.ChatResponseStream,
      token: vscode.CancellationToken
    ) => {

// ...

const { messages } = await renderUserPrompt(
        PlayPrompt,
        { userQuery: request.prompt },
        { modelMaxPromptTokens: request.model.maxInputTokens },
        stream,
        chatModel,
        true)

But every time I launch the server I can never get it to correctly render the page; JS console output:

Uncaught TypeError: Cannot read properties of undefined (reading 'bg') at B.De [as constructor] (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:14159) at B.We [as render] (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:9075) at Q (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:6239) at pe (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:1824) at Q (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:6458) at pe (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:1824) at $e (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:8199) at Q (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:6851) at pe (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:1824) at Q (66d58d29-6ad7-40bb-ab04-db7537f19f67:9:6458)

the same thing seems to happen when I try to toggle and open the tracer in other open-source chat extension examples like https://github.com/[microsoft/vscode-websearchforcopilot](https://github.com/microsoft/vscode-websearchforcopilot). Yet chat-extension-utils extensions seem to be working correctly. What could be the issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions