@visibe.ai/node 0.1.9 → 0.1.10

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/dist/cjs/index.js CHANGED
@@ -63,10 +63,13 @@ function patchFramework(framework, client) {
63
63
  catch { /* never crash new OpenAI() */ }
64
64
  }
65
65
  };
66
- openaiModule.OpenAI = PatchedOpenAI;
66
+ // Use defineProperty because openai exports OpenAI/default as getter-only properties
67
+ // (no setter). Direct assignment silently fails in that case.
68
+ const setProp = (obj, key, val) => Object.defineProperty(obj, key, { value: val, configurable: true, writable: true, enumerable: true });
69
+ setProp(openaiModule, 'OpenAI', PatchedOpenAI);
67
70
  // Also patch .default so that `import OpenAI from 'openai'` (esModuleInterop)
68
71
  // picks up the instrumented class — TypeScript compiles default imports to .default.
69
- openaiModule.default = PatchedOpenAI;
72
+ setProp(openaiModule, 'default', PatchedOpenAI);
70
73
  break;
71
74
  }
72
75
  case 'anthropic': {
@@ -82,9 +85,11 @@ function patchFramework(framework, client) {
82
85
  catch { /* never crash new Anthropic() */ }
83
86
  }
84
87
  };
85
- anthropicModule.Anthropic = PatchedAnthropic;
88
+ // Same getter-only issue as openai — use defineProperty.
89
+ const setAnthropicProp = (obj, key, val) => Object.defineProperty(obj, key, { value: val, configurable: true, writable: true, enumerable: true });
90
+ setAnthropicProp(anthropicModule, 'Anthropic', PatchedAnthropic);
86
91
  // Also patch .default for esModuleInterop default import support.
87
- anthropicModule.default = PatchedAnthropic;
92
+ setAnthropicProp(anthropicModule, 'default', PatchedAnthropic);
88
93
  break;
89
94
  }
90
95
  case 'bedrock': {
@@ -179,16 +184,18 @@ async function shutdown() {
179
184
  // Restore patched constructors so the SDK leaves no trace after shutdown.
180
185
  try {
181
186
  if (_originalOpenAI) {
182
- require('openai').OpenAI = _originalOpenAI;
183
- require('openai').default = _originalOpenAI;
187
+ const m = require('openai');
188
+ Object.defineProperty(m, 'OpenAI', { value: _originalOpenAI, configurable: true, writable: true, enumerable: true });
189
+ Object.defineProperty(m, 'default', { value: _originalOpenAI, configurable: true, writable: true, enumerable: true });
184
190
  _originalOpenAI = null;
185
191
  }
186
192
  }
187
193
  catch { /* package may have been unloaded */ }
188
194
  try {
189
195
  if (_originalAnthropic) {
190
- require('@anthropic-ai/sdk').Anthropic = _originalAnthropic;
191
- require('@anthropic-ai/sdk').default = _originalAnthropic;
196
+ const m = require('@anthropic-ai/sdk');
197
+ Object.defineProperty(m, 'Anthropic', { value: _originalAnthropic, configurable: true, writable: true, enumerable: true });
198
+ Object.defineProperty(m, 'default', { value: _originalAnthropic, configurable: true, writable: true, enumerable: true });
192
199
  _originalAnthropic = null;
193
200
  }
194
201
  }
package/dist/esm/index.js CHANGED
@@ -57,10 +57,13 @@ function patchFramework(framework, client) {
57
57
  catch { /* never crash new OpenAI() */ }
58
58
  }
59
59
  };
60
- openaiModule.OpenAI = PatchedOpenAI;
60
+ // Use defineProperty because openai exports OpenAI/default as getter-only properties
61
+ // (no setter). Direct assignment silently fails in that case.
62
+ const setProp = (obj, key, val) => Object.defineProperty(obj, key, { value: val, configurable: true, writable: true, enumerable: true });
63
+ setProp(openaiModule, 'OpenAI', PatchedOpenAI);
61
64
  // Also patch .default so that `import OpenAI from 'openai'` (esModuleInterop)
62
65
  // picks up the instrumented class — TypeScript compiles default imports to .default.
63
- openaiModule.default = PatchedOpenAI;
66
+ setProp(openaiModule, 'default', PatchedOpenAI);
64
67
  break;
65
68
  }
66
69
  case 'anthropic': {
@@ -76,9 +79,11 @@ function patchFramework(framework, client) {
76
79
  catch { /* never crash new Anthropic() */ }
77
80
  }
78
81
  };
79
- anthropicModule.Anthropic = PatchedAnthropic;
82
+ // Same getter-only issue as openai — use defineProperty.
83
+ const setAnthropicProp = (obj, key, val) => Object.defineProperty(obj, key, { value: val, configurable: true, writable: true, enumerable: true });
84
+ setAnthropicProp(anthropicModule, 'Anthropic', PatchedAnthropic);
80
85
  // Also patch .default for esModuleInterop default import support.
81
- anthropicModule.default = PatchedAnthropic;
86
+ setAnthropicProp(anthropicModule, 'default', PatchedAnthropic);
82
87
  break;
83
88
  }
84
89
  case 'bedrock': {
@@ -173,16 +178,18 @@ export async function shutdown() {
173
178
  // Restore patched constructors so the SDK leaves no trace after shutdown.
174
179
  try {
175
180
  if (_originalOpenAI) {
176
- require('openai').OpenAI = _originalOpenAI;
177
- require('openai').default = _originalOpenAI;
181
+ const m = require('openai');
182
+ Object.defineProperty(m, 'OpenAI', { value: _originalOpenAI, configurable: true, writable: true, enumerable: true });
183
+ Object.defineProperty(m, 'default', { value: _originalOpenAI, configurable: true, writable: true, enumerable: true });
178
184
  _originalOpenAI = null;
179
185
  }
180
186
  }
181
187
  catch { /* package may have been unloaded */ }
182
188
  try {
183
189
  if (_originalAnthropic) {
184
- require('@anthropic-ai/sdk').Anthropic = _originalAnthropic;
185
- require('@anthropic-ai/sdk').default = _originalAnthropic;
190
+ const m = require('@anthropic-ai/sdk');
191
+ Object.defineProperty(m, 'Anthropic', { value: _originalAnthropic, configurable: true, writable: true, enumerable: true });
192
+ Object.defineProperty(m, 'default', { value: _originalAnthropic, configurable: true, writable: true, enumerable: true });
186
193
  _originalAnthropic = null;
187
194
  }
188
195
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visibe.ai/node",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "AI Agent Observability — Track OpenAI, LangChain, LangGraph, Bedrock, Vercel AI, Anthropic",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",