diff --git a/package.json b/package.json index dc1d45a..ca074db 100644 --- a/package.json +++ b/package.json @@ -46,15 +46,18 @@ }, "dependencies": { "@langfuse/otel": "^5.10.1", - "@opencode-ai/plugin": "^1.18.19", "@opentelemetry/api": "^1.9.1", "@opentelemetry/resources": "^2.10.0", "@opentelemetry/sdk-trace-base": "^2.10.0", "@opentelemetry/sdk-trace-node": "^2.10.0", "effect": "^3.22.1" }, + "peerDependencies": { + "@opencode-ai/plugin": "^1.18.19" + }, "devDependencies": { "@eslint/js": "^10.0.1", + "@opencode-ai/plugin": "^1.18.19", "@types/node": "^26.1.2", "eslint": "^10.8.1", "knip": "^6.32.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 722d41e..8abbc89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,6 @@ importers: '@langfuse/otel': specifier: ^5.10.1 version: 5.10.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.221.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)) - '@opencode-ai/plugin': - specifier: ^1.18.19 - version: 1.18.19 '@opentelemetry/api': specifier: ^1.9.1 version: 1.9.1 @@ -33,6 +30,9 @@ importers: '@eslint/js': specifier: ^10.0.1 version: 10.0.1(eslint@10.8.1(jiti@2.7.0)) + '@opencode-ai/plugin': + specifier: ^1.18.19 + version: 1.18.19 '@types/node': specifier: ^26.1.2 version: 26.1.2 diff --git a/src/schema.ts b/src/schema.ts index 1ac7a27..def6788 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -249,7 +249,7 @@ type CurrentSessionNextEvent = | SessionNextCompactionEndedEvent; // https://github.com/anomalyco/opencode/blob/v1.18.19/packages/schema/src/session-event.ts#L479-L517 -export type SessionNextEvent = LegacySessionNextEvent | CurrentSessionNextEvent; +type SessionNextEvent = LegacySessionNextEvent | CurrentSessionNextEvent; // https://github.com/anomalyco/opencode/blob/v1.18.19/packages/plugin/src/index.ts#L222-L224 export type OpencodeEvent = @@ -277,7 +277,7 @@ export const McpToolResultSchema = Schema.Struct({ }); // https://github.com/anomalyco/opencode/blob/v1.18.19/packages/opencode/src/session/tools.ts#L436-L461 -export const McpResourceContentsSchema = Schema.Union( +const McpResourceContentsSchema = Schema.Union( Schema.Struct({ uri: Schema.String, mimeType: Schema.optional(Schema.String), diff --git a/test/integration/plugin.test.ts b/test/integration/plugin.test.ts index c8eccb9..7d2693a 100644 --- a/test/integration/plugin.test.ts +++ b/test/integration/plugin.test.ts @@ -14,7 +14,12 @@ import { test, } from "vitest"; -import type { SessionNextEvent } from "../../src/schema.js"; +import type { OpencodeEvent } from "../../src/schema.js"; + +type SessionNextEvent = Extract< + OpencodeEvent, + { type: `session.next.${string}` } +>; const OtlpValueSchema = Schema.Struct({ stringValue: Schema.optional(Schema.String), @@ -276,7 +281,8 @@ const startGeneration = async (input: { properties: { sessionID: input.sessionID, timestamp: input.started, - ...(input.assistantMessageID + ...(input.assistantMessageID !== undefined && + input.assistantMessageID !== "" ? { assistantMessageID: input.assistantMessageID } : {}), agent: "build",