@xtruder/opencode-claude-max-plugin 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as CLAUDE_CODE_SONNET5_SYSTEM_PROMPT, c as buildPluginModels, d as selectClaudePromptForModel, i as CLAUDE_CODE_SONNET55_SYSTEM_PROMPT, l as createAnthropicSDK, n as CLAUDE_CODE_NEW_SYSTEM_PROMPT, o as CLAUDE_CODE_SYSTEM_PROMPT, r as CLAUDE_CODE_OPUS5_SYSTEM_PROMPT, s as PROVIDER_ID, t as CLAUDE_CODE_FABLE5_SYSTEM_PROMPT, u as resolveAuth } from "./src-BU2jiU0u.js";
1
+ import { a as CLAUDE_CODE_SONNET5_SYSTEM_PROMPT, c as buildPluginModels, d as selectClaudePromptForModel, i as CLAUDE_CODE_SONNET55_SYSTEM_PROMPT, l as createAnthropicSDK, n as CLAUDE_CODE_NEW_SYSTEM_PROMPT, o as CLAUDE_CODE_SYSTEM_PROMPT, r as CLAUDE_CODE_OPUS5_SYSTEM_PROMPT, s as PROVIDER_ID, t as CLAUDE_CODE_FABLE5_SYSTEM_PROMPT, u as resolveAuth } from "./src-DKt_2MEw.js";
2
2
  export { CLAUDE_CODE_FABLE5_SYSTEM_PROMPT, CLAUDE_CODE_NEW_SYSTEM_PROMPT, CLAUDE_CODE_OPUS5_SYSTEM_PROMPT, CLAUDE_CODE_SONNET55_SYSTEM_PROMPT, CLAUDE_CODE_SONNET5_SYSTEM_PROMPT, CLAUDE_CODE_SYSTEM_PROMPT, PROVIDER_ID, buildPluginModels, createAnthropicSDK, createAnthropicSDK as default, resolveAuth, selectClaudePromptForModel };
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAG1B,6BAA6B,EAE7B,2BAA2B,EAE5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAc9C,KAAK,gBAAgB,GAAG,6BAA6B,CAAA;AACrD,KAAK,cAAc,GAAG,2BAA2B,CAAA;AAkDjD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAExE;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,SAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAS9F;AAmBD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mCAAmC,CAAA;AAqFrE,qBAAa,iBAAkB,YAAW,eAAe;IAUrD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IAXjB,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAK;IAErD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAGjC,OAAO,EAAE,MAAM,EACP,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,OAAe;IAOlC,OAAO,CAAC,WAAW;IA+NnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAUrB,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0L1E,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;CA+F7E"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAG1B,6BAA6B,EAE7B,2BAA2B,EAE5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAe9C,KAAK,gBAAgB,GAAG,6BAA6B,CAAA;AACrD,KAAK,cAAc,GAAG,2BAA2B,CAAA;AAkDjD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAExE;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,SAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAS9F;AAmBD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mCAAmC,CAAA;AAqFrE,qBAAa,iBAAkB,YAAW,eAAe;IAUrD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IAXjB,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAS;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAK;IAErD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAGjC,OAAO,EAAE,MAAM,EACP,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,OAAe;IAOlC,OAAO,CAAC,WAAW;IA+NnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAUrB,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0L1E,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;CA+F7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAG9C,KAAK,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzE,KAAK,oBAAoB,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;AAEnE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,oBAAoB,CAAA;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAiC5E"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAI9C,KAAK,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzE,KAAK,oBAAoB,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;AAEnE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,oBAAoB,CAAA;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAiC5E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OpenCode v2 persists part metadata only under the route's provider key —
3
+ * the providerID ("anthropic-sdk") for non-@ai-sdk packages — and hands it
4
+ * back on replay under that same key. Direct AI SDK callers use "anthropic".
5
+ * Writing both keys keeps thinking signatures and fallback blocks alive in
6
+ * OpenCode history without breaking direct usage.
7
+ */
8
+ export declare const PROVIDER_METADATA_KEY = "anthropic-sdk";
9
+ export declare function anthropicMetadata(meta: Record<string, any>): {
10
+ "anthropic-sdk": Record<string, any>;
11
+ anthropic: Record<string, any>;
12
+ };
13
+ /** Read our metadata from a replayed prompt part (providerOptions) or a generated one (providerMetadata). */
14
+ export declare function readAnthropicMetadata(part: any): Record<string, any> | undefined;
15
+ //# sourceMappingURL=provider-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../src/provider-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAEpD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;EAE1D;AAED,6GAA6G;AAC7G,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAMhF"}
package/build/server.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as buildPluginModels, d as selectClaudePromptForModel, s as PROVIDER_ID, u as resolveAuth } from "./src-BU2jiU0u.js";
1
+ import { c as buildPluginModels, d as selectClaudePromptForModel, s as PROVIDER_ID, u as resolveAuth } from "./src-DKt_2MEw.js";
2
2
  //#region src/server.ts
3
3
  var server_default = {
4
4
  id: "anthropic-sdk",
@@ -101,6 +101,29 @@ async function* withPauseTurnContinuation(initial, params, request, maxContinuat
101
101
  }
102
102
  }
103
103
  //#endregion
104
+ //#region src/provider-metadata.ts
105
+ /**
106
+ * OpenCode v2 persists part metadata only under the route's provider key —
107
+ * the providerID ("anthropic-sdk") for non-@ai-sdk packages — and hands it
108
+ * back on replay under that same key. Direct AI SDK callers use "anthropic".
109
+ * Writing both keys keeps thinking signatures and fallback blocks alive in
110
+ * OpenCode history without breaking direct usage.
111
+ */
112
+ var PROVIDER_METADATA_KEY = "anthropic-sdk";
113
+ function anthropicMetadata(meta) {
114
+ return {
115
+ [PROVIDER_METADATA_KEY]: meta,
116
+ anthropic: meta
117
+ };
118
+ }
119
+ /** Read our metadata from a replayed prompt part (providerOptions) or a generated one (providerMetadata). */
120
+ function readAnthropicMetadata(part) {
121
+ for (const source of [part?.providerOptions, part?.providerMetadata]) {
122
+ const meta = source?.["anthropic-sdk"] ?? source?.anthropic;
123
+ if (meta) return meta;
124
+ }
125
+ }
126
+ //#endregion
104
127
  //#region src/tool-names.ts
105
128
  /**
106
129
  * Maps OpenCode tool names ↔ Claude Code tool names.
@@ -266,7 +289,7 @@ function convertUserMessage(message) {
266
289
  function convertAssistantMessage(message) {
267
290
  const content = [];
268
291
  for (const part of message.content) {
269
- const fallback = part.providerMetadata?.anthropic?.fallback ?? part.providerOptions?.anthropic?.fallback;
292
+ const fallback = readAnthropicMetadata(part)?.fallback;
270
293
  if (fallback?.from?.model && fallback?.to?.model) content.push({
271
294
  type: "fallback",
272
295
  from: { model: fallback.from.model },
@@ -280,7 +303,7 @@ function convertAssistantMessage(message) {
280
303
  });
281
304
  break;
282
305
  case "reasoning": {
283
- const signature = part.providerMetadata?.anthropic?.signature ?? part.providerOptions?.anthropic?.signature ?? "";
306
+ const signature = readAnthropicMetadata(part)?.signature ?? "";
284
307
  if (signature) content.push({
285
308
  type: "thinking",
286
309
  thinking: part.text,
@@ -481,7 +504,7 @@ function processEvent(event, blockStates, modelId, ctx) {
481
504
  parts.push({
482
505
  type: "text-start",
483
506
  id,
484
- ...meta ? { providerMetadata: { anthropic: meta } } : {}
507
+ ...meta ? { providerMetadata: anthropicMetadata(meta) } : {}
485
508
  });
486
509
  } else if (block.type === "thinking") {
487
510
  const id = generateId();
@@ -494,7 +517,7 @@ function processEvent(event, blockStates, modelId, ctx) {
494
517
  parts.push({
495
518
  type: "reasoning-start",
496
519
  id,
497
- ...meta ? { providerMetadata: { anthropic: meta } } : {}
520
+ ...meta ? { providerMetadata: anthropicMetadata(meta) } : {}
498
521
  });
499
522
  } else if (block.type === "tool_use") {
500
523
  const toolId = block.id;
@@ -557,7 +580,7 @@ function processEvent(event, blockStates, modelId, ctx) {
557
580
  parts.push({
558
581
  type: "reasoning-end",
559
582
  id: state.id,
560
- ...Object.keys(meta).length > 0 ? { providerMetadata: { anthropic: meta } } : {}
583
+ ...Object.keys(meta).length > 0 ? { providerMetadata: anthropicMetadata(meta) } : {}
561
584
  });
562
585
  } else if (state.type === "tool_use") {
563
586
  parts.push({
@@ -569,7 +592,7 @@ function processEvent(event, blockStates, modelId, ctx) {
569
592
  toolCallId: state.toolUseId,
570
593
  toolName: state.toolName,
571
594
  input: state.argsText || "{}",
572
- ...state.fallbackMeta ? { providerMetadata: { anthropic: state.fallbackMeta } } : {}
595
+ ...state.fallbackMeta ? { providerMetadata: anthropicMetadata(state.fallbackMeta) } : {}
573
596
  });
574
597
  }
575
598
  blockStates.delete(index);
@@ -965,7 +988,7 @@ var AnthropicSDKModel = class {
965
988
  content.push({
966
989
  type: "text",
967
990
  text: block.text,
968
- ...meta ? { providerMetadata: { anthropic: meta } } : {}
991
+ ...meta ? { providerMetadata: anthropicMetadata(meta) } : {}
969
992
  });
970
993
  break;
971
994
  }
@@ -976,7 +999,7 @@ var AnthropicSDKModel = class {
976
999
  toolCallId: block.id,
977
1000
  toolName: toOpencodeToolName(block.name),
978
1001
  input: JSON.stringify(block.input),
979
- ...meta ? { providerMetadata: { anthropic: meta } } : {}
1002
+ ...meta ? { providerMetadata: anthropicMetadata(meta) } : {}
980
1003
  });
981
1004
  break;
982
1005
  }
@@ -992,7 +1015,7 @@ var AnthropicSDKModel = class {
992
1015
  content.push({
993
1016
  type: "reasoning",
994
1017
  text: anyBlock.thinking,
995
- providerMetadata: Object.keys(meta).length > 0 ? { anthropic: meta } : void 0
1018
+ providerMetadata: Object.keys(meta).length > 0 ? anthropicMetadata(meta) : void 0
996
1019
  });
997
1020
  }
998
1021
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC9F,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAG9C,KAAK,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAA;AAetD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,UAAU,aAAa;IACrB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAA;IACzB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC;AAwCD,wBAAgB,aAAa,CAC3B,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,cAAc,CAAC,yBAAyB,CAAC,CAuF3C"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC9F,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAI9C,KAAK,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAA;AAetD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,UAAU,aAAa;IACrB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAA;IACzB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC;AAwCD,wBAAgB,aAAa,CAC3B,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,cAAc,CAAC,yBAAyB,CAAC,CAuF3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xtruder/opencode-claude-max-plugin",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "OpenCode plugin for Claude Max/Pro subscription via @anthropic-ai/sdk - uses Claude Code OAuth credentials",
5
5
  "keywords": [
6
6
  "ai-sdk",