@code-yeongyu/senpi-ai 2026.9.28-7 → 2026.9.29-2
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.map +1 -1
- package/dist/api/anthropic-messages.js +59 -10
- package/dist/api/anthropic-messages.js.map +1 -1
- package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/dist/api/bedrock-converse-stream.js +10 -3
- package/dist/api/bedrock-converse-stream.js.map +1 -1
- package/dist/api/openai-completions.d.ts.map +1 -1
- package/dist/api/openai-completions.js +13 -8
- package/dist/api/openai-completions.js.map +1 -1
- package/dist/api/openai-responses-shared.d.ts.map +1 -1
- package/dist/api/openai-responses-shared.js +4 -1
- 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 +10 -7
- package/dist/api/openai-responses.js.map +1 -1
- package/dist/auth/types.d.ts +7 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/cursor/context-limit-store.d.ts.map +1 -1
- package/dist/cursor/context-limit-store.js +23 -18
- package/dist/cursor/context-limit-store.js.map +1 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +3 -2
- package/dist/models.js.map +1 -1
- package/dist/providers/amazon-bedrock.js +13 -13
- package/dist/providers/amazon-bedrock.js.map +1 -1
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/amazon-bedrock.json +1 -1
- package/dist/providers/data/anthropic.json +1 -1
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/dist/providers/data/github-copilot.json +1 -1
- package/dist/providers/data/mistral.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/opengateway.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/together.json +1 -1
- package/dist/providers/data/venice.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/providers/google-vertex.d.ts.map +1 -1
- package/dist/providers/google-vertex.js +3 -5
- package/dist/providers/google-vertex.js.map +1 -1
- package/dist/session-resources.d.ts.map +1 -1
- package/dist/session-resources.js +2 -1
- package/dist/session-resources.js.map +1 -1
- package/dist/utils/block-symbols.d.ts +4 -0
- package/dist/utils/block-symbols.d.ts.map +1 -1
- package/dist/utils/block-symbols.js +10 -6
- package/dist/utils/block-symbols.js.map +1 -1
- package/dist/utils/claude-code-version-cache.d.ts +12 -0
- package/dist/utils/claude-code-version-cache.d.ts.map +1 -0
- package/dist/utils/claude-code-version-cache.js +60 -0
- package/dist/utils/claude-code-version-cache.js.map +1 -0
- package/dist/utils/claude-code-version.d.ts +78 -0
- package/dist/utils/claude-code-version.d.ts.map +1 -0
- package/dist/utils/claude-code-version.js +203 -0
- package/dist/utils/claude-code-version.js.map +1 -0
- package/dist/utils/cursor-context-limit.d.ts.map +1 -1
- package/dist/utils/cursor-context-limit.js +51 -45
- package/dist/utils/cursor-context-limit.js.map +1 -1
- package/dist/utils/overflow.d.ts.map +1 -1
- package/dist/utils/overflow.js +2 -0
- package/dist/utils/overflow.js.map +1 -1
- package/dist/utils/process-singleton.d.ts +10 -0
- package/dist/utils/process-singleton.d.ts.map +1 -0
- package/dist/utils/process-singleton.js +18 -0
- package/dist/utils/process-singleton.js.map +1 -0
- package/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
- package/dist/utils/prompt-cache-ttl.js +3 -2
- package/dist/utils/prompt-cache-ttl.js.map +1 -1
- package/dist/utils/tool-schema-compat.d.ts +2 -0
- package/dist/utils/tool-schema-compat.d.ts.map +1 -1
- package/dist/utils/tool-schema-compat.js +28 -9
- package/dist/utils/tool-schema-compat.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;AAI/D,OAAO,KAAK,EACX,wBAAwB,EAKxB,OAAO,EAGP,KAAK,EAGL,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAGb,IAAI,EAIJ,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;AAI/D,OAAO,KAAK,EACX,wBAAwB,EAKxB,OAAO,EAGP,KAAK,EAGL,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAGb,IAAI,EAIJ,MAAM,aAAa,CAAC;AAwDrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA6ElE,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAC2B,CAAC;AACzE,eAAO,MAAM,kBAAkB,SAAU,MAAM,UAAU,IAAI,EAAE,WAS9D,CAAC;AA4EF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AAsGhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAmvBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CA0gBzE,CAAC;AAyFF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA+ClF,CAAC;AAoJF,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACxB,+BAA+B,CAkBjC"}
|
|
@@ -4,6 +4,7 @@ import { readProviderDiagnostic } from "../provider-diagnostic.js";
|
|
|
4
4
|
import { registerSessionResourceCleanup } from "../session-resources.js";
|
|
5
5
|
import { isVideoMimeType } from "../types.js";
|
|
6
6
|
import { combineAbortSignals } from "../utils/abort-signals.js";
|
|
7
|
+
import { claudeCodeVersionTooOldHint, getClaudeCodeVersion, isClaudeCodeVersionTooOldError, recoverClaudeCodeVersion, } from "../utils/claude-code-version.js";
|
|
7
8
|
import { splitDeferredTools } from "../utils/deferred-tools.js";
|
|
8
9
|
import { appendAssistantMessageDiagnostic } from "../utils/diagnostics.js";
|
|
9
10
|
import { AssistantMessageEventStream } from "../utils/event-stream.js";
|
|
@@ -63,8 +64,11 @@ function getCacheControl(model, cacheRetention, env) {
|
|
|
63
64
|
cacheControl: { type: "ephemeral", ...(ttl && { ttl }) },
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
|
-
// Stealth mode: Mimic Claude Code's tool naming exactly
|
|
67
|
-
|
|
67
|
+
// Stealth mode: Mimic Claude Code's identity and tool naming exactly.
|
|
68
|
+
// The bundled Claude Code version and the floor of the advertised `claude-cli/<version>`
|
|
69
|
+
// (see utils/claude-code-version.ts). Keep this exact declaration: a downstream installer
|
|
70
|
+
// (oh-my-openagent) rewrites it byte-for-byte in the installed dist and bundle.
|
|
71
|
+
const claudeCodeVersion = "2.1.284";
|
|
68
72
|
// Claude Code 2.x tool names (canonical casing)
|
|
69
73
|
// Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md
|
|
70
74
|
// To update: https://github.com/badlogic/cchistory
|
|
@@ -178,7 +182,14 @@ const NATIVE_XHIGH_EFFORT_MODEL_MARKERS = [
|
|
|
178
182
|
* this as `compat.supportsDisabledThinking: false`, but `models.json` entries and third-party
|
|
179
183
|
* gateway rows carry no generated compat, so the family fact has to live here as well.
|
|
180
184
|
*/
|
|
181
|
-
const DISABLED_THINKING_REJECTING_MODEL_MARKERS = [
|
|
185
|
+
const DISABLED_THINKING_REJECTING_MODEL_MARKERS = [
|
|
186
|
+
"fable-5",
|
|
187
|
+
"mythos-5",
|
|
188
|
+
"opus-5-5",
|
|
189
|
+
"opus-5.5",
|
|
190
|
+
"sonnet-5-5",
|
|
191
|
+
"sonnet-5.5",
|
|
192
|
+
];
|
|
182
193
|
const UNSUPPORTED_NATIVE_COMPUTER_TOOL_MODEL_MARKERS = [
|
|
183
194
|
"opus-4-6",
|
|
184
195
|
"opus-4.6",
|
|
@@ -847,12 +858,13 @@ export const stream = (model, context, options) => {
|
|
|
847
858
|
const requestSignal = combinedAbort.signal;
|
|
848
859
|
try {
|
|
849
860
|
let client;
|
|
850
|
-
let isOAuth;
|
|
861
|
+
let isOAuth = false;
|
|
862
|
+
let advertisedClaudeCodeVersion;
|
|
851
863
|
let usageModel = model;
|
|
852
864
|
let inputTransformations;
|
|
865
|
+
let openClient;
|
|
853
866
|
if (options?.client) {
|
|
854
867
|
client = options.client;
|
|
855
|
-
isOAuth = false;
|
|
856
868
|
}
|
|
857
869
|
else {
|
|
858
870
|
const apiKey = options?.apiKey;
|
|
@@ -868,10 +880,36 @@ export const stream = (model, context, options) => {
|
|
|
868
880
|
}
|
|
869
881
|
const cacheRetention = resolveCacheRetention(options?.cacheRetention ?? model.cacheRetention, options?.env, "short");
|
|
870
882
|
const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
883
|
+
openClient = () => {
|
|
884
|
+
const created = createClient(model, apiKey, options?.interleavedThinking ?? true, shouldUseFineGrainedToolStreamingBeta(model, context), options?.refusalFallbacks !== undefined, optionsHeaders, options?.fetch, copilotDynamicHeaders, cacheSessionId, options?.env);
|
|
885
|
+
client = created.client;
|
|
886
|
+
isOAuth = created.isOAuthToken;
|
|
887
|
+
advertisedClaudeCodeVersion = created.claudeCodeVersion;
|
|
888
|
+
};
|
|
889
|
+
openClient();
|
|
874
890
|
}
|
|
891
|
+
// One retry per request: a `claude_code_version_too_old` 400 names the version Anthropic
|
|
892
|
+
// wants, so the fingerprint is raised and the same request goes out again with it.
|
|
893
|
+
let claudeCodeVersionRetried = false;
|
|
894
|
+
const retryWithNewerClaudeCode = async (error) => {
|
|
895
|
+
if (claudeCodeVersionRetried ||
|
|
896
|
+
openClient === undefined ||
|
|
897
|
+
advertisedClaudeCodeVersion === undefined ||
|
|
898
|
+
!isClaudeCodeVersionTooOldError(error)) {
|
|
899
|
+
return false;
|
|
900
|
+
}
|
|
901
|
+
const next = await recoverClaudeCodeVersion(error, claudeCodeVersion, advertisedClaudeCodeVersion, options?.env);
|
|
902
|
+
if (next === undefined)
|
|
903
|
+
return false;
|
|
904
|
+
claudeCodeVersionRetried = true;
|
|
905
|
+
openClient();
|
|
906
|
+
return true;
|
|
907
|
+
};
|
|
908
|
+
const noteTooOldClaudeCode = (error) => {
|
|
909
|
+
if (advertisedClaudeCodeVersion !== undefined && isClaudeCodeVersionTooOldError(error)) {
|
|
910
|
+
error.message = `${error.message}\n${claudeCodeVersionTooOldHint(advertisedClaudeCodeVersion)}`;
|
|
911
|
+
}
|
|
912
|
+
};
|
|
875
913
|
const fallbackKey = unsignedThinkingFallbackKey(model, options?.sessionId);
|
|
876
914
|
let unsignedThinkingReplay = fallbackKey && unsignedThinkingTextReplayFallbacks.has(fallbackKey)
|
|
877
915
|
? "text"
|
|
@@ -921,6 +959,16 @@ export const stream = (model, context, options) => {
|
|
|
921
959
|
unsignedThinkingTextReplayFallbacks.add(fallbackKey);
|
|
922
960
|
return createRequest();
|
|
923
961
|
}
|
|
962
|
+
if (await retryWithNewerClaudeCode(error)) {
|
|
963
|
+
try {
|
|
964
|
+
return await createRequest();
|
|
965
|
+
}
|
|
966
|
+
catch (retryError) {
|
|
967
|
+
noteTooOldClaudeCode(retryError);
|
|
968
|
+
throw retryError;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
noteTooOldClaudeCode(error);
|
|
924
972
|
throw error;
|
|
925
973
|
}
|
|
926
974
|
}, {
|
|
@@ -1421,6 +1469,7 @@ function createClient(model, apiKey, interleavedThinking, useFineGrainedToolStre
|
|
|
1421
1469
|
}
|
|
1422
1470
|
// OAuth: Bearer auth, Claude Code identity headers
|
|
1423
1471
|
if (apiKey && isOAuthToken(apiKey)) {
|
|
1472
|
+
const advertisedClaudeCodeVersion = getClaudeCodeVersion(claudeCodeVersion, env);
|
|
1424
1473
|
const client = new Anthropic({
|
|
1425
1474
|
apiKey: null,
|
|
1426
1475
|
authToken: apiKey,
|
|
@@ -1431,11 +1480,11 @@ function createClient(model, apiKey, interleavedThinking, useFineGrainedToolStre
|
|
|
1431
1480
|
accept: "application/json",
|
|
1432
1481
|
"anthropic-dangerous-direct-browser-access": "true",
|
|
1433
1482
|
"anthropic-beta": ["claude-code-20250219", "oauth-2025-04-20", ...betaFeatures].join(","),
|
|
1434
|
-
"user-agent": `claude-cli/${
|
|
1483
|
+
"user-agent": `claude-cli/${advertisedClaudeCodeVersion}`,
|
|
1435
1484
|
"x-app": "cli",
|
|
1436
1485
|
}, model.headers, optionsHeaders)),
|
|
1437
1486
|
});
|
|
1438
|
-
return { client, isOAuthToken: true };
|
|
1487
|
+
return { client, isOAuthToken: true, claudeCodeVersion: advertisedClaudeCodeVersion };
|
|
1439
1488
|
}
|
|
1440
1489
|
// API key auth
|
|
1441
1490
|
const affinityCompat = getAnthropicCompat(model);
|