TypeChat icon indicating copy to clipboard operation
TypeChat copied to clipboard

should we read interface as a text file?

Open dcsan opened this issue 2 years ago • 2 comments
trafficstars

looking at the examples:

https://github.com/microsoft/TypeChat/blob/main/examples/calendar/src/main.ts#L11C25-L11C25 https://github.com/microsoft/TypeChat/blob/main/examples/restaurant/src/main.ts#L15

const schema = fs.readFileSync(path.join(__dirname, "calendarActionsSchema.ts"), "utf8");

I find it odd that we read in the typescript schema as a text file. after the code is transpiled, those .ts files won't exist.

I guess I could manually copy over to the /dist after building but that seems a hack

Is there a method to just import the schema or pass a typescript type?

dcsan avatar Nov 18 '23 16:11 dcsan

Seems like one argument for keeping reading it as a text file is to enable the use of comments alongside the types for added context to guide the model.

But I agree, it's kind of inelegant.

gchartier avatar Nov 23 '23 22:11 gchartier

The current approach here is to make sure the .ts file is ingestible via either

  1. copying the .ts file into the output directory, or
  2. using a runner like ts-node or tsx to execute your TypeScript directly.

We're also looking at another approach, using a runtime type validation library called Zod - you can see more at @ahejlsberg's PR at #147.

DanielRosenwasser avatar Dec 22 '23 00:12 DanielRosenwasser