@code-yeongyu/senpi-ai 2026.7.25-2 → 2026.7.28
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/api/anthropic-messages.d.ts +1 -0
- package/dist/api/anthropic-messages.d.ts.map +1 -1
- package/dist/api/anthropic-messages.js +296 -66
- package/dist/api/anthropic-messages.js.map +1 -1
- package/dist/api/azure-openai-responses.js +4 -2
- package/dist/api/azure-openai-responses.js.map +1 -1
- package/dist/api/bedrock-converse-stream.d.ts +1 -0
- package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/dist/api/bedrock-converse-stream.js +3 -47
- package/dist/api/bedrock-converse-stream.js.map +1 -1
- package/dist/api/google-shared.d.ts.map +1 -1
- package/dist/api/google-shared.js +4 -3
- package/dist/api/google-shared.js.map +1 -1
- package/dist/api/openai-codex-responses/reasoning.d.ts +14 -0
- package/dist/api/openai-codex-responses/reasoning.d.ts.map +1 -0
- package/dist/api/openai-codex-responses/reasoning.js +27 -0
- package/dist/api/openai-codex-responses/reasoning.js.map +1 -0
- package/dist/api/openai-codex-responses.d.ts +2 -1
- package/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/dist/api/openai-codex-responses.js +4 -12
- package/dist/api/openai-codex-responses.js.map +1 -1
- package/dist/api/openai-completions.d.ts +3 -8
- package/dist/api/openai-completions.d.ts.map +1 -1
- package/dist/api/openai-completions.js +8 -122
- package/dist/api/openai-completions.js.map +1 -1
- package/dist/api/openai-responses-shared.d.ts +1 -0
- package/dist/api/openai-responses-shared.d.ts.map +1 -1
- package/dist/api/openai-responses-shared.js +67 -31
- package/dist/api/openai-responses-shared.js.map +1 -1
- package/dist/api/openai-responses.d.ts.map +1 -1
- package/dist/api/openai-responses.js +2 -1
- package/dist/api/openai-responses.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +7 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js.map +1 -1
- package/dist/oauth.d.ts +2 -1
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +2 -1
- package/dist/oauth.js.map +1 -1
- package/dist/openai-responses-compat.d.ts +24 -0
- package/dist/openai-responses-compat.d.ts.map +1 -0
- package/dist/openai-responses-compat.js +2 -0
- package/dist/openai-responses-compat.js.map +1 -0
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/dist/providers/data/fireworks.json +1 -1
- package/dist/providers/data/huggingface.json +1 -1
- package/dist/providers/data/nvidia.json +1 -1
- package/dist/providers/data/openai.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/together.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/types.d.ts +8 -22
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/prompt-cache-ttl.d.ts +32 -0
- package/dist/utils/prompt-cache-ttl.d.ts.map +1 -0
- package/dist/utils/prompt-cache-ttl.js +294 -0
- package/dist/utils/prompt-cache-ttl.js.map +1 -0
- package/dist/utils/provider-retry.d.ts +5 -0
- package/dist/utils/provider-retry.d.ts.map +1 -1
- package/dist/utils/provider-retry.js +46 -1
- package/dist/utils/provider-retry.js.map +1 -1
- package/dist/utils/retry.d.ts +7 -0
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +24 -1
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/stop-details.d.ts +1 -1
- package/dist/utils/stop-details.d.ts.map +1 -1
- package/dist/utils/stop-details.js +7 -3
- package/dist/utils/stop-details.js.map +1 -1
- package/dist/utils/tool-call-id.d.ts +9 -0
- package/dist/utils/tool-call-id.d.ts.map +1 -0
- package/dist/utils/tool-call-id.js +16 -0
- package/dist/utils/tool-call-id.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-details.d.ts","sourceRoot":"","sources":["../../src/utils/stop-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stop-details.d.ts","sourceRoot":"","sources":["../../src/utils/stop-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKpD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAItE"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
const ANTHROPIC_POLICY_REFUSAL_PATTERN = /This request triggered restrictions on [\s\S]+? and was blocked under Anthropic's Usage Policy\b/i;
|
|
2
|
+
/** Returns true when an assistant response represents a refusal or sensitive stop. */
|
|
2
3
|
export function isClassifierRefusal(message) {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
if (message.stopReason !== "error" && message.stopReason !== "toolUse")
|
|
5
|
+
return false;
|
|
6
|
+
if (message.stopDetails?.type === "refusal" || message.stopDetails?.type === "sensitive")
|
|
7
|
+
return true;
|
|
8
|
+
return message.errorMessage ? ANTHROPIC_POLICY_REFUSAL_PATTERN.test(message.errorMessage) : false;
|
|
5
9
|
}
|
|
6
10
|
//# sourceMappingURL=stop-details.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-details.js","sourceRoot":"","sources":["../../src/utils/stop-details.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"stop-details.js","sourceRoot":"","sources":["../../src/utils/stop-details.ts"],"names":[],"mappings":"AAEA,MAAM,gCAAgC,GACrC,mGAAmG,CAAC;AAErG,sFAAsF;AACtF,MAAM,UAAU,mBAAmB,CAAC,OAAyB;IAC5D,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrF,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACtG,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACnG,CAAC","sourcesContent":["import type { AssistantMessage } from \"../types.ts\";\n\nconst ANTHROPIC_POLICY_REFUSAL_PATTERN =\n\t/This request triggered restrictions on [\\s\\S]+? and was blocked under Anthropic's Usage Policy\\b/i;\n\n/** Returns true when an assistant response represents a refusal or sensitive stop. */\nexport function isClassifierRefusal(message: AssistantMessage): boolean {\n\tif (message.stopReason !== \"error\" && message.stopReason !== \"toolUse\") return false;\n\tif (message.stopDetails?.type === \"refusal\" || message.stopDetails?.type === \"sensitive\") return true;\n\treturn message.errorMessage ? ANTHROPIC_POLICY_REFUSAL_PATTERN.test(message.errorMessage) : false;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const TOOL_CALL_ID_MAX_LENGTH = 64;
|
|
2
|
+
/**
|
|
3
|
+
* Normalize tool call IDs to match the pattern and length Anthropic-family APIs
|
|
4
|
+
* require (max 64 chars, alphanumeric/underscore/dash). Long foreign ids (OpenAI
|
|
5
|
+
* Responses ids run 450+ chars) must not collide after truncation, so over-long
|
|
6
|
+
* ids keep a readable prefix plus a hash of the full id.
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizeToolCallId(id: string): string;
|
|
9
|
+
//# sourceMappingURL=tool-call-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-id.d.ts","sourceRoot":"","sources":["../../src/utils/tool-call-id.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKtD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { shortHash } from "./hash.js";
|
|
2
|
+
export const TOOL_CALL_ID_MAX_LENGTH = 64;
|
|
3
|
+
/**
|
|
4
|
+
* Normalize tool call IDs to match the pattern and length Anthropic-family APIs
|
|
5
|
+
* require (max 64 chars, alphanumeric/underscore/dash). Long foreign ids (OpenAI
|
|
6
|
+
* Responses ids run 450+ chars) must not collide after truncation, so over-long
|
|
7
|
+
* ids keep a readable prefix plus a hash of the full id.
|
|
8
|
+
*/
|
|
9
|
+
export function normalizeToolCallId(id) {
|
|
10
|
+
const sanitized = id.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
11
|
+
if (sanitized.length <= TOOL_CALL_ID_MAX_LENGTH)
|
|
12
|
+
return sanitized;
|
|
13
|
+
const suffix = `_${shortHash(id)}`;
|
|
14
|
+
return `${sanitized.slice(0, TOOL_CALL_ID_MAX_LENGTH - suffix.length)}${suffix}`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tool-call-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-id.js","sourceRoot":"","sources":["../../src/utils/tool-call-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACrD,IAAI,SAAS,CAAC,MAAM,IAAI,uBAAuB;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAClF,CAAC","sourcesContent":["import { shortHash } from \"./hash.ts\";\n\nexport const TOOL_CALL_ID_MAX_LENGTH = 64;\n\n/**\n * Normalize tool call IDs to match the pattern and length Anthropic-family APIs\n * require (max 64 chars, alphanumeric/underscore/dash). Long foreign ids (OpenAI\n * Responses ids run 450+ chars) must not collide after truncation, so over-long\n * ids keep a readable prefix plus a hash of the full id.\n */\nexport function normalizeToolCallId(id: string): string {\n\tconst sanitized = id.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\tif (sanitized.length <= TOOL_CALL_ID_MAX_LENGTH) return sanitized;\n\tconst suffix = `_${shortHash(id)}`;\n\treturn `${sanitized.slice(0, TOOL_CALL_ID_MAX_LENGTH - suffix.length)}${suffix}`;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/senpi-ai",
|
|
3
|
-
"version": "2026.7.
|
|
3
|
+
"version": "2026.7.28",
|
|
4
4
|
"description": "Unified LLM API with automatic model discovery and provider configuration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"license": "MIT",
|
|
97
97
|
"repository": {
|
|
98
98
|
"type": "git",
|
|
99
|
-
"url": "git+https://github.com/
|
|
99
|
+
"url": "git+https://github.com/code-yeongyu/senpi.git",
|
|
100
100
|
"directory": "packages/ai"
|
|
101
101
|
},
|
|
102
102
|
"engines": {
|