mirror of
https://github.com/tvytlx/ai-agent-deep-dive.git
synced 2026-04-19 14:34:58 +08:00
Add extracted source directory and README navigation
This commit is contained in:
63
extracted-source/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.mjs
generated
vendored
Normal file
63
extracted-source/node_modules/@anthropic-ai/sdk/lib/stainless-helper-header.mjs
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Shared utilities for tracking SDK helper usage.
|
||||
*/
|
||||
/**
|
||||
* Symbol used to mark objects created by SDK helpers for tracking.
|
||||
* The value is the helper name (e.g., 'mcpTool', 'betaZodTool').
|
||||
*/
|
||||
export const SDK_HELPER_SYMBOL = Symbol('anthropic.sdk.stainlessHelper');
|
||||
export function wasCreatedByStainlessHelper(value) {
|
||||
return typeof value === 'object' && value !== null && SDK_HELPER_SYMBOL in value;
|
||||
}
|
||||
/**
|
||||
* Collects helper names from tools and messages arrays.
|
||||
* Returns a deduplicated array of helper names found.
|
||||
*/
|
||||
export function collectStainlessHelpers(tools, messages) {
|
||||
const helpers = new Set();
|
||||
// Collect from tools
|
||||
if (tools) {
|
||||
for (const tool of tools) {
|
||||
if (wasCreatedByStainlessHelper(tool)) {
|
||||
helpers.add(tool[SDK_HELPER_SYMBOL]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Collect from messages and their content blocks
|
||||
if (messages) {
|
||||
for (const message of messages) {
|
||||
if (wasCreatedByStainlessHelper(message)) {
|
||||
helpers.add(message[SDK_HELPER_SYMBOL]);
|
||||
}
|
||||
if (Array.isArray(message.content)) {
|
||||
for (const block of message.content) {
|
||||
if (wasCreatedByStainlessHelper(block)) {
|
||||
helpers.add(block[SDK_HELPER_SYMBOL]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return Array.from(helpers);
|
||||
}
|
||||
/**
|
||||
* Builds x-stainless-helper header value from tools and messages.
|
||||
* Returns an empty object if no helpers are found.
|
||||
*/
|
||||
export function stainlessHelperHeader(tools, messages) {
|
||||
const helpers = collectStainlessHelpers(tools, messages);
|
||||
if (helpers.length === 0)
|
||||
return {};
|
||||
return { 'x-stainless-helper': helpers.join(', ') };
|
||||
}
|
||||
/**
|
||||
* Builds x-stainless-helper header value from a file object.
|
||||
* Returns an empty object if the file is not marked with a helper.
|
||||
*/
|
||||
export function stainlessHelperHeaderFromFile(file) {
|
||||
if (wasCreatedByStainlessHelper(file)) {
|
||||
return { 'x-stainless-helper': file[SDK_HELPER_SYMBOL] };
|
||||
}
|
||||
return {};
|
||||
}
|
||||
//# sourceMappingURL=stainless-helper-header.mjs.map
|
||||
Reference in New Issue
Block a user