diff --git a/packages/cloud/src/__tests__/TelemetryClient.test.ts b/packages/cloud/src/__tests__/TelemetryClient.test.ts index 970f66bf09..2dda9e39be 100644 --- a/packages/cloud/src/__tests__/TelemetryClient.test.ts +++ b/packages/cloud/src/__tests__/TelemetryClient.test.ts @@ -363,6 +363,13 @@ describe("TelemetryClient", () => { }) const eventProperties = { + appName: "roo-code", + appVersion: "1.0.0", + vscodeVersion: "1.60.0", + platform: "darwin", + editorName: "vscode", + language: "en", + mode: "code", taskId: "test-task-id", message: { ts: 1, diff --git a/packages/types/npm/package.json b/packages/types/npm/package.json index a0f2506b93..b18d064821 100644 --- a/packages/types/npm/package.json +++ b/packages/types/npm/package.json @@ -1,6 +1,6 @@ { "name": "@roo-code/types", - "version": "1.23.0", + "version": "1.24.0", "description": "TypeScript type definitions for Roo Code.", "publishConfig": { "access": "public", diff --git a/packages/types/src/telemetry.ts b/packages/types/src/telemetry.ts index 7013a42364..9c10a63b5e 100644 --- a/packages/types/src/telemetry.ts +++ b/packages/types/src/telemetry.ts @@ -118,6 +118,7 @@ export const rooCodeTelemetryEventSchema = z.discriminatedUnion("type", [ z.object({ type: z.literal(TelemetryEventName.TASK_MESSAGE), properties: z.object({ + ...telemetryPropertiesSchema.shape, taskId: z.string(), message: clineMessageSchema, }), diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 53a004c60b..65131728bb 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -320,7 +320,8 @@ export class Task extends EventEmitter { private async addToClineMessages(message: ClineMessage) { this.clineMessages.push(message) - await this.providerRef.deref()?.postStateToWebview() + const provider = this.providerRef.deref() + await provider?.postStateToWebview() this.emit("message", { action: "created", message }) await this.saveClineMessages() @@ -340,7 +341,8 @@ export class Task extends EventEmitter { } private async updateClineMessage(partialMessage: ClineMessage) { - await this.providerRef.deref()?.postMessageToWebview({ type: "partialMessage", partialMessage }) + const provider = this.providerRef.deref() + await provider?.postMessageToWebview({ type: "partialMessage", partialMessage }) this.emit("message", { action: "updated", message: partialMessage }) const shouldCaptureMessage = partialMessage.partial !== true && CloudService.isEnabled() @@ -808,7 +810,9 @@ export class Task extends EventEmitter { if (Array.isArray(message.content)) { const newContent = message.content.map((block) => { if (block.type === "tool_use") { - // it's important we convert to the new tool schema format so the model doesn't get confused about how to invoke tools + // It's important we convert to the new tool schema + // format so the model doesn't get confused about how to + // invoke tools. const inputAsXml = Object.entries(block.input as Record) .map(([key, value]) => `<${key}>\n${value}\n`) .join("\n") @@ -1503,6 +1507,7 @@ export class Task extends EventEmitter { const rooIgnoreInstructions = this.rooIgnoreController?.getInstructions() const state = await this.providerRef.deref()?.getState() + const { browserViewportSize, mode,